{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./Static/SeikoVision/ts/blocks.ts","webpack:///./Static/SeikoVision/ts/product-visual-page/product-visual-page.ts","webpack:///./Static/SeikoVision/ts/product-visual-page/three-column-fly-in-block.ts","webpack:///./Static/SeikoVision/ts/product-visual-page/product-configure-block.ts","webpack:///./Static/SeikoVision/ts/product-visual-page/media-block.ts","webpack:///./Static/SeikoVision/ts/product-visual-page/product-block.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","extendStatics","b","setPrototypeOf","__proto__","Array","__extends","__","this","constructor","__assign","assign","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","desc","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","push","__createBinding","k","k2","undefined","__exportStar","__values","__read","ar","error","__spread","concat","__spreadArrays","il","a","j","jl","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","default","__importDefault","__classPrivateFieldGet","receiver","privateMap","has","__classPrivateFieldSet","set","window","needConsentClass","updateEqualHeights","setListeners","fixExternalLinks","$","resize","each","appDomain","location","hostname","hostName","attr","winWidth","width","el","matchHeight","Blocks","desktopBreakpoint","document","on","event","currentTarget","data","targetimg","img","split","closest","find","removeClass","addClass","parent","submit","preventDefault","form","ajax","type","url","serialize","images","id","thumbs","setProductImages","fail","console","log","$window","page","oldWidth","oldHeight","height","inEdit","init","hasClass","onScroll","initBlocks","ProductPage","LOADED_CLASS","block","blocks","ProductBlock","CLASS_NAME","blockElement","ThreeColumnFlyInBlock","ProductConfigureBlock","MediaBlock","initiate","onResize","lastYPoint","pageYOffset","movingDown","clearTimeout","resizeTimer","setTimeout","Debug","blockTitle","element","blockImage","stickObjects","map","toArray","initiated","forEach","resetObject","isMobile","fitsInWindow","bodyPadding","parseInt","css","lastRow","lastRowOffset","offset","top","titleFixedPos","initBlockTitle","imageWindowEndPos","initBlockImage","initStickObject","lastStickObject","stickPos","titleHeight","imageHeight","blockPadding","columnMaxHeight","Math","max","totalHeight","stickObject","offsetDiff","objectParent","fixedPos","left","objectMargin","objectStickOffset","titleMargin","imageMargin","isInView","inViewPos","objectFixedPos","outOfViewPos","setStickPosition","fixedOffset","stickPositionSet","scrollY","inView","outOfView","activate","currStrain","currAge","radioBtnsStrain","radioBtnsAge","numberValue","resultText","change","val","toString","updateConfigurator","number","tot","text","currValue","fadeOut","fadeIn","$body","play","video","trigger","isActivated","Audio","audio","args","promise","catch","createElement","innerHTML","addEventListener","parentNode","insertBefore","nextSibling","windowWidth","topPos","botPos","windowHeight","inViewOffset","inViewDefaultOffset","IN_VIEW_DEFAULT_OFFSET","IN_VIEW_DEFAULT_OFFSET_DESKTOP","inViewOffsetPercent","inViewOffsetValue","setDebugData","win","Helpers","any","currScrollPos","currentWidth","IN_VIEW_CLASS","ACTIVATED_CLASS"],"mappings":"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","file":"seiko-product-visual-page.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 44);\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export default class Blocks {\r\n private window: any = window;\r\n public static readonly desktopBreakpoint = 992;\r\n private readonly needConsentClass = \"need-cookie-consent\";\r\n\r\n constructor() {\r\n this.updateEqualHeights();\r\n this.setListeners();\r\n this.fixExternalLinks();\r\n }\r\n\r\n private setListeners() {\r\n $(this.window).resize(() => {\r\n this.updateEqualHeights();\r\n });\r\n }\r\n\r\n private fixExternalLinks() {\r\n $('.block a').each((i, e) => {\r\n var appDomain = window.location.hostname || 'seikovision.com' || 'http://seikovision.azurewebsites.net/';\r\n var hostName = (e as any).hostname;\r\n var url = $(e).attr('href');\r\n\r\n if (appDomain !== hostName) {\r\n $(e).attr('target', '_blank');\r\n }\r\n });\r\n }\r\n\r\n private updateEqualHeights() {\r\n const winWidth = $(this.window).width();\r\n\r\n $('.equal-height').each(() => {\r\n const el: any = $('.equalize', $(this));\r\n\r\n if(!el.matchHeight) return;\r\n\r\n if (winWidth > Blocks.desktopBreakpoint) {\r\n el.matchHeight(false);\r\n } else {\r\n el.matchHeight(\"remove\");\r\n }\r\n });\r\n }\r\n}\r\n\r\n$(function () {\r\n $(document).on('click', 'img[data-image]', function (event) {\r\n var target = $(event.currentTarget).data('target');\r\n var targetimg = $(target);\r\n var img = $(event.currentTarget).data('image');\r\n img = img.split('?')[0];\r\n $(event.currentTarget).closest('.product-thumbs').find('.selected').removeClass('selected');\r\n $(event.currentTarget).addClass('selected');\r\n targetimg.attr('src', img + \"?w=798&h=300&mode=crop\");\r\n });\r\n\r\n if ($('form.product-picker').length > 0) {\r\n var setProductImages = function (id, images) {\r\n var qsSmall = \"?w=200&h=100&mode=crop\";\r\n var qslarge = \"?w=798&h=300&mode=crop\";\r\n if (typeof (images[0]) != 'undefined') {\r\n $('#product-image-' + id).attr('src', images[0] + qslarge);\r\n }\r\n\r\n var thumbs = $('[data-target=\"#product-image-' + id + '\"]');\r\n // add placeholder that is shown while the new image is loading\r\n thumbs.attr('src', \"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\");\r\n thumbs.addClass(\"hidden\");\r\n\r\n for (var i = 0; i < images.length; i++) {\r\n $(thumbs[i])\r\n .attr('src', images[i] + qsSmall)\r\n .attr('data-image', images[i])\r\n .data('image', images[i])\r\n .removeClass(\"hidden\");\r\n }\r\n }\r\n $('form.product-picker').each(function () {\r\n\r\n $(this).find('[name=\"color\"]').on('change', function (event) {\r\n $(this).parent().submit();\r\n });\r\n $(this).on('submit', function (event) {\r\n event.preventDefault();\r\n var form = $(this);\r\n $.ajax({\r\n type: form.data(\"method\"),\r\n url: form.data(\"action\"),\r\n data: form.serialize()\r\n }).done(function (data) {\r\n var images = data;//JSON.parse(data);\r\n var id = form.data('id')\r\n setProductImages(id, images);\r\n }).fail(function (data) {\r\n // Error ?\r\n console.log(data);\r\n });\r\n });\r\n });\r\n }\r\n});","import { ProductBlock } from \"./product-block\";\r\nimport { ThreeColumnFlyInBlock } from \"./three-column-fly-in-block\";\r\nimport { ProductConfigureBlock } from \"./product-configure-block\";\r\nimport { MediaBlock } from \"./media-block\";\r\nimport { Helpers } from \"../helpers\";\r\n\r\nexport class ProductPage {\r\n private static readonly LOADED_CLASS = \"loaded\";\r\n\r\n public static readonly Debug = true;\r\n \r\n private $window = $(window);\r\n private body = $(\"body\");\r\n private page: JQuery;\r\n\r\n private lastYPoint: number;\r\n private movingDown: boolean;\r\n\r\n private oldWidth: number\r\n private oldHeight: number;\r\n private resizeTimer: any;\r\n\r\n private blocks: ProductBlock[];\r\n\r\n constructor() {\r\n this.page = $(\".product-visual-page\");\r\n\r\n //new Helpers().onImagesLoaded($('#main')).then(() => {\r\n this.oldWidth = $(window).width();\r\n this.oldHeight = $(window).height();\r\n\r\n if (!this.inEdit()) {\r\n this.setListeners();\r\n }\r\n\r\n this.init();\r\n //});\r\n }\r\n\r\n public inEdit(): boolean {\r\n return $(\"html\").hasClass(\"in-edit\");\r\n }\r\n\r\n private init() {\r\n // Do not show submenu on this page\r\n\r\n this.onScroll();\r\n this.initBlocks();\r\n this.page.addClass(ProductPage.LOADED_CLASS);\r\n }\r\n\r\n private initBlocks() {\r\n this.blocks = [];\r\n\r\n let block: ProductBlock;\r\n\r\n $(`.${ProductBlock.CLASS_NAME}`).each((i, e) => {\r\n const blockElement = $(e);\r\n\r\n if (blockElement.hasClass(ThreeColumnFlyInBlock.CLASS_NAME)) {\r\n block = new ThreeColumnFlyInBlock(e);\r\n }\r\n else if (blockElement.hasClass(ProductConfigureBlock.CLASS_NAME)) {\r\n block = new ProductConfigureBlock(e);\r\n }\r\n else if (blockElement.hasClass(MediaBlock.CLASS_NAME)) {\r\n block = new MediaBlock(e);\r\n }\r\n else {\r\n block = new ProductBlock(e); \r\n }\r\n\r\n block.initiate();\r\n this.blocks.push(block);\r\n })\r\n }\r\n\r\n private setListeners() {\r\n this.$window.on(\"scroll\", this.onScroll.bind(this));\r\n this.$window.on(\"resize\", this.onResize.bind(this));\r\n }\r\n \r\n private onScroll() {\r\n if (this.lastYPoint < window.pageYOffset) {\r\n this.movingDown = true;\r\n this.body.addClass(\"moving-down\");\r\n this.body.removeClass(\"moving-up\");\r\n }\r\n else {\r\n this.movingDown = false;\r\n this.body.removeClass(\"moving-down\");\r\n this.body.addClass(\"moving-up\");\r\n }\r\n\r\n this.lastYPoint = window.pageYOffset;\r\n }\r\n\r\n private onResize() {\r\n clearTimeout(this.resizeTimer);\r\n\r\n this.resizeTimer = setTimeout(() => {\r\n\r\n // Do not trigger when address bar dissappear on iOS\r\n if (this.oldWidth !== this.$window.width() || this.oldHeight !== this.$window.height()) {\r\n this.page.removeClass(ProductPage.LOADED_CLASS);\r\n this.init();\r\n }\r\n\r\n this.oldWidth = this.$window.width();\r\n this.oldHeight = this.$window.height();\r\n\r\n }, 250);\r\n }\r\n}\r\n\r\nvar productPage = new ProductPage();","import { ProductBlock } from \"./product-block\";\r\nimport Blocks from \"../blocks\";\r\n\r\n\r\nexport class ThreeColumnFlyInBlock extends ProductBlock {\r\n public static CLASS_NAME = \"three-column-fly-in-block\";\r\n\r\n private blockTitle: JQuery;\r\n private blockImage: JQuery;\r\n private stickObjects: JQuery[];\r\n\r\n private bodyPadding: number;\r\n private stickPos: number;\r\n private lastRowOffset: number;\r\n private initiated: boolean;\r\n private stickPositionSet: boolean;\r\n\r\n constructor(e: HTMLElement) {\r\n super(e);\r\n\r\n this.blockTitle = $(\".block-title\", this.element);\r\n this.blockImage = $(\".block-image\", this.element);\r\n this.stickObjects = $(\".stick-object\", this.element).map((i, e) => { return $(e); }).toArray();\r\n }\r\n\r\n public initiate() {\r\n if (this.initiated) {\r\n this.initiated = false;\r\n // Reinitiate after window resize\r\n this.stickObjects.forEach(e => {\r\n this.resetObject(e);\r\n });\r\n\r\n this.stickObjects = $(\".stick-object\", this.element).map((i, e) => { return $(e); }).toArray();\r\n }\r\n\r\n super.initiate();\r\n\r\n if (!ProductBlock.isMobile() && this.fitsInWindow()) {\r\n setTimeout(() => {\r\n this.bodyPadding = parseInt($(\"body\").css(\"paddingTop\"));\r\n this.bodyPadding += parseInt($(\".main-wrapper\").css(\"marginTop\"));\r\n\r\n let lastRow = $('.row:last-child', this.element);\r\n this.lastRowOffset = lastRow.offset().top;\r\n\r\n let titleFixedPos = this.initBlockTitle();\r\n let imageWindowEndPos = this.initBlockImage(titleFixedPos);\r\n\r\n this.stickObjects.forEach(e => {\r\n this.initStickObject(e, imageWindowEndPos);\r\n });\r\n\r\n let lastStickObject = this.stickObjects[this.stickObjects.length - 1];\r\n this.stickPos = lastStickObject.data(\"fixed-pos\");\r\n\r\n this.stickObjects.push(this.blockImage);\r\n this.stickObjects.push(this.blockTitle);\r\n\r\n this.initiated = true;\r\n this.onScroll();\r\n }, 500);\r\n }\r\n else {\r\n this.element.addClass(\"normalize\");\r\n }\r\n }\r\n\r\n private fitsInWindow(): boolean {\r\n let titleHeight = this.blockTitle.length ?\r\n this.blockTitle.height() + parseInt(this.blockTitle.css(\"marginBottom\")) : 0;\r\n\r\n let imageHeight = this.blockImage.height() ?\r\n this.blockImage.height() + parseInt(this.blockImage.css(\"marginBottom\")) : 0;\r\n\r\n let blockPadding = parseInt(this.element.css(\"paddingTop\")) + parseInt(this.element.css(\"paddingBottom\"));\r\n let columnMaxHeight = 0;\r\n this.stickObjects.forEach(e => {\r\n columnMaxHeight = Math.max(columnMaxHeight, e.height());\r\n });\r\n\r\n let totalHeight = titleHeight + imageHeight + columnMaxHeight + blockPadding;\r\n return $(window).height() > totalHeight;\r\n }\r\n\r\n private resetObject(stickObject: JQuery) {\r\n // Remove style if reinit after window resize\r\n stickObject.removeClass(\"fixed\");\r\n stickObject.removeClass(\"stick\");\r\n stickObject.css(\"top\", \"\");\r\n stickObject.css(\"margin-left\", \"\");\r\n stickObject.css(\"transform\", \"\");\r\n\r\n stickObject.css(\"width\", \"\");\r\n stickObject.css(\"height\", \"\");\r\n\r\n const objectParent = $(stickObject.parent());\r\n objectParent.css(\"height\", \"\");\r\n }\r\n\r\n private initStickObject(stickObject: JQuery, offsetDiff: number) {\r\n const objectParent = $(stickObject.parent());\r\n\r\n let fixedPos = stickObject.offset().top - offsetDiff;\r\n\r\n stickObject.data(\"fixed-pos\", fixedPos);\r\n stickObject.data(\"fixed-offset\", offsetDiff);\r\n\r\n // Set height to keep initial height when child is fixed positioned\r\n\r\n objectParent.height(objectParent.height());\r\n\r\n stickObject.width(stickObject.width());\r\n stickObject.height(stickObject.height());\r\n stickObject.data(\"left-offset\", stickObject.offset().left - objectParent.offset().left);\r\n\r\n const objectMargin = parseInt(stickObject.css(\"marginBottom\"));\r\n let objectStickOffset = this.lastRowOffset - stickObject.offset().top - objectMargin;\r\n stickObject.data(\"fixed-pos\", fixedPos);\r\n stickObject.data(\"stick-offset\", objectStickOffset);\r\n }\r\n\r\n private initBlockImage(titleFixedPos: number): number {\r\n const objectParent = $(this.blockImage.parent());\r\n\r\n // Set height to keep initial height when child is fixed positioned\r\n objectParent.height(objectParent.height());\r\n\r\n const titleMargin = parseInt(this.blockTitle.css(\"marginBottom\"));\r\n console.log(titleMargin);\r\n let fixedPos = titleFixedPos;\r\n let offsetDiff = this.blockImage.offset().top - fixedPos;\r\n this.blockImage.data(\"fixed-pos\", fixedPos);\r\n this.blockImage.data(\"fixed-offset\", offsetDiff);\r\n this.blockImage.data(\"left-offset\", this.blockImage.offset().left - this.blockImage.parent().offset().left);\r\n this.blockImage.width(this.blockImage.width());\r\n this.blockImage.height(this.blockImage.height());\r\n const imageMargin = parseInt(this.blockImage.css(\"marginBottom\"));\r\n\r\n //const objectMargin = parseInt(this.blockImage.css(\"marginBottom\"));\r\n let objectStickOffset = this.lastRowOffset - this.blockImage.offset().top - this.blockImage.height() + titleMargin - this.bodyPadding + imageMargin + 4;\r\n this.blockImage.data(\"fixed-pos\", fixedPos);\r\n this.blockImage.data(\"stick-offset\", objectStickOffset);\r\n\r\n return offsetDiff + this.blockImage.height() + imageMargin + titleMargin;\r\n }\r\n\r\n private initBlockTitle(): number {\r\n const objectParent = $(this.blockTitle.parent());\r\n\r\n // Set height to keep initial height when child is fixed positioned\r\n objectParent.height(objectParent.height());\r\n\r\n console.log(this.element.offset().top);\r\n let fixedPos = this.element.offset().top - this.bodyPadding;\r\n let offsetDiff = this.blockTitle.offset().top - this.element.offset().top + this.bodyPadding;\r\n this.blockTitle.attr(\"data-fixed-offset\", offsetDiff);\r\n this.blockTitle.attr(\"data-fixed-pos\", fixedPos);\r\n\r\n const objectMargin = parseInt(this.blockTitle.css(\"marginBottom\"));\r\n let objectStickOffset = this.lastRowOffset - this.blockTitle.offset().top - this.blockImage.height() - this.bodyPadding * 2 - 20;\r\n this.blockTitle.attr(\"data-fixed-pos\", fixedPos);\r\n this.blockTitle.attr(\"data-stick-offset\", objectStickOffset);\r\n\r\n return fixedPos;\r\n }\r\n\r\n protected onScroll() {\r\n super.onScroll();\r\n\r\n if (this.initiated && this.isInView) {\r\n const currScrollPos = window.pageYOffset;\r\n const diff = currScrollPos - this.inViewPos;\r\n\r\n this.stickObjects.forEach((e, i) => {\r\n const stickObject = e;\r\n const objectFixedPos = stickObject.data(\"fixed-pos\");\r\n\r\n if (currScrollPos >= this.stickPos && currScrollPos <= this.outOfViewPos) {\r\n this.setStickPosition(e);\r\n stickObject.removeClass(\"fixed\");\r\n stickObject.css(\"top\", stickObject.data(\"stick-offset\"));\r\n stickObject.css(\"margin-left\", \"\");\r\n stickObject.css(\"transform\", \"\");\r\n }\r\n else if (currScrollPos >= objectFixedPos && currScrollPos <= this.outOfViewPos) {\r\n const fixedOffset = stickObject.data(\"fixed-offset\");\r\n\r\n stickObject.addClass(\"fixed\");\r\n stickObject.removeClass(\"stick\");\r\n stickObject.css(\"top\", `${fixedOffset}px`);\r\n stickObject.css(\"margin-left\", stickObject.data(\"left-offset\"));\r\n }\r\n else {\r\n stickObject.removeClass(\"fixed\");\r\n stickObject.removeClass(\"stick\");\r\n stickObject.css(\"top\", \"\");\r\n stickObject.css(\"margin-left\", \"\");\r\n stickObject.css(\"transform\", \"\");\r\n }\r\n });\r\n }\r\n else if (this.initiated && !this.stickPositionSet && window.scrollY > this.outOfViewPos) {\r\n this.stickPositionSet = true;\r\n\r\n this.stickObjects.forEach((e, i) => {\r\n this.setStickPosition(e);\r\n });\r\n }\r\n }\r\n\r\n private setStickPosition(stickObject: JQuery) {\r\n stickObject.addClass(\"stick\");\r\n stickObject.removeClass(\"fixed\");\r\n stickObject.css(\"top\", stickObject.data(\"stick-offset\"));\r\n stickObject.css(\"margin-left\", \"\");\r\n stickObject.css(\"transform\", \"\");\r\n }\r\n\r\n protected inView() {\r\n super.inView();\r\n this.stickPositionSet = false;\r\n }\r\n\r\n protected outOfView() {\r\n super.outOfView();\r\n }\r\n\r\n protected activate() {\r\n super.activate();\r\n }\r\n}","import { ProductBlock } from \"./product-block\";\r\n\r\nexport class ProductConfigureBlock extends ProductBlock {\r\n public static CLASS_NAME = \"product-configurator-block\";\r\n\r\n private radioBtnsStrain: JQuery;\r\n private radioBtnsAge: JQuery;\r\n\r\n private numberValue: JQuery;\r\n private resultText: JQuery;\r\n\r\n private currStrain: number;\r\n private currAge: number;\r\n\r\n private currValue: string;\r\n\r\n constructor(e: HTMLElement) {\r\n super(e);\r\n\r\n this.currStrain = 0;\r\n this.currAge = 0;\r\n\r\n this.radioBtnsStrain = $(\"#radio-strain input\", this.element);\r\n this.radioBtnsAge = $(\"#radio-age input\", this.element);\r\n\r\n this.numberValue = $(\".number .value\", this.element);\r\n\r\n this.resultText = $(\".result-text\", this.element);\r\n\r\n this.radioBtnsStrain.change((e) => {\r\n this.currStrain = parseInt($(e.currentTarget).val().toString(), null);\r\n this.updateConfigurator();\r\n });\r\n\r\n this.radioBtnsAge.change((e) => {\r\n this.currAge = parseInt($(e.currentTarget).val().toString(), null);\r\n this.updateConfigurator(); \r\n });\r\n\r\n this.updateConfigurator();\r\n }\r\n\r\n private updateConfigurator() {\r\n let tot = this.currStrain + this.currAge;\r\n let number: string;\r\n let result = \"\";\r\n\r\n switch (tot) {\r\n case 0:\r\n case 1:\r\n number = \"05\";\r\n result = this.resultText.data(\"result-1\");\r\n break;\r\n case 2:\r\n case 3:\r\n number = \"07\";\r\n result = this.resultText.data(\"result-2\");\r\n break;\r\n case 4:\r\n case 5:\r\n number = \"10\";\r\n result = this.resultText.data(\"result-3\");\r\n break;\r\n default:\r\n number = \"12\";\r\n result = this.resultText.data(\"result-4\");\r\n break;\r\n }\r\n \r\n this.numberValue.text(number);\r\n\r\n if (this.currValue !== number) {\r\n this.currValue = number;\r\n\r\n this.resultText.fadeOut(() => {\r\n this.resultText.text(result).fadeIn();\r\n });\r\n } \r\n }\r\n\r\n protected activate() {\r\n super.activate();\r\n\r\n let $body = $(\"body\");\r\n $body.removeClass(\"sticky-footer-hide\");\r\n $body.addClass(\"sticky-footer-enabled\");\r\n }\r\n}","import { ProductBlock } from \"./product-block\";\r\n\r\nexport class MediaBlock extends ProductBlock {\r\n public static CLASS_NAME = \"media-block\";\r\n \r\n private video: JQuery;\r\n\r\n constructor(e: HTMLElement) {\r\n super(e);\r\n this.video = $(\".video\", this.element);\r\n }\r\n\r\n public initiate() {\r\n super.initiate();\r\n $(\"body\").trigger(\"click\");\r\n }\r\n \r\n protected onScroll() {\r\n super.onScroll();\r\n\r\n if (this.isInView) {\r\n \r\n }\r\n }\r\n \r\n protected inView() {\r\n super.inView();\r\n }\r\n\r\n protected outOfView() {\r\n super.outOfView();\r\n }\r\n\r\n protected activate() {\r\n if (!this.isActivated && this.video.length > 0) {\r\n (this.video[0] as any).play();\r\n }\r\n super.activate();\r\n }\r\n}\r\n\r\nAudio.prototype.play = (function (play) {\r\n return function () {\r\n var audio = this,\r\n args = arguments,\r\n promise = play.apply(audio, args);\r\n if (promise !== undefined) {\r\n promise.catch(_ => {\r\n // Autoplay was prevented. This is optional, but add a button to start playing.\r\n var el = document.createElement(\"button\");\r\n el.innerHTML = \"Play\";\r\n el.addEventListener(\"click\", function () { play.apply(audio, args); });\r\n this.parentNode.insertBefore(el, this.nextSibling)\r\n });\r\n }\r\n };\r\n})(Audio.prototype.play);","import { ProductPage } from \"./product-visual-page\";\r\nimport Blocks from \"../blocks\";\r\n\r\n/**\r\n * Base class used by all product page blocks\r\n * \r\n * */\r\nexport class ProductBlock {\r\n public static CLASS_NAME = \"section\";\r\n private static readonly IN_VIEW_CLASS = \"in-view\";\r\n private static readonly ACTIVATED_CLASS = \"activated\";\r\n private static readonly IN_VIEW_DEFAULT_OFFSET = 25;\r\n private static readonly IN_VIEW_DEFAULT_OFFSET_DESKTOP = 45;\r\n\r\n protected element: JQuery;\r\n protected inViewPos: number; // Scroll pos when in view\r\n protected outOfViewPos: number; // Scroll pos when out of view\r\n\r\n protected isInView: boolean;\r\n protected isActivated: boolean;\r\n\r\n private resizeTimer: ReturnType;\r\n private windowWidth: number;\r\n\r\n constructor(e: HTMLElement) {\r\n this.element = $(e);\r\n this.windowWidth = $(window).width();\r\n this.setListeners();\r\n }\r\n\r\n public initiate() {\r\n const topPos = this.element.offset().top;\r\n const botPos = topPos + this.element.height();\r\n\r\n const windowHeight = $(window).height();\r\n const bodyPadding = parseInt($(\"body\").css(\"paddingBottom\"));\r\n\r\n const inViewOffset = this.element.data(\"in-view-offset\");\r\n\r\n const inViewDefaultOffset = ProductBlock.isMobile() ?\r\n ProductBlock.IN_VIEW_DEFAULT_OFFSET :\r\n ProductBlock.IN_VIEW_DEFAULT_OFFSET_DESKTOP;\r\n\r\n const inViewOffsetPercent = typeof inViewOffset !== \"undefined\" ?\r\n parseInt(inViewOffset) : inViewDefaultOffset;\r\n\r\n const inViewOffsetValue = this.element.height() * (inViewOffsetPercent / 100);\r\n\r\n this.inViewPos = topPos - windowHeight + bodyPadding + inViewOffsetValue;\r\n this.outOfViewPos = botPos;\r\n\r\n if (ProductPage.Debug) {\r\n this.setDebugData();\r\n }\r\n\r\n this.onScroll();\r\n }\r\n\r\n public static inEdit(): boolean {\r\n return $(\"html\").hasClass(\"in-edit\");\r\n }\r\n\r\n public static isMobile(): boolean {\r\n let win = window as any;\r\n let isMobileDevice = win.Helpers ? win.Helpers.isMobile.any() : false;\r\n\r\n return isMobileDevice || $(window).width() < Blocks.desktopBreakpoint;\r\n }\r\n\r\n private setListeners() {\r\n $(window).on(\"scroll\", this.onScroll.bind(this));\r\n $(window).on(\"resize\", this.onResize.bind(this));\r\n }\r\n\r\n protected onScroll() {\r\n const currScrollPos = window.pageYOffset;\r\n\r\n if (this.isInView && currScrollPos > this.outOfViewPos) {\r\n this.outOfView();\r\n }\r\n else if (!this.isInView &&\r\n currScrollPos < this.outOfViewPos &&\r\n currScrollPos > this.inViewPos) {\r\n this.inView();\r\n this.activate();\r\n }\r\n }\r\n\r\n private onResize() {\r\n clearTimeout(this.resizeTimer);\r\n\r\n this.resizeTimer = setTimeout(() => {\r\n const currentWidth = $(window).width();\r\n\r\n if (this.windowWidth !== currentWidth) {\r\n this.initiate();\r\n }\r\n\r\n this.windowWidth = currentWidth;\r\n\r\n }, 150);\r\n }\r\n\r\n protected inView() {\r\n this.isInView = true;\r\n this.element.addClass(ProductBlock.IN_VIEW_CLASS);\r\n }\r\n\r\n protected outOfView() {\r\n this.isInView = false;\r\n this.element.removeClass(ProductBlock.IN_VIEW_CLASS);\r\n }\r\n\r\n protected activate() {\r\n this.isActivated = true;\r\n this.element.addClass(ProductBlock.ACTIVATED_CLASS);\r\n }\r\n\r\n protected setDebugData() {\r\n if (ProductPage.Debug) {\r\n this.element.attr(\"data-in-view\", this.inViewPos);\r\n this.element.attr(\"data-out-view\", this.outOfViewPos);\r\n }\r\n }\r\n}"],"sourceRoot":""}