{"version":3,"file":"PopUpWindow.js","names":["CONFIG","toolbar","scrollbars","resizable","center","top","left","width","height","formatProps","obj","props","key","push","join","winName","ts","Date","isCompleteUrl","PopUpWindow","url","config","_","defaults","popUp","init","conf","window","innerHeight","innerWidth","test","console","warn","open","encodeURI","close","openPopUpWindow","win"],"sources":["components/PopUpWindow.js"],"sourcesContent":["import _ from 'lodash';\r\n\r\nconst CONFIG = {\r\n toolbar: 0,\r\n scrollbars: 0,\r\n resizable: 0,\r\n center: true,\r\n top: 300,\r\n left: 300,\r\n width: 300,\r\n height: 300\r\n};\r\n\r\n//Break down config object in to string of csv's\r\nconst formatProps = function(obj) {\r\n var props = [];\r\n\r\n for(let key in obj) {\r\n props.push(key + '=' + obj[key]); \r\n }\r\n\r\n return props.join(',');\r\n};\r\n\r\n//Create a popup window indentifier\r\nconst winName = function(){\r\n var ts = +new Date();\r\n return 'win_' + ts;\r\n};\r\n\r\nconst isCompleteUrl = /https?:\\/\\/(?:[w]{3}(?:\\.[a-z-0-9]{1,})+(?:\\.[a-z-]{2,})+|(?!=w{3})[^w][a-z0-9-]*\\.[a-z]{2,})+[a-zA-Z0-9\\/]*(?:\\.[a-z]{2,})*(?:[\\?\\&][A-Za-z_]*\\=.*)*$/;\r\n\r\n\r\nexport class PopUpWindow {\r\n\r\n constructor(url, config = {}) {\r\n this.url = url;\r\n this.config = _.defaults(config, CONFIG);\r\n this.popUp = winName();\r\n this.init();\r\n }\r\n\r\n init() {\r\n if(this.config.center) {\r\n const conf = this.config;\r\n\r\n conf.top = (window.innerHeight / 2) - (conf.top / 2);\r\n conf.left = (window.innerWidth / 2) - (conf.left / 2);\r\n }\r\n }\r\n\r\n open(){\r\n if(!isCompleteUrl.test(this.url)){\r\n return console.warn('Malformed url, popup window will not open');\r\n }\r\n window.open(encodeURI(this.url), this.popUp, formatProps(this.config));\r\n }\r\n\r\n close(){\r\n this.popUp.close(this.popUp);\r\n }\r\n\r\n}\r\n\r\nexport var openPopUpWindow = function (url, config) {\r\n var win = new PopUpWindow(url, config);\r\n win.open();\r\n};"],"mappings":";;;;;;AAAA;AAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEvB,IAAMA,MAAM,GAAG;EACXC,OAAO,EAAE,CAAC;EACVC,UAAU,EAAE,CAAC;EACbC,SAAS,EAAE,CAAC;EACZC,MAAM,EAAE,IAAI;EACZC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE;AACZ,CAAC;;AAED;AACA,IAAMC,WAAW,GAAG,SAAdA,WAAW,CAAYC,GAAG,EAAE;EAC9B,IAAIC,KAAK,GAAG,EAAE;EAEd,KAAI,IAAIC,GAAG,IAAIF,GAAG,EAAE;IAChBC,KAAK,CAACE,IAAI,CAACD,GAAG,GAAG,GAAG,GAAGF,GAAG,CAACE,GAAG,CAAC,CAAC;EACpC;EAEA,OAAOD,KAAK,CAACG,IAAI,CAAC,GAAG,CAAC;AAC1B,CAAC;;AAED;AACA,IAAMC,OAAO,GAAG,SAAVA,OAAO,GAAa;EACtB,IAAIC,EAAE,GAAG,CAAC,IAAIC,IAAI,EAAE;EACpB,OAAO,MAAM,GAAGD,EAAE;AACtB,CAAC;AAED,IAAME,aAAa,GAAG,wJAAwJ;AAAC,IAGlKC,WAAW;EAEpB,qBAAYC,GAAG,EAAe;IAAA,IAAbC,MAAM,uEAAG,CAAC,CAAC;IAAA;IACxB,IAAI,CAACD,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,MAAM,GAAGC,kBAAC,CAACC,QAAQ,CAACF,MAAM,EAAErB,MAAM,CAAC;IACxC,IAAI,CAACwB,KAAK,GAAGT,OAAO,EAAE;IACtB,IAAI,CAACU,IAAI,EAAE;EACf;EAAC;IAAA;IAAA,OAED,gBAAO;MACH,IAAG,IAAI,CAACJ,MAAM,CAACjB,MAAM,EAAE;QACnB,IAAMsB,IAAI,GAAG,IAAI,CAACL,MAAM;QAExBK,IAAI,CAACrB,GAAG,GAAIsB,MAAM,CAACC,WAAW,GAAG,CAAC,GAAKF,IAAI,CAACrB,GAAG,GAAG,CAAE;QACpDqB,IAAI,CAACpB,IAAI,GAAIqB,MAAM,CAACE,UAAU,GAAG,CAAC,GAAKH,IAAI,CAACpB,IAAI,GAAG,CAAE;MACzD;IACJ;EAAC;IAAA;IAAA,OAED,gBAAM;MACF,IAAG,CAACY,aAAa,CAACY,IAAI,CAAC,IAAI,CAACV,GAAG,CAAC,EAAC;QAC7B,OAAOW,OAAO,CAACC,IAAI,CAAC,2CAA2C,CAAC;MACpE;MACAL,MAAM,CAACM,IAAI,CAACC,SAAS,CAAC,IAAI,CAACd,GAAG,CAAC,EAAE,IAAI,CAACI,KAAK,EAAEf,WAAW,CAAC,IAAI,CAACY,MAAM,CAAC,CAAC;IAC1E;EAAC;IAAA;IAAA,OAED,iBAAO;MACH,IAAI,CAACG,KAAK,CAACW,KAAK,CAAC,IAAI,CAACX,KAAK,CAAC;IAChC;EAAC;EAAA;AAAA;AAAA;AAIE,IAAIY,eAAe,GAAG,SAAlBA,eAAe,CAAahB,GAAG,EAAEC,MAAM,EAAE;EAChD,IAAIgB,GAAG,GAAG,IAAIlB,WAAW,CAACC,GAAG,EAAEC,MAAM,CAAC;EACtCgB,GAAG,CAACJ,IAAI,EAAE;AACd,CAAC;AAAC"}