@maestro_io/maestro-web-sdk 4.0.1 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/1.maestro-web-sdk.esm.js +2 -0
- package/dist/1.maestro-web-sdk.esm.js.map +1 -0
- package/dist/1.maestro-web-sdk.umd.js +2 -0
- package/dist/1.maestro-web-sdk.umd.js.map +1 -0
- package/dist/10.maestro-web-sdk.esm.js +2 -0
- package/dist/10.maestro-web-sdk.esm.js.map +1 -0
- package/dist/10.maestro-web-sdk.umd.js +2 -0
- package/dist/10.maestro-web-sdk.umd.js.map +1 -0
- package/dist/11.maestro-web-sdk.esm.js +2 -0
- package/dist/11.maestro-web-sdk.esm.js.map +1 -0
- package/dist/11.maestro-web-sdk.umd.js +2 -0
- package/dist/11.maestro-web-sdk.umd.js.map +1 -0
- package/dist/12.maestro-web-sdk.esm.js +2 -0
- package/dist/12.maestro-web-sdk.esm.js.map +1 -0
- package/dist/12.maestro-web-sdk.umd.js +2 -0
- package/dist/12.maestro-web-sdk.umd.js.map +1 -0
- package/dist/13.maestro-web-sdk.esm.js +2 -0
- package/dist/13.maestro-web-sdk.esm.js.map +1 -0
- package/dist/13.maestro-web-sdk.umd.js +2 -0
- package/dist/13.maestro-web-sdk.umd.js.map +1 -0
- package/dist/14.maestro-web-sdk.esm.js +2 -0
- package/dist/14.maestro-web-sdk.esm.js.map +1 -0
- package/dist/14.maestro-web-sdk.umd.js +2 -0
- package/dist/14.maestro-web-sdk.umd.js.map +1 -0
- package/dist/15.maestro-web-sdk.esm.js +2 -0
- package/dist/15.maestro-web-sdk.esm.js.map +1 -0
- package/dist/15.maestro-web-sdk.umd.js +2 -0
- package/dist/15.maestro-web-sdk.umd.js.map +1 -0
- package/dist/16.maestro-web-sdk.esm.js +2 -0
- package/dist/16.maestro-web-sdk.esm.js.map +1 -0
- package/dist/16.maestro-web-sdk.umd.js +2 -0
- package/dist/16.maestro-web-sdk.umd.js.map +1 -0
- package/dist/17.maestro-web-sdk.esm.js +2 -0
- package/dist/17.maestro-web-sdk.esm.js.map +1 -0
- package/dist/17.maestro-web-sdk.umd.js +2 -0
- package/dist/17.maestro-web-sdk.umd.js.map +1 -0
- package/dist/18.maestro-web-sdk.esm.js +2 -0
- package/dist/18.maestro-web-sdk.esm.js.map +1 -0
- package/dist/18.maestro-web-sdk.umd.js +2 -0
- package/dist/18.maestro-web-sdk.umd.js.map +1 -0
- package/dist/19.maestro-web-sdk.esm.js +2 -0
- package/dist/19.maestro-web-sdk.esm.js.map +1 -0
- package/dist/19.maestro-web-sdk.umd.js +2 -0
- package/dist/19.maestro-web-sdk.umd.js.map +1 -0
- package/dist/2.maestro-web-sdk.esm.js +2 -0
- package/dist/2.maestro-web-sdk.esm.js.map +1 -0
- package/dist/2.maestro-web-sdk.umd.js +2 -0
- package/dist/2.maestro-web-sdk.umd.js.map +1 -0
- package/dist/20.maestro-web-sdk.esm.js +2 -0
- package/dist/20.maestro-web-sdk.esm.js.map +1 -0
- package/dist/20.maestro-web-sdk.umd.js +2 -0
- package/dist/20.maestro-web-sdk.umd.js.map +1 -0
- package/dist/21.maestro-web-sdk.esm.js +2 -0
- package/dist/21.maestro-web-sdk.esm.js.map +1 -0
- package/dist/21.maestro-web-sdk.umd.js +2 -0
- package/dist/21.maestro-web-sdk.umd.js.map +1 -0
- package/dist/22.maestro-web-sdk.esm.js +2 -0
- package/dist/22.maestro-web-sdk.esm.js.map +1 -0
- package/dist/22.maestro-web-sdk.umd.js +2 -0
- package/dist/22.maestro-web-sdk.umd.js.map +1 -0
- package/dist/23.maestro-web-sdk.esm.js +2 -0
- package/dist/23.maestro-web-sdk.esm.js.map +1 -0
- package/dist/23.maestro-web-sdk.umd.js +2 -0
- package/dist/23.maestro-web-sdk.umd.js.map +1 -0
- package/dist/24.maestro-web-sdk.esm.js +2 -0
- package/dist/24.maestro-web-sdk.esm.js.map +1 -0
- package/dist/24.maestro-web-sdk.umd.js +2 -0
- package/dist/24.maestro-web-sdk.umd.js.map +1 -0
- package/dist/3.maestro-web-sdk.esm.js +2 -0
- package/dist/3.maestro-web-sdk.esm.js.map +1 -0
- package/dist/3.maestro-web-sdk.umd.js +2 -0
- package/dist/3.maestro-web-sdk.umd.js.map +1 -0
- package/dist/4.maestro-web-sdk.esm.js +2 -0
- package/dist/4.maestro-web-sdk.esm.js.map +1 -0
- package/dist/4.maestro-web-sdk.umd.js +2 -0
- package/dist/4.maestro-web-sdk.umd.js.map +1 -0
- package/dist/5.maestro-web-sdk.esm.js +2 -0
- package/dist/5.maestro-web-sdk.esm.js.map +1 -0
- package/dist/5.maestro-web-sdk.umd.js +2 -0
- package/dist/5.maestro-web-sdk.umd.js.map +1 -0
- package/dist/6.maestro-web-sdk.esm.js +2 -0
- package/dist/6.maestro-web-sdk.esm.js.map +1 -0
- package/dist/6.maestro-web-sdk.umd.js +2 -0
- package/dist/6.maestro-web-sdk.umd.js.map +1 -0
- package/dist/7.maestro-web-sdk.esm.js +2 -0
- package/dist/7.maestro-web-sdk.esm.js.map +1 -0
- package/dist/7.maestro-web-sdk.umd.js +2 -0
- package/dist/7.maestro-web-sdk.umd.js.map +1 -0
- package/dist/8.maestro-web-sdk.esm.js +2 -0
- package/dist/8.maestro-web-sdk.esm.js.map +1 -0
- package/dist/8.maestro-web-sdk.umd.js +2 -0
- package/dist/8.maestro-web-sdk.umd.js.map +1 -0
- package/dist/9.maestro-web-sdk.esm.js +2 -0
- package/dist/9.maestro-web-sdk.esm.js.map +1 -0
- package/dist/9.maestro-web-sdk.umd.js +2 -0
- package/dist/9.maestro-web-sdk.umd.js.map +1 -0
- package/dist/bundle-report.html +53 -0
- package/dist/maestro-web-sdk.esm.js +1 -1
- package/dist/maestro-web-sdk.esm.js.map +1 -1
- package/dist/maestro-web-sdk.umd.js +1 -1
- package/dist/maestro-web-sdk.umd.js.map +1 -1
- package/dist/src/modules/fantasy/view/TournamentBracketCard/TournamentBracketCard.d.ts +99 -0
- package/dist/src/modules/fantasy/view/TournamentBracketCard/TournamentBracketCard.js +33 -0
- package/dist/src/modules/fantasy/view/TournamentBracketCard/index.d.ts +2 -0
- package/dist/src/modules/fantasy/view/TournamentBracketCard/index.js +2 -0
- package/dist/src/modules/hello-world/HelloWorldView.js +8 -2
- package/dist/src/modules/stats/utils/playerStatusUtils.d.ts +4 -0
- package/dist/src/modules/stats/utils/playerStatusUtils.js +16 -0
- package/dist/src/modules/stats/view/CareerMatchup/CareerMatchup.d.ts +100 -0
- package/dist/src/modules/stats/view/CareerMatchup/CareerMatchup.js +59 -0
- package/dist/src/modules/stats/view/CareerMatchup/index.d.ts +1 -0
- package/dist/src/modules/stats/view/CareerMatchup/index.js +1 -0
- package/dist/src/modules/stats/view/PlayerSeasonStats/ExpandedPlayerStats.js +20 -23
- package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsCard.js +4 -1
- package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsMinified.js +5 -1
- package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsView.js +21 -4
- package/dist/src/services/StatsService.d.ts +12 -4
- package/dist/src/services/StatsService.js +35 -28
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/modules/shop/view/ShopView.styles.css","webpack:///./src/modules/shop/view/ProductDetailView/ProductDetailView.styles.css","webpack:///./src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css","webpack:///./src/modules/shop/view/components/BrowseCard/BrowseCard.styles.css","webpack:///./src/modules/shop/view/components/ShopPromoView/ShopPromoView.styles.css","webpack:///./src/modules/shop/view/components/ShopSection/ShopSection.styles.css","webpack:///./src/modules/shop/view/ShopView.styles.css?e126","webpack:///./src/modules/shop/view/components/ShopSection/ShopSection.styles.css?7434","webpack:///./src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css?58b0","webpack:///./src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.tsx","webpack:///./src/modules/shop/view/components/BrowseCard/BrowseCard.styles.css?52d7","webpack:///./src/modules/shop/view/components/BrowseCard/BrowseCard.tsx","webpack:///./src/modules/shop/view/components/ShopSection/ShopSection.tsx","webpack:///./src/modules/shop/view/ProductDetailView/ProductDetailView.styles.css?e1e7","webpack:///./src/modules/shop/view/ProductDetailView/ProductDetailView.tsx","webpack:///./src/modules/shop/view/components/ShopPromoView/ShopPromoView.styles.css?b08e","webpack:///./src/modules/shop/view/components/ShopPromoView/ShopPromoView.tsx","webpack:///./src/modules/shop/view/ShopView.tsx","webpack:///./src/modules/shop/view/index.ts","webpack:///./src/components/atoms/Image/index.tsx","webpack:///./src/components/atoms/BaseButton/index.ts","webpack:///./src/components/molecules/ActionButton/ActionButton.styles.css?ed9b","webpack:///./src/components/molecules/ActionButton/ActionButton.tsx","webpack:///./src/components/molecules/ActionButton/index.ts","webpack:///./src/components/core/ScrollableContainer/index.ts","webpack:///./src/components/molecules/TabLoadError/TabLoadError.styles.css","webpack:///./src/components/molecules/ActionButton/ActionButton.styles.css","webpack:///./src/components/molecules/TabLoadError/TabLoadError.styles.css?59a9","webpack:///./src/components/molecules/TabLoadError/TabLoadError.tsx","webpack:///./src/components/molecules/TabLoadError/index.ts"],"names":["___CSS_LOADER_EXPORT___","push","module","i","options","locals","ProductSummaryCard","React","Component","render","product","focused","this","props","image","name","price","salePrice","displayClearance","displaySale","isOnSale","createElement","className","data-focused","Boolean","href","Image","src","alt","data-has-image","displayRetail","withFocusable","BrowseCardView","browseCard","caption","detail","style","backgroundImage","backgroundSize","backgroundPosition","backgroundClip","width","height","ShopSection","constructor","args","_defineProperty","DEFAULT_SCROLLABLE_CONTAINER_CONTEXT","layout","context","scrollToFocusedElement","offsetTop","item","section","focusKey","onItemClick","_section$items","sectionIndex","onArrowPress","title","items","map","itemIndex","type","FocusableItem","key","onEnterPress","onBecameFocused","BrowseCard","SCROLLABLE_CONTEXT_TYPE","FocusableProductDetail","_product$detail","_detail$link","bgImage","getBackgroundImage","URL","hostname","includes","setImageDimensions","isShopProduct","focusable","undefined","description","qrCode","link","text","ActionButton","ProductDetailView","_props$product$detail","disclaimer","FocusablePromoView","_promo$detail","_promo$image","_promo$detail2","_promo$detail3","_promo$detail4","_promo$detail4$link","promo","promoData","ShopPromoViewWrapper","_props$promoData$deta","ShopView","super","viewModel","clearTabLoadFailure","d","SDK","getMaestroEventViewModel","deliverFocus","selectedItem","selectedShopSection","selectedItemFocusKey","card","trackItemClick","setState","navigation","setFocus","state","setTimeout","sections","errorState","closeProductDetail","TabLoadErrorView","length","index","openItemDetail","ShopPromoView","trackPromoEnterPress","vm","shopViewModel","container","value","isDataLoading","Error","componentDidMount","sectionsListener","subscribe","isDataLoadingListener","errorStateListener","promoDataListener","init","componentWillUnmount","cleanup","ScrollableContainer","scrollableContainerRef","containerTopOffset","data-has-product-selected","data-has-error","ref","e","renderContent","failed","console","warn","_extends","onError","handleError","BaseButton","children","_focused","_focusKey","parentFocusKey","_parentFocusKey","preferredChildFocusKey","_preferredChildFocusKey","forgetLastFocusedChild","_forgetLastFocusedChild","trackChildren","_trackChildren","autoRestoreFocus","_autoRestoreFocus","blockNavigationOut","_blockNavigationOut","hasFocusedChild","_hasFocusedChild","_focusable","_onEnterPress","onEnterRelease","_onEnterRelease","onBackPress","_onBackPress","_onArrowPress","_onBecameFocused","onBecameBlurred","_onBecameBlurred","realFocusKey","_realFocusKey","_setFocus","navigateByDirection","_navigateByDirection","stealFocus","_stealFocus","onUpdateFocus","_onUpdateFocus","onUpdateHasFocusedChild","_onUpdateHasFocusedChild","buttonProps"],"mappings":"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","file":"5.maestro-web-sdk.esm.js","sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-view {\\n display: block;\\n overflow-y: auto;\\n max-height: calc(100vh - 86px - 60px - 60px);\\n scrollbar-width: none;\\n scroll-behavior: smooth;\\n overscroll-behavior: contain;\\n}\\n\\n.shop-view::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.shop-bottom-padding {\\n height: 50vh;\\n}\\n\\n.shop-empty-state {\\n display: block;\\n text-align: center;\\n padding: 60px 20px;\\n color: #ffffff;\\n font-size: 18px;\\n}\\n\\n.shop-sections {\\n display: block;\\n}\\n\\n.scrollable-container[data-has-product-selected='true']::before,\\n.scrollable-container[data-has-product-selected='true']::after,\\n.scrollable-container[data-has-error='true']::after,\\n.scrollable-container[data-has-error='true']::before {\\n background: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/ShopView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,gBAAgB;EAChB,4CAA4C;EAC5C,qBAAqB;EACrB,uBAAuB;EACvB,4BAA4B;AAC9B;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,cAAc;AAChB;;AAEA;;;;EAIE,gBAAgB;AAClB\",\"sourcesContent\":[\".shop-view {\\n display: block;\\n overflow-y: auto;\\n max-height: calc(100vh - 86px - 60px - 60px);\\n scrollbar-width: none;\\n scroll-behavior: smooth;\\n overscroll-behavior: contain;\\n}\\n\\n.shop-view::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.shop-bottom-padding {\\n height: 50vh;\\n}\\n\\n.shop-empty-state {\\n display: block;\\n text-align: center;\\n padding: 60px 20px;\\n color: #ffffff;\\n font-size: 18px;\\n}\\n\\n.shop-sections {\\n display: block;\\n}\\n\\n.scrollable-container[data-has-product-selected='true']::before,\\n.scrollable-container[data-has-product-selected='true']::after,\\n.scrollable-container[data-has-error='true']::after,\\n.scrollable-container[data-has-error='true']::before {\\n background: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".product-detail-view-wrapper > *:first-child {\\n margin-bottom: 16px;\\n}\\n\\n/* Card */\\n.product-detail-card {\\n display: inline-block;\\n padding: 24px;\\n text-align: center;\\n box-sizing: border-box;\\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\\n width: 100%;\\n}\\n\\n/* Title */\\n.product-detail-title {\\n margin-bottom: 32px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n/* Mini Product Card Container */\\n.product-detail-product {\\n margin-bottom: 32px;\\n}\\n\\n/* Override ProductSummaryCard styles when inside detail view */\\n.product-detail-product .product-summary-card,\\n.product-detail-product .browse-card {\\n text-align: left;\\n background-color: #ffffff14;\\n background-image: none !important;\\n padding: 16px;\\n}\\n\\n.product-detail-product .browse-card {\\n direction: rtl;\\n}\\n\\n.product-detail-product .browse-card .browse-card-content {\\n direction: ltr;\\n}\\n\\n.product-detail-product .browse-card .browse-card-logo-image {\\n margin-left: 0;\\n margin-right: 24px;\\n width: calc(20% - 24px);\\n}\\n\\n.product-detail-product\\n .product-summary-card\\n .product-summary-card-image-container {\\n width: 20%;\\n}\\n\\n.product-detail-product .product-summary-card .product-summary-card-content {\\n width: 80%;\\n padding: 6px 0px 6px 24px;\\n}\\n\\n.product-detail-product .product-summary-card-title {\\n -webkit-line-clamp: 2;\\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\\n}\\n\\n/* QR Code Container */\\n.product-detail-qr {\\n background-color: var(--sdk-highlightPrimary);\\n border-radius: 24px;\\n margin: 32px 30% 28px 30%;\\n overflow: hidden;\\n}\\n\\n.product-detail-qr-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n}\\n\\n/* Instruction Text */\\n.product-detail-instruction {\\n margin-bottom: 24px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.product-detail-disclaimer {\\n text-align: center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/ProductDetailView/ProductDetailView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,mBAAmB;AACrB;;AAEA,SAAS;AACT;EACE,qBAAqB;EACrB,aAAa;EACb,kBAAkB;EAClB,sBAAsB;EACtB,iDAAiD;EACjD,WAAW;AACb;;AAEA,UAAU;AACV;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA,gCAAgC;AAChC;EACE,mBAAmB;AACrB;;AAEA,+DAA+D;AAC/D;;EAEE,gBAAgB;EAChB,2BAA2B;EAC3B,iCAAiC;EACjC,aAAa;AACf;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,uBAAuB;AACzB;;AAEA;;;EAGE,UAAU;AACZ;;AAEA;EACE,UAAU;EACV,yBAAyB;AAC3B;;AAEA;EACE,qBAAqB;EACrB,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,sBAAsB;AACtB;EACE,6CAA6C;EAC7C,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;AACrB;;AAEA,qBAAqB;AACrB;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA;EACE,kBAAkB;AACpB\",\"sourcesContent\":[\".product-detail-view-wrapper > *:first-child {\\n margin-bottom: 16px;\\n}\\n\\n/* Card */\\n.product-detail-card {\\n display: inline-block;\\n padding: 24px;\\n text-align: center;\\n box-sizing: border-box;\\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\\n width: 100%;\\n}\\n\\n/* Title */\\n.product-detail-title {\\n margin-bottom: 32px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n/* Mini Product Card Container */\\n.product-detail-product {\\n margin-bottom: 32px;\\n}\\n\\n/* Override ProductSummaryCard styles when inside detail view */\\n.product-detail-product .product-summary-card,\\n.product-detail-product .browse-card {\\n text-align: left;\\n background-color: #ffffff14;\\n background-image: none !important;\\n padding: 16px;\\n}\\n\\n.product-detail-product .browse-card {\\n direction: rtl;\\n}\\n\\n.product-detail-product .browse-card .browse-card-content {\\n direction: ltr;\\n}\\n\\n.product-detail-product .browse-card .browse-card-logo-image {\\n margin-left: 0;\\n margin-right: 24px;\\n width: calc(20% - 24px);\\n}\\n\\n.product-detail-product\\n .product-summary-card\\n .product-summary-card-image-container {\\n width: 20%;\\n}\\n\\n.product-detail-product .product-summary-card .product-summary-card-content {\\n width: 80%;\\n padding: 6px 0px 6px 24px;\\n}\\n\\n.product-detail-product .product-summary-card-title {\\n -webkit-line-clamp: 2;\\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\\n}\\n\\n/* QR Code Container */\\n.product-detail-qr {\\n background-color: var(--sdk-highlightPrimary);\\n border-radius: 24px;\\n margin: 32px 30% 28px 30%;\\n overflow: hidden;\\n}\\n\\n.product-detail-qr-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n}\\n\\n/* Instruction Text */\\n.product-detail-instruction {\\n margin-bottom: 24px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.product-detail-disclaimer {\\n text-align: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Product Summary Card - TV-compatible CSS (no flex/grid) */\\n\\n.product-summary-card {\\n position: relative;\\n background-color: var(--sdk-surface4);\\n overflow: hidden;\\n vertical-align: middle;\\n padding: 24px;\\n width: 100%;\\n box-sizing: border-box;\\n}\\n\\n/* Product Image Container - 144x144 */\\n.product-summary-card-image-container {\\n display: inline-block;\\n vertical-align: middle;\\n width: 20%;\\n overflow: hidden;\\n line-height: 0;\\n}\\n\\n.product-summary-card-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n border-radius: 8px;\\n}\\n\\n/* Text Content Container */\\n.product-summary-card-content {\\n display: inline-block;\\n vertical-align: middle;\\n padding: 16px 0 16px 24px;\\n white-space: normal;\\n width: 80%;\\n box-sizing: border-box;\\n}\\n\\n.product-summary-card-content[data-has-image='false'] {\\n width: 100%;\\n}\\n\\n/* Product Title - max 3 lines with ellipsis */\\n.product-summary-card-title {\\n padding-bottom: 4px;\\n /* Line clamp for 3 lines */\\n display: -webkit-box;\\n -webkit-line-clamp: 3;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n /* Fallback for non-webkit browsers */\\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\\n}\\n\\n/* Price Container */\\n.product-summary-card-price-container {\\n white-space: nowrap;\\n}\\n\\n/* Original Price (crossed out when on sale) */\\n.product-summary-card-price-original {\\n text-decoration: line-through;\\n opacity: 0.6;\\n margin-right: 4px;\\n}\\n\\n/* Sale/Clearance Price */\\n.product-summary-card-price-sale {\\n margin-right: 8px;\\n}\\n\\n/* Sale/Clearance Badge */\\n.product-summary-card-badge {\\n display: inline-block;\\n background-color: var(--sdk-alertError);\\n padding-inline: 4px;\\n border-radius: 4px;\\n}\\n\\n.product-summary-card-qr-image {\\n object-fit: contain;\\n position: absolute;\\n bottom: 16px;\\n right: 16px;\\n width: 6%;\\n height: auto;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css\"],\"names\":[],\"mappings\":\"AAAA,4DAA4D;;AAE5D;EACE,kBAAkB;EAClB,qCAAqC;EACrC,gBAAgB;EAChB,sBAAsB;EACtB,aAAa;EACb,WAAW;EACX,sBAAsB;AACxB;;AAEA,sCAAsC;AACtC;EACE,qBAAqB;EACrB,sBAAsB;EACtB,UAAU;EACV,gBAAgB;EAChB,cAAc;AAChB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA,2BAA2B;AAC3B;EACE,qBAAqB;EACrB,sBAAsB;EACtB,yBAAyB;EACzB,mBAAmB;EACnB,UAAU;EACV,sBAAsB;AACxB;;AAEA;EACE,WAAW;AACb;;AAEA,8CAA8C;AAC9C;EACE,mBAAmB;EACnB,2BAA2B;EAC3B,oBAAoB;EACpB,qBAAqB;EACrB,4BAA4B;EAC5B,gBAAgB;EAChB,uBAAuB;EACvB,qCAAqC;EACrC,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,oBAAoB;AACpB;EACE,mBAAmB;AACrB;;AAEA,8CAA8C;AAC9C;EACE,6BAA6B;EAC7B,YAAY;EACZ,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,qBAAqB;EACrB,uCAAuC;EACvC,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,SAAS;EACT,YAAY;AACd\",\"sourcesContent\":[\"/* Product Summary Card - TV-compatible CSS (no flex/grid) */\\n\\n.product-summary-card {\\n position: relative;\\n background-color: var(--sdk-surface4);\\n overflow: hidden;\\n vertical-align: middle;\\n padding: 24px;\\n width: 100%;\\n box-sizing: border-box;\\n}\\n\\n/* Product Image Container - 144x144 */\\n.product-summary-card-image-container {\\n display: inline-block;\\n vertical-align: middle;\\n width: 20%;\\n overflow: hidden;\\n line-height: 0;\\n}\\n\\n.product-summary-card-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n border-radius: 8px;\\n}\\n\\n/* Text Content Container */\\n.product-summary-card-content {\\n display: inline-block;\\n vertical-align: middle;\\n padding: 16px 0 16px 24px;\\n white-space: normal;\\n width: 80%;\\n box-sizing: border-box;\\n}\\n\\n.product-summary-card-content[data-has-image='false'] {\\n width: 100%;\\n}\\n\\n/* Product Title - max 3 lines with ellipsis */\\n.product-summary-card-title {\\n padding-bottom: 4px;\\n /* Line clamp for 3 lines */\\n display: -webkit-box;\\n -webkit-line-clamp: 3;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n /* Fallback for non-webkit browsers */\\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\\n}\\n\\n/* Price Container */\\n.product-summary-card-price-container {\\n white-space: nowrap;\\n}\\n\\n/* Original Price (crossed out when on sale) */\\n.product-summary-card-price-original {\\n text-decoration: line-through;\\n opacity: 0.6;\\n margin-right: 4px;\\n}\\n\\n/* Sale/Clearance Price */\\n.product-summary-card-price-sale {\\n margin-right: 8px;\\n}\\n\\n/* Sale/Clearance Badge */\\n.product-summary-card-badge {\\n display: inline-block;\\n background-color: var(--sdk-alertError);\\n padding-inline: 4px;\\n border-radius: 4px;\\n}\\n\\n.product-summary-card-qr-image {\\n object-fit: contain;\\n position: absolute;\\n bottom: 16px;\\n right: 16px;\\n width: 6%;\\n height: auto;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\\n\\n.browse-card {\\n position: relative;\\n display: block;\\n background-color: var(--sdk-surface4);\\n padding: 24px;\\n box-sizing: border-box;\\n text-align: left;\\n}\\n\\n.browse-card-content {\\n display: inline-block;\\n width: 80%;\\n vertical-align: middle;\\n}\\n\\n/* Tag Line */\\n.browse-card-tagline {\\n margin-bottom: 4px;\\n width: 85%;\\n}\\n\\n.browse-card-caption {\\n width: 85%;\\n}\\n\\n.browse-card-logo-image {\\n width: calc(20% - 12px);\\n height: 100%;\\n vertical-align: middle;\\n margin-left: 12px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/components/BrowseCard/BrowseCard.styles.css\"],\"names\":[],\"mappings\":\"AAAA,+DAA+D;;AAE/D;EACE,kBAAkB;EAClB,cAAc;EACd,qCAAqC;EACrC,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,qBAAqB;EACrB,UAAU;EACV,sBAAsB;AACxB;;AAEA,aAAa;AACb;EACE,kBAAkB;EAClB,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,uBAAuB;EACvB,YAAY;EACZ,sBAAsB;EACtB,iBAAiB;AACnB\",\"sourcesContent\":[\"/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\\n\\n.browse-card {\\n position: relative;\\n display: block;\\n background-color: var(--sdk-surface4);\\n padding: 24px;\\n box-sizing: border-box;\\n text-align: left;\\n}\\n\\n.browse-card-content {\\n display: inline-block;\\n width: 80%;\\n vertical-align: middle;\\n}\\n\\n/* Tag Line */\\n.browse-card-tagline {\\n margin-bottom: 4px;\\n width: 85%;\\n}\\n\\n.browse-card-caption {\\n width: 85%;\\n}\\n\\n.browse-card-logo-image {\\n width: calc(20% - 12px);\\n height: 100%;\\n vertical-align: middle;\\n margin-left: 12px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-promo-view {\\n display: block;\\n text-align: center;\\n padding: 32px;\\n background-size: cover;\\n background-position: center;\\n background-repeat: no-repeat;\\n}\\n\\n.shop-promo-logo {\\n padding: 30px 24px;\\n}\\n\\n.shop-promo-qr-code {\\n border-radius: 24px;\\n margin: 32px 0 48px 0;\\n width: 100%;\\n max-width: 50%;\\n}\\n\\n.shop-promo-description {\\n margin: 0 17px;\\n}\\n\\n.promo-view-disclaimer {\\n margin-top: 24px;\\n text-align: center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/components/ShopPromoView/ShopPromoView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,2BAA2B;EAC3B,4BAA4B;AAC9B;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,qBAAqB;EACrB,WAAW;EACX,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;AACpB\",\"sourcesContent\":[\".shop-promo-view {\\n display: block;\\n text-align: center;\\n padding: 32px;\\n background-size: cover;\\n background-position: center;\\n background-repeat: no-repeat;\\n}\\n\\n.shop-promo-logo {\\n padding: 30px 24px;\\n}\\n\\n.shop-promo-qr-code {\\n border-radius: 24px;\\n margin: 32px 0 48px 0;\\n width: 100%;\\n max-width: 50%;\\n}\\n\\n.shop-promo-description {\\n margin: 0 17px;\\n}\\n\\n.promo-view-disclaimer {\\n margin-top: 24px;\\n text-align: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-section {\\n margin-bottom: 40px;\\n}\\n\\n.shop-section-title {\\n margin: 0;\\n margin-bottom: 0 !important;\\n padding-top: 24px;\\n padding-bottom: 0;\\n margin-bottom: 16px !important;\\n text-align: center;\\n position: sticky;\\n top: 0;\\n z-index: 1;\\n font-size: 21px;\\n}\\n\\n/* Layout for product cards - TV compatible (no flex/grid) */\\n.shop-section-items > * {\\n display: inline-block;\\n margin-bottom: 16px;\\n}\\n\\n.shop-item-placeholder {\\n display: inline-block;\\n vertical-align: top;\\n width: 200px;\\n height: 250px;\\n padding: 16px;\\n background-color: rgba(255, 255, 255, 0.1);\\n border-radius: 8px;\\n color: #ffffff;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/components/ShopSection/ShopSection.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,mBAAmB;AACrB;;AAEA;EACE,SAAS;EACT,2BAA2B;EAC3B,iBAAiB;EACjB,iBAAiB;EACjB,8BAA8B;EAC9B,kBAAkB;EAClB,gBAAgB;EAChB,MAAM;EACN,UAAU;EACV,eAAe;AACjB;;AAEA,4DAA4D;AAC5D;EACE,qBAAqB;EACrB,mBAAmB;AACrB;;AAEA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,YAAY;EACZ,aAAa;EACb,aAAa;EACb,0CAA0C;EAC1C,kBAAkB;EAClB,cAAc;AAChB\",\"sourcesContent\":[\".shop-section {\\n margin-bottom: 40px;\\n}\\n\\n.shop-section-title {\\n margin: 0;\\n margin-bottom: 0 !important;\\n padding-top: 24px;\\n padding-bottom: 0;\\n margin-bottom: 16px !important;\\n text-align: center;\\n position: sticky;\\n top: 0;\\n z-index: 1;\\n font-size: 21px;\\n}\\n\\n/* Layout for product cards - TV compatible (no flex/grid) */\\n.shop-section-items > * {\\n display: inline-block;\\n margin-bottom: 16px;\\n}\\n\\n.shop-item-placeholder {\\n display: inline-block;\\n vertical-align: top;\\n width: 200px;\\n height: 250px;\\n padding: 16px;\\n background-color: rgba(255, 255, 255, 0.1);\\n border-radius: 8px;\\n color: #ffffff;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopSection.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ProductSummaryCard.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './ProductSummaryCard.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport { Direction, Layout } from '@/external/spatial-navigation/utils';\n\nimport { IShopProduct } from '../../../types';\nimport Image from '@/components/atoms/Image';\n\n// QR code image as base64 data URI for SDK bundle\nconst productSummaryQRCode =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACHElEQVR4Ae2YgXHCMAxFf3oM0A3qbsAGDRuwQWGC0gmgEwATkG7ABqQb0AlwN0gnSKXDpWqwiQU5IHe8O52xY8U/toyVoIwjRcPwPWMGvsOVc/UCE55GUe+RWU+/IkmSAg1DQxtPM7etZCfJAy4Mi25VDHZCF0g8T7NBPHMKgxn5jej3i8LPkl8PWoHYijOI516UBg3RiiXeTS9N9Veg3yvZ2tPOS9lHmA+yiae9SzYN+BRSU4dE5ahn7etH8Tao8dsE/IIO7u9s56NaYrrxlDcPWV/plzq/KZRoY5CXJsXfhojFOL8ulHSU/d/I3iGWIJKcbIhtfKlQCYyMV5+fpSLDEcQKHFP8PHvan2r8OPYWnvboEIkVmOI4DNkAJ9Des5iYQ7db80oZS+Np3FlJQhdcVqKaQd7l7v0lVfhxMjyDFhpoU+qYOL9JqWNzSEerN4lkCX8wp2gw9/MRK3AeyEoy7AvktCwTdb6eirrF/51eNCHwVxBnMbxxcnd87UHtPNtL4TOoCqQ+Q0SijUFOUBc4/mRRo81mPl1pcSa02cyork+5fRk3ool/56Juy8q3nkNZUqzAbiBN973oD8jGop7J10onbiWuW7JHhARWnmYd+MShTtVPQWriGZRPY3Dhw9uFyE7ToSW20FGI0or2b08/Gz1O5Vy8fTzS0rpk4ZFmdS9HDB1rp0Dj8JHpyzdNtWMMKZoXePuIfhZ+AArh47ArZrulAAAAAElFTkSuQmCC';\n\nexport type ProductSummaryCardProps = {\n product: IShopProduct;\n onEnterPress?: () => void;\n onArrowPress?: (direction: Direction) => void;\n onBecameFocused?: (layout: Layout) => void;\n};\n\nclass ProductSummaryCard extends React.Component<\n ProductSummaryCardProps & WithFocusableProps\n> {\n render() {\n const { product, focused } = this.props;\n const { image, name, price } = product;\n\n // Determine if this is a sale or clearance item\n const salePrice = price?.displayClearance || price?.displaySale;\n const isOnSale = !!salePrice;\n\n return (\n <div className=\"product-summary-card focus-ring\" data-focused={focused}>\n {/* Product Image */}\n {Boolean(image?.href) && (\n <div className=\"product-summary-card-image-container\">\n <Image\n src={image!.href}\n alt={name || 'Product'}\n className=\"product-summary-card-image\"\n />\n </div>\n )}\n\n {/* Text Content Container */}\n <div\n className=\"product-summary-card-content\"\n data-has-image={!!image?.href}\n >\n {/* Product Title - max 3 lines with ellipsis */}\n <div className=\"product-summary-card-title T05_ALT\">\n {name || 'Product Name'}\n </div>\n\n {/* Price */}\n <div className=\"product-summary-card-price-container\">\n {isOnSale ? (\n <div>\n <span className=\"product-summary-card-price-original T02 TEXT_200\">\n {price?.displayRetail || '$0.00'}\n </span>\n <span className=\"product-summary-card-price-sale T02 TEXT_200\">\n {salePrice}\n </span>\n <span className=\"product-summary-card-badge T02 FONT_BOLD\">\n SALE\n </span>\n </div>\n ) : (\n <span className=\"product-summary-card-price T02 TEXT_200\">\n {price?.displayRetail || '$0.00'}\n </span>\n )}\n </div>\n </div>\n\n {/* QR Code Image - shown on focus */}\n {focused && (\n <Image\n src={productSummaryQRCode}\n alt=\"QR Code\"\n className=\"product-summary-card-qr-image\"\n />\n )}\n </div>\n );\n }\n}\n\nexport default withFocusable<ProductSummaryCardProps>()(ProductSummaryCard);\n","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./BrowseCard.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './BrowseCard.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport { IShopBrowseCard } from '../../../types';\nimport Image from '@/components/atoms/Image';\n\nexport type BrowseCardProps = {\n browseCard: IShopBrowseCard;\n};\n\nexport class BrowseCardView extends React.Component<\n BrowseCardProps & WithFocusableProps\n> {\n render() {\n const { browseCard, focused } = this.props;\n const { name, caption, image, detail } = browseCard;\n\n return (\n <div\n className=\"browse-card focus-ring\"\n data-focused={focused}\n style={{\n backgroundImage: detail?.backgroundImage\n ? `url(${detail.backgroundImage})`\n : 'none',\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundClip: 'padding-box',\n }}\n >\n <div className=\"browse-card-content\">\n {/* Tag Line */}\n {!!name && (\n <div className=\"browse-card-tagline T20 FONT_BOLD\">{name}</div>\n )}\n\n {/* Contextual Copy */}\n <div className=\"browse-card-caption T10\">\n {caption || 'Browse all merch'}\n </div>\n </div>\n\n {/* Team/League/Event Logo */}\n {image?.href && (\n <Image\n src={image.href}\n width={72}\n height={72}\n alt={name || 'Logo'}\n className=\"browse-card-logo-image\"\n />\n )}\n </div>\n );\n }\n}\n\nexport default withFocusable<BrowseCardProps>()(BrowseCardView);\n","import React from 'react';\nimport './ShopSection.styles.css';\nimport { IShopBrowseCard, IShopProduct, IShopSection } from '../../../types';\nimport ProductSummaryCard from '../ProductSummaryCard';\nimport { Direction, Layout } from '@/external/spatial-navigation/utils';\nimport {\n DEFAULT_SCROLLABLE_CONTAINER_CONTEXT,\n SCROLLABLE_CONTEXT_TYPE,\n} from '@/components/core/ScrollableContainer/ScrollableContainer';\nimport FocusableItem from '@/components/core/ScrollableContainer/FocusableItem';\nimport BrowseCard from '../BrowseCard';\n\nexport type ShopSectionProps = {\n sectionIndex: number;\n section: IShopSection;\n onArrowPress: (direction: Direction) => void;\n onItemClick: (\n item: IShopProduct | IShopBrowseCard,\n section: IShopSection,\n focusKey: string\n ) => void;\n};\n\nclass ShopSection extends React.Component<ShopSectionProps> {\n static contextTypes = SCROLLABLE_CONTEXT_TYPE;\n context = DEFAULT_SCROLLABLE_CONTAINER_CONTEXT;\n\n onBecameFocused = (layout: Layout) => {\n this.context.scrollToFocusedElement(layout, {\n offsetTop: 40,\n });\n };\n\n onEnterPress = (\n item: IShopProduct | IShopBrowseCard,\n section: IShopSection,\n focusKey: string\n ) => () => {\n this.props.onItemClick(item, section, focusKey);\n };\n\n render() {\n const { section, sectionIndex, onArrowPress } = this.props;\n\n return (\n <div className=\"shop-section\">\n <h2 className=\"shop-section-title TEXT_200\">{section.title}</h2>\n <div className=\"shop-section-items\">\n {section.items?.map((item, itemIndex) => {\n const focusKey = `shop-section-${sectionIndex}-item-${itemIndex}`;\n if (item.type === 'product') {\n return (\n <FocusableItem key={itemIndex}>\n <ProductSummaryCard\n product={item}\n onEnterPress={this.onEnterPress(item, section, focusKey)}\n onArrowPress={onArrowPress}\n onBecameFocused={this.onBecameFocused}\n focusKey={focusKey}\n />\n </FocusableItem>\n );\n } else if (item.type === 'browse') {\n return (\n <FocusableItem key={itemIndex}>\n <BrowseCard\n key={itemIndex}\n browseCard={item}\n onArrowPress={onArrowPress}\n onEnterPress={this.onEnterPress(item, section, focusKey)}\n onBecameFocused={this.onBecameFocused}\n focusKey={focusKey}\n />\n </FocusableItem>\n );\n } else {\n return null;\n }\n })}\n </div>\n </div>\n );\n }\n}\n\nexport default ShopSection;\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ProductDetailView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './ProductDetailView.styles.css';\nimport { IShopBrowseCard, IShopProduct, isShopProduct } from '../../types';\nimport ProductSummaryCard from '../components/ProductSummaryCard';\nimport ActionButton from '@/components/molecules/ActionButton';\nimport Image from '@/components/atoms/Image';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport BrowseCard from '../components/BrowseCard';\nimport { setImageDimensions } from '@/helpers/url';\n\nexport type ProductDetailViewProps = {\n product: IShopProduct | IShopBrowseCard;\n focusKey: string;\n};\n\nconst ProductDetail = (props: ProductDetailViewProps & WithFocusableProps) => {\n const { product, focused } = props;\n const detail = product.detail;\n\n const getBackgroundImage = () => {\n const bgImage = detail?.backgroundImage;\n if (!bgImage) {\n return null;\n }\n\n try {\n const url = new URL(bgImage);\n if (url.hostname.includes('stitcher')) {\n const newBgImage = setImageDimensions(bgImage, 570, 670);\n return newBgImage;\n }\n } catch {\n // Fallback to original check if URL parsing fails\n if (bgImage.includes('stitcher')) {\n const newBgImage = setImageDimensions(bgImage, 570, 670);\n return newBgImage;\n }\n }\n\n return bgImage;\n };\n\n const bgImage = getBackgroundImage();\n return (\n <div\n className=\"product-detail-card focus-ring\"\n data-focused={focused}\n style={{\n ...(bgImage && {\n backgroundImage: `url(${bgImage})`,\n backgroundSize: 'cover',\n backgroundClip: 'padding-box',\n backgroundPosition: 'center',\n }),\n }}\n >\n {/* Tag Line Title */}\n <div className=\"product-detail-title T70\">\n {detail?.title || 'Shop the look'}\n </div>\n\n {/* Mini Product Card (non-focusable) */}\n <div className=\"product-detail-product\">\n {isShopProduct(product) ? (\n <ProductSummaryCard product={product} focusable={false} />\n ) : (\n <BrowseCard\n browseCard={{\n ...product,\n name: undefined,\n caption: product.detail?.description,\n }}\n focusable={false}\n />\n )}\n </div>\n\n {/* QR Code */}\n {detail?.qrCode && (\n <div className=\"product-detail-qr\">\n <Image\n src={detail.qrCode}\n alt=\"QR Code\"\n className=\"product-detail-qr-image\"\n />\n </div>\n )}\n\n {/* User Instruction */}\n <div className=\"product-detail-instruction T04\">{detail?.link?.text}</div>\n\n {/* Dismiss Button */}\n <ActionButton data-focused={focused}>Dismiss</ActionButton>\n </div>\n );\n};\n\nconst FocusableProductDetail = withFocusable<ProductDetailViewProps>()(\n ProductDetail\n);\n\nconst ProductDetailView = (\n props: ProductDetailViewProps & WithFocusableProps\n) => {\n return (\n <div className=\"product-detail-view-wrapper\">\n <FocusableProductDetail {...props} />\n {/* Legal Disclaimer */}\n {props.product.detail?.disclaimer && (\n <div className=\"product-detail-disclaimer T02 TEXT_200 FONT_BOLD\">\n {props.product.detail.disclaimer}\n </div>\n )}\n </div>\n );\n};\n\nexport default ProductDetailView;\n","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopPromoView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport './ShopPromoView.styles.css';\nimport Image from '@/components/atoms/Image';\nimport { IShopDefaultItem } from '../../../types';\n\ntype Props = {\n promoData: IShopDefaultItem;\n};\n\nconst ShopPromoView = (props: Props & WithFocusableProps) => {\n const promo = props.promoData;\n\n return (\n <div\n className=\"shop-promo-view focus-ring T20\"\n data-focused={props.focused}\n style={{ backgroundImage: `url(${promo.detail?.backgroundImage})` }}\n >\n <Image\n src={promo.image?.href}\n alt=\"Promo Logo\"\n className=\"shop-promo-logo\"\n />\n <div className=\"shop-promo-title T30\">{promo.detail?.title}</div>\n <Image\n src={promo.detail?.qrCode}\n alt=\"QR Code\"\n className=\"shop-promo-qr-code\"\n />\n <p className=\"shop-promo-description T20\">{promo.detail?.link?.text}</p>\n </div>\n );\n};\n\nconst FocusablePromoView = withFocusable<Props>()(ShopPromoView);\n\nconst ShopPromoViewWrapper = (props: Props & WithFocusableProps) => {\n return (\n <div>\n <FocusablePromoView {...props} />\n <div className=\"promo-view-disclaimer T02 TEXT_200 FONT_BOLD\">\n {props.promoData.detail?.disclaimer}\n </div>\n </div>\n );\n};\n\nexport default ShopPromoViewWrapper;\n","import React, { Component } from 'react';\nimport './ShopView.styles.css';\nimport ScrollableContainer from '@/components/core/ScrollableContainer';\nimport SDK from '@/index';\nimport { Direction } from '@/external/spatial-navigation/utils';\nimport TabLoadErrorView from '@/components/molecules/TabLoadError';\nimport ShopViewModel, { ShopErrorState } from '../view-model/ShopViewModel';\nimport {\n IShopProduct,\n IShopSection,\n IShopBrowseCard,\n isShopProduct,\n IShopDefaultItem,\n} from '../types';\nimport ShopSection from './components/ShopSection';\nimport ProductDetailView from './ProductDetailView';\nimport ShopPromoView from './components/ShopPromoView';\n\ntype Unsubscribe = () => void;\n\ninterface State {\n container: HTMLDivElement | null;\n sections: IShopSection[];\n isDataLoading: boolean;\n errorState: ShopErrorState;\n selectedItem: IShopProduct | IShopBrowseCard | null;\n selectedShopSection: IShopSection | null;\n selectedItemFocusKey: string;\n promoData: IShopDefaultItem | null;\n}\n\nclass ShopView extends Component<{}, State> {\n private container: HTMLDivElement | null = null;\n private sectionsListener: Unsubscribe | null = null;\n private isDataLoadingListener: Unsubscribe | null = null;\n private errorStateListener: Unsubscribe | null = null;\n private promoDataListener: Unsubscribe | null = null;\n private vm: ShopViewModel | null;\n\n constructor(props: {}) {\n super(props);\n this.vm = SDK.getMaestroEventViewModel().shopViewModel;\n\n this.state = {\n container: null,\n sections: this.viewModel.sections.value,\n isDataLoading: this.viewModel.isDataLoading.value,\n errorState: this.viewModel.errorState.value,\n selectedItem: null,\n selectedItemFocusKey: '',\n promoData: this.viewModel.promoData.value,\n selectedShopSection: null,\n };\n }\n\n get viewModel() {\n if (!this.vm) {\n throw new Error('ShopViewModel is not initialized');\n }\n\n return this.vm;\n }\n\n componentDidMount(): void {\n this.setState({\n container: this.container,\n });\n\n this.sectionsListener = this.viewModel.sections.subscribe((sections) => {\n this.setState({ sections });\n });\n\n this.isDataLoadingListener = this.viewModel.isDataLoading.subscribe(\n (isDataLoading) => {\n this.setState({ isDataLoading });\n }\n );\n\n this.errorStateListener = this.viewModel.errorState.subscribe(\n (errorState) => {\n this.setState({ errorState });\n }\n );\n\n this.promoDataListener = this.viewModel.promoData.subscribe((promoData) => {\n this.setState({ promoData });\n });\n\n // Initialize the view model\n this.viewModel.init();\n }\n\n componentWillUnmount() {\n this.sectionsListener && this.sectionsListener();\n this.isDataLoadingListener && this.isDataLoadingListener();\n this.errorStateListener && this.errorStateListener();\n this.promoDataListener && this.promoDataListener();\n\n // Clean up the view model\n this.viewModel.cleanup();\n }\n\n clearTabLoadFailure = () => {\n this.viewModel.clearTabLoadFailure();\n };\n\n onArrowPress = (d: Direction) => {\n if (d === 'left') {\n SDK.getMaestroEventViewModel().deliverFocus();\n }\n };\n\n openItemDetail = (\n selectedItem: IShopProduct | IShopBrowseCard,\n selectedShopSection: IShopSection,\n selectedItemFocusKey: string\n ) => {\n const card = isShopProduct(selectedItem)\n ? 'product_summary'\n : ('want more' as const);\n this.viewModel.trackItemClick(card, selectedItem, selectedShopSection);\n\n this.setState(\n { selectedItem, selectedItemFocusKey, selectedShopSection },\n () => {\n SDK.getMaestroEventViewModel().navigation.setFocus(\n 'product-detail-view'\n );\n }\n );\n };\n\n closeProductDetail = () => {\n if (!this.state.selectedItem || !this.state.selectedShopSection) {\n return;\n }\n\n this.viewModel.trackItemClick(\n 'product_detail',\n this.state.selectedItem,\n this.state.selectedShopSection\n );\n\n this.setState({ selectedItem: null, selectedShopSection: null }, () => {\n if (this.state.selectedItemFocusKey) {\n // Added a small delay so all the focusable items are rendered and we have the ref of them\n setTimeout(() => {\n SDK.getMaestroEventViewModel().navigation.setFocus(\n this.state.selectedItemFocusKey\n );\n }, 100);\n }\n });\n };\n\n trackPromoEnterPress = () => {\n this.viewModel.trackItemClick('fallback', null, null);\n };\n\n renderContent = () => {\n const { sections, errorState, selectedItem, promoData } = this.state;\n\n // Show product detail view if a product is selected\n if (selectedItem) {\n return (\n <ProductDetailView\n product={selectedItem}\n onEnterPress={this.closeProductDetail}\n onArrowPress={this.onArrowPress}\n focusKey=\"product-detail-view\"\n />\n );\n }\n\n // Show error state if tab load failed\n if (errorState === 'tabLoadFailure') {\n return (\n <TabLoadErrorView\n onEnterPress={this.clearTabLoadFailure}\n onArrowPress={this.onArrowPress}\n />\n );\n }\n\n // Show promo view if shop is empty and promo data is available\n if ((errorState === 'emptyShop' || sections.length === 0) && promoData) {\n return (\n <ShopPromoView\n promoData={promoData}\n onEnterPress={this.trackPromoEnterPress}\n />\n );\n }\n\n // Render sections\n return sections.map((section, index) => (\n <ShopSection\n key={index}\n sectionIndex={index}\n section={section}\n onArrowPress={this.onArrowPress}\n onItemClick={this.openItemDetail}\n />\n ));\n };\n\n render() {\n return (\n <ScrollableContainer\n scrollableContainerRef={this.state.container}\n containerTopOffset={40}\n data-has-product-selected={!!this.state.selectedItem}\n data-has-error={this.state.errorState !== 'none'}\n >\n <div className=\"shop-view\" ref={(e) => (this.container = e)}>\n {this.renderContent()}\n <div className=\"shop-bottom-padding\" />\n </div>\n </ScrollableContainer>\n );\n }\n}\n\nexport default ShopView;\n","import ShopView from './ShopView';\n\nexport default ShopView;\n","import React from 'react';\nimport { ImgHTMLAttributes } from 'react';\n\ninterface ImageProps extends ImgHTMLAttributes<HTMLImageElement> {}\n\nclass Image extends React.Component<ImageProps> {\n state = {\n failed: false,\n };\n\n constructor(props: ImageProps) {\n super(props);\n }\n\n handleError = () => {\n this.setState({ failed: true });\n };\n\n render() {\n if (this.state.failed) {\n console.warn('Image failed to load:', this.props.src);\n return null;\n }\n\n if (!this.props.src) {\n console.warn('Image source is empty');\n return null;\n }\n\n return (\n <img\n alt={this.props.alt || 'Image'}\n {...this.props}\n onError={this.handleError}\n />\n );\n }\n}\n\nexport default Image;\n","import BaseButton from './BaseButton';\n\nexport default BaseButton;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ActionButton.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import BaseButton from '@/components/atoms/BaseButton';\nimport './ActionButton.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport React from 'react';\n\ntype SpatialNavigationInjectedProps = {\n realFocusKey?: string;\n setFocus?: (focusKey: string) => void;\n navigateByDirection?: (...args: any[]) => any;\n stealFocus?: () => void;\n onUpdateFocus?: (focused: boolean) => void;\n onUpdateHasFocusedChild?: (hasFocusedChild: boolean) => void;\n};\n\ntype Props = React.PropsWithChildren<\n React.ButtonHTMLAttributes<HTMLButtonElement> &\n WithFocusableProps &\n SpatialNavigationInjectedProps\n>;\n\nclass ActionButton extends React.Component<Props, {}> {\n render() {\n const {\n children,\n // spatial-navigation props (must not hit DOM)\n focused: _focused,\n focusKey: _focusKey,\n parentFocusKey: _parentFocusKey,\n preferredChildFocusKey: _preferredChildFocusKey,\n forgetLastFocusedChild: _forgetLastFocusedChild,\n trackChildren: _trackChildren,\n autoRestoreFocus: _autoRestoreFocus,\n blockNavigationOut: _blockNavigationOut,\n hasFocusedChild: _hasFocusedChild,\n focusable: _focusable,\n onEnterPress: _onEnterPress,\n onEnterRelease: _onEnterRelease,\n onBackPress: _onBackPress,\n onArrowPress: _onArrowPress,\n onBecameFocused: _onBecameFocused,\n onBecameBlurred: _onBecameBlurred,\n // injected/internal props (also must not hit DOM)\n realFocusKey: _realFocusKey,\n setFocus: _setFocus,\n navigateByDirection: _navigateByDirection,\n stealFocus: _stealFocus,\n onUpdateFocus: _onUpdateFocus,\n onUpdateHasFocusedChild: _onUpdateHasFocusedChild,\n ...buttonProps\n } = this.props;\n\n return (\n <BaseButton className=\"action-button T05_ALT\" {...buttonProps}>\n {children}\n </BaseButton>\n );\n }\n}\n\nexport default withFocusable()(ActionButton);\n","import ActionButton from './ActionButton';\n\nexport default ActionButton;\n","import ScrollableContainer from './ScrollableContainer';\n\nexport default ScrollableContainer;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tab-load-error {\\n display: block;\\n padding: 24px;\\n background-color: var(--sdk-surface4);\\n}\\n\\n.tab-load-error h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.tab-load-error p {\\n margin: 16px 0;\\n height: 86px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/molecules/TabLoadError/TabLoadError.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,aAAa;EACb,qCAAqC;AACvC;;AAEA;EACE,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,cAAc;EACd,YAAY;AACd\",\"sourcesContent\":[\".tab-load-error {\\n display: block;\\n padding: 24px;\\n background-color: var(--sdk-surface4);\\n}\\n\\n.tab-load-error h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.tab-load-error p {\\n margin: 16px 0;\\n height: 86px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".action-button {\\n padding: 23px 0;\\n background-color: var(--sdk-surface5);\\n color: var(--sdk-text100);\\n}\\n\\n.action-button:hover,\\n.action-button[data-focused='true'] {\\n background-color: var(--sdk-accentPrimary);\\n color: var(--sdk-text500);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/molecules/ActionButton/ActionButton.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,eAAe;EACf,qCAAqC;EACrC,yBAAyB;AAC3B;;AAEA;;EAEE,0CAA0C;EAC1C,yBAAyB;AAC3B\",\"sourcesContent\":[\".action-button {\\n padding: 23px 0;\\n background-color: var(--sdk-surface5);\\n color: var(--sdk-text100);\\n}\\n\\n.action-button:hover,\\n.action-button[data-focused='true'] {\\n background-color: var(--sdk-accentPrimary);\\n color: var(--sdk-text500);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./TabLoadError.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport React from 'react';\nimport ActionButton from '../ActionButton';\nimport './TabLoadError.styles.css';\n\nclass TabLoadErrorView extends React.Component<WithFocusableProps> {\n render() {\n const { focused } = this.props;\n\n return (\n <div data-focused={focused} className=\"tab-load-error focus-ring\">\n <h3 className=\"T70\">We dropped the ball.</h3>\n <p className=\"T20\">\n {\"We're having trouble loading that for you. Please try again.\"}\n </p>\n <ActionButton\n data-focused={focused}\n onEnterPress={this.props.onEnterPress}\n >\n Try Again\n </ActionButton>\n </div>\n );\n }\n}\n\nexport default withFocusable()(TabLoadErrorView);\n","import TabLoadErrorView from './TabLoadError';\n\nexport default TabLoadErrorView;\n"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(this.webpackJsonpMaestroWebSDK=this.webpackJsonpMaestroWebSDK||[]).push([[5],{183:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".shop-view {\n display: block;\n overflow-y: auto;\n max-height: calc(100vh - 86px - 60px - 60px);\n scrollbar-width: none;\n scroll-behavior: smooth;\n overscroll-behavior: contain;\n}\n\n.shop-view::-webkit-scrollbar {\n display: none;\n}\n\n.shop-bottom-padding {\n height: 50vh;\n}\n\n.shop-empty-state {\n display: block;\n text-align: center;\n padding: 60px 20px;\n color: #ffffff;\n font-size: 18px;\n}\n\n.shop-sections {\n display: block;\n}\n\n.scrollable-container[data-has-product-selected='true']::before,\n.scrollable-container[data-has-product-selected='true']::after,\n.scrollable-container[data-has-error='true']::after,\n.scrollable-container[data-has-error='true']::before {\n background: none;\n}\n","",{version:3,sources:["webpack://./src/modules/shop/view/ShopView.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,gBAAgB;EAChB,4CAA4C;EAC5C,qBAAqB;EACrB,uBAAuB;EACvB,4BAA4B;AAC9B;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,cAAc;AAChB;;AAEA;;;;EAIE,gBAAgB;AAClB",sourcesContent:[".shop-view {\n display: block;\n overflow-y: auto;\n max-height: calc(100vh - 86px - 60px - 60px);\n scrollbar-width: none;\n scroll-behavior: smooth;\n overscroll-behavior: contain;\n}\n\n.shop-view::-webkit-scrollbar {\n display: none;\n}\n\n.shop-bottom-padding {\n height: 50vh;\n}\n\n.shop-empty-state {\n display: block;\n text-align: center;\n padding: 60px 20px;\n color: #ffffff;\n font-size: 18px;\n}\n\n.shop-sections {\n display: block;\n}\n\n.scrollable-container[data-has-product-selected='true']::before,\n.scrollable-container[data-has-product-selected='true']::after,\n.scrollable-container[data-has-error='true']::after,\n.scrollable-container[data-has-error='true']::before {\n background: none;\n}\n"],sourceRoot:""}]),n.a=i},184:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".product-detail-view-wrapper > *:first-child {\n margin-bottom: 16px;\n}\n\n/* Card */\n.product-detail-card {\n display: inline-block;\n padding: 24px;\n text-align: center;\n box-sizing: border-box;\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\n width: 100%;\n}\n\n/* Title */\n.product-detail-title {\n margin-bottom: 32px;\n font-family: var(--sdk-font-headline);\n}\n\n/* Mini Product Card Container */\n.product-detail-product {\n margin-bottom: 32px;\n}\n\n/* Override ProductSummaryCard styles when inside detail view */\n.product-detail-product .product-summary-card,\n.product-detail-product .browse-card {\n text-align: left;\n background-color: #ffffff14;\n background-image: none !important;\n padding: 16px;\n}\n\n.product-detail-product .browse-card {\n direction: rtl;\n}\n\n.product-detail-product .browse-card .browse-card-content {\n direction: ltr;\n}\n\n.product-detail-product .browse-card .browse-card-logo-image {\n margin-left: 0;\n margin-right: 24px;\n width: calc(20% - 24px);\n}\n\n.product-detail-product\n .product-summary-card\n .product-summary-card-image-container {\n width: 20%;\n}\n\n.product-detail-product .product-summary-card .product-summary-card-content {\n width: 80%;\n padding: 6px 0px 6px 24px;\n}\n\n.product-detail-product .product-summary-card-title {\n -webkit-line-clamp: 2;\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\n}\n\n/* QR Code Container */\n.product-detail-qr {\n background-color: var(--sdk-highlightPrimary);\n border-radius: 24px;\n margin: 32px 30% 28px 30%;\n overflow: hidden;\n}\n\n.product-detail-qr-image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n/* Instruction Text */\n.product-detail-instruction {\n margin-bottom: 24px;\n font-family: var(--sdk-font-headline);\n}\n\n.product-detail-disclaimer {\n text-align: center;\n}\n","",{version:3,sources:["webpack://./src/modules/shop/view/ProductDetailView/ProductDetailView.styles.css"],names:[],mappings:"AAAA;EACE,mBAAmB;AACrB;;AAEA,SAAS;AACT;EACE,qBAAqB;EACrB,aAAa;EACb,kBAAkB;EAClB,sBAAsB;EACtB,iDAAiD;EACjD,WAAW;AACb;;AAEA,UAAU;AACV;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA,gCAAgC;AAChC;EACE,mBAAmB;AACrB;;AAEA,+DAA+D;AAC/D;;EAEE,gBAAgB;EAChB,2BAA2B;EAC3B,iCAAiC;EACjC,aAAa;AACf;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,uBAAuB;AACzB;;AAEA;;;EAGE,UAAU;AACZ;;AAEA;EACE,UAAU;EACV,yBAAyB;AAC3B;;AAEA;EACE,qBAAqB;EACrB,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,sBAAsB;AACtB;EACE,6CAA6C;EAC7C,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;AACrB;;AAEA,qBAAqB;AACrB;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA;EACE,kBAAkB;AACpB",sourcesContent:[".product-detail-view-wrapper > *:first-child {\n margin-bottom: 16px;\n}\n\n/* Card */\n.product-detail-card {\n display: inline-block;\n padding: 24px;\n text-align: center;\n box-sizing: border-box;\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\n width: 100%;\n}\n\n/* Title */\n.product-detail-title {\n margin-bottom: 32px;\n font-family: var(--sdk-font-headline);\n}\n\n/* Mini Product Card Container */\n.product-detail-product {\n margin-bottom: 32px;\n}\n\n/* Override ProductSummaryCard styles when inside detail view */\n.product-detail-product .product-summary-card,\n.product-detail-product .browse-card {\n text-align: left;\n background-color: #ffffff14;\n background-image: none !important;\n padding: 16px;\n}\n\n.product-detail-product .browse-card {\n direction: rtl;\n}\n\n.product-detail-product .browse-card .browse-card-content {\n direction: ltr;\n}\n\n.product-detail-product .browse-card .browse-card-logo-image {\n margin-left: 0;\n margin-right: 24px;\n width: calc(20% - 24px);\n}\n\n.product-detail-product\n .product-summary-card\n .product-summary-card-image-container {\n width: 20%;\n}\n\n.product-detail-product .product-summary-card .product-summary-card-content {\n width: 80%;\n padding: 6px 0px 6px 24px;\n}\n\n.product-detail-product .product-summary-card-title {\n -webkit-line-clamp: 2;\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\n}\n\n/* QR Code Container */\n.product-detail-qr {\n background-color: var(--sdk-highlightPrimary);\n border-radius: 24px;\n margin: 32px 30% 28px 30%;\n overflow: hidden;\n}\n\n.product-detail-qr-image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n/* Instruction Text */\n.product-detail-instruction {\n margin-bottom: 24px;\n font-family: var(--sdk-font-headline);\n}\n\n.product-detail-disclaimer {\n text-align: center;\n}\n"],sourceRoot:""}]),n.a=i},185:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,"/* Product Summary Card - TV-compatible CSS (no flex/grid) */\n\n.product-summary-card {\n position: relative;\n background-color: var(--sdk-surface4);\n overflow: hidden;\n vertical-align: middle;\n padding: 24px;\n width: 100%;\n box-sizing: border-box;\n}\n\n/* Product Image Container - 144x144 */\n.product-summary-card-image-container {\n display: inline-block;\n vertical-align: middle;\n width: 20%;\n overflow: hidden;\n line-height: 0;\n}\n\n.product-summary-card-image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: 8px;\n}\n\n/* Text Content Container */\n.product-summary-card-content {\n display: inline-block;\n vertical-align: middle;\n padding: 16px 0 16px 24px;\n white-space: normal;\n width: 80%;\n box-sizing: border-box;\n}\n\n.product-summary-card-content[data-has-image='false'] {\n width: 100%;\n}\n\n/* Product Title - max 3 lines with ellipsis */\n.product-summary-card-title {\n padding-bottom: 4px;\n /* Line clamp for 3 lines */\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n /* Fallback for non-webkit browsers */\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\n}\n\n/* Price Container */\n.product-summary-card-price-container {\n white-space: nowrap;\n}\n\n/* Original Price (crossed out when on sale) */\n.product-summary-card-price-original {\n text-decoration: line-through;\n opacity: 0.6;\n margin-right: 4px;\n}\n\n/* Sale/Clearance Price */\n.product-summary-card-price-sale {\n margin-right: 8px;\n}\n\n/* Sale/Clearance Badge */\n.product-summary-card-badge {\n display: inline-block;\n background-color: var(--sdk-alertError);\n padding-inline: 4px;\n border-radius: 4px;\n}\n\n.product-summary-card-qr-image {\n object-fit: contain;\n position: absolute;\n bottom: 16px;\n right: 16px;\n width: 6%;\n height: auto;\n}\n","",{version:3,sources:["webpack://./src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css"],names:[],mappings:"AAAA,4DAA4D;;AAE5D;EACE,kBAAkB;EAClB,qCAAqC;EACrC,gBAAgB;EAChB,sBAAsB;EACtB,aAAa;EACb,WAAW;EACX,sBAAsB;AACxB;;AAEA,sCAAsC;AACtC;EACE,qBAAqB;EACrB,sBAAsB;EACtB,UAAU;EACV,gBAAgB;EAChB,cAAc;AAChB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA,2BAA2B;AAC3B;EACE,qBAAqB;EACrB,sBAAsB;EACtB,yBAAyB;EACzB,mBAAmB;EACnB,UAAU;EACV,sBAAsB;AACxB;;AAEA;EACE,WAAW;AACb;;AAEA,8CAA8C;AAC9C;EACE,mBAAmB;EACnB,2BAA2B;EAC3B,oBAAoB;EACpB,qBAAqB;EACrB,4BAA4B;EAC5B,gBAAgB;EAChB,uBAAuB;EACvB,qCAAqC;EACrC,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,oBAAoB;AACpB;EACE,mBAAmB;AACrB;;AAEA,8CAA8C;AAC9C;EACE,6BAA6B;EAC7B,YAAY;EACZ,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,qBAAqB;EACrB,uCAAuC;EACvC,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,SAAS;EACT,YAAY;AACd",sourcesContent:["/* Product Summary Card - TV-compatible CSS (no flex/grid) */\n\n.product-summary-card {\n position: relative;\n background-color: var(--sdk-surface4);\n overflow: hidden;\n vertical-align: middle;\n padding: 24px;\n width: 100%;\n box-sizing: border-box;\n}\n\n/* Product Image Container - 144x144 */\n.product-summary-card-image-container {\n display: inline-block;\n vertical-align: middle;\n width: 20%;\n overflow: hidden;\n line-height: 0;\n}\n\n.product-summary-card-image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: 8px;\n}\n\n/* Text Content Container */\n.product-summary-card-content {\n display: inline-block;\n vertical-align: middle;\n padding: 16px 0 16px 24px;\n white-space: normal;\n width: 80%;\n box-sizing: border-box;\n}\n\n.product-summary-card-content[data-has-image='false'] {\n width: 100%;\n}\n\n/* Product Title - max 3 lines with ellipsis */\n.product-summary-card-title {\n padding-bottom: 4px;\n /* Line clamp for 3 lines */\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n /* Fallback for non-webkit browsers */\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\n}\n\n/* Price Container */\n.product-summary-card-price-container {\n white-space: nowrap;\n}\n\n/* Original Price (crossed out when on sale) */\n.product-summary-card-price-original {\n text-decoration: line-through;\n opacity: 0.6;\n margin-right: 4px;\n}\n\n/* Sale/Clearance Price */\n.product-summary-card-price-sale {\n margin-right: 8px;\n}\n\n/* Sale/Clearance Badge */\n.product-summary-card-badge {\n display: inline-block;\n background-color: var(--sdk-alertError);\n padding-inline: 4px;\n border-radius: 4px;\n}\n\n.product-summary-card-qr-image {\n object-fit: contain;\n position: absolute;\n bottom: 16px;\n right: 16px;\n width: 6%;\n height: auto;\n}\n"],sourceRoot:""}]),n.a=i},186:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,"/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\n\n.browse-card {\n position: relative;\n display: block;\n background-color: var(--sdk-surface4);\n padding: 24px;\n box-sizing: border-box;\n text-align: left;\n}\n\n.browse-card-content {\n display: inline-block;\n width: 80%;\n vertical-align: middle;\n}\n\n/* Tag Line */\n.browse-card-tagline {\n margin-bottom: 4px;\n width: 85%;\n}\n\n.browse-card-caption {\n width: 85%;\n}\n\n.browse-card-logo-image {\n width: calc(20% - 12px);\n height: 100%;\n vertical-align: middle;\n margin-left: 12px;\n}\n","",{version:3,sources:["webpack://./src/modules/shop/view/components/BrowseCard/BrowseCard.styles.css"],names:[],mappings:"AAAA,+DAA+D;;AAE/D;EACE,kBAAkB;EAClB,cAAc;EACd,qCAAqC;EACrC,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,qBAAqB;EACrB,UAAU;EACV,sBAAsB;AACxB;;AAEA,aAAa;AACb;EACE,kBAAkB;EAClB,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,uBAAuB;EACvB,YAAY;EACZ,sBAAsB;EACtB,iBAAiB;AACnB",sourcesContent:["/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\n\n.browse-card {\n position: relative;\n display: block;\n background-color: var(--sdk-surface4);\n padding: 24px;\n box-sizing: border-box;\n text-align: left;\n}\n\n.browse-card-content {\n display: inline-block;\n width: 80%;\n vertical-align: middle;\n}\n\n/* Tag Line */\n.browse-card-tagline {\n margin-bottom: 4px;\n width: 85%;\n}\n\n.browse-card-caption {\n width: 85%;\n}\n\n.browse-card-logo-image {\n width: calc(20% - 12px);\n height: 100%;\n vertical-align: middle;\n margin-left: 12px;\n}\n"],sourceRoot:""}]),n.a=i},187:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".shop-promo-view {\n display: block;\n text-align: center;\n padding: 32px;\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n.shop-promo-logo {\n padding: 30px 24px;\n}\n\n.shop-promo-qr-code {\n border-radius: 24px;\n margin: 32px 0 48px 0;\n width: 100%;\n max-width: 50%;\n}\n\n.shop-promo-description {\n margin: 0 17px;\n}\n\n.promo-view-disclaimer {\n margin-top: 24px;\n text-align: center;\n}\n","",{version:3,sources:["webpack://./src/modules/shop/view/components/ShopPromoView/ShopPromoView.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,2BAA2B;EAC3B,4BAA4B;AAC9B;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,qBAAqB;EACrB,WAAW;EACX,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;AACpB",sourcesContent:[".shop-promo-view {\n display: block;\n text-align: center;\n padding: 32px;\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n.shop-promo-logo {\n padding: 30px 24px;\n}\n\n.shop-promo-qr-code {\n border-radius: 24px;\n margin: 32px 0 48px 0;\n width: 100%;\n max-width: 50%;\n}\n\n.shop-promo-description {\n margin: 0 17px;\n}\n\n.promo-view-disclaimer {\n margin-top: 24px;\n text-align: center;\n}\n"],sourceRoot:""}]),n.a=i},188:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".shop-section {\n margin-bottom: 40px;\n}\n\n.shop-section-title {\n margin: 0;\n margin-bottom: 0 !important;\n padding-top: 24px;\n padding-bottom: 0;\n margin-bottom: 16px !important;\n text-align: center;\n position: sticky;\n top: 0;\n z-index: 1;\n font-size: 21px;\n}\n\n/* Layout for product cards - TV compatible (no flex/grid) */\n.shop-section-items > * {\n display: inline-block;\n margin-bottom: 16px;\n}\n\n.shop-item-placeholder {\n display: inline-block;\n vertical-align: top;\n width: 200px;\n height: 250px;\n padding: 16px;\n background-color: rgba(255, 255, 255, 0.1);\n border-radius: 8px;\n color: #ffffff;\n}\n","",{version:3,sources:["webpack://./src/modules/shop/view/components/ShopSection/ShopSection.styles.css"],names:[],mappings:"AAAA;EACE,mBAAmB;AACrB;;AAEA;EACE,SAAS;EACT,2BAA2B;EAC3B,iBAAiB;EACjB,iBAAiB;EACjB,8BAA8B;EAC9B,kBAAkB;EAClB,gBAAgB;EAChB,MAAM;EACN,UAAU;EACV,eAAe;AACjB;;AAEA,4DAA4D;AAC5D;EACE,qBAAqB;EACrB,mBAAmB;AACrB;;AAEA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,YAAY;EACZ,aAAa;EACb,aAAa;EACb,0CAA0C;EAC1C,kBAAkB;EAClB,cAAc;AAChB",sourcesContent:[".shop-section {\n margin-bottom: 40px;\n}\n\n.shop-section-title {\n margin: 0;\n margin-bottom: 0 !important;\n padding-top: 24px;\n padding-bottom: 0;\n margin-bottom: 16px !important;\n text-align: center;\n position: sticky;\n top: 0;\n z-index: 1;\n font-size: 21px;\n}\n\n/* Layout for product cards - TV compatible (no flex/grid) */\n.shop-section-items > * {\n display: inline-block;\n margin-bottom: 16px;\n}\n\n.shop-item-placeholder {\n display: inline-block;\n vertical-align: top;\n width: 200px;\n height: 250px;\n padding: 16px;\n background-color: rgba(255, 255, 255, 0.1);\n border-radius: 8px;\n color: #ffffff;\n}\n"],sourceRoot:""}]),n.a=i},203:function(e,n,t){"use strict";t.r(n);var r=t(0),a=t.n(r),o=t(5),i=t.n(o),s=t(183),c={insert:"head",singleton:!1},d=(i()(s.a,c),s.a.locals,t(96)),A=t(10),l=t(99),p=t(29),u=t(188),m={insert:"head",singleton:!1},h=(i()(u.a,m),u.a.locals,t(185)),g={insert:"head",singleton:!1},C=(i()(h.a,g),h.a.locals,t(89)),E=t(91);class b extends a.a.Component{render(){const{product:e,focused:n}=this.props,{image:t,name:r,price:o}=e,i=(null==o?void 0:o.displayClearance)||(null==o?void 0:o.displaySale),s=!!i;return a.a.createElement("div",{className:"product-summary-card focus-ring","data-focused":n},Boolean(null==t?void 0:t.href)&&a.a.createElement("div",{className:"product-summary-card-image-container"},a.a.createElement(E.a,{src:t.href,alt:r||"Product",className:"product-summary-card-image"})),a.a.createElement("div",{className:"product-summary-card-content","data-has-image":!(null==t||!t.href)},a.a.createElement("div",{className:"product-summary-card-title T05_ALT"},r||"Product Name"),a.a.createElement("div",{className:"product-summary-card-price-container"},s?a.a.createElement("div",null,a.a.createElement("span",{className:"product-summary-card-price-original T02 TEXT_200"},(null==o?void 0:o.displayRetail)||"$0.00"),a.a.createElement("span",{className:"product-summary-card-price-sale T02 TEXT_200"},i),a.a.createElement("span",{className:"product-summary-card-badge T02 FONT_BOLD"},"SALE")):a.a.createElement("span",{className:"product-summary-card-price T02 TEXT_200"},(null==o?void 0:o.displayRetail)||"$0.00"))),n&&a.a.createElement(E.a,{src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACHElEQVR4Ae2YgXHCMAxFf3oM0A3qbsAGDRuwQWGC0gmgEwATkG7ABqQb0AlwN0gnSKXDpWqwiQU5IHe8O52xY8U/toyVoIwjRcPwPWMGvsOVc/UCE55GUe+RWU+/IkmSAg1DQxtPM7etZCfJAy4Mi25VDHZCF0g8T7NBPHMKgxn5jej3i8LPkl8PWoHYijOI516UBg3RiiXeTS9N9Veg3yvZ2tPOS9lHmA+yiae9SzYN+BRSU4dE5ahn7etH8Tao8dsE/IIO7u9s56NaYrrxlDcPWV/plzq/KZRoY5CXJsXfhojFOL8ulHSU/d/I3iGWIJKcbIhtfKlQCYyMV5+fpSLDEcQKHFP8PHvan2r8OPYWnvboEIkVmOI4DNkAJ9Des5iYQ7db80oZS+Np3FlJQhdcVqKaQd7l7v0lVfhxMjyDFhpoU+qYOL9JqWNzSEerN4lkCX8wp2gw9/MRK3AeyEoy7AvktCwTdb6eirrF/51eNCHwVxBnMbxxcnd87UHtPNtL4TOoCqQ+Q0SijUFOUBc4/mRRo81mPl1pcSa02cyork+5fRk3ool/56Juy8q3nkNZUqzAbiBN973oD8jGop7J10onbiWuW7JHhARWnmYd+MShTtVPQWriGZRPY3Dhw9uFyE7ToSW20FGI0or2b08/Gz1O5Vy8fTzS0rpk4ZFmdS9HDB1rp0Dj8JHpyzdNtWMMKZoXePuIfhZ+AArh47ArZrulAAAAAElFTkSuQmCC",alt:"QR Code",className:"product-summary-card-qr-image"}))}}var B=Object(C.a)()(b),v=t(16),f=t(26),x=t(186),w={insert:"head",singleton:!1};i()(x.a,w),x.a.locals;class y extends a.a.Component{render(){const{browseCard:e,focused:n}=this.props,{name:t,caption:r,image:o,detail:i}=e;return a.a.createElement("div",{className:"browse-card focus-ring","data-focused":n,style:{backgroundImage:null!=i&&i.backgroundImage?`url(${i.backgroundImage})`:"none",backgroundSize:"cover",backgroundPosition:"center",backgroundClip:"padding-box"}},a.a.createElement("div",{className:"browse-card-content"},!!t&&a.a.createElement("div",{className:"browse-card-tagline T20 FONT_BOLD"},t),a.a.createElement("div",{className:"browse-card-caption T10"},r||"Browse all merch")),(null==o?void 0:o.href)&&a.a.createElement(E.a,{src:o.href,width:72,height:72,alt:t||"Logo",className:"browse-card-logo-image"}))}}var k=Object(C.a)()(y);function S(e,n,t){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class P extends a.a.Component{constructor(...e){super(...e),S(this,"context",v.a),S(this,"onBecameFocused",e=>{this.context.scrollToFocusedElement(e,{offsetTop:40})}),S(this,"onEnterPress",(e,n,t)=>()=>{this.props.onItemClick(e,n,t)})}render(){var e;const{section:n,sectionIndex:t,onArrowPress:r}=this.props;return a.a.createElement("div",{className:"shop-section"},a.a.createElement("h2",{className:"shop-section-title TEXT_200"},n.title),a.a.createElement("div",{className:"shop-section-items"},null===(e=n.items)||void 0===e?void 0:e.map((e,o)=>{const i=`shop-section-${t}-item-${o}`;return"product"===e.type?a.a.createElement(f.a,{key:o},a.a.createElement(B,{product:e,onEnterPress:this.onEnterPress(e,n,i),onArrowPress:r,onBecameFocused:this.onBecameFocused,focusKey:i})):"browse"===e.type?a.a.createElement(f.a,{key:o},a.a.createElement(k,{key:o,browseCard:e,onArrowPress:r,onEnterPress:this.onEnterPress(e,n,i),onBecameFocused:this.onBecameFocused,focusKey:i})):null})))}}S(P,"contextTypes",v.b);var T=P,q=t(184),D={insert:"head",singleton:!1},N=(i()(q.a,D),q.a.locals,t(94)),L=t(8);const I=Object(C.a)()(e=>{var n,t;const{product:r,focused:o}=e,i=r.detail,s=(()=>{const e=null==i?void 0:i.backgroundImage;if(!e)return null;try{if(new URL(e).hostname.includes("stitcher")){return Object(L.a)(e,570,670)}}catch{if(e.includes("stitcher")){return Object(L.a)(e,570,670)}}return e})();return a.a.createElement("div",{className:"product-detail-card focus-ring","data-focused":o,style:{...s&&{backgroundImage:`url(${s})`,backgroundSize:"cover",backgroundClip:"padding-box",backgroundPosition:"center"}}},a.a.createElement("div",{className:"product-detail-title T70"},(null==i?void 0:i.title)||"Shop the look"),a.a.createElement("div",{className:"product-detail-product"},Object(p.a)(r)?a.a.createElement(B,{product:r,focusable:!1}):a.a.createElement(k,{browseCard:{...r,name:void 0,caption:null===(n=r.detail)||void 0===n?void 0:n.description},focusable:!1})),(null==i?void 0:i.qrCode)&&a.a.createElement("div",{className:"product-detail-qr"},a.a.createElement(E.a,{src:i.qrCode,alt:"QR Code",className:"product-detail-qr-image"})),a.a.createElement("div",{className:"product-detail-instruction T04"},null==i||null===(t=i.link)||void 0===t?void 0:t.text),a.a.createElement(N.a,{"data-focused":o},"Dismiss"))});var M=e=>{var n;return a.a.createElement("div",{className:"product-detail-view-wrapper"},a.a.createElement(I,e),(null===(n=e.product.detail)||void 0===n?void 0:n.disclaimer)&&a.a.createElement("div",{className:"product-detail-disclaimer T02 TEXT_200 FONT_BOLD"},e.product.detail.disclaimer))},F=t(187),O={insert:"head",singleton:!1};i()(F.a,O),F.a.locals;const j=Object(C.a)()(e=>{var n,t,r,o,i,s;const c=e.promoData;return a.a.createElement("div",{className:"shop-promo-view focus-ring T20","data-focused":e.focused,style:{backgroundImage:`url(${null===(n=c.detail)||void 0===n?void 0:n.backgroundImage})`}},a.a.createElement(E.a,{src:null===(t=c.image)||void 0===t?void 0:t.href,alt:"Promo Logo",className:"shop-promo-logo"}),a.a.createElement("div",{className:"shop-promo-title T30"},null===(r=c.detail)||void 0===r?void 0:r.title),a.a.createElement(E.a,{src:null===(o=c.detail)||void 0===o?void 0:o.qrCode,alt:"QR Code",className:"shop-promo-qr-code"}),a.a.createElement("p",{className:"shop-promo-description T20"},null===(i=c.detail)||void 0===i||null===(s=i.link)||void 0===s?void 0:s.text))});var U=e=>{var n;return a.a.createElement("div",null,a.a.createElement(j,e),a.a.createElement("div",{className:"promo-view-disclaimer T02 TEXT_200 FONT_BOLD"},null===(n=e.promoData.detail)||void 0===n?void 0:n.disclaimer))};function V(e,n,t){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class W extends r.Component{constructor(e){super(e),V(this,"container",null),V(this,"sectionsListener",null),V(this,"isDataLoadingListener",null),V(this,"errorStateListener",null),V(this,"promoDataListener",null),V(this,"vm",void 0),V(this,"clearTabLoadFailure",()=>{this.viewModel.clearTabLoadFailure()}),V(this,"onArrowPress",e=>{"left"===e&&A.default.getMaestroEventViewModel().deliverFocus()}),V(this,"openItemDetail",(e,n,t)=>{const r=Object(p.a)(e)?"product_summary":"want more";this.viewModel.trackItemClick(r,e,n),this.setState({selectedItem:e,selectedItemFocusKey:t,selectedShopSection:n},()=>{A.default.getMaestroEventViewModel().navigation.setFocus("product-detail-view")})}),V(this,"closeProductDetail",()=>{this.state.selectedItem&&this.state.selectedShopSection&&(this.viewModel.trackItemClick("product_detail",this.state.selectedItem,this.state.selectedShopSection),this.setState({selectedItem:null,selectedShopSection:null},()=>{this.state.selectedItemFocusKey&&setTimeout(()=>{A.default.getMaestroEventViewModel().navigation.setFocus(this.state.selectedItemFocusKey)},100)}))}),V(this,"trackPromoEnterPress",()=>{this.viewModel.trackItemClick("fallback",null,null)}),V(this,"renderContent",()=>{const{sections:e,errorState:n,selectedItem:t,promoData:r}=this.state;return t?a.a.createElement(M,{product:t,onEnterPress:this.closeProductDetail,onArrowPress:this.onArrowPress,focusKey:"product-detail-view"}):"tabLoadFailure"===n?a.a.createElement(l.a,{onEnterPress:this.clearTabLoadFailure,onArrowPress:this.onArrowPress}):"emptyShop"!==n&&0!==e.length||!r?e.map((e,n)=>a.a.createElement(T,{key:n,sectionIndex:n,section:e,onArrowPress:this.onArrowPress,onItemClick:this.openItemDetail})):a.a.createElement(U,{promoData:r,onEnterPress:this.trackPromoEnterPress})}),this.vm=A.default.getMaestroEventViewModel().shopViewModel,this.state={container:null,sections:this.viewModel.sections.value,isDataLoading:this.viewModel.isDataLoading.value,errorState:this.viewModel.errorState.value,selectedItem:null,selectedItemFocusKey:"",promoData:this.viewModel.promoData.value,selectedShopSection:null}}get viewModel(){if(!this.vm)throw new Error("ShopViewModel is not initialized");return this.vm}componentDidMount(){this.setState({container:this.container}),this.sectionsListener=this.viewModel.sections.subscribe(e=>{this.setState({sections:e})}),this.isDataLoadingListener=this.viewModel.isDataLoading.subscribe(e=>{this.setState({isDataLoading:e})}),this.errorStateListener=this.viewModel.errorState.subscribe(e=>{this.setState({errorState:e})}),this.promoDataListener=this.viewModel.promoData.subscribe(e=>{this.setState({promoData:e})}),this.viewModel.init()}componentWillUnmount(){this.sectionsListener&&this.sectionsListener(),this.isDataLoadingListener&&this.isDataLoadingListener(),this.errorStateListener&&this.errorStateListener(),this.promoDataListener&&this.promoDataListener(),this.viewModel.cleanup()}render(){return a.a.createElement(d.a,{scrollableContainerRef:this.state.container,containerTopOffset:40,"data-has-product-selected":!!this.state.selectedItem,"data-has-error":"none"!==this.state.errorState},a.a.createElement("div",{className:"shop-view",ref:e=>this.container=e},this.renderContent(),a.a.createElement("div",{className:"shop-bottom-padding"})))}}var z=W;n.default=z},91:function(e,n,t){"use strict";var r=t(0),a=t.n(r);function o(){return(o=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(null,arguments)}function i(e,n,t){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class s extends a.a.Component{constructor(e){super(e),i(this,"state",{failed:!1}),i(this,"handleError",()=>{this.setState({failed:!0})})}render(){return this.state.failed?(console.warn("Image failed to load:",this.props.src),null):this.props.src?a.a.createElement("img",o({alt:this.props.alt||"Image"},this.props,{onError:this.handleError})):(console.warn("Image source is empty"),null)}}n.a=s},94:function(e,n,t){"use strict";var r=t(28).a,a=t(5),o=t.n(a),i=t(98),s={insert:"head",singleton:!1},c=(o()(i.a,s),i.a.locals,t(89)),d=t(0),A=t.n(d);function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(null,arguments)}class p extends A.a.Component{render(){const{children:e,focused:n,focusKey:t,parentFocusKey:a,preferredChildFocusKey:o,forgetLastFocusedChild:i,trackChildren:s,autoRestoreFocus:c,blockNavigationOut:d,hasFocusedChild:p,focusable:u,onEnterPress:m,onEnterRelease:h,onBackPress:g,onArrowPress:C,onBecameFocused:E,onBecameBlurred:b,realFocusKey:B,setFocus:v,navigateByDirection:f,stealFocus:x,onUpdateFocus:w,onUpdateHasFocusedChild:y,...k}=this.props;return A.a.createElement(r,l({className:"action-button T05_ALT"},k),e)}}var u=Object(c.a)()(p);n.a=u},96:function(e,n,t){"use strict";var r=t(16);n.a=r.c},97:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".tab-load-error {\n display: block;\n padding: 24px;\n background-color: var(--sdk-surface4);\n}\n\n.tab-load-error h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n}\n\n.tab-load-error p {\n margin: 16px 0;\n height: 86px;\n}\n","",{version:3,sources:["webpack://./src/components/molecules/TabLoadError/TabLoadError.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,aAAa;EACb,qCAAqC;AACvC;;AAEA;EACE,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,cAAc;EACd,YAAY;AACd",sourcesContent:[".tab-load-error {\n display: block;\n padding: 24px;\n background-color: var(--sdk-surface4);\n}\n\n.tab-load-error h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n}\n\n.tab-load-error p {\n margin: 16px 0;\n height: 86px;\n}\n"],sourceRoot:""}]),n.a=i},98:function(e,n,t){"use strict";var r=t(6),a=t.n(r),o=t(7),i=t.n(o)()(a.a);i.push([e.i,".action-button {\n padding: 23px 0;\n background-color: var(--sdk-surface5);\n color: var(--sdk-text100);\n}\n\n.action-button:hover,\n.action-button[data-focused='true'] {\n background-color: var(--sdk-accentPrimary);\n color: var(--sdk-text500);\n}\n","",{version:3,sources:["webpack://./src/components/molecules/ActionButton/ActionButton.styles.css"],names:[],mappings:"AAAA;EACE,eAAe;EACf,qCAAqC;EACrC,yBAAyB;AAC3B;;AAEA;;EAEE,0CAA0C;EAC1C,yBAAyB;AAC3B",sourcesContent:[".action-button {\n padding: 23px 0;\n background-color: var(--sdk-surface5);\n color: var(--sdk-text100);\n}\n\n.action-button:hover,\n.action-button[data-focused='true'] {\n background-color: var(--sdk-accentPrimary);\n color: var(--sdk-text500);\n}\n"],sourceRoot:""}]),n.a=i},99:function(e,n,t){"use strict";var r=t(89),a=t(0),o=t.n(a),i=t(94),s=t(5),c=t.n(s),d=t(97),A={insert:"head",singleton:!1};c()(d.a,A),d.a.locals;class l extends o.a.Component{render(){const{focused:e}=this.props;return o.a.createElement("div",{"data-focused":e,className:"tab-load-error focus-ring"},o.a.createElement("h3",{className:"T70"},"We dropped the ball."),o.a.createElement("p",{className:"T20"},"We're having trouble loading that for you. Please try again."),o.a.createElement(i.a,{"data-focused":e,onEnterPress:this.props.onEnterPress},"Try Again"))}}var p=Object(r.a)()(l);n.a=p}}]);
|
|
2
|
+
//# sourceMappingURL=5.maestro-web-sdk.umd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack://MaestroWebSDK/./src/modules/shop/view/ShopView.styles.css","webpack://MaestroWebSDK/./src/modules/shop/view/ProductDetailView/ProductDetailView.styles.css","webpack://MaestroWebSDK/./src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css","webpack://MaestroWebSDK/./src/modules/shop/view/components/BrowseCard/BrowseCard.styles.css","webpack://MaestroWebSDK/./src/modules/shop/view/components/ShopPromoView/ShopPromoView.styles.css","webpack://MaestroWebSDK/./src/modules/shop/view/components/ShopSection/ShopSection.styles.css","webpack://MaestroWebSDK/./src/modules/shop/view/ShopView.styles.css?e126","webpack://MaestroWebSDK/./src/modules/shop/view/components/ShopSection/ShopSection.styles.css?7434","webpack://MaestroWebSDK/./src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css?58b0","webpack://MaestroWebSDK/./src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.tsx","webpack://MaestroWebSDK/./src/modules/shop/view/components/BrowseCard/BrowseCard.styles.css?52d7","webpack://MaestroWebSDK/./src/modules/shop/view/components/BrowseCard/BrowseCard.tsx","webpack://MaestroWebSDK/./src/modules/shop/view/components/ShopSection/ShopSection.tsx","webpack://MaestroWebSDK/./src/modules/shop/view/ProductDetailView/ProductDetailView.styles.css?e1e7","webpack://MaestroWebSDK/./src/modules/shop/view/ProductDetailView/ProductDetailView.tsx","webpack://MaestroWebSDK/./src/modules/shop/view/components/ShopPromoView/ShopPromoView.styles.css?b08e","webpack://MaestroWebSDK/./src/modules/shop/view/components/ShopPromoView/ShopPromoView.tsx","webpack://MaestroWebSDK/./src/modules/shop/view/ShopView.tsx","webpack://MaestroWebSDK/./src/modules/shop/view/index.ts","webpack://MaestroWebSDK/./src/components/atoms/Image/index.tsx","webpack://MaestroWebSDK/./src/components/atoms/BaseButton/index.ts","webpack://MaestroWebSDK/./src/components/molecules/ActionButton/ActionButton.styles.css?ed9b","webpack://MaestroWebSDK/./src/components/molecules/ActionButton/ActionButton.tsx","webpack://MaestroWebSDK/./src/components/molecules/ActionButton/index.ts","webpack://MaestroWebSDK/./src/components/core/ScrollableContainer/index.ts","webpack://MaestroWebSDK/./src/components/molecules/TabLoadError/TabLoadError.styles.css","webpack://MaestroWebSDK/./src/components/molecules/ActionButton/ActionButton.styles.css","webpack://MaestroWebSDK/./src/components/molecules/TabLoadError/TabLoadError.styles.css?59a9","webpack://MaestroWebSDK/./src/components/molecules/TabLoadError/TabLoadError.tsx","webpack://MaestroWebSDK/./src/components/molecules/TabLoadError/index.ts"],"names":["___CSS_LOADER_EXPORT___","push","module","i","options","locals","ProductSummaryCard","React","Component","render","product","focused","this","props","image","name","price","salePrice","displayClearance","displaySale","isOnSale","createElement","className","data-focused","Boolean","href","Image","src","alt","data-has-image","displayRetail","withFocusable","BrowseCardView","browseCard","caption","detail","style","backgroundImage","backgroundSize","backgroundPosition","backgroundClip","width","height","ShopSection","constructor","args","_defineProperty","DEFAULT_SCROLLABLE_CONTAINER_CONTEXT","layout","context","scrollToFocusedElement","offsetTop","item","section","focusKey","onItemClick","_section$items","sectionIndex","onArrowPress","title","items","map","itemIndex","type","FocusableItem","key","onEnterPress","onBecameFocused","BrowseCard","SCROLLABLE_CONTEXT_TYPE","FocusableProductDetail","_product$detail","_detail$link","bgImage","getBackgroundImage","URL","hostname","includes","setImageDimensions","isShopProduct","focusable","undefined","description","qrCode","link","text","ActionButton","ProductDetailView","_props$product$detail","disclaimer","FocusablePromoView","_promo$detail","_promo$image","_promo$detail2","_promo$detail3","_promo$detail4","_promo$detail4$link","promo","promoData","ShopPromoViewWrapper","_props$promoData$deta","ShopView","super","viewModel","clearTabLoadFailure","d","SDK","getMaestroEventViewModel","deliverFocus","selectedItem","selectedShopSection","selectedItemFocusKey","card","trackItemClick","setState","navigation","setFocus","state","setTimeout","sections","errorState","closeProductDetail","TabLoadErrorView","length","index","openItemDetail","ShopPromoView","trackPromoEnterPress","vm","shopViewModel","container","value","isDataLoading","Error","componentDidMount","sectionsListener","subscribe","isDataLoadingListener","errorStateListener","promoDataListener","init","componentWillUnmount","cleanup","ScrollableContainer","scrollableContainerRef","containerTopOffset","data-has-product-selected","data-has-error","ref","e","renderContent","failed","console","warn","_extends","onError","handleError","BaseButton","children","_focused","_focusKey","parentFocusKey","_parentFocusKey","preferredChildFocusKey","_preferredChildFocusKey","forgetLastFocusedChild","_forgetLastFocusedChild","trackChildren","_trackChildren","autoRestoreFocus","_autoRestoreFocus","blockNavigationOut","_blockNavigationOut","hasFocusedChild","_hasFocusedChild","_focusable","_onEnterPress","onEnterRelease","_onEnterRelease","onBackPress","_onBackPress","_onArrowPress","_onBecameFocused","onBecameBlurred","_onBecameBlurred","realFocusKey","_realFocusKey","_setFocus","navigateByDirection","_navigateByDirection","stealFocus","_stealFocus","onUpdateFocus","_onUpdateFocus","onUpdateHasFocusedChild","_onUpdateHasFocusedChild","buttonProps"],"mappings":"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","file":"5.maestro-web-sdk.umd.js","sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-view {\\n display: block;\\n overflow-y: auto;\\n max-height: calc(100vh - 86px - 60px - 60px);\\n scrollbar-width: none;\\n scroll-behavior: smooth;\\n overscroll-behavior: contain;\\n}\\n\\n.shop-view::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.shop-bottom-padding {\\n height: 50vh;\\n}\\n\\n.shop-empty-state {\\n display: block;\\n text-align: center;\\n padding: 60px 20px;\\n color: #ffffff;\\n font-size: 18px;\\n}\\n\\n.shop-sections {\\n display: block;\\n}\\n\\n.scrollable-container[data-has-product-selected='true']::before,\\n.scrollable-container[data-has-product-selected='true']::after,\\n.scrollable-container[data-has-error='true']::after,\\n.scrollable-container[data-has-error='true']::before {\\n background: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/ShopView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,gBAAgB;EAChB,4CAA4C;EAC5C,qBAAqB;EACrB,uBAAuB;EACvB,4BAA4B;AAC9B;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,cAAc;AAChB;;AAEA;;;;EAIE,gBAAgB;AAClB\",\"sourcesContent\":[\".shop-view {\\n display: block;\\n overflow-y: auto;\\n max-height: calc(100vh - 86px - 60px - 60px);\\n scrollbar-width: none;\\n scroll-behavior: smooth;\\n overscroll-behavior: contain;\\n}\\n\\n.shop-view::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.shop-bottom-padding {\\n height: 50vh;\\n}\\n\\n.shop-empty-state {\\n display: block;\\n text-align: center;\\n padding: 60px 20px;\\n color: #ffffff;\\n font-size: 18px;\\n}\\n\\n.shop-sections {\\n display: block;\\n}\\n\\n.scrollable-container[data-has-product-selected='true']::before,\\n.scrollable-container[data-has-product-selected='true']::after,\\n.scrollable-container[data-has-error='true']::after,\\n.scrollable-container[data-has-error='true']::before {\\n background: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".product-detail-view-wrapper > *:first-child {\\n margin-bottom: 16px;\\n}\\n\\n/* Card */\\n.product-detail-card {\\n display: inline-block;\\n padding: 24px;\\n text-align: center;\\n box-sizing: border-box;\\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\\n width: 100%;\\n}\\n\\n/* Title */\\n.product-detail-title {\\n margin-bottom: 32px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n/* Mini Product Card Container */\\n.product-detail-product {\\n margin-bottom: 32px;\\n}\\n\\n/* Override ProductSummaryCard styles when inside detail view */\\n.product-detail-product .product-summary-card,\\n.product-detail-product .browse-card {\\n text-align: left;\\n background-color: #ffffff14;\\n background-image: none !important;\\n padding: 16px;\\n}\\n\\n.product-detail-product .browse-card {\\n direction: rtl;\\n}\\n\\n.product-detail-product .browse-card .browse-card-content {\\n direction: ltr;\\n}\\n\\n.product-detail-product .browse-card .browse-card-logo-image {\\n margin-left: 0;\\n margin-right: 24px;\\n width: calc(20% - 24px);\\n}\\n\\n.product-detail-product\\n .product-summary-card\\n .product-summary-card-image-container {\\n width: 20%;\\n}\\n\\n.product-detail-product .product-summary-card .product-summary-card-content {\\n width: 80%;\\n padding: 6px 0px 6px 24px;\\n}\\n\\n.product-detail-product .product-summary-card-title {\\n -webkit-line-clamp: 2;\\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\\n}\\n\\n/* QR Code Container */\\n.product-detail-qr {\\n background-color: var(--sdk-highlightPrimary);\\n border-radius: 24px;\\n margin: 32px 30% 28px 30%;\\n overflow: hidden;\\n}\\n\\n.product-detail-qr-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n}\\n\\n/* Instruction Text */\\n.product-detail-instruction {\\n margin-bottom: 24px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.product-detail-disclaimer {\\n text-align: center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/ProductDetailView/ProductDetailView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,mBAAmB;AACrB;;AAEA,SAAS;AACT;EACE,qBAAqB;EACrB,aAAa;EACb,kBAAkB;EAClB,sBAAsB;EACtB,iDAAiD;EACjD,WAAW;AACb;;AAEA,UAAU;AACV;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA,gCAAgC;AAChC;EACE,mBAAmB;AACrB;;AAEA,+DAA+D;AAC/D;;EAEE,gBAAgB;EAChB,2BAA2B;EAC3B,iCAAiC;EACjC,aAAa;AACf;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,uBAAuB;AACzB;;AAEA;;;EAGE,UAAU;AACZ;;AAEA;EACE,UAAU;EACV,yBAAyB;AAC3B;;AAEA;EACE,qBAAqB;EACrB,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,sBAAsB;AACtB;EACE,6CAA6C;EAC7C,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;AACrB;;AAEA,qBAAqB;AACrB;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA;EACE,kBAAkB;AACpB\",\"sourcesContent\":[\".product-detail-view-wrapper > *:first-child {\\n margin-bottom: 16px;\\n}\\n\\n/* Card */\\n.product-detail-card {\\n display: inline-block;\\n padding: 24px;\\n text-align: center;\\n box-sizing: border-box;\\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\\n width: 100%;\\n}\\n\\n/* Title */\\n.product-detail-title {\\n margin-bottom: 32px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n/* Mini Product Card Container */\\n.product-detail-product {\\n margin-bottom: 32px;\\n}\\n\\n/* Override ProductSummaryCard styles when inside detail view */\\n.product-detail-product .product-summary-card,\\n.product-detail-product .browse-card {\\n text-align: left;\\n background-color: #ffffff14;\\n background-image: none !important;\\n padding: 16px;\\n}\\n\\n.product-detail-product .browse-card {\\n direction: rtl;\\n}\\n\\n.product-detail-product .browse-card .browse-card-content {\\n direction: ltr;\\n}\\n\\n.product-detail-product .browse-card .browse-card-logo-image {\\n margin-left: 0;\\n margin-right: 24px;\\n width: calc(20% - 24px);\\n}\\n\\n.product-detail-product\\n .product-summary-card\\n .product-summary-card-image-container {\\n width: 20%;\\n}\\n\\n.product-detail-product .product-summary-card .product-summary-card-content {\\n width: 80%;\\n padding: 6px 0px 6px 24px;\\n}\\n\\n.product-detail-product .product-summary-card-title {\\n -webkit-line-clamp: 2;\\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\\n}\\n\\n/* QR Code Container */\\n.product-detail-qr {\\n background-color: var(--sdk-highlightPrimary);\\n border-radius: 24px;\\n margin: 32px 30% 28px 30%;\\n overflow: hidden;\\n}\\n\\n.product-detail-qr-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n}\\n\\n/* Instruction Text */\\n.product-detail-instruction {\\n margin-bottom: 24px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.product-detail-disclaimer {\\n text-align: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Product Summary Card - TV-compatible CSS (no flex/grid) */\\n\\n.product-summary-card {\\n position: relative;\\n background-color: var(--sdk-surface4);\\n overflow: hidden;\\n vertical-align: middle;\\n padding: 24px;\\n width: 100%;\\n box-sizing: border-box;\\n}\\n\\n/* Product Image Container - 144x144 */\\n.product-summary-card-image-container {\\n display: inline-block;\\n vertical-align: middle;\\n width: 20%;\\n overflow: hidden;\\n line-height: 0;\\n}\\n\\n.product-summary-card-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n border-radius: 8px;\\n}\\n\\n/* Text Content Container */\\n.product-summary-card-content {\\n display: inline-block;\\n vertical-align: middle;\\n padding: 16px 0 16px 24px;\\n white-space: normal;\\n width: 80%;\\n box-sizing: border-box;\\n}\\n\\n.product-summary-card-content[data-has-image='false'] {\\n width: 100%;\\n}\\n\\n/* Product Title - max 3 lines with ellipsis */\\n.product-summary-card-title {\\n padding-bottom: 4px;\\n /* Line clamp for 3 lines */\\n display: -webkit-box;\\n -webkit-line-clamp: 3;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n /* Fallback for non-webkit browsers */\\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\\n}\\n\\n/* Price Container */\\n.product-summary-card-price-container {\\n white-space: nowrap;\\n}\\n\\n/* Original Price (crossed out when on sale) */\\n.product-summary-card-price-original {\\n text-decoration: line-through;\\n opacity: 0.6;\\n margin-right: 4px;\\n}\\n\\n/* Sale/Clearance Price */\\n.product-summary-card-price-sale {\\n margin-right: 8px;\\n}\\n\\n/* Sale/Clearance Badge */\\n.product-summary-card-badge {\\n display: inline-block;\\n background-color: var(--sdk-alertError);\\n padding-inline: 4px;\\n border-radius: 4px;\\n}\\n\\n.product-summary-card-qr-image {\\n object-fit: contain;\\n position: absolute;\\n bottom: 16px;\\n right: 16px;\\n width: 6%;\\n height: auto;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css\"],\"names\":[],\"mappings\":\"AAAA,4DAA4D;;AAE5D;EACE,kBAAkB;EAClB,qCAAqC;EACrC,gBAAgB;EAChB,sBAAsB;EACtB,aAAa;EACb,WAAW;EACX,sBAAsB;AACxB;;AAEA,sCAAsC;AACtC;EACE,qBAAqB;EACrB,sBAAsB;EACtB,UAAU;EACV,gBAAgB;EAChB,cAAc;AAChB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA,2BAA2B;AAC3B;EACE,qBAAqB;EACrB,sBAAsB;EACtB,yBAAyB;EACzB,mBAAmB;EACnB,UAAU;EACV,sBAAsB;AACxB;;AAEA;EACE,WAAW;AACb;;AAEA,8CAA8C;AAC9C;EACE,mBAAmB;EACnB,2BAA2B;EAC3B,oBAAoB;EACpB,qBAAqB;EACrB,4BAA4B;EAC5B,gBAAgB;EAChB,uBAAuB;EACvB,qCAAqC;EACrC,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,oBAAoB;AACpB;EACE,mBAAmB;AACrB;;AAEA,8CAA8C;AAC9C;EACE,6BAA6B;EAC7B,YAAY;EACZ,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,qBAAqB;EACrB,uCAAuC;EACvC,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,SAAS;EACT,YAAY;AACd\",\"sourcesContent\":[\"/* Product Summary Card - TV-compatible CSS (no flex/grid) */\\n\\n.product-summary-card {\\n position: relative;\\n background-color: var(--sdk-surface4);\\n overflow: hidden;\\n vertical-align: middle;\\n padding: 24px;\\n width: 100%;\\n box-sizing: border-box;\\n}\\n\\n/* Product Image Container - 144x144 */\\n.product-summary-card-image-container {\\n display: inline-block;\\n vertical-align: middle;\\n width: 20%;\\n overflow: hidden;\\n line-height: 0;\\n}\\n\\n.product-summary-card-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n border-radius: 8px;\\n}\\n\\n/* Text Content Container */\\n.product-summary-card-content {\\n display: inline-block;\\n vertical-align: middle;\\n padding: 16px 0 16px 24px;\\n white-space: normal;\\n width: 80%;\\n box-sizing: border-box;\\n}\\n\\n.product-summary-card-content[data-has-image='false'] {\\n width: 100%;\\n}\\n\\n/* Product Title - max 3 lines with ellipsis */\\n.product-summary-card-title {\\n padding-bottom: 4px;\\n /* Line clamp for 3 lines */\\n display: -webkit-box;\\n -webkit-line-clamp: 3;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n /* Fallback for non-webkit browsers */\\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\\n}\\n\\n/* Price Container */\\n.product-summary-card-price-container {\\n white-space: nowrap;\\n}\\n\\n/* Original Price (crossed out when on sale) */\\n.product-summary-card-price-original {\\n text-decoration: line-through;\\n opacity: 0.6;\\n margin-right: 4px;\\n}\\n\\n/* Sale/Clearance Price */\\n.product-summary-card-price-sale {\\n margin-right: 8px;\\n}\\n\\n/* Sale/Clearance Badge */\\n.product-summary-card-badge {\\n display: inline-block;\\n background-color: var(--sdk-alertError);\\n padding-inline: 4px;\\n border-radius: 4px;\\n}\\n\\n.product-summary-card-qr-image {\\n object-fit: contain;\\n position: absolute;\\n bottom: 16px;\\n right: 16px;\\n width: 6%;\\n height: auto;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\\n\\n.browse-card {\\n position: relative;\\n display: block;\\n background-color: var(--sdk-surface4);\\n padding: 24px;\\n box-sizing: border-box;\\n text-align: left;\\n}\\n\\n.browse-card-content {\\n display: inline-block;\\n width: 80%;\\n vertical-align: middle;\\n}\\n\\n/* Tag Line */\\n.browse-card-tagline {\\n margin-bottom: 4px;\\n width: 85%;\\n}\\n\\n.browse-card-caption {\\n width: 85%;\\n}\\n\\n.browse-card-logo-image {\\n width: calc(20% - 12px);\\n height: 100%;\\n vertical-align: middle;\\n margin-left: 12px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/components/BrowseCard/BrowseCard.styles.css\"],\"names\":[],\"mappings\":\"AAAA,+DAA+D;;AAE/D;EACE,kBAAkB;EAClB,cAAc;EACd,qCAAqC;EACrC,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,qBAAqB;EACrB,UAAU;EACV,sBAAsB;AACxB;;AAEA,aAAa;AACb;EACE,kBAAkB;EAClB,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,uBAAuB;EACvB,YAAY;EACZ,sBAAsB;EACtB,iBAAiB;AACnB\",\"sourcesContent\":[\"/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\\n\\n.browse-card {\\n position: relative;\\n display: block;\\n background-color: var(--sdk-surface4);\\n padding: 24px;\\n box-sizing: border-box;\\n text-align: left;\\n}\\n\\n.browse-card-content {\\n display: inline-block;\\n width: 80%;\\n vertical-align: middle;\\n}\\n\\n/* Tag Line */\\n.browse-card-tagline {\\n margin-bottom: 4px;\\n width: 85%;\\n}\\n\\n.browse-card-caption {\\n width: 85%;\\n}\\n\\n.browse-card-logo-image {\\n width: calc(20% - 12px);\\n height: 100%;\\n vertical-align: middle;\\n margin-left: 12px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-promo-view {\\n display: block;\\n text-align: center;\\n padding: 32px;\\n background-size: cover;\\n background-position: center;\\n background-repeat: no-repeat;\\n}\\n\\n.shop-promo-logo {\\n padding: 30px 24px;\\n}\\n\\n.shop-promo-qr-code {\\n border-radius: 24px;\\n margin: 32px 0 48px 0;\\n width: 100%;\\n max-width: 50%;\\n}\\n\\n.shop-promo-description {\\n margin: 0 17px;\\n}\\n\\n.promo-view-disclaimer {\\n margin-top: 24px;\\n text-align: center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/components/ShopPromoView/ShopPromoView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,2BAA2B;EAC3B,4BAA4B;AAC9B;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,qBAAqB;EACrB,WAAW;EACX,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;AACpB\",\"sourcesContent\":[\".shop-promo-view {\\n display: block;\\n text-align: center;\\n padding: 32px;\\n background-size: cover;\\n background-position: center;\\n background-repeat: no-repeat;\\n}\\n\\n.shop-promo-logo {\\n padding: 30px 24px;\\n}\\n\\n.shop-promo-qr-code {\\n border-radius: 24px;\\n margin: 32px 0 48px 0;\\n width: 100%;\\n max-width: 50%;\\n}\\n\\n.shop-promo-description {\\n margin: 0 17px;\\n}\\n\\n.promo-view-disclaimer {\\n margin-top: 24px;\\n text-align: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-section {\\n margin-bottom: 40px;\\n}\\n\\n.shop-section-title {\\n margin: 0;\\n margin-bottom: 0 !important;\\n padding-top: 24px;\\n padding-bottom: 0;\\n margin-bottom: 16px !important;\\n text-align: center;\\n position: sticky;\\n top: 0;\\n z-index: 1;\\n font-size: 21px;\\n}\\n\\n/* Layout for product cards - TV compatible (no flex/grid) */\\n.shop-section-items > * {\\n display: inline-block;\\n margin-bottom: 16px;\\n}\\n\\n.shop-item-placeholder {\\n display: inline-block;\\n vertical-align: top;\\n width: 200px;\\n height: 250px;\\n padding: 16px;\\n background-color: rgba(255, 255, 255, 0.1);\\n border-radius: 8px;\\n color: #ffffff;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/shop/view/components/ShopSection/ShopSection.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,mBAAmB;AACrB;;AAEA;EACE,SAAS;EACT,2BAA2B;EAC3B,iBAAiB;EACjB,iBAAiB;EACjB,8BAA8B;EAC9B,kBAAkB;EAClB,gBAAgB;EAChB,MAAM;EACN,UAAU;EACV,eAAe;AACjB;;AAEA,4DAA4D;AAC5D;EACE,qBAAqB;EACrB,mBAAmB;AACrB;;AAEA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,YAAY;EACZ,aAAa;EACb,aAAa;EACb,0CAA0C;EAC1C,kBAAkB;EAClB,cAAc;AAChB\",\"sourcesContent\":[\".shop-section {\\n margin-bottom: 40px;\\n}\\n\\n.shop-section-title {\\n margin: 0;\\n margin-bottom: 0 !important;\\n padding-top: 24px;\\n padding-bottom: 0;\\n margin-bottom: 16px !important;\\n text-align: center;\\n position: sticky;\\n top: 0;\\n z-index: 1;\\n font-size: 21px;\\n}\\n\\n/* Layout for product cards - TV compatible (no flex/grid) */\\n.shop-section-items > * {\\n display: inline-block;\\n margin-bottom: 16px;\\n}\\n\\n.shop-item-placeholder {\\n display: inline-block;\\n vertical-align: top;\\n width: 200px;\\n height: 250px;\\n padding: 16px;\\n background-color: rgba(255, 255, 255, 0.1);\\n border-radius: 8px;\\n color: #ffffff;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopSection.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ProductSummaryCard.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './ProductSummaryCard.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport { Direction, Layout } from '@/external/spatial-navigation/utils';\n\nimport { IShopProduct } from '../../../types';\nimport Image from '@/components/atoms/Image';\n\n// QR code image as base64 data URI for SDK bundle\nconst productSummaryQRCode =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACHElEQVR4Ae2YgXHCMAxFf3oM0A3qbsAGDRuwQWGC0gmgEwATkG7ABqQb0AlwN0gnSKXDpWqwiQU5IHe8O52xY8U/toyVoIwjRcPwPWMGvsOVc/UCE55GUe+RWU+/IkmSAg1DQxtPM7etZCfJAy4Mi25VDHZCF0g8T7NBPHMKgxn5jej3i8LPkl8PWoHYijOI516UBg3RiiXeTS9N9Veg3yvZ2tPOS9lHmA+yiae9SzYN+BRSU4dE5ahn7etH8Tao8dsE/IIO7u9s56NaYrrxlDcPWV/plzq/KZRoY5CXJsXfhojFOL8ulHSU/d/I3iGWIJKcbIhtfKlQCYyMV5+fpSLDEcQKHFP8PHvan2r8OPYWnvboEIkVmOI4DNkAJ9Des5iYQ7db80oZS+Np3FlJQhdcVqKaQd7l7v0lVfhxMjyDFhpoU+qYOL9JqWNzSEerN4lkCX8wp2gw9/MRK3AeyEoy7AvktCwTdb6eirrF/51eNCHwVxBnMbxxcnd87UHtPNtL4TOoCqQ+Q0SijUFOUBc4/mRRo81mPl1pcSa02cyork+5fRk3ool/56Juy8q3nkNZUqzAbiBN973oD8jGop7J10onbiWuW7JHhARWnmYd+MShTtVPQWriGZRPY3Dhw9uFyE7ToSW20FGI0or2b08/Gz1O5Vy8fTzS0rpk4ZFmdS9HDB1rp0Dj8JHpyzdNtWMMKZoXePuIfhZ+AArh47ArZrulAAAAAElFTkSuQmCC';\n\nexport type ProductSummaryCardProps = {\n product: IShopProduct;\n onEnterPress?: () => void;\n onArrowPress?: (direction: Direction) => void;\n onBecameFocused?: (layout: Layout) => void;\n};\n\nclass ProductSummaryCard extends React.Component<\n ProductSummaryCardProps & WithFocusableProps\n> {\n render() {\n const { product, focused } = this.props;\n const { image, name, price } = product;\n\n // Determine if this is a sale or clearance item\n const salePrice = price?.displayClearance || price?.displaySale;\n const isOnSale = !!salePrice;\n\n return (\n <div className=\"product-summary-card focus-ring\" data-focused={focused}>\n {/* Product Image */}\n {Boolean(image?.href) && (\n <div className=\"product-summary-card-image-container\">\n <Image\n src={image!.href}\n alt={name || 'Product'}\n className=\"product-summary-card-image\"\n />\n </div>\n )}\n\n {/* Text Content Container */}\n <div\n className=\"product-summary-card-content\"\n data-has-image={!!image?.href}\n >\n {/* Product Title - max 3 lines with ellipsis */}\n <div className=\"product-summary-card-title T05_ALT\">\n {name || 'Product Name'}\n </div>\n\n {/* Price */}\n <div className=\"product-summary-card-price-container\">\n {isOnSale ? (\n <div>\n <span className=\"product-summary-card-price-original T02 TEXT_200\">\n {price?.displayRetail || '$0.00'}\n </span>\n <span className=\"product-summary-card-price-sale T02 TEXT_200\">\n {salePrice}\n </span>\n <span className=\"product-summary-card-badge T02 FONT_BOLD\">\n SALE\n </span>\n </div>\n ) : (\n <span className=\"product-summary-card-price T02 TEXT_200\">\n {price?.displayRetail || '$0.00'}\n </span>\n )}\n </div>\n </div>\n\n {/* QR Code Image - shown on focus */}\n {focused && (\n <Image\n src={productSummaryQRCode}\n alt=\"QR Code\"\n className=\"product-summary-card-qr-image\"\n />\n )}\n </div>\n );\n }\n}\n\nexport default withFocusable<ProductSummaryCardProps>()(ProductSummaryCard);\n","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./BrowseCard.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './BrowseCard.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport { IShopBrowseCard } from '../../../types';\nimport Image from '@/components/atoms/Image';\n\nexport type BrowseCardProps = {\n browseCard: IShopBrowseCard;\n};\n\nexport class BrowseCardView extends React.Component<\n BrowseCardProps & WithFocusableProps\n> {\n render() {\n const { browseCard, focused } = this.props;\n const { name, caption, image, detail } = browseCard;\n\n return (\n <div\n className=\"browse-card focus-ring\"\n data-focused={focused}\n style={{\n backgroundImage: detail?.backgroundImage\n ? `url(${detail.backgroundImage})`\n : 'none',\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundClip: 'padding-box',\n }}\n >\n <div className=\"browse-card-content\">\n {/* Tag Line */}\n {!!name && (\n <div className=\"browse-card-tagline T20 FONT_BOLD\">{name}</div>\n )}\n\n {/* Contextual Copy */}\n <div className=\"browse-card-caption T10\">\n {caption || 'Browse all merch'}\n </div>\n </div>\n\n {/* Team/League/Event Logo */}\n {image?.href && (\n <Image\n src={image.href}\n width={72}\n height={72}\n alt={name || 'Logo'}\n className=\"browse-card-logo-image\"\n />\n )}\n </div>\n );\n }\n}\n\nexport default withFocusable<BrowseCardProps>()(BrowseCardView);\n","import React from 'react';\nimport './ShopSection.styles.css';\nimport { IShopBrowseCard, IShopProduct, IShopSection } from '../../../types';\nimport ProductSummaryCard from '../ProductSummaryCard';\nimport { Direction, Layout } from '@/external/spatial-navigation/utils';\nimport {\n DEFAULT_SCROLLABLE_CONTAINER_CONTEXT,\n SCROLLABLE_CONTEXT_TYPE,\n} from '@/components/core/ScrollableContainer/ScrollableContainer';\nimport FocusableItem from '@/components/core/ScrollableContainer/FocusableItem';\nimport BrowseCard from '../BrowseCard';\n\nexport type ShopSectionProps = {\n sectionIndex: number;\n section: IShopSection;\n onArrowPress: (direction: Direction) => void;\n onItemClick: (\n item: IShopProduct | IShopBrowseCard,\n section: IShopSection,\n focusKey: string\n ) => void;\n};\n\nclass ShopSection extends React.Component<ShopSectionProps> {\n static contextTypes = SCROLLABLE_CONTEXT_TYPE;\n context = DEFAULT_SCROLLABLE_CONTAINER_CONTEXT;\n\n onBecameFocused = (layout: Layout) => {\n this.context.scrollToFocusedElement(layout, {\n offsetTop: 40,\n });\n };\n\n onEnterPress = (\n item: IShopProduct | IShopBrowseCard,\n section: IShopSection,\n focusKey: string\n ) => () => {\n this.props.onItemClick(item, section, focusKey);\n };\n\n render() {\n const { section, sectionIndex, onArrowPress } = this.props;\n\n return (\n <div className=\"shop-section\">\n <h2 className=\"shop-section-title TEXT_200\">{section.title}</h2>\n <div className=\"shop-section-items\">\n {section.items?.map((item, itemIndex) => {\n const focusKey = `shop-section-${sectionIndex}-item-${itemIndex}`;\n if (item.type === 'product') {\n return (\n <FocusableItem key={itemIndex}>\n <ProductSummaryCard\n product={item}\n onEnterPress={this.onEnterPress(item, section, focusKey)}\n onArrowPress={onArrowPress}\n onBecameFocused={this.onBecameFocused}\n focusKey={focusKey}\n />\n </FocusableItem>\n );\n } else if (item.type === 'browse') {\n return (\n <FocusableItem key={itemIndex}>\n <BrowseCard\n key={itemIndex}\n browseCard={item}\n onArrowPress={onArrowPress}\n onEnterPress={this.onEnterPress(item, section, focusKey)}\n onBecameFocused={this.onBecameFocused}\n focusKey={focusKey}\n />\n </FocusableItem>\n );\n } else {\n return null;\n }\n })}\n </div>\n </div>\n );\n }\n}\n\nexport default ShopSection;\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ProductDetailView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './ProductDetailView.styles.css';\nimport { IShopBrowseCard, IShopProduct, isShopProduct } from '../../types';\nimport ProductSummaryCard from '../components/ProductSummaryCard';\nimport ActionButton from '@/components/molecules/ActionButton';\nimport Image from '@/components/atoms/Image';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport BrowseCard from '../components/BrowseCard';\nimport { setImageDimensions } from '@/helpers/url';\n\nexport type ProductDetailViewProps = {\n product: IShopProduct | IShopBrowseCard;\n focusKey: string;\n};\n\nconst ProductDetail = (props: ProductDetailViewProps & WithFocusableProps) => {\n const { product, focused } = props;\n const detail = product.detail;\n\n const getBackgroundImage = () => {\n const bgImage = detail?.backgroundImage;\n if (!bgImage) {\n return null;\n }\n\n try {\n const url = new URL(bgImage);\n if (url.hostname.includes('stitcher')) {\n const newBgImage = setImageDimensions(bgImage, 570, 670);\n return newBgImage;\n }\n } catch {\n // Fallback to original check if URL parsing fails\n if (bgImage.includes('stitcher')) {\n const newBgImage = setImageDimensions(bgImage, 570, 670);\n return newBgImage;\n }\n }\n\n return bgImage;\n };\n\n const bgImage = getBackgroundImage();\n return (\n <div\n className=\"product-detail-card focus-ring\"\n data-focused={focused}\n style={{\n ...(bgImage && {\n backgroundImage: `url(${bgImage})`,\n backgroundSize: 'cover',\n backgroundClip: 'padding-box',\n backgroundPosition: 'center',\n }),\n }}\n >\n {/* Tag Line Title */}\n <div className=\"product-detail-title T70\">\n {detail?.title || 'Shop the look'}\n </div>\n\n {/* Mini Product Card (non-focusable) */}\n <div className=\"product-detail-product\">\n {isShopProduct(product) ? (\n <ProductSummaryCard product={product} focusable={false} />\n ) : (\n <BrowseCard\n browseCard={{\n ...product,\n name: undefined,\n caption: product.detail?.description,\n }}\n focusable={false}\n />\n )}\n </div>\n\n {/* QR Code */}\n {detail?.qrCode && (\n <div className=\"product-detail-qr\">\n <Image\n src={detail.qrCode}\n alt=\"QR Code\"\n className=\"product-detail-qr-image\"\n />\n </div>\n )}\n\n {/* User Instruction */}\n <div className=\"product-detail-instruction T04\">{detail?.link?.text}</div>\n\n {/* Dismiss Button */}\n <ActionButton data-focused={focused}>Dismiss</ActionButton>\n </div>\n );\n};\n\nconst FocusableProductDetail = withFocusable<ProductDetailViewProps>()(\n ProductDetail\n);\n\nconst ProductDetailView = (\n props: ProductDetailViewProps & WithFocusableProps\n) => {\n return (\n <div className=\"product-detail-view-wrapper\">\n <FocusableProductDetail {...props} />\n {/* Legal Disclaimer */}\n {props.product.detail?.disclaimer && (\n <div className=\"product-detail-disclaimer T02 TEXT_200 FONT_BOLD\">\n {props.product.detail.disclaimer}\n </div>\n )}\n </div>\n );\n};\n\nexport default ProductDetailView;\n","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopPromoView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport './ShopPromoView.styles.css';\nimport Image from '@/components/atoms/Image';\nimport { IShopDefaultItem } from '../../../types';\n\ntype Props = {\n promoData: IShopDefaultItem;\n};\n\nconst ShopPromoView = (props: Props & WithFocusableProps) => {\n const promo = props.promoData;\n\n return (\n <div\n className=\"shop-promo-view focus-ring T20\"\n data-focused={props.focused}\n style={{ backgroundImage: `url(${promo.detail?.backgroundImage})` }}\n >\n <Image\n src={promo.image?.href}\n alt=\"Promo Logo\"\n className=\"shop-promo-logo\"\n />\n <div className=\"shop-promo-title T30\">{promo.detail?.title}</div>\n <Image\n src={promo.detail?.qrCode}\n alt=\"QR Code\"\n className=\"shop-promo-qr-code\"\n />\n <p className=\"shop-promo-description T20\">{promo.detail?.link?.text}</p>\n </div>\n );\n};\n\nconst FocusablePromoView = withFocusable<Props>()(ShopPromoView);\n\nconst ShopPromoViewWrapper = (props: Props & WithFocusableProps) => {\n return (\n <div>\n <FocusablePromoView {...props} />\n <div className=\"promo-view-disclaimer T02 TEXT_200 FONT_BOLD\">\n {props.promoData.detail?.disclaimer}\n </div>\n </div>\n );\n};\n\nexport default ShopPromoViewWrapper;\n","import React, { Component } from 'react';\nimport './ShopView.styles.css';\nimport ScrollableContainer from '@/components/core/ScrollableContainer';\nimport SDK from '@/index';\nimport { Direction } from '@/external/spatial-navigation/utils';\nimport TabLoadErrorView from '@/components/molecules/TabLoadError';\nimport ShopViewModel, { ShopErrorState } from '../view-model/ShopViewModel';\nimport {\n IShopProduct,\n IShopSection,\n IShopBrowseCard,\n isShopProduct,\n IShopDefaultItem,\n} from '../types';\nimport ShopSection from './components/ShopSection';\nimport ProductDetailView from './ProductDetailView';\nimport ShopPromoView from './components/ShopPromoView';\n\ntype Unsubscribe = () => void;\n\ninterface State {\n container: HTMLDivElement | null;\n sections: IShopSection[];\n isDataLoading: boolean;\n errorState: ShopErrorState;\n selectedItem: IShopProduct | IShopBrowseCard | null;\n selectedShopSection: IShopSection | null;\n selectedItemFocusKey: string;\n promoData: IShopDefaultItem | null;\n}\n\nclass ShopView extends Component<{}, State> {\n private container: HTMLDivElement | null = null;\n private sectionsListener: Unsubscribe | null = null;\n private isDataLoadingListener: Unsubscribe | null = null;\n private errorStateListener: Unsubscribe | null = null;\n private promoDataListener: Unsubscribe | null = null;\n private vm: ShopViewModel | null;\n\n constructor(props: {}) {\n super(props);\n this.vm = SDK.getMaestroEventViewModel().shopViewModel;\n\n this.state = {\n container: null,\n sections: this.viewModel.sections.value,\n isDataLoading: this.viewModel.isDataLoading.value,\n errorState: this.viewModel.errorState.value,\n selectedItem: null,\n selectedItemFocusKey: '',\n promoData: this.viewModel.promoData.value,\n selectedShopSection: null,\n };\n }\n\n get viewModel() {\n if (!this.vm) {\n throw new Error('ShopViewModel is not initialized');\n }\n\n return this.vm;\n }\n\n componentDidMount(): void {\n this.setState({\n container: this.container,\n });\n\n this.sectionsListener = this.viewModel.sections.subscribe((sections) => {\n this.setState({ sections });\n });\n\n this.isDataLoadingListener = this.viewModel.isDataLoading.subscribe(\n (isDataLoading) => {\n this.setState({ isDataLoading });\n }\n );\n\n this.errorStateListener = this.viewModel.errorState.subscribe(\n (errorState) => {\n this.setState({ errorState });\n }\n );\n\n this.promoDataListener = this.viewModel.promoData.subscribe((promoData) => {\n this.setState({ promoData });\n });\n\n // Initialize the view model\n this.viewModel.init();\n }\n\n componentWillUnmount() {\n this.sectionsListener && this.sectionsListener();\n this.isDataLoadingListener && this.isDataLoadingListener();\n this.errorStateListener && this.errorStateListener();\n this.promoDataListener && this.promoDataListener();\n\n // Clean up the view model\n this.viewModel.cleanup();\n }\n\n clearTabLoadFailure = () => {\n this.viewModel.clearTabLoadFailure();\n };\n\n onArrowPress = (d: Direction) => {\n if (d === 'left') {\n SDK.getMaestroEventViewModel().deliverFocus();\n }\n };\n\n openItemDetail = (\n selectedItem: IShopProduct | IShopBrowseCard,\n selectedShopSection: IShopSection,\n selectedItemFocusKey: string\n ) => {\n const card = isShopProduct(selectedItem)\n ? 'product_summary'\n : ('want more' as const);\n this.viewModel.trackItemClick(card, selectedItem, selectedShopSection);\n\n this.setState(\n { selectedItem, selectedItemFocusKey, selectedShopSection },\n () => {\n SDK.getMaestroEventViewModel().navigation.setFocus(\n 'product-detail-view'\n );\n }\n );\n };\n\n closeProductDetail = () => {\n if (!this.state.selectedItem || !this.state.selectedShopSection) {\n return;\n }\n\n this.viewModel.trackItemClick(\n 'product_detail',\n this.state.selectedItem,\n this.state.selectedShopSection\n );\n\n this.setState({ selectedItem: null, selectedShopSection: null }, () => {\n if (this.state.selectedItemFocusKey) {\n // Added a small delay so all the focusable items are rendered and we have the ref of them\n setTimeout(() => {\n SDK.getMaestroEventViewModel().navigation.setFocus(\n this.state.selectedItemFocusKey\n );\n }, 100);\n }\n });\n };\n\n trackPromoEnterPress = () => {\n this.viewModel.trackItemClick('fallback', null, null);\n };\n\n renderContent = () => {\n const { sections, errorState, selectedItem, promoData } = this.state;\n\n // Show product detail view if a product is selected\n if (selectedItem) {\n return (\n <ProductDetailView\n product={selectedItem}\n onEnterPress={this.closeProductDetail}\n onArrowPress={this.onArrowPress}\n focusKey=\"product-detail-view\"\n />\n );\n }\n\n // Show error state if tab load failed\n if (errorState === 'tabLoadFailure') {\n return (\n <TabLoadErrorView\n onEnterPress={this.clearTabLoadFailure}\n onArrowPress={this.onArrowPress}\n />\n );\n }\n\n // Show promo view if shop is empty and promo data is available\n if ((errorState === 'emptyShop' || sections.length === 0) && promoData) {\n return (\n <ShopPromoView\n promoData={promoData}\n onEnterPress={this.trackPromoEnterPress}\n />\n );\n }\n\n // Render sections\n return sections.map((section, index) => (\n <ShopSection\n key={index}\n sectionIndex={index}\n section={section}\n onArrowPress={this.onArrowPress}\n onItemClick={this.openItemDetail}\n />\n ));\n };\n\n render() {\n return (\n <ScrollableContainer\n scrollableContainerRef={this.state.container}\n containerTopOffset={40}\n data-has-product-selected={!!this.state.selectedItem}\n data-has-error={this.state.errorState !== 'none'}\n >\n <div className=\"shop-view\" ref={(e) => (this.container = e)}>\n {this.renderContent()}\n <div className=\"shop-bottom-padding\" />\n </div>\n </ScrollableContainer>\n );\n }\n}\n\nexport default ShopView;\n","import ShopView from './ShopView';\n\nexport default ShopView;\n","import React from 'react';\nimport { ImgHTMLAttributes } from 'react';\n\ninterface ImageProps extends ImgHTMLAttributes<HTMLImageElement> {}\n\nclass Image extends React.Component<ImageProps> {\n state = {\n failed: false,\n };\n\n constructor(props: ImageProps) {\n super(props);\n }\n\n handleError = () => {\n this.setState({ failed: true });\n };\n\n render() {\n if (this.state.failed) {\n console.warn('Image failed to load:', this.props.src);\n return null;\n }\n\n if (!this.props.src) {\n console.warn('Image source is empty');\n return null;\n }\n\n return (\n <img\n alt={this.props.alt || 'Image'}\n {...this.props}\n onError={this.handleError}\n />\n );\n }\n}\n\nexport default Image;\n","import BaseButton from './BaseButton';\n\nexport default BaseButton;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ActionButton.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import BaseButton from '@/components/atoms/BaseButton';\nimport './ActionButton.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport React from 'react';\n\ntype SpatialNavigationInjectedProps = {\n realFocusKey?: string;\n setFocus?: (focusKey: string) => void;\n navigateByDirection?: (...args: any[]) => any;\n stealFocus?: () => void;\n onUpdateFocus?: (focused: boolean) => void;\n onUpdateHasFocusedChild?: (hasFocusedChild: boolean) => void;\n};\n\ntype Props = React.PropsWithChildren<\n React.ButtonHTMLAttributes<HTMLButtonElement> &\n WithFocusableProps &\n SpatialNavigationInjectedProps\n>;\n\nclass ActionButton extends React.Component<Props, {}> {\n render() {\n const {\n children,\n // spatial-navigation props (must not hit DOM)\n focused: _focused,\n focusKey: _focusKey,\n parentFocusKey: _parentFocusKey,\n preferredChildFocusKey: _preferredChildFocusKey,\n forgetLastFocusedChild: _forgetLastFocusedChild,\n trackChildren: _trackChildren,\n autoRestoreFocus: _autoRestoreFocus,\n blockNavigationOut: _blockNavigationOut,\n hasFocusedChild: _hasFocusedChild,\n focusable: _focusable,\n onEnterPress: _onEnterPress,\n onEnterRelease: _onEnterRelease,\n onBackPress: _onBackPress,\n onArrowPress: _onArrowPress,\n onBecameFocused: _onBecameFocused,\n onBecameBlurred: _onBecameBlurred,\n // injected/internal props (also must not hit DOM)\n realFocusKey: _realFocusKey,\n setFocus: _setFocus,\n navigateByDirection: _navigateByDirection,\n stealFocus: _stealFocus,\n onUpdateFocus: _onUpdateFocus,\n onUpdateHasFocusedChild: _onUpdateHasFocusedChild,\n ...buttonProps\n } = this.props;\n\n return (\n <BaseButton className=\"action-button T05_ALT\" {...buttonProps}>\n {children}\n </BaseButton>\n );\n }\n}\n\nexport default withFocusable()(ActionButton);\n","import ActionButton from './ActionButton';\n\nexport default ActionButton;\n","import ScrollableContainer from './ScrollableContainer';\n\nexport default ScrollableContainer;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tab-load-error {\\n display: block;\\n padding: 24px;\\n background-color: var(--sdk-surface4);\\n}\\n\\n.tab-load-error h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.tab-load-error p {\\n margin: 16px 0;\\n height: 86px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/molecules/TabLoadError/TabLoadError.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,aAAa;EACb,qCAAqC;AACvC;;AAEA;EACE,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,cAAc;EACd,YAAY;AACd\",\"sourcesContent\":[\".tab-load-error {\\n display: block;\\n padding: 24px;\\n background-color: var(--sdk-surface4);\\n}\\n\\n.tab-load-error h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.tab-load-error p {\\n margin: 16px 0;\\n height: 86px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".action-button {\\n padding: 23px 0;\\n background-color: var(--sdk-surface5);\\n color: var(--sdk-text100);\\n}\\n\\n.action-button:hover,\\n.action-button[data-focused='true'] {\\n background-color: var(--sdk-accentPrimary);\\n color: var(--sdk-text500);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/molecules/ActionButton/ActionButton.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,eAAe;EACf,qCAAqC;EACrC,yBAAyB;AAC3B;;AAEA;;EAEE,0CAA0C;EAC1C,yBAAyB;AAC3B\",\"sourcesContent\":[\".action-button {\\n padding: 23px 0;\\n background-color: var(--sdk-surface5);\\n color: var(--sdk-text100);\\n}\\n\\n.action-button:hover,\\n.action-button[data-focused='true'] {\\n background-color: var(--sdk-accentPrimary);\\n color: var(--sdk-text500);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./TabLoadError.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport React from 'react';\nimport ActionButton from '../ActionButton';\nimport './TabLoadError.styles.css';\n\nclass TabLoadErrorView extends React.Component<WithFocusableProps> {\n render() {\n const { focused } = this.props;\n\n return (\n <div data-focused={focused} className=\"tab-load-error focus-ring\">\n <h3 className=\"T70\">We dropped the ball.</h3>\n <p className=\"T20\">\n {\"We're having trouble loading that for you. Please try again.\"}\n </p>\n <ActionButton\n data-focused={focused}\n onEnterPress={this.props.onEnterPress}\n >\n Try Again\n </ActionButton>\n </div>\n );\n }\n}\n\nexport default withFocusable()(TabLoadErrorView);\n","import TabLoadErrorView from './TabLoadError';\n\nexport default TabLoadErrorView;\n"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{108:function(e,n,a){"use strict";a.d(n,"a",(function(){return t}));const t="data:image/jpeg;base64,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"},132:function(e,n,a){"use strict";var t=a(6),r=a.n(t),A=a(7),o=a.n(A)()(r.a);o.push([e.i,".key-plays-view {\n display: block;\n overflow-y: auto;\n max-height: calc(100vh - 86px - 60px - 60px);\n scrollbar-width: none;\n scroll-behavior: smooth;\n overscroll-behavior: contain;\n}\n\n.key-plays-view::-webkit-scrollbar {\n display: none;\n}\n\n.key-plays-view > * {\n margin-bottom: 16px;\n}\n\n.key-plays-view > *:last-child {\n margin-bottom: 0;\n}\n\n.key-plays-section {\n display: block;\n position: relative;\n}\n\n.key-plays-section > * {\n margin-bottom: 16px;\n}\n\n.key-plays-section > *:last-child {\n margin-bottom: 0;\n}\n\n.key-plays-section-items {\n display: block;\n}\n\n.key-plays-section-items > * {\n margin-bottom: 20px;\n}\n\n.key-plays-section-items > *:last-child {\n margin-bottom: 0;\n}\n\n.key-plays-section-title {\n position: sticky;\n top: 0;\n z-index: 1;\n margin: 0;\n margin-bottom: 16px;\n}\n\n.key-plays-bottom-padding {\n height: calc(100vh - 240px);\n min-height: 400px;\n width: 100%;\n}\n","",{version:3,sources:["webpack://./src/modules/key-plays/view/KeyPlaysView.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,gBAAgB;EAChB,4CAA4C;EAC5C,qBAAqB;EACrB,uBAAuB;EACvB,4BAA4B;AAC9B;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,cAAc;EACd,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;EAChB,MAAM;EACN,UAAU;EACV,SAAS;EACT,mBAAmB;AACrB;;AAEA;EACE,2BAA2B;EAC3B,iBAAiB;EACjB,WAAW;AACb",sourcesContent:[".key-plays-view {\n display: block;\n overflow-y: auto;\n max-height: calc(100vh - 86px - 60px - 60px);\n scrollbar-width: none;\n scroll-behavior: smooth;\n overscroll-behavior: contain;\n}\n\n.key-plays-view::-webkit-scrollbar {\n display: none;\n}\n\n.key-plays-view > * {\n margin-bottom: 16px;\n}\n\n.key-plays-view > *:last-child {\n margin-bottom: 0;\n}\n\n.key-plays-section {\n display: block;\n position: relative;\n}\n\n.key-plays-section > * {\n margin-bottom: 16px;\n}\n\n.key-plays-section > *:last-child {\n margin-bottom: 0;\n}\n\n.key-plays-section-items {\n display: block;\n}\n\n.key-plays-section-items > * {\n margin-bottom: 20px;\n}\n\n.key-plays-section-items > *:last-child {\n margin-bottom: 0;\n}\n\n.key-plays-section-title {\n position: sticky;\n top: 0;\n z-index: 1;\n margin: 0;\n margin-bottom: 16px;\n}\n\n.key-plays-bottom-padding {\n height: calc(100vh - 240px);\n min-height: 400px;\n width: 100%;\n}\n"],sourceRoot:""}]),n.a=o},133:function(e,n,a){"use strict";var t=a(6),r=a.n(t),A=a(7),o=a.n(A)()(r.a);o.push([e.i,".key-play-card {\n display: block;\n background-color: var(--sdk-surface2);\n position: relative;\n}\n\n.key-play-card-content {\n display: block;\n width: 100%;\n position: relative;\n}\n\n.key-play-card-content .cardImage {\n display: inline-block;\n width: 33.33%;\n vertical-align: top;\n object-fit: cover;\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n}\n\n.key-play-card-content .cardImage[data-has-score='true'] {\n border-bottom-left-radius: 0;\n}\n\n.key-play-card-content .text-content {\n position: absolute;\n top: 50%;\n left: 33.33%;\n transform: translateY(-50%);\n width: 66.67%;\n padding: 44px 36px 44px 24px;\n text-align: center;\n box-sizing: border-box;\n}\n\n.key-play-card-content .multi-line {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: left;\n}\n\n.key-play-card progress {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n width: 100%;\n height: 8px;\n border-radius: 15px;\n background-color: var(--sdk-surface6);\n box-shadow: 0px 1px 3px 0px #10111366 inset;\n overflow: hidden;\n border-radius: 0;\n position: absolute;\n bottom: 0;\n}\n\n.key-play-card progress::-webkit-progress-bar,\n.key-play-card progress::-moz-progress-bar {\n background-color: var(--sdk-surface6);\n}\n\n.key-play-card progress::-webkit-progress-value {\n background-color: var(--sdk-highlightPrimary);\n}\n\n.key-play-card .score {\n display: block;\n text-align: center;\n padding: 10px;\n background-color: var(--sdk-surface4);\n border-bottom-left-radius: 10px;\n border-bottom-right-radius: 10px;\n}\n\n.key-play-card .score-team {\n display: inline-block;\n vertical-align: middle;\n margin: 0 32px;\n}\n\n.key-play-card .score-team > div {\n display: inline-block;\n vertical-align: middle;\n}\n\n.key-play-card .score > *:last-child .score-value {\n margin-left: 0;\n margin-right: 16px;\n}\n\n.key-play-card .score-team .score-value {\n margin-left: 16px;\n}\n\n.key-play-card .error-state {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: block;\n text-align: center;\n background-color: var(--sdk-surface2);\n}\n\n.key-play-card .error-state-text {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n}\n\n.key-play-card .error-state-text > * {\n margin: 8px;\n vertical-align: middle;\n}\n\n.key-play-card .error-state .error-state-inner {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.key-play-card .error-state path {\n fill: var(--sdk-alertWarning);\n}\n\n.key-play-card .non-recent-error-state {\n position: absolute;\n top: 18px;\n right: 18px;\n}\n","",{version:3,sources:["webpack://./src/modules/key-plays/view/KeyPlayCardView.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,qCAAqC;EACrC,kBAAkB;AACpB;;AAEA;EACE,cAAc;EACd,WAAW;EACX,kBAAkB;AACpB;;AAEA;EACE,qBAAqB;EACrB,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,4BAA4B;EAC5B,+BAA+B;AACjC;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;EACE,kBAAkB;EAClB,QAAQ;EACR,YAAY;EACZ,2BAA2B;EAC3B,aAAa;EACb,4BAA4B;EAC5B,kBAAkB;EAClB,sBAAsB;AACxB;;AAEA;EACE,oBAAoB;EACpB,4BAA4B;EAC5B,qBAAqB;EACrB,gBAAgB;EAChB,uBAAuB;EACvB,gBAAgB;AAClB;;AAEA;EACE,wBAAwB;EACxB,qBAAqB;EACrB,gBAAgB;EAChB,WAAW;EACX,WAAW;EACX,mBAAmB;EACnB,qCAAqC;EACrC,2CAA2C;EAC3C,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;EAClB,SAAS;AACX;;AAEA;;EAEE,qCAAqC;AACvC;;AAEA;EACE,6CAA6C;AAC/C;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,aAAa;EACb,qCAAqC;EACrC,+BAA+B;EAC/B,gCAAgC;AAClC;;AAEA;EACE,qBAAqB;EACrB,sBAAsB;EACtB,cAAc;AAChB;;AAEA;EACE,qBAAqB;EACrB,sBAAsB;AACxB;;AAEA;EACE,cAAc;EACd,kBAAkB;AACpB;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,qCAAqC;AACvC;;AAEA;EACE,kBAAkB;EAClB,SAAS;EACT,QAAQ;EACR,gCAAgC;AAClC;;AAEA;EACE,WAAW;EACX,sBAAsB;AACxB;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;;AAEA;EACE,6BAA6B;AAC/B;;AAEA;EACE,kBAAkB;EAClB,SAAS;EACT,WAAW;AACb",sourcesContent:[".key-play-card {\n display: block;\n background-color: var(--sdk-surface2);\n position: relative;\n}\n\n.key-play-card-content {\n display: block;\n width: 100%;\n position: relative;\n}\n\n.key-play-card-content .cardImage {\n display: inline-block;\n width: 33.33%;\n vertical-align: top;\n object-fit: cover;\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n}\n\n.key-play-card-content .cardImage[data-has-score='true'] {\n border-bottom-left-radius: 0;\n}\n\n.key-play-card-content .text-content {\n position: absolute;\n top: 50%;\n left: 33.33%;\n transform: translateY(-50%);\n width: 66.67%;\n padding: 44px 36px 44px 24px;\n text-align: center;\n box-sizing: border-box;\n}\n\n.key-play-card-content .multi-line {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: left;\n}\n\n.key-play-card progress {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n width: 100%;\n height: 8px;\n border-radius: 15px;\n background-color: var(--sdk-surface6);\n box-shadow: 0px 1px 3px 0px #10111366 inset;\n overflow: hidden;\n border-radius: 0;\n position: absolute;\n bottom: 0;\n}\n\n.key-play-card progress::-webkit-progress-bar,\n.key-play-card progress::-moz-progress-bar {\n background-color: var(--sdk-surface6);\n}\n\n.key-play-card progress::-webkit-progress-value {\n background-color: var(--sdk-highlightPrimary);\n}\n\n.key-play-card .score {\n display: block;\n text-align: center;\n padding: 10px;\n background-color: var(--sdk-surface4);\n border-bottom-left-radius: 10px;\n border-bottom-right-radius: 10px;\n}\n\n.key-play-card .score-team {\n display: inline-block;\n vertical-align: middle;\n margin: 0 32px;\n}\n\n.key-play-card .score-team > div {\n display: inline-block;\n vertical-align: middle;\n}\n\n.key-play-card .score > *:last-child .score-value {\n margin-left: 0;\n margin-right: 16px;\n}\n\n.key-play-card .score-team .score-value {\n margin-left: 16px;\n}\n\n.key-play-card .error-state {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: block;\n text-align: center;\n background-color: var(--sdk-surface2);\n}\n\n.key-play-card .error-state-text {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n}\n\n.key-play-card .error-state-text > * {\n margin: 8px;\n vertical-align: middle;\n}\n\n.key-play-card .error-state .error-state-inner {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.key-play-card .error-state path {\n fill: var(--sdk-alertWarning);\n}\n\n.key-play-card .non-recent-error-state {\n position: absolute;\n top: 18px;\n right: 18px;\n}\n"],sourceRoot:""}]),n.a=o},134:function(e,n,a){"use strict";var t=a(6),r=a.n(t),A=a(7),o=a.n(A)()(r.a);o.push([e.i,".sdk--key-play-error-state-unsupportedEvent {\n padding: 32px 24px 0 24px;\n display: block;\n}\n\n.sdk--key-play-error-state-unsupportedEvent::after {\n background: linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0) 0%,\n rgba(255, 255, 255, 0.08) 100%\n );\n}\n\n.sdk--key-play-error-state-unsupportedEvent h3 {\n margin: 0;\n}\n\n.sdk--key-play-error-state-unsupportedEvent p {\n margin: 0;\n color: var(--sdk-text200);\n}\n\n.sdk--key-play-error-state-unsupportedEvent > * {\n margin-bottom: 16px;\n}\n\n.sdk--key-play-error-state-unsupportedEvent > *:last-child {\n margin-bottom: 0;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent {\n overflow-y: hidden;\n max-height: calc(100vh - 86px - 60px - 60px);\n scrollbar-width: none;\n display: block;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n text-align: left;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent p {\n margin: 0;\n color: var(--sdk-text200);\n text-align: left;\n margin-top: 16px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent > *:last-child {\n margin-bottom: 0;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .main-content {\n display: block;\n text-align: center;\n padding: 32px 6px 32px 6px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples {\n display: block;\n position: relative;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples > * {\n margin-bottom: 16px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n > *:last-child {\n margin-bottom: 0;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples::after {\n content: '';\n width: 100%;\n height: 100%;\n position: absolute;\n bottom: 0;\n background: linear-gradient(\n 0deg,\n var(--sdk-surface1) 0%,\n rgba(0, 0, 0, 0) 30%\n );\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example {\n display: block;\n padding: 28px 24px;\n border-radius: 10px;\n background-color: var(--sdk-surface3);\n height: 128px;\n box-sizing: border-box;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .image {\n width: 72px;\n height: 72px;\n border-radius: 50%;\n background-color: var(--sdk-surface4);\n margin-right: 16px;\n display: inline-block;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .content {\n display: inline-block;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .headline {\n width: 180px;\n height: 26px;\n border-radius: 10px;\n background-color: var(--sdk-surface4);\n display: block;\n margin-bottom: 23px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .body {\n width: 107px;\n height: 23px;\n border-radius: 10px;\n background-color: var(--sdk-surface4);\n display: block;\n}\n\n.sdk--key-play-error-state-tabLoadFailure {\n display: block;\n padding: 24px;\n background-color: var(--sdk-surface4);\n}\n\n.sdk--key-play-error-state-tabLoadFailure h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n}\n\n.sdk--key-play-error-state-tabLoadFailure p {\n margin: 16px 0;\n height: 86px;\n}\n\n.sdk--key-play-error-state-tabLoadFailure > *:last-child {\n margin-bottom: 0;\n}\n","",{version:3,sources:["webpack://./src/modules/key-plays/view/KeyPlayErrorStateView.styles.css"],names:[],mappings:"AAAA;EACE,yBAAyB;EACzB,cAAc;AAChB;;AAEA;EACE;;;;GAIC;AACH;;AAEA;EACE,SAAS;AACX;;AAEA;EACE,SAAS;EACT,yBAAyB;AAC3B;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,kBAAkB;EAClB,4CAA4C;EAC5C,qBAAqB;EACrB,cAAc;AAChB;;AAEA;EACE,SAAS;EACT,qCAAqC;EACrC,gBAAgB;AAClB;;AAEA;EACE,SAAS;EACT,yBAAyB;EACzB,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,0BAA0B;AAC5B;;AAEA;EACE,cAAc;EACd,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;;;EAGE,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,SAAS;EACT;;;;GAIC;AACH;;AAEA;;;EAGE,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,qCAAqC;EACrC,aAAa;EACb,sBAAsB;AACxB;;AAEA;;;;EAIE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,qCAAqC;EACrC,kBAAkB;EAClB,qBAAqB;AACvB;;AAEA;;;;EAIE,qBAAqB;AACvB;;AAEA;;;;EAIE,YAAY;EACZ,YAAY;EACZ,mBAAmB;EACnB,qCAAqC;EACrC,cAAc;EACd,mBAAmB;AACrB;;AAEA;;;;EAIE,YAAY;EACZ,YAAY;EACZ,mBAAmB;EACnB,qCAAqC;EACrC,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,aAAa;EACb,qCAAqC;AACvC;;AAEA;EACE,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,gBAAgB;AAClB",sourcesContent:[".sdk--key-play-error-state-unsupportedEvent {\n padding: 32px 24px 0 24px;\n display: block;\n}\n\n.sdk--key-play-error-state-unsupportedEvent::after {\n background: linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0) 0%,\n rgba(255, 255, 255, 0.08) 100%\n );\n}\n\n.sdk--key-play-error-state-unsupportedEvent h3 {\n margin: 0;\n}\n\n.sdk--key-play-error-state-unsupportedEvent p {\n margin: 0;\n color: var(--sdk-text200);\n}\n\n.sdk--key-play-error-state-unsupportedEvent > * {\n margin-bottom: 16px;\n}\n\n.sdk--key-play-error-state-unsupportedEvent > *:last-child {\n margin-bottom: 0;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent {\n overflow-y: hidden;\n max-height: calc(100vh - 86px - 60px - 60px);\n scrollbar-width: none;\n display: block;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n text-align: left;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent p {\n margin: 0;\n color: var(--sdk-text200);\n text-align: left;\n margin-top: 16px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent > *:last-child {\n margin-bottom: 0;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .main-content {\n display: block;\n text-align: center;\n padding: 32px 6px 32px 6px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples {\n display: block;\n position: relative;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples > * {\n margin-bottom: 16px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n > *:last-child {\n margin-bottom: 0;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples::after {\n content: '';\n width: 100%;\n height: 100%;\n position: absolute;\n bottom: 0;\n background: linear-gradient(\n 0deg,\n var(--sdk-surface1) 0%,\n rgba(0, 0, 0, 0) 30%\n );\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example {\n display: block;\n padding: 28px 24px;\n border-radius: 10px;\n background-color: var(--sdk-surface3);\n height: 128px;\n box-sizing: border-box;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .image {\n width: 72px;\n height: 72px;\n border-radius: 50%;\n background-color: var(--sdk-surface4);\n margin-right: 16px;\n display: inline-block;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .content {\n display: inline-block;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .headline {\n width: 180px;\n height: 26px;\n border-radius: 10px;\n background-color: var(--sdk-surface4);\n display: block;\n margin-bottom: 23px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .body {\n width: 107px;\n height: 23px;\n border-radius: 10px;\n background-color: var(--sdk-surface4);\n display: block;\n}\n\n.sdk--key-play-error-state-tabLoadFailure {\n display: block;\n padding: 24px;\n background-color: var(--sdk-surface4);\n}\n\n.sdk--key-play-error-state-tabLoadFailure h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n}\n\n.sdk--key-play-error-state-tabLoadFailure p {\n margin: 16px 0;\n height: 86px;\n}\n\n.sdk--key-play-error-state-tabLoadFailure > *:last-child {\n margin-bottom: 0;\n}\n"],sourceRoot:""}]),n.a=o},204:function(e,n,a){"use strict";a.r(n),a.d(n,"KeyPlays",(function(){return T})),a.d(n,"default",(function(){return D}));var t=a(0),r=a.n(t),A=a(91),o=a(108),s=a(5),l=a.n(s),i=a(133),c={insert:"head",singleton:!1},d=(l()(i.a,c),i.a.locals,a(10)),p=a(93),u=a(89);class m extends r.a.Component{render(){const{awayTeamScore:e,homeTeamScore:n,homeTeamName:a,awayTeamName:t}=this.props;return e&&n&&a&&t?r.a.createElement("div",{className:"score"},r.a.createElement("div",{className:"score-team T05_ALT"},r.a.createElement("span",null,a),r.a.createElement("span",{className:"T30 score-value FONT_BOLD"},n)),r.a.createElement("div",{className:"score-team T05_ALT"},r.a.createElement("span",{className:"T30 score-value FONT_BOLD"},e),r.a.createElement("span",null,t))):null}}var E=a(26),y=a(16);function v(){return(v=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var a=arguments[n];for(var t in a)({}).hasOwnProperty.call(a,t)&&(e[t]=a[t])}return e}).apply(null,arguments)}function g(e,n,a){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var t=a.call(e,n||"default");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}class B extends r.a.Component{constructor(e){super(e),g(this,"failedClipListener",()=>{}),g(this,"vm",void 0),g(this,"onLoad",()=>{this.setState({imageLoaded:!0})}),g(this,"renderImage",()=>{const{playerImageUrl:e,teamImageUrl:n,thumbnailImageUrl:a,isScoring:t}=this.props;return e?r.a.createElement(A.a,{src:e,crossOrigin:"anonymous",alt:"Key Play Player Image",className:"cardImage",onLoad:this.onLoad,style:{display:this.state.imageLoaded?"block":"none"},"data-has-score":t}):n?r.a.createElement(A.a,{src:n,crossOrigin:"anonymous",alt:"Key Play Team Image",className:"cardImage",onLoad:this.onLoad,style:{display:this.state.imageLoaded?"block":"none"},"data-has-score":t}):a?r.a.createElement(A.a,{src:a,crossOrigin:"anonymous",alt:"Key Play Thumbnail Image",className:"cardImage",onLoad:this.onLoad,style:{display:this.state.imageLoaded?"block":"none"}}):null}),this.vm=d.default.getMaestroEventViewModel().keyPlaysViewModel,this.state={failedClip:this.viewModel.failedClips.value[e.clipID]||null,imageLoaded:!1}}get viewModel(){if(!this.vm)throw new Error("KeyPlaysViewModel is not initialized");return this.vm}componentDidMount(){this.failedClipListener=this.viewModel.failedClips.subscribe(e=>{this.setState({failedClip:e[this.props.clipID]})})}componentWillUnmount(){this.failedClipListener&&this.failedClipListener()}render(){const{clipID:e,description:n,isPlaying:a,playbackProgress:t,isScoring:s,focused:l,awayTeamScore:i,homeTeamScore:c,homeTeamName:d,awayTeamName:u}=this.props,{failedClip:E}=this.state;return r.a.createElement("div",{className:"key-play-card focus-ring",id:e,"data-focused":l},r.a.createElement("div",{className:"key-play-card-content"},!this.state.imageLoaded&&r.a.createElement(A.a,{src:o.a,crossOrigin:"anonymous",alt:"Key Play Thumbnail Image",className:"cardImage"}),this.renderImage(),r.a.createElement("div",{className:"text-content T05_ALT"},r.a.createElement("div",{className:"multi-line"},n))),a&&null!==t&&r.a.createElement("progress",{value:t,max:"1"}),s&&r.a.createElement(m,{awayTeamScore:i,homeTeamScore:c,homeTeamName:d,awayTeamName:u}),"recentFailure"===E&&r.a.createElement("div",{className:"error-state"},r.a.createElement("div",{className:"error-state-inner"},r.a.createElement("div",{className:"error-state-text"},r.a.createElement(p.a,{iconName:"warning",width:21.6,height:18.7}),r.a.createElement("span",{className:"T05_ALT"},"Could not play this clip. ")))),"nonRecentFailure"===E&&r.a.createElement("div",{className:"non-recent-error-state"},r.a.createElement(p.a,{iconName:"warning",width:21.6,height:18.7})))}}const k=Object(u.a)()(B);class b extends r.a.Component{constructor(...e){super(...e),g(this,"context",y.a),g(this,"handleLeftPressed",e=>{"left"===e&&d.default.getMaestroEventViewModel().deliverFocus()}),g(this,"onBecameFocused",e=>{this.context.scrollToFocusedElement(e)})}render(){return r.a.createElement(E.a,null,r.a.createElement(k,v({},this.props,{onArrowPress:this.handleLeftPressed,onBecameFocused:this.onBecameFocused})))}}g(b,"contextTypes",y.b);var C=a(132),h={insert:"head",singleton:!1},f=(l()(C.a,h),C.a.locals,a(134)),x={insert:"head",singleton:!1},P=(l()(f.a,x),f.a.locals,a(99));function w(e,n,a){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var t=a.call(e,n||"default");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}class Q extends r.a.Component{render(){return r.a.createElement("div",{className:"sdk--key-play-error-state-unpopulatedEvent"},r.a.createElement("div",{className:"main-content"},r.a.createElement("h3",{className:"T70"},"Good things come to those who wait!"),r.a.createElement("p",{className:"T20"},"When a key play occurs we will serve them up for you here.")),r.a.createElement("div",{className:"unpopulatedEvent-examples"},Array.from({length:4}).map((e,n)=>r.a.createElement("div",{key:n,className:"example"},r.a.createElement("div",{className:"image"}),r.a.createElement("div",{className:"content"},r.a.createElement("div",{className:"headline"}),r.a.createElement("div",{className:"body"}))))))}}class N extends r.a.Component{render(){return r.a.createElement("div",{className:"sdk--key-play-error-state-unsupportedEvent"},r.a.createElement("h3",{className:"T70"},"No Key Plays Available"),r.a.createElement("svg",{viewBox:"0 0 520 359",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r.a.createElement("g",{opacity:"0.16"},r.a.createElement("path",{d:"M146.334 219.427V244.686L168.723 198.187V38.0215L165.279 40.3178V188.427L146.334 219.427Z",fill:"#6D6D6D"}),r.a.createElement("rect",{x:"94.6687",y:"219.427",width:"51.6662",height:"25.259",fill:"#777777"}),r.a.createElement("rect",{x:"145.187",y:"39.1694",width:"20.6665",height:"149.258",fill:"#666666"}),r.a.createElement("path",{d:"M146.335 219.427H94.6687L143.465 187.279H167.001L146.335 219.427Z",fill:"#666666"}),r.a.createElement("path",{d:"M375.389 219.427V244.686L353 198.187V38.0215L356.445 40.3178V188.427L375.389 219.427Z",fill:"#6D6D6D"}),r.a.createElement("rect",{width:"51.6662",height:"25.259",transform:"matrix(-1 0 0 1 427.055 219.427)",fill:"#777777"}),r.a.createElement("rect",{width:"20.6665",height:"149.258",transform:"matrix(-1 0 0 1 376.537 39.1694)",fill:"#666666"}),r.a.createElement("path",{d:"M375.389 219.427H427.055L378.259 187.279H354.722L375.389 219.427Z",fill:"#666666"}),r.a.createElement("path",{d:"M23.4844 141.354H496.517L410.981 121.835H93.5208L23.4844 141.354Z",fill:"#B1B1B1"}),r.a.createElement("rect",{x:"23.4844",y:"141.354",width:"473.033",height:"19.5183",fill:"#777777"}),r.a.createElement("rect",{x:"72.8545",y:"51.7993",width:"374.293",height:"45.9255",fill:"#CDCDCD"}))))}}class X extends r.a.Component{constructor(...e){super(...e),w(this,"onArrowPress",e=>{"left"===e&&d.default.getMaestroEventViewModel().deliverFocus()})}render(){const{errorState:e,onRetry:n}=this.props;return"unsupportedEvent"===e?r.a.createElement(N,null):"unpopulatedEvent"===e?r.a.createElement(Q,null):"tabLoadFailure"===e?r.a.createElement(P.a,{onEnterPress:n,onArrowPress:this.onArrowPress}):null}}var j=X,I=a(96);function S(e,n,a){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var t=a.call(e,n||"default");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}class T extends t.Component{constructor(e){var n,a,t;super(e),S(this,"container",null),S(this,"playbackProgressUnsub",null),S(this,"playbackIndexUnsub",null),S(this,"itemsUnsub",null),S(this,"vm",void 0),S(this,"handlePlayClip",e=>async()=>{await this.viewModel.playKeyPlay(e)}),this.vm=d.default.getMaestroEventViewModel().keyPlaysViewModel,this.state={scrollableContainer:null,playbackProgress:null!==(n=this.viewModel.currentClipPlaybackProgress.value)&&void 0!==n?n:null,playbackIndex:null!==(a=this.viewModel.currentlyPlayingClipIndex.value)&&void 0!==a?a:null,items:null!==(t=this.viewModel.filteredItems.value)&&void 0!==t?t:[]}}get viewModel(){if(!this.vm)throw new Error("KeyPlaysViewModel is not initialized");return this.vm}componentDidMount(){this.playbackProgressUnsub=this.viewModel.currentClipPlaybackProgress.subscribe(e=>{this.setState({playbackProgress:null!=e?e:null})}),this.playbackIndexUnsub=this.viewModel.currentlyPlayingClipIndex.subscribe(e=>{this.setState({playbackIndex:null!=e?e:null})}),this.itemsUnsub=this.viewModel.filteredItems.subscribe(e=>{this.setState({items:e})}),this.setState({scrollableContainer:this.container})}componentWillUnmount(){this.playbackProgressUnsub&&this.playbackProgressUnsub(),this.playbackIndexUnsub&&this.playbackIndexUnsub(),this.itemsUnsub&&this.itemsUnsub()}render(){const{playbackProgress:e,playbackIndex:n,items:a,scrollableContainer:t}=this.state;return r.a.createElement(I.a,{scrollableContainerRef:t,containerTopOffset:32},r.a.createElement("div",{ref:e=>{this.container=e},className:"key-plays-view"},a.map((a,t)=>r.a.createElement("div",{key:"section-"+t,className:"key-plays-section"},a.title&&r.a.createElement("h3",{className:"key-plays-section-title T10"},a.title),r.a.createElement("div",{className:"key-plays-section-items"},a.items.map(a=>{var t,A;const o=null!==(t=null===(A=this.vm)||void 0===A?void 0:A.allItems.findIndex(e=>e.id===a.id))&&void 0!==t?t:-1;return r.a.createElement(b,{key:a.id,id:a.id,clipID:a.clipID,description:a.description,awayTeamName:a.awayTeamName,homeTeamName:a.homeTeamName,awayTeamScore:a.awayTeamScore,homeTeamScore:a.homeTeamScore,playerImageUrl:a.playerImageUrl,teamImageUrl:a.teamImageUrl,thumbnailImageUrl:a.thumbnailImageUrl,isPlaying:this.viewModel.isCurrentlyPlaying(o),isScoring:Boolean(a.awayTeamScore&&a.homeTeamScore),playbackProgress:o===n?e:null,onEnterPress:this.handlePlayClip(o)})})))),r.a.createElement("div",{className:"key-plays-bottom-padding"})))}}class D extends t.Component{constructor(e){super(e),S(this,"errorStateUnsub",null),S(this,"vm",void 0),S(this,"handleRetry",async()=>{await this.viewModel.userRequestedNewKeyPlaysData()}),this.vm=d.default.getMaestroEventViewModel().keyPlaysViewModel,this.state={errorState:this.viewModel.errorState.value}}get viewModel(){if(!this.vm)throw new Error("KeyPlaysViewModel is not initialized");return this.vm}componentDidMount(){this.errorStateUnsub=this.viewModel.errorState.subscribe(e=>{this.setState({errorState:e})}),this.viewModel.init()}componentWillUnmount(){this.errorStateUnsub&&this.errorStateUnsub()}render(){const{errorState:e}=this.state;return e?r.a.createElement(j,{errorState:e,onRetry:this.handleRetry}):r.a.createElement(T,null)}}},91:function(e,n,a){"use strict";var t=a(0),r=a.n(t);function A(){return(A=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var a=arguments[n];for(var t in a)({}).hasOwnProperty.call(a,t)&&(e[t]=a[t])}return e}).apply(null,arguments)}function o(e,n,a){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var t=a.call(e,n||"default");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}class s extends r.a.Component{constructor(e){super(e),o(this,"state",{failed:!1}),o(this,"handleError",()=>{this.setState({failed:!0})})}render(){return this.state.failed?(console.warn("Image failed to load:",this.props.src),null):this.props.src?r.a.createElement("img",A({alt:this.props.alt||"Image"},this.props,{onError:this.handleError})):(console.warn("Image source is empty"),null)}}n.a=s},93:function(e,n,a){"use strict";var t=a(27);n.a=t.a},94:function(e,n,a){"use strict";var t=a(28).a,r=a(5),A=a.n(r),o=a(98),s={insert:"head",singleton:!1},l=(A()(o.a,s),o.a.locals,a(89)),i=a(0),c=a.n(i);function d(){return(d=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var a=arguments[n];for(var t in a)({}).hasOwnProperty.call(a,t)&&(e[t]=a[t])}return e}).apply(null,arguments)}class p extends c.a.Component{render(){const{children:e,focused:n,focusKey:a,parentFocusKey:r,preferredChildFocusKey:A,forgetLastFocusedChild:o,trackChildren:s,autoRestoreFocus:l,blockNavigationOut:i,hasFocusedChild:p,focusable:u,onEnterPress:m,onEnterRelease:E,onBackPress:y,onArrowPress:v,onBecameFocused:g,onBecameBlurred:B,realFocusKey:k,setFocus:b,navigateByDirection:C,stealFocus:h,onUpdateFocus:f,onUpdateHasFocusedChild:x,...P}=this.props;return c.a.createElement(t,d({className:"action-button T05_ALT"},P),e)}}var u=Object(l.a)()(p);n.a=u},96:function(e,n,a){"use strict";var t=a(16);n.a=t.c},97:function(e,n,a){"use strict";var t=a(6),r=a.n(t),A=a(7),o=a.n(A)()(r.a);o.push([e.i,".tab-load-error {\n display: block;\n padding: 24px;\n background-color: var(--sdk-surface4);\n}\n\n.tab-load-error h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n}\n\n.tab-load-error p {\n margin: 16px 0;\n height: 86px;\n}\n","",{version:3,sources:["webpack://./src/components/molecules/TabLoadError/TabLoadError.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,aAAa;EACb,qCAAqC;AACvC;;AAEA;EACE,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,cAAc;EACd,YAAY;AACd",sourcesContent:[".tab-load-error {\n display: block;\n padding: 24px;\n background-color: var(--sdk-surface4);\n}\n\n.tab-load-error h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n}\n\n.tab-load-error p {\n margin: 16px 0;\n height: 86px;\n}\n"],sourceRoot:""}]),n.a=o},98:function(e,n,a){"use strict";var t=a(6),r=a.n(t),A=a(7),o=a.n(A)()(r.a);o.push([e.i,".action-button {\n padding: 23px 0;\n background-color: var(--sdk-surface5);\n color: var(--sdk-text100);\n}\n\n.action-button:hover,\n.action-button[data-focused='true'] {\n background-color: var(--sdk-accentPrimary);\n color: var(--sdk-text500);\n}\n","",{version:3,sources:["webpack://./src/components/molecules/ActionButton/ActionButton.styles.css"],names:[],mappings:"AAAA;EACE,eAAe;EACf,qCAAqC;EACrC,yBAAyB;AAC3B;;AAEA;;EAEE,0CAA0C;EAC1C,yBAAyB;AAC3B",sourcesContent:[".action-button {\n padding: 23px 0;\n background-color: var(--sdk-surface5);\n color: var(--sdk-text100);\n}\n\n.action-button:hover,\n.action-button[data-focused='true'] {\n background-color: var(--sdk-accentPrimary);\n color: var(--sdk-text500);\n}\n"],sourceRoot:""}]),n.a=o},99:function(e,n,a){"use strict";var t=a(89),r=a(0),A=a.n(r),o=a(94),s=a(5),l=a.n(s),i=a(97),c={insert:"head",singleton:!1};l()(i.a,c),i.a.locals;class d extends A.a.Component{render(){const{focused:e}=this.props;return A.a.createElement("div",{"data-focused":e,className:"tab-load-error focus-ring"},A.a.createElement("h3",{className:"T70"},"We dropped the ball."),A.a.createElement("p",{className:"T20"},"We're having trouble loading that for you. Please try again."),A.a.createElement(o.a,{"data-focused":e,onEnterPress:this.props.onEnterPress},"Try Again"))}}var p=Object(t.a)()(d);n.a=p}}]);
|
|
2
|
+
//# sourceMappingURL=6.maestro-web-sdk.esm.js.map
|