{"version":3,"sources":["../../../../../Content/Logo/Templates/HP/Upsell/src/ProductModel.js","../../../../../Content/Logo/Templates/HP/Upsell/src/TabModel.js","../../../../../Content/Logo/Templates/HP/Upsell/src/RootModel.js","../../../../../Content/Logo/Templates/HP/Upsell/src/main.js"],"names":["ProductModel","product","options","_","this","name","category","tabSysName","categoryName","url","target","info","clickEvent","addToCart","parsingPriceJs","addToCartShown","ko","observable","showAddToCartWithPrice","productLinkShown","showLinkWithPrice","price","value","priceFallbackText","isTargetProduct","priceParam","priceLoading","current","data","parsingPriceData","parsed","dynamicPrice","actionContext","JSON","parse","ccs_cc_log","getEventParams","$","extend","sourceTab","clientParams","ActionContext","stringify","dispatchEvent","logoProgram","window","CcsLogoProgram","requestPrice","result","errorLogCall","TabModel","tab","firstRun","id","sysName","$tab","concat","entryPointId","fields","tabProducts","mapProducts","products","page","initPageSize","pageSize","totalPages","pureComputed","Math","ceil","subcategoryProducts","length","subcategories","observableArray","map","sub","uniqueId","checked","dropdownVisible","disabledSearch","activeSubs","filter","x","subscribe","logEvent","prod","some","s","hpUpSellsSubcategory","slice","startIndex","endIndex","inline","parsePrice","min","pageInfo","ccs_util","stringFormat","texts","hasNext","hasPrev","footnotes","footnotesWidth","updatePageSize","subsAssets","utils","arrayForEach","candidate","description","subCategory","count","push","showSubs","subNames","eventCall","item","find","slideToggle","each","i","property","_this","is","tableWidth","width","firstColumnWidth","outerWidth","targetWidth","columnWidth","max","floor","setTimeout","RootModel","model","categories","tabs","activeTab","goToTab","$ep","on","document","e","closest","slideUp","eventInfo","entryId","attr","parsePrices","bindingHandlers","upSellsProductField","init","element","valueAccessor","allBindings","viewModel","bindingContext","fieldName","field","$el","undefined","colorDots","split","color","trim","toLowerCase","html","notAvailable","applyBindings"],"mappings":"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","file":"hpUpsell.min.js","sourcesContent":["import $ from \"jquery\";\r\nimport ko from \"knockout\";\r\n\r\nexport default class ProductModel {\r\n\tconstructor(product, options) {\r\n\t\tconst _ = this;\r\n\r\n\t\t_.options = options;\r\n\r\n\t\t_.name = product.name;\r\n\t\t_.category = product.category;\r\n\t\t_.tabSysName = product.categoryName;\r\n\t\t_.url = product.url;\r\n\t\t_.target = product.target;\r\n\t\t_.info = product.info || {};\r\n\t\t_.clickEvent = product.clickEvent;\r\n\t\t_.addToCart = product.addToCart;\r\n\r\n\t\tif (_.options.parsingPriceJs) {\r\n\t\t\t_.addToCartShown = ko.observable(!options.showAddToCartWithPrice);\r\n\t\t\t_.productLinkShown = ko.observable(!options.showLinkWithPrice);\r\n\t\t\t_.price = ko.observable(product.price.value);\r\n\t\t} else {\r\n\t\t\t_.addToCartShown = !options.showAddToCartWithPrice || product.price.value;\r\n\t\t\t_.productLinkShown = !options.showLinkWithPrice || product.price.value;\r\n\r\n\t\t\t_.price = product.price.value || options.priceFallbackText;\r\n\t\t}\r\n\r\n\t\t_.isTargetProduct = product.isTargetProduct;\r\n\r\n\t\t_.priceParam = product.price;\r\n\t\t_.priceLoading = ko.observable(false);\r\n\t\t_.priceFallbackText = options.priceFallbackText;\r\n\t\t_.current = ko.observable();\r\n\t}\r\n\r\n\tlogEvent(data) {\r\n\t\tif (!data.clickEvent) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tlet parsingPriceData = null;\r\n\r\n\t\tif (this.parsed) {\r\n\t\t\tparsingPriceData = { price: this.price(), dynamicPrice: true };\r\n\t\t}\r\n\r\n\t\tconst actionContext = JSON.parse(ccs_cc_log.getEventParams(data.clickEvent)[\"ActionContext\"]);\r\n\t\t$.extend(actionContext, parsingPriceData, { sourceTab: this.tabSysName });\r\n\r\n\t\tconst clientParams = { ActionContext: JSON.stringify(actionContext) };\r\n\r\n\t\tccs_cc_log.dispatchEvent(data.clickEvent, clientParams);\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tparsePrice() {\r\n\t\tconst _ = this;\r\n\r\n\t\tif (!_.priceParam.url || !_.options.parsingPriceJs || _.parsed) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t_.parsed = true;\r\n\r\n\t\tconst logoProgram = window.CcsLogoProgram;\r\n\r\n\t\tif (logoProgram) {\r\n\t\t\t_.priceLoading(true);\r\n\r\n\t\t\tlogoProgram.requestPrice(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tif (data && data.result) {\r\n\t\t\t\t\t\t_.price(data.result);\r\n\t\t\t\t\t\t_.addToCartShown(true);\r\n\t\t\t\t\t\t_.productLinkShown(true);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t_.price(_.priceFallbackText);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t_.priceLoading(false);\r\n\t\t\t\t},\r\n\t\t\t\t_.priceParam.url,\r\n\t\t\t\t_.options.parsingPriceJs,\r\n\t\t\t\t_.priceParam.errorLogCall);\r\n\t\t}\r\n\t}\r\n}\r\n","import $ from \"jquery\";\r\nimport ko from \"knockout\";\r\n\r\nimport ProductModel from \"./ProductModel\";\r\n\r\nexport default class TabModel {\r\n\tconstructor(tab, options, firstRun) {\r\n\t\tconst _ = this;\r\n\r\n\t\t_.options = options;\r\n\r\n\t\t_.id = tab.id;\r\n\t\t_.sysName = tab.sysName;\r\n\t\t_.$tab = $(`#${options.entryPointId} .ccs-logo-tab`);\r\n\r\n\t\t_.name = tab.name;\r\n\t\t_.fields = tab.fields;\r\n\r\n\t\t_.tabProducts = _.mapProducts(tab.products);\r\n\r\n\t\t_.page = ko.observable(0);\r\n\r\n\t\t_.initPageSize = tab.pageSize;\r\n\t\t_.pageSize = ko.observable(tab.pageSize || 3);\r\n\r\n\t\t_.totalPages = ko.pureComputed(() => Math.ceil(_.subcategoryProducts().length / _.pageSize()));\r\n\r\n\t\t_.subcategories = ko.observableArray(\r\n\t\t\ttab.subcategories.map(sub => {\r\n\t\t\t\tsub.uniqueId = \"ccschk\" + _.options.entryPointId + sub.id; //for clickable tag label\r\n\t\t\t\tsub.checked = ko.observable(true);\r\n\t\t\t\treturn sub;\r\n\t\t\t}));\r\n\r\n\t\t_.dropdownVisible = ko.observable(false);\r\n\r\n\t\t_.disabledSearch = _.subcategories().length === 1 ? true : false;\r\n\r\n\t\t_.activeSubs = ko.pureComputed(() => _.subcategories().filter(x => x.checked()));\r\n\r\n\t\t_.activeSubs.subscribe(() => { _.page(0); _.logEvent() });\r\n\r\n\t\t_.subcategoryProducts = ko.pureComputed(() => {\r\n\t\t\tif (_.subcategories().length === _.activeSubs().length) {\r\n\t\t\t\treturn _.tabProducts;\r\n\t\t\t}\r\n\r\n\t\t\treturn _.tabProducts.filter(prod => _.activeSubs().some(s => s.id === prod().info.hpUpSellsSubcategory));\r\n\t\t});\r\n\r\n\t\t_.products = ko.pureComputed(() => {\r\n\t\t\tconst products = _.subcategoryProducts().slice(_.startIndex(), _.endIndex());\r\n\r\n\t\t\tif (!_.options.parsingPriceJs) {\r\n\t\t\t\treturn products;\r\n\t\t\t}\r\n\r\n\t\t\t// Price should be parsed after the hover is shown.\r\n\t\t\tif (!firstRun || _.options.inline) {\r\n\t\t\t\t_.parsePrice(products);\r\n\t\t\t}\r\n\r\n\t\t\tfirstRun = false;\r\n\r\n\t\t\treturn products;\r\n\t\t});\r\n\r\n\t\t_.startIndex = ko.pureComputed(() => _.page() * _.pageSize());\r\n\r\n\t\t_.endIndex = ko.pureComputed(() => Math.min(_.startIndex() + _.pageSize(), _.subcategoryProducts().length));\r\n\r\n\t\t_.pageInfo = ko.pureComputed(() => {\r\n\t\t\treturn ccs_util.stringFormat(\r\n\t\t\t\t_.options.texts.pageInfo,\r\n\t\t\t\t(_.startIndex() + 1) + \"-\" + _.endIndex(),\r\n\t\t\t\t_.subcategoryProducts().length);\r\n\t\t});\r\n\r\n\t\t_.hasNext = ko.pureComputed(() => _.page() + 1 >= _.totalPages());\r\n\t\t_.hasPrev = ko.pureComputed(() => _.page() - 1 < 0);\r\n\r\n\t\t_.footnotes = tab.footnotes;\r\n\t\t_.footnotesWidth = ko.pureComputed(() => _.products().length + 1);\r\n\r\n\t\t_.updatePageSize();\r\n\r\n\t\t_.subsAssets = ko.pureComputed(() => {\r\n\t\t\tlet current,\r\n\t\t\t\tresult = [];\r\n\t\t\tko.utils.arrayForEach(_.products(), (prod) => {\r\n\t\t\t\tconst candidate = prod().info.hpUpSellsSubcategory;\r\n\t\t\t\tif (current && current.id !== candidate) {\r\n\t\t\t\t\tcurrent = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet description = \"\";\r\n\r\n\t\t\t\tconst subCategory = _.subcategories().filter(s => s.id === candidate);\r\n\t\t\t\tif (subCategory.length !== 0) {\r\n\t\t\t\t\tdescription = subCategory[0].description;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!current) {\r\n\t\t\t\t\tcurrent = {\r\n\t\t\t\t\t\tid: candidate,\r\n\t\t\t\t\t\tname: description,\r\n\t\t\t\t\t\tcount: 0\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tresult.push(current);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcurrent.count++;\r\n\t\t\t});\r\n\r\n\t\t\treturn result;\r\n\t\t});\r\n\r\n\t\t_.showSubs = ko.pureComputed(() => _.subsAssets().some(s => s.name));\r\n\r\n\t\t_.logEvent = () => {\r\n\t\t\tconst subNames = _.activeSubs().map(sub => sub.name);\r\n\t\t\tconst clientParams = { ActionContext: JSON.stringify(subNames) };\r\n\r\n\t\t\tccs_cc_log.dispatchEvent(_.options.eventCall, clientParams);\r\n\t\t};\r\n\t}\r\n\r\n\tdisableFilter(item) {\r\n\t\treturn this.activeSubs().length === 1 && item.checked();\r\n\t}\r\n\r\n\ttoggleDropdown() {\r\n\t\tthis.dropdownVisible(!this.dropdownVisible());\r\n\t\tthis.$tab.find(\".ccs-logo-subcategories\").slideToggle();\r\n\t}\r\n\r\n\tparsePrices() {\r\n\t\tthis.parsePrice(this.products());\r\n\t}\r\n\r\n\tparsePrice(products) {\r\n\t\t$.each(products, (i, product) => {\r\n\t\t\tproduct().parsePrice();\r\n\t\t});\r\n\t}\r\n\r\n\tnextPage() {\r\n\t\tthis.page(this.page() + 1);\r\n\t}\r\n\r\n\tprevPage() {\r\n\t\tthis.page(this.page() - 1);\r\n\t}\r\n\r\n\thasValues(property) {\r\n\t\tconst products = this.products();\r\n\r\n\t\tfor (let i = 0; i < products.length; i++) {\r\n\t\t\tif (products[i]().info[property]) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tmapProducts(products) {\r\n\t\treturn products.map(product => ko.observable(new ProductModel(product, this.options)));\r\n\t}\r\n\r\n\tupdatePageSize() {\r\n\t\tconst _ = this, $tab = _.$tab;\r\n\r\n\t\tif (!_.options.inline) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!$tab.is(\":visible\")) {\r\n\t\t\tsetTimeout(() => _.updatePageSize(), 300);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst tableWidth = $tab.width();\r\n\t\tconst firstColumnWidth = $tab.find(\"th:first-child\").outerWidth();\r\n\r\n\t\tconst targetWidth = _.options.columnWidth || 125;\r\n\r\n\t\tconst pageSize =\r\n\t\t\tMath.max(1,\r\n\t\t\t\tMath.min(\r\n\t\t\t\t\t_.initPageSize || _.tabProducts.length,\r\n\t\t\t\t\tMath.floor((tableWidth - firstColumnWidth) / targetWidth))\r\n\t\t\t);\r\n\r\n\t\tif (_.pageSize() !== pageSize) {\r\n\t\t\t_.page(0);\r\n\t\t\t_.pageSize(pageSize);\r\n\t\t}\r\n\t}\r\n}","import $ from \"jquery\";\r\nimport ko from \"knockout\";\r\n\r\nimport TabModel from \"./TabModel\";\r\n\r\nexport default class RootModel {\r\n\tconstructor(model, options) {\r\n\t\tconst _ = this;\r\n\r\n\t\t_.categories = model;\r\n\t\t_.options = options;\r\n\r\n\t\t_.tabs = {};\r\n\t\t_.activeTab = ko.observable();\r\n\r\n\t\t_.goToTab(_.categories[0], null, true);\r\n\r\n\t\tconst $ep = $(`#${options.entryPointId}`);\r\n\t\t$ep.on(\"ccsResize\", () => _.activeTab().updatePageSize());\r\n\r\n\t\t$(document)\r\n\t\t\t.on(\"click\", function (e) {\r\n\t\t\t\tif ($(e.target).closest(\".ccs-logo-search\").length === 1) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$ep.find(\".ccs-logo-subcategories\").slideUp();\r\n\t\t\t\t_.activeTab().dropdownVisible(false);\r\n\r\n\t\t\t})\r\n\t\t\t.on(\"ccs.logo-shown\", function (e, eventInfo) {\r\n\t\t\t\tif (eventInfo.entryId === $(`#${options.entryPointId}`).closest(\".ccs-logo-ls-popup\").attr(\"id\")) {\r\n\t\t\t\t\t_.activeTab().parsePrices();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tif (!ko.bindingHandlers.upSellsProductField) {\r\n\t\t\tko.bindingHandlers.upSellsProductField = {\r\n\t\t\t\tinit: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n\t\t\t\t\tconst fieldName = bindingContext.field.name;\r\n\r\n\t\t\t\t\tconst $el = $(element);\r\n\r\n\t\t\t\t\tif (fieldName === \"color\" && viewModel.category === 0 && viewModel.info[fieldName] !== undefined) {\r\n\t\t\t\t\t\tconst colorDots = viewModel.info[fieldName].split(\";\");\r\n\t\t\t\t\t\tlet result = \"\";\r\n\t\t\t\t\t\tko.utils.arrayForEach(colorDots, color => {\r\n\t\t\t\t\t\t\tconst attr = color.trim().toLowerCase();\r\n\r\n\t\t\t\t\t\t\tif (attr === \"tri-color\") {\r\n\t\t\t\t\t\t\t\tresult += `${color} `;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tresult += `${color} `;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t$el.html(result);\r\n\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$el.html(viewModel.info[fieldName] || options.texts.notAvailable);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tgoToTab(category, e, firstRun) {\r\n\t\tconst _ = this, options = _.options;\r\n\r\n\t\tconst tabs = _.tabs;\r\n\t\tif (!tabs[category.id]) {\r\n\t\t\ttabs[category.id] = new TabModel(category, options, firstRun);\r\n\t\t}\r\n\r\n\t\t_.activeTab(tabs[category.id]);\r\n\r\n\t\tif (options.inline) {\r\n\t\t\t_.activeTab().updatePageSize();\r\n\t\t}\r\n\r\n\t\tif (!firstRun) {\r\n\t\t\tccs_cc_log.dispatchEvent(category.clickEvent);\r\n\t\t}\r\n\t}\r\n\r\n\tisActiveTab(id) {\r\n\t\treturn id === this.activeTab().id;\r\n\t}\r\n}\r\n","import $ from \"jquery\";\r\nimport ko from \"knockout\";\r\nimport \"ElementQueries\";\r\n\r\nimport RootModel from \"./RootModel\";\r\n\r\nexport default function (model, options) {\r\n\tconst element = $(`#${options.entryPointId} .ccs-logo`);\r\n\r\n\tif (element.length !== 0) {\r\n\t\tko.applyBindings(new RootModel(model, options), element[0]);\r\n\t}\r\n}\r\n"],"sourceRoot":"../../../../.."}