1define("WNCSabyGet/Widgets/hooks",["react","WNCSabyGet/core","WNCSabyGet/basketUtils","WNCSabyGet/Widgets/functions","WNCSabyGet/Widgets/filter","UICommon/Deps","Types/function","Router/router","FrameRouting/RoutingContext","Env/Env","Controls/Store","Controls-DataEnv/context","require","exports"],(function(e,t,o,i,s,r,a,n,l,d,u,c,p,b){var y,m,v,f,k,g,C,h;return Object.defineProperty(b,"__esModule",{value:!0}),y=function(e,t,o,i,s,r,a,n,l,d,u){"use strict";function c(e){var t;const o=e.orderFromTableMode||d.default.get("OrderFromTableMode"),i=e.siteType===u.SiteTypes.delivery||e.siteType===u.SiteTypes.franchiseDelivery,s=e.siteType===u.SiteTypes.service,r=e.siteType===u.SiteTypes.hotel,a=(null!==(t=e.filterSiteType)&&void 0!==t?t:e.siteType)===u.SiteTypes.shop,n=e.shopRecordCompatibleMode?!0:!!e.shopRecord,c=e.basketVisibility&&n&&(i||s||r||a||o||!!e.isBrandMobile);return e.forceEnableOrder||c&&(e.shopRecordCompatibleMode?e.basketVisibility:(0,l.basketVisibilityCallback)(e.shopRecord,i,null,o,a?{Delivery:"DeliveryButtonVisible",Booking:"BookingButtonVisible",Appointment:"AppointmentButtonVisible",OrderButton:"OrderButtonVisible"}:{Delivery:"DeliveryButtonEnabled",Booking:"BookingButtonEnabled",Appointment:"AppointmentButtonEnabled",OrderButton:"OrderButtonEnabled"},e.shopType))}Object.defineProperty(t,"__esModule",{value:!0}),t.useBasket=t.getBasketVisibleFromShopRecord=void 0;const p={precision:0,showEmptyDecimals:!1,showEmptyPrice:!1,priceFontColorStyle:"default",decrementIconStyle:"default",priceFontSize:"3xl",countFontSize:"3xl",incrementWithPrice:!0,inlineHeight:"2xl",incrementShape:"circle",decrementButtonStyle:"primary",incrementButtonStyleEmpty:"primary",decrementViewMode:"filled-same",incrementViewMode:"filled",pricePrecision:2,incrementIconStyle:"default",incrementButtonViewMode:"filled-same",currencySize:"l"};return t.getBasketVisibleFromShopRecord=c,t.useBasket=function(t){var l;const u=(0,o.useRef)(),b=(0,i.useStrictSlice)("detail"),y=(0,i.useStrictSlice)("settings"),m=(0,i.useSlice)("basketState"),v=(0,i.useSlice)("card"),f=y.state.basketNoHistorySaving,k=b.state.filter,g=null==m?void 0:m.state.historyId,C=(0,o.useMemo)((()=>({...p,incrementIconStyle:t.incrementIconStyle||p.incrementIconStyle,decrementVisibility:t.decrementVisibility})),[t.incrementIconStyle,t.decrementVisibility]),h=(0,o.useMemo)((()=>{var e,o,i,s;return t.shopRecordCompatibleMode||t.isKiosk?null!==(e=t.basketVisibility)&&void 0!==e?e:!1:c({forceEnableOrder:null!==(o=t.forceEnableOrder||y.state.forceEnableOrder)&&void 0!==o?o:!1,orderFromTableMode:null!==(i=t.orderFromTableMode)&&void 0!==i?i:!1,position:t.position,shopType:t.shopType,siteType:y.state.siteType,basketVisibility:!0,shopRecordCompatibleMode:t.shopRecordCompatibleMode,shopRecord:t.shopRecord,filterSiteType:null===(s=y.state.remoteFilter)||void 0===s?void 0:s.siteType,isBrandMobile:t.isBrandMobile})}),[t.shopRecordCompatibleMode,t.shopRecord,t.basketVisibility,t.forceEnableOrder,y.state.forceEnableOrder,y.state.siteType,t.orderFromTableMode,t.position,t.shopType,t.isBrandMobile]),S=(0,o.useMemo)((()=>{var e,o,i;return{shopType:t.shopType,itemCacheTime:1e3,noHistorySaving:f,historyId:null==m?void 0:m.state.historyId,sourceOptions:{...y.state.sourceOptions,...r.sources.getSourceOptions(null==b?void 0:b.state.source)},itemsInBasket:null==m?void 0:m.state.itemsInBasket,isBasketFilled:null==m?void 0:m.state.isBasketFilled,basketCost:null==m?void 0:m.state.basketCost,totalBasketCount:null==m?void 0:m.state.totalBasketCount,stateByItem:null==m?void 0:m.state.stateByItem,basketStoreData:null==m?void 0:m.state.basketStoreData,basketCore:null!==(e=t.basketCore)&&void 0!==e?e:null==m?void 0:m.state.basketCore,restrictiveContainer:!t.isPhone?".sg-WebMenuLayoutWidget":void 0,priceProperty:t.priceProperty,sharedCards:null===(o=null==v?void 0:v.state)||void 0===o?void 0:o.sharedCards,isNewModifiers:null==v?void 0:v.state.isNewModifiers,syncTabs:!k.Product,filter:{uuid:k.uuid,SalePointUUID:k.SalePointUUID,PriceListType:k.PriceListType,SalePoint:k.SalePoint,AdditionalSalePoint:k.AdditionalSalePoint,AuthInfo:k.AuthInfo,ExcludePrestoStopList:k.ExcludePrestoStopList,PublicationSaleState:k.PublicationSaleState,TypeCategoryExclude:k.TypeCategoryExclude,PriceListHierarchy:k.PriceListHierarchy,Product:k.Product,BalanceSalePoint:k.BalanceSalePoint,QueueId:k.QueueId,StopList:k.StopList,SalePointHead:k.SalePointHead,IsMaster:k.IsMaster},pointId:null===(i=t.shopRecord)||void 0===i?void 0:i.get("ТоÑкаÐÑодаж"),disableSalonRestriction:y.state.disableSalonRestriction,...t.basketValidators?{controllerValidators:t.basketValidators}:{}}
1}),[t.shopType,null==m?void 0:m.state.historyId,null==m?void 0:m.state.itemsInBasket,null==m?void 0:m.state.isBasketFilled,null==m?void 0:m.state.basketCost,null==m?void 0:m.state.totalBasketCount,null==m?void 0:m.state.stateByItem,null==m?void 0:m.state.basketStoreData,null==m?void 0:m.state.basketCore,f,y.state.sourceOptions,k,b,t.priceProperty,t.isPhone,null===(l=null==v?void 0:v.state)||void 0===l?void 0:l.sharedCards,null==v?void 0:v.state.isNewModifiers,t.shopRecord]),I=(0,o.useCallback)((async()=>{if(u.current)return u.current;if(h&&(!(null==m?void 0:m.state.disableBasketServerPrefetch)||a.constants.isBrowserPlatform))return new Promise((e=>{(0,s.executeSyncOrAsync)(["WNCSabyGet/Basket"],(({BasketController:o,getValidatorsByShopType:i})=>{const s=i(t.shopType,t.orderScope);if(m)u.current=new o({...S,validators:s}),e(u.current)}))}));else return}),[u.current,m,t.orderScope,t.shopType,t.basketValidators,S,h]),B=(0,o.useRef)(!1);if(!(null==m?void 0:m.state.disableBasketServerPrefetch)&&h&&!u.current&&!B.current)B.current=!0,I();const P=(0,o.useCallback)((async({historyId:o,savedHistoryData:i,basketItemsKeys:s})=>{const[{getStore:a},{loadBasketState:l}]=await Promise.all([new Promise(((t,o)=>{e(["Basket/cache"],t,o)})),new Promise(((t,o)=>{e(["WNCSabyGet/basket/history"],t,o)}))]),{itemsInBasket:u,stateByItem:c}=await l({filter:(0,n.filterOutInvalidValues)(k),sourceOptions:{...y.state.sourceOptions,...r.sources.getSourceOptions(null==b?void 0:b.state.source)},savedHistoryData:i}),p=a(o);let v=0,f=0;p.fill(s.reduce(((e,o)=>{const s=i[o],r=null==u?void 0:u.getRecordById(Number(s.id));if(r){const o=s.count||0;e[s.id]=o+(e[s.id]||0),f+=o;const i=(s.modifiersPrice||0)+(r.get(t.priceProperty)||0);v+=i*o}return e}),{})),d.default.dispatch("basketState-"+o,{basketCost:v,isBasketFilled:!!f,totalBasketCount:f}),null==m||m.setState({stateByItem:c,itemsInBasket:u})}),[k,y.state.sourceOptions,null==b?void 0:b.state.source]);return(0,o.useEffect)((()=>{const e=null==m?void 0:m.state.historyId;if(e&&!f)(0,n.readBasketHistory)(r.StoreUtils.getUserAndShopPair(null==m?void 0:m.state)).then((async t=>{const o=t&&Object.keys(t)||[];if(o.length)P({historyId:e,savedHistoryData:t,basketItemsKeys:o})}));return()=>{var e;null===(e=u.current)||void 0===e||e.destroy()}}),[]),function(e,t){const i=(0,o.useRef)(!0);(0,o.useEffect)((()=>{if(!i.current)return e();else i.current=!1}),t)}((()=>{const e=null==m?void 0:m.state.historyId;if(e)(0,n.readBasketHistory)(r.StoreUtils.getUserAndShopPair(null==m?void 0:m.state)).then((async t=>{const o=t&&Object.keys(t)||[];P({historyId:e,savedHistoryData:t,basketItemsKeys:o})}))}),[null==m?void 0:m.state.historyId]),(0,o.useEffect)((()=>{var e;null===(e=u.current)||void 0===e||e.update({historyId:S.historyId,core:S.basketCore,isBasketFilled:S.isBasketFilled,basketCost:S.basketCost,totalBasketCount:S.totalBasketCount,restrictiveContainer:S.restrictiveContainer,priceProperty:S.priceProperty,sharedCards:S.sharedCards,filter:S.filter})}),[S,I]),{controllerResolver:I,basketOptions:C,basketVisibility:h,basketContext:g,basketController:u.current}},t}(p,{},e,c,r,t,d,o,o,u,t),m=y,v=function(e,t,o,i,s,r,a,n){"use strict";return Object.defineProperty(t,"__esModule",{value:!0}),t.useCard=void 0,t.useCard=function(t){const l=(0,o.useContext)(i.DataContext),d=(0,i.useStrictSlice)("card"),u=(0,o.useRef)(null),c=(0,o.useRef)(new Set),p=(0,o.useRef)(null),{filter:b,source:y}=d.state,m=(0,o.useCallback)((0,r.debounce)(((e,t)=>{var o;return null===(o=p.current)||void 0===o?void 0:o.call(p,e,t)}),2e3),[]),v=(0,o.useCallback)(((e,t,o)=>{const i="boolean"==typeof e?e:!!(null==e?void 0:e.count);if(o&&i)m(t,t.get("Id"))}),[m]),f=(0,o.useMemo)((()=>({basketContext:t.basketContext,basketVisibilityCallback:t.basketVisibilityCallback,showBasketInputFieldCallback:s.showBasketInputFieldCallback,showBasketPriceFromCallback:e=>(0,s.showBasketPriceFromCallback)(e,t.shopType),basketOptionsCallback:t.basketOptionsCallback,basketEventsCallback:async(e,o)=>{var i,s;if("itemCountChanged"===e||"itemCountComplete"===e){const[r,d,u,c,p,{closeCallback:b,target:y}]=o;if(t.showMobileServiceWidget)t.showMobileServiceWidget(y);else if(t.shopType===n.ShopType.hotel)null===(i=t.showHotelWidget)||void 0===i||i.call(t,d);else if(t.showPaymentWidgetCallback)null===(s=t.showPaymentWidgetCallback)||void 0===s||s.call(t,d.get("Id"),c,p,r,d.get("Name")||"",b);else if(t.controllerResolver){const o=await t.controllerResolver();if(o){const t="itemCountComplete"===e?(0,a.calcItemCount)(o,d,r,p,c):r;return(0,a.itemCountChangedHandler)({count:t,item:d,action:u,modifiers:c,partyCode:p,context:l,basketController:o,handleItem
1CountChanged:v})}}}}})),[t.basketContext,t.basketVisibilityCallback,t.basketOptionsCallback,t.shopType,l,t.controllerResolver]),k=(0,o.useCallback)((t=>{var o;if(null===(o=t.get("RelatedProductData"))||void 0===o?void 0:o.getCount())Promise.all([new Promise(((t,o)=>{e(["WNCCards/opener/sabyget"],t,o)})),new Promise(((t,o)=>{e(["WNCCards/layout/sabyget"],t,o)}))]).then((([{Opener:e},{getRelatedProductsTab:o}])=>{if(!u.current)u.current=new e;d.setState({openedViewMode:"compact"}),u.current.open({record:t,minHeight:40,ignoreConfigurationTemplate:!0,filter:b,source:y,templateOptions:{basketOptions:f,layoutBuilder:o,paddings:{paddingTop:"m",paddingRight:"m",paddingLeft:"m"}},closeOnOutsideClick:!0,eventHandlers:{onClose:()=>{d.setState({openedViewMode:void 0})}}})}))}),[f,b]);return p.current=(0,o.useCallback)(((t,o)=>{if(!d.isOpen()&&!c.current.has(o))c.current.add(o),((t,o)=>new Promise(((t,o)=>{e(["WNCCards/sources"],t,o)})).then((({getCardSource:e})=>(y||e()).read(t.get("Identifier"),{params:{PriceItemId:o,...b||{}}}))).catch((function(e){requirejs.onError(e)})))(t,o).then((e=>{k(e)}))}),[d,k]),{handleItemCountChanged:v,cardBasketOptions:f}},t}(p,{},e,c,o,a,i,t),f=v,k=function(e,t,o,i,s){"use strict";return Object.defineProperty(t,"__esModule",{value:!0}),t.useFirstRender=void 0,t.useFirstRender=function(){const e=(0,s.useStrictSlice)("detail"),t=(0,s.useStrictSlice)("settings"),r=(0,s.useSlice)("basketState");if((0,o.useRef)(!0))(0,i.updateEditorData)(e,null==r?void 0:r.state.historyId,t.state.updateEditorData)},t}(0,{},e,i,c),g=k,C=function(e,t,o,i,s,r,a,n,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useRouting=void 0;const d=[null,void 0,"","root"];return t.useRouting=function(){const e=(0,o.useContext)(s.default),t=(0,o.useContext)(i.DataContext),u=(0,i.useSlice)("settings"),c=(null==u?void 0:u.state.remoteFilter.siteType)===l.SiteTypes.shop,{navigate:p,pageUrl:b}=e||{},y=(0,r.useRouter)(),m=()=>y.maskResolver.calculateUrlParams(c?`${b}/:catalogId/:nomenclatureId`:"catalog/:catalogId/:nomenclatureId"),{nomenclatureId:v,catalogId:f}=m(),{filterDescriptionString:k}=y.maskResolver.calculateUrlParams("catalogFilter=:filterDescriptionString"),g=(0,o.useMemo)((()=>l.NavigateUtils.getNomenclatureId(v)),[v]),C=(0,o.useMemo)((()=>l.NavigateUtils.getNomenclaturePriceId(v)),[v]),h=(0,o.useMemo)((()=>!(null==u?void 0:u.state.allowWidgetRouting)||(0,l.isOnlinePlatform)()),[null==u?void 0:u.state.allowWidgetRouting]),S=(0,o.useCallback)(((e,t,o=[])=>{var i,s;const r=d.includes(f)&&d.includes(e)||f===e,n=v===t||!v&&!t,l=y.url.location.search,m=Object.fromEntries(new URLSearchParams(l));if(o.length){const e=o.reduce(((e,{name:t,value:o})=>(e[t.replace(a.DYNAMIC_FILTER_PREFIX,"")]=o,e)),{});m.catalogFilter=encodeURIComponent(JSON.stringify(e))}else m.catalogFilter=void 0;if(!(h||r&&n&&k===m.catalogFilter)){if(l&&!t)delete m.spn,delete m.price;if(null==u?void 0:u.state.allowWidgetRouting){const o={catalogId:d.includes(e)&&!t?"":e||"root",nomenclatureId:t||""};null==p||p({queryParams:m,siteId:null===(s=null===(i=null==u?void 0:u.state)||void 0===i?void 0:i.remoteFilter)||void 0===s?void 0:s.siteId,pageUrl:b,pageParams:o.catalogId||o.nomenclatureId?c?[o.catalogId,o.nomenclatureId]:["catalog",o.catalogId,o.nomenclatureId]:[],pushState:!0})}}}),[null==u?void 0:u.state.allowWidgetRouting,p,y.url.location.search,h,v,f,k]),I=(0,o.useCallback)((async(e,o,i)=>{let s=null;if(null!==e){const o=await(0,n.readItemById)(e,t);s=o?o.get("FriendlyUrl"):null}S(s,o,i)}),[S]);return function(e,t){const i=(0,o.useRef)(!0);(0,o.useEffect)((()=>{if(!i.current)return e();else i.current=!1}),t)}((()=>{if(!h){const e=l.NavigateUtils.getNomUrl(g,C),o=t.detail.state.root,i=t.detail.state.filterDescription||[];I(o,e,i)}}),[t.detail.state.root,t.detail.state.filterDescription,null==u?void 0:u.state.allowWidgetRouting,h]),{navigateRoot:I,nomenclatureId:g,routerNomenclatureId:v,catalogId:f,priceId:C,onNomenclatureOpeningStateChanged:S,pageUrl:b,getRoutingState:m}},t}(0,{},e,c,l,n,s,i,t),h=C,b.useRouting=b.useFirstRender=b.useCard=b.useBasket=void 0,Object.defineProperty(b,"useBasket",{enumerable:!0,get:function(){return m.useBasket}}),Object.defineProperty(b,"useCard",{enumerable:!0,get:function(){return f.useCard}}),Object.defineProperty(b,"useFirstRender",{enumerable:!0,get:function(){return g.useFirstRender}}),Object.defineProperty(b,"useRouting",{enumerable:!0,get:function(){return h.useRouting}}),b}));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.