{"version":3,"names":["guid","replace","c","r","Math","random","v","toString","_COLORS_","Object","freeze","_KEYBOARD_","enter","esc","tab","space","_BREAKPOINTS_","xs","sm","md","lg","xl","giant","isOnScreen","el","rect","getBoundingClientRect","elemTop","top","elemBottom","bottom","window","innerHeight","getQueryStringValue","key","decodeURIComponent","location","search","RegExp","encodeURIComponent","getCookie","name","value","document","cookie","parts","split","length","pop","shift","isScrolledIntoView","ratioVisible","offsetHeight","isVisible","isPartiallyVisible"],"sources":["src/global/utils.ts"],"sourcesContent":["/**\r\n * Component Helpers\r\n */\r\nexport 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 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":"SAGgBA,IACd,MAAO,uCAAuCC,QAAQ,SAAS,SAAUC,GACvE,IAAIC,EAAKC,KAAKC,SAAW,GAAM,EAC7BC,EAAIJ,GAAK,IAAMC,EAAKA,EAAI,EAAO,EACjC,OAAOG,EAAEC,SAAS,G,GAEtB,C,MAKaC,EAAWC,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,MAGEC,EAAa,SAAUC,GAClC,MAAMC,EAAOD,EAAGE,wBAChB,MAAMC,EAAUF,EAAKG,IACrB,MAAMC,EAAaJ,EAAKK,OAGxB,OAAOH,EAAUI,OAAOC,YAAc,KAAOH,GAAc,CAC7D,E,MAEaI,EAAuBC,GAC3BC,mBAAmBJ,OAAOK,SAASC,OAAOpC,QAAQ,IAAIqC,OAAO,eAAiBC,mBAAmBL,GAAKjC,QAAQ,YAAa,QAAU,uBAAwB,KAAM,O,SAG5JuC,EAAUC,GACxB,MAAMC,EAAQ,KAAKC,SAASC,SAC5B,MAAMC,EAAQH,EAAMI,MAAM,KAAKL,MAC/B,GAAII,EAAME,SAAW,EAAG,OAAOF,EAAMG,MAAMF,MAAM,KAAKG,OACxD,C,SAEgBC,EAAmB1B,EAAI2B,EAAuB,GAC5D,MAAM1B,EAAOD,EAAGE,wBAChB,MAAMC,EAAUF,EAAKG,IACrB,MAAMC,EAAaJ,EAAKK,OACxB,MAAMsB,EAAezB,EAAWH,EAAG4B,aAAeD,EAGlD,MAAME,EAAa1B,GAAW,GAAOE,GAAcE,OAAOC,YAE1D,MAAMsB,EAAqBF,GAAgB,GAAKA,EAAerB,OAAOC,YAEtE,OAAOqB,GAAaC,CACtB,Q"}