starti.app 1.2.2 → 1.2.3
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/pushnotification.js +7 -1
- package/package.json +1 -1
- package/umd/main.js +1 -1
package/dist/pushnotification.js
CHANGED
|
@@ -39,7 +39,13 @@ class PushNotificationClass extends EventHandlerWithTypes_1.EventTargetWithType
|
|
|
39
39
|
const params = {
|
|
40
40
|
brand: brandId,
|
|
41
41
|
};
|
|
42
|
-
const response = yield fetch(config_1.baseUrl + "/Topics-getTopics
|
|
42
|
+
const response = yield fetch(config_1.baseUrl + "/Topics-getTopics", {
|
|
43
|
+
body: JSON.stringify(params),
|
|
44
|
+
method: "POST",
|
|
45
|
+
headers: {
|
|
46
|
+
"Content-Type": "application/json",
|
|
47
|
+
},
|
|
48
|
+
});
|
|
43
49
|
if (!response.ok) {
|
|
44
50
|
throw new Error("Failed to get topics");
|
|
45
51
|
}
|
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 s(e,t){return null!=e&&"object"==typeof e&&t in e}var i=RegExp.prototype.test;var o=/\S/;function a(e){return!function(e,t){return i.call(e,t)}(o,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 m(e,t){this.view=e,this.cache={".":this.view},this.parent=t}function v(){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},m.prototype.push=function(e){return new m(e,this)},m.prototype.lookup=function(e){var t,r,i,o=this.cache;if(o.hasOwnProperty(e))t=o[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=s(a,c[l])||(r=a,i=c[l],null!=r&&"object"!=typeof r&&r.hasOwnProperty&&r.hasOwnProperty(i))),a=a[c[l++]];else a=p.view[e],d=s(p.view,e);if(d){t=a;break}p=p.parent}o[e]=t}return n(t)&&(t=t.call(this.view)),t},v.prototype.clearCache=function(){void 0!==this.templateCache&&this.templateCache.clear()},v.prototype.parse=function(e,n){var s=this.templateCache,i=e+":"+(n||f.tags).join(":"),o=void 0!==s,c=o?s.get(i):void 0;return null==c&&(c=function(e,n){if(!e)return[];var s,i,o,c=!1,m=[],v=[],y=[],w=!1,S=!1,b="",I=0;function C(){if(w&&!S)for(;y.length;)delete v[y.pop()];else y=[];w=!1,S=!1}function E(e){if("string"==typeof e&&(e=e.split(p,2)),!t(e)||2!==e.length)throw new Error("Invalid tags: "+e);s=new RegExp(r(e[0])+"\\s*"),i=new RegExp("\\s*"+r(e[1])),o=new RegExp("\\s*"+r("}"+e[1]))}E(n||f.tags);for(var P,T,A,x,N,R,_=new g(e);!_.eos();){if(P=_.pos,A=_.scanUntil(s))for(var k=0,O=A.length;k<O;++k)a(x=A.charAt(k))?(y.push(v.length),b+=x):(S=!0,c=!0,b+=" "),v.push(["text",x,P,P+1]),P+=1,"\n"===x&&(C(),b="",I=0,c=!1);if(!_.scan(s))break;if(w=!0,T=_.scan(h)||"name",_.scan(l),"="===T?(A=_.scanUntil(d),_.scan(d),_.scanUntil(i)):"{"===T?(A=_.scanUntil(o),_.scan(u),_.scanUntil(i),T="&"):A=_.scanUntil(i),!_.scan(i))throw new Error("Unclosed tag at "+_.pos);if(N=">"==T?[T,A,P,_.pos,b,I,c]:[T,A,P,_.pos],I++,v.push(N),"#"===T||"^"===T)m.push(N);else if("/"===T){if(!(R=m.pop()))throw new Error('Unopened section "'+A+'" at '+P);if(R[1]!==A)throw new Error('Unclosed section "'+R[1]+'" at '+P)}else"name"===T||"{"===T||"&"===T?S=!0:"="===T&&E(A)}if(C(),R=m.pop())throw new Error('Unclosed section "'+R[1]+'" at '+_.pos);return function(e){for(var t,n=[],r=n,s=[],i=0,o=e.length;i<o;++i)switch((t=e[i])[0]){case"#":case"^":r.push(t),s.push(t),r=t[4]=[];break;case"/":s.pop()[5]=t[2],r=s.length>0?s[s.length-1][4]:n;break;default:r.push(t)}return n}(function(e){for(var t,n,r=[],s=0,i=e.length;s<i;++s)(t=e[s])&&("text"===t[0]&&n&&"text"===n[0]?(n[1]+=t[1],n[3]=t[3]):(r.push(t),n=t));return r}(v))}(e,n),o&&s.set(i,c)),c},v.prototype.render=function(e,t,n,r){var s=this.getConfigTags(r),i=this.parse(e,s),o=t instanceof m?t:new m(t,void 0);return this.renderTokens(i,o,n,e,r)},v.prototype.renderTokens=function(e,t,n,r,s){for(var i,o,a,c="",l=0,p=e.length;l<p;++l)a=void 0,"#"===(o=(i=e[l])[0])?a=this.renderSection(i,t,n,r,s):"^"===o?a=this.renderInverted(i,t,n,r,s):">"===o?a=this.renderPartial(i,t,n,s):"&"===o?a=this.unescapedValue(i,t):"name"===o?a=this.escapedValue(i,t,s):"text"===o&&(a=this.rawValue(i)),void 0!==a&&(c+=a);return c},v.prototype.renderSection=function(e,r,s,i,o){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]),s,i,o);else if("object"==typeof l||"string"==typeof l||"number"==typeof l)c+=this.renderTokens(e[4],r.push(l),s,i,o);else if(n(l)){if("string"!=typeof i)throw new Error("Cannot use higher-order sections without the original template");null!=(l=l.call(r.view,i.slice(e[3],e[5]),(function(e){return a.render(e,r,s,o)})))&&(c+=l)}else c+=this.renderTokens(e[4],r,s,i,o);return c}},v.prototype.renderInverted=function(e,n,r,s,i){var o=n.lookup(e[1]);if(!o||t(o)&&0===o.length)return this.renderTokens(e[4],n,r,s,i)},v.prototype.indentPartial=function(e,t,n){for(var r=t.replace(/[^ \t]/g,""),s=e.split("\n"),i=0;i<s.length;i++)s[i].length&&(i>0||!n)&&(s[i]=r+s[i]);return s.join("\n")},v.prototype.renderPartial=function(e,t,r,s){if(r){var i=this.getConfigTags(s),o=n(r)?r(e[1]):r[e[1]];if(null!=o){var a=e[6],c=e[5],l=e[4],p=o;0==c&&l&&(p=this.indentPartial(o,l,a));var d=this.parse(p,i);return this.renderTokens(d,t,r,p,s)}}},v.prototype.unescapedValue=function(e,t){var n=t.lookup(e[1]);if(null!=n)return n},v.prototype.escapedValue=function(e,t,n){var r=this.getConfigEscape(n)||f.escape,s=t.lookup(e[1]);if(null!=s)return"number"==typeof s&&r===f.escape?String(s):r(s)},v.prototype.rawValue=function(e){return e[1]},v.prototype.getConfigTags=function(e){return t(e)?e:e&&"object"==typeof e?e.tags:void 0},v.prototype.getConfigEscape=function(e){return e&&"object"==typeof e&&!t(e)?e.escape:void 0};var f={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 v;return f.clearCache=function(){return y.clearCache()},f.parse=function(e,t){return y.parse(e,t)},f.render=function(e,n,r,s){if("string"!=typeof e)throw new TypeError('Invalid template! Template should be a "string" but "'+((t(i=e)?"array":typeof i)+'" was given as the first argument for mustache#render(template, view, partials)'));var i;return y.render(e,n,r,s)},f.escape=function(e){return String(e).replace(/[&<>"'`=\/]/g,(function(e){return c[e]}))},f.Scanner=g,f.Context=m,f.Writer=v,f}()},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),s=n(900);class i extends r.EventTargetWithType{constructor(){super(...arguments),this.startiappIsLoaded=!1}get appIntegration(){return(0,s.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(){this.appIntegration.showStatusBar()}hideStatusBar(){this.appIntegration.hideStatusBar()}setStatusBar(e){this.appIntegration.setStatusBar(e)}setSpinner(e){if(!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})}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})}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}}t.App=new i},1:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Biometrics=void 0;const r=n(715),s=n(900);class i 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,s.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 i},495:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(s,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ClientUser=void 0;const s=n(715),i=n(913),o=n(607);class a extends s.EventTargetWithType{registerId(e){return r(this,void 0,void 0,(function*(){const t=yield o.default.App.brandId(),n=yield o.default.App.deviceId(),r=yield o.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 s={brandId:t,clientUserId:e,deviceId:n,fcmToken:r},a=yield fetch(i.baseUrl+"/ClientUser-registerId",{body:JSON.stringify(s),headers:{"Content-Type":"application/json"},method:"POST"});if(!a.ok)throw console.warn("Failed to register logged in client user",e,s),new Error(`Failed to register logged in client user ${e}: Firebase returned statuscode ${a.status}`)}))}unregisterId(){return r(this,void 0,void 0,(function*(){const e={brandId:yield o.default.App.brandId(),deviceId:yield o.default.App.deviceId()},t=yield fetch(i.baseUrl+"/ClientUser-unregisterId",{body:JSON.stringify(e),headers:{"Content-Type":"application/json"},method:"POST"});if(!t.ok)throw console.warn("Failed to unregister logged in client user",e),new Error(`Failed to unregister logged in client user: Firebase returned statuscode ${t.status}`)}))}}t.ClientUser=new a},913:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.styleTagId=t.baseUrl=void 0,t.baseUrl="https://europe-west3-startiapp-admin-1fac2.cloudfunctions.net",t.styleTagId="startiapp-styling"},955:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Device=void 0;const r=n(715),s=n(900);class i extends r.EventTargetWithType{get deviceIntegration(){return(0,s.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 i},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:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(752),s=n(1),i=n(495),o=n(955),a=n(900),c=n(666),l=n(240),p=n(983),d=n(681),u=n(952),h=n(716),g=n(634),m=window;m.appIntegrationsAreReady=()=>{r.App.setStartiappIsLoaded(),f.dispatchEvent(new CustomEvent("ready"))},m.startiappDevice=o.Device,m.startiappApp=r.App,m.startiappUser=i.ClientUser,m.startiappQrScanner=u.QrScanner,m.startiappPushNotification=d.PushNotification,m.startiappNFC=p.NFC,m.startiappShare=g.Share,m.startiappBiometric=s.Biometrics,m.appErrorEvent=e=>{f.dispatchEvent(new CustomEvent("error",{detail:e}))};class v extends EventTarget{constructor(){super(...arguments),this.App=r.App,this.Device=o.Device,this.Biometrics=s.Biometrics,this.User=i.ClientUser,this.NfcScanner=p.NFC,this.PushNotification=d.PushNotification,this.QrScanner=u.QrScanner,this.Share=g.Share}get appIntegration(){return(0,a.getIntegration)("AppIntegration")}initialize(e){this.isRunningInApp()&&("function"==typeof gtag&>ag("set","user_properties",{startiapp:"true"}),h.AppUI.setOptions(e),this.appIntegration.webAppIsReady())}isRunningInApp(){return navigator.userAgent.toLowerCase().indexOf("starti.app")>-1}addEventListener(e,t,n){if("ready"==e&&r.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 f=new v;if(document.body)y();else{const e=new MutationObserver((()=>y(e)));e.observe(document.documentElement,{childList:!0})}function y(e){if(!document.body)return;if((new c.SmartBanner).initialize(),f.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),f.isRunningInApp()){const e={width:"device-width","viewport-fit":"cover"},t=document.querySelector("meta[name=viewport]");if(t){const n=(0,l.parseViewportMeta)(t.content);t.content=(0,l.serializeViewportMeta)(Object.assign(Object.assign({},n),e))}else{const t=document.createElement("meta");t.name="viewport",t.content=(0,l.serializeViewportMeta)(e),document.head.appendChild(t)}}e&&e.disconnect()}t.default=f,m.startiapp=f},666:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(s,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.SmartBanner=void 0;const s=n(607);t.SmartBanner=class{constructor(){this._storageBucket="startiapp-admin-1fac2.appspot.com",this.marginTop="72px"}getSmartBannerDataUrl(){const e=window.location.host.split("."),t=e.slice(e.length-2).join(".");return`https://storage.googleapis.com/${this._storageBucket}/smartbanner/${encodeURIComponent(t)}.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:"",googePlayAppId:""}}}))}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(){return r(this,void 0,void 0,(function*(){if(s.default.isRunningInApp())return;const e=(()=>{const e=navigator.userAgent;return/android/i.test(e)?"Android":/iPad|iPhone|iPod/.test(e)?"iOS":"Other"})();if("Other"===e)return;const t=document.querySelector("html");if(!t)return;if(this.getSmartBannerClosed())return;const n=yield this.getSmartBannerData();if(!n.enabled)return;t.style.setProperty("margin-top",this.marginTop,"important");const r=document.createElement("div");switch(r.id="startiapp-smart-banner-wrapper",r.style.setProperty("position","fixed","important"),r.style.setProperty("top","0","important"),r.style.setProperty("left","0","important"),r.style.setProperty("right","0","important"),r.style.setProperty("height",this.marginTop,"important"),r.style.setProperty("width","100%","important"),r.style.setProperty("background-color","#f2f1f6","important"),r.style.setProperty("z-index","999999999","important"),r.style.setProperty("border-bottom","1px solid #dadade","important"),e){case"iOS":yield this.createIosBannerContent(n,r);break;case"Android":yield this.createAndroidBannerContent(n,r);break;default:return void console.warn("Unknown platform",e)}document.body.appendChild(r)}))}createIosBannerContent(e,t){return r(this,void 0,void 0,(function*(){this.createContent(e.appName,e.appIcon,`https://apps.apple.com/us/app/id${e.appleAppId}`,"App Store",t,e.appDetails)}))}createAndroidBannerContent(e,t){return r(this,void 0,void 0,(function*(){this.createContent(e.appName,e.appIcon,`market://details?id=${e.googePlayAppId}`,"Play Store",t,e.appDetails)}))}createContent(e,t,n,s,i,o){return r(this,void 0,void 0,(function*(){0===(null==o?void 0:o.length)&&(o=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"),c.innerHTML='\n\t\t\t<path d="M18 6L6 18" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n\t\t\t<path d="M6 6L18 18" stroke="#000" 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=t,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;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!=o?o:`GET — on the ${s}`,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 m=document.createElement("a");m.href=n,m.target="_blank",m.textContent="View",m.style.setProperty("text-decoration","none"),m.style.setProperty("color","#000"),m.style.setProperty("font-size","16px"),m.style.setProperty("font-weight","500"),g.appendChild(m),r.appendChild(a),r.appendChild(l),r.appendChild(g),i.appendChild(r)}))}}},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(", ")}},983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NFC=void 0;const r=n(715),s=n(900);class i extends r.EventTargetWithType{get NFCIntegration(){return(0,s.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 i},681:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(s,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.PushNotification=t.Topic=void 0;const s=n(466),i=n(715),o=n(913),a=n(900),c=n(607);class l extends i.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(o.baseUrl+"/Topics-getTopics?"+new URLSearchParams(Object.assign({},e)));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 i=t.innerHTML,o=(0,s.render)(i,{topics:e});n.innerHTML=o,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()]),s=[];e.forEach((e=>{const i={brandId:n,topic:e,fcmToken:t,deviceId:r},a=fetch(o.baseUrl+"/Topics-subscribeToTopic",{body:JSON.stringify(i),method:"POST",headers:{"Content-Type":"application/json"}});s.push(a)})),(yield Promise.all(s)).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()]),s=[];e.forEach((e=>{const i={brandId:n,topic:e,fcmToken:t,deviceId:r},a=fetch(o.baseUrl+"/Topics-unsubscribeFromTopic",{body:JSON.stringify(i),method:"POST",headers:{"Content-Type":"application/json"}});s.push(a)})),(yield Promise.all(s)).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},952:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QrScanner=void 0;const r=n(715),s=n(900);class i extends r.EventTargetWithType{get qrScannerIntegration(){return(0,s.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 i},716:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AppUI=void 0;const r=n(607),s=n(913),i=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,i.parseViewportMeta)(t.content);t.content=(0,i.serializeViewportMeta)(Object.assign(Object.assign({},n),e))}else{const t=document.createElement("meta");t.setAttribute("name","viewport"),t.setAttribute("content",(0,i.serializeViewportMeta)(e)),document.head.appendChild(t)}}updateUI(){this.styleString="";const e=document.getElementById(s.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 i=document.createElement("style");i.textContent=this.styleString,i.setAttribute("id",s.styleTagId),document.body.appendChild(i),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()}}},634:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Share=void 0;const r=n(715),s=n(900);class i extends r.EventTargetWithType{get shareIntegration(){return(0,s.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 i}},t={},function n(r){var s=t[r];if(void 0!==s)return s.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.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 s(e,t){return null!=e&&"object"==typeof e&&t in e}var i=RegExp.prototype.test;var o=/\S/;function a(e){return!function(e,t){return i.call(e,t)}(o,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 m(e,t){this.view=e,this.cache={".":this.view},this.parent=t}function v(){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},m.prototype.push=function(e){return new m(e,this)},m.prototype.lookup=function(e){var t,r,i,o=this.cache;if(o.hasOwnProperty(e))t=o[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=s(a,c[l])||(r=a,i=c[l],null!=r&&"object"!=typeof r&&r.hasOwnProperty&&r.hasOwnProperty(i))),a=a[c[l++]];else a=p.view[e],d=s(p.view,e);if(d){t=a;break}p=p.parent}o[e]=t}return n(t)&&(t=t.call(this.view)),t},v.prototype.clearCache=function(){void 0!==this.templateCache&&this.templateCache.clear()},v.prototype.parse=function(e,n){var s=this.templateCache,i=e+":"+(n||f.tags).join(":"),o=void 0!==s,c=o?s.get(i):void 0;return null==c&&(c=function(e,n){if(!e)return[];var s,i,o,c=!1,m=[],v=[],y=[],w=!1,S=!1,b="",I=0;function C(){if(w&&!S)for(;y.length;)delete v[y.pop()];else y=[];w=!1,S=!1}function E(e){if("string"==typeof e&&(e=e.split(p,2)),!t(e)||2!==e.length)throw new Error("Invalid tags: "+e);s=new RegExp(r(e[0])+"\\s*"),i=new RegExp("\\s*"+r(e[1])),o=new RegExp("\\s*"+r("}"+e[1]))}E(n||f.tags);for(var P,T,A,N,x,R,_=new g(e);!_.eos();){if(P=_.pos,A=_.scanUntil(s))for(var k=0,O=A.length;k<O;++k)a(N=A.charAt(k))?(y.push(v.length),b+=N):(S=!0,c=!0,b+=" "),v.push(["text",N,P,P+1]),P+=1,"\n"===N&&(C(),b="",I=0,c=!1);if(!_.scan(s))break;if(w=!0,T=_.scan(h)||"name",_.scan(l),"="===T?(A=_.scanUntil(d),_.scan(d),_.scanUntil(i)):"{"===T?(A=_.scanUntil(o),_.scan(u),_.scanUntil(i),T="&"):A=_.scanUntil(i),!_.scan(i))throw new Error("Unclosed tag at "+_.pos);if(x=">"==T?[T,A,P,_.pos,b,I,c]:[T,A,P,_.pos],I++,v.push(x),"#"===T||"^"===T)m.push(x);else if("/"===T){if(!(R=m.pop()))throw new Error('Unopened section "'+A+'" at '+P);if(R[1]!==A)throw new Error('Unclosed section "'+R[1]+'" at '+P)}else"name"===T||"{"===T||"&"===T?S=!0:"="===T&&E(A)}if(C(),R=m.pop())throw new Error('Unclosed section "'+R[1]+'" at '+_.pos);return function(e){for(var t,n=[],r=n,s=[],i=0,o=e.length;i<o;++i)switch((t=e[i])[0]){case"#":case"^":r.push(t),s.push(t),r=t[4]=[];break;case"/":s.pop()[5]=t[2],r=s.length>0?s[s.length-1][4]:n;break;default:r.push(t)}return n}(function(e){for(var t,n,r=[],s=0,i=e.length;s<i;++s)(t=e[s])&&("text"===t[0]&&n&&"text"===n[0]?(n[1]+=t[1],n[3]=t[3]):(r.push(t),n=t));return r}(v))}(e,n),o&&s.set(i,c)),c},v.prototype.render=function(e,t,n,r){var s=this.getConfigTags(r),i=this.parse(e,s),o=t instanceof m?t:new m(t,void 0);return this.renderTokens(i,o,n,e,r)},v.prototype.renderTokens=function(e,t,n,r,s){for(var i,o,a,c="",l=0,p=e.length;l<p;++l)a=void 0,"#"===(o=(i=e[l])[0])?a=this.renderSection(i,t,n,r,s):"^"===o?a=this.renderInverted(i,t,n,r,s):">"===o?a=this.renderPartial(i,t,n,s):"&"===o?a=this.unescapedValue(i,t):"name"===o?a=this.escapedValue(i,t,s):"text"===o&&(a=this.rawValue(i)),void 0!==a&&(c+=a);return c},v.prototype.renderSection=function(e,r,s,i,o){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]),s,i,o);else if("object"==typeof l||"string"==typeof l||"number"==typeof l)c+=this.renderTokens(e[4],r.push(l),s,i,o);else if(n(l)){if("string"!=typeof i)throw new Error("Cannot use higher-order sections without the original template");null!=(l=l.call(r.view,i.slice(e[3],e[5]),(function(e){return a.render(e,r,s,o)})))&&(c+=l)}else c+=this.renderTokens(e[4],r,s,i,o);return c}},v.prototype.renderInverted=function(e,n,r,s,i){var o=n.lookup(e[1]);if(!o||t(o)&&0===o.length)return this.renderTokens(e[4],n,r,s,i)},v.prototype.indentPartial=function(e,t,n){for(var r=t.replace(/[^ \t]/g,""),s=e.split("\n"),i=0;i<s.length;i++)s[i].length&&(i>0||!n)&&(s[i]=r+s[i]);return s.join("\n")},v.prototype.renderPartial=function(e,t,r,s){if(r){var i=this.getConfigTags(s),o=n(r)?r(e[1]):r[e[1]];if(null!=o){var a=e[6],c=e[5],l=e[4],p=o;0==c&&l&&(p=this.indentPartial(o,l,a));var d=this.parse(p,i);return this.renderTokens(d,t,r,p,s)}}},v.prototype.unescapedValue=function(e,t){var n=t.lookup(e[1]);if(null!=n)return n},v.prototype.escapedValue=function(e,t,n){var r=this.getConfigEscape(n)||f.escape,s=t.lookup(e[1]);if(null!=s)return"number"==typeof s&&r===f.escape?String(s):r(s)},v.prototype.rawValue=function(e){return e[1]},v.prototype.getConfigTags=function(e){return t(e)?e:e&&"object"==typeof e?e.tags:void 0},v.prototype.getConfigEscape=function(e){return e&&"object"==typeof e&&!t(e)?e.escape:void 0};var f={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 v;return f.clearCache=function(){return y.clearCache()},f.parse=function(e,t){return y.parse(e,t)},f.render=function(e,n,r,s){if("string"!=typeof e)throw new TypeError('Invalid template! Template should be a "string" but "'+((t(i=e)?"array":typeof i)+'" was given as the first argument for mustache#render(template, view, partials)'));var i;return y.render(e,n,r,s)},f.escape=function(e){return String(e).replace(/[&<>"'`=\/]/g,(function(e){return c[e]}))},f.Scanner=g,f.Context=m,f.Writer=v,f}()},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),s=n(900);class i extends r.EventTargetWithType{constructor(){super(...arguments),this.startiappIsLoaded=!1}get appIntegration(){return(0,s.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(){this.appIntegration.showStatusBar()}hideStatusBar(){this.appIntegration.hideStatusBar()}setStatusBar(e){this.appIntegration.setStatusBar(e)}setSpinner(e){if(!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})}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})}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}}t.App=new i},1:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Biometrics=void 0;const r=n(715),s=n(900);class i 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,s.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 i},495:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(s,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ClientUser=void 0;const s=n(715),i=n(913),o=n(607);class a extends s.EventTargetWithType{registerId(e){return r(this,void 0,void 0,(function*(){const t=yield o.default.App.brandId(),n=yield o.default.App.deviceId(),r=yield o.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 s={brandId:t,clientUserId:e,deviceId:n,fcmToken:r},a=yield fetch(i.baseUrl+"/ClientUser-registerId",{body:JSON.stringify(s),headers:{"Content-Type":"application/json"},method:"POST"});if(!a.ok)throw console.warn("Failed to register logged in client user",e,s),new Error(`Failed to register logged in client user ${e}: Firebase returned statuscode ${a.status}`)}))}unregisterId(){return r(this,void 0,void 0,(function*(){const e={brandId:yield o.default.App.brandId(),deviceId:yield o.default.App.deviceId()},t=yield fetch(i.baseUrl+"/ClientUser-unregisterId",{body:JSON.stringify(e),headers:{"Content-Type":"application/json"},method:"POST"});if(!t.ok)throw console.warn("Failed to unregister logged in client user",e),new Error(`Failed to unregister logged in client user: Firebase returned statuscode ${t.status}`)}))}}t.ClientUser=new a},913:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.styleTagId=t.baseUrl=void 0,t.baseUrl="https://europe-west3-startiapp-admin-1fac2.cloudfunctions.net",t.styleTagId="startiapp-styling"},955:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Device=void 0;const r=n(715),s=n(900);class i extends r.EventTargetWithType{get deviceIntegration(){return(0,s.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 i},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:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(752),s=n(1),i=n(495),o=n(955),a=n(900),c=n(666),l=n(240),p=n(983),d=n(681),u=n(952),h=n(716),g=n(634),m=window;m.appIntegrationsAreReady=()=>{r.App.setStartiappIsLoaded(),f.dispatchEvent(new CustomEvent("ready"))},m.startiappDevice=o.Device,m.startiappApp=r.App,m.startiappUser=i.ClientUser,m.startiappQrScanner=u.QrScanner,m.startiappPushNotification=d.PushNotification,m.startiappNFC=p.NFC,m.startiappShare=g.Share,m.startiappBiometric=s.Biometrics,m.appErrorEvent=e=>{f.dispatchEvent(new CustomEvent("error",{detail:e}))};class v extends EventTarget{constructor(){super(...arguments),this.App=r.App,this.Device=o.Device,this.Biometrics=s.Biometrics,this.User=i.ClientUser,this.NfcScanner=p.NFC,this.PushNotification=d.PushNotification,this.QrScanner=u.QrScanner,this.Share=g.Share}get appIntegration(){return(0,a.getIntegration)("AppIntegration")}initialize(e){this.isRunningInApp()&&("function"==typeof gtag&>ag("set","user_properties",{startiapp:"true"}),h.AppUI.setOptions(e),this.appIntegration.webAppIsReady())}isRunningInApp(){return navigator.userAgent.toLowerCase().indexOf("starti.app")>-1}addEventListener(e,t,n){if("ready"==e&&r.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 f=new v;if(document.body)y();else{const e=new MutationObserver((()=>y(e)));e.observe(document.documentElement,{childList:!0})}function y(e){if(!document.body)return;if((new c.SmartBanner).initialize(),f.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),f.isRunningInApp()){const e={width:"device-width","viewport-fit":"cover"},t=document.querySelector("meta[name=viewport]");if(t){const n=(0,l.parseViewportMeta)(t.content);t.content=(0,l.serializeViewportMeta)(Object.assign(Object.assign({},n),e))}else{const t=document.createElement("meta");t.name="viewport",t.content=(0,l.serializeViewportMeta)(e),document.head.appendChild(t)}}e&&e.disconnect()}t.default=f,m.startiapp=f},666:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(s,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.SmartBanner=void 0;const s=n(607);t.SmartBanner=class{constructor(){this._storageBucket="startiapp-admin-1fac2.appspot.com",this.marginTop="72px"}getSmartBannerDataUrl(){const e=window.location.host.split("."),t=e.slice(e.length-2).join(".");return`https://storage.googleapis.com/${this._storageBucket}/smartbanner/${encodeURIComponent(t)}.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:"",googePlayAppId:""}}}))}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(){return r(this,void 0,void 0,(function*(){if(s.default.isRunningInApp())return;const e=(()=>{const e=navigator.userAgent;return/android/i.test(e)?"Android":/iPad|iPhone|iPod/.test(e)?"iOS":"Other"})();if("Other"===e)return;const t=document.querySelector("html");if(!t)return;if(this.getSmartBannerClosed())return;const n=yield this.getSmartBannerData();if(!n.enabled)return;t.style.setProperty("margin-top",this.marginTop,"important");const r=document.createElement("div");switch(r.id="startiapp-smart-banner-wrapper",r.style.setProperty("position","fixed","important"),r.style.setProperty("top","0","important"),r.style.setProperty("left","0","important"),r.style.setProperty("right","0","important"),r.style.setProperty("height",this.marginTop,"important"),r.style.setProperty("width","100%","important"),r.style.setProperty("background-color","#f2f1f6","important"),r.style.setProperty("z-index","999999999","important"),r.style.setProperty("border-bottom","1px solid #dadade","important"),e){case"iOS":yield this.createIosBannerContent(n,r);break;case"Android":yield this.createAndroidBannerContent(n,r);break;default:return void console.warn("Unknown platform",e)}document.body.appendChild(r)}))}createIosBannerContent(e,t){return r(this,void 0,void 0,(function*(){this.createContent(e.appName,e.appIcon,`https://apps.apple.com/us/app/id${e.appleAppId}`,"App Store",t,e.appDetails)}))}createAndroidBannerContent(e,t){return r(this,void 0,void 0,(function*(){this.createContent(e.appName,e.appIcon,`market://details?id=${e.googePlayAppId}`,"Play Store",t,e.appDetails)}))}createContent(e,t,n,s,i,o){return r(this,void 0,void 0,(function*(){0===(null==o?void 0:o.length)&&(o=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"),c.innerHTML='\n\t\t\t<path d="M18 6L6 18" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n\t\t\t<path d="M6 6L18 18" stroke="#000" 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=t,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;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!=o?o:`GET — on the ${s}`,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 m=document.createElement("a");m.href=n,m.target="_blank",m.textContent="View",m.style.setProperty("text-decoration","none"),m.style.setProperty("color","#000"),m.style.setProperty("font-size","16px"),m.style.setProperty("font-weight","500"),g.appendChild(m),r.appendChild(a),r.appendChild(l),r.appendChild(g),i.appendChild(r)}))}}},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(", ")}},983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NFC=void 0;const r=n(715),s=n(900);class i extends r.EventTargetWithType{get NFCIntegration(){return(0,s.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 i},681:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(s,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.PushNotification=t.Topic=void 0;const s=n(466),i=n(715),o=n(913),a=n(900),c=n(607);class l extends i.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(o.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 i=t.innerHTML,o=(0,s.render)(i,{topics:e});n.innerHTML=o,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()]),s=[];e.forEach((e=>{const i={brandId:n,topic:e,fcmToken:t,deviceId:r},a=fetch(o.baseUrl+"/Topics-subscribeToTopic",{body:JSON.stringify(i),method:"POST",headers:{"Content-Type":"application/json"}});s.push(a)})),(yield Promise.all(s)).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()]),s=[];e.forEach((e=>{const i={brandId:n,topic:e,fcmToken:t,deviceId:r},a=fetch(o.baseUrl+"/Topics-unsubscribeFromTopic",{body:JSON.stringify(i),method:"POST",headers:{"Content-Type":"application/json"}});s.push(a)})),(yield Promise.all(s)).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},952:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QrScanner=void 0;const r=n(715),s=n(900);class i extends r.EventTargetWithType{get qrScannerIntegration(){return(0,s.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 i},716:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AppUI=void 0;const r=n(607),s=n(913),i=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,i.parseViewportMeta)(t.content);t.content=(0,i.serializeViewportMeta)(Object.assign(Object.assign({},n),e))}else{const t=document.createElement("meta");t.setAttribute("name","viewport"),t.setAttribute("content",(0,i.serializeViewportMeta)(e)),document.head.appendChild(t)}}updateUI(){this.styleString="";const e=document.getElementById(s.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 i=document.createElement("style");i.textContent=this.styleString,i.setAttribute("id",s.styleTagId),document.body.appendChild(i),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()}}},634:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Share=void 0;const r=n(715),s=n(900);class i extends r.EventTargetWithType{get shareIntegration(){return(0,s.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 i}},t={},function n(r){var s=t[r];if(void 0!==s)return s.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}(607);var e,t}));
|