{"version":3,"sources":["webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./src/components/SmiWarehouseChipStatus.vue?7bb8","webpack:///./src/views/SmiAdminWarehousePage.vue?d923","webpack:///./src/views/SmiAdminWarehousePage.vue","webpack:///./src/views/SmiAdminWarehousePage.vue?b6a0","webpack:///./src/views/SmiAdminWarehousePage.vue?169c","webpack:///./src/views/SmiAdminWarehousesPage.vue?5cd1","webpack:///./src/components/ProductsByNamesTreeSelect.vue?d462","webpack:///./src/components/ProductsByNamesTreeSelect.vue","webpack:///./src/components/ProductsByNamesTreeSelect.vue?43f7","webpack:///./src/components/ProductsByNamesTreeSelect.vue?75cf","webpack:///./src/store/modules/smiWarehousesOverview.ts","webpack:///./src/views/SmiAdminWarehousesPage.vue","webpack:///./src/views/SmiAdminWarehousesPage.vue?bd60","webpack:///./src/views/SmiAdminWarehousesPage.vue?5189","webpack:///./src/store/modules/smiWarehouse.ts","webpack:///./src/components/SmiAdminWarehouseModal.vue?7c29","webpack:///./src/components/SmiAdminWarehouseModal.vue","webpack:///./src/components/SmiAdminWarehouseModal.vue?d92c","webpack:///./src/components/SmiAdminWarehouseModal.vue?f264","webpack:///./src/components/SmiAdminWarehouseList.vue?2279","webpack:///./src/components/SmiWarehouseChipStatus.vue?4a3a","webpack:///./src/components/SmiWarehouseChipStatus.vue","webpack:///./src/models/Smi/Warehouses/SmiWarehouseStockStatus.ts","webpack:///./src/components/SmiWarehouseChipStatus.vue?3332","webpack:///./src/components/SmiWarehouseChipStatus.vue?55b3","webpack:///./src/components/SmiAdminWarehouseList.vue","webpack:///./src/components/SmiAdminWarehouseList.vue?7690","webpack:///./src/components/SmiAdminWarehouseList.vue?ac97","webpack:///./src/utils/MockingHelper.ts","webpack:///./src/services/SmiAdminWarehouseService.ts","webpack:///./src/views/SmiAdminWarehousesPage.vue?8c5a","webpack:///./src/components/CompanyChainCustomersTreeSelect.vue?0bed","webpack:///./src/components/CompanyChainCustomersTreeSelect.vue","webpack:///./src/components/CompanyChainCustomersTreeSelect.vue?e004","webpack:///./src/components/CompanyChainCustomersTreeSelect.vue?30ea","webpack:///./src/components/ProductsByNamesTreeSelect.vue?3b14","webpack:///./src/components/CompanyChainCustomersTreeSelect.vue?6385"],"names":["_arrayWithoutHoles","arr","Array","isArray","arrayLikeToArray","_iterableToArray","iter","Symbol","iterator","Object","from","_nonIterableSpread","TypeError","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","render","_vm","this","_h","$createElement","_c","_self","attrs","breadcrumbs","staticClass","_v","_s","$t","warehouse","customerName","_e","isAllowedToEdit","on","onSettingsClick","totalPerformance","products","_l","productDetails","index","key","id","isAllowedToEditWarehouse","ref","staticRenderFns","beforeRoute","to","next","dispatchAdd","i18n","tc","toString","loading","smiWarehouse","dispatchLoad","Number","params","smiWarehouseId","then","catch","stopTrackPage","stoppedInAdvance","notFound","finally","commitComplete","registerHooks","item","Permissions","hasPermission","PermissionType","IsAllowedToEditSmiWarehouses","IsAllowedToEditSmiWarehouse","routeName","name","initialize","$route","$nextTick","$refs","smiAdminWarehouseModal","show","immediate","deep","components","DefaultLayout","Breadcrumbs","Messages","SmiAdminWarehouseList","SmiAdminWarehouseModal","SmiWarehousePerformanceCharts","SmiWarehouseProductsDetails","SmiWarehouseDeliveries","component","responsibles","length","nonResponsibles","filteredCustomerIds","onCustomersFilterSelect","filteredProductNames","onProductsFilterSelect","anyFilter","isLoading","onClearFilters","errorLoading","filteredWarehouses","value","options","placeholder","clearable","multiple","disabled","onInput","onSelect","placeholderAsEmptyOption","push","label","productsUniqueByName","Map","map","product","productName","values","displayName","productNumber","productNames","$emit","required","default","TreeSelect","common","payload","data","setLoadedDate","clearLoadedDate","setLoadingError","setLoading","clearLoading","setLoadingPromise","force","needToReLoad","Promise","resolve","isCurrentlyLoading","loadingPromise","commitSetLoading","commitClearSmiWarehousesOverview","getWarehousesOverview","smiWarehousesOverview","commitSetSmiWarehousesOverview","commitSetLoadedDate","commitClearLoading","Consoler","debugLog","error","debugWarn","commitSetLoadingError","reject","commitSetLoadingPromise","loadingPromiseForId","namespaced","dynamic","store","smiWarehousesOverviewModule","warehouses","filter","some","filteredCustomerId","customerId","filteredProductName","customers","routeTrackingInfo","customerIds","query","split","p","trim","isNaN","loadForecasts","generateQuery","$router","join","updateQuery","CompanyChainCustomersTreeSelect","ProductsByNamesTreeSelect","SmiWarehouseModule","getDataFor","undefined","stockDetails","modifiedMaxQuantity","maxQuantity","modifiedMinQuantity","minQuantity","setLoadingComplete","hasFreshDataFor","currentlyLoadingPromise","getWarehouse","response","commitSetSmiWarehouse","commitSetLoadingComplete","clearData","updateWarehouse","update","smiWarehouseModule","scopedSlots","_u","fn","invalid","handleSubmit","$event","preventDefault","onSubmit","class","filteredProducts","failed","directives","rawName","expression","modifiers","updating","domProps","target","composing","$set","_n","$forceUpdate","proxy","anyChanges","onReset","apply","arguments","onClose","anyStockLevelChanges","modal","showModal","errorUpdating","updateModel","stockOptions","dispatchUpdateWarehouse","hideModal","forEach","Modal","columns","rows","row","column","property","loadingWarehouseDetails","editWarehouseId","stopPropagation","forecastsRoute","href","navigate","detailsRoute","properties","_f","childRow","currentStockStatus","stockStatuses","OK","High","Low","numberFilter","editWarehouseDetails","isGreenStatus","isYellowStatus","isRedStatus","statusColor","Green","Yellow","Red","SmiWarehouseStockStatus","AdminWarehousesSortBy","number","Customer","text","isSortable","fixedOnMobile","customer","currentStock","totalCurrentStockQuantity","forecastVsSalesAgreement","forecastVsSalesAgreementDiffInPercent","consumptionVsForecast","consumptionVsForecastDiffInPercent","consumptionVsSalesAgreement","consumptionVsSalesAgreementDiffInPercent","childRows","currentStockQuantity","productPerformance","isHidden","smiWarehouseCustomerName","Table","SmiWarehouseChipStatus","estimatedStockReachWeeks","date","Dates","startOfWeek","Date","add","i","startOfWeekYear","isoWeekYear","weekNumber","isoWeek","Math","floor","random","MockingHelpers","get","Config","isDevelopment","fillUpMockedEstimatedStockReachWeeks","put","BaseService","smiAdminWarehouseService","nodes","nonResponsibleCompanyChainNodes","companyChain","companyChainHasFilteredCustomers","children","filterIsSmiCustomer","isSmiCustomer","showIfSmiCustomer","responsibleCompanyChainNodes","isDefaultExpanded","concat"],"mappings":"4JACe,SAASA,EAAmBC,GACzC,GAAIC,MAAMC,QAAQF,GAAM,OAAOG,eAAiBH,G,sECFnC,SAASI,EAAiBC,GACvC,GAAsB,qBAAXC,QAA0BA,OAAOC,YAAYC,OAAOH,GAAO,OAAOJ,MAAMQ,KAAKJ,G,gBCD3E,SAASK,IACtB,MAAM,IAAIC,UAAU,wICGP,SAASC,EAAmBZ,GACzC,OAAOa,EAAkBb,IAAQc,EAAgBd,IAAQe,eAA2Bf,IAAQgB,M,2DCL9F,W,yCCAA,IAAIC,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,gBAAgB,CAACA,EAAG,cAAc,CAACE,MAAM,CAAC,MAAQN,EAAIO,eAAeH,EAAG,YAAYA,EAAG,MAAM,CAACI,YAAY,wBAAwB,CAACJ,EAAG,MAAM,CAACI,YAAY,wEAAwE,CAACJ,EAAG,KAAK,CAACI,YAAY,oBAAoB,CAAER,EAAa,UAAE,CAACA,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,8BAA+B,CAACX,EAAIY,UAAUC,kBAAkBb,EAAIc,MAAM,GAAGV,EAAG,MAAM,CAACI,YAAY,mBAAmBF,MAAM,CAAC,MAAQN,EAAIe,gBAChhBf,EAAIW,GAAG,0CACPX,EAAIW,GAAG,qDAAqD,CAACP,EAAG,SAAS,CAACI,YAAY,gCAAgCF,MAAM,CAAC,UAAYN,EAAIe,iBAAiBC,GAAG,CAAC,MAAQhB,EAAIiB,kBAAkB,CAACjB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8CAA8C,KAAKP,EAAG,IAAI,CAACI,YAAY,uBAAuB,CAACR,EAAIS,GAAG,gBAAgBL,EAAG,OAAO,CAACI,YAAY,WAAYR,EAAa,UAAE,CAACI,EAAG,MAAM,CAACI,YAAY,QAAQ,CAACJ,EAAG,KAAK,CAACI,YAAY,eAAe,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,2CAA2C,OAAQX,EAAIY,UAA0B,iBAAER,EAAG,MAAM,CAACI,YAAY,gCAAgC,CAACJ,EAAG,gCAAgC,CAACE,MAAM,CAAC,YAAcN,EAAIY,UAAUM,qBAAqB,GAAGd,EAAG,MAAM,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,kDAAmDX,EAAIY,UAAUO,SAAe,OAAEf,EAAG,MAAM,CAACI,YAAY,QAAQ,CAACJ,EAAG,KAAK,CAACI,YAAY,oBAAoB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,OAAOX,EAAIoB,GAAIpB,EAAIY,UAAkB,UAAE,SAASS,EAAeC,GAAO,OAAOlB,EAAG,8BAA8B,CAACmB,IAAID,EAAMd,YAAY,OAAOF,MAAM,CAAC,eAAiBe,EAAe,eAAiBrB,EAAIY,UAAUY,GAAG,gBAAkBxB,EAAIyB,gCAA+B,GAAGzB,EAAIc,KAAKV,EAAG,yBAAyB,CAACE,MAAM,CAAC,YAAcN,EAAIY,UAAUY,OAAOxB,EAAIc,MAAM,GAAGV,EAAG,yBAAyB,CAACsB,IAAI,yBAAyBpB,MAAM,CAAC,UAAYN,EAAIY,UAAU,gBAAkBZ,EAAIe,oBAAoB,IACx7CY,EAAkB,G,yWCyGPC,E,oGAAf,WACEC,EACAtC,EACAuC,GAHF,uGAKwB,OAAcC,YAClCC,EAAA,KAAKC,GAAG,iCAAiCC,YAN7C,OAKQC,EALR,OAQEC,EAAA,KACGC,aAAaC,OAAOT,EAAGU,OAAOC,iBAC9BC,MAAK,WAEJX,OAEDY,OAAM,WAEL,OAAiBC,cAAc,eAAqBd,GAAK,CACvDe,kBAAkB,EAClBC,UAAU,IAEZf,EAAK,eAA2BD,OAEjCiB,SAAQ,WACP,OAAcC,eAAeZ,MAvBnC,2C,wBAFA,OAAUa,cAAc,CAAC,mBAAoB,sBAyC7C,IAAqB,EAArB,sQACmC,GADnC,gDAGE,WACE,OAAOZ,EAAA,KAAmBa,KAAKhD,KAAKuC,kBAJxC,2BAOE,WACE,OAAOU,EAAA,KAAYC,cACjBC,EAAA,KAAeC,gCATrB,oCAaE,WACE,OAAOH,EAAA,KAAYC,cACjBC,EAAA,KAAeE,+BAfrB,uBAmBE,WAAuB,MACrB,MAAO,CACL,CACEC,UAAW,OACXC,KAAMvD,KAAKU,GAAG,eAAiB,QAAuBuB,YAExD,CACEqB,UAAW,OACXC,KAAMvD,KAAKU,GAAG,eAAiB,QAA6BuB,YAE9D,CACEqB,UAAW,OACXC,KAAMvD,KAAKU,GAAG,eAAiB,OAA4B,WACzDV,KAAKW,iBADoD,aACzD,EAAgBC,eACfqB,eAjCX,uFAsCS,WACLL,EACAtC,EACAuC,GAHK,iGAKCF,EAAYC,EAAItC,EAAMuC,GALvB,2CAtCT,sJA8CS,WACLD,EACAtC,EACAuC,GAHK,iGAKCF,EAAYC,EAAItC,EAAMuC,GALvB,2CA9CT,yFAuDU,WACN7B,KAAKwD,aACL,OAAiBd,cAAc,eAAqB1C,KAAKyD,WAzD7D,qBA4DU,WACNzD,KAAKwD,aACL,OAAiBd,cAAc,eAAqB1C,KAAKyD,WA9D7D,wBAiEU,WACNzD,KAAKuC,eAAiBF,OAAOrC,KAAKyD,OAAOnB,OAAOC,kBAlEpD,6BAqEU,WAAe,WACrBvC,KAAK0D,WAAU,WACZ,EAAKC,MAAMC,uBAAkDC,cAvEpE,GAAmD,QAuDjD,gBADC,eAAM,SAAU,CAAEC,WAAW,EAAOC,MAAM,K,4BAI1C,MA1DkB,EAAqB,gBAZzC,eAAU,CACTC,WAAY,CACVC,gBAAA,KACAC,cAAA,KACAC,WAAA,KACAC,wBAAA,KACAC,yBAAA,KACAC,gCAAA,KACAC,8BAAA,KACAC,yBAAA,SAGiB,WCnJ2X,I,YCO5YC,EAAY,eACd,EACA3E,EACA4B,GACA,EACA,KACA,KACA,MAIa,aAAA+C,E,oDClBf,IAAI3E,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,gBAAgB,CAACA,EAAG,cAAc,CAACE,MAAM,CAAC,MAAQN,EAAIO,eAAeH,EAAG,YAAYA,EAAG,MAAM,CAACI,YAAY,wBAAwB,CAACJ,EAAG,MAAM,CAACI,YAAY,wEAAwE,CAACJ,EAAG,KAAK,CAACI,YAAY,eAAe,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsCP,EAAG,OAAO,CAACI,YAAY,WAAWJ,EAAG,MAAM,CAACI,YAAY,yBAAyB,CAAER,EAAI2E,aAAaC,QAAU5E,EAAI6E,gBAAgBD,OAAQxE,EAAG,kCAAkC,CAACI,YAAY,qCAAqCF,MAAM,CAAC,MAAQN,EAAI8E,oBAAoB,aAAe9E,EAAI2E,aAAa,gBAAkB3E,EAAI6E,gBAAgB,WAAY,EAAK,YAAc7E,EAAIW,GAAG,wCAAwCK,GAAG,CAAC,OAAShB,EAAI+E,2BAA2B/E,EAAIc,KAAMd,EAAImB,SAAe,OAAEf,EAAG,4BAA4B,CAACI,YAAY,oCAAoCF,MAAM,CAAC,MAAQN,EAAIgF,qBAAqB,SAAWhF,EAAImB,SAAS,WAAY,EAAK,YAAcnB,EAAIW,GAAG,uCAAuCK,GAAG,CAAC,OAAShB,EAAIiF,0BAA0BjF,EAAIc,KAAMd,EAAIkF,YAAclF,EAAImF,UAAW/E,EAAG,SAAS,CAACI,YAAY,gBAAgBF,MAAM,CAAC,KAAO,UAAUU,GAAG,CAAC,MAAQhB,EAAIoF,iBAAiB,CAACpF,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wCAAwC,KAAKP,EAAG,IAAI,CAACI,YAAY,kBAAkB,CAACR,EAAIS,GAAG,aAAaT,EAAIc,MAAM,GAAId,EAAgB,aAAEI,EAAG,MAAM,CAACI,YAAY,6BAA6B,CAACJ,EAAG,OAAO,CAACI,YAAY,iBAAiB,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsCX,EAAIc,KAAKV,EAAG,MAAM,CAACI,YAAY,OAAO,CAACJ,EAAG,MAAM,CAACI,YAAY,UAAU,CAAER,EAAa,UAAEI,EAAG,MAAM,CAACI,YAAY,wCAAwC,CAACJ,EAAG,OAAO,CAACI,YAAY,kCAAoCR,EAAIqF,aAAmVrF,EAAIc,KAAzU,CAAEd,EAAIsF,mBAAyB,OAAE,CAAClF,EAAG,wBAAwB,CAACE,MAAM,CAAC,WAAaN,EAAIsF,mBAAmB,qBAAuBtF,EAAIgF,yBAAyB5E,EAAG,MAAM,CAAEJ,EAAa,UAAE,CAACA,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,6CAA6C,CAACX,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,iDAAiD,KAAc,QAAQ,IAClpEgB,EAAkB,G,kQCDlB,EAAS,WAAa,IAAI3B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACI,YAAY,kBAAkBF,MAAM,CAAC,MAAQN,EAAIuF,MAAM,QAAUvF,EAAIwF,QAAQ,YAAcxF,EAAIyF,YAAY,UAAYzF,EAAI0F,UAAU,SAAW1F,EAAI2F,SAAS,SAAW3F,EAAI4F,UAAU5E,GAAG,CAAC,MAAQhB,EAAI6F,QAAQ,OAAS7F,EAAI8F,aACxU,EAAkB,G,oECyBD,EAArB,+nBAaE,WACE,IAAMN,EAA4B,GAE9BvF,KAAK8F,0BACPP,EAAQQ,KAAK,CACXxE,GAAI,GACJyE,MAAOhG,KAAKwF,cAIhB,IAViB,EAUXS,EAAuB,eACxB,IAAIC,IACLlG,KAAKkB,SAASiF,KAAI,SAACC,GAAD,MAAa,CAACA,EAAQC,YAAaD,OACrDE,UAba,iBAgBGL,GAhBH,IAgBjB,2BAA0C,KAAjCG,EAAiC,QACxCb,EAAQQ,KAAK,CACXxE,GAAI6E,EAAQC,YACZL,MACEI,EAAQG,aAAuC,KAAxBH,EAAQG,YAC3BH,EAAQG,YACRH,EAAQI,iBAtBD,8BA0BjB,OAAOjB,IAvCX,qBA0CU,SAAQkB,GACdzG,KAAK0G,MAAM,QAASD,KA3CxB,sBA8CU,SAASA,GACa,IAAxBA,EAAa9B,QAAoC,KAApB8B,EAAa,KAC5CA,EAAe,IAEjBzG,KAAK0G,MAAM,SAAUD,OAlDzB,GAAuD,QAC3B,gBAAzB,eAAK,CAAEE,UAAU,K,4BACQ,gBAAzB,eAAK,CAAEA,UAAU,K,+BACQ,gBAAzB,eAAK,CAAEA,UAAU,K,kCAElB,gBADC,eAAK,CAAEA,UAAU,EAAOC,QAAS,kBAAM,M,gCAGxC,gBADC,eAAK,CAAED,UAAU,EAAOC,QAAS,kBAAM,M,+BAGxC,gBADC,eAAK,CAAED,UAAU,EAAOC,QAAS,kBAAM,M,+BAGxC,gBADC,eAAK,CAAED,UAAU,EAAOC,QAAS,kBAAM,M,+CAVrB,EAAyB,gBAL7C,eAAU,CACT5C,WAAY,CACV6C,aAAA,SAGiB,WC1B+X,I,wBCQhZpC,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,E,4FCCT,EAAN,4PAC8C,MAD9C,0CAGmB,IAAI,OAAY,KAHnC,8CASE,WACE,OAAOzE,KAAK8G,OAAO5E,UAVvB,4CAiBmB,SACf6E,GAEA/G,KAAKgH,KAAOD,IApBhB,8CAuBmB,WACf/G,KAAKgH,KAAO,OAxBhB,iCA4BoB,WAChBhH,KAAK8G,OAAOG,kBA7BhB,mCA+BoB,WAChBjH,KAAK8G,OAAOI,oBAhChB,mCAkCoB,SAAsBH,GACtC/G,KAAK8G,OAAOK,gBAAgBJ,KAnChC,8BAqCoB,WAChB/G,KAAK8G,OAAOM,eAtChB,gCAwCoB,WAChBpH,KAAK8G,OAAOO,iBAzChB,qCA2CoB,SAAwBN,GAIxC/G,KAAK8G,OAAOQ,kBAAkBP,KA/ClC,mFAuDS,WAAmBA,GAAnB,iGACAA,EAAQQ,OAAUvH,KAAK8G,OAAOU,eAD9B,yCAEIC,QAAQC,WAFZ,WAKD1H,KAAK8G,OAAOa,qBALX,yCAMI3H,KAAK8G,OAAO5E,QAAQ0F,gBANxB,cASL5H,KAAK6H,mBACL7H,KAAK8H,mCAECF,EAAiB,OACpBG,wBACAvF,MAAK,SAACwF,GACL,EAAKC,+BAA+BD,GACpC,EAAKE,sBACL,EAAKC,qBACLC,EAAA,KAASC,SAAS,8BAA+BL,MAElDvF,OAAM,SAAC6F,GAIN,OAHAF,EAAA,KAASG,UAAU,6BAA8BD,GACjD,EAAKE,sBAAsB,CAAEF,UAEtBb,QAAQgB,OAAOH,MAG1BtI,KAAK0I,wBAAwB,CAC3Bd,iBACAe,oBAAqB,OA7BlB,kBAgCEf,GAhCF,gDAvDT,+DAA0C,QAiB9B,gBAAT,Q,6CAIA,MAES,gBAAT,Q,+CAEA,MAGS,gBAAT,Q,kCAEA,MACS,gBAAT,Q,oCAEA,MACS,gBAAT,Q,oCAEA,MACS,gBAAT,Q,+BAEA,MACS,gBAAT,Q,iCAEA,MACS,gBAAT,Q,sCAKA,MAOD,gBADC,Q,2BAkCA,MAxFG,EAA2B,gBANhC,eAAO,CACNgB,YAAY,EACZrF,KAAM,wBACNsF,SAAS,EACTC,QAAA,QAEI,GA2FC,IAAMC,EAA8B,eACzC,G,oCCCmB,EAArB,yQACiD,IADjD,8CAE+B,GAF/B,iDAGkC,GAHlC,uDAI0C,IAJ1C,wDAK2C,IAL3C,gDAOE,WACE,OACE/I,KAAK6E,oBAAoBF,OAAS,GAClC3E,KAAK+E,qBAAqBJ,OAAS,IAVzC,8BAcE,WAA8B,WAC5B,OAAO3E,KAAKgJ,WAAWC,QACrB,SAACtI,GAAD,OACuC,IAApC,EAAKkE,oBAAoBF,QACxB,EAAKE,oBAAoBqE,MACvB,SAACC,GAAD,OAAwBxI,EAAUyI,aAAeD,QAEf,IAArC,EAAKpE,qBAAqBJ,QACzB,EAAKI,qBAAqBmE,MAAK,SAACG,GAAD,OAC7B1I,EAAUO,SAASgI,MACjB,SAAC9C,GAAD,OAAaA,EAAQC,cAAgBgD,cAxBnD,sBA8BE,WAAsB,QACpB,2BAAON,EAA4B/B,YAAnC,aAAO,EAAkCgC,kBAAzC,QAAuD,KA/B3D,wBAkCE,WAAwB,QACtB,2BAAOD,EAA4B/B,YAAnC,aAAO,EAAkCsC,UAAU5E,oBAAnD,QAAmE,KAnCvE,2BAsCE,WAA2B,QACzB,2BAAOqE,EAA4B/B,YAAnC,aAAO,EAAkCsC,UAAU1E,uBAAnD,QAAsE,KAvC1E,oBA0CE,WAAoB,QAClB,2BAAOmE,EAA4B/B,YAAnC,aAAO,EAAkC9F,gBAAzC,QAAqD,KA3CzD,uBA8CE,WACE,MAAO,CACL,CACEoC,UAAW,OACXC,KAAMvD,KAAKU,GAAG,eAAiB,QAAuBuB,YAExD,CACEqB,UAAW,OACXC,KAAMvD,KAAKU,GAAG,eAAiB,QAA6BuB,eAtDpE,2BA4DU,WAAa,WACnBjC,KAAKuJ,kBAAoB,eAAqBvJ,KAAKyD,QACnDzD,KAAKwD,aAAaX,SAAQ,WACxB,OAAiBH,cAAc,EAAK6G,wBA/D1C,qBAmEU,WAAO,WACbvJ,KAAKuJ,kBAAoB,eAAqBvJ,KAAKyD,QACnDzD,KAAKwD,aAAaX,SAAQ,WACxB,OAAiBH,cAAc,EAAK6G,wBAtE1C,wBA0EU,WACN,IAAIC,EAAwB,GACxB/C,EAAyB,GAkB7B,OAjBIzG,KAAKyD,OAAOgG,MAAMH,YACpBE,EAAcxJ,KAAKyD,OAAOgG,MAAMH,UAC7BrH,WACAyH,MAAM,KACNvD,KAAI,SAACwD,GAAD,OAAOtH,OAAOsH,EAAEC,WACpBX,QAAO,SAACU,GAAD,OAAQE,MAAMF,IAAMA,EAAI,MAEhC3J,KAAKyD,OAAOgG,MAAMvI,WACpBuF,EAAezG,KAAKyD,OAAOgG,MAAMvI,SAC9Be,WACAyH,MAAM,KACNvD,KAAI,SAACwD,GAAD,OAAOA,EAAEC,UACbX,QAAO,SAACU,GAAD,MAAa,KAANA,MAEnB3J,KAAK6E,oBAAsB2E,EAC3BxJ,KAAK+E,qBAAuB0B,EAErBzG,KAAK8J,kBA9FhB,yBAkGU,WACN,IAAML,EAAQzJ,KAAK+J,gBAEnB,OACE/J,KAAKyD,OAAOgG,MAAMvI,WAAauI,EAAMvI,UACrClB,KAAKyD,OAAOgG,MAAMH,YAAcG,EAAMH,aAItCtJ,KAAKgK,QAAQjE,KAAK,CAAE0D,WAEb,KA7Gb,2BAiHU,WACN,IAAMA,EAAmD,GASzD,OAPIzJ,KAAK6E,oBAAoBF,OAAS,IACpC8E,EAAMH,UAAYtJ,KAAK6E,oBAAoBoF,KAAK,MAE9CjK,KAAK+E,qBAAqBJ,OAAS,IACrC8E,EAAMvI,SAAWlB,KAAK+E,qBAAqBkF,KAAK,MAG3CR,IA3HX,2BA8HU,SAAclC,GAAe,WAInC,OAHAvH,KAAKkF,WAAY,EACjBlF,KAAKoF,cAAe,EAEb2D,EACJ3G,aAAa,CACZmF,UAED9E,OAAM,WACL,EAAK2C,cAAe,KAErBvC,SAAQ,WACP,EAAKqC,WAAY,OA1IzB,qCA8IU,SAAwBoE,GAC9BtJ,KAAK6E,oBAAsByE,EAC3BtJ,KAAKkK,gBAhJT,oCAmJU,SAAuBzD,GAC7BzG,KAAK+E,qBAAuB0B,EAC5BzG,KAAKkK,gBArJT,4BAwJU,WACNlK,KAAK6E,oBAAsB,GAC3B7E,KAAK+E,qBAAuB,GAC5B/E,KAAKkK,kBA3JT,GAAoD,QA4DlD,gBADC,eAAM,SAAU,CAAEpG,WAAW,EAAOC,MAAM,K,4BAM1C,MAjEkB,EAAsB,gBAV1C,eAAU,CACTC,WAAY,CACVC,gBAAA,KACAC,cAAA,KACAC,WAAA,KACAC,wBAAA,KACA+F,kCAAA,KACAC,0BAAA,MAGiB,WCjH4X,ICQ7Y,G,UAAY,eACd,EACAtK,EACA4B,GACA,EACA,KACA,WACA,OAIa,e,yRCCT2I,EAAN,8PACmB,IAAI,OAA8C,KADrE,2CAOE,WAAe,WACb,OAAO,SAAC9I,GAAD,OAAgB,EAAKuF,OAAOwD,WAAW/I,MARlD,mCAeoB,SAAsBwF,GAA4B,uBAC5CA,EAAQ7F,UADoC,IAClE,2BAAwC,KACE,IAD/BkF,EAA6B,QACtC,QAA6BmE,IAAzBnE,EAAQoE,aACVpE,EAAQoE,aAAaC,oBAArB,UACErE,EAAQoE,aAAaE,mBADvB,QACsC,EACtCtE,EAAQoE,aAAaG,oBAArB,UACEvE,EAAQoE,aAAaI,mBADvB,QACsC,GANwB,iCAftE,8BAyBoB,SAAiB7D,GAKjC/G,KAAK8G,OAAOM,WAAWL,KA9B3B,sCAgCoB,SAAyBA,GAIzC/G,KAAK8G,OAAO+D,mBAAmB9D,KApCnC,mCAsCoB,SAAsBA,GAKtC/G,KAAK8G,OAAOK,gBAAgBJ,KA3ChC,mFAmDS,WACLxE,GADK,oGAIDvC,KAAK8G,OAAOgE,gBAAgBvI,GAJ3B,yCAKIkF,QAAQC,QAAQ1H,KAAKgD,KAAKT,KAL9B,UAQCwI,EACJ/K,KAAK8G,OAAOa,mBAAmBpF,IAC7BwI,EAVC,uBAWH,OAAS1C,SACP,uDACA,gBAbC,kBAeI0C,GAfJ,cAkBCnD,EAAiB,OACpBoD,aAAazI,GACbC,MAAK,SAACyI,GAUL,OATA,EAAKC,sBAAsBD,GAC3B,EAAKE,yBAAyB,CAC5B5J,GAAIgB,EACJyE,KAAMiE,IAER,OAAS5C,SACP,4CACA4C,GAEKxD,QAAQC,QAAQuD,MAExBxI,OAAM,SAAC6F,GAGN,OAFA,OAASC,UAAU,2CAA4CD,GAC/D,EAAKE,sBAAsB,CAAEjH,GAAIgB,EAAgB+F,UAC1Cb,QAAQgB,OAAOH,MAG1BtI,KAAK6H,iBAAiB,CACpBtG,GAAIgB,EACJqF,iBACAwD,WAAW,IAzCR,kBA4CExD,GA5CF,gDAnDT,wJAmGS,WAA8Bb,GAA9B,+FAIqC,OAAtC/G,KAAKgD,KAAK+D,EAAQxE,gBAJjB,yCAKIkF,QAAQgB,OAAO,qCALnB,gCAQE,OACJ4C,gBAAgBtE,EAAQxE,eAAgBwE,EAAQuE,QAChD9I,MAAK,SAACL,GAOL,OANA,EAAK+I,sBAAsB/I,GAC3B,EAAKgJ,yBAAyB,CAC5B5J,GAAIwF,EAAQxE,eACZyE,KAAM7E,IAER,OAASkG,SAAS,gCACXlG,KAERM,OAAM,SAAC6F,GAEN,OADA,OAASC,UAAU,6BAA8BD,GAC1Cb,QAAQgB,OAAOH,OArBrB,gDAnGT,+DAAiC,QAerB,gBAAT,Q,oCASA,MACS,gBAAT,Q,+BAMA,MACS,gBAAT,Q,uCAKA,MACS,gBAAT,Q,oCAMA,MAOD,gBADC,Q,2BA8CA,MAGD,gBADC,Q,sCAwBA,MA1HG+B,EAAkB,gBANvB,eAAO,CACNzB,YAAY,EACZrF,KAAM,eACNsF,SAAS,EACTC,MAAA,UAEIuB,GA6HC,IAAMkB,EAAqB,eAAUlB,I,oCCjJ5C,IAAIvK,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,qBAAqB,CAACqL,YAAYzL,EAAI0L,GAAG,CAAC,CAACnK,IAAI,UAAUoK,GAAG,SAASjK,GACxK,IAAIkK,EAAUlK,EAAIkK,QACdC,EAAenK,EAAImK,aACvB,MAAO,CAACzL,EAAG,OAAO,CAACI,YAAY,uCAAuCF,MAAM,CAAC,aAAe,OAAOU,GAAG,CAAC,OAAS,SAAS8K,GAAgC,OAAxBA,EAAOC,iBAAwBF,EAAa7L,EAAIgM,aAAa,CAAC5L,EAAG,QAAQ,CAACsB,IAAI,QAAQpB,MAAM,CAAC,GAAK,yBAAyB,MAAQN,EAAIY,UAAYZ,EAAIY,UAAUC,aAAe,GAAG,YAAa,EAAK,kCAAmC,GAAO4K,YAAYzL,EAAI0L,GAAG,CAAE1L,EAAa,UAAE,CAACuB,IAAI,OAAOoK,GAAG,WAAW,OAAO3L,EAAIoB,GAAIpB,EAAoB,kBAAE,SAASqG,EAAQ/E,GAAO,OAAOlB,EAAG,MAAM,CAACmB,IAAID,EAAMd,YAAY,uBAAuByL,MAAM,CAAE,OAAQ3K,IAAUtB,EAAIkM,iBAAiBtH,OAAS,IAAK,CAACxE,EAAG,QAAQ,CAACI,YAAY,YAAY,CAACJ,EAAG,KAAK,CAACI,YAAY,eAAe,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAG2F,EAAQG,aAAa,OAAOpG,EAAG,KAAK,CAACA,EAAG,KAAK,CAACE,MAAM,CAAC,QAAU,MAAM,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+CAA+C,SAASP,EAAG,KAAK,CAACA,EAAG,KAAK,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsCP,EAAG,KAAK,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,wCAAwCP,EAAG,KAAK,CAACA,EAAG,KAAK,CAACA,EAAG,qBAAqB,CAACI,YAAY,qCAAqCF,MAAM,CAAC,MAAS,kDAAqD+F,EAAQoE,aAAgC,oBAAG,IAAM,OAAOgB,YAAYzL,EAAI0L,GAAG,CAAC,CAACnK,IAAI,UAAUoK,GAAG,SAASjK,GACrvC,IAAIyK,EAASzK,EAAIyK,OACjB,MAAO,CAAC/L,EAAG,QAAQ,CAACgM,WAAW,CAAC,CAAC5I,KAAK,QAAQ6I,QAAQ,iBAAiB9G,MAAOc,EAAQoE,aAAgC,oBAAE6B,WAAW,2CAA2CC,UAAU,CAAC,QAAS,KAAQ/L,YAAY,4BAA4ByL,MAAM,CAAEL,QAASO,GAAS7L,MAAM,CAAC,KAAO,OAAO,UAAY,UAAU,SAAWN,EAAIwM,SAAS,UAAW,EAAK,MAAQnG,EAAQoE,aAAaG,oBAAsB,EACxX5K,EAAIW,GAAG,wCAEP0F,EAAQoE,aAAaG,oBACnBvE,EAAQoE,aAAaC,oBACvB1K,EAAIW,GACF,yDAEF6J,GAAWiC,SAAS,CAAC,MAASpG,EAAQoE,aAAgC,qBAAGzJ,GAAG,CAAC,MAAQ,SAAS8K,GAAWA,EAAOY,OAAOC,WAAqB3M,EAAI4M,KAAKvG,EAAQoE,aAAc,sBAAuBzK,EAAI6M,GAAGf,EAAOY,OAAOnH,SAAS,KAAO,SAASuG,GAAQ,OAAO9L,EAAI8M,uBAAuB,MAAK,MAAS,GAAG1M,EAAG,KAAK,CAACA,EAAG,qBAAqB,CAACI,YAAY,qCAAqCF,MAAM,CAAC,MAAS,oDAAuD+F,EAAQoE,aAAgC,oBAAG,IAAM,OAAOgB,YAAYzL,EAAI0L,GAAG,CAAC,CAACnK,IAAI,UAAUoK,GAAG,SAASjK,GAC9iB,IAAIyK,EAASzK,EAAIyK,OACzC,MAAO,CAAC/L,EAAG,QAAQ,CAACgM,WAAW,CAAC,CAAC5I,KAAK,QAAQ6I,QAAQ,iBAAiB9G,MAAOc,EAAQoE,aAAgC,oBAAE6B,WAAW,2CAA2CC,UAAU,CAAC,QAAS,KAAQ/L,YAAY,4BAA4ByL,MAAM,CAAEL,QAASO,GAAS7L,MAAM,CAAC,KAAO,OAAO,UAAY,UAAU,SAAWN,EAAIwM,SAAS,UAAW,EAAK,MAAQnG,EAAQoE,aAAaC,oBAAsB,EACxX1K,EAAIW,GAAG,wCAEP0F,EAAQoE,aAAaC,oBACnBrE,EAAQoE,aAAaG,oBACvB5K,EAAIW,GACF,2DAEF6J,GAAWiC,SAAS,CAAC,MAASpG,EAAQoE,aAAgC,qBAAGzJ,GAAG,CAAC,MAAQ,SAAS8K,GAAWA,EAAOY,OAAOC,WAAqB3M,EAAI4M,KAAKvG,EAAQoE,aAAc,sBAAuBzK,EAAI6M,GAAGf,EAAOY,OAAOnH,SAAS,KAAO,SAASuG,GAAQ,OAAO9L,EAAI8M,uBAAuB,MAAK,MAAS,aAAYC,OAAM,GAAM,KAAK,CAACxL,IAAI,SAASoK,GAAG,WAAW,MAAO,CAAE3L,EAAiB,cAAEI,EAAG,MAAM,CAACI,YAAY,4BAA4BF,MAAM,CAAC,kBAAkB,sCAAsC,CAACF,EAAG,OAAO,CAACI,YAAY,iBAAiB,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,4CAA4CP,EAAG,OAAO,CAACI,YAAY,kCAAkCF,MAAM,CAAC,kBAAkB,yCAAyCN,EAAIc,KAAKV,EAAG,MAAM,CAACA,EAAG,SAAS,CAACI,YAAY,qCAAqCF,MAAM,CAAC,KAAO,SAAS,UAAYN,EAAIgN,YAAchN,EAAIwM,WAAaxM,EAAIe,iBAAmB6K,IAAU,CAAC5L,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,oCAAoC,OAAOP,EAAG,SAAS,CAACgM,WAAW,CAAC,CAAC5I,KAAK,OAAO6I,QAAQ,SAAS9G,MAAOvF,EAAc,WAAEsM,WAAW,eAAe9L,YAAY,gCAAgCF,MAAM,CAAC,SAAWN,EAAIwM,UAAUxL,GAAG,CAAC,MAAQ,SAAS8K,GAAgC,OAAxBA,EAAOC,iBAAwB/L,EAAIiN,QAAQC,MAAM,KAAMC,cAAc,CAACnN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAiC,OAAOP,EAAG,SAAS,CAACI,YAAY,gCAAgCF,MAAM,CAAC,SAAWN,EAAIwM,UAAUxL,GAAG,CAAC,MAAQ,SAAS8K,GAAgC,OAAxBA,EAAOC,iBAAwB/L,EAAIoN,QAAQF,MAAM,KAAMC,cAAc,CAACnN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kCAAkC,WAAWoM,OAAM,IAAO,MAAK,MAAS,WAC5lDpL,EAAkB,G,4KCoID,EAArB,iXAI8B,GAJ9B,kDAKmC,GALnC,iDAOE,WACE,OAAO1B,KAAKoN,yBARhB,4BAWE,WAA4B,QAK1B,2BACEpN,KAAKW,iBADP,aACE,EAAgBO,SACb+H,QAAO,SAACU,GAAD,YAA0BY,IAAnBZ,EAAEa,gBAChBrE,KAAI,SAACwD,GAAD,MAAQ,CACXnD,cAAemD,EAAEnD,cACjBD,YAAaoD,EAAEpD,YACfiE,aAAcb,EAAEa,wBANtB,QAOW,KAvBf,kBA2BS,WACLxK,KAAKwD,aAEJxD,KAAK2D,MAAM0J,MAAgBC,cA9BhC,wBAiCU,WACFtN,KAAKW,YAlCb,kCAuCU,WACN,OAAOX,KAAKiM,iBAAiB/C,MAC3B,SAAC9C,GAAD,OACEA,EAAQoE,aAAaG,sBACnBvE,EAAQoE,aAAaI,aACvBxE,EAAQoE,aAAaC,sBACnBrE,EAAQoE,aAAaE,iBA7C/B,sBAiDU,WAAQ,WACd,GAAuB,OAAnB1K,KAAKW,WAAuBX,KAAKc,gBAArC,CAIAd,KAAKuM,UAAW,EAChBvM,KAAKuN,eAAgB,EAErB,IAAMC,EAAkC,CACtCC,aAAczN,KAAKiM,iBAAiB9F,KAAI,SAACC,GAAD,MAAc,CACpDI,cAAeJ,EAAQI,cACvBoE,YAAaxE,EAAQoE,aAAaG,oBAClCD,YAAatE,EAAQoE,aAAaC,yBAItCtI,EAAA,KACGuL,wBAAwB,CACvBnL,eAAgBvC,KAAKW,UAAUY,GAC/B+J,OAAQkC,IAEThL,MAAK,WACH,EAAKmB,MAAM0J,MAAgBM,eAE7BlL,OAAM,WACL,EAAK8K,eAAgB,KAEtB1K,SAAQ,WACP,EAAK0J,UAAW,QA7ExB,qBAiFU,WACNvM,KAAKiM,iBAAiB2B,SAAQ,SAACxH,GAAW,QACxCA,EAAQoE,aAAaG,oBAArB,UACEvE,EAAQoE,aAAaI,mBADvB,QACsC,EACtCxE,EAAQoE,aAAaC,oBAArB,UACErE,EAAQoE,aAAaE,mBADvB,QACsC,OAtF5C,qBA0FU,WACL1K,KAAK2D,MAAM0J,MAAgBM,gBA3FhC,GAAoD,QACxB,gBAAzB,eAAK,CAAEhH,UAAU,K,gCACQ,gBAAzB,eAAK,CAAEA,UAAU,K,sCAFC,EAAsB,gBAL1C,eAAU,CACT3C,WAAY,CACV6J,QAAA,SAGiB,WC5J4X,I,YCO7YpJ,EAAY,eACd,EACA3E,EACA4B,GACA,EACA,KACA,KACA,MAIa,OAAA+C,E,6CClBf,IAAI3E,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAAEJ,EAAIiJ,WAAiB,OAAE7I,EAAG,QAAQ,CAACE,MAAM,CAAC,QAAUN,EAAI+N,QAAQ,KAAO/N,EAAIgO,KAAK,eAAgB,EAAK,YAAa,GAAMvC,YAAYzL,EAAI0L,GAAG,CAAC,CAACnK,IAAI,UAAUoK,GAAG,SAASjK,GAClR,IAAIuM,EAAMvM,EAAIuM,IACVC,EAASxM,EAAIwM,OACjB,MAAO,CAAsB,YAApBA,EAAOC,SAAwB,CAAC/N,EAAG,MAAM,CAACI,YAAY,wDAAwD,CACxGR,EAAIoO,yBAA2BpO,EAAIqO,kBAAoBJ,EAAIrN,UAAUY,GAKoJpB,EAAG,OAAO,CAACI,YAAY,mCAJjPJ,EAAG,SAAS,CAACI,YAAY,0DAA0DyL,MAAMjM,EAAIe,gBACzF,wBACA,0BAA0BT,MAAM,CAAC,UAAYN,EAAIe,gBAAgB,MAAQf,EAAIe,gBAC7Ef,EAAIW,GAAG,yCACPX,EAAIW,GAAG,2CAA2CK,GAAG,CAAC,MAAQ,SAAS8K,GAAiC,OAAzBA,EAAOwC,kBAAyBtO,EAAIiB,gBAAgBgN,EAAIrN,cAAc,CAACR,EAAG,IAAI,CAACI,YAAY,wBAAwB,CAACR,EAAIS,GAAG,YAAsEL,EAAG,cAAc,CAACE,MAAM,CAAC,GAAK2N,EAAIM,gBAAgB9C,YAAYzL,EAAI0L,GAAG,CAAC,CAACnK,IAAI,UAAUoK,GAAG,SAASjK,GACnX,IAAI8M,EAAO9M,EAAI8M,KACXC,EAAW/M,EAAI+M,SACnC,MAAO,CAACrO,EAAG,IAAI,CAACI,YAAY,+EAA+EF,MAAM,CAAC,KAAOkO,EAAK,MAAQxO,EAAIW,GAAG,2CAA2CK,GAAG,CAAC,MAAQ,SAAS8K,GAAiC,OAAzBA,EAAOwC,kBAAyBG,EAASvB,MAAM,KAAMC,cAAc,CAAC/M,EAAG,IAAI,CAACI,YAAY,wBAAwB,CAACR,EAAIS,GAAG,2BAA2B,MAAK,KAAQL,EAAG,cAAc,CAACE,MAAM,CAAC,GAAK2N,EAAIS,cAAcjD,YAAYzL,EAAI0L,GAAG,CAAC,CAACnK,IAAI,UAAUoK,GAAG,SAASjK,GACpc,IAAI8M,EAAO9M,EAAI8M,KACXC,EAAW/M,EAAI+M,SACnC,MAAO,CAACrO,EAAG,IAAI,CAACI,YAAY,8CAA8CF,MAAM,CAAC,KAAOkO,GAAMxN,GAAG,CAAC,MAAQ,SAAS8K,GAAiC,OAAzBA,EAAOwC,kBAAyBG,EAASvB,MAAM,KAAMC,cAAc,CAACnN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kCAAkC,WAAW,MAAK,MAAS,IAAyB,iBAApBuN,EAAOC,SAA6B,CAAsC,IAApCF,EAAIU,WAAWT,EAAOC,UAAiB/N,EAAG,OAAO,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAI4O,GAAG,SAAP5O,CAAiBiO,EAAIU,WAAWT,EAAOC,YAAY,QAAQnO,EAAIc,MAC/Z,6BAApBoN,EAAOC,UACa,0BAApBD,EAAOC,UACa,gCAApBD,EAAOC,SACP,CAAsC,KAApCF,EAAIU,WAAWT,EAAOC,UAAkB,CAAC/N,EAAG,yBAAyB,CAACE,MAAM,CAAC,MAAQ2N,EAAIU,WAAWT,EAAOC,cAAcnO,EAAIc,MAAM,CAACd,EAAIS,GAAG,IAAIT,EAAIU,GAAGuN,EAAIU,WAAWT,EAAOC,WAAW,SAAS,CAAC5M,IAAI,WAAWoK,GAAG,SAASjK,GAChO,IAAImN,EAAWnN,EAAImN,SACfX,EAASxM,EAAIwM,OACzB,MAAO,CAAsB,YAApBA,EAAOC,cAAwB,EAA4B,iBAApBD,EAAOC,SAA6B,CAA6C,KAA3CU,EAASF,WAAWG,mBAA2B1O,EAAG,MAAM,CAACI,YAAY,UAAU,CAA2C,KAAzCqO,EAASF,WAAWT,EAAOC,UAAkB/N,EAAG,OAAO,CAACI,YAAY,QAAQ,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAI4O,GAAG,SAAP5O,CAAiB6O,EAASF,WAAWT,EAAOC,YAAY,QAAQnO,EAAIc,KAAM+N,EAASF,WAA6B,mBAAEvO,EAAG,IAAI,CAACI,YAAY,sBAAsByL,MAAM,CACtZ,qBACE4C,EAASF,WAAWG,qBAAuB9O,EAAI+O,cAAcC,GAC/D,cACEH,EAASF,WAAWG,qBAClB9O,EAAI+O,cAAcE,MACpBJ,EAASF,WAAWG,qBAAuB9O,EAAI+O,cAAcG,KAC/D5O,MAAM,CAAC,MAAQN,EAAIW,GAAG,kDAAmD,CACnC,KAApCkO,EAASF,WAAW9D,YAChB7K,EAAImP,aAAaN,EAASF,WAAW9D,aACrC,IACgC,KAApCgE,EAASF,WAAWhE,YAChB3K,EAAImP,aAAaN,EAASF,WAAWhE,aACrC,QAAS,CACbkE,EAASF,WAAWG,qBAAuB9O,EAAI+O,cAAcC,GAC7D,CAAChP,EAAIS,GAAG,yBACRoO,EAASF,WAAWG,qBAAuB9O,EAAI+O,cAAcE,KAC7D,CAACjP,EAAIS,GAAG,gBACRoO,EAASF,WAAWG,qBAAuB9O,EAAI+O,cAAcG,IAC7D,CAAClP,EAAIS,GAAG,kBAAkBT,EAAIc,MAAM,GAAGd,EAAIc,OAAOd,EAAIc,MACxC,6BAApBoN,EAAOC,UACa,0BAApBD,EAAOC,UACa,gCAApBD,EAAOC,SACP,CAA2C,KAAzCU,EAASF,WAAWT,EAAOC,UAAkB,CAAC/N,EAAG,yBAAyB,CAACE,MAAM,CAAC,MAAQuO,EAASF,WAAWT,EAAOC,cAAcnO,EAAIc,MAAM,CAACd,EAAIS,GAAG,IAAIT,EAAIU,GAAGmO,EAASF,WAAWT,EAAOC,WAAW,UAAU,MAAK,EAAM,aAAanO,EAAIc,KAAKV,EAAG,yBAAyB,CAACsB,IAAI,yBAAyBpB,MAAM,CAAC,UAAYN,EAAIoP,qBAAqB,gBAAkBpP,EAAIe,oBAAoB,IACzYY,EAAkB,G,kKC9ClB,EAAS,WAAa,IAAI3B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,OAAO,CAACI,YAAY,8DAA8DyL,MAAM,CACvL,8CAA+CjM,EAAIqP,cACnD,+BAAgCrP,EAAIsP,eACpC,uCAAwCtP,EAAIuP,cAC3C,CAACvP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8BAA+B,CAACX,EAAIuF,SAAS,QACxE,EAAkB,G,YCgBD,EAArB,uTAIE,WACE,OAAO,eAAgCtF,KAAKsF,SALhD,yBAQE,WACE,OAAOtF,KAAKuP,cAAgB,OAA6BC,QAT7D,0BAYE,WACE,OAAOxP,KAAKuP,cAAgB,OAA6BE,SAb7D,uBAgBE,WACE,OAAOzP,KAAKuP,cAAgB,OAA6BG,QAjB7D,GAAoD,QAElD,gBADC,eAAK,CAAE/I,UAAU,K,4BADC,EAAsB,gBAD1C,QACoB,OCrBTgJ,EDqBS,IErB4X,I,wBCQ7YlL,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,E,iCFnBf,SAAYkL,GACV,aACA,eACA,kBAHF,CAAYA,MAAuB,K,IGgM9BC,E,qCAAL,SAAKA,GACH,yBACA,uBACA,yDACA,mDACA,gEALF,CAAKA,MAAqB,KAe1B,IAAqB,EAArB,2XAMmCD,GANnC,gDAOkCE,EAAA,MAPlC,mDAS2C,MAT3C,4DAU6C,GAV7C,0CAY0CD,EAAsBE,UAZhE,sDAcE,WACE,OAAO7M,EAAA,KAAYC,cACjBC,EAAA,KAAeC,gCAhBrB,gCAoBE,WACE,OAAgC,OAAzBpD,KAAKoO,gBACRjM,EAAA,KAAmBa,KAAKhD,KAAKoO,iBAC7B,OAvBR,mBA0BE,WACE,MAAO,CACL,CACE2B,KAAM/P,KAAKU,GAAG,mCAAmCuB,WACjDiM,SAAU,WACV8B,YAAY,EACZC,eAAe,GAEjB,CACEF,KAAM/P,KAAKU,GAAG,iCAAiCuB,WAC/CiM,SAAU,UACV8B,YAAY,GAEd,CACED,KAAM/P,KAAKU,GAAG,sCAAsCuB,WACpDiM,SAAU,eACV8B,YAAY,GAEd,CACED,KAAM/P,KAAKU,GACT,kDACAuB,WACFiM,SAAU,2BACV8B,YAAY,GAEd,CACED,KAAM/P,KAAKU,GAAG,+CAA+CuB,WAC7DiM,SAAU,wBACV8B,YAAY,GAEd,CACED,KAAM/P,KAAKU,GACT,qDACAuB,WACFiM,SAAU,8BACV8B,YAAY,GAEd,CACED,KAAM,GACN7B,SAAU,cAjElB,gBAsEE,WAAgB,WACd,OAAOlO,KAAKgJ,WAAW7C,KAAI,SAACxF,GAAa,kBACjC+N,EAAiD,CACrDwB,SAAUvP,EAAUC,aACpBwF,QAAS,GACT+J,aAAY,UAAExP,EAAUyP,iCAAZ,QAAyC,EACrDC,yBAAwB,oBACtB1P,EAAUM,wBADY,aACtB,EAA4BqP,6CADN,QAEtB,GACFC,sBAAqB,oBACnB5P,EAAUM,wBADS,aACnB,EAA4BuP,0CADT,QAC+C,GACpEC,4BAA2B,oBACzB9P,EAAUM,wBADe,aACzB,EACIyP,gDAFqB,QAEuB,IAG9CC,EAA6BhQ,EAAUO,SAASiF,KAAI,SAACC,GAAD,sCAAc,CACtEsI,WAAY,CACVtI,QAASA,EAAQG,YACjB4J,aAAY,oBAAE/J,EAAQoE,oBAAV,aAAE,EAAsBoG,4BAAxB,QAAgD,GAC5DP,yBAAwB,oBACtBjK,EAAQyK,0BADc,aACtB,EAA4BP,6CADN,QAEtB,GACFC,sBAAqB,oBACnBnK,EAAQyK,0BADW,aACnB,EAA4BL,0CADT,QAEnB,GACFC,4BAA2B,oBACzBrK,EAAQyK,0BADiB,aACzB,EACIH,gDAFqB,QAEuB,GAElDlK,cAAeJ,EAAQI,cACvBqI,mBAAkB,oBAAEzI,EAAQoE,oBAAV,aAAE,EAAsBqE,0BAAxB,QAA8C,GAChEjE,YAAW,oBAAExE,EAAQoE,oBAAV,aAAE,EAAsBI,mBAAxB,QAAuC,GAClDF,YAAW,oBAAEtE,EAAQoE,oBAAV,aAAE,EAAsBE,mBAAxB,QAAuC,IAEpDoG,SACuC,IAArC,EAAK/L,qBAAqBJ,SACzB,EAAKI,qBAAqBmE,MACzB,SAACG,GAAD,OAAyBA,IAAwBjD,EAAQC,mBAI/D,MAAO,CACLqI,aACA/N,YACA2N,eAAgB,CACd/K,KAAM,OACNkG,MAAO,CAAE9I,UAAWA,EAAUY,GAAGU,aAEnCwM,aAAc,CACZlL,KAAM,OACNjB,OAAQ,CACNC,eAAgB5B,EAAUY,GAAGU,WAC7B8O,yBAA0BpQ,EAAUC,eAGxC+P,kBA9HR,6BAmIU,SAAgBhQ,GAA+B,WACjDX,KAAKmO,0BAITnO,KAAKoO,gBAAkBzN,EAAUY,GACjCvB,KAAKmO,yBAA0B,EAE/BhM,EAAA,KACGC,aAAapC,KAAKoO,iBAClB5L,MAAK,WACJ,EAAKkB,WAAU,WACZ,EAAKC,MAAMC,uBAAkDC,aAGjEhB,SAAQ,WACP,EAAKsL,yBAA0B,UAnJvC,GAAmD,QAEjD,gBADC,eAAK,CAAExH,UAAU,K,iCAGlB,gBADC,eAAK,CAAEA,UAAU,K,2CAHC,EAAqB,gBAPzC,eAAU,CACT3C,WAAY,CACVgN,QAAA,KACA3M,yBAAA,KACA4M,uBAAA,MAGiB,WC/M2X,ICO5Y,EAAY,eACd,EACAnR,EACA4B,GACA,EACA,KACA,KACA,MAIa,S,8LCZT,E,sMACG,SACLf,GAA8B,uBAERA,EAAUO,UAFF,IAE9B,2BAA0C,CAKxC,IALwC,IAA/BkF,EAA+B,QAClC8K,EACJ,GAEEC,EAAO,IAAOC,EAAA,KAAMC,YAAY,IAAIC,OAASC,IAAI,EAAG,QAC/CC,EAAI,EAAGA,EAAI,EAAGA,IACrBN,EAAyBnL,KAAK,CAC5B0L,gBAAiBN,EAAKO,cACtBC,WAAYR,EAAKS,UACjBtM,MAAOuM,KAAKC,MAAsB,KAAhBD,KAAKE,YAGzBZ,EAAOA,EAAKI,IAAI,EAAG,QAGrBnL,EAAQ8K,yBAA2BA,GAjBP,mC,GAFK,cAwB1Bc,EAAiB,IAAI,ECvB5B,E,wDACJ,wD,4DAIO,WACL,OAAOhS,KAAKiS,IAAI,yCACbzP,MAAK,SAACyI,GACL,OAAOA,EAASjE,QAEjBvE,OAAM,SAAC6F,GACN,OAAOb,QAAQgB,OAAOH,Q,0BAIrB,SAAa/G,GAClB,OAAOvB,KAAKiS,IAAL,uCAAyC1Q,IAC7CiB,MAAK,SAACyI,GAKL,OAHIiH,EAAA,KAAOC,eACTH,EAAeI,qCAAqCnH,EAASjE,MAExDiE,EAASjE,QAEjBvE,OAAM,SAAC6F,GACN,OAAOb,QAAQgB,OAAOH,Q,6BAIrB,SACL/F,EACA+I,GAEA,OAAOtL,KAAKqS,IAAL,uCAAyC9P,GAAkB+I,GAC/D9I,MAAK,SAACyI,GAKL,OAHIiH,EAAA,KAAOC,eACTH,EAAeI,qCAAqCnH,EAASjE,MAExDiE,EAASjE,QAEjBvE,OAAM,SAAC6F,GACN,OAAOb,QAAQgB,OAAOH,U,GA1CSgK,EAAA,MA+CjCC,EACJ,IAAI,EAES,U,oCCzDf,W,oCCAA,IAAIzS,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACI,YAAY,kBAAkBF,MAAM,CAAC,MAAQN,EAAIuF,MAAM,QAAUvF,EAAIwF,QAAQ,YAAcxF,EAAIyF,YAAY,UAAYzF,EAAI0F,UAAU,SAAW1F,EAAI2F,SAAS,SAAW3F,EAAI4F,UAAU5E,GAAG,CAAC,MAAQhB,EAAI6F,QAAQ,OAAS7F,EAAI8F,aACxUnE,EAAkB,G,0KCyBD,EAArB,svBAiBE,WAAmB,WACb8Q,EAA0B,GAExBC,EACJzS,KAAK4E,gBACFqE,QAAO,SAACyJ,GAAD,OACN,EAAKC,iCAAiCD,MAEvCvM,KAAI,SAACuM,GAAD,MAAmB,CACtBnR,GAAI,gCAAF,OAAkCmR,EAAanR,IACjDyE,MAAO0M,EAAanP,KACpBqP,SAAUF,EAAapJ,UACpBL,QACC,SAACiH,GAAD,YAC+B3F,IAA7B,EAAKsI,qBACL3C,EAAS4C,gBAAkB,EAAKD,uBAEnC1M,KAAI,SAAC+J,GAAD,MAAe,CAClB3O,GAAI2O,EAAS3O,GACbyE,MAAO,GAAF,OAAKkK,EAAS3M,MAAd,OACH,EAAKwP,mBAAqB7C,EAAS4C,cAAgB,SAAW,YAKpEE,EAAiDhT,KAAK0E,aACzDuE,QAAO,SAACyJ,GAAD,OACN,EAAKC,iCAAiCD,MAEvCvM,KAAI,SAACuM,GAAD,MAAmB,CACtBnR,GAAI,6BAAF,OAA+BmR,EAAanR,IAC9CyE,MAAO0M,EAAanP,KACpBqP,SAAUF,EAAapJ,UACpBL,QACC,SAACiH,GAAD,YAC+B3F,IAA7B,EAAKsI,qBACL3C,EAAS4C,gBAAkB,EAAKD,uBAEnC1M,KAAI,SAAC+J,GAAD,MAAe,CAClB3O,GAAI2O,EAAS3O,GACbyE,MAAOkK,EAAS3M,aA6BxB,OAzBIyP,EAA6BrO,OAAS,GACxC6N,EAAMzM,KAAK,CACTxE,GAAI,eACJyE,MAAOhG,KAAKU,GACV,gDACAuB,WACF2Q,SAAUI,EACVC,mBAAmB,IAInBR,EAAgC9N,OAAS,IACvCqO,EAA6BrO,OAAS,EACxC6N,EAAMzM,KAAK,CACTxE,GAAI,kBACJyE,MAAOhG,KAAKU,GACV,mDACAuB,WACF2Q,SAAUH,IAGZD,EAAQA,EAAMU,OAAOT,IAIlBD,IAtFX,8CAyFU,SACNE,GAA0B,WAE1B,OAAOA,EAAapJ,UAAUJ,MAC5B,SAACgH,GAAD,YAC+B3F,IAA7B,EAAKsI,qBACL3C,EAAS4C,gBAAkB,EAAKD,yBA/FxC,qBAmGU,SAAQvJ,GACdtJ,KAAK0G,MAAM,QAAS4C,KApGxB,sBAuGU,SAASA,GACftJ,KAAK0G,MAAM,SAAU4C,OAxGzB,GAA6D,QACjC,gBAAzB,eAAK,CAAE3C,UAAU,K,4BACQ,gBAAzB,eAAK,CAAEA,UAAU,K,mCAElB,gBADC,eAAK,CAAEA,UAAU,K,sCAEQ,gBAAzB,eAAK,CAAEA,UAAU,K,kCAElB,gBADC,eAAK,CAAEA,UAAU,EAAOC,QAAS,kBAAM,M,+BAGxC,gBADC,eAAK,CAAED,UAAU,EAAOC,QAAS,kBAAM,M,gCAGxC,gBADC,eAAK,CAAED,UAAU,EAAOC,QAAS,gB,0CAGlC,gBADC,eAAK,CAAED,UAAU,EAAOC,QAAS,kBAAM,M,wCAGxC,gBADC,eAAK,CAAED,UAAU,EAAOC,QAAS,kBAAM,M,+BAdrB,EAA+B,gBALnD,eAAU,CACT5C,WAAY,CACV6C,aAAA,SAGiB,WC1BqY,I,wBCQtZpC,EAAY,eACd,EACA3E,EACA4B,GACA,EACA,KACA,WACA,MAIa,OAAA+C,E,kECnBf,W,gFCAA","file":"js/smiAdmin.ee87a82c.js","sourcesContent":["import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseChipStatus.vue?vue&type=style&index=0&id=417c9728&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DefaultLayout',[_c('Breadcrumbs',{attrs:{\"items\":_vm.breadcrumbs}}),_c('Messages'),_c('div',{staticClass:\"container-fluid mt-3\"},[_c('div',{staticClass:\"d-flex flex-row justify-content-between flex-wrap align-items-center\"},[_c('h1',{staticClass:\"t-heading-3 pr-2\"},[(_vm.warehouse)?[_vm._v(_vm._s(_vm.$t('smiAdminWarehousePage.title', [_vm.warehouse.customerName])))]:_vm._e()],2),_c('div',{staticClass:\"d-align-self-end\",attrs:{\"title\":_vm.isAllowedToEdit\n ? _vm.$t('smiAdminWarehousePage.settings.tooltip')\n : _vm.$t('smiAdminWarehousePage.settings.notAllowedToEdit')}},[_c('button',{staticClass:\"o-button o-button--black mr-2\",attrs:{\"disabled\":!_vm.isAllowedToEdit},on:{\"click\":_vm.onSettingsClick}},[_vm._v(\" \"+_vm._s(_vm.$t('smiAdminWarehousePage.settings.buttonText'))+\" \"),_c('i',{staticClass:\"material-icons ml-1\"},[_vm._v(\"edit\")])])])]),_c('span',{staticClass:\"o-line\"}),(_vm.warehouse)?[_c('div',{staticClass:\"mb-5\"},[_c('h2',{staticClass:\"t-heading-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiAdminWarehousePage.totalPerformance'))+\" \")]),(_vm.warehouse.totalPerformance)?_c('div',{staticClass:\"u-background-color-white p-4\"},[_c('SmiWarehousePerformanceCharts',{attrs:{\"performance\":_vm.warehouse.totalPerformance}})],1):_c('div',[_vm._v(_vm._s(_vm.$t('smiAdminWarehousePage.noTotalPerformance')))])]),(_vm.warehouse.products.length)?_c('div',{staticClass:\"mb-5\"},[_c('h2',{staticClass:\"t-heading-4 mb-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiAdminWarehousePage.products'))+\" \")]),_vm._l((_vm.warehouse.products),function(productDetails,index){return _c('SmiWarehouseProductsDetails',{key:index,staticClass:\"mb-4\",attrs:{\"productDetails\":productDetails,\"smiWarehouseId\":_vm.warehouse.id,\"isAllowedToEdit\":_vm.isAllowedToEditWarehouse}})})],2):_vm._e(),_c('SmiWarehouseDeliveries',{attrs:{\"warehouseId\":_vm.warehouse.id}})]:_vm._e()],2),_c('SmiAdminWarehouseModal',{ref:\"smiAdminWarehouseModal\",attrs:{\"warehouse\":_vm.warehouse,\"isAllowedToEdit\":_vm.isAllowedToEdit}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport DefaultLayout from '@/layouts/DefaultLayout.vue';\r\nimport Breadcrumbs from '@/components/general/Breadcrumbs.vue';\r\nimport Messages from '@/components/general/Messages.vue';\r\nimport SmiAdminWarehouseList from '@/components/SmiAdminWarehouseList.vue';\r\nimport SmiAdminWarehouseModal from '@/components/SmiAdminWarehouseModal.vue';\r\nimport SmiWarehousePerformanceCharts from '@/components/SmiWarehousePerformanceCharts.vue';\r\nimport SmiWarehouseProductsDetails from '@/components/SmiWarehouseProductsDetails.vue';\r\nimport SmiWarehouseDeliveries from '@/components/SmiWarehouseDeliveries.vue';\r\nimport { smiWarehouseModule } from '@/store/modules/smiWarehouse';\r\nimport {\r\n routeNameSmiAdminRoot,\r\n routeNameSmiAdminWarehouse,\r\n routeNameSmiAdminWarehouses,\r\n} from '@/router/routes';\r\nimport { Breadcrumb } from '@/models/Breadcrumb';\r\nimport { SmiWarehouseDetails } from '@/models/Smi/Warehouses/SmiWarehouseDetails';\r\nimport { RawLocation, Route } from 'vue-router';\r\nimport { loadingModule } from '@/store/modules/loading';\r\nimport i18n from '@/i18n/i18n';\r\nimport {\r\n getNotFoundOrErrorLocation,\r\n getRouteTrackingInfo,\r\n} from '@/router/functions';\r\nimport telemetryService from '@/services/TelemetryService';\r\nimport { PermissionType } from '@/models/UserProfile/PermissionType';\r\nimport { Permissions } from '@/utils/Permissions';\r\n\r\nComponent.registerHooks(['beforeRouteEnter', 'beforeRouteUpdate']);\r\n\r\nasync function beforeRoute(\r\n to: Route,\r\n from: Route,\r\n next: (to?: RawLocation | void) => void\r\n): Promise {\r\n const loading = await loadingModule.dispatchAdd(\r\n i18n.tc('loading.smiAdminWarehousePage').toString()\r\n );\r\n smiWarehouseModule\r\n .dispatchLoad(Number(to.params.smiWarehouseId))\r\n .then(() => {\r\n // Warehouse found, continue\r\n next();\r\n })\r\n .catch(() => {\r\n // Warehouse not found, stop tracking and show 404 page\r\n telemetryService.stopTrackPage(getRouteTrackingInfo(to), {\r\n stoppedInAdvance: true,\r\n notFound: true,\r\n });\r\n next(getNotFoundOrErrorLocation(to));\r\n })\r\n .finally(() => {\r\n loadingModule.commitComplete(loading);\r\n });\r\n}\r\n\r\n@Component({\r\n components: {\r\n DefaultLayout,\r\n Breadcrumbs,\r\n Messages,\r\n SmiAdminWarehouseList,\r\n SmiAdminWarehouseModal,\r\n SmiWarehousePerformanceCharts,\r\n SmiWarehouseProductsDetails,\r\n SmiWarehouseDeliveries,\r\n },\r\n})\r\nexport default class SmiAdminWarehousePage extends Vue {\r\n private smiWarehouseId: number = 0;\r\n\r\n private get warehouse(): SmiWarehouseDetails | null {\r\n return smiWarehouseModule.item(this.smiWarehouseId);\r\n }\r\n\r\n private get isAllowedToEdit(): boolean {\r\n return Permissions.hasPermission(\r\n PermissionType.IsAllowedToEditSmiWarehouses\r\n );\r\n }\r\n\r\n private get isAllowedToEditWarehouse(): boolean {\r\n return Permissions.hasPermission(\r\n PermissionType.IsAllowedToEditSmiWarehouse\r\n );\r\n }\r\n\r\n private get breadcrumbs(): Breadcrumb[] {\r\n return [\r\n {\r\n routeName: routeNameSmiAdminRoot,\r\n name: this.$t('breadcrumbs.' + routeNameSmiAdminRoot).toString(),\r\n },\r\n {\r\n routeName: routeNameSmiAdminWarehouses,\r\n name: this.$t('breadcrumbs.' + routeNameSmiAdminWarehouses).toString(),\r\n },\r\n {\r\n routeName: routeNameSmiAdminWarehouse,\r\n name: this.$t('breadcrumbs.' + routeNameSmiAdminWarehouse, [\r\n this.warehouse?.customerName,\r\n ]).toString(),\r\n },\r\n ];\r\n }\r\n\r\n public async beforeRouteEnter(\r\n to: Route,\r\n from: Route,\r\n next: (to?: RawLocation | void) => void\r\n ): Promise {\r\n await beforeRoute(to, from, next);\r\n }\r\n\r\n public async beforeRouteUpdate(\r\n to: Route,\r\n from: Route,\r\n next: (to?: RawLocation | void) => void\r\n ): Promise {\r\n await beforeRoute(to, from, next);\r\n }\r\n\r\n @Watch('$route', { immediate: false, deep: true })\r\n private onRouteChange(): void {\r\n this.initialize();\r\n telemetryService.stopTrackPage(getRouteTrackingInfo(this.$route));\r\n }\r\n\r\n private created(): void {\r\n this.initialize();\r\n telemetryService.stopTrackPage(getRouteTrackingInfo(this.$route));\r\n }\r\n\r\n private initialize(): void {\r\n this.smiWarehouseId = Number(this.$route.params.smiWarehouseId);\r\n }\r\n\r\n private onSettingsClick() {\r\n this.$nextTick(() => {\r\n (this.$refs.smiAdminWarehouseModal as SmiAdminWarehouseModal).show();\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiAdminWarehousePage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiAdminWarehousePage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmiAdminWarehousePage.vue?vue&type=template&id=c368a12c&\"\nimport script from \"./SmiAdminWarehousePage.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmiAdminWarehousePage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DefaultLayout',[_c('Breadcrumbs',{attrs:{\"items\":_vm.breadcrumbs}}),_c('Messages'),_c('div',{staticClass:\"container-fluid mt-3\"},[_c('div',{staticClass:\"d-flex flex-row justify-content-between flex-wrap align-items-center\"},[_c('h1',{staticClass:\"t-heading-3\"},[_vm._v(_vm._s(_vm.$t('smiAdminWarehousesPage.title')))])]),_c('span',{staticClass:\"o-line\"}),_c('div',{staticClass:\"d-flex flex-wrap mb-4\"},[(_vm.responsibles.length || _vm.nonResponsibles.length)?_c('CompanyChainCustomersTreeSelect',{staticClass:\"customers-tree-select mr-sm-3 mb-1\",attrs:{\"value\":_vm.filteredCustomerIds,\"responsibles\":_vm.responsibles,\"nonResponsibles\":_vm.nonResponsibles,\"clearable\":true,\"placeholder\":_vm.$t('smiAdminWarehousesPage.allCustomers')},on:{\"select\":_vm.onCustomersFilterSelect}}):_vm._e(),(_vm.products.length)?_c('ProductsByNamesTreeSelect',{staticClass:\"products-tree-select mr-sm-3 mb-1\",attrs:{\"value\":_vm.filteredProductNames,\"products\":_vm.products,\"clearable\":true,\"placeholder\":_vm.$t('smiAdminWarehousesPage.allProducts')},on:{\"select\":_vm.onProductsFilterSelect}}):_vm._e(),(_vm.anyFilter && !_vm.isLoading)?_c('button',{staticClass:\"o-button px-1\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.onClearFilters}},[_vm._v(\" \"+_vm._s(_vm.$t('smiAdminWarehousesPage.clearFilters'))+\" \"),_c('i',{staticClass:\"material-icons\"},[_vm._v(\"clear\")])]):_vm._e()],1),(_vm.errorLoading)?_c('div',{staticClass:\"c-alert c-alert--red mb-2\"},[_c('span',{staticClass:\"c-alert__text\"},[_vm._v(_vm._s(_vm.$t('smiAdminWarehousesPage.error')))])]):_vm._e(),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[(_vm.isLoading)?_c('div',{staticClass:\"u-position-relative u-min-height-300\"},[_c('span',{staticClass:\"o-loader o-loader--absolute\"})]):(!_vm.errorLoading)?[(_vm.filteredWarehouses.length)?[_c('SmiAdminWarehouseList',{attrs:{\"warehouses\":_vm.filteredWarehouses,\"filteredProductNames\":_vm.filteredProductNames}})]:_c('div',[(_vm.anyFilter)?[_vm._v(_vm._s(_vm.$t('smiAdminWarehousesPage.noData.filtered')))]:[_vm._v(_vm._s(_vm.$t('smiAdminWarehousesPage.noData.notFiltered')))]],2)]:_vm._e()],2)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('TreeSelect',{staticClass:\"the-tree-select\",attrs:{\"value\":_vm.value,\"options\":_vm.options,\"placeholder\":_vm.placeholder,\"clearable\":_vm.clearable,\"multiple\":_vm.multiple,\"disabled\":_vm.disabled},on:{\"input\":_vm.onInput,\"select\":_vm.onSelect}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport TreeSelect, {\r\n TreeSelectNode,\r\n} from '@/components/general/TreeSelect.vue';\r\nimport { IProduct } from '@/models/IProduct';\r\n\r\n@Component({\r\n components: {\r\n TreeSelect,\r\n },\r\n})\r\nexport default class ProductsByNamesTreeSelect extends Vue {\r\n @Prop({ required: true }) private value!: string[];\r\n @Prop({ required: true }) private products!: IProduct[];\r\n @Prop({ required: true }) private placeholder!: string;\r\n @Prop({ required: false, default: () => false })\r\n private clearable!: boolean;\r\n @Prop({ required: false, default: () => true })\r\n private multiple!: boolean;\r\n @Prop({ required: false, default: () => false })\r\n private disabled!: boolean;\r\n @Prop({ required: false, default: () => false })\r\n private placeholderAsEmptyOption!: boolean;\r\n\r\n private get options(): TreeSelectNode[] {\r\n const options: TreeSelectNode[] = [];\r\n\r\n if (this.placeholderAsEmptyOption) {\r\n options.push({\r\n id: '',\r\n label: this.placeholder,\r\n });\r\n }\r\n\r\n const productsUniqueByName = [\r\n ...new Map(\r\n this.products.map((product) => [product.productName, product])\r\n ).values(),\r\n ];\r\n\r\n for (let product of productsUniqueByName) {\r\n options.push({\r\n id: product.productName,\r\n label:\r\n product.displayName && product.displayName !== ''\r\n ? product.displayName\r\n : product.productNumber,\r\n });\r\n }\r\n\r\n return options;\r\n }\r\n\r\n private onInput(productNames: string[]) {\r\n this.$emit('input', productNames);\r\n }\r\n\r\n private onSelect(productNames: string[]) {\r\n if (productNames.length === 1 && productNames[0] === '') {\r\n productNames = [];\r\n }\r\n this.$emit('select', productNames);\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductsByNamesTreeSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductsByNamesTreeSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProductsByNamesTreeSelect.vue?vue&type=template&id=6b89d812&scoped=true&\"\nimport script from \"./ProductsByNamesTreeSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProductsByNamesTreeSelect.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProductsByNamesTreeSelect.vue?vue&type=style&index=0&id=6b89d812&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b89d812\",\n null\n \n)\n\nexport default component.exports","import { CommonStore } from '@/store/common';\r\nimport { store } from '@/store';\r\n\r\nimport {\r\n Module,\r\n VuexModule,\r\n Mutation,\r\n Action,\r\n getModule,\r\n} from 'vuex-module-decorators';\r\nimport { Consoler } from '@/utils/Consoler';\r\nimport smiAdminWarehouseService from '@/services/SmiAdminWarehouseService';\r\nimport { SmiWarehousesOverview } from '@/models/Smi/Warehouses/SmiWarehousesOverview';\r\n\r\n@Module({\r\n namespaced: true,\r\n name: 'smiWarehousesOverview',\r\n dynamic: true,\r\n store,\r\n})\r\nclass SmiWarehousesOverviewModule extends VuexModule {\r\n public data: SmiWarehousesOverview | null = null;\r\n\r\n private common = new CommonStore(10); // reLoadMinMinutesInterval\r\n\r\n // ---------------\r\n // ### Getters ###\r\n // ---------------\r\n\r\n public get loading() {\r\n return this.common.loading;\r\n }\r\n\r\n // -----------------\r\n // ### Mutations ###\r\n // -----------------\r\n\r\n @Mutation public commitSetSmiWarehousesOverview(\r\n payload: SmiWarehousesOverview\r\n ) {\r\n this.data = payload;\r\n }\r\n\r\n @Mutation public commitClearSmiWarehousesOverview() {\r\n this.data = null;\r\n }\r\n\r\n // From common:\r\n @Mutation private commitSetLoadedDate() {\r\n this.common.setLoadedDate();\r\n }\r\n @Mutation private commitClearLoadedDate() {\r\n this.common.clearLoadedDate();\r\n }\r\n @Mutation private commitSetLoadingError(payload: { error: any }) {\r\n this.common.setLoadingError(payload);\r\n }\r\n @Mutation private commitSetLoading() {\r\n this.common.setLoading();\r\n }\r\n @Mutation private commitClearLoading() {\r\n this.common.clearLoading();\r\n }\r\n @Mutation private commitSetLoadingPromise(payload: {\r\n loadingPromise: Promise;\r\n loadingPromiseForId: any;\r\n }) {\r\n this.common.setLoadingPromise(payload);\r\n }\r\n\r\n // ---------------\r\n // ### Actions ###\r\n // ---------------\r\n\r\n @Action\r\n public async dispatchLoad(payload: { force?: boolean }): Promise {\r\n if (!payload.force && !this.common.needToReLoad()) {\r\n return Promise.resolve();\r\n }\r\n\r\n if (this.common.isCurrentlyLoading()) {\r\n return this.common.loading.loadingPromise;\r\n }\r\n\r\n this.commitSetLoading();\r\n this.commitClearSmiWarehousesOverview();\r\n\r\n const loadingPromise = smiAdminWarehouseService\r\n .getWarehousesOverview()\r\n .then((smiWarehousesOverview) => {\r\n this.commitSetSmiWarehousesOverview(smiWarehousesOverview);\r\n this.commitSetLoadedDate();\r\n this.commitClearLoading();\r\n Consoler.debugLog('Load smi warehouses success', smiWarehousesOverview);\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Load smi warehouses failed', error);\r\n this.commitSetLoadingError({ error });\r\n\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoadingPromise({\r\n loadingPromise,\r\n loadingPromiseForId: null,\r\n });\r\n\r\n return loadingPromise;\r\n }\r\n}\r\n\r\nexport const smiWarehousesOverviewModule = getModule(\r\n SmiWarehousesOverviewModule\r\n);\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport DefaultLayout from '@/layouts/DefaultLayout.vue';\r\nimport Breadcrumbs from '@/components/general/Breadcrumbs.vue';\r\nimport Messages from '@/components/general/Messages.vue';\r\nimport SmiAdminWarehouseList from '@/components/SmiAdminWarehouseList.vue';\r\nimport CompanyChainCustomersTreeSelect from '@/components/CompanyChainCustomersTreeSelect.vue';\r\nimport ProductsByNamesTreeSelect from '@/components/ProductsByNamesTreeSelect.vue';\r\nimport { smiWarehousesOverviewModule } from '@/store/modules/smiWarehousesOverview';\r\nimport {\r\n routeNameSmiAdminRoot,\r\n routeNameSmiAdminWarehouses,\r\n} from '@/router/routes';\r\nimport { Breadcrumb } from '@/models/Breadcrumb';\r\nimport { SmiWarehouseOverview } from '@/models/Smi/Warehouses/SmiWarehouseOverview';\r\nimport { CompanyChain } from '@/models/CompanyChain';\r\nimport { Product } from '@/models/Product';\r\nimport telemetryService, {\r\n RouteTrackingInfo,\r\n} from '@/services/TelemetryService';\r\nimport { getRouteTrackingInfo } from '@/router/functions';\r\n\r\n@Component({\r\n components: {\r\n DefaultLayout,\r\n Breadcrumbs,\r\n Messages,\r\n SmiAdminWarehouseList,\r\n CompanyChainCustomersTreeSelect,\r\n ProductsByNamesTreeSelect,\r\n },\r\n})\r\nexport default class SmiAdminWarehousesPage extends Vue {\r\n private routeTrackingInfo: RouteTrackingInfo = {};\r\n private isLoading: boolean = false;\r\n private errorLoading: boolean = false;\r\n private filteredCustomerIds: number[] = [];\r\n private filteredProductNames: string[] = [];\r\n\r\n private get anyFilter(): boolean {\r\n return (\r\n this.filteredCustomerIds.length > 0 ||\r\n this.filteredProductNames.length > 0\r\n );\r\n }\r\n\r\n private get filteredWarehouses(): SmiWarehouseOverview[] {\r\n return this.warehouses.filter(\r\n (warehouse) =>\r\n (this.filteredCustomerIds.length === 0 ||\r\n this.filteredCustomerIds.some(\r\n (filteredCustomerId) => warehouse.customerId === filteredCustomerId\r\n )) &&\r\n (this.filteredProductNames.length === 0 ||\r\n this.filteredProductNames.some((filteredProductName) =>\r\n warehouse.products.some(\r\n (product) => product.productName === filteredProductName\r\n )\r\n ))\r\n );\r\n }\r\n\r\n private get warehouses(): SmiWarehouseOverview[] {\r\n return smiWarehousesOverviewModule.data?.warehouses ?? [];\r\n }\r\n\r\n private get responsibles(): CompanyChain[] {\r\n return smiWarehousesOverviewModule.data?.customers.responsibles ?? [];\r\n }\r\n\r\n private get nonResponsibles(): CompanyChain[] {\r\n return smiWarehousesOverviewModule.data?.customers.nonResponsibles ?? [];\r\n }\r\n\r\n private get products(): Product[] {\r\n return smiWarehousesOverviewModule.data?.products ?? [];\r\n }\r\n\r\n private get breadcrumbs(): Breadcrumb[] {\r\n return [\r\n {\r\n routeName: routeNameSmiAdminRoot,\r\n name: this.$t('breadcrumbs.' + routeNameSmiAdminRoot).toString(),\r\n },\r\n {\r\n routeName: routeNameSmiAdminWarehouses,\r\n name: this.$t('breadcrumbs.' + routeNameSmiAdminWarehouses).toString(),\r\n },\r\n ];\r\n }\r\n\r\n @Watch('$route', { immediate: false, deep: true })\r\n private onRouteChange(): void {\r\n this.routeTrackingInfo = getRouteTrackingInfo(this.$route);\r\n this.initialize().finally(() => {\r\n telemetryService.stopTrackPage(this.routeTrackingInfo);\r\n });\r\n }\r\n\r\n private created(): void {\r\n this.routeTrackingInfo = getRouteTrackingInfo(this.$route);\r\n this.initialize().finally(() => {\r\n telemetryService.stopTrackPage(this.routeTrackingInfo);\r\n });\r\n }\r\n\r\n private initialize(): Promise {\r\n let customerIds: number[] = [];\r\n let productNames: string[] = [];\r\n if (this.$route.query.customers) {\r\n customerIds = this.$route.query.customers\r\n .toString()\r\n .split(',')\r\n .map((p) => Number(p.trim()))\r\n .filter((p) => !isNaN(p) && p > 0);\r\n }\r\n if (this.$route.query.products) {\r\n productNames = this.$route.query.products\r\n .toString()\r\n .split(',')\r\n .map((p) => p.trim())\r\n .filter((p) => p !== '');\r\n }\r\n this.filteredCustomerIds = customerIds;\r\n this.filteredProductNames = productNames;\r\n\r\n return this.loadForecasts();\r\n }\r\n\r\n // Updates the query (if any changes) which then changes the $route and the @Watch is triggered\r\n private updateQuery(): boolean {\r\n const query = this.generateQuery();\r\n\r\n if (\r\n this.$route.query.products === query.products &&\r\n this.$route.query.customers === query.customers\r\n ) {\r\n return false;\r\n } else {\r\n this.$router.push({ query });\r\n\r\n return true;\r\n }\r\n }\r\n\r\n private generateQuery(): any {\r\n const query: { customers?: string; products?: string } = {};\r\n\r\n if (this.filteredCustomerIds.length > 0) {\r\n query.customers = this.filteredCustomerIds.join(',');\r\n }\r\n if (this.filteredProductNames.length > 0) {\r\n query.products = this.filteredProductNames.join(',');\r\n }\r\n\r\n return query;\r\n }\r\n\r\n private loadForecasts(force?: boolean): Promise {\r\n this.isLoading = true;\r\n this.errorLoading = false;\r\n\r\n return smiWarehousesOverviewModule\r\n .dispatchLoad({\r\n force,\r\n })\r\n .catch(() => {\r\n this.errorLoading = true;\r\n })\r\n .finally(() => {\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n private onCustomersFilterSelect(customers: number[]) {\r\n this.filteredCustomerIds = customers;\r\n this.updateQuery();\r\n }\r\n\r\n private onProductsFilterSelect(productNames: string[]) {\r\n this.filteredProductNames = productNames;\r\n this.updateQuery();\r\n }\r\n\r\n private onClearFilters() {\r\n this.filteredCustomerIds = [];\r\n this.filteredProductNames = [];\r\n this.updateQuery();\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiAdminWarehousesPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiAdminWarehousesPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmiAdminWarehousesPage.vue?vue&type=template&id=efdd1552&scoped=true&\"\nimport script from \"./SmiAdminWarehousesPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmiAdminWarehousesPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SmiAdminWarehousesPage.vue?vue&type=style&index=0&id=efdd1552&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"efdd1552\",\n null\n \n)\n\nexport default component.exports","import { Consoler } from '@/utils/Consoler';\r\nimport { store } from '@/store';\r\nimport {\r\n Module,\r\n VuexModule,\r\n Mutation,\r\n Action,\r\n getModule,\r\n} from 'vuex-module-decorators';\r\nimport { CommonArrayStore } from '../commonArrayStore';\r\nimport smiAdminWarehouseService from '@/services/SmiAdminWarehouseService';\r\nimport { UpdateSmiWarehouse } from '@/models/Smi/Warehouses/UpdateSmiWarehouse';\r\nimport { SmiWarehouseDetails } from '@/models/Smi/Warehouses/SmiWarehouseDetails';\r\n\r\n@Module({\r\n namespaced: true,\r\n name: 'smiWarehouse',\r\n dynamic: true,\r\n store,\r\n})\r\nclass SmiWarehouseModule extends VuexModule {\r\n private common = new CommonArrayStore(20); // reLoadMinMinutesInterval\r\n\r\n // ---------------\r\n // ### Getters ###\r\n // ---------------\r\n\r\n public get item() {\r\n return (id: number) => this.common.getDataFor(id);\r\n }\r\n\r\n // -----------------\r\n // ### Mutations ###\r\n // -----------------\r\n\r\n @Mutation private commitSetSmiWarehouse(payload: SmiWarehouseDetails) {\r\n for (const product of payload.products) {\r\n if (product.stockDetails !== undefined) {\r\n product.stockDetails.modifiedMaxQuantity =\r\n product.stockDetails.maxQuantity ?? 0;\r\n product.stockDetails.modifiedMinQuantity =\r\n product.stockDetails.minQuantity ?? 0;\r\n }\r\n }\r\n }\r\n @Mutation private commitSetLoading(payload: {\r\n id: number;\r\n loadingPromise: Promise;\r\n clearData?: boolean;\r\n }) {\r\n this.common.setLoading(payload);\r\n }\r\n @Mutation private commitSetLoadingComplete(payload: {\r\n id: number;\r\n data: SmiWarehouseDetails;\r\n }) {\r\n this.common.setLoadingComplete(payload);\r\n }\r\n @Mutation private commitSetLoadingError(payload: {\r\n id: number;\r\n error?: any;\r\n clearData?: boolean;\r\n }) {\r\n this.common.setLoadingError(payload);\r\n }\r\n\r\n // ---------------\r\n // ### Actions ###\r\n // ---------------\r\n\r\n @Action\r\n public async dispatchLoad(\r\n smiWarehouseId: number\r\n ): Promise {\r\n // If recently loaded, return\r\n if (this.common.hasFreshDataFor(smiWarehouseId)) {\r\n return Promise.resolve(this.item(smiWarehouseId)!);\r\n }\r\n\r\n const currentlyLoadingPromise =\r\n this.common.isCurrentlyLoading(smiWarehouseId);\r\n if (currentlyLoadingPromise) {\r\n Consoler.debugLog(\r\n 'Already loading, waiting for existing load to finish',\r\n 'smiWarehouse'\r\n );\r\n return currentlyLoadingPromise;\r\n }\r\n\r\n const loadingPromise = smiAdminWarehouseService\r\n .getWarehouse(smiWarehouseId)\r\n .then((response) => {\r\n this.commitSetSmiWarehouse(response);\r\n this.commitSetLoadingComplete({\r\n id: smiWarehouseId,\r\n data: response,\r\n });\r\n Consoler.debugLog(\r\n 'Load smiWarehouse success in smiWarehouse',\r\n response\r\n );\r\n return Promise.resolve(response);\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Load smiWarehouse failed in smiWarehouse', error);\r\n this.commitSetLoadingError({ id: smiWarehouseId, error });\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoading({\r\n id: smiWarehouseId,\r\n loadingPromise,\r\n clearData: true,\r\n });\r\n\r\n return loadingPromise;\r\n }\r\n\r\n @Action\r\n public async dispatchUpdateWarehouse(payload: {\r\n smiWarehouseId: number;\r\n update: UpdateSmiWarehouse;\r\n }): Promise {\r\n if (this.item(payload.smiWarehouseId) === null) {\r\n return Promise.reject('The warehouse needs to be loaded');\r\n }\r\n\r\n return smiAdminWarehouseService\r\n .updateWarehouse(payload.smiWarehouseId, payload.update)\r\n .then((smiWarehouse) => {\r\n this.commitSetSmiWarehouse(smiWarehouse);\r\n this.commitSetLoadingComplete({\r\n id: payload.smiWarehouseId,\r\n data: smiWarehouse,\r\n });\r\n Consoler.debugLog('Update smiWarehouse success.');\r\n return smiWarehouse;\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Update smiWarehouse failed', error);\r\n return Promise.reject(error);\r\n });\r\n }\r\n}\r\n\r\nexport const smiWarehouseModule = getModule(SmiWarehouseModule);\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ValidationObserver',{scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar invalid = ref.invalid;\nvar handleSubmit = ref.handleSubmit;\nreturn [_c('form',{staticClass:\"c-form c-form--validated u-width-100\",attrs:{\"autocomplete\":\"off\"},on:{\"submit\":function($event){$event.preventDefault();return handleSubmit(_vm.onSubmit)}}},[_c('Modal',{ref:\"modal\",attrs:{\"id\":\"smiAdminWarehouseModal\",\"title\":_vm.warehouse ? _vm.warehouse.customerName : '',\"showFooter\":true,\"closeableByOutsideClickAndEscKey\":false},scopedSlots:_vm._u([(_vm.warehouse)?{key:\"body\",fn:function(){return _vm._l((_vm.filteredProducts),function(product,index){return _c('div',{key:index,staticClass:\"pb-2 u-border-bottom\",class:{ 'mb-3': index !== _vm.filteredProducts.length - 1 }},[_c('table',{staticClass:\"keyvalue\"},[_c('h3',{staticClass:\"t-heading-5\"},[_vm._v(\" \"+_vm._s(product.displayName)+\" \")]),_c('tr',[_c('th',{attrs:{\"colspan\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('smiAdminWarehouseModal.inventoryParameters'))+\" \")])]),_c('tr',[_c('td',[_vm._v(_vm._s(_vm.$t('smiAdminWarehouseModal.minimum')))]),_c('td',[_vm._v(_vm._s(_vm.$t('smiAdminWarehouseModal.maximum')))])]),_c('tr',[_c('td',[_c('ValidationProvider',{staticClass:\"c-form-element-group prepend-right\",attrs:{\"rules\":(\"required|numeric|min_value:0|lessThanOrEqualTo:\" + (product.stockDetails.modifiedMaxQuantity)),\"tag\":\"div\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar failed = ref.failed;\nreturn [_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(product.stockDetails.modifiedMinQuantity),expression:\"product.stockDetails.modifiedMinQuantity\",modifiers:{\"number\":true}}],staticClass:\"o-text-input u-full-width\",class:{ invalid: failed },attrs:{\"type\":\"text\",\"inputmode\":\"numeric\",\"disabled\":_vm.updating,\"required\":true,\"title\":product.stockDetails.modifiedMinQuantity < 0\n ? _vm.$t('smiAdminWarehouseModal.minValueError')\n : undefined ||\n product.stockDetails.modifiedMinQuantity >\n product.stockDetails.modifiedMaxQuantity\n ? _vm.$t(\n 'smiAdminWarehouseModal.lessThanOrEqualToMaxError'\n )\n : undefined},domProps:{\"value\":(product.stockDetails.modifiedMinQuantity)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(product.stockDetails, \"modifiedMinQuantity\", _vm._n($event.target.value))},\"blur\":function($event){return _vm.$forceUpdate()}}})]}}],null,true)})],1),_c('td',[_c('ValidationProvider',{staticClass:\"c-form-element-group prepend-right\",attrs:{\"rules\":(\"required|numeric|min_value:0|largerThanOrEqualTo:\" + (product.stockDetails.modifiedMinQuantity)),\"tag\":\"div\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var failed = ref.failed;\nreturn [_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(product.stockDetails.modifiedMaxQuantity),expression:\"product.stockDetails.modifiedMaxQuantity\",modifiers:{\"number\":true}}],staticClass:\"o-text-input u-full-width\",class:{ invalid: failed },attrs:{\"type\":\"text\",\"inputmode\":\"numeric\",\"disabled\":_vm.updating,\"required\":true,\"title\":product.stockDetails.modifiedMaxQuantity < 0\n ? _vm.$t('smiAdminWarehouseModal.minValueError')\n : undefined ||\n product.stockDetails.modifiedMaxQuantity <\n product.stockDetails.modifiedMinQuantity\n ? _vm.$t(\n 'smiAdminWarehouseModal.largerThanOrEqualToMinError'\n )\n : undefined},domProps:{\"value\":(product.stockDetails.modifiedMaxQuantity)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(product.stockDetails, \"modifiedMaxQuantity\", _vm._n($event.target.value))},\"blur\":function($event){return _vm.$forceUpdate()}}})]}}],null,true)})],1)])])])})},proxy:true}:null,{key:\"footer\",fn:function(){return [(_vm.errorUpdating)?_c('div',{staticClass:\"c-alert c-alert--red mb-3\",attrs:{\"data-element-id\":\"smiAdminWarehouseModal-errorAlert\"}},[_c('span',{staticClass:\"c-alert__text\"},[_vm._v(_vm._s(_vm.$t('smiAdminWarehouseModal.errorUpdating')))]),_c('span',{staticClass:\"js-toggle-hidden c-alert__close\",attrs:{\"data-element-id\":\"smiAdminWarehouseModal-errorAlert\"}})]):_vm._e(),_c('div',[_c('button',{staticClass:\"o-button o-button--lime-green mr-2\",attrs:{\"type\":\"submit\",\"disabled\":!_vm.anyChanges || _vm.updating || !_vm.isAllowedToEdit || invalid}},[_vm._v(\" \"+_vm._s(_vm.$t('smiAdminWarehouseModal.okButton'))+\" \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.anyChanges),expression:\"anyChanges\"}],staticClass:\"o-button o-button--white mr-2\",attrs:{\"disabled\":_vm.updating},on:{\"click\":function($event){$event.preventDefault();return _vm.onReset.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('smiAdminWarehouseModal.reset'))+\" \")]),_c('button',{staticClass:\"o-button o-button--white mr-2\",attrs:{\"disabled\":_vm.updating},on:{\"click\":function($event){$event.preventDefault();return _vm.onClose.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('smiAdminWarehouseModal.cancel'))+\" \")])])]},proxy:true}],null,true)})],1)]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport Modal from '@/components/general/Modal.vue';\r\nimport { smiWarehouseModule } from '@/store/modules/smiWarehouse';\r\nimport { UpdateSmiWarehouse } from '@/models/Smi/Warehouses/UpdateSmiWarehouse';\r\nimport { SmiWarehouseDetails } from '@/models/Smi/Warehouses/SmiWarehouseDetails';\r\nimport { SmiWarehouseStockDetails } from '@/models/Smi/Warehouses/SmiWarehouseStockDetails';\r\n\r\n@Component({\r\n components: {\r\n Modal,\r\n },\r\n})\r\nexport default class SmiAdminWarehouseModal extends Vue {\r\n @Prop({ required: true }) private warehouse!: SmiWarehouseDetails | null;\r\n @Prop({ required: true }) private isAllowedToEdit!: boolean;\r\n\r\n private updating: boolean = false;\r\n private errorUpdating: boolean = false;\r\n\r\n private get anyChanges(): boolean {\r\n return this.anyStockLevelChanges();\r\n }\r\n\r\n private get filteredProducts(): {\r\n productNumber: string;\r\n displayName: string;\r\n stockDetails: SmiWarehouseStockDetails;\r\n }[] {\r\n return (\r\n this.warehouse?.products\r\n .filter((p) => p.stockDetails !== undefined)\r\n .map((p) => ({\r\n productNumber: p.productNumber,\r\n displayName: p.displayName,\r\n stockDetails: p.stockDetails!,\r\n })) ?? []\r\n );\r\n }\r\n\r\n public show(): void {\r\n this.initialize();\r\n\r\n (this.$refs.modal as Modal).showModal();\r\n }\r\n\r\n private initialize(): void {\r\n if (this.warehouse === null) {\r\n return;\r\n }\r\n }\r\n\r\n private anyStockLevelChanges(): boolean {\r\n return this.filteredProducts.some(\r\n (product) =>\r\n product.stockDetails.modifiedMinQuantity !==\r\n product.stockDetails.minQuantity ||\r\n product.stockDetails.modifiedMaxQuantity !==\r\n product.stockDetails.maxQuantity\r\n );\r\n }\r\n\r\n private onSubmit() {\r\n if (this.warehouse === null || !this.isAllowedToEdit) {\r\n return;\r\n }\r\n\r\n this.updating = true;\r\n this.errorUpdating = false;\r\n\r\n const updateModel: UpdateSmiWarehouse = {\r\n stockOptions: this.filteredProducts.map((product) => ({\r\n productNumber: product.productNumber,\r\n minQuantity: product.stockDetails.modifiedMinQuantity,\r\n maxQuantity: product.stockDetails.modifiedMaxQuantity,\r\n })),\r\n };\r\n\r\n smiWarehouseModule\r\n .dispatchUpdateWarehouse({\r\n smiWarehouseId: this.warehouse.id,\r\n update: updateModel,\r\n })\r\n .then(() => {\r\n (this.$refs.modal as Modal).hideModal();\r\n })\r\n .catch(() => {\r\n this.errorUpdating = true;\r\n })\r\n .finally(() => {\r\n this.updating = false;\r\n });\r\n }\r\n\r\n private onReset() {\r\n this.filteredProducts.forEach((product) => {\r\n product.stockDetails.modifiedMinQuantity =\r\n product.stockDetails.minQuantity ?? 0;\r\n product.stockDetails.modifiedMaxQuantity =\r\n product.stockDetails.maxQuantity ?? 0;\r\n });\r\n }\r\n\r\n private onClose() {\r\n (this.$refs.modal as Modal).hideModal();\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiAdminWarehouseModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiAdminWarehouseModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmiAdminWarehouseModal.vue?vue&type=template&id=65d4a745&\"\nimport script from \"./SmiAdminWarehouseModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmiAdminWarehouseModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.warehouses.length)?_c('Table',{attrs:{\"columns\":_vm.columns,\"rows\":_vm.rows,\"usePagination\":true,\"expandable\":true},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nvar column = ref.column;\nreturn [(column.property === 'buttons')?[_c('div',{staticClass:\"d-flex justify-content-end align-items-center nowrap\"},[(\n !_vm.loadingWarehouseDetails || _vm.editWarehouseId !== row.warehouse.id\n )?_c('button',{staticClass:\"o-round-button o-round-button--mini d-inline-block mr-2\",class:_vm.isAllowedToEdit\n ? 'o-round-button--black'\n : 'o-round-button-disabled',attrs:{\"disabled\":!_vm.isAllowedToEdit,\"title\":_vm.isAllowedToEdit\n ? _vm.$t('smiAdminWarehouseList.settingsTooltip')\n : _vm.$t('smiAdminWarehouseList.notAllowedToEdit')},on:{\"click\":function($event){$event.stopPropagation();return _vm.onSettingsClick(row.warehouse)}}},[_c('i',{staticClass:\"material-icons md-24\"},[_vm._v(\"edit\")])]):_c('span',{staticClass:\"o-loader o-loader--medium mr-3\"}),_c('router-link',{attrs:{\"to\":row.forecastsRoute},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var href = ref.href;\n var navigate = ref.navigate;\nreturn [_c('a',{staticClass:\"o-round-button o-round-button--mini o-round-button--blue d-inline-block mr-2\",attrs:{\"href\":href,\"title\":_vm.$t('smiAdminWarehouseList.forecastsTooltip')},on:{\"click\":function($event){$event.stopPropagation();return navigate.apply(null, arguments)}}},[_c('i',{staticClass:\"material-icons md-24\"},[_vm._v(\"event_available\")])])]}}],null,true)}),_c('router-link',{attrs:{\"to\":row.detailsRoute},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var href = ref.href;\n var navigate = ref.navigate;\nreturn [_c('a',{staticClass:\"o-button o-button--blue d-inline-block mr-3\",attrs:{\"href\":href},on:{\"click\":function($event){$event.stopPropagation();return navigate.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('smiAdminWarehouseList.details'))+\" \")])]}}],null,true)})],1)]:(column.property === 'currentStock')?[(row.properties[column.property] !== 0)?_c('span',[_vm._v(_vm._s(_vm._f(\"number\")(row.properties[column.property]))+\" t\")]):_vm._e()]:(\n column.property === 'forecastVsSalesAgreement' ||\n column.property === 'consumptionVsForecast' ||\n column.property === 'consumptionVsSalesAgreement'\n )?[(row.properties[column.property] !== '')?[_c('SmiWarehouseChipStatus',{attrs:{\"value\":row.properties[column.property]}})]:_vm._e()]:[_vm._v(\" \"+_vm._s(row.properties[column.property])+\" \")]]}},{key:\"childRow\",fn:function(ref){\n var childRow = ref.childRow;\n var column = ref.column;\nreturn [(column.property === 'buttons')?void 0:(column.property === 'currentStock')?[(childRow.properties.currentStockStatus !== '')?_c('div',{staticClass:\"nowrap\"},[(childRow.properties[column.property] !== '')?_c('span',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm._f(\"number\")(childRow.properties[column.property]))+\" t\")]):_vm._e(),(childRow.properties.currentStockStatus)?_c('i',{staticClass:\"material-icons pr-1\",class:{\n 'u-color-lime-green':\n childRow.properties.currentStockStatus === _vm.stockStatuses.OK,\n 'u-color-red':\n childRow.properties.currentStockStatus ===\n _vm.stockStatuses.High ||\n childRow.properties.currentStockStatus === _vm.stockStatuses.Low,\n },attrs:{\"title\":_vm.$t('smiAdminWarehouseList.currentStockStatusTooltip', [\n childRow.properties.minQuantity !== ''\n ? _vm.numberFilter(childRow.properties.minQuantity)\n : '?',\n childRow.properties.maxQuantity !== ''\n ? _vm.numberFilter(childRow.properties.maxQuantity)\n : '?' ])}},[(\n childRow.properties.currentStockStatus === _vm.stockStatuses.OK\n )?[_vm._v(\"check_circle_outline\")]:(\n childRow.properties.currentStockStatus === _vm.stockStatuses.High\n )?[_vm._v(\"trending_up\")]:(\n childRow.properties.currentStockStatus === _vm.stockStatuses.Low\n )?[_vm._v(\"trending_down\")]:_vm._e()],2):_vm._e()]):_vm._e()]:(\n column.property === 'forecastVsSalesAgreement' ||\n column.property === 'consumptionVsForecast' ||\n column.property === 'consumptionVsSalesAgreement'\n )?[(childRow.properties[column.property] !== '')?[_c('SmiWarehouseChipStatus',{attrs:{\"value\":childRow.properties[column.property]}})]:_vm._e()]:[_vm._v(\" \"+_vm._s(childRow.properties[column.property])+\" \")]]}}],null,false,894986801)}):_vm._e(),_c('SmiAdminWarehouseModal',{ref:\"smiAdminWarehouseModal\",attrs:{\"warehouse\":_vm.editWarehouseDetails,\"isAllowedToEdit\":_vm.isAllowedToEdit}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"chip-percent-status o-chip u-print-color u-text-center pr-1\",class:{\n 'u-background-color-lime-green u-color-white': _vm.isGreenStatus,\n 'u-background-color-yellow-50': _vm.isYellowStatus,\n 'u-background-color-red u-color-white': _vm.isRedStatus,\n }},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseChipStatus.text', [_vm.value]))+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport {\r\n getSmiDiffInPercentStatusColors,\r\n SmiDiffInPercentStatusColors,\r\n} from '@/utils/SmiHelpers';\r\n\r\n@Component\r\nexport default class SmiWarehouseChipStatus extends Vue {\r\n @Prop({ required: true })\r\n public value!: number;\r\n\r\n private get statusColor(): SmiDiffInPercentStatusColors | undefined {\r\n return getSmiDiffInPercentStatusColors(this.value);\r\n }\r\n\r\n private get isGreenStatus(): boolean {\r\n return this.statusColor === SmiDiffInPercentStatusColors.Green;\r\n }\r\n\r\n private get isYellowStatus(): boolean {\r\n return this.statusColor === SmiDiffInPercentStatusColors.Yellow;\r\n }\r\n\r\n private get isRedStatus(): boolean {\r\n return this.statusColor === SmiDiffInPercentStatusColors.Red;\r\n }\r\n}\r\n","export enum SmiWarehouseStockStatus {\r\n OK = 'OK',\r\n Low = 'Low',\r\n High = 'High',\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseChipStatus.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseChipStatus.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmiWarehouseChipStatus.vue?vue&type=template&id=417c9728&scoped=true&\"\nimport script from \"./SmiWarehouseChipStatus.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmiWarehouseChipStatus.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SmiWarehouseChipStatus.vue?vue&type=style&index=0&id=417c9728&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"417c9728\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport Table, {\r\n TableChildRow,\r\n TableColumn,\r\n TableRow,\r\n} from '@/components/general/Table.vue';\r\nimport SmiAdminWarehouseModal from '@/components/SmiAdminWarehouseModal.vue';\r\nimport SmiWarehouseChipStatus from '@/components/SmiWarehouseChipStatus.vue';\r\nimport { Location } from 'vue-router';\r\nimport {\r\n routeNameSmiAdminWarehouse,\r\n routeNameSmiForecasts,\r\n} from '@/router/routes';\r\nimport { SmiWarehouseOverview } from '@/models/Smi/Warehouses/SmiWarehouseOverview';\r\nimport { smiWarehouseModule } from '@/store/modules/smiWarehouse';\r\nimport { SmiWarehouseDetails } from '@/models/Smi/Warehouses/SmiWarehouseDetails';\r\nimport { SmiWarehouseStockStatus } from '@/models/Smi/Warehouses/SmiWarehouseStockStatus';\r\nimport { numberFilter } from '@/filters/number';\r\nimport { PermissionType } from '@/models/UserProfile/PermissionType';\r\nimport { Permissions } from '@/utils/Permissions';\r\n\r\ninterface SmiWarehouseTableRow extends TableRow {\r\n warehouse: SmiWarehouseOverview;\r\n forecastsRoute: Location;\r\n}\r\n\r\nenum AdminWarehousesSortBy {\r\n Customer = 'customer',\r\n Product = 'product',\r\n ForecastVsSalesAgreement = 'forecastVsSalesAgreement',\r\n ConsumptionVsForecast = 'consumptionVsForecast',\r\n ConsumptionVsSalesAgreement = 'consumptionVsSalesAgreement',\r\n}\r\n\r\n@Component({\r\n components: {\r\n Table,\r\n SmiAdminWarehouseModal,\r\n SmiWarehouseChipStatus,\r\n },\r\n})\r\nexport default class SmiAdminWarehouseList extends Vue {\r\n @Prop({ required: true })\r\n public warehouses!: SmiWarehouseOverview[];\r\n @Prop({ required: true })\r\n public filteredProductNames!: string[];\r\n\r\n private readonly stockStatuses = SmiWarehouseStockStatus;\r\n private readonly numberFilter = numberFilter;\r\n\r\n private editWarehouseId: number | null = null;\r\n private loadingWarehouseDetails: boolean = false;\r\n\r\n private sortBy: AdminWarehousesSortBy = AdminWarehousesSortBy.Customer;\r\n\r\n private get isAllowedToEdit(): boolean {\r\n return Permissions.hasPermission(\r\n PermissionType.IsAllowedToEditSmiWarehouses\r\n );\r\n }\r\n\r\n private get editWarehouseDetails(): SmiWarehouseDetails | null {\r\n return this.editWarehouseId !== null\r\n ? smiWarehouseModule.item(this.editWarehouseId)\r\n : null;\r\n }\r\n\r\n private get columns(): TableColumn[] {\r\n return [\r\n {\r\n text: this.$t('smiAdminWarehouseList.warehouse').toString(),\r\n property: 'customer',\r\n isSortable: true,\r\n fixedOnMobile: true,\r\n },\r\n {\r\n text: this.$t('smiAdminWarehouseList.product').toString(),\r\n property: 'product',\r\n isSortable: true,\r\n },\r\n {\r\n text: this.$t('smiAdminWarehouseList.currentStock').toString(),\r\n property: 'currentStock',\r\n isSortable: true,\r\n },\r\n {\r\n text: this.$t(\r\n 'smiAdminWarehouseList.forecastVsSalesAgreement'\r\n ).toString(),\r\n property: 'forecastVsSalesAgreement',\r\n isSortable: true,\r\n },\r\n {\r\n text: this.$t('smiAdminWarehouseList.consumptionVsForecast').toString(),\r\n property: 'consumptionVsForecast',\r\n isSortable: true,\r\n },\r\n {\r\n text: this.$t(\r\n 'smiAdminWarehouseList.consumptionVsSalesAgreement'\r\n ).toString(),\r\n property: 'consumptionVsSalesAgreement',\r\n isSortable: true,\r\n },\r\n {\r\n text: '',\r\n property: 'buttons',\r\n },\r\n ];\r\n }\r\n\r\n private get rows(): SmiWarehouseTableRow[] {\r\n return this.warehouses.map((warehouse) => {\r\n const properties: { [key: string]: string | number } = {\r\n customer: warehouse.customerName,\r\n product: '',\r\n currentStock: warehouse.totalCurrentStockQuantity ?? 0,\r\n forecastVsSalesAgreement:\r\n warehouse.totalPerformance?.forecastVsSalesAgreementDiffInPercent ??\r\n '',\r\n consumptionVsForecast:\r\n warehouse.totalPerformance?.consumptionVsForecastDiffInPercent ?? '',\r\n consumptionVsSalesAgreement:\r\n warehouse.totalPerformance\r\n ?.consumptionVsSalesAgreementDiffInPercent ?? '',\r\n };\r\n\r\n const childRows: TableChildRow[] = warehouse.products.map((product) => ({\r\n properties: {\r\n product: product.displayName,\r\n currentStock: product.stockDetails?.currentStockQuantity ?? '',\r\n forecastVsSalesAgreement:\r\n product.productPerformance?.forecastVsSalesAgreementDiffInPercent ??\r\n '',\r\n consumptionVsForecast:\r\n product.productPerformance?.consumptionVsForecastDiffInPercent ??\r\n '',\r\n consumptionVsSalesAgreement:\r\n product.productPerformance\r\n ?.consumptionVsSalesAgreementDiffInPercent ?? '',\r\n\r\n productNumber: product.productNumber,\r\n currentStockStatus: product.stockDetails?.currentStockStatus ?? '',\r\n minQuantity: product.stockDetails?.minQuantity ?? '',\r\n maxQuantity: product.stockDetails?.maxQuantity ?? '',\r\n },\r\n isHidden:\r\n this.filteredProductNames.length !== 0 &&\r\n !this.filteredProductNames.some(\r\n (filteredProductName) => filteredProductName === product.productName\r\n ),\r\n }));\r\n\r\n return {\r\n properties,\r\n warehouse,\r\n forecastsRoute: {\r\n name: routeNameSmiForecasts,\r\n query: { warehouse: warehouse.id.toString() },\r\n },\r\n detailsRoute: {\r\n name: routeNameSmiAdminWarehouse,\r\n params: {\r\n smiWarehouseId: warehouse.id.toString(),\r\n smiWarehouseCustomerName: warehouse.customerName,\r\n },\r\n },\r\n childRows,\r\n };\r\n });\r\n }\r\n\r\n private onSettingsClick(warehouse: SmiWarehouseOverview) {\r\n if (this.loadingWarehouseDetails) {\r\n return;\r\n }\r\n\r\n this.editWarehouseId = warehouse.id;\r\n this.loadingWarehouseDetails = true;\r\n\r\n smiWarehouseModule\r\n .dispatchLoad(this.editWarehouseId)\r\n .then(() => {\r\n this.$nextTick(() => {\r\n (this.$refs.smiAdminWarehouseModal as SmiAdminWarehouseModal).show();\r\n });\r\n })\r\n .finally(() => {\r\n this.loadingWarehouseDetails = false;\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiAdminWarehouseList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiAdminWarehouseList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmiAdminWarehouseList.vue?vue&type=template&id=1dea7d00&\"\nimport script from \"./SmiAdminWarehouseList.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmiAdminWarehouseList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { SmiWarehouseDetails } from '@/models/Smi/Warehouses/SmiWarehouseDetails';\r\nimport { SmiWarehouseEstimatedStockReachWeek } from '@/models/Smi/Warehouses/SmiWarehouseEstimatedStockReachWeek';\r\nimport moment from 'moment';\r\nimport Vue from 'vue';\r\nimport { Dates } from './Dates';\r\n\r\nclass MockingHelpersDefinition extends Vue {\r\n public fillUpMockedEstimatedStockReachWeeks(\r\n warehouse: SmiWarehouseDetails\r\n ): void {\r\n for (const product of warehouse.products) {\r\n const estimatedStockReachWeeks: SmiWarehouseEstimatedStockReachWeek[] =\r\n [];\r\n\r\n let date = moment(Dates.startOfWeek(new Date())).add(1, 'week');\r\n for (let i = 0; i < 6; i++) {\r\n estimatedStockReachWeeks.push({\r\n startOfWeekYear: date.isoWeekYear(),\r\n weekNumber: date.isoWeek(),\r\n value: Math.floor(Math.random() * 12000),\r\n });\r\n\r\n date = date.add(1, 'week');\r\n }\r\n\r\n product.estimatedStockReachWeeks = estimatedStockReachWeeks;\r\n }\r\n }\r\n}\r\n\r\nexport const MockingHelpers = new MockingHelpersDefinition();\r\n","import { BaseServiceDefinition } from './BaseService';\r\nimport { UpdateSmiWarehouse } from '@/models/Smi/Warehouses/UpdateSmiWarehouse';\r\nimport { SmiWarehousesOverview } from '@/models/Smi/Warehouses/SmiWarehousesOverview';\r\nimport { SmiWarehouseDetails } from '@/models/Smi/Warehouses/SmiWarehouseDetails';\r\nimport { Config } from '@/utils/Config';\r\nimport { MockingHelpers } from '@/utils/MockingHelper';\r\n\r\nclass SmiAdminWarehouseService extends BaseServiceDefinition {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public getWarehousesOverview(): Promise {\r\n return this.get('/api/v1/smi/admin/warehouses/overview')\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public getWarehouse(id: number): Promise {\r\n return this.get(`/api/v1/smi/admin/warehouses/${id}`)\r\n .then((response) => {\r\n // TODO: Remove Mocked parts when backend is ready\r\n if (Config.isDevelopment) {\r\n MockingHelpers.fillUpMockedEstimatedStockReachWeeks(response.data);\r\n }\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public updateWarehouse(\r\n smiWarehouseId: number,\r\n update: UpdateSmiWarehouse\r\n ): Promise {\r\n return this.put(`/api/v1/smi/admin/warehouses/${smiWarehouseId}`, update)\r\n .then((response) => {\r\n // TODO: Remove Mocked parts when backend is ready\r\n if (Config.isDevelopment) {\r\n MockingHelpers.fillUpMockedEstimatedStockReachWeeks(response.data);\r\n }\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n}\r\n\r\nconst smiAdminWarehouseService: SmiAdminWarehouseService =\r\n new SmiAdminWarehouseService();\r\n\r\nexport default smiAdminWarehouseService;\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiAdminWarehousesPage.vue?vue&type=style&index=0&id=efdd1552&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('TreeSelect',{staticClass:\"the-tree-select\",attrs:{\"value\":_vm.value,\"options\":_vm.options,\"placeholder\":_vm.placeholder,\"clearable\":_vm.clearable,\"multiple\":_vm.multiple,\"disabled\":_vm.disabled},on:{\"input\":_vm.onInput,\"select\":_vm.onSelect}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport TreeSelect, {\r\n TreeSelectNode,\r\n} from '@/components/general/TreeSelect.vue';\r\nimport { CompanyChain } from '@/models/CompanyChain';\r\n\r\n@Component({\r\n components: {\r\n TreeSelect,\r\n },\r\n})\r\nexport default class CompanyChainCustomersTreeSelect extends Vue {\r\n @Prop({ required: true }) private value!: number[];\r\n @Prop({ required: true }) private responsibles!: CompanyChain[];\r\n @Prop({ required: true })\r\n private nonResponsibles!: CompanyChain[];\r\n @Prop({ required: true }) private placeholder!: string;\r\n @Prop({ required: false, default: () => true })\r\n private multiple!: boolean;\r\n @Prop({ required: false, default: () => false })\r\n private clearable!: boolean;\r\n @Prop({ required: false, default: () => undefined })\r\n private filterIsSmiCustomer!: boolean | undefined;\r\n @Prop({ required: false, default: () => false })\r\n private showIfSmiCustomer!: boolean;\r\n @Prop({ required: false, default: () => false })\r\n private disabled!: boolean;\r\n\r\n private get options(): TreeSelectNode[] {\r\n let nodes: TreeSelectNode[] = [];\r\n\r\n const nonResponsibleCompanyChainNodes: TreeSelectNode[] =\r\n this.nonResponsibles\r\n .filter((companyChain) =>\r\n this.companyChainHasFilteredCustomers(companyChain)\r\n )\r\n .map((companyChain) => ({\r\n id: `nonResponsibles|companyChain|${companyChain.id}`,\r\n label: companyChain.name,\r\n children: companyChain.customers\r\n .filter(\r\n (customer) =>\r\n this.filterIsSmiCustomer === undefined ||\r\n customer.isSmiCustomer === this.filterIsSmiCustomer\r\n )\r\n .map((customer) => ({\r\n id: customer.id,\r\n label: `${customer.name}${\r\n this.showIfSmiCustomer && customer.isSmiCustomer ? ' (SMI)' : ''\r\n }`,\r\n })),\r\n }));\r\n\r\n const responsibleCompanyChainNodes: TreeSelectNode[] = this.responsibles\r\n .filter((companyChain) =>\r\n this.companyChainHasFilteredCustomers(companyChain)\r\n )\r\n .map((companyChain) => ({\r\n id: `responsibles|companyChain|${companyChain.id}`,\r\n label: companyChain.name,\r\n children: companyChain.customers\r\n .filter(\r\n (customer) =>\r\n this.filterIsSmiCustomer === undefined ||\r\n customer.isSmiCustomer === this.filterIsSmiCustomer\r\n )\r\n .map((customer) => ({\r\n id: customer.id,\r\n label: customer.name,\r\n })),\r\n }));\r\n\r\n if (responsibleCompanyChainNodes.length > 0) {\r\n nodes.push({\r\n id: 'responsibles',\r\n label: this.$t(\r\n 'companyChainCustomersTreeSelect.responsibles'\r\n ).toString(),\r\n children: responsibleCompanyChainNodes,\r\n isDefaultExpanded: true,\r\n });\r\n }\r\n\r\n if (nonResponsibleCompanyChainNodes.length > 0) {\r\n if (responsibleCompanyChainNodes.length > 0) {\r\n nodes.push({\r\n id: 'nonResponsibles',\r\n label: this.$t(\r\n 'companyChainCustomersTreeSelect.nonResponsibles'\r\n ).toString(),\r\n children: nonResponsibleCompanyChainNodes,\r\n });\r\n } else {\r\n nodes = nodes.concat(nonResponsibleCompanyChainNodes);\r\n }\r\n }\r\n\r\n return nodes;\r\n }\r\n\r\n private companyChainHasFilteredCustomers(\r\n companyChain: CompanyChain\r\n ): boolean {\r\n return companyChain.customers.some(\r\n (customer) =>\r\n this.filterIsSmiCustomer === undefined ||\r\n customer.isSmiCustomer === this.filterIsSmiCustomer\r\n );\r\n }\r\n\r\n private onInput(customers: number[]) {\r\n this.$emit('input', customers);\r\n }\r\n\r\n private onSelect(customers: number[]) {\r\n this.$emit('select', customers);\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompanyChainCustomersTreeSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompanyChainCustomersTreeSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CompanyChainCustomersTreeSelect.vue?vue&type=template&id=5bcb6a06&scoped=true&\"\nimport script from \"./CompanyChainCustomersTreeSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./CompanyChainCustomersTreeSelect.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CompanyChainCustomersTreeSelect.vue?vue&type=style&index=0&id=5bcb6a06&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bcb6a06\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductsByNamesTreeSelect.vue?vue&type=style&index=0&id=6b89d812&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompanyChainCustomersTreeSelect.vue?vue&type=style&index=0&id=5bcb6a06&scoped=true&lang=scss&\""],"sourceRoot":""}