UNPKG

vue-smart-app-banner

Version:
7 lines (6 loc) 27.1 kB
(function(o,b){typeof exports=="object"&&typeof module<"u"?module.exports=b(require("vue"),require("vue-demi")):typeof define=="function"&&define.amd?define(["vue","vue-demi"],b):(o=typeof globalThis<"u"?globalThis:o||self,o["vue-smart-app-banner"]=b(o.Vue,o.VueDemi))})(this,function(o,b){"use strict";/*! js-cookie v3.0.1 | MIT */function F(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)r[n]=t[n]}return r}var E={read:function(r){return r[0]==='"'&&(r=r.slice(1,-1)),r.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(r){return encodeURIComponent(r).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function A(r,e){function t(i,d,a){if(!(typeof document>"u")){a=F({},e,a),typeof a.expires=="number"&&(a.expires=new Date(Date.now()+a.expires*864e5)),a.expires&&(a.expires=a.expires.toUTCString()),i=encodeURIComponent(i).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var l="";for(var c in a)!a[c]||(l+="; "+c,a[c]!==!0&&(l+="="+a[c].split(";")[0]));return document.cookie=i+"="+r.write(d,i)+l}}function n(i){if(!(typeof document>"u"||arguments.length&&!i)){for(var d=document.cookie?document.cookie.split("; "):[],a={},l=0;l<d.length;l++){var c=d[l].split("="),f=c.slice(1).join("=");try{var p=decodeURIComponent(c[0]);if(a[p]=r.read(f,p),i===p)break}catch{}}return i?a[i]:a}}return Object.create({set:t,get:n,remove:function(i,d){t(i,"",F({},d,{expires:-1}))},withAttributes:function(i){return A(this.converter,F({},this.attributes,i))},withConverter:function(i){return A(F({},this.converter,i),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(r)}})}var k=A(E,{path:"/"});const R={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},N={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},m={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},h={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},S={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"};class s{static getFirstMatch(e,t){const n=t.match(e);return n&&n.length>0&&n[1]||""}static getSecondMatch(e,t){const n=t.match(e);return n&&n.length>1&&n[2]||""}static matchAndReturnConst(e,t,n){if(e.test(t))return n}static getWindowsVersionName(e){switch(e){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}static getMacOSVersionName(e){const t=e.split(".").splice(0,2).map(n=>parseInt(n,10)||0);if(t.push(0),t[0]===10)switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}static getAndroidVersionName(e){const t=e.split(".").splice(0,2).map(n=>parseInt(n,10)||0);if(t.push(0),!(t[0]===1&&t[1]<5)){if(t[0]===1&&t[1]<6)return"Cupcake";if(t[0]===1&&t[1]>=6)return"Donut";if(t[0]===2&&t[1]<2)return"Eclair";if(t[0]===2&&t[1]===2)return"Froyo";if(t[0]===2&&t[1]>2)return"Gingerbread";if(t[0]===3)return"Honeycomb";if(t[0]===4&&t[1]<1)return"Ice Cream Sandwich";if(t[0]===4&&t[1]<4)return"Jelly Bean";if(t[0]===4&&t[1]>=4)return"KitKat";if(t[0]===5)return"Lollipop";if(t[0]===6)return"Marshmallow";if(t[0]===7)return"Nougat";if(t[0]===8)return"Oreo";if(t[0]===9)return"Pie"}}static getVersionPrecision(e){return e.split(".").length}static compareVersions(e,t,n=!1){const i=s.getVersionPrecision(e),d=s.getVersionPrecision(t);let a=Math.max(i,d),l=0;const c=s.map([e,t],f=>{const p=a-s.getVersionPrecision(f),M=f+new Array(p+1).join(".0");return s.map(M.split("."),w=>new Array(20-w.length).join("0")+w).reverse()});for(n&&(l=a-Math.min(i,d)),a-=1;a>=l;){if(c[0][a]>c[1][a])return 1;if(c[0][a]===c[1][a]){if(a===l)return 0;a-=1}else if(c[0][a]<c[1][a])return-1}}static map(e,t){const n=[];let i;if(Array.prototype.map)return Array.prototype.map.call(e,t);for(i=0;i<e.length;i+=1)n.push(t(e[i]));return n}static find(e,t){let n,i;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(n=0,i=e.length;n<i;n+=1){const d=e[n];if(t(d,n))return d}}static assign(e,...t){const n=e;let i,d;if(Object.assign)return Object.assign(e,...t);for(i=0,d=t.length;i<d;i+=1){const a=t[i];typeof a=="object"&&a!==null&&Object.keys(a).forEach(c=>{n[c]=a[c]})}return e}static getBrowserAlias(e){return R[e]}static getBrowserTypeByAlias(e){return N[e]||""}}const u=/version\/(\d+(\.?_?\d+)+)/i,V=[{test:[/googlebot/i],describe(r){const e={name:"Googlebot"},t=s.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,r)||s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/opera/i],describe(r){const e={name:"Opera"},t=s.getFirstMatch(u,r)||s.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/opr\/|opios/i],describe(r){const e={name:"Opera"},t=s.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,r)||s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/SamsungBrowser/i],describe(r){const e={name:"Samsung Internet for Android"},t=s.getFirstMatch(u,r)||s.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/Whale/i],describe(r){const e={name:"NAVER Whale Browser"},t=s.getFirstMatch(u,r)||s.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/MZBrowser/i],describe(r){const e={name:"MZ Browser"},t=s.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,r)||s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/focus/i],describe(r){const e={name:"Focus"},t=s.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,r)||s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/swing/i],describe(r){const e={name:"Swing"},t=s.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,r)||s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/coast/i],describe(r){const e={name:"Opera Coast"},t=s.getFirstMatch(u,r)||s.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(r){const e={name:"Opera Touch"},t=s.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,r)||s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/yabrowser/i],describe(r){const e={name:"Yandex Browser"},t=s.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,r)||s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/ucbrowser/i],describe(r){const e={name:"UC Browser"},t=s.getFirstMatch(u,r)||s.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/Maxthon|mxios/i],describe(r){const e={name:"Maxthon"},t=s.getFirstMatch(u,r)||s.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/epiphany/i],describe(r){const e={name:"Epiphany"},t=s.getFirstMatch(u,r)||s.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/puffin/i],describe(r){const e={name:"Puffin"},t=s.getFirstMatch(u,r)||s.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/sleipnir/i],describe(r){const e={name:"Sleipnir"},t=s.getFirstMatch(u,r)||s.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/k-meleon/i],describe(r){const e={name:"K-Meleon"},t=s.getFirstMatch(u,r)||s.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/micromessenger/i],describe(r){const e={name:"WeChat"},t=s.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,r)||s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/qqbrowser/i],describe(r){const e={name:/qqbrowserlite/i.test(r)?"QQ Browser Lite":"QQ Browser"},t=s.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,r)||s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/msie|trident/i],describe(r){const e={name:"Internet Explorer"},t=s.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/\sedg\//i],describe(r){const e={name:"Microsoft Edge"},t=s.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/edg([ea]|ios)/i],describe(r){const e={name:"Microsoft Edge"},t=s.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/vivaldi/i],describe(r){const e={name:"Vivaldi"},t=s.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/seamonkey/i],describe(r){const e={name:"SeaMonkey"},t=s.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/sailfish/i],describe(r){const e={name:"Sailfish"},t=s.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,r);return t&&(e.version=t),e}},{test:[/silk/i],describe(r){const e={name:"Amazon Silk"},t=s.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/phantom/i],describe(r){const e={name:"PhantomJS"},t=s.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/slimerjs/i],describe(r){const e={name:"SlimerJS"},t=s.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(r){const e={name:"BlackBerry"},t=s.getFirstMatch(u,r)||s.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/(web|hpw)[o0]s/i],describe(r){const e={name:"WebOS Browser"},t=s.getFirstMatch(u,r)||s.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/bada/i],describe(r){const e={name:"Bada"},t=s.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/tizen/i],describe(r){const e={name:"Tizen"},t=s.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,r)||s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/qupzilla/i],describe(r){const e={name:"QupZilla"},t=s.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,r)||s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/firefox|iceweasel|fxios/i],describe(r){const e={name:"Firefox"},t=s.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/electron/i],describe(r){const e={name:"Electron"},t=s.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/MiuiBrowser/i],describe(r){const e={name:"Miui"},t=s.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/chromium/i],describe(r){const e={name:"Chromium"},t=s.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,r)||s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/chrome|crios|crmo/i],describe(r){const e={name:"Chrome"},t=s.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/GSA/i],describe(r){const e={name:"Google Search"},t=s.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test(r){const e=!r.test(/like android/i),t=r.test(/android/i);return e&&t},describe(r){const e={name:"Android Browser"},t=s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/playstation 4/i],describe(r){const e={name:"PlayStation 4"},t=s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/safari|applewebkit/i],describe(r){const e={name:"Safari"},t=s.getFirstMatch(u,r);return t&&(e.version=t),e}},{test:[/.*/i],describe(r){const e=/^(.*)\/(.*) /,t=/^(.*)\/(.*)[ \t]\((.*)/,i=r.search("\\(")!==-1?t:e;return{name:s.getFirstMatch(i,r),version:s.getSecondMatch(i,r)}}}],L=[{test:[/Roku\/DVP/],describe(r){const e=s.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,r);return{name:h.Roku,version:e}}},{test:[/windows phone/i],describe(r){const e=s.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,r);return{name:h.WindowsPhone,version:e}}},{test:[/windows /i],describe(r){const e=s.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,r),t=s.getWindowsVersionName(e);return{name:h.Windows,version:e,versionName:t}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(r){const e={name:h.iOS},t=s.getSecondMatch(/(Version\/)(\d[\d.]+)/,r);return t&&(e.version=t),e}},{test:[/macintosh/i],describe(r){const e=s.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,r).replace(/[_\s]/g,"."),t=s.getMacOSVersionName(e),n={name:h.MacOS,version:e};return t&&(n.versionName=t),n}},{test:[/(ipod|iphone|ipad)/i],describe(r){const e=s.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,r).replace(/[_\s]/g,".");return{name:h.iOS,version:e}}},{test(r){const e=!r.test(/like android/i),t=r.test(/android/i);return e&&t},describe(r){const e=s.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,r),t=s.getAndroidVersionName(e),n={name:h.Android,version:e};return t&&(n.versionName=t),n}},{test:[/(web|hpw)[o0]s/i],describe(r){const e=s.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,r),t={name:h.WebOS};return e&&e.length&&(t.version=e),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(r){const e=s.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,r)||s.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,r)||s.getFirstMatch(/\bbb(\d+)/i,r);return{name:h.BlackBerry,version:e}}},{test:[/bada/i],describe(r){const e=s.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,r);return{name:h.Bada,version:e}}},{test:[/tizen/i],describe(r){const e=s.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,r);return{name:h.Tizen,version:e}}},{test:[/linux/i],describe(){return{name:h.Linux}}},{test:[/CrOS/],describe(){return{name:h.ChromeOS}}},{test:[/PlayStation 4/],describe(r){const e=s.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,r);return{name:h.PlayStation4,version:e}}}],T=[{test:[/googlebot/i],describe(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe(r){const e=s.getFirstMatch(/(can-l01)/i,r)&&"Nova",t={type:m.mobile,vendor:"Huawei"};return e&&(t.model=e),t}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe(){return{type:m.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe(){return{type:m.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(){return{type:m.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe(){return{type:m.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe(){return{type:m.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe(){return{type:m.tablet}}},{test(r){const e=r.test(/ipod|iphone/i),t=r.test(/like (ipod|iphone)/i);return e&&!t},describe(r){const e=s.getFirstMatch(/(ipod|iphone)/i,r);return{type:m.mobile,vendor:"Apple",model:e}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe(){return{type:m.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe(){return{type:m.mobile}}},{test(r){return r.getBrowserName(!0)==="blackberry"},describe(){return{type:m.mobile,vendor:"BlackBerry"}}},{test(r){return r.getBrowserName(!0)==="bada"},describe(){return{type:m.mobile}}},{test(r){return r.getBrowserName()==="windows phone"},describe(){return{type:m.mobile,vendor:"Microsoft"}}},{test(r){const e=Number(String(r.getOSVersion()).split(".")[0]);return r.getOSName(!0)==="android"&&e>=3},describe(){return{type:m.tablet}}},{test(r){return r.getOSName(!0)==="android"},describe(){return{type:m.mobile}}},{test(r){return r.getOSName(!0)==="macos"},describe(){return{type:m.desktop,vendor:"Apple"}}},{test(r){return r.getOSName(!0)==="windows"},describe(){return{type:m.desktop}}},{test(r){return r.getOSName(!0)==="linux"},describe(){return{type:m.desktop}}},{test(r){return r.getOSName(!0)==="playstation 4"},describe(){return{type:m.tv}}},{test(r){return r.getOSName(!0)==="roku"},describe(){return{type:m.tv}}}],I=[{test(r){return r.getBrowserName(!0)==="microsoft edge"},describe(r){if(/\sedg\//i.test(r))return{name:S.Blink};const t=s.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,r);return{name:S.EdgeHTML,version:t}}},{test:[/trident/i],describe(r){const e={name:S.Trident},t=s.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test(r){return r.test(/presto/i)},describe(r){const e={name:S.Presto},t=s.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test(r){const e=r.test(/gecko/i),t=r.test(/like gecko/i);return e&&!t},describe(r){const e={name:S.Gecko},t=s.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}},{test:[/(apple)?webkit\/537\.36/i],describe(){return{name:S.Blink}}},{test:[/(apple)?webkit/i],describe(r){const e={name:S.WebKit},t=s.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,r);return t&&(e.version=t),e}}];class P{constructor(e,t=!1){if(e==null||e==="")throw new Error("UserAgent parameter can't be empty");this._ua=e,this.parsedResult={},t!==!0&&this.parse()}getUA(){return this._ua}test(e){return e.test(this._ua)}parseBrowser(){this.parsedResult.browser={};const e=s.find(V,t=>{if(typeof t.test=="function")return t.test(this);if(t.test instanceof Array)return t.test.some(n=>this.test(n));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.browser=e.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};const e=s.find(L,t=>{if(typeof t.test=="function")return t.test(this);if(t.test instanceof Array)return t.test.some(n=>this.test(n));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.os=e.describe(this.getUA())),this.parsedResult.os}getOSName(e){const{name:t}=this.getOS();return e?String(t).toLowerCase()||"":t||""}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(e=!1){const{type:t}=this.getPlatform();return e?String(t).toLowerCase()||"":t||""}parsePlatform(){this.parsedResult.platform={};const e=s.find(T,t=>{if(typeof t.test=="function")return t.test(this);if(t.test instanceof Array)return t.test.some(n=>this.test(n));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.platform=e.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}parseEngine(){this.parsedResult.engine={};const e=s.find(I,t=>{if(typeof t.test=="function")return t.test(this);if(t.test instanceof Array)return t.test.some(n=>this.test(n));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.engine=e.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return s.assign({},this.parsedResult)}satisfies(e){const t={};let n=0;const i={};let d=0;if(Object.keys(e).forEach(l=>{const c=e[l];typeof c=="string"?(i[l]=c,d+=1):typeof c=="object"&&(t[l]=c,n+=1)}),n>0){const l=Object.keys(t),c=s.find(l,p=>this.isOS(p));if(c){const p=this.satisfies(t[c]);if(p!==void 0)return p}const f=s.find(l,p=>this.isPlatform(p));if(f){const p=this.satisfies(t[f]);if(p!==void 0)return p}}if(d>0){const l=Object.keys(i),c=s.find(l,f=>this.isBrowser(f,!0));if(c!==void 0)return this.compareVersion(i[c])}}isBrowser(e,t=!1){const n=this.getBrowserName().toLowerCase();let i=e.toLowerCase();const d=s.getBrowserTypeByAlias(i);return t&&d&&(i=d.toLowerCase()),i===n}compareVersion(e){let t=[0],n=e,i=!1;const d=this.getBrowserVersion();if(typeof d=="string")return e[0]===">"||e[0]==="<"?(n=e.substr(1),e[1]==="="?(i=!0,n=e.substr(2)):t=[],e[0]===">"?t.push(1):t.push(-1)):e[0]==="="?n=e.substr(1):e[0]==="~"&&(i=!0,n=e.substr(1)),t.indexOf(s.compareVersions(d,n,i))>-1}isOS(e){return this.getOSName(!0)===String(e).toLowerCase()}isPlatform(e){return this.getPlatformType(!0)===String(e).toLowerCase()}isEngine(e){return this.getEngineName(!0)===String(e).toLowerCase()}is(e,t=!1){return this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)}some(e=[]){return e.some(t=>this.is(t))}}/*! * Bowser - a browser detector * https://github.com/lancedikson/bowser * MIT License | (c) Dustin Diaz 2012-2015 * MIT License | (c) Denis Demchenko 2015-2019 */class W{static getParser(e,t=!1){if(typeof e!="string")throw new Error("UserAgent should be a string");return new P(e,t)}static parse(e){return new P(e).getResult()}static get BROWSER_MAP(){return N}static get ENGINE_MAP(){return S}static get OS_MAP(){return h}static get PLATFORMS_MAP(){return m}}var O=(r=>(r[r.installed=0]="installed",r[r.dismissed=1]="dismissed",r))(O||{}),_=(r=>(r.ios="ios",r.android="android",r))(_||{}),x=(r=>(r.Android="android",r.iOS="ios",r))(x||{});const y={ios:{platform:_.ios,iconRels:["apple-touch-icon-precomposed","apple-touch-icon"],getStoreLink:r=>`https://itunes.apple.com/${r.appStoreLanguage}/app/id${r.iosAppId}?mt=8`,getAppId:r=>r.iosAppId,getIcon:r=>{var e;return((e=r.icons)==null?void 0:e.ios)||r.icon}},android:{platform:_.android,iconRels:["android-touch-icon","apple-touch-icon-precomposed","apple-touch-icon"],getStoreLink:r=>`http://play.google.com/store/apps/details?id=${r.androidAppId}`,getAppId:r=>r.androidAppId,getIcon:r=>{var e;return((e=r.icons)==null?void 0:e.android)||r.icon}}},z=function(r,e){return r.force?r.force:Object.keys(x).every(t=>t!==e)?null:y[x[e]].platform},D=function(r,e){return r==="ios"&&(e.getBrowserName()==="Mobile Safari"||e.getBrowserName()==="Safari"&&e.getPlatformType()==="mobile")&&parseInt(e.getOSVersion(),10)>=6},j=(r,e,t,n,i)=>({dismissClick:()=>{t(!1),i.daysHidden>0&&k.set(`${r.value}-smartbanner-closed`,"true",{path:"/",expires:new Date(Number(new Date)+i.daysHidden*1e3*60*60*24)}),n("onDismiss",e.value,r.value),n("onClose",e.value,r.value)},installClick:()=>{t(!1),i.daysReminder>0&&k.set(`${r.value}-smartbanner-installed`,"true",{path:"/",expires:new Date(Number(new Date)+i.daysReminder*1e3*60*60*24)}),n("onInstall",e.value,r.value),n("onClose",e.value,r.value)}}),q=r=>{const e=b.ref(!1),t=w=>{e.value=w},n=b.ref(_.android),i=w=>{n.value=w},d=b.computed(()=>y[n.value].getAppId(r)),a=b.computed(()=>y[n.value].getStoreLink(r)),l=b.computed(()=>r.theme||n.value),c=b.computed(()=>`${r.price[n.value]} - ${r.store[n.value]}`),f=b.computed(()=>{const w=y[n.value].getIcon(r);if(w)return w;{const g=y[n.value].iconRels;for(let v=0;v<g.length;v++){const B=window==null?void 0:window.document.querySelector(`link[rel="${g[v]}"]`);if(B)return B.getAttribute("href")}return""}}),p=b.computed(()=>`smartbanner smartbanner-${l.value}`),M=b.computed(()=>`background-image: url(${f.value})`);return{showBanner:e,platform:n,appId:d,storeLink:a,theme:l,inStoreText:c,icon:f,setPlatform:i,setShowBanner:t,mainContainerClass:p,iconStyle:M}},G=r=>{var C;const e=b.inject("smartAppBannerConfig"),{appId:t,inStoreText:n,platform:i,setPlatform:d,setShowBanner:a,showBanner:l,storeLink:c,iconStyle:f,mainContainerClass:p}=q(e),{dismissClick:M,installClick:w}=j(t,i,a,r,e),g={title:e.title,author:e.author,buttonText:e.button,showBanner:l,storeLink:c,inStoreText:n,dismissClick:M,installClick:w,iconStyle:f,mainContainerClass:p},v=W.getParser((C=window==null?void 0:window.navigator)==null?void 0:C.userAgent),B=z(e,v.getOSName());if(!B||(d(B),!e.store[i.value]))return g;const te=e.useNativeIosBannerForSafari&&D(i.value,v),re=(window==null?void 0:window.navigator).standalone;if(te||re)return g;const se=k.get(`${t.value}-smartbanner-closed`),ne=k.get(`${t.value}-smartbanner-installed`);return se?(r("onNotShown",i.value,t.value,O.dismissed),g):ne?(r("onNotShown",i.value,t.value,O.installed),g):(t.value&&(a(!0),r("onShown",i.value,t.value)),g)},Q=r=>(o.pushScopeId("data-v-9d9043c2"),r=r(),o.popScopeId(),r),$={class:"smartbanner-container"},H={class:"smartbanner-info"},U={class:"smartbanner-title"},Z={class:"smartbanner-author"},K={class:"smartbanner-instore"},J=["href"],X={class:"smartbanner-button-text"},Y=Q(()=>o.createElementVNode("p",null,null,-1)),ee=o.defineComponent({__name:"SmartAppBanner",emits:["onNotShown","onShown","onClose","onInstall","onDismiss"],setup(r,{emit:e}){const{author:t,buttonText:n,title:i,dismissClick:d,iconStyle:a,inStoreText:l,installClick:c,mainContainerClass:f,showBanner:p,storeLink:M}=G(e);return(w,g)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.unref(p)?(o.openBlock(),o.createElementBlock("div",{key:0,class:o.normalizeClass(o.unref(p)?"smartbanner-show":"")},[o.createElementVNode("div",{class:o.normalizeClass(o.unref(f))},[o.createElementVNode("div",$,[o.createElementVNode("span",{class:"smartbanner-close",onClick:g[0]||(g[0]=(...v)=>o.unref(d)&&o.unref(d)(...v))},"\xD7"),o.createElementVNode("span",{class:"smartbanner-icon",style:o.normalizeStyle(o.unref(a))},null,4),o.createElementVNode("div",H,[o.createElementVNode("div",U,o.toDisplayString(o.unref(i)),1),o.createElementVNode("div",Z,o.toDisplayString(o.unref(t)),1),o.createElementVNode("span",K,o.toDisplayString(o.unref(l)),1)]),o.createElementVNode("a",{href:o.unref(M),class:"smartbanner-button",onClick:g[1]||(g[1]=(...v)=>o.unref(c)&&o.unref(c)(...v))},[o.createElementVNode("span",X,o.toDisplayString(o.unref(n)),1)],8,J)])],2)],2)):o.createCommentVNode("v-if",!0),Y],64))}}),ie="";return((r,e)=>{const t=r.__vccOpts||r;for(const[n,i]of e)t[n]=i;return t})(ee,[["__scopeId","data-v-9d9043c2"],["__file","C:/Repositories/Vue Workspace/vue-smart-app-banner/src/SmartAppBanner.vue"]])});