{"version":3,"names":["guid","replace","c","r","Math","random","v","toString","Object","freeze","_KEYBOARD_","enter","esc","tab","space","_BREAKPOINTS_","xs","sm","md","lg","xl","giant","getQueryStringValue","key","decodeURIComponent","window","location","search","RegExp","encodeURIComponent","isScrolledIntoView","el","ratioVisible","rect","getBoundingClientRect","elemTop","top","elemBottom","bottom","offsetHeight","isVisible","innerHeight","isPartiallyVisible"],"sources":["./src/global/utils.ts"],"sourcesContent":["/**\r\n * Component Helpers\r\n */\r\n export function guid(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (Math.random() * 16) | 0,\r\n v = c == 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\n\r\n/**\r\n * Theme Helpers\r\n */\r\nexport const _COLORS_ = Object.freeze({\r\n 0: 'primary',\r\n 1: 'secondary',\r\n 2: 'tertiary',\r\n 4: 'quarternary',\r\n 5: 'quinary',\r\n 6: 'senary',\r\n 7: 'gray-lite',\r\n 8: 'gray-dark',\r\n});\r\n\r\n/**\r\n * Window Helpers\r\n */\r\n\r\n// Keyboard Enum\r\nexport const _KEYBOARD_ = Object.freeze({\r\n 'enter': 13,\r\n 'arrow-u': 38,\r\n 'arrow-r': 39,\r\n 'arrow-d': 40,\r\n 'arrow-l': 37,\r\n 'esc': 27,\r\n 'tab': 9,\r\n 'space': 32\r\n});\r\n\r\n/**\r\n * Breakpoints are situatued such that\r\n * comparison would be \"and down\" --\r\n * \r\n * if (window.innerWidth < _BREAKPOINTS_.sm) { ... }\r\n */\r\nexport const _BREAKPOINTS_ = Object.freeze({\r\n 'xs': 576,\r\n 'sm': 767,\r\n 'md': 991,\r\n 'lg': 1199,\r\n 'xl': 1399,\r\n 'giant': 1799\r\n});\r\n\r\nexport const isOnScreen = function (el) {\r\n const rect = el.getBoundingClientRect();\r\n const elemTop = rect.top;\r\n const elemBottom = rect.bottom;\r\n\r\n // Only completely visible elements return true\r\n return elemTop < window.innerHeight - 100 && elemBottom >= 0;\r\n}\r\n\r\nexport const getQueryStringValue = (key) => { \r\n return decodeURIComponent(window.location.search.replace(new RegExp(\"^(?:.*[&\\\\?]\" + encodeURIComponent(key).replace(/[\\.\\+\\*]/g, \"\\\\$&\") + \"(?:\\\\=([^&]*))?)?.*$\", \"i\"), \"$1\")); \r\n} \r\n\r\nexport const scrollToTop = function() {\r\n window.scrollTo({\r\n behavior: 'smooth',\r\n top: 0,\r\n });\r\n}\r\n\r\nexport function getCookie(name) {\r\n const value = `; ${document.cookie}`;\r\n const parts = value.split(`; ${name}=`);\r\n if (parts.length === 2) return parts.pop().split(';').shift();\r\n}\r\n\r\nexport function isScrolledIntoView(el, ratioVisible: number = 1): boolean {\r\n const rect = el.getBoundingClientRect();\r\n const elemTop = rect.top;\r\n const elemBottom = rect.bottom;\r\n const offsetHeight = elemTop + (el.offsetHeight * ratioVisible);\r\n\r\n // Only completely visible elements return true:\r\n const isVisible = (elemTop >= 0) && (elemBottom <= window.innerHeight);\r\n // Partially visible elements return true:\r\n const isPartiallyVisible = offsetHeight >= 0 && offsetHeight < window.innerHeight;\r\n \r\n return isVisible || isPartiallyVisible;\r\n};\r\n"],"mappings":"SAGiBA,IACf,MAAO,uCAAuCC,QAAQ,SAAS,SAAUC,GACvE,IAAIC,EAAKC,KAAKC,SAAW,GAAM,EAC7BC,EAAIJ,GAAK,IAAMC,EAAKA,EAAI,EAAO,EACjC,OAAOG,EAAEC,SAAS,G,GAEtB,CAKwBC,OAAOC,OAAO,CACpC,EAAG,UACH,EAAG,YACH,EAAG,WACH,EAAG,cACH,EAAG,UACH,EAAG,SACH,EAAG,YACH,EAAG,c,MAQQC,EAAaF,OAAOC,OAAO,CACtCE,MAAS,GACT,UAAW,GACX,UAAW,GACX,UAAW,GACX,UAAW,GACXC,IAAO,GACPC,IAAO,EACPC,MAAS,K,MASEC,EAAgBP,OAAOC,OAAO,CACzCO,GAAM,IACNC,GAAM,IACNC,GAAM,IACNC,GAAM,KACNC,GAAM,KACNC,MAAS,O,MAYEC,EAAuBC,GAC3BC,mBAAmBC,OAAOC,SAASC,OAAO1B,QAAQ,IAAI2B,OAAO,eAAiBC,mBAAmBN,GAAKtB,QAAQ,YAAa,QAAU,uBAAwB,KAAM,O,SAgB5J6B,EAAmBC,EAAIC,EAAuB,GAC5D,MAAMC,EAAOF,EAAGG,wBAChB,MAAMC,EAAUF,EAAKG,IACrB,MAAMC,EAAaJ,EAAKK,OACxB,MAAMC,EAAeJ,EAAWJ,EAAGQ,aAAeP,EAGlD,MAAMQ,EAAaL,GAAW,GAAOE,GAAcZ,OAAOgB,YAE1D,MAAMC,EAAqBH,GAAgB,GAAKA,EAAed,OAAOgB,YAEtE,OAAOD,GAAaE,CACtB,Q"}