{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/modules/AlertBanner.js"],"names":[],"mappings":"uKAIA,eAA0B,KAAU,CAClC,eAAgB,CACd,KAAK,GAAK,KAAK,GAAG,QAAQ,GAC1B,KAAK,WAAa,kBAAkB,KAAK,KAEzC,KAAK,IAAM,CACT,MAAO,KAAK,GAAG,cAAc,wBAC7B,MAAO,KAAK,GAAG,cAAc,yBAG/B,KAAK,qBAGP,oBAAqB,CACnB,GAAI,QAAY,KAAK,YACnB,MAAO,MAAK,GAAG,SAGjB,KAAK,OAGP,cAAe,CACb,KAAK,IAAI,MAAM,iBAAiB,QAAS,KAAK,iBAAiB,KAAK,OAGtE,kBAAmB,CACjB,KAAK,QAGP,MAAO,CACL,KAAK,GAAG,MAAM,QAAU,QACxB,QAAM,CACJ,QAAS,KAAK,GACd,OAAQ,CACN,MAAO,KAAK,IAAI,MAAM,aACtB,SAAU,KAEZ,QAAS,CACP,MAAO,EACP,SAAU,KAEZ,OAAQ,SACR,SAAU,IAAM,CACd,KAAK,GAAG,MAAM,OAAS,UAK7B,OAAQ,CACN,KAAK,GAAG,MAAM,OAAS,GAAG,KAAK,IAAI,MAAM,iBACzC,QAAM,CACJ,QAAS,KAAK,GACd,OAAQ,EACR,OAAQ,SACR,SAAU,IACV,SAAU,IAAM,CACd,QAAY,KAAK,WAAY,KAAK,GAAI,CACpC,QAAS,SAAS,KAAK,GAAG,QAAQ,iBAAkB,KAAO,IAE7D,KAAK,GAAG,aAMhB,UAAe","file":"scripts/310.f7ceb06c4c3fdc4cfe12.js","sourcesContent":["import { Component } from '@verndale/core';\r\nimport Cookies from 'js-cookie';\r\nimport anime from 'animejs/lib/anime.es';\r\n\r\nclass AlertBanner extends Component {\r\n setupDefaults() {\r\n this.id = this.el.dataset.id;\r\n this.cookieName = `loftware_alert_${this.id}`;\r\n\r\n this.dom = {\r\n inner: this.el.querySelector('.alert-banner__inner'),\r\n close: this.el.querySelector('.alert-banner__close')\r\n };\r\n\r\n this.shouldDisplayAlert();\r\n }\r\n\r\n shouldDisplayAlert() {\r\n if (Cookies.get(this.cookieName)) {\r\n return this.el.remove();\r\n }\r\n\r\n this.open();\r\n }\r\n\r\n addListeners() {\r\n this.dom.close.addEventListener('click', this.handleCloseClick.bind(this));\r\n }\r\n\r\n handleCloseClick() {\r\n this.close();\r\n }\r\n\r\n open() {\r\n this.el.style.display = 'block';\r\n anime({\r\n targets: this.el,\r\n height: {\r\n value: this.dom.inner.offsetHeight,\r\n duration: 200\r\n },\r\n opacity: {\r\n value: 1,\r\n duration: 100\r\n },\r\n easing: 'linear',\r\n complete: () => {\r\n this.el.style.height = 'auto';\r\n }\r\n });\r\n }\r\n\r\n close() {\r\n this.el.style.height = `${this.dom.inner.offsetHeight}px`;\r\n anime({\r\n targets: this.el,\r\n height: 0,\r\n easing: 'linear',\r\n duration: 200,\r\n complete: () => {\r\n Cookies.set(this.cookieName, this.id, {\r\n expires: parseInt(this.el.dataset.cookieExpiration, 10) || 1\r\n });\r\n this.el.remove();\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default AlertBanner;\r\n"],"sourceRoot":""}