{"version":3,"file":"js/sync.3191c9e878c0f18400ac.js","mappings":"iHAAAA,OAAOC,GAAKD,OAAOC,IAAM,CAAC,EAE1BD,OAAOC,GAAGC,KAAO,IAAI,WAEjB,IAEIC,EAFAC,EAAOC,KAGX,MAAMC,EAAc,WA6DpB,SAASC,IAIL,IAFA,IAAIC,EAAWC,SAASC,iBAAiB,YAAcJ,EAAc,MAE5DK,EAAI,EAAGA,EAAIH,EAASI,OAAQD,IACrC,CACI,IAAIE,EAAUL,EAASG,GAEvBP,EAAKU,cAAcD,EACvB,CACJ,CA2BA,SAASE,IAEL,IAAIC,EAAMhB,OAAOiB,WAMjB,OAAID,EALY,KAKOA,EAHN,KAKN,SAGPA,EAAME,IAEC,SAKA,SAIf,CAxHAd,EAAKe,KAAO,WAERnB,OAAOoB,iBAAiB,UAAU,WAE9BC,aAAalB,GACbA,EAAcmB,YAAW,WAErBf,GACJ,GAZa,EAajB,IAEAA,GACJ,EAEAH,EAAKmB,eAAiB,SAAUC,GAI5B,IAFA,IAAIhB,EAAWgB,EAAad,iBAAiB,YAAcJ,EAAc,MAEhEK,EAAI,EAAGA,EAAIH,EAASI,OAAQD,IACrC,CACI,IAAIE,EAAUL,EAASG,GAEvBP,EAAKU,cAAcD,EACvB,CACJ,EAEAT,EAAKU,cAAgB,SAAUD,GAE3B,IAAIY,EAqIR,SAA+BZ,EAASY,GAIpC,IAFA,IAAIC,EAAab,EAAQY,UAAUE,MAAM,KAEhChB,EAAI,EAAGA,EAAIe,EAAWd,OAAQD,IACvC,CACI,IAAIiB,EAAWF,EAAWf,GAE1B,GAAIiB,EAASC,WAAWJ,GAEpB,OAAOG,CAEf,CAEA,OAAO,IACX,CApJoBE,CAAsBjB,EAASP,GAE/C,KAAImB,EAAUb,QAAUN,EAAYM,QAApC,CAKA,IAiHImB,EAEAC,EACAC,EApHAC,GAiHAH,EAjHyBN,EAgHZU,UAAU7B,EAAYM,QACvBe,MAAM,MAElBK,EAAkC,GAAfD,EAAKnB,OAAcmB,EAAK,GAAK,MAChDE,EAAwB,GAAfF,EAAKnB,OAAcmB,EAAK,GAAKA,EAAK,GAExC,CACHK,SAAUL,EAAK,GACfM,OAAQN,EAAK,GACbC,iBAAkBA,EAClBM,eAAgBL,IAxHhBM,EAAgB9B,SAAS+B,cAAc,IAAMN,EAAMI,gBAEvD,GAAqB,MAAjBC,EAKJ,GA2BJ,SAAuBE,GAInB,OAFaA,EAAMC,eAIf,IAAK,YACD,MAAwB,UAAjB3B,IACX,IAAK,YACD,MAAwB,UAAjBA,IACX,IAAK,aACD,MAAwB,WAAjBA,IACX,IAAK,aACD,MAAwB,UAAjBA,IACX,IAAK,aACD,MAAwB,UAAjBA,IACX,IAAK,cACD,MAAwB,WAAjBA,IACX,QACI,OAAO,EAGf,OAAO,CACX,CAlDS4B,CAAcT,EAAMF,kBAAzB,CAOA,IAAIY,EA4ER,SAA0B/B,EAASgC,GAE/B,IAAIJ,EAAQ5B,EAAQiC,MAAMD,GAE1B,OAAQA,GAEJ,IAAK,SACDJ,EAAQ5B,EAAQkC,aAChB,MACJ,IAAK,QACDN,EAAQ5B,EAAQmC,YAIxB,OAAOP,CACX,CA3FmBQ,CAAiBpC,EAASqB,EAAME,UAE3CQ,IAEAL,EAAcO,MAAMZ,EAAMG,QAAUO,EAAW,KANnD,MAHIL,EAAcO,MAAMI,eAAehB,EAAMG,OAb7C,CAwBJ,CAwHJ,EAEArC,OAAOC,GAAGC,KAAKiB,M","sources":["webpack://netzkern.am/./src/Feature/Common/code/Scripts/Common/sync.js"],"sourcesContent":["window.am = window.am || {};\r\n\r\nwindow.am.sync = new function ()\r\n{\r\n var that = this;\r\n var resizeEndDelay = 1; /* in ms */\r\n var resizeTimer;\r\n const cssClassKey = 'js-sync-';\r\n\r\n that.init = function ()\r\n {\r\n window.addEventListener('resize', function ()\r\n {\r\n clearTimeout(resizeTimer);\r\n resizeTimer = setTimeout(function ()\r\n {\r\n onResizeEnd();\r\n }, resizeEndDelay);\r\n });\r\n\r\n onResizeEnd();\r\n }\r\n\r\n that.adjustElements = function (startElement)\r\n {\r\n var elements = startElement.querySelectorAll('[class*=\"' + cssClassKey + '\"]');\r\n\r\n for (var i = 0; i < elements.length; i++)\r\n {\r\n var element = elements[i];\r\n\r\n that.adjustElement(element);\r\n }\r\n }\r\n\r\n that.adjustElement = function (element)\r\n {\r\n var className = getCssClassStartsWith(element, cssClassKey);\r\n\r\n if (className.length <= cssClassKey.length)\r\n {\r\n return;\r\n }\r\n\r\n var props = getConfiguration(className);\r\n\r\n var targetElement = document.querySelector('.' + props.targetCssClass);\r\n\r\n if (targetElement == null)\r\n {\r\n return;\r\n }\r\n\r\n if (!shouldProcess(props.breakpointTarget))\r\n {\r\n targetElement.style.removeProperty(props.toProp);\r\n\r\n return;\r\n }\r\n\r\n var srcValue = getPropertyValue(element, props.fromProp);\r\n\r\n if (srcValue)\r\n {\r\n targetElement.style[props.toProp] = srcValue + 'px';\r\n }\r\n }\r\n\r\n function onResizeEnd()\r\n {\r\n var elements = document.querySelectorAll('[class*=\"' + cssClassKey + '\"]');\r\n\r\n for (var i = 0; i < elements.length; i++)\r\n {\r\n var element = elements[i];\r\n\r\n that.adjustElement(element);\r\n }\r\n }\r\n\r\n function shouldProcess(value)\r\n {\r\n var target = value.toLowerCase();\r\n\r\n switch (target)\r\n {\r\n case 'notmobile':\r\n return getViewport() != 'mobile';\r\n case 'nottablet':\r\n return getViewport() != 'tablet';\r\n case 'notdesktop':\r\n return getViewport() != 'desktop';\r\n case 'onlymobile':\r\n return getViewport() == 'mobile';\r\n case 'onlytablet':\r\n return getViewport() == 'tablet';\r\n case 'onlydesktop':\r\n return getViewport() == 'desktop';\r\n default:\r\n return true;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function getViewport()\r\n {\r\n var win = window.innerWidth,\r\n mobileMax = 767,\r\n tabletMax = 1023,\r\n desktopMin = 1024;\r\n\r\n // Regular Helper Classes\r\n if (win > mobileMax && win < desktopMin)\r\n {\r\n return 'tablet';\r\n }\r\n\r\n if (win < mobileMax + 1)\r\n {\r\n return 'mobile';\r\n }\r\n\r\n if (win > tabletMax)\r\n {\r\n return 'desktop';\r\n }\r\n\r\n return 'desktop';\r\n }\r\n\r\n /**\r\n * \r\n * @param {any} element\r\n * @param {any} propName\r\n */\r\n function getPropertyValue(element, propName)\r\n {\r\n var value = element.style[propName];\r\n\r\n switch (propName)\r\n {\r\n case 'height':\r\n value = element.offsetHeight;\r\n break;\r\n case 'width':\r\n value = element.offsetWidth;\r\n break;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function getConfiguration(value)\r\n {\r\n // js-sync-propFrom-propTo-targetCssClassElement\r\n var data = value.substring(cssClassKey.length);\r\n var keys = data.split('--');\r\n\r\n var breakpointTarget = keys.length == 4 ? keys[2] : 'all';\r\n var target = keys.length == 4 ? keys[3] : keys[2];\r\n\r\n return {\r\n fromProp: keys[0],\r\n toProp: keys[1],\r\n breakpointTarget: breakpointTarget,\r\n targetCssClass: target\r\n };\r\n }\r\n\r\n function getCssClassStartsWith(element, className)\r\n {\r\n var cssClasses = element.className.split(' ');\r\n\r\n for (var i = 0; i < cssClasses.length; i++)\r\n {\r\n var cssClass = cssClasses[i];\r\n\r\n if (cssClass.startsWith(className))\r\n {\r\n return cssClass;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nwindow.am.sync.init();"],"names":["window","am","sync","resizeTimer","that","this","cssClassKey","onResizeEnd","elements","document","querySelectorAll","i","length","element","adjustElement","getViewport","win","innerWidth","mobileMax","init","addEventListener","clearTimeout","setTimeout","adjustElements","startElement","className","cssClasses","split","cssClass","startsWith","getCssClassStartsWith","keys","breakpointTarget","target","props","substring","fromProp","toProp","targetCssClass","targetElement","querySelector","value","toLowerCase","shouldProcess","srcValue","propName","style","offsetHeight","offsetWidth","getPropertyValue","removeProperty"],"sourceRoot":""}