starti.app 1.2.20-alpha.0 → 1.2.20-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -29,7 +29,9 @@ const utils_1 = require("./utils");
|
|
|
29
29
|
const flowLink_service_1 = require("./services/flowLink-service");
|
|
30
30
|
const untypedWindow = window;
|
|
31
31
|
untypedWindow.appIntegrationsAreReady = () => {
|
|
32
|
-
(0, flowLink_service_1.handleFlowLink)().
|
|
32
|
+
(0, flowLink_service_1.handleFlowLink)().then((result) => {
|
|
33
|
+
if (result == "redirected") // If the user has been redirected, we don't want to initialize the app yet, as the app will be reloaded
|
|
34
|
+
return;
|
|
33
35
|
app_1.App.setStartiappIsLoaded();
|
|
34
36
|
startiapp.dispatchEvent(new CustomEvent("ready"));
|
|
35
37
|
});
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export declare
|
|
1
|
+
export declare type HandleFlowLinkResult = "redirected" | "nothing";
|
|
2
|
+
export declare const handleFlowLink: () => Promise<HandleFlowLinkResult>;
|
|
@@ -50,21 +50,24 @@ const initialAppStart = (brandId, resolve, reject) => {
|
|
|
50
50
|
}).then((response) => response.json()).then((data) => {
|
|
51
51
|
if (data === null || data === void 0 ? void 0 : data.path) {
|
|
52
52
|
location.href = data.path;
|
|
53
|
+
resolve("redirected");
|
|
53
54
|
}
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
else {
|
|
56
|
+
resolve("nothing");
|
|
57
|
+
}
|
|
58
|
+
}).catch((_) => { resolve("nothing"); });
|
|
56
59
|
return;
|
|
57
60
|
};
|
|
58
61
|
const navigateToLinkPayload = (brandId, resolve, reject) => {
|
|
59
62
|
var _a;
|
|
60
63
|
const urlParams = new URLSearchParams(window.location.search);
|
|
61
64
|
if (!urlParams.has("fromFlowLink")) {
|
|
62
|
-
resolve();
|
|
65
|
+
resolve("nothing");
|
|
63
66
|
return;
|
|
64
67
|
}
|
|
65
68
|
const linkId = (_a = urlParams.get("link")) !== null && _a !== void 0 ? _a : "";
|
|
66
69
|
if (!linkId) {
|
|
67
|
-
|
|
70
|
+
resolve("nothing");
|
|
68
71
|
return;
|
|
69
72
|
}
|
|
70
73
|
const body = JSON.stringify({
|
|
@@ -81,8 +84,11 @@ const navigateToLinkPayload = (brandId, resolve, reject) => {
|
|
|
81
84
|
const restOfQuery = (0, utils_1.excludeQueryParams)(urlParams, ["fromFlowLink", "link"]);
|
|
82
85
|
if (data === null || data === void 0 ? void 0 : data.path) {
|
|
83
86
|
location.href = `${data.path}${restOfQuery ? `?${restOfQuery}` : ""}`;
|
|
87
|
+
resolve("redirected");
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
resolve("nothing");
|
|
84
91
|
}
|
|
85
|
-
|
|
86
|
-
}).catch((error) => { reject(error); });
|
|
92
|
+
}).catch((_) => { resolve("nothing"); });
|
|
87
93
|
return;
|
|
88
94
|
};
|
package/package.json
CHANGED
package/umd/main.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see main.js.LICENSE.txt */
|
|
2
|
-
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(self,(()=>{return e={466:function(e){e.exports=function(){"use strict";var e=Object.prototype.toString,t=Array.isArray||function(t){return"[object Array]"===e.call(t)};function n(e){return"function"==typeof e}function r(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function i(e,t){return null!=e&&"object"==typeof e&&t in e}var o=RegExp.prototype.test;var s=/\S/;function a(e){return!function(e,t){return o.call(e,t)}(s,e)}var c={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};var l=/\s*/,p=/\s+/,d=/\s*=/,u=/\s*\}/,h=/#|\^|\/|>|\{|&|=|!/;function g(e){this.string=e,this.tail=e,this.pos=0}function v(e,t){this.view=e,this.cache={".":this.view},this.parent=t}function f(){this.templateCache={_cache:{},set:function(e,t){this._cache[e]=t},get:function(e){return this._cache[e]},clear:function(){this._cache={}}}}g.prototype.eos=function(){return""===this.tail},g.prototype.scan=function(e){var t=this.tail.match(e);if(!t||0!==t.index)return"";var n=t[0];return this.tail=this.tail.substring(n.length),this.pos+=n.length,n},g.prototype.scanUntil=function(e){var t,n=this.tail.search(e);switch(n){case-1:t=this.tail,this.tail="";break;case 0:t="";break;default:t=this.tail.substring(0,n),this.tail=this.tail.substring(n)}return this.pos+=t.length,t},v.prototype.push=function(e){return new v(e,this)},v.prototype.lookup=function(e){var t,r,o,s=this.cache;if(s.hasOwnProperty(e))t=s[e];else{for(var a,c,l,p=this,d=!1;p;){if(e.indexOf(".")>0)for(a=p.view,c=e.split("."),l=0;null!=a&&l<c.length;)l===c.length-1&&(d=i(a,c[l])||(r=a,o=c[l],null!=r&&"object"!=typeof r&&r.hasOwnProperty&&r.hasOwnProperty(o))),a=a[c[l++]];else a=p.view[e],d=i(p.view,e);if(d){t=a;break}p=p.parent}s[e]=t}return n(t)&&(t=t.call(this.view)),t},f.prototype.clearCache=function(){void 0!==this.templateCache&&this.templateCache.clear()},f.prototype.parse=function(e,n){var i=this.templateCache,o=e+":"+(n||m.tags).join(":"),s=void 0!==i,c=s?i.get(o):void 0;return null==c&&(c=function(e,n){if(!e)return[];var i,o,s,c=!1,v=[],f=[],y=[],w=!1,S=!1,I="",b=0;function C(){if(w&&!S)for(;y.length;)delete f[y.pop()];else y=[];w=!1,S=!1}function P(e){if("string"==typeof e&&(e=e.split(p,2)),!t(e)||2!==e.length)throw new Error("Invalid tags: "+e);i=new RegExp(r(e[0])+"\\s*"),o=new RegExp("\\s*"+r(e[1])),s=new RegExp("\\s*"+r("}"+e[1]))}P(n||m.tags);for(var T,E,k,A,x,N,_=new g(e);!_.eos();){if(T=_.pos,k=_.scanUntil(i))for(var F=0,R=k.length;F<R;++F)a(A=k.charAt(F))?(y.push(f.length),I+=A):(S=!0,c=!0,I+=" "),f.push(["text",A,T,T+1]),T+=1,"\n"===A&&(C(),I="",b=0,c=!1);if(!_.scan(i))break;if(w=!0,E=_.scan(h)||"name",_.scan(l),"="===E?(k=_.scanUntil(d),_.scan(d),_.scanUntil(o)):"{"===E?(k=_.scanUntil(s),_.scan(u),_.scanUntil(o),E="&"):k=_.scanUntil(o),!_.scan(o))throw new Error("Unclosed tag at "+_.pos);if(x=">"==E?[E,k,T,_.pos,I,b,c]:[E,k,T,_.pos],b++,f.push(x),"#"===E||"^"===E)v.push(x);else if("/"===E){if(!(N=v.pop()))throw new Error('Unopened section "'+k+'" at '+T);if(N[1]!==k)throw new Error('Unclosed section "'+N[1]+'" at '+T)}else"name"===E||"{"===E||"&"===E?S=!0:"="===E&&P(k)}if(C(),N=v.pop())throw new Error('Unclosed section "'+N[1]+'" at '+_.pos);return function(e){for(var t,n=[],r=n,i=[],o=0,s=e.length;o<s;++o)switch((t=e[o])[0]){case"#":case"^":r.push(t),i.push(t),r=t[4]=[];break;case"/":i.pop()[5]=t[2],r=i.length>0?i[i.length-1][4]:n;break;default:r.push(t)}return n}(function(e){for(var t,n,r=[],i=0,o=e.length;i<o;++i)(t=e[i])&&("text"===t[0]&&n&&"text"===n[0]?(n[1]+=t[1],n[3]=t[3]):(r.push(t),n=t));return r}(f))}(e,n),s&&i.set(o,c)),c},f.prototype.render=function(e,t,n,r){var i=this.getConfigTags(r),o=this.parse(e,i),s=t instanceof v?t:new v(t,void 0);return this.renderTokens(o,s,n,e,r)},f.prototype.renderTokens=function(e,t,n,r,i){for(var o,s,a,c="",l=0,p=e.length;l<p;++l)a=void 0,"#"===(s=(o=e[l])[0])?a=this.renderSection(o,t,n,r,i):"^"===s?a=this.renderInverted(o,t,n,r,i):">"===s?a=this.renderPartial(o,t,n,i):"&"===s?a=this.unescapedValue(o,t):"name"===s?a=this.escapedValue(o,t,i):"text"===s&&(a=this.rawValue(o)),void 0!==a&&(c+=a);return c},f.prototype.renderSection=function(e,r,i,o,s){var a=this,c="",l=r.lookup(e[1]);if(l){if(t(l))for(var p=0,d=l.length;p<d;++p)c+=this.renderTokens(e[4],r.push(l[p]),i,o,s);else if("object"==typeof l||"string"==typeof l||"number"==typeof l)c+=this.renderTokens(e[4],r.push(l),i,o,s);else if(n(l)){if("string"!=typeof o)throw new Error("Cannot use higher-order sections without the original template");null!=(l=l.call(r.view,o.slice(e[3],e[5]),(function(e){return a.render(e,r,i,s)})))&&(c+=l)}else c+=this.renderTokens(e[4],r,i,o,s);return c}},f.prototype.renderInverted=function(e,n,r,i,o){var s=n.lookup(e[1]);if(!s||t(s)&&0===s.length)return this.renderTokens(e[4],n,r,i,o)},f.prototype.indentPartial=function(e,t,n){for(var r=t.replace(/[^ \t]/g,""),i=e.split("\n"),o=0;o<i.length;o++)i[o].length&&(o>0||!n)&&(i[o]=r+i[o]);return i.join("\n")},f.prototype.renderPartial=function(e,t,r,i){if(r){var o=this.getConfigTags(i),s=n(r)?r(e[1]):r[e[1]];if(null!=s){var a=e[6],c=e[5],l=e[4],p=s;0==c&&l&&(p=this.indentPartial(s,l,a));var d=this.parse(p,o);return this.renderTokens(d,t,r,p,i)}}},f.prototype.unescapedValue=function(e,t){var n=t.lookup(e[1]);if(null!=n)return n},f.prototype.escapedValue=function(e,t,n){var r=this.getConfigEscape(n)||m.escape,i=t.lookup(e[1]);if(null!=i)return"number"==typeof i&&r===m.escape?String(i):r(i)},f.prototype.rawValue=function(e){return e[1]},f.prototype.getConfigTags=function(e){return t(e)?e:e&&"object"==typeof e?e.tags:void 0},f.prototype.getConfigEscape=function(e){return e&&"object"==typeof e&&!t(e)?e.escape:void 0};var m={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(e){y.templateCache=e},get templateCache(){return y.templateCache}},y=new f;return m.clearCache=function(){return y.clearCache()},m.parse=function(e,t){return y.parse(e,t)},m.render=function(e,n,r,i){if("string"!=typeof e)throw new TypeError('Invalid template! Template should be a "string" but "'+((t(o=e)?"array":typeof o)+'" was given as the first argument for mustache#render(template, view, partials)'));var o;return y.render(e,n,r,i)},m.escape=function(e){return String(e).replace(/[&<>"'`=\/]/g,(function(e){return c[e]}))},m.Scanner=g,m.Context=v,m.Writer=f,m}()},715:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventTargetWithType=void 0;class n extends EventTarget{addEventListener(e,t,n){super.addEventListener(e,t,n)}removeEventListener(e,t,n){super.removeEventListener(e,t,n)}}t.EventTargetWithType=n},752:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.App=void 0;const r=n(715),i=n(900);class o extends r.EventTargetWithType{constructor(){super(...arguments),this.startiappIsLoaded=!1}get appIntegration(){return(0,i.getIntegration)("AppIntegration")}setStartiappIsLoaded(){this.startiappIsLoaded=!0}isStartiappLoaded(){return this.startiappIsLoaded}setAppUrl(e){this.appIntegration.setAppUrl(e)}resetAppUrl(){this.appIntegration.resetAppUrl()}openExternalBrowser(e){this.appIntegration.openBrowser(e)}brandId(){return new Promise(((e,t)=>{this.resolveBrandId=e,this.appIntegration.brandId()}))}requestReview(){this.appIntegration.requestReview()}deviceId(){return new Promise(((e,t)=>{this.resolveDeviceId=e,this.appIntegration.deviceId()}))}version(){return new Promise(((e,t)=>{this.resolveVersion=e,this.appIntegration.version()}))}getInternalDomains(){return new Promise(((e,t)=>{this.resolveGetInternalDomains=e,this.appIntegration.getInternalDomains()}))}addInternalDomain(e){this.appIntegration.addInternalDomain(e)}removeInternalDomain(e){this.appIntegration.removeInternalDomain(e)}showStatusBar(){if(void 0===this.appIntegration.showStatusBar)return console.warn("showStatusBar not implemented, please update your app to the latest version");this.appIntegration.showStatusBar()}hideStatusBar(){if(void 0===this.appIntegration.hideStatusBar)return console.warn("hideStatusBar not implemented, please update your app to the latest version");this.appIntegration.hideStatusBar()}setStatusBar(e){if(void 0===this.appIntegration.setStatusBar)return console.warn("setStatusBar not implemented, please update your app to the latest version");this.appIntegration.setStatusBar(e)}setSpinner(e){if(void 0===this.appIntegration.setNavigationSpinner)return console.warn("setNavigationSpinner not implemented, please update your app to the latest version");this.appIntegration.setNavigationSpinner({color:e.color,delay:e.afterMilliseconds,show:e.show,excludedDomains:e.excludedDomains})}hideSpinner(){if(!this.appIntegration.hideNavigationSpinner)return console.warn("hideNavigationSpinner not implemented, please update your app to the latest version");this.appIntegration.hideNavigationSpinner()}showSpinner(e){if(!this.appIntegration.showNavigationSpinner)return console.warn("showNavigationSpinner not implemented, please update your app to the latest version");this.appIntegration.showNavigationSpinner({color:null==e?void 0:e.color,delay:null==e?void 0:e.afterMilliseconds,show:null==e?void 0:e.show,excludedDomains:null==e?void 0:e.excludedDomains})}setCommonScript(e){this.appIntegration.setCommonScript(e)}setSafeAreaBackgroundColor(e){return new Promise(((t,n)=>{this.resolveSetSafeAreaBackgroundColor=t,this.appIntegration.setSafeAreaBackgroundColor(e)}))}disableScreenRotation(){this.appIntegration.disableScreenRotation()}enableScreenRotation(){this.appIntegration.enableScreenRotation()}addExternalDomains(...e){let t=e.map((e=>({pattern:e.source,flags:e.flags})));this.appIntegration.addExternalDomains(t)}removeExternalDomains(...e){let t=e.map((e=>({pattern:e.source,flags:e.flags})));this.appIntegration.removeExternalDomains(t)}getExternalDomains(){return new Promise(((e,t)=>{this.resolveExternalDomains=e,this.appIntegration.getExternalDomains()}))}getExternalDomainsResult(e){this.resolveExternalDomains(e),this.resolveExternalDomains=null}appInForegroundEventRecievedEvent(){this.dispatchEvent(new CustomEvent("appInForeground"))}brandIdResult(e){this.resolveBrandId(e),this.resolveBrandId=null}versionResult(e){this.resolveVersion(e),this.resolveVersion=null}deviceIdResult(e){this.resolveDeviceId(e),this.resolveDeviceId=null}setSafeAreaBackgroundColorResult(e){this.resolveSetSafeAreaBackgroundColor(e),this.resolveSetSafeAreaBackgroundColor=null}navigatingPageEvent(e){this.dispatchEvent(new CustomEvent("navigatingPage",{detail:e}))}getInternalDomainsResult(e){this.resolveGetInternalDomains(e),this.resolveGetInternalDomains=null}addDomainToHistoryExclusion(e){this.appIntegration.addExcludedFromHistoryDomain(e)}removeDomainFromHistoryExclusion(e){this.appIntegration.removeExcludedFromHistoryDomain(e)}addPatternToHistoryExclusion(e){this.appIntegration.addExcludedFromHistoryPattern({pattern:e.source,flags:e.flags})}removePatternFromHistoryExclusion(e){this.appIntegration.removeExcludedFromHistoryPattern({pattern:e.source,flags:e.flags})}}t.App=new o},495:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ClientUser=void 0;const i=n(715),o=n(913),s=n(607);class a extends i.EventTargetWithType{get userId(){return this._userId||localStorage.getItem("startiapp-clientUserId")||null}set userId(e){this._userId=e,localStorage.setItem("startiapp-clientUserId",e)}deleteUser(e){return r(this,void 0,void 0,(function*(){const t=this.userId;if(!t)throw new Error("No user ID");const n=(null==e?void 0:e.prompt)||"Er du sikker på, at du vil slette slette din bruger i appen?",r=(null==e?void 0:e.confirmation)||"Vi har registreret dit ønske og vender tilbage med en bekræftelse.";if(!confirm(n))return;const i={brandId:yield s.default.App.brandId(),userId:t},a=yield fetch(o.baseUrl+"/App-requestAccountDeletion",{body:JSON.stringify(i),headers:{"Content-Type":"application/json"},method:"POST"});if(!a.ok)throw console.warn("Failed to request user deletion",i),new Error(`Failed to request user deletion: Firebase returned statuscode ${a.status}`);alert(r)}))}registerId(e){return r(this,void 0,void 0,(function*(){this.userId=e;const[t,n,r]=yield Promise.all([s.default.App.brandId(),s.default.App.deviceId(),s.default.PushNotification.getToken()]);if(!r||0===r.length)throw console.warn("Failed to register logged in client user",e,"No FCM token"),new Error(`Failed to register logged in client user ${e}: No FCM token`);const i={brandId:t,clientUserId:e,deviceId:n,fcmToken:r},a=yield fetch(o.baseUrl+"/ClientUser-registerId",{body:JSON.stringify(i),headers:{"Content-Type":"application/json"},method:"POST"});if(!a.ok)throw console.warn("Failed to register logged in client user",e,i),new Error(`Failed to register logged in client user ${e}: Firebase returned statuscode ${a.status}`)}))}unregisterId(){return r(this,void 0,void 0,(function*(){this.userId="";const[e,t]=yield Promise.all([s.default.App.brandId(),s.default.App.deviceId()]),n={brandId:e,deviceId:t},r=yield fetch(o.baseUrl+"/ClientUser-unregisterId",{body:JSON.stringify(n),headers:{"Content-Type":"application/json"},method:"POST"});if(!r.ok)throw console.warn("Failed to unregister logged in client user",n),new Error(`Failed to unregister logged in client user: Firebase returned statuscode ${r.status}`)}))}}t.ClientUser=new a},913:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.googleStorageBucket=t.styleTagId=t.baseUrl=void 0,t.baseUrl="https://europe-west3-startiapp-admin-1fac2.cloudfunctions.net",t.styleTagId="startiapp-styling",t.googleStorageBucket="startiapp-admin-1fac2.appspot.com"},900:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getIntegration=void 0;let n={};t.getIntegration=function(e){if(n[e])return n[e];let t=window[e],r=0;for(;!t&&r<5;)t=window.parent[e],r++;if(!t)throw new Error(`Could not find integration ${e}`);return n[e]=t,t}},607:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const i=n(752),o=n(495),s=n(900),a=n(154),c=n(807),l=n(725),p=n(720),d=n(133),u=n(415),h=n(803),g=n(491),v=n(666),f=n(236),m=n(240),y=n(716),w=n(984),S=n(593),I=n(767),b=window;b.appIntegrationsAreReady=()=>{(0,I.handleFlowLink)().finally((()=>{i.App.setStartiappIsLoaded(),P.dispatchEvent(new CustomEvent("ready"))}))},b.startiappDevice=l.Device,b.startiappApp=i.App,b.startiappUser=o.ClientUser,b.startiappQrScanner=u.QrScanner,b.startiappPushNotification=d.PushNotification,b.startiappNFC=p.NFC,b.startiappShare=h.Share,b.startiappNetwork=w.Network,b.startiappBiometric=c.Biometrics,b.startiappTrigger=g.Trigger,b.appErrorEvent=e=>{P.dispatchEvent(new CustomEvent("error",{detail:e}))};class C extends EventTarget{constructor(){super(...arguments),this.App=i.App,this.Device=l.Device,this.Biometrics=c.Biometrics,this.User=o.ClientUser,this.NfcScanner=p.NFC,this.PushNotification=d.PushNotification,this.QrScanner=u.QrScanner,this.Share=h.Share,this.Network=w.Network,this.Trigger=g.Trigger}get appIntegration(){return(0,s.getIntegration)("AppIntegration")}initialize(e){this.isRunningInApp()&&("function"==typeof gtag&>ag("set","user_properties",{startiapp:"true"}),y.AppUI.setOptions(e),this.appIntegration.webAppIsReady())}isRunningInApp(){return(0,S.isRunningInApp)()}addEventListener(e,t,n){if("ready"==e&&i.App.isStartiappLoaded()){const e=new CustomEvent("ready");"handleEvent"in t?t.handleEvent(e):t(e)}super.addEventListener(e,t,n)}removeEventListener(e,t,n){super.removeEventListener(e,t,n)}}const P=new C;if(document.body)T();else{const e=new MutationObserver((()=>T(e)));e.observe(document.documentElement,{childList:!0})}function T(e){if(!document.body)return;if((new v.SmartBanner).initialize(),P.isRunningInApp()?document.body.setAttribute("startiapp",""):document.body.removeAttribute("startiapp"),!document.head)return;const t=document.createElement("style");if(t.innerHTML="body:not([startiapp]) .startiapp-hide-in-browser,body:not([startiapp]) .startiapp-show-in-app,body[startiapp] .startiapp-hide-in-app,body[startiapp] .startiapp-show-in-browser{display:none!important}",document.head.appendChild(t),P.isRunningInApp()){const e={width:"device-width","viewport-fit":"cover"},t=document.querySelector("meta[name=viewport]");if(t){const n=(0,m.parseViewportMeta)(t.content);t.content=(0,m.serializeViewportMeta)(Object.assign(Object.assign({},n),e))}else{const t=document.createElement("meta");t.name="viewport",t.content=(0,m.serializeViewportMeta)(e),document.head.appendChild(t)}}e&&e.disconnect()}t.default=P,b.startiapp=P;const E=new f.TaskStepper;E.addTask(a.checkIfAppVersionIsClosed),P.addEventListener("ready",(()=>r(void 0,void 0,void 0,(function*(){yield E.start()}))))},154:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.checkIfAppVersionIsClosed=void 0;const i=n(752),o=n(900),s=new(n(718).ClosedVersionChecker);function a(){return r(this,void 0,void 0,(function*(){const e=yield s.getAvailableVersionsDocument();/iPad|iPhone|iPod/.test(navigator.userAgent)?window.location.href="https://apps.apple.com/lt/app/"+e.iosStoreId:i.App.openExternalBrowser("https://play.google.com/store/apps/details?id="+e.androidStoreId)}))}t.checkIfAppVersionIsClosed=function(e){return r(this,void 0,void 0,(function*(){if(!(yield s.isCurrentVersionClosed()))return e();yield function(){return r(this,void 0,void 0,(function*(){const e=yield function(){return r(this,void 0,void 0,(function*(){const e=document.createElement("div");e.style.height="100vh",e.style.maxWidth="100vw",e.style.paddingInline="10px",e.style.display="flex",e.style.justifyContent="center",e.style.alignItems="center",e.style.flexDirection="column";const t=document.createElement("h1");t.style.fontSize="18px",t.style.fontFamily="sans-serif",t.style.textAlign="center",t.textContent="Der er kommet en opgradering til appen, som er nødvendig for at fortsætte.";const n=document.createElement("button");return n.style.marginTop="15px",n.style.fontSize="18px",n.style.fontFamily="sans-serif",n.style.textAlign="center",n.style.padding="15px 30px",n.style.borderRadius="100vh",n.style.background="#444",n.style.color="white",n.style.border="none",n.textContent="Opgrader appen",n.onclick=a,e.appendChild(t),e.appendChild(n),e}))}();document.body.innerHTML="",document.body.appendChild(e),(0,o.getIntegration)("AppIntegration").webAppIsReady()}))}()}))}},807:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Biometrics=void 0;const r=n(715),i=n(900);class o extends r.EventTargetWithType{constructor(){super(...arguments),this.SECURED_CONTENT_KEY="STARTI_APP_BIOMETRIC_CONTENT",this.SECURED_LOGIN_KEY="STARTI_APP_BIOMETRIC_LOGIN_CONTENT",this.defaultScanTitle="Prove you have fingers!",this.defaultScanReason="Can't let you in if you don't."}get biometricIntegration(){return(0,i.getIntegration)("BiometricIntegration")}scan(e=this.defaultScanTitle,t=this.defaultScanReason){return new Promise(((n,r)=>{this.resolveScan=n,this.biometricIntegration.startScanning(e,t)}))}getAuthenticationType(){return new Promise(((e,t)=>{this.resolveAuthType=e,this.biometricIntegration.getAuthenticationType()}))}setSecuredContent(e){this.biometricIntegration.setSecuredContent(this.SECURED_CONTENT_KEY,JSON.stringify(e))}getSecuredContent(e=this.defaultScanTitle,t=this.defaultScanReason){return new Promise(((n,r)=>{this.resolveGetContent=n,this.biometricIntegration.getSecuredContent(this.SECURED_CONTENT_KEY,e,t)}))}hasSecuredContent(){return new Promise(((e,t)=>{this.resolveHasSecureContent=e,this.biometricIntegration.hasSecuredContent(this.SECURED_CONTENT_KEY)}))}removeSecuredContent(){this.biometricIntegration.removeSecuredContent(this.SECURED_CONTENT_KEY)}setUsernameAndPassword(e,t){this.biometricIntegration.setSecuredContent(this.SECURED_LOGIN_KEY,JSON.stringify({username:e,password:t}))}removeUsernameAndPassword(){this.biometricIntegration.removeSecuredContent(this.SECURED_LOGIN_KEY)}hasUsernameAndPassword(){return new Promise(((e,t)=>{this.resolveHasUsernameAndPassword=e,this.biometricIntegration.hasSecuredContent(this.SECURED_LOGIN_KEY)}))}getUsernameAndPassword(e=this.defaultScanTitle,t=this.defaultScanReason){return new Promise(((n,r)=>{this.resolveGetUsernamePassword=n,this.biometricIntegration.getSecuredContent(this.SECURED_LOGIN_KEY,e,t)}))}handleResolveGetUsernamePassword(e){try{const t=JSON.parse(e.result);this.resolveGetUsernamePassword(t)}catch(e){this.resolveGetUsernamePassword(null)}this.resolveGetUsernamePassword=null}hasSecuredContentResult({result:e,key:t}){if(t===this.SECURED_LOGIN_KEY)return this.resolveHasUsernameAndPassword(e),void(this.resolveHasUsernameAndPassword=null);this.resolveHasSecureContent(e),this.resolveHasSecureContent=null}getAuthenticationTypeResult(e){this.resolveAuthType(e),this.resolveAuthType=null}startScanningResult(e){this.resolveScan(e),this.resolveScan=null}getSecuredContentResult(e){if(e.key!==this.SECURED_LOGIN_KEY){try{const t=JSON.parse(e.result);this.resolveGetContent(t)}catch(t){this.resolveGetContent(e.result)}this.resolveGetContent=null}else this.handleResolveGetUsernamePassword(e)}}t.Biometrics=new o},725:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Device=void 0;const r=n(715),i=n(900);class o extends r.EventTargetWithType{get deviceIntegration(){return(0,i.getIntegration)("DeviceIntegration")}startAccelerometer(){this.deviceIntegration.startAccelerometer()}stopAccelerometer(){this.deviceIntegration.stopAccelerometer()}isAccelerometerStarted(){return new Promise(((e,t)=>{this.deviceIntegration.isAccelerometerStarted(),this.resolveIsAccelerometerStarted=e}))}isAccelerometerStartedResult(e){this.resolveIsAccelerometerStarted(e),this.resolveIsAccelerometerStarted=null}onShakeEvent(){this.dispatchEvent(new CustomEvent("shake"))}}t.Device=new o},720:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NFC=void 0;const r=n(715),i=n(900);class o extends r.EventTargetWithType{get NFCIntegration(){return(0,i.getIntegration)("NFCIntegration")}isNfcSupported(){return new Promise(((e,t)=>{this.resolveNFCSupported=e,this.NFCIntegration.isNFCSupported()}))}startNfcScanner(){return new Promise((e=>{this.resolveStartNFCReader=e,this.NFCIntegration.startListening()}))}stopNfcScanner(){return new Promise((e=>{this.resolveStopNFCReader=e,this.NFCIntegration.stopListening()}))}nfcTagScannedEvent(e){const t=new CustomEvent("nfcTagScanned",{detail:e});this.dispatchEvent(t)}stopListeningResult(e){this.resolveStopNFCReader(e),this.resolveStopNFCReader=null}isNFCSupportedResult(e){this.resolveNFCSupported(e),this.resolveNFCSupported=null}startListeningResult(e){this.resolveStartNFCReader(e),this.resolveStartNFCReader=null}}t.NFC=new o},133:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.PushNotification=t.Topic=void 0;const i=n(466),o=n(715),s=n(913),a=n(900),c=n(607);class l extends o.EventTargetWithType{get pushNotificationIntegration(){return(0,a.getIntegration)("PushNotificationIntegration")}requestAccess(){return r(this,void 0,void 0,(function*(){return new Promise(((e,t)=>{this.resolveRequestAccess=e,this.pushNotificationIntegration.requestAccess()}))}))}getToken(){return new Promise(((e,t)=>{this.resolveFCMToken=e,this.pushNotificationIntegration.getFCMToken()}))}getTopics(){return r(this,void 0,void 0,(function*(){const e={brand:yield c.default.App.brandId()},t=yield fetch(s.baseUrl+"/Topics-getTopics",{body:JSON.stringify(e),method:"POST",headers:{"Content-Type":"application/json"}});if(!t.ok)throw new Error("Failed to get topics");const n=yield t.json(),r=this.getSubscribedTopics();return n.map((({name:e,topic:t})=>new p(t,e,r.includes(t))))}))}renderTopics(){return r(this,void 0,void 0,(function*(){const e=yield this.getTopics(),t=document.getElementById("startiapp-topics-template");if(!t||"SCRIPT"!==t.tagName)throw new Error("Template element not found");if("x-tmpl-mustache"!==t.type)throw new Error('Template element must have type="x-tmpl-mustache"');const n=document.getElementById("startiapp-topics-target");if(!n||"DIV"!==n.tagName)throw new Error("Template target element not found");const o=t.innerHTML,s=(0,i.render)(o,{topics:e});n.innerHTML=s,n.querySelectorAll('input[type="checkbox"]').forEach((e=>{e.dataset.startiappTopic&&e.addEventListener("change",(t=>r(this,void 0,void 0,(function*(){if(!(yield this.requestAccess()))return t.target.checked=!1,void t.preventDefault();e.checked?this.subscribeToTopics([e.dataset.startiappTopic]):this.unsubscribeFromTopics([e.dataset.startiappTopic])}))))}))}))}subscribeToTopics(e){return r(this,void 0,void 0,(function*(){if(!(yield c.default.PushNotification.requestAccess()))throw console.warn("Push notification permissions denied"),new Error("Push notification permissions denied");const[t,n,r]=yield Promise.all([c.default.PushNotification.getToken(),c.default.App.brandId(),c.default.App.deviceId()]),i=[];e.forEach((e=>{const o={brandId:n,topic:e,fcmToken:t,deviceId:r},a=fetch(s.baseUrl+"/Topics-subscribeToTopic",{body:JSON.stringify(o),method:"POST",headers:{"Content-Type":"application/json"}});i.push(a)})),(yield Promise.all(i)).forEach(((t,n)=>{t.ok?this.updateSubscribedTopics(e[n],!0):console.warn("Failed to sign up to topic",n,e[n])}))}))}unsubscribeFromTopics(e){return r(this,void 0,void 0,(function*(){const[t,n,r]=yield Promise.all([c.default.PushNotification.getToken(),c.default.App.brandId(),c.default.App.deviceId()]),i=[];e.forEach((e=>{const o={brandId:n,topic:e,fcmToken:t,deviceId:r},a=fetch(s.baseUrl+"/Topics-unsubscribeFromTopic",{body:JSON.stringify(o),method:"POST",headers:{"Content-Type":"application/json"}});i.push(a)})),(yield Promise.all(i)).forEach(((t,n)=>{t.ok?this.updateSubscribedTopics(e[n],!1):console.warn("Failed to unsubscribe from topic",n,e[n])}))}))}requestAccessResult(e){this.resolveRequestAccess(e),this.resolveRequestAccess=null}getFCMTokenResult(e){this.resolveFCMToken(e),this.resolveFCMToken=null}tokenReceivedEvent(e){this.dispatchEvent(new CustomEvent("tokenRefreshed",{detail:e}))}notificationReceivedEvent(e){this.dispatchEvent(new CustomEvent("notificationReceived",{detail:e}))}firebasePushNotificationTopicsUnsubscribeResult(e){}firebasePushNotificationSubscribeToTopicsResult(e){}updateSubscribedTopics(e,t){const n=localStorage.getItem("startiapp-subscribed-topics")?JSON.parse(localStorage.getItem("startiapp-subscribed-topics")):[];t?n.includes(e)||n.push(e):n.includes(e)&&n.splice(n.indexOf(e),1),localStorage.setItem("startiapp-subscribed-topics",JSON.stringify(n))}getSubscribedTopics(){return localStorage.getItem("startiapp-subscribed-topics")?JSON.parse(localStorage.getItem("startiapp-subscribed-topics")):[]}}class p{constructor(e,t,n=!1){this.topic=e,this.name=t,this.subscribed=n}toJSON(){return{topic:this.topic,name:this.name,subscribed:this.subscribed}}subscribe(){t.PushNotification.subscribeToTopics([this.topic])}unsubscribe(){t.PushNotification.unsubscribeFromTopics([this.topic])}}t.Topic=p,t.PushNotification=new l},415:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QrScanner=void 0;const r=n(715),i=n(900);class o extends r.EventTargetWithType{get qrScannerIntegration(){return(0,i.getIntegration)("QrScannerIntegration")}scan(){return new Promise(((e,t)=>{this.resolveScan=e,this.qrScannerIntegration.startQrCodeScanner()}))}isCameraAccessGranted(){return new Promise(((e,t)=>{this.resolveCameraAccessGranted=e,this.qrScannerIntegration.isCameraAccessGranted()}))}requestCameraAccess(){return new Promise(((e,t)=>{this.resolveRequestCameraAccess=e,this.qrScannerIntegration.requestCameraAccess()}))}requestCameraAccessResult(e){this.resolveRequestCameraAccess(e),this.resolveRequestCameraAccess=null}startQrCodeScannerResult(e){this.resolveScan(e),this.resolveScan=null}isCameraAccessGrantedResult(e){this.resolveCameraAccessGranted(e),this.resolveCameraAccessGranted=null}}t.QrScanner=new o},803:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Share=void 0;const r=n(715),i=n(900);class o extends r.EventTargetWithType{get shareIntegration(){return(0,i.getIntegration)("ShareIntegration")}shareFile(e,t){return new Promise(((n,r)=>{this.resolveShareFile=n,this.shareIntegration.shareFile(e,t)}))}shareText(e){return new Promise(((t,n)=>{this.resolveShareText=t,this.shareIntegration.shareText(e)}))}downloadFile(e,t){return new Promise(((n,r)=>{this.resolveDownloadText=n,this.shareIntegration.downloadFile(e,t)}))}shareFileResult(e){this.resolveShareFile(e),this.resolveShareFile=null}shareTextResult(e){this.resolveShareText(e),this.resolveShareText=null}downloadFileResult(e){this.resolveDownloadText(e),this.resolveDownloadText=null}}t.Share=new o},491:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.Trigger=void 0;const i=n(607),o=n(715),s=n(913);class a extends o.EventTargetWithType{trackEvent(e,t){return r(this,void 0,void 0,(function*(){const n=yield i.default.App.brandId(),r=yield i.default.App.deviceId(),o={brandId:n,event:{id:e,customProperties:t},identifierType:"installationId",identifier:r};try{yield fetch(s.baseUrl+"/Trigger-trackEvent",{body:JSON.stringify(o),method:"POST",headers:{"Content-Type":"application/json"}})}catch(e){}}))}trackUserProperty(e,t){return r(this,void 0,void 0,(function*(){const n={[e]:t},r={brandId:yield i.default.App.brandId(),customFields:n,identifierType:"installationId",identifier:yield i.default.App.deviceId()};try{yield fetch(s.baseUrl+"/Trigger-trackUserProperty",{body:JSON.stringify(r),method:"POST",headers:{"Content-Type":"application/json"}})}catch(e){}}))}}t.Trigger=new a},718:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ClosedVersionChecker=void 0;const i=n(752),o=n(913),s=n(703);t.ClosedVersionChecker=class{constructor(){this.documentData=null}getAvailableVersionsUrl(){return r(this,void 0,void 0,(function*(){const e=yield i.App.brandId();return`https://storage.googleapis.com/${o.googleStorageBucket}/availableVersions/${encodeURIComponent(e)}.json`}))}getAvailableVersionsDocument(){return r(this,void 0,void 0,(function*(){if(null!=this.documentData)return this.documentData;const e=yield this.getAvailableVersionsUrl(),t=yield fetch(e),n=yield t.json();return this.documentData=n,n}))}getCurrentVersionSemver(){return r(this,void 0,void 0,(function*(){const e=yield i.App.version();return new s.SemVer(e)}))}getLatestVersionSemvar(e){return e.reduce(((e,t)=>t.isGreaterThan(e)?t:e),new s.SemVer("0.0.0"))}isCurrentVersionClosed(){return r(this,void 0,void 0,(function*(){const e=yield this.getCurrentVersionSemver(),t=yield this.getAvailableVersionsDocument();if(t.versions.includes(e.toString()))return!1;const n=t.versions.map((e=>new s.SemVer(e))),r=this.getLatestVersionSemvar(n);return!e.isGreaterThanOrEqualTo(r)}))}}},703:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SemVer=void 0,t.SemVer=class{constructor(e){if(this.version=e,!this.isValidVersion(e))throw new Error(`Invalid version: ${e}`);const t=e.split(".");this.major=parseInt(t[0]),this.minor=parseInt(t[1]),this.patch=parseInt(t[2])}isValidVersion(e){const t=e.split(".");return!(t.length<3||isNaN(parseInt(t[0]))||isNaN(parseInt(t[1]))||isNaN(parseInt(t[2])))}isGreaterThan(e){return this.major>e.major||!(this.major<e.major)&&(this.minor>e.minor||!(this.minor<e.minor)&&(this.patch>e.patch||(this.patch,e.patch,!1)))}isGreaterThanOrEqualTo(e){return this.isGreaterThan(e)||this.isEqualTo(e)}isEqualTo(e){return this.major===e.major&&this.minor===e.minor&&this.patch===e.patch}toString(){return this.version}}},666:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.SmartBanner=void 0;const i=n(913),o=n(593);t.SmartBanner=class{constructor(){this.marginTop="72px"}getHostDomain(){const e=window.location.host.split(".");return e.slice(e.length-2).join(".")}getSmartBannerDataUrl(){const e=this.getHostDomain();return`https://storage.googleapis.com/${i.googleStorageBucket}/smartbanner/${encodeURIComponent(e)}.json`}getSmartBannerData(){return r(this,void 0,void 0,(function*(){try{const e=yield fetch(this.getSmartBannerDataUrl());return yield e.json()}catch(e){return e instanceof SyntaxError||console.error("SmartBanner error",e),{enabled:!1,appName:"",appIcon:"",appleAppId:"",googlePlayAppId:"",backgroundColor:void 0,textColor:void 0}}}))}getSmartBannerClosed(){const e=localStorage.getItem("startiapp-smart-banner-closed-at");return!!(e&&Date.now()-parseInt(e)<6048e5)}setSmartBannerClosed(e=!1){localStorage.setItem("startiapp-smart-banner-closed-at",e?Date.now()+2592e6+"":Date.now().toString())}initialize(){var e,t;return r(this,void 0,void 0,(function*(){if((0,o.isRunningInApp)())return;const n=(()=>{const e=navigator.userAgent;return/android/i.test(e)?"Android":/iPad|iPhone|iPod/.test(e)?"iOS":"Other"})();if("Other"===n)return;const r=document.querySelector("html");if(!r)return;if(this.getSmartBannerClosed())return;const i=yield this.getSmartBannerData();if(!i.enabled)return;const s=null!==(e=i.backgroundColor)&&void 0!==e?e:"#f2f1f6",a=null!==(t=i.textColor)&&void 0!==t?t:"#000";r.style.setProperty("margin-top",this.marginTop,"important");const c=document.createElement("div");switch(c.id="startiapp-smart-banner-wrapper",c.style.setProperty("position","fixed","important"),c.style.setProperty("top","0","important"),c.style.setProperty("left","0","important"),c.style.setProperty("right","0","important"),c.style.setProperty("height",this.marginTop,"important"),c.style.setProperty("width","100%","important"),c.style.setProperty("background-color",s,"important"),c.style.setProperty("z-index","999999999","important"),c.style.setProperty("color",a,"important"),c.style.setProperty("stroke",a,"important"),n){case"iOS":yield this.createIosBannerContent(i,c);break;case"Android":yield this.createAndroidBannerContent(i,c);break;default:return void console.warn("Unknown platform",n)}document.body.appendChild(c)}))}createIosBannerContent(e,t){return r(this,void 0,void 0,(function*(){this.createContent(e,`https://apps.apple.com/us/app/id${e.appleAppId}`,"App Store",t)}))}createAndroidBannerContent(e,t){return r(this,void 0,void 0,(function*(){this.createContent(e,`market://details?id=${e.googlePlayAppId}`,"Play Store",t)}))}createContent(e,t,n,i){var o,s;return r(this,void 0,void 0,(function*(){0===(null===(o=e.appDetails)||void 0===o?void 0:o.length)&&(e.appDetails=void 0);const r=document.createElement("div");r.style.setProperty("display","grid","important"),r.id="startiapp-smart-banner-grid",r.style.setProperty("grid-template-columns","30px auto auto","important"),r.style.setProperty("height","100%","important"),r.style.setProperty("width","100%","important"),r.style.setProperty("font-family","sans-serif","important");const a=document.createElement("div");a.id="startiapp-smart-banner-close-button",a.style.setProperty("grid-column","1"),a.style.setProperty("grid-row","1"),a.style.setProperty("height","100%"),a.style.setProperty("width","100%"),a.style.setProperty("display","flex"),a.style.setProperty("justify-content","center"),a.style.setProperty("align-items","center"),a.onclick=()=>{var e,t;i.remove(),null===(e=document.querySelector("html"))||void 0===e||e.style.setProperty("transition","margin-top 0.3s ease-in-out"),null===(t=document.querySelector("html"))||void 0===t||t.style.removeProperty("margin-top"),this.setSmartBannerClosed()};const c=document.createElementNS("http://www.w3.org/2000/svg","svg");c.setAttribute("id","close-smart-banner"),c.setAttribute("style","height: 16px; width: 16px;"),c.setAttribute("viewBox","0 0 24 24"),c.setAttribute("fill","none"),c.setAttribute("xmlns","http://www.w3.org/2000/svg"),a.style.setProperty("stroke","inherit"),c.innerHTML='\n\t\t\t<path d="M18 6L6 18" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n\t\t\t<path d="M6 6L18 18" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n\t\t',a.appendChild(c);const l=document.createElement("div");l.id="startiapp-smart-banner-image",l.style.setProperty("grid-column","2"),l.style.setProperty("grid-row","1"),l.style.setProperty("height","100%"),l.style.setProperty("width","100%"),l.style.setProperty("display","flex"),l.style.setProperty("justify-content","start"),l.style.setProperty("align-items","center");const p=document.createElement("img");p.id="startiapp-smart-banner-app-icon",p.src=e.appIcon,p.style.setProperty("height","54px"),p.style.setProperty("width","54px"),p.style.setProperty("object-fit","scale-down");const d=document.createElement("div");d.id="startiapp-smart-banner-app-name-container",d.style.setProperty("display","flex"),d.style.setProperty("flex-direction","column");const u=document.createElement("span");u.id="startiapp-smart-banner-app-name",u.style.setProperty("margin-left","8px"),u.style.setProperty("font-size","16px"),u.style.setProperty("font-weight","500"),u.textContent=e.appName;const h=document.createElement("span");h.id="startiapp-smart-banner-app-details",h.style.setProperty("margin-left","8px"),h.style.setProperty("font-size","16px"),h.style.setProperty("font-weight","500"),h.textContent=null!==(s=e.appDetails)&&void 0!==s?s:`GET — on the ${n}`,d.appendChild(u),d.appendChild(h),l.appendChild(p),l.appendChild(d);const g=document.createElement("div");g.style.setProperty("grid-column","3"),g.style.setProperty("grid-row","1"),g.style.setProperty("height","100%"),g.style.setProperty("width","100%"),g.style.setProperty("display","flex"),g.style.setProperty("justify-content","center"),g.style.setProperty("align-items","center");const v=document.createElement("a");v.href=t,v.target="_blank",v.textContent="Vis",v.style.setProperty("text-decoration","none"),v.style.setProperty("color","inherit"),v.style.setProperty("font-size","16px"),v.style.setProperty("font-weight","500"),g.appendChild(v),r.appendChild(a),r.appendChild(l),r.appendChild(g),i.appendChild(r)}))}}},236:function(e,t){"use strict";var n=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.TaskStepper=void 0,t.TaskStepper=class{constructor(){this.tasks=[]}addTask(e){this.tasks.push(e)}start(){return n(this,void 0,void 0,(function*(){yield this.runTasks(this.tasks)}))}runTasks(e){return n(this,void 0,void 0,(function*(){if(0===e.length)return;const t=e.shift();if(null!=t)try{yield t((()=>this.runTasks(e)))}catch(t){this.runTasks(e)}}))}}},240:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.serializeViewportMeta=t.parseViewportMeta=void 0,t.parseViewportMeta=function(e){const t={},n=e.split(",");for(const e of n){const[n,r]=e.trim().split("=");switch(n.trim()){case"width":case"height":case"initial-scale":case"minimum-scale":case"maximum-scale":case"user-scalable":case"viewport-fit":t[n.trim()]=r.trim()}}return t},t.serializeViewportMeta=function(e){const t=[];for(const[n,r]of Object.entries(e))r&&t.push(`${n}=${r}`);return t.join(", ")}},984:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Network=void 0;const r=n(715),i=n(900);class o extends r.EventTargetWithType{get networkIntegration(){return(0,i.getIntegration)("NetworkIntegration")}sendUdpBroadcast(e,t){return new Promise(((n,r)=>{this.resolveSendUdpBroadcast=n,this.networkIntegration.sendUdpBroadcast(e.toString(),t)}))}currentConnectionState(){return new Promise(((e,t)=>{this.resolveCurrentConnectionState=e,this.networkIntegration.currentConnectionState()}))}startListeningForUdpPackets(e){return new Promise(((t,n)=>{this.resolveStartListeningForUdpPackets=t,this.networkIntegration.startListeningForUdpPackets(e.toString())}))}stopListeningForUdpPackets(){return new Promise(((e,t)=>{this.resolveStopListeningForUdpPackets=e,this.networkIntegration.stopListeningForUdpPackets()}))}startListeningForConnectionChanges(){return new Promise(((e,t)=>{this.resolveStartListeningForConnectionChanges=e,this.networkIntegration.startListeningForConnectionChanges()}))}stopListeningForConnectionChanges(){return new Promise(((e,t)=>{this.resolveStopListeningForConnectionChanges=e,this.networkIntegration.stopListeningForConnectionChanges()}))}sendUdpBroadcastResult(e){this.resolveSendUdpBroadcast(e),this.resolveSendUdpBroadcast=null}currentConnectionStateResult(e){this.resolveCurrentConnectionState(e),this.resolveCurrentConnectionState=null}startListeningForUdpPacketsResult(e){this.resolveStartListeningForUdpPackets(e),this.resolveStartListeningForUdpPackets=null}stopListeningForUdpPacketsResult(e){this.resolveStopListeningForUdpPackets(e),this.resolveStopListeningForUdpPackets=null}startListeningForConnectionChangesResult(e){this.resolveStartListeningForConnectionChanges(e),this.resolveStartListeningForConnectionChanges=null}stopListeningForConnectionChangesResult(e){this.resolveStopListeningForConnectionChanges(e),this.resolveStopListeningForConnectionChanges=null}udpPacketReceivedEvent(e){const t=new CustomEvent("udpPacketReceived",{detail:e});this.dispatchEvent(t)}connectionStateChangedEvent(e){const t=new CustomEvent("connectionStateChanged",{detail:e});this.dispatchEvent(t)}}t.Network=new o},767:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.handleFlowLink=void 0;const i=n(593),o=n(752),s=n(913),a={getFingerprintPayloadEndpoint:`${s.baseUrl}/FlowLink-getFingerprintPayload`,getLinkPayloadEndpoint:`${s.baseUrl}/FlowLink-getLinkPayload`};t.handleFlowLink=()=>new Promise(((e,t)=>{setTimeout((()=>r(void 0,void 0,void 0,(function*(){const n="false"!==localStorage.getItem("flowLink_initial_download"),r=yield o.App.brandId();n&&!window.location.search.includes("fromFlowLink")?c(r,e,t):l(r,e,t),localStorage.setItem("flowLink_initial_download","false")}))),1)}));const c=(e,t,n)=>{const r=JSON.stringify({screenHeight:window.screen.height,screenWidth:window.screen.width,brandId:e});fetch(a.getFingerprintPayloadEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:r}).then((e=>e.json())).then((e=>{(null==e?void 0:e.path)&&(location.href=e.path),t()})).catch((e=>{n(e)}))},l=(e,t,n)=>{var r;const o=new URLSearchParams(window.location.search);if(!o.has("fromFlowLink"))return void t();const s=null!==(r=o.get("link"))&&void 0!==r?r:"";if(!s)return void n("No payload found");const c=JSON.stringify({linkId:s,brandId:e});fetch(a.getLinkPayloadEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:c}).then((e=>e.json())).then((e=>{const n=(0,i.excludeQueryParams)(o,["fromFlowLink","link"]);(null==e?void 0:e.path)&&(location.href=`${e.path}${n?`?${n}`:""}`),t()})).catch((e=>{n(e)}))}},716:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AppUI=void 0;const r=n(607),i=n(913),o=n(240);t.AppUI=new class{constructor(){this.options={allowDrag:!1,allowHighligt:!1,allowZoom:!1,allowScrollBounce:!1,allowRotation:!1,spinner:{show:!1},statusBar:{removeSafeArea:!0,hideText:!1,safeAreaBackgroundColor:"#000000",darkContent:!1}}}setOptions(e){this.options=Object.assign(Object.assign({},this.options),e),this.updateUI()}getOptions(){return this.options}updateViewportMeta(e){const t=document.querySelector("meta[name=viewport]");if(t){const n=(0,o.parseViewportMeta)(t.content);t.content=(0,o.serializeViewportMeta)(Object.assign(Object.assign({},n),e))}else{const t=document.createElement("meta");t.setAttribute("name","viewport"),t.setAttribute("content",(0,o.serializeViewportMeta)(e)),document.head.appendChild(t)}}updateUI(){this.styleString="";const e=document.getElementById(i.styleTagId);e&&e.remove();const t=Array.from(document.getElementsByTagName("img")),n=Array.from(document.getElementsByTagName("a"));this.options.allowDrag?[...t,...n].forEach((e=>{e.removeAttribute("draggable")})):[...t,...n].forEach((e=>{e.setAttribute("draggable","false")})),this.options.allowHighligt||(this.styleString+="\n body {\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n user-select: none;\n }\n "),this.options.allowScrollBounce||(this.styleString+="\n html {\n overscroll-behavior: none;\n }\n "),this.options.allowZoom||(this.styleString+="\n body {\n touch-action: pan-x pan-y;\n }\n ",this.updateViewportMeta({"user-scalable":"no"}));const o=document.createElement("style");o.textContent=this.styleString,o.setAttribute("id",i.styleTagId),document.body.appendChild(o),r.default.App.setStatusBar(this.options.statusBar),r.default.App.setSpinner(this.options.spinner),this.options.allowRotation?r.default.App.enableScreenRotation():r.default.App.disableScreenRotation()}}},593:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.excludeQueryParams=t.isRunningInApp=void 0,t.isRunningInApp=function(){return navigator.userAgent.toLowerCase().indexOf("starti.app")>-1},t.excludeQueryParams=(e,t)=>{const n=new URLSearchParams;for(const[r,i]of e.entries())t.includes(r)||n.append(r,i);return n.toString()}}},t={},function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}(607);var e,t}));
|
|
2
|
+
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(self,(()=>{return e={466:function(e){e.exports=function(){"use strict";var e=Object.prototype.toString,t=Array.isArray||function(t){return"[object Array]"===e.call(t)};function n(e){return"function"==typeof e}function r(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function i(e,t){return null!=e&&"object"==typeof e&&t in e}var o=RegExp.prototype.test;var s=/\S/;function a(e){return!function(e,t){return o.call(e,t)}(s,e)}var c={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};var l=/\s*/,p=/\s+/,d=/\s*=/,u=/\s*\}/,h=/#|\^|\/|>|\{|&|=|!/;function g(e){this.string=e,this.tail=e,this.pos=0}function v(e,t){this.view=e,this.cache={".":this.view},this.parent=t}function f(){this.templateCache={_cache:{},set:function(e,t){this._cache[e]=t},get:function(e){return this._cache[e]},clear:function(){this._cache={}}}}g.prototype.eos=function(){return""===this.tail},g.prototype.scan=function(e){var t=this.tail.match(e);if(!t||0!==t.index)return"";var n=t[0];return this.tail=this.tail.substring(n.length),this.pos+=n.length,n},g.prototype.scanUntil=function(e){var t,n=this.tail.search(e);switch(n){case-1:t=this.tail,this.tail="";break;case 0:t="";break;default:t=this.tail.substring(0,n),this.tail=this.tail.substring(n)}return this.pos+=t.length,t},v.prototype.push=function(e){return new v(e,this)},v.prototype.lookup=function(e){var t,r,o,s=this.cache;if(s.hasOwnProperty(e))t=s[e];else{for(var a,c,l,p=this,d=!1;p;){if(e.indexOf(".")>0)for(a=p.view,c=e.split("."),l=0;null!=a&&l<c.length;)l===c.length-1&&(d=i(a,c[l])||(r=a,o=c[l],null!=r&&"object"!=typeof r&&r.hasOwnProperty&&r.hasOwnProperty(o))),a=a[c[l++]];else a=p.view[e],d=i(p.view,e);if(d){t=a;break}p=p.parent}s[e]=t}return n(t)&&(t=t.call(this.view)),t},f.prototype.clearCache=function(){void 0!==this.templateCache&&this.templateCache.clear()},f.prototype.parse=function(e,n){var i=this.templateCache,o=e+":"+(n||m.tags).join(":"),s=void 0!==i,c=s?i.get(o):void 0;return null==c&&(c=function(e,n){if(!e)return[];var i,o,s,c=!1,v=[],f=[],y=[],w=!1,S=!1,I="",b=0;function C(){if(w&&!S)for(;y.length;)delete f[y.pop()];else y=[];w=!1,S=!1}function P(e){if("string"==typeof e&&(e=e.split(p,2)),!t(e)||2!==e.length)throw new Error("Invalid tags: "+e);i=new RegExp(r(e[0])+"\\s*"),o=new RegExp("\\s*"+r(e[1])),s=new RegExp("\\s*"+r("}"+e[1]))}P(n||m.tags);for(var T,E,k,A,x,N,_=new g(e);!_.eos();){if(T=_.pos,k=_.scanUntil(i))for(var F=0,R=k.length;F<R;++F)a(A=k.charAt(F))?(y.push(f.length),I+=A):(S=!0,c=!0,I+=" "),f.push(["text",A,T,T+1]),T+=1,"\n"===A&&(C(),I="",b=0,c=!1);if(!_.scan(i))break;if(w=!0,E=_.scan(h)||"name",_.scan(l),"="===E?(k=_.scanUntil(d),_.scan(d),_.scanUntil(o)):"{"===E?(k=_.scanUntil(s),_.scan(u),_.scanUntil(o),E="&"):k=_.scanUntil(o),!_.scan(o))throw new Error("Unclosed tag at "+_.pos);if(x=">"==E?[E,k,T,_.pos,I,b,c]:[E,k,T,_.pos],b++,f.push(x),"#"===E||"^"===E)v.push(x);else if("/"===E){if(!(N=v.pop()))throw new Error('Unopened section "'+k+'" at '+T);if(N[1]!==k)throw new Error('Unclosed section "'+N[1]+'" at '+T)}else"name"===E||"{"===E||"&"===E?S=!0:"="===E&&P(k)}if(C(),N=v.pop())throw new Error('Unclosed section "'+N[1]+'" at '+_.pos);return function(e){for(var t,n=[],r=n,i=[],o=0,s=e.length;o<s;++o)switch((t=e[o])[0]){case"#":case"^":r.push(t),i.push(t),r=t[4]=[];break;case"/":i.pop()[5]=t[2],r=i.length>0?i[i.length-1][4]:n;break;default:r.push(t)}return n}(function(e){for(var t,n,r=[],i=0,o=e.length;i<o;++i)(t=e[i])&&("text"===t[0]&&n&&"text"===n[0]?(n[1]+=t[1],n[3]=t[3]):(r.push(t),n=t));return r}(f))}(e,n),s&&i.set(o,c)),c},f.prototype.render=function(e,t,n,r){var i=this.getConfigTags(r),o=this.parse(e,i),s=t instanceof v?t:new v(t,void 0);return this.renderTokens(o,s,n,e,r)},f.prototype.renderTokens=function(e,t,n,r,i){for(var o,s,a,c="",l=0,p=e.length;l<p;++l)a=void 0,"#"===(s=(o=e[l])[0])?a=this.renderSection(o,t,n,r,i):"^"===s?a=this.renderInverted(o,t,n,r,i):">"===s?a=this.renderPartial(o,t,n,i):"&"===s?a=this.unescapedValue(o,t):"name"===s?a=this.escapedValue(o,t,i):"text"===s&&(a=this.rawValue(o)),void 0!==a&&(c+=a);return c},f.prototype.renderSection=function(e,r,i,o,s){var a=this,c="",l=r.lookup(e[1]);if(l){if(t(l))for(var p=0,d=l.length;p<d;++p)c+=this.renderTokens(e[4],r.push(l[p]),i,o,s);else if("object"==typeof l||"string"==typeof l||"number"==typeof l)c+=this.renderTokens(e[4],r.push(l),i,o,s);else if(n(l)){if("string"!=typeof o)throw new Error("Cannot use higher-order sections without the original template");null!=(l=l.call(r.view,o.slice(e[3],e[5]),(function(e){return a.render(e,r,i,s)})))&&(c+=l)}else c+=this.renderTokens(e[4],r,i,o,s);return c}},f.prototype.renderInverted=function(e,n,r,i,o){var s=n.lookup(e[1]);if(!s||t(s)&&0===s.length)return this.renderTokens(e[4],n,r,i,o)},f.prototype.indentPartial=function(e,t,n){for(var r=t.replace(/[^ \t]/g,""),i=e.split("\n"),o=0;o<i.length;o++)i[o].length&&(o>0||!n)&&(i[o]=r+i[o]);return i.join("\n")},f.prototype.renderPartial=function(e,t,r,i){if(r){var o=this.getConfigTags(i),s=n(r)?r(e[1]):r[e[1]];if(null!=s){var a=e[6],c=e[5],l=e[4],p=s;0==c&&l&&(p=this.indentPartial(s,l,a));var d=this.parse(p,o);return this.renderTokens(d,t,r,p,i)}}},f.prototype.unescapedValue=function(e,t){var n=t.lookup(e[1]);if(null!=n)return n},f.prototype.escapedValue=function(e,t,n){var r=this.getConfigEscape(n)||m.escape,i=t.lookup(e[1]);if(null!=i)return"number"==typeof i&&r===m.escape?String(i):r(i)},f.prototype.rawValue=function(e){return e[1]},f.prototype.getConfigTags=function(e){return t(e)?e:e&&"object"==typeof e?e.tags:void 0},f.prototype.getConfigEscape=function(e){return e&&"object"==typeof e&&!t(e)?e.escape:void 0};var m={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(e){y.templateCache=e},get templateCache(){return y.templateCache}},y=new f;return m.clearCache=function(){return y.clearCache()},m.parse=function(e,t){return y.parse(e,t)},m.render=function(e,n,r,i){if("string"!=typeof e)throw new TypeError('Invalid template! Template should be a "string" but "'+((t(o=e)?"array":typeof o)+'" was given as the first argument for mustache#render(template, view, partials)'));var o;return y.render(e,n,r,i)},m.escape=function(e){return String(e).replace(/[&<>"'`=\/]/g,(function(e){return c[e]}))},m.Scanner=g,m.Context=v,m.Writer=f,m}()},715:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventTargetWithType=void 0;class n extends EventTarget{addEventListener(e,t,n){super.addEventListener(e,t,n)}removeEventListener(e,t,n){super.removeEventListener(e,t,n)}}t.EventTargetWithType=n},752:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.App=void 0;const r=n(715),i=n(900);class o extends r.EventTargetWithType{constructor(){super(...arguments),this.startiappIsLoaded=!1}get appIntegration(){return(0,i.getIntegration)("AppIntegration")}setStartiappIsLoaded(){this.startiappIsLoaded=!0}isStartiappLoaded(){return this.startiappIsLoaded}setAppUrl(e){this.appIntegration.setAppUrl(e)}resetAppUrl(){this.appIntegration.resetAppUrl()}openExternalBrowser(e){this.appIntegration.openBrowser(e)}brandId(){return new Promise(((e,t)=>{this.resolveBrandId=e,this.appIntegration.brandId()}))}requestReview(){this.appIntegration.requestReview()}deviceId(){return new Promise(((e,t)=>{this.resolveDeviceId=e,this.appIntegration.deviceId()}))}version(){return new Promise(((e,t)=>{this.resolveVersion=e,this.appIntegration.version()}))}getInternalDomains(){return new Promise(((e,t)=>{this.resolveGetInternalDomains=e,this.appIntegration.getInternalDomains()}))}addInternalDomain(e){this.appIntegration.addInternalDomain(e)}removeInternalDomain(e){this.appIntegration.removeInternalDomain(e)}showStatusBar(){if(void 0===this.appIntegration.showStatusBar)return console.warn("showStatusBar not implemented, please update your app to the latest version");this.appIntegration.showStatusBar()}hideStatusBar(){if(void 0===this.appIntegration.hideStatusBar)return console.warn("hideStatusBar not implemented, please update your app to the latest version");this.appIntegration.hideStatusBar()}setStatusBar(e){if(void 0===this.appIntegration.setStatusBar)return console.warn("setStatusBar not implemented, please update your app to the latest version");this.appIntegration.setStatusBar(e)}setSpinner(e){if(void 0===this.appIntegration.setNavigationSpinner)return console.warn("setNavigationSpinner not implemented, please update your app to the latest version");this.appIntegration.setNavigationSpinner({color:e.color,delay:e.afterMilliseconds,show:e.show,excludedDomains:e.excludedDomains})}hideSpinner(){if(!this.appIntegration.hideNavigationSpinner)return console.warn("hideNavigationSpinner not implemented, please update your app to the latest version");this.appIntegration.hideNavigationSpinner()}showSpinner(e){if(!this.appIntegration.showNavigationSpinner)return console.warn("showNavigationSpinner not implemented, please update your app to the latest version");this.appIntegration.showNavigationSpinner({color:null==e?void 0:e.color,delay:null==e?void 0:e.afterMilliseconds,show:null==e?void 0:e.show,excludedDomains:null==e?void 0:e.excludedDomains})}setCommonScript(e){this.appIntegration.setCommonScript(e)}setSafeAreaBackgroundColor(e){return new Promise(((t,n)=>{this.resolveSetSafeAreaBackgroundColor=t,this.appIntegration.setSafeAreaBackgroundColor(e)}))}disableScreenRotation(){this.appIntegration.disableScreenRotation()}enableScreenRotation(){this.appIntegration.enableScreenRotation()}addExternalDomains(...e){let t=e.map((e=>({pattern:e.source,flags:e.flags})));this.appIntegration.addExternalDomains(t)}removeExternalDomains(...e){let t=e.map((e=>({pattern:e.source,flags:e.flags})));this.appIntegration.removeExternalDomains(t)}getExternalDomains(){return new Promise(((e,t)=>{this.resolveExternalDomains=e,this.appIntegration.getExternalDomains()}))}getExternalDomainsResult(e){this.resolveExternalDomains(e),this.resolveExternalDomains=null}appInForegroundEventRecievedEvent(){this.dispatchEvent(new CustomEvent("appInForeground"))}brandIdResult(e){this.resolveBrandId(e),this.resolveBrandId=null}versionResult(e){this.resolveVersion(e),this.resolveVersion=null}deviceIdResult(e){this.resolveDeviceId(e),this.resolveDeviceId=null}setSafeAreaBackgroundColorResult(e){this.resolveSetSafeAreaBackgroundColor(e),this.resolveSetSafeAreaBackgroundColor=null}navigatingPageEvent(e){this.dispatchEvent(new CustomEvent("navigatingPage",{detail:e}))}getInternalDomainsResult(e){this.resolveGetInternalDomains(e),this.resolveGetInternalDomains=null}addDomainToHistoryExclusion(e){this.appIntegration.addExcludedFromHistoryDomain(e)}removeDomainFromHistoryExclusion(e){this.appIntegration.removeExcludedFromHistoryDomain(e)}addPatternToHistoryExclusion(e){this.appIntegration.addExcludedFromHistoryPattern({pattern:e.source,flags:e.flags})}removePatternFromHistoryExclusion(e){this.appIntegration.removeExcludedFromHistoryPattern({pattern:e.source,flags:e.flags})}}t.App=new o},495:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ClientUser=void 0;const i=n(715),o=n(913),s=n(607);class a extends i.EventTargetWithType{get userId(){return this._userId||localStorage.getItem("startiapp-clientUserId")||null}set userId(e){this._userId=e,localStorage.setItem("startiapp-clientUserId",e)}deleteUser(e){return r(this,void 0,void 0,(function*(){const t=this.userId;if(!t)throw new Error("No user ID");const n=(null==e?void 0:e.prompt)||"Er du sikker på, at du vil slette slette din bruger i appen?",r=(null==e?void 0:e.confirmation)||"Vi har registreret dit ønske og vender tilbage med en bekræftelse.";if(!confirm(n))return;const i={brandId:yield s.default.App.brandId(),userId:t},a=yield fetch(o.baseUrl+"/App-requestAccountDeletion",{body:JSON.stringify(i),headers:{"Content-Type":"application/json"},method:"POST"});if(!a.ok)throw console.warn("Failed to request user deletion",i),new Error(`Failed to request user deletion: Firebase returned statuscode ${a.status}`);alert(r)}))}registerId(e){return r(this,void 0,void 0,(function*(){this.userId=e;const[t,n,r]=yield Promise.all([s.default.App.brandId(),s.default.App.deviceId(),s.default.PushNotification.getToken()]);if(!r||0===r.length)throw console.warn("Failed to register logged in client user",e,"No FCM token"),new Error(`Failed to register logged in client user ${e}: No FCM token`);const i={brandId:t,clientUserId:e,deviceId:n,fcmToken:r},a=yield fetch(o.baseUrl+"/ClientUser-registerId",{body:JSON.stringify(i),headers:{"Content-Type":"application/json"},method:"POST"});if(!a.ok)throw console.warn("Failed to register logged in client user",e,i),new Error(`Failed to register logged in client user ${e}: Firebase returned statuscode ${a.status}`)}))}unregisterId(){return r(this,void 0,void 0,(function*(){this.userId="";const[e,t]=yield Promise.all([s.default.App.brandId(),s.default.App.deviceId()]),n={brandId:e,deviceId:t},r=yield fetch(o.baseUrl+"/ClientUser-unregisterId",{body:JSON.stringify(n),headers:{"Content-Type":"application/json"},method:"POST"});if(!r.ok)throw console.warn("Failed to unregister logged in client user",n),new Error(`Failed to unregister logged in client user: Firebase returned statuscode ${r.status}`)}))}}t.ClientUser=new a},913:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.googleStorageBucket=t.styleTagId=t.baseUrl=void 0,t.baseUrl="https://europe-west3-startiapp-admin-1fac2.cloudfunctions.net",t.styleTagId="startiapp-styling",t.googleStorageBucket="startiapp-admin-1fac2.appspot.com"},900:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getIntegration=void 0;let n={};t.getIntegration=function(e){if(n[e])return n[e];let t=window[e],r=0;for(;!t&&r<5;)t=window.parent[e],r++;if(!t)throw new Error(`Could not find integration ${e}`);return n[e]=t,t}},607:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const i=n(752),o=n(495),s=n(900),a=n(154),c=n(807),l=n(725),p=n(720),d=n(133),u=n(415),h=n(803),g=n(491),v=n(666),f=n(236),m=n(240),y=n(716),w=n(984),S=n(593),I=n(767),b=window;b.appIntegrationsAreReady=()=>{(0,I.handleFlowLink)().then((e=>{"redirected"!=e&&(i.App.setStartiappIsLoaded(),P.dispatchEvent(new CustomEvent("ready")))}))},b.startiappDevice=l.Device,b.startiappApp=i.App,b.startiappUser=o.ClientUser,b.startiappQrScanner=u.QrScanner,b.startiappPushNotification=d.PushNotification,b.startiappNFC=p.NFC,b.startiappShare=h.Share,b.startiappNetwork=w.Network,b.startiappBiometric=c.Biometrics,b.startiappTrigger=g.Trigger,b.appErrorEvent=e=>{P.dispatchEvent(new CustomEvent("error",{detail:e}))};class C extends EventTarget{constructor(){super(...arguments),this.App=i.App,this.Device=l.Device,this.Biometrics=c.Biometrics,this.User=o.ClientUser,this.NfcScanner=p.NFC,this.PushNotification=d.PushNotification,this.QrScanner=u.QrScanner,this.Share=h.Share,this.Network=w.Network,this.Trigger=g.Trigger}get appIntegration(){return(0,s.getIntegration)("AppIntegration")}initialize(e){this.isRunningInApp()&&("function"==typeof gtag&>ag("set","user_properties",{startiapp:"true"}),y.AppUI.setOptions(e),this.appIntegration.webAppIsReady())}isRunningInApp(){return(0,S.isRunningInApp)()}addEventListener(e,t,n){if("ready"==e&&i.App.isStartiappLoaded()){const e=new CustomEvent("ready");"handleEvent"in t?t.handleEvent(e):t(e)}super.addEventListener(e,t,n)}removeEventListener(e,t,n){super.removeEventListener(e,t,n)}}const P=new C;if(document.body)T();else{const e=new MutationObserver((()=>T(e)));e.observe(document.documentElement,{childList:!0})}function T(e){if(!document.body)return;if((new v.SmartBanner).initialize(),P.isRunningInApp()?document.body.setAttribute("startiapp",""):document.body.removeAttribute("startiapp"),!document.head)return;const t=document.createElement("style");if(t.innerHTML="body:not([startiapp]) .startiapp-hide-in-browser,body:not([startiapp]) .startiapp-show-in-app,body[startiapp] .startiapp-hide-in-app,body[startiapp] .startiapp-show-in-browser{display:none!important}",document.head.appendChild(t),P.isRunningInApp()){const e={width:"device-width","viewport-fit":"cover"},t=document.querySelector("meta[name=viewport]");if(t){const n=(0,m.parseViewportMeta)(t.content);t.content=(0,m.serializeViewportMeta)(Object.assign(Object.assign({},n),e))}else{const t=document.createElement("meta");t.name="viewport",t.content=(0,m.serializeViewportMeta)(e),document.head.appendChild(t)}}e&&e.disconnect()}t.default=P,b.startiapp=P;const E=new f.TaskStepper;E.addTask(a.checkIfAppVersionIsClosed),P.addEventListener("ready",(()=>r(void 0,void 0,void 0,(function*(){yield E.start()}))))},154:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.checkIfAppVersionIsClosed=void 0;const i=n(752),o=n(900),s=new(n(718).ClosedVersionChecker);function a(){return r(this,void 0,void 0,(function*(){const e=yield s.getAvailableVersionsDocument();/iPad|iPhone|iPod/.test(navigator.userAgent)?window.location.href="https://apps.apple.com/lt/app/"+e.iosStoreId:i.App.openExternalBrowser("https://play.google.com/store/apps/details?id="+e.androidStoreId)}))}t.checkIfAppVersionIsClosed=function(e){return r(this,void 0,void 0,(function*(){if(!(yield s.isCurrentVersionClosed()))return e();yield function(){return r(this,void 0,void 0,(function*(){const e=yield function(){return r(this,void 0,void 0,(function*(){const e=document.createElement("div");e.style.height="100vh",e.style.maxWidth="100vw",e.style.paddingInline="10px",e.style.display="flex",e.style.justifyContent="center",e.style.alignItems="center",e.style.flexDirection="column";const t=document.createElement("h1");t.style.fontSize="18px",t.style.fontFamily="sans-serif",t.style.textAlign="center",t.textContent="Der er kommet en opgradering til appen, som er nødvendig for at fortsætte.";const n=document.createElement("button");return n.style.marginTop="15px",n.style.fontSize="18px",n.style.fontFamily="sans-serif",n.style.textAlign="center",n.style.padding="15px 30px",n.style.borderRadius="100vh",n.style.background="#444",n.style.color="white",n.style.border="none",n.textContent="Opgrader appen",n.onclick=a,e.appendChild(t),e.appendChild(n),e}))}();document.body.innerHTML="",document.body.appendChild(e),(0,o.getIntegration)("AppIntegration").webAppIsReady()}))}()}))}},807:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Biometrics=void 0;const r=n(715),i=n(900);class o extends r.EventTargetWithType{constructor(){super(...arguments),this.SECURED_CONTENT_KEY="STARTI_APP_BIOMETRIC_CONTENT",this.SECURED_LOGIN_KEY="STARTI_APP_BIOMETRIC_LOGIN_CONTENT",this.defaultScanTitle="Prove you have fingers!",this.defaultScanReason="Can't let you in if you don't."}get biometricIntegration(){return(0,i.getIntegration)("BiometricIntegration")}scan(e=this.defaultScanTitle,t=this.defaultScanReason){return new Promise(((n,r)=>{this.resolveScan=n,this.biometricIntegration.startScanning(e,t)}))}getAuthenticationType(){return new Promise(((e,t)=>{this.resolveAuthType=e,this.biometricIntegration.getAuthenticationType()}))}setSecuredContent(e){this.biometricIntegration.setSecuredContent(this.SECURED_CONTENT_KEY,JSON.stringify(e))}getSecuredContent(e=this.defaultScanTitle,t=this.defaultScanReason){return new Promise(((n,r)=>{this.resolveGetContent=n,this.biometricIntegration.getSecuredContent(this.SECURED_CONTENT_KEY,e,t)}))}hasSecuredContent(){return new Promise(((e,t)=>{this.resolveHasSecureContent=e,this.biometricIntegration.hasSecuredContent(this.SECURED_CONTENT_KEY)}))}removeSecuredContent(){this.biometricIntegration.removeSecuredContent(this.SECURED_CONTENT_KEY)}setUsernameAndPassword(e,t){this.biometricIntegration.setSecuredContent(this.SECURED_LOGIN_KEY,JSON.stringify({username:e,password:t}))}removeUsernameAndPassword(){this.biometricIntegration.removeSecuredContent(this.SECURED_LOGIN_KEY)}hasUsernameAndPassword(){return new Promise(((e,t)=>{this.resolveHasUsernameAndPassword=e,this.biometricIntegration.hasSecuredContent(this.SECURED_LOGIN_KEY)}))}getUsernameAndPassword(e=this.defaultScanTitle,t=this.defaultScanReason){return new Promise(((n,r)=>{this.resolveGetUsernamePassword=n,this.biometricIntegration.getSecuredContent(this.SECURED_LOGIN_KEY,e,t)}))}handleResolveGetUsernamePassword(e){try{const t=JSON.parse(e.result);this.resolveGetUsernamePassword(t)}catch(e){this.resolveGetUsernamePassword(null)}this.resolveGetUsernamePassword=null}hasSecuredContentResult({result:e,key:t}){if(t===this.SECURED_LOGIN_KEY)return this.resolveHasUsernameAndPassword(e),void(this.resolveHasUsernameAndPassword=null);this.resolveHasSecureContent(e),this.resolveHasSecureContent=null}getAuthenticationTypeResult(e){this.resolveAuthType(e),this.resolveAuthType=null}startScanningResult(e){this.resolveScan(e),this.resolveScan=null}getSecuredContentResult(e){if(e.key!==this.SECURED_LOGIN_KEY){try{const t=JSON.parse(e.result);this.resolveGetContent(t)}catch(t){this.resolveGetContent(e.result)}this.resolveGetContent=null}else this.handleResolveGetUsernamePassword(e)}}t.Biometrics=new o},725:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Device=void 0;const r=n(715),i=n(900);class o extends r.EventTargetWithType{get deviceIntegration(){return(0,i.getIntegration)("DeviceIntegration")}startAccelerometer(){this.deviceIntegration.startAccelerometer()}stopAccelerometer(){this.deviceIntegration.stopAccelerometer()}isAccelerometerStarted(){return new Promise(((e,t)=>{this.deviceIntegration.isAccelerometerStarted(),this.resolveIsAccelerometerStarted=e}))}isAccelerometerStartedResult(e){this.resolveIsAccelerometerStarted(e),this.resolveIsAccelerometerStarted=null}onShakeEvent(){this.dispatchEvent(new CustomEvent("shake"))}}t.Device=new o},720:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NFC=void 0;const r=n(715),i=n(900);class o extends r.EventTargetWithType{get NFCIntegration(){return(0,i.getIntegration)("NFCIntegration")}isNfcSupported(){return new Promise(((e,t)=>{this.resolveNFCSupported=e,this.NFCIntegration.isNFCSupported()}))}startNfcScanner(){return new Promise((e=>{this.resolveStartNFCReader=e,this.NFCIntegration.startListening()}))}stopNfcScanner(){return new Promise((e=>{this.resolveStopNFCReader=e,this.NFCIntegration.stopListening()}))}nfcTagScannedEvent(e){const t=new CustomEvent("nfcTagScanned",{detail:e});this.dispatchEvent(t)}stopListeningResult(e){this.resolveStopNFCReader(e),this.resolveStopNFCReader=null}isNFCSupportedResult(e){this.resolveNFCSupported(e),this.resolveNFCSupported=null}startListeningResult(e){this.resolveStartNFCReader(e),this.resolveStartNFCReader=null}}t.NFC=new o},133:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.PushNotification=t.Topic=void 0;const i=n(466),o=n(715),s=n(913),a=n(900),c=n(607);class l extends o.EventTargetWithType{get pushNotificationIntegration(){return(0,a.getIntegration)("PushNotificationIntegration")}requestAccess(){return r(this,void 0,void 0,(function*(){return new Promise(((e,t)=>{this.resolveRequestAccess=e,this.pushNotificationIntegration.requestAccess()}))}))}getToken(){return new Promise(((e,t)=>{this.resolveFCMToken=e,this.pushNotificationIntegration.getFCMToken()}))}getTopics(){return r(this,void 0,void 0,(function*(){const e={brand:yield c.default.App.brandId()},t=yield fetch(s.baseUrl+"/Topics-getTopics",{body:JSON.stringify(e),method:"POST",headers:{"Content-Type":"application/json"}});if(!t.ok)throw new Error("Failed to get topics");const n=yield t.json(),r=this.getSubscribedTopics();return n.map((({name:e,topic:t})=>new p(t,e,r.includes(t))))}))}renderTopics(){return r(this,void 0,void 0,(function*(){const e=yield this.getTopics(),t=document.getElementById("startiapp-topics-template");if(!t||"SCRIPT"!==t.tagName)throw new Error("Template element not found");if("x-tmpl-mustache"!==t.type)throw new Error('Template element must have type="x-tmpl-mustache"');const n=document.getElementById("startiapp-topics-target");if(!n||"DIV"!==n.tagName)throw new Error("Template target element not found");const o=t.innerHTML,s=(0,i.render)(o,{topics:e});n.innerHTML=s,n.querySelectorAll('input[type="checkbox"]').forEach((e=>{e.dataset.startiappTopic&&e.addEventListener("change",(t=>r(this,void 0,void 0,(function*(){if(!(yield this.requestAccess()))return t.target.checked=!1,void t.preventDefault();e.checked?this.subscribeToTopics([e.dataset.startiappTopic]):this.unsubscribeFromTopics([e.dataset.startiappTopic])}))))}))}))}subscribeToTopics(e){return r(this,void 0,void 0,(function*(){if(!(yield c.default.PushNotification.requestAccess()))throw console.warn("Push notification permissions denied"),new Error("Push notification permissions denied");const[t,n,r]=yield Promise.all([c.default.PushNotification.getToken(),c.default.App.brandId(),c.default.App.deviceId()]),i=[];e.forEach((e=>{const o={brandId:n,topic:e,fcmToken:t,deviceId:r},a=fetch(s.baseUrl+"/Topics-subscribeToTopic",{body:JSON.stringify(o),method:"POST",headers:{"Content-Type":"application/json"}});i.push(a)})),(yield Promise.all(i)).forEach(((t,n)=>{t.ok?this.updateSubscribedTopics(e[n],!0):console.warn("Failed to sign up to topic",n,e[n])}))}))}unsubscribeFromTopics(e){return r(this,void 0,void 0,(function*(){const[t,n,r]=yield Promise.all([c.default.PushNotification.getToken(),c.default.App.brandId(),c.default.App.deviceId()]),i=[];e.forEach((e=>{const o={brandId:n,topic:e,fcmToken:t,deviceId:r},a=fetch(s.baseUrl+"/Topics-unsubscribeFromTopic",{body:JSON.stringify(o),method:"POST",headers:{"Content-Type":"application/json"}});i.push(a)})),(yield Promise.all(i)).forEach(((t,n)=>{t.ok?this.updateSubscribedTopics(e[n],!1):console.warn("Failed to unsubscribe from topic",n,e[n])}))}))}requestAccessResult(e){this.resolveRequestAccess(e),this.resolveRequestAccess=null}getFCMTokenResult(e){this.resolveFCMToken(e),this.resolveFCMToken=null}tokenReceivedEvent(e){this.dispatchEvent(new CustomEvent("tokenRefreshed",{detail:e}))}notificationReceivedEvent(e){this.dispatchEvent(new CustomEvent("notificationReceived",{detail:e}))}firebasePushNotificationTopicsUnsubscribeResult(e){}firebasePushNotificationSubscribeToTopicsResult(e){}updateSubscribedTopics(e,t){const n=localStorage.getItem("startiapp-subscribed-topics")?JSON.parse(localStorage.getItem("startiapp-subscribed-topics")):[];t?n.includes(e)||n.push(e):n.includes(e)&&n.splice(n.indexOf(e),1),localStorage.setItem("startiapp-subscribed-topics",JSON.stringify(n))}getSubscribedTopics(){return localStorage.getItem("startiapp-subscribed-topics")?JSON.parse(localStorage.getItem("startiapp-subscribed-topics")):[]}}class p{constructor(e,t,n=!1){this.topic=e,this.name=t,this.subscribed=n}toJSON(){return{topic:this.topic,name:this.name,subscribed:this.subscribed}}subscribe(){t.PushNotification.subscribeToTopics([this.topic])}unsubscribe(){t.PushNotification.unsubscribeFromTopics([this.topic])}}t.Topic=p,t.PushNotification=new l},415:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QrScanner=void 0;const r=n(715),i=n(900);class o extends r.EventTargetWithType{get qrScannerIntegration(){return(0,i.getIntegration)("QrScannerIntegration")}scan(){return new Promise(((e,t)=>{this.resolveScan=e,this.qrScannerIntegration.startQrCodeScanner()}))}isCameraAccessGranted(){return new Promise(((e,t)=>{this.resolveCameraAccessGranted=e,this.qrScannerIntegration.isCameraAccessGranted()}))}requestCameraAccess(){return new Promise(((e,t)=>{this.resolveRequestCameraAccess=e,this.qrScannerIntegration.requestCameraAccess()}))}requestCameraAccessResult(e){this.resolveRequestCameraAccess(e),this.resolveRequestCameraAccess=null}startQrCodeScannerResult(e){this.resolveScan(e),this.resolveScan=null}isCameraAccessGrantedResult(e){this.resolveCameraAccessGranted(e),this.resolveCameraAccessGranted=null}}t.QrScanner=new o},803:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Share=void 0;const r=n(715),i=n(900);class o extends r.EventTargetWithType{get shareIntegration(){return(0,i.getIntegration)("ShareIntegration")}shareFile(e,t){return new Promise(((n,r)=>{this.resolveShareFile=n,this.shareIntegration.shareFile(e,t)}))}shareText(e){return new Promise(((t,n)=>{this.resolveShareText=t,this.shareIntegration.shareText(e)}))}downloadFile(e,t){return new Promise(((n,r)=>{this.resolveDownloadText=n,this.shareIntegration.downloadFile(e,t)}))}shareFileResult(e){this.resolveShareFile(e),this.resolveShareFile=null}shareTextResult(e){this.resolveShareText(e),this.resolveShareText=null}downloadFileResult(e){this.resolveDownloadText(e),this.resolveDownloadText=null}}t.Share=new o},491:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.Trigger=void 0;const i=n(607),o=n(715),s=n(913);class a extends o.EventTargetWithType{trackEvent(e,t){return r(this,void 0,void 0,(function*(){const n=yield i.default.App.brandId(),r=yield i.default.App.deviceId(),o={brandId:n,event:{id:e,customProperties:t},identifierType:"installationId",identifier:r};try{yield fetch(s.baseUrl+"/Trigger-trackEvent",{body:JSON.stringify(o),method:"POST",headers:{"Content-Type":"application/json"}})}catch(e){}}))}trackUserProperty(e,t){return r(this,void 0,void 0,(function*(){const n={[e]:t},r={brandId:yield i.default.App.brandId(),customFields:n,identifierType:"installationId",identifier:yield i.default.App.deviceId()};try{yield fetch(s.baseUrl+"/Trigger-trackUserProperty",{body:JSON.stringify(r),method:"POST",headers:{"Content-Type":"application/json"}})}catch(e){}}))}}t.Trigger=new a},718:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ClosedVersionChecker=void 0;const i=n(752),o=n(913),s=n(703);t.ClosedVersionChecker=class{constructor(){this.documentData=null}getAvailableVersionsUrl(){return r(this,void 0,void 0,(function*(){const e=yield i.App.brandId();return`https://storage.googleapis.com/${o.googleStorageBucket}/availableVersions/${encodeURIComponent(e)}.json`}))}getAvailableVersionsDocument(){return r(this,void 0,void 0,(function*(){if(null!=this.documentData)return this.documentData;const e=yield this.getAvailableVersionsUrl(),t=yield fetch(e),n=yield t.json();return this.documentData=n,n}))}getCurrentVersionSemver(){return r(this,void 0,void 0,(function*(){const e=yield i.App.version();return new s.SemVer(e)}))}getLatestVersionSemvar(e){return e.reduce(((e,t)=>t.isGreaterThan(e)?t:e),new s.SemVer("0.0.0"))}isCurrentVersionClosed(){return r(this,void 0,void 0,(function*(){const e=yield this.getCurrentVersionSemver(),t=yield this.getAvailableVersionsDocument();if(t.versions.includes(e.toString()))return!1;const n=t.versions.map((e=>new s.SemVer(e))),r=this.getLatestVersionSemvar(n);return!e.isGreaterThanOrEqualTo(r)}))}}},703:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SemVer=void 0,t.SemVer=class{constructor(e){if(this.version=e,!this.isValidVersion(e))throw new Error(`Invalid version: ${e}`);const t=e.split(".");this.major=parseInt(t[0]),this.minor=parseInt(t[1]),this.patch=parseInt(t[2])}isValidVersion(e){const t=e.split(".");return!(t.length<3||isNaN(parseInt(t[0]))||isNaN(parseInt(t[1]))||isNaN(parseInt(t[2])))}isGreaterThan(e){return this.major>e.major||!(this.major<e.major)&&(this.minor>e.minor||!(this.minor<e.minor)&&(this.patch>e.patch||(this.patch,e.patch,!1)))}isGreaterThanOrEqualTo(e){return this.isGreaterThan(e)||this.isEqualTo(e)}isEqualTo(e){return this.major===e.major&&this.minor===e.minor&&this.patch===e.patch}toString(){return this.version}}},666:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.SmartBanner=void 0;const i=n(913),o=n(593);t.SmartBanner=class{constructor(){this.marginTop="72px"}getHostDomain(){const e=window.location.host.split(".");return e.slice(e.length-2).join(".")}getSmartBannerDataUrl(){const e=this.getHostDomain();return`https://storage.googleapis.com/${i.googleStorageBucket}/smartbanner/${encodeURIComponent(e)}.json`}getSmartBannerData(){return r(this,void 0,void 0,(function*(){try{const e=yield fetch(this.getSmartBannerDataUrl());return yield e.json()}catch(e){return e instanceof SyntaxError||console.error("SmartBanner error",e),{enabled:!1,appName:"",appIcon:"",appleAppId:"",googlePlayAppId:"",backgroundColor:void 0,textColor:void 0}}}))}getSmartBannerClosed(){const e=localStorage.getItem("startiapp-smart-banner-closed-at");return!!(e&&Date.now()-parseInt(e)<6048e5)}setSmartBannerClosed(e=!1){localStorage.setItem("startiapp-smart-banner-closed-at",e?Date.now()+2592e6+"":Date.now().toString())}initialize(){var e,t;return r(this,void 0,void 0,(function*(){if((0,o.isRunningInApp)())return;const n=(()=>{const e=navigator.userAgent;return/android/i.test(e)?"Android":/iPad|iPhone|iPod/.test(e)?"iOS":"Other"})();if("Other"===n)return;const r=document.querySelector("html");if(!r)return;if(this.getSmartBannerClosed())return;const i=yield this.getSmartBannerData();if(!i.enabled)return;const s=null!==(e=i.backgroundColor)&&void 0!==e?e:"#f2f1f6",a=null!==(t=i.textColor)&&void 0!==t?t:"#000";r.style.setProperty("margin-top",this.marginTop,"important");const c=document.createElement("div");switch(c.id="startiapp-smart-banner-wrapper",c.style.setProperty("position","fixed","important"),c.style.setProperty("top","0","important"),c.style.setProperty("left","0","important"),c.style.setProperty("right","0","important"),c.style.setProperty("height",this.marginTop,"important"),c.style.setProperty("width","100%","important"),c.style.setProperty("background-color",s,"important"),c.style.setProperty("z-index","999999999","important"),c.style.setProperty("color",a,"important"),c.style.setProperty("stroke",a,"important"),n){case"iOS":yield this.createIosBannerContent(i,c);break;case"Android":yield this.createAndroidBannerContent(i,c);break;default:return void console.warn("Unknown platform",n)}document.body.appendChild(c)}))}createIosBannerContent(e,t){return r(this,void 0,void 0,(function*(){this.createContent(e,`https://apps.apple.com/us/app/id${e.appleAppId}`,"App Store",t)}))}createAndroidBannerContent(e,t){return r(this,void 0,void 0,(function*(){this.createContent(e,`market://details?id=${e.googlePlayAppId}`,"Play Store",t)}))}createContent(e,t,n,i){var o,s;return r(this,void 0,void 0,(function*(){0===(null===(o=e.appDetails)||void 0===o?void 0:o.length)&&(e.appDetails=void 0);const r=document.createElement("div");r.style.setProperty("display","grid","important"),r.id="startiapp-smart-banner-grid",r.style.setProperty("grid-template-columns","30px auto auto","important"),r.style.setProperty("height","100%","important"),r.style.setProperty("width","100%","important"),r.style.setProperty("font-family","sans-serif","important");const a=document.createElement("div");a.id="startiapp-smart-banner-close-button",a.style.setProperty("grid-column","1"),a.style.setProperty("grid-row","1"),a.style.setProperty("height","100%"),a.style.setProperty("width","100%"),a.style.setProperty("display","flex"),a.style.setProperty("justify-content","center"),a.style.setProperty("align-items","center"),a.onclick=()=>{var e,t;i.remove(),null===(e=document.querySelector("html"))||void 0===e||e.style.setProperty("transition","margin-top 0.3s ease-in-out"),null===(t=document.querySelector("html"))||void 0===t||t.style.removeProperty("margin-top"),this.setSmartBannerClosed()};const c=document.createElementNS("http://www.w3.org/2000/svg","svg");c.setAttribute("id","close-smart-banner"),c.setAttribute("style","height: 16px; width: 16px;"),c.setAttribute("viewBox","0 0 24 24"),c.setAttribute("fill","none"),c.setAttribute("xmlns","http://www.w3.org/2000/svg"),a.style.setProperty("stroke","inherit"),c.innerHTML='\n\t\t\t<path d="M18 6L6 18" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n\t\t\t<path d="M6 6L18 18" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n\t\t',a.appendChild(c);const l=document.createElement("div");l.id="startiapp-smart-banner-image",l.style.setProperty("grid-column","2"),l.style.setProperty("grid-row","1"),l.style.setProperty("height","100%"),l.style.setProperty("width","100%"),l.style.setProperty("display","flex"),l.style.setProperty("justify-content","start"),l.style.setProperty("align-items","center");const p=document.createElement("img");p.id="startiapp-smart-banner-app-icon",p.src=e.appIcon,p.style.setProperty("height","54px"),p.style.setProperty("width","54px"),p.style.setProperty("object-fit","scale-down");const d=document.createElement("div");d.id="startiapp-smart-banner-app-name-container",d.style.setProperty("display","flex"),d.style.setProperty("flex-direction","column");const u=document.createElement("span");u.id="startiapp-smart-banner-app-name",u.style.setProperty("margin-left","8px"),u.style.setProperty("font-size","16px"),u.style.setProperty("font-weight","500"),u.textContent=e.appName;const h=document.createElement("span");h.id="startiapp-smart-banner-app-details",h.style.setProperty("margin-left","8px"),h.style.setProperty("font-size","16px"),h.style.setProperty("font-weight","500"),h.textContent=null!==(s=e.appDetails)&&void 0!==s?s:`GET — on the ${n}`,d.appendChild(u),d.appendChild(h),l.appendChild(p),l.appendChild(d);const g=document.createElement("div");g.style.setProperty("grid-column","3"),g.style.setProperty("grid-row","1"),g.style.setProperty("height","100%"),g.style.setProperty("width","100%"),g.style.setProperty("display","flex"),g.style.setProperty("justify-content","center"),g.style.setProperty("align-items","center");const v=document.createElement("a");v.href=t,v.target="_blank",v.textContent="Vis",v.style.setProperty("text-decoration","none"),v.style.setProperty("color","inherit"),v.style.setProperty("font-size","16px"),v.style.setProperty("font-weight","500"),g.appendChild(v),r.appendChild(a),r.appendChild(l),r.appendChild(g),i.appendChild(r)}))}}},236:function(e,t){"use strict";var n=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.TaskStepper=void 0,t.TaskStepper=class{constructor(){this.tasks=[]}addTask(e){this.tasks.push(e)}start(){return n(this,void 0,void 0,(function*(){yield this.runTasks(this.tasks)}))}runTasks(e){return n(this,void 0,void 0,(function*(){if(0===e.length)return;const t=e.shift();if(null!=t)try{yield t((()=>this.runTasks(e)))}catch(t){this.runTasks(e)}}))}}},240:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.serializeViewportMeta=t.parseViewportMeta=void 0,t.parseViewportMeta=function(e){const t={},n=e.split(",");for(const e of n){const[n,r]=e.trim().split("=");switch(n.trim()){case"width":case"height":case"initial-scale":case"minimum-scale":case"maximum-scale":case"user-scalable":case"viewport-fit":t[n.trim()]=r.trim()}}return t},t.serializeViewportMeta=function(e){const t=[];for(const[n,r]of Object.entries(e))r&&t.push(`${n}=${r}`);return t.join(", ")}},984:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Network=void 0;const r=n(715),i=n(900);class o extends r.EventTargetWithType{get networkIntegration(){return(0,i.getIntegration)("NetworkIntegration")}sendUdpBroadcast(e,t){return new Promise(((n,r)=>{this.resolveSendUdpBroadcast=n,this.networkIntegration.sendUdpBroadcast(e.toString(),t)}))}currentConnectionState(){return new Promise(((e,t)=>{this.resolveCurrentConnectionState=e,this.networkIntegration.currentConnectionState()}))}startListeningForUdpPackets(e){return new Promise(((t,n)=>{this.resolveStartListeningForUdpPackets=t,this.networkIntegration.startListeningForUdpPackets(e.toString())}))}stopListeningForUdpPackets(){return new Promise(((e,t)=>{this.resolveStopListeningForUdpPackets=e,this.networkIntegration.stopListeningForUdpPackets()}))}startListeningForConnectionChanges(){return new Promise(((e,t)=>{this.resolveStartListeningForConnectionChanges=e,this.networkIntegration.startListeningForConnectionChanges()}))}stopListeningForConnectionChanges(){return new Promise(((e,t)=>{this.resolveStopListeningForConnectionChanges=e,this.networkIntegration.stopListeningForConnectionChanges()}))}sendUdpBroadcastResult(e){this.resolveSendUdpBroadcast(e),this.resolveSendUdpBroadcast=null}currentConnectionStateResult(e){this.resolveCurrentConnectionState(e),this.resolveCurrentConnectionState=null}startListeningForUdpPacketsResult(e){this.resolveStartListeningForUdpPackets(e),this.resolveStartListeningForUdpPackets=null}stopListeningForUdpPacketsResult(e){this.resolveStopListeningForUdpPackets(e),this.resolveStopListeningForUdpPackets=null}startListeningForConnectionChangesResult(e){this.resolveStartListeningForConnectionChanges(e),this.resolveStartListeningForConnectionChanges=null}stopListeningForConnectionChangesResult(e){this.resolveStopListeningForConnectionChanges(e),this.resolveStopListeningForConnectionChanges=null}udpPacketReceivedEvent(e){const t=new CustomEvent("udpPacketReceived",{detail:e});this.dispatchEvent(t)}connectionStateChangedEvent(e){const t=new CustomEvent("connectionStateChanged",{detail:e});this.dispatchEvent(t)}}t.Network=new o},767:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.handleFlowLink=void 0;const i=n(593),o=n(752),s=n(913),a={getFingerprintPayloadEndpoint:`${s.baseUrl}/FlowLink-getFingerprintPayload`,getLinkPayloadEndpoint:`${s.baseUrl}/FlowLink-getLinkPayload`};t.handleFlowLink=()=>new Promise(((e,t)=>{setTimeout((()=>r(void 0,void 0,void 0,(function*(){const n="false"!==localStorage.getItem("flowLink_initial_download"),r=yield o.App.brandId();n&&!window.location.search.includes("fromFlowLink")?c(r,e,t):l(r,e,t),localStorage.setItem("flowLink_initial_download","false")}))),1)}));const c=(e,t,n)=>{const r=JSON.stringify({screenHeight:window.screen.height,screenWidth:window.screen.width,brandId:e});fetch(a.getFingerprintPayloadEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:r}).then((e=>e.json())).then((e=>{(null==e?void 0:e.path)?(location.href=e.path,t("redirected")):t("nothing")})).catch((e=>{t("nothing")}))},l=(e,t,n)=>{var r;const o=new URLSearchParams(window.location.search);if(!o.has("fromFlowLink"))return void t("nothing");const s=null!==(r=o.get("link"))&&void 0!==r?r:"";if(!s)return void t("nothing");const c=JSON.stringify({linkId:s,brandId:e});fetch(a.getLinkPayloadEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:c}).then((e=>e.json())).then((e=>{const n=(0,i.excludeQueryParams)(o,["fromFlowLink","link"]);(null==e?void 0:e.path)?(location.href=`${e.path}${n?`?${n}`:""}`,t("redirected")):t("nothing")})).catch((e=>{t("nothing")}))}},716:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AppUI=void 0;const r=n(607),i=n(913),o=n(240);t.AppUI=new class{constructor(){this.options={allowDrag:!1,allowHighligt:!1,allowZoom:!1,allowScrollBounce:!1,allowRotation:!1,spinner:{show:!1},statusBar:{removeSafeArea:!0,hideText:!1,safeAreaBackgroundColor:"#000000",darkContent:!1}}}setOptions(e){this.options=Object.assign(Object.assign({},this.options),e),this.updateUI()}getOptions(){return this.options}updateViewportMeta(e){const t=document.querySelector("meta[name=viewport]");if(t){const n=(0,o.parseViewportMeta)(t.content);t.content=(0,o.serializeViewportMeta)(Object.assign(Object.assign({},n),e))}else{const t=document.createElement("meta");t.setAttribute("name","viewport"),t.setAttribute("content",(0,o.serializeViewportMeta)(e)),document.head.appendChild(t)}}updateUI(){this.styleString="";const e=document.getElementById(i.styleTagId);e&&e.remove();const t=Array.from(document.getElementsByTagName("img")),n=Array.from(document.getElementsByTagName("a"));this.options.allowDrag?[...t,...n].forEach((e=>{e.removeAttribute("draggable")})):[...t,...n].forEach((e=>{e.setAttribute("draggable","false")})),this.options.allowHighligt||(this.styleString+="\n body {\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n user-select: none;\n }\n "),this.options.allowScrollBounce||(this.styleString+="\n html {\n overscroll-behavior: none;\n }\n "),this.options.allowZoom||(this.styleString+="\n body {\n touch-action: pan-x pan-y;\n }\n ",this.updateViewportMeta({"user-scalable":"no"}));const o=document.createElement("style");o.textContent=this.styleString,o.setAttribute("id",i.styleTagId),document.body.appendChild(o),r.default.App.setStatusBar(this.options.statusBar),r.default.App.setSpinner(this.options.spinner),this.options.allowRotation?r.default.App.enableScreenRotation():r.default.App.disableScreenRotation()}}},593:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.excludeQueryParams=t.isRunningInApp=void 0,t.isRunningInApp=function(){return navigator.userAgent.toLowerCase().indexOf("starti.app")>-1},t.excludeQueryParams=(e,t)=>{const n=new URLSearchParams;for(const[r,i]of e.entries())t.includes(r)||n.append(r,i);return n.toString()}}},t={},function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}(607);var e,t}));
|