UNPKG

ryuu.js

Version:

Ryuu JavaScript Utility Library

3 lines 112 kB
/*! For license information please see domo.js.LICENSE.txt */ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.domo=t():e.domo=t()}(self,(()=>(()=>{"use strict";var e={110:function(e,t,a){var r=this&&this.__awaiter||function(e,t,a,r){return new(a||(a=Promise))((function(n,o){function s(e){try{d(r.next(e))}catch(e){o(e)}}function i(e){try{d(r.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?n(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(s,i)}d((r=r.apply(e,t||[])).next())}))},n=this&&this.__generator||function(e,t){var a,r,n,o,s={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return o={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function i(i){return function(d){return function(i){if(a)throw new TypeError("Generator is already executing.");for(;o&&(o=0,i[0]&&(s=0)),s;)try{if(a=1,r&&(n=2&i[0]?r.return:i[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,i[1])).done)return n;switch(r=0,n&&(i=[2&i[0],n.value]),i[0]){case 0:case 1:n=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,r=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!((n=(n=s.trys).length>0&&n[n.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!n||i[1]>n[0]&&i[1]<n[3])){s.label=i[1];break}if(6===i[0]&&s.label<n[1]){s.label=n[1],n=i;break}if(n&&s.label<n[2]){s.label=n[2],s.ops.push(i);break}n[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],r=0}finally{a=n=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,d])}}};Object.defineProperty(t,"__esModule",{value:!0}),t.domoHttp=t.delete=t.put=t.post=t.getAll=t.get=void 0;var o=a(617),s=a(256),i=a(994),d=a(797),l=a(748);function u(e,t,a,d){return void 0===a&&(a={}),r(this,void 0,void 0,(function(){var r,l,u,p,h,g,y,T,b;return n(this,(function(n){switch(n.label){case 0:r=a.fetch,l={},(0,i.setFormatHeaders)(l,t,a),(0,s.setContentHeaders)(l,a),(0,s.setAuthTokenHeader)(l,(0,o.getToken)()),u={method:e,headers:l,body:c(d,a.contentType)},p=r||fetch,n.label=1;case 1:return n.trys.push([1,3,,4]),[4,p(t,u)];case 2:return h=n.sent(),[3,4];case 3:throw v(void 0,n.sent().message,"");case 4:if(h.ok)return[3,9];g=h.statusText,y="",n.label=5;case 5:return n.trys.push([5,7,,8]),[4,h.text()];case 6:return y=n.sent(),g=y||g,[3,8];case 7:return n.sent(),[3,8];case 8:throw v(h,g,y);case 9:return n.trys.push([9,11,,12]),[4,f(h,a)];case 10:return[2,n.sent()];case 11:if((T=n.sent())&&(T.status||0===T.status))throw T;throw(b=new Error("domoHttp error: ".concat(T.message))).originalError=T,b;case 12:return[2]}}))}))}function p(e,t){var a;return(null!==(a=null==this?void 0:this.domoHttp)&&void 0!==a?a:u)(l.RequestMethods.GET,e,t)}function c(e,t){if(e)return t&&t!==d.DataFormats.JSON?e:JSON.stringify(e)}function v(e,t,a){var r=new Error(e?"HTTP error ".concat(e.status,": ").concat(t):t);return e&&(r.status=e.status,r.statusText=e.statusText,r.body=a,r.headers={},e.headers&&"function"==typeof e.headers.forEach&&e.headers.forEach((function(e,t){r.headers[t]=e}))),r}function f(e,t){return"blob"!==t.responseType&&["csv","excel"].includes(t.format)?e.text():"blob"===t.responseType?e.blob():e.text().then((function(e){if(!e)return"";try{return JSON.parse(e)}catch(a){var t=new Error("Invalid JSON response: "+a.message);throw t.responseText=e,t}}))}t.domoHttp=u,t.get=p,t.getAll=function(e,t){var a,r=null!==(a=null==this?void 0:this.get)&&void 0!==a?a:p;return Promise.all(e.map((function(e){return r(e,t)})))},t.post=function(e,t,a){var r;return(null!==(r=null==this?void 0:this.domoHttp)&&void 0!==r?r:u)(l.RequestMethods.POST,e,a,t)},t.put=function(e,t,a){var r;return(null!==(r=null==this?void 0:this.domoHttp)&&void 0!==r?r:u)(l.RequestMethods.PUT,e,a,t)},t.delete=function(e,t){var a;return(null!==(a=null==this?void 0:this.domoHttp)&&void 0!==a?a:u)(l.RequestMethods.DELETE,e,t)}},220:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.handleDataUpdated=t.onDataUpdated=void 0,t.onDataUpdated=function(e){var t=this;return this.connect(!0),this.listeners.onDataUpdated.push(e),function(){var a=t.listeners.onDataUpdated.indexOf(e);a>=0&&t.listeners.onDataUpdated.splice(a,1)}},t.handleDataUpdated=function(e,t){e&&this.listeners.onDataUpdated.length&&(null==t||t.postMessage({requestId:e.requestId,event:"ack",alias:e.alias}),this.listeners.onDataUpdated.forEach((function(t){return t(e.alias)})))}},248:(e,t)=>{var a,r,n;Object.defineProperty(t,"__esModule",{value:!0}),t.FilterDataTypes=t.FilterOperatorsNumeric=t.FilterOperatorsString=void 0,(n=t.FilterOperatorsString||(t.FilterOperatorsString={})).IN="IN",n.NOT_IN="NOT_IN",n.CONTAINS="CONTAINS",n.NOT_CONTAINS="NOT_CONTAINS",n.STARTS_WITH="STARTS_WITH",n.NOT_STARTS_WITH="NOT_STARTS_WITH",n.ENDS_WITH="ENDS_WITH",n.NOT_ENDS_WITH="NOT_ENDS_WITH",(r=t.FilterOperatorsNumeric||(t.FilterOperatorsNumeric={})).GREATER_THAN="GREATER_THAN",r.GREAT_THAN_EQUALS_TO="GREAT_THAN_EQUALS_TO",r.LESS_THAN="LESS_THAN",r.LESS_THAN_EQUALS_TO="LESS_THAN_EQUALS_TO",r.BETWEEN="BETWEEN",r.EQUALS="EQUALS",r.NOT_EQUALS="NOT_EQUALS",(a=t.FilterDataTypes||(t.FilterDataTypes={})).NUMERIC="NUMERIC",a.DATE="DATE",a.DATETIME="DATETIME",a.STRING="STRING"},256:(e,t)=>{function a(e,t){var a,n;if(e===document.body||e===document.head)return r(e,t);var o=(null===(a=e.dataset)||void 0===a?void 0:a.domoHref)||e.getAttribute("href"),s=(null===(n=e.dataset)||void 0===n?void 0:n.domoSrc)||e.getAttribute("src"),i=o?"href":"src",d=o||s;if(d&&t&&!d.includes(t)){var l=new URL(d,document.location.origin);l.origin===document.location.origin&&(l.searchParams.append("ryuu_sid",t),e.setAttribute(i,l.href))}}function r(e,t){for(var r=0,n=Array.from(e.children);r<n.length;r++)a(n[r],t)}Object.defineProperty(t,"__esModule",{value:!0}),t.processBody=t.handleNode=t.setResponseType=t.setAuthTokenHeader=t.setContentHeaders=void 0,t.setContentHeaders=function(e,t){"multipart"!==(null==t?void 0:t.contentType)&&(e["Content-Type"]="application/json",(null==t?void 0:t.contentType)&&(e["Content-Type"]=t.contentType))},t.setAuthTokenHeader=function(e,t){if(t)return e["X-DOMO-Ryuu-Session"]=t;delete e["X-DOMO-Ryuu-Session"]},t.setResponseType=function(e,t){t&&void 0!==t.responseType&&(e.responseType=t.responseType)},t.handleNode=a,t.processBody=r},353:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.handleVariablesUpdated=t.onVariablesUpdated=t.requestVariablesUpdate=void 0;var r=a(994),n=a(396);t.requestVariablesUpdate=function(e,t,a){var o,s,i;(0,n.guardAgainstInvalidVariables)(e);var d="string"==typeof e?JSON.parse(e):e,l=(0,r.generateUniqueId)(),u=(0,r.isIOS)(),p=(0,r.isMobile)(),c={requestId:l,event:"variable",variables:d};if(this.requests[l]={request:{payload:c,onAck:t,onReply:a,status:"pending",sentAt:Date.now()}},!p)return window.parent.postMessage(JSON.stringify(c),"*"),l;try{var v="string"==typeof d?d:JSON.stringify(d);domovariable.postMessage(v)}catch(e){console.error("Failed to post message using domovariable:",e);try{u?(v="string"==typeof d?d:JSON.stringify(d),null===(i=null===(s=null===(o=window.webkit)||void 0===o?void 0:o.messageHandlers)||void 0===s?void 0:s.domovariable)||void 0===i||i.postMessage(v)):window.parent.postMessage(JSON.stringify(c),"*")}catch(e){console.error("Failed to post message using webkit:",e),window.parent.postMessage(JSON.stringify(c),"*")}}return l},t.onVariablesUpdated=function(e){var t=this;return this.connect(!0),this.listeners.onVariablesUpdated.push(e),function(){var a=t.listeners.onVariablesUpdated.indexOf(e);a>=0&&t.listeners.onVariablesUpdated.splice(a,1)}},t.handleVariablesUpdated=function(e,t){e&&(this.listeners.onVariablesUpdated.length&&(null==t||t.postMessage({requestId:e.requestId,event:"ack",variables:e.variables}),this.listeners.onVariablesUpdated.forEach((function(t){return t(e.variables)}))),this.handleReply(e.requestId,e.variables,e.error))}},396:(e,t)=>{function a(e){return null!==e&&"object"==typeof e&&"number"==typeof e.functionId&&e.hasOwnProperty("value")}function r(e){return Array.isArray(e)&&e.every(a)}Object.defineProperty(t,"__esModule",{value:!0}),t.guardAgainstInvalidVariables=t.isVariableArray=t.isVariable=void 0,t.isVariable=a,t.isVariableArray=r,t.guardAgainstInvalidVariables=function(e){var t=e;try{"string"==typeof e&&(t=JSON.parse(e))}catch(e){throw new Error('Variables string is not valid JSON or a valid Variable array: { "functionId": number, "value": any }[]')}if(!r(t))throw new Error('Variables must be provided as a Variable array or a stringified Variable array: { "functionId": number, "value": any }[]');if(0===t.length)throw new Error("Variables array cannot be empty.")}},617:(e,t)=>{var a;Object.defineProperty(t,"__esModule",{value:!0}),t.getToken=t.eventToListenerMap=t.DomoEvent=void 0,t.DomoEvent={appData:"appData",dataUpdated:"dataUpdated",filtersUpdated:"filtersUpdated",variablesUpdated:"variablesUpdated",ack:"ack"},t.eventToListenerMap=((a={})[t.DomoEvent.appData]="onAppDataUpdated",a[t.DomoEvent.dataUpdated]="onDataUpdated",a[t.DomoEvent.filtersUpdated]="onFiltersUpdated",a[t.DomoEvent.variablesUpdated]="onVariablesUpdated",a),t.getToken=function(){return null===window||void 0===window?void 0:window.__RYUU_SID__}},631:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.handleFiltersUpdated=t.onFiltersUpdated=t.requestFiltersUpdate=void 0;var r=a(994),n=a(670);t.requestFiltersUpdate=function(e,t,a,o){var s,i,d;void 0===t&&(t=null),(0,n.guardAgainstInvalidFilters)(e);var l=(0,r.generateUniqueId)(),u=(0,r.isIOS)(),p=(0,r.isMobile)(),c={requestId:l,event:"filter",filter:null==e?void 0:e.map((function(e){var t;return{columnName:e.column,operator:null!==(t=e.operator)&&void 0!==t?t:e.operand,values:e.values,dataType:e.dataType}})),pageStateUpdate:t};if(this.requests[l]={request:{payload:c,onAck:a,onReply:o,status:"pending",sentAt:Date.now()}},!p)return window.parent.postMessage(JSON.stringify(c),"*"),c.requestId;var v=null==e?void 0:e.map((function(e){return{column:e.column,operand:e.operator||e.operand,values:e.values,dataType:e.dataType}}));try{domofilter.postMessage(JSON.stringify(v))}catch(e){console.error("Failed to post message using domofilter:",e);try{u?null===(d=null===(i=null===(s=window.webkit)||void 0===s?void 0:s.messageHandlers)||void 0===i?void 0:i.domofilter)||void 0===d||d.postMessage(v):window.parent.postMessage(JSON.stringify(c),"*")}catch(e){console.error("Failed to post message using webkit:",e),window.parent.postMessage(JSON.stringify(c),"*")}}return l},t.onFiltersUpdated=function(e){var t=this,a=this.listeners.onFiltersUpdated.length>0;return this.connect(),this.listeners.onFiltersUpdated.push(e),a||this.requestFiltersUpdate(null,!1),function(){var a=t.listeners.onFiltersUpdated.indexOf(e);a>=0&&t.listeners.onFiltersUpdated.splice(a,1)}},t.handleFiltersUpdated=function(e,t){e&&(this.listeners.onFiltersUpdated.length&&(null==t||t.postMessage({requestId:e.requestId,event:"ack",filters:e.filters}),this.listeners.onFiltersUpdated.forEach((function(t){return t(e.filters)}))),this.handleReply(e.requestId,e.filters,e.error))}},670:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.guardAgainstInvalidFilters=t.isFilterArray=t.isFilter=void 0;var r=a(248);function n(e){return null!==e&&"object"==typeof e&&"string"==typeof e.column&&(e.hasOwnProperty("operator")||e.hasOwnProperty("operand"))&&Array.isArray(e.values)&&e.hasOwnProperty("dataType")&&(Object.values(r.FilterDataTypes).includes(e.dataType)||"string"==typeof e.dataType&&["NUMERIC","DATE","DATETIME","STRING"].includes(e.dataType.toUpperCase()))&&(Object.values(r.FilterOperatorsString).includes(e.operator||e.operand)||Object.values(r.FilterOperatorsNumeric).includes(e.operator||e.operand)||"string"==typeof(e.operator||e.operand)&&["IN","NOT_IN","CONTAINS","NOT_CONTAINS","STARTS_WITH","NOT_STARTS_WITH","ENDS_WITH","NOT_ENDS_WITH","GREATER_THAN","GREAT_THAN_EQUALS_TO","LESS_THAN","LESS_THAN_EQUALS_TO","BETWEEN","EQUALS","NOT_EQUALS"].includes((e.operator||e.operand).toUpperCase()))}function o(e){return Array.isArray(e)&&e.every(n)}t.isFilter=n,t.isFilterArray=o,t.guardAgainstInvalidFilters=function(e){if(null!==e){if(!Array.isArray(e))throw new TypeError('Filters must be provided as a Filter array or null: { "column": string, "operator": string, "values": any[], "dataType": string }[]');if(0===e.length)throw new TypeError("Filters array cannot be empty.");if(!o(e))throw new TypeError('All filters must be valid Filter objects with required properties: { "column": string, "operator": string, "values": any[], "dataType": string }[]')}}},675:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.handleAppData=t.onAppDataUpdated=t.requestAppDataUpdate=void 0;var r=a(994);t.requestAppDataUpdate=function(e,t,a){var n=(0,r.generateUniqueId)(),o={requestId:n,event:"appData",appData:e};this.requests[n]={request:{payload:o,onAck:t,onReply:a,status:"pending",sentAt:Date.now()}},window.parent.postMessage(JSON.stringify(o),"*")},t.onAppDataUpdated=function(e){var t=this;return this.connect(!0),this.listeners.onAppDataUpdated.push(e),function(){var a=t.listeners.onAppDataUpdated.indexOf(e);a>=0&&t.listeners.onAppDataUpdated.splice(a,1)}},t.handleAppData=function(e,t){e&&(this.listeners.onAppDataUpdated.length&&(null==t||t.postMessage({requestId:e.requestId,event:"ack"}),this.listeners.onAppDataUpdated.forEach((function(t){return t(e.appData)}))),this.handleReply(e.requestId,e.appData,e.error))}},734:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.handleReply=t.handleAck=void 0,t.handleAck=function(e,t){var a,r,n=e.requestId;if(n){var o=this.requests[n];if(!o)return console.warn("No request found for ID: ".concat(n));"pending"!==o.request.status&&console.warn("Request ".concat(n," is not pending, current status: ").concat(o.request.status)),o.request.status="acknowledged",o.request.ackAt=Date.now(),null===(r=(a=o.request).onAck)||void 0===r||r.call(a,o.request.payload)}},t.handleReply=function(e,t,a){var r,n;if(e){var o=this.requests[e];if(!o)return console.warn("No request found for ID: ".concat(e));"acknowledged"!==o.request.status&&console.warn("Request ".concat(e," is not acknowledged, current status: ").concat(o.request.status));var s=a?"rejected":"fulfilled",i=Date.now();o.request.status=s,o.request.repliedAt=i,o.response={payload:t,status:s,error:a,repliedAt:i},null===(n=(r=o.request).onReply)||void 0===n||n.call(r,t,a)}}},748:(e,t)=>{var a;Object.defineProperty(t,"__esModule",{value:!0}),t.RequestMethods=void 0,(a=t.RequestMethods||(t.RequestMethods={})).GET="GET",a.POST="POST",a.PUT="PUT",a.DELETE="DELETE"},797:(e,t)=>{var a;Object.defineProperty(t,"__esModule",{value:!0}),t.DataFormats=void 0,(a=t.DataFormats||(t.DataFormats={})).ARRAY_OF_OBJECTS="application/array-of-objects",a.JSON="application/json",a.CSV="text/csv",a.EXCEL="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",a.PLAIN="text/plain"},928:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.navigate=void 0,t.navigate=function(e,t){var a=JSON.stringify({event:"navigate",url:e,isNewWindow:t});window.parent.postMessage(a,"*")}},992:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.domoFormatToRequestFormat=void 0;var r=a(797);t.domoFormatToRequestFormat=function(e){switch(e){case"array-of-objects":default:return r.DataFormats.ARRAY_OF_OBJECTS;case"array-of-arrays":return r.DataFormats.JSON;case"excel":return r.DataFormats.EXCEL;case"csv":return r.DataFormats.CSV}}},994:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isMobile=t.isIOS=t.generateUniqueId=t.setFormatHeaders=t.getQueryParams=t.isVerifiedOrigin=t.isSuccess=void 0;var r=a(797),n=a(992),o=/^(?:[\w-]+\.)*(domo|domotech|domorig)\.(com|io)$/i,s=/domoapps/i;function i(){var e;if(void 0===globalThis.window||void 0===globalThis.navigator)return!1;var t=globalThis.navigator,a=t.userAgent.toLowerCase(),r=/(?:iphone|ipad|ipod)/.test(a),n=/mac os x/.test(a)&&"ontouchend"in document&&t.maxTouchPoints>1,o=void 0!==(null===(e=globalThis.webkit)||void 0===e?void 0:e.messageHandlers),s=!0===t.standalone,i=globalThis.screen&&globalThis.devicePixelRatio&&globalThis.devicePixelRatio>=2&&(globalThis.screen.width<1024||globalThis.screen.height<1024);return!(!r&&!n)||[o,s,i].filter(Boolean).length>=2}t.isSuccess=function(e){return e>=200&&e<300},t.isVerifiedOrigin=function(e){try{var t=new URL(e);if("localhost"===t.hostname||"127.0.0.1"===t.hostname||t.hostname.endsWith(".localhost"))return!0;if("file:"===t.protocol)return!0;if("https:"!==t.protocol)return!1;var a=t.hostname;return o.test(a)&&!s.test(a)}catch(e){return!1}},t.getQueryParams=function(){var e=location.search.substr(1),t={};return e.split("&").forEach((function(e){var a=e.split("=");t[a[0]]=decodeURIComponent(a[1])})),t},t.setFormatHeaders=function(e,t,a){if(e&&-1!==(null==t?void 0:t.indexOf("data/v"))){var o=void 0!==(null==a?void 0:a.format)?(0,n.domoFormatToRequestFormat)(a.format):r.DataFormats.ARRAY_OF_OBJECTS;e.Accept=o}},t.generateUniqueId=function(){return"undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():"xxxxxxxxyxxxxyxxxyxxxxyxxxxyxxxxy".replace(/[xy]/g,(function(e){return(16*Math.random()|0).toString(16)}))},t.isIOS=i,t.isMobile=function(){if(i())return!0;if(void 0===globalThis.window||void 0===globalThis.navigator)return!1;var e=globalThis.navigator,t=e.userAgent.toLowerCase();return!!/android|webos|blackberry|iemobile|opera mini|mobile|phone/.test(t)||[void 0!==globalThis.domovariable||void 0!==globalThis.domofilter,"ontouchstart"in globalThis.window||e.maxTouchPoints>0,globalThis.screen&&globalThis.devicePixelRatio&&globalThis.devicePixelRatio>=1&&(globalThis.screen.width<1024||globalThis.screen.height<1024)].filter(Boolean).length>=2}}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,a),o.exports}var r={};return(()=>{var e=r;e.Domo=void 0;var t=a(256),n=a(220),o=a(631),s=a(353),i=a(675),d=a(928),l=a(110),u=a(994),p=a(617),c=a(734),v=function(){function e(){}var t;return e.extend=function(t){for(var a in t)Object.prototype.hasOwnProperty.call(e,a)&&(e[a]=t[a])},t=e,e.requests={},e.connected=!1,e.listeners={onDataUpdated:[],onFiltersUpdated:[],onAppDataUpdated:[],onVariablesUpdated:[]},e.get=l.get,e.getAll=l.getAll,e.post=l.post,e.put=l.put,e.delete=l.delete,e.domoHttp=l.domoHttp,e.onDataUpdated=n.onDataUpdated,e.onFiltersUpdated=o.onFiltersUpdated,e.onAppDataUpdated=i.onAppDataUpdated,e.onVariablesUpdated=s.onVariablesUpdated,e.onFiltersUpdate=t.onFiltersUpdated,e.onDataUpdate=t.onDataUpdated,e.onAppData=t.onAppDataUpdated,e.requestFiltersUpdate=o.requestFiltersUpdate,e.requestVariablesUpdate=s.requestVariablesUpdate,e.requestAppDataUpdate=i.requestAppDataUpdate,e.navigate=d.navigate,e.filterContainer=t.requestFiltersUpdate,e.sendVariables=t.requestVariablesUpdate,e.sendAppData=t.requestAppDataUpdate,e.handleAck=c.handleAck,e.handleReply=c.handleReply,e.getRequests=function(){return t.requests},e.getRequest=function(e){return t.requests[e]},e.env=(0,u.getQueryParams)(),e.__util={isVerifiedOrigin:u.isVerifiedOrigin,getQueryParams:u.getQueryParams,setFormatHeaders:u.setFormatHeaders,isSuccess:u.isSuccess},e.connect=function(e){var a;if(void 0===e&&(e=!1),!t.connected){t.connected=!0,t.channel=new MessageChannel,window.parent.postMessage(JSON.stringify({requestId:(0,u.generateUniqueId)(),event:"subscribe",skipFilters:e}),"*",[t.channel.port2]);var r=((a={})[p.DomoEvent.dataUpdated]=n.handleDataUpdated.bind(t),a[p.DomoEvent.filtersUpdated]=o.handleFiltersUpdated.bind(t),a[p.DomoEvent.appData]=i.handleAppData.bind(t),a[p.DomoEvent.variablesUpdated]=s.handleVariablesUpdated.bind(t),a[p.DomoEvent.ack]=c.handleAck.bind(t),a);t.channel.port1.onmessage=function(e){var t=e.ports[0],a=r[e.data.event];null==a||a(e.data,t)},window.addEventListener("message",(function(e){if((0,u.isVerifiedOrigin)(e.origin)){var t,a;try{if("string"==typeof e.data&&e.data.length>0)t=JSON.parse(e.data);else{if("object"!=typeof e.data)return;t=e.data}}catch(e){return}if(!t.hasOwnProperty("alias")||t.hasOwnProperty("event"))t.event&&(a=r[t.event])&&(a(t),"ack"!==t.event&&e.source&&"function"==typeof e.source.postMessage)&&(n={requestId:t.requestId,event:"ack"},t.event===p.DomoEvent.dataUpdated?n.alias=t.alias:t.event===p.DomoEvent.filtersUpdated?n.filters=t.filters:t.event===p.DomoEvent.variablesUpdated&&(n.variables=t.variables),e.source.postMessage(JSON.stringify(n),e.origin));else if((a=r[p.DomoEvent.dataUpdated])&&(a(t),e.source&&"function"==typeof e.source.postMessage)){var n=JSON.stringify({event:"ack",alias:t.alias});e.source.postMessage(n,e.origin)}}}))}},e}();e.Domo=v;var f=new MutationObserver((function(e){for(var a=(0,p.getToken)(),r=0,n=e;r<n.length;r++)n[r].addedNodes.forEach((function(e){e instanceof HTMLElement&&(0,t.handleNode)(e,a)}))}));f.observe(document.documentElement,{childList:!0}),f.observe(document.head,{childList:!0})})(),r.Domo})())); //# sourceMappingURL=data:application/json;charset=utf-8;base64,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RSxVQUFVSSxtQkFDckNDLEVBQUl6QyxVQUFZbkYsRUFBUW1GLFdBR3pCL0IsRUFBTThMLE9BQWVoTSxZQUFZbEMsS0FBS0MsVUFBVTJHLEdBQU14RSxFQUFNc0IsY0FsQ2pFLElBRE1zSyxFQUFVVixFQUFjLEVBQUEvRyxVQUFVRSxnQkFFdEN1SCxFQUFRaFAsR0FHSm9ELEVBQU04TCxRQUF1RCxtQkFBckM5TCxFQUFNOEwsT0FBZWhNLGFBQTRCLENBQzNFLElBQU0wRSxFQUFNNUcsS0FBS0MsVUFBVSxDQUFFbUMsTUFBTyxNQUFPQyxNQUFPckQsRUFBUXFELFFBQ3pERCxFQUFNOEwsT0FBZWhNLFlBQVkwRSxFQUFLeEUsRUFBTXNCLFNBZ0NyRCxHQTFGMEIsQ0E2RjVCLEVBd0JGLEVBck1BLEdBNk5TLEVBQUFvSSxLQUFBQSxFQWRULElBU01xQyxFQUFLLElBQUlDLGtCQVRvQixTQUFDQyxHQUVsQyxJQURBLElBQU16TCxHQUFRLElBQUFwRSxZQUNPLE1BQUE2UCxFQUFBLGVBQUosS0FDUkMsV0FBV3BPLFNBQVEsU0FBQ3lDLEdBQ3JCQSxhQUFnQjRMLGNBQWEsSUFBQTdMLFlBQVdDLEVBQU1DLEVBQ3BELEdBRUosSUFHQXVMLEVBQUdLLFFBQVEzTCxTQUFTNEwsZ0JBQWlCLENBQUVDLFdBQVcsSUFDbERQLEVBQUdLLFFBQVEzTCxTQUFTQyxLQUFNLENBQUU0TCxXQUFXLGdCbEJ0UHZDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZG9tby93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vZG9tby8uL3NyYy9tb2RlbHMvc2VydmljZXMvaHR0cC50cyIsIndlYnBhY2s6Ly9kb21vLy4vc3JjL21vZGVscy9zZXJ2aWNlcy9kYXRhc2V0LnRzIiwid2VicGFjazovL2RvbW8vLi9zcmMvbW9kZWxzL2ludGVyZmFjZXMvZmlsdGVyLnRzIiwid2VicGFjazovL2RvbW8vLi9zcmMvdXRpbHMvZG9tb3V0aWxzLnRzIiwid2VicGFjazovL2RvbW8vLi9zcmMvbW9kZWxzL3NlcnZpY2VzL3ZhcmlhYmxlcy50cyIsIndlYnBhY2s6Ly9kb21vLy4vc3JjL3V0aWxzL3ZhcmlhYmxlLnRzIiwid2VicGFjazovL2RvbW8vLi9zcmMvbW9kZWxzL2NvbnN0YW50cy9nZW5lcmFsLnRzIiwid2VicGFjazovL2RvbW8vLi9zcmMvbW9kZWxzL3NlcnZpY2VzL2ZpbHRlcnMudHMiLCJ3ZWJwYWNrOi8vZG9tby8uL3NyYy91dGlscy9maWx0ZXIudHMiLCJ3ZWJwYWNrOi8vZG9tby8uL3NyYy9tb2RlbHMvc2VydmljZXMvYXBwZGF0YS50cyIsIndlYnBhY2s6Ly9kb21vLy4vc3JjL3V0aWxzL2Fzay1yZXBseS50cyIsIndlYnBhY2s6Ly9kb21vLy4vc3JjL21vZGVscy9lbnVtcy9yZXF1ZXN0LW1ldGhvZHMudHMiLCJ3ZWJwYWNrOi8vZG9tby8uL3NyYy9tb2RlbHMvZW51bXMvZGF0YS1mb3JtYXRzLnRzIiwid2VicGFjazovL2RvbW8vLi9zcmMvbW9kZWxzL3NlcnZpY2VzL25hdmlnYXRpb24udHMiLCJ3ZWJwYWNrOi8vZG9tby8uL3NyYy91dGlscy9kYXRhLWhlbHBlcnMudHMiLCJ3ZWJwYWNrOi8vZG9tby8uL3NyYy91dGlscy9nZW5lcmFsLnRzIiwid2VicGFjazovL2RvbW8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vZG9tby8uL3NyYy9kb21vLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcImRvbW9cIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiZG9tb1wiXSA9IGZhY3RvcnkoKTtcbn0pKHNlbGYsICgpID0+IHtcbnJldHVybiAiLCJpbXBvcnQgeyBnZXRUb2tlbiB9IGZyb20gXCIuLi9jb25zdGFudHMvZ2VuZXJhbFwiO1xuaW1wb3J0IHsgc2V0QXV0aFRva2VuSGVhZGVyLCBzZXRDb250ZW50SGVhZGVycyB9IGZyb20gXCIuLi8uLi91dGlscy9kb21vdXRpbHNcIjtcbmltcG9ydCB7IHNldEZvcm1hdEhlYWRlcnMgfSBmcm9tIFwiLi4vLi4vdXRpbHMvZ2VuZXJhbFwiO1xuaW1wb3J0IHsgRGF0YUZvcm1hdHMgfSBmcm9tIFwiLi4vZW51bXMvZGF0YS1mb3JtYXRzXCI7XG5pbXBvcnQgeyBSZXF1ZXN0TWV0aG9kcyB9IGZyb20gXCIuLi9lbnVtcy9yZXF1ZXN0LW1ldGhvZHNcIjtcbmltcG9ydCB7IFJlcXVlc3RCb2R5LCBSZXF1ZXN0T3B0aW9ucywgT2JqZWN0UmVzcG9uc2VCb2R5LCBBcnJheVJlc3BvbnNlQm9keSwgUmVzcG9uc2VCb2R5IH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcmVxdWVzdFwiO1xuXG5mdW5jdGlvbiBkb21vSHR0cChtZXRob2Q6IFJlcXVlc3RNZXRob2RzLCB1cmw6IHN0cmluZywgb3B0aW9uczogUmVxdWVzdE9wdGlvbnM8J2FycmF5LW9mLW9iamVjdHMnPiwgYm9keT86IFJlcXVlc3RCb2R5KTogUHJvbWlzZTxPYmplY3RSZXNwb25zZUJvZHlbXT47XG5mdW5jdGlvbiBkb21vSHR0cChtZXRob2Q6IFJlcXVlc3RNZXRob2RzLCB1cmw6IHN0cmluZywgb3B0aW9uczogUmVxdWVzdE9wdGlvbnM8J2FycmF5LW9mLWFycmF5cyc+LCBib2R5PzogUmVxdWVzdEJvZHkpOiBQcm9taXNlPEFycmF5UmVzcG9uc2VCb2R5PjtcbmZ1bmN0aW9uIGRvbW9IdHRwKG1ldGhvZDogUmVxdWVzdE1ldGhvZHMsIHVybDogc3RyaW5nLCBvcHRpb25zPzogUmVxdWVzdE9wdGlvbnMsIGJvZHk/OiBSZXF1ZXN0Qm9keSk6IFByb21pc2U8UmVzcG9uc2VCb2R5PjtcbmZ1bmN0aW9uIGRvbW9IdHRwPFQ+KG1ldGhvZDogUmVxdWVzdE1ldGhvZHMsIHVybDogc3RyaW5nLCBvcHRpb25zPzogUmVxdWVzdE9wdGlvbnMsIGJvZHk/OiBSZXF1ZXN0Qm9keSk6IFByb21pc2U8VD47XG5hc3luYyBmdW5jdGlvbiBkb21vSHR0cDxUPihtZXRob2Q6IFJlcXVlc3RNZXRob2RzLCB1cmw6IHN0cmluZywgb3B0aW9uczogUmVxdWVzdE9wdGlvbnMgPSB7fSwgYm9keT86IFJlcXVlc3RCb2R5KTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgY3VzdG9tRmV0Y2ggPSAob3B0aW9ucyBhcyBhbnkpLmZldGNoIGFzIHR5cGVvZiBmZXRjaCB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgc2V0Rm9ybWF0SGVhZGVycyhoZWFkZXJzIGFzIGFueSwgdXJsLCBvcHRpb25zKTtcbiAgICBzZXRDb250ZW50SGVhZGVycyhoZWFkZXJzIGFzIGFueSwgb3B0aW9ucyk7XG4gICAgc2V0QXV0aFRva2VuSGVhZGVyKGhlYWRlcnMgYXMgYW55LCBnZXRUb2tlbigpKTtcblxuICAgIGNvbnN0IGZldGNoT3B0aW9uczogUmVxdWVzdEluaXQgPSB7XG4gICAgICBtZXRob2QsXG4gICAgICBoZWFkZXJzLFxuICAgICAgYm9keTogc2VyaWFsaXplQm9keShib2R5LCBvcHRpb25zLmNvbnRlbnRUeXBlKSxcbiAgICB9O1xuXG4gICAgY29uc3QgZmV0Y2hJbXBsID0gY3VzdG9tRmV0Y2ggfHwgZmV0Y2g7XG4gICAgbGV0IHJlc3BvbnNlOiBSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaEltcGwodXJsLCBmZXRjaE9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGZldGNoRXJyOiBhbnkpIHtcbiAgICAgIHRocm93IGJ1aWxkRXJyb3IodW5kZWZpbmVkLCBmZXRjaEVyci5tZXNzYWdlLCAnJyk7XG4gICAgfVxuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgbGV0IGVycm9yVGV4dCA9IHJlc3BvbnNlLnN0YXR1c1RleHQ7XG4gICAgICBsZXQgZXJyb3JCb2R5ID0gJyc7XG4gICAgICB0cnkge1xuICAgICAgICBlcnJvckJvZHkgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgICAgIGVycm9yVGV4dCA9IGVycm9yQm9keSB8fCBlcnJvclRleHQ7XG4gICAgICB9IGNhdGNoIHt9XG4gICAgICB0aHJvdyBidWlsZEVycm9yKHJlc3BvbnNlLCBlcnJvclRleHQsIGVycm9yQm9keSk7XG4gICAgfVxuICAgIFxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgcGFyc2VSZXNwb25zZTxUPihyZXNwb25zZSwgb3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIgJiYgKGVyci5zdGF0dXMgfHwgZXJyLnN0YXR1cyA9PT0gMCkpIHRocm93IGVycjtcblxuICAgICAgY29uc3QgZXJyb3I6IGFueSA9IG5ldyBFcnJvcihgZG9tb0h0dHAgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICBlcnJvci5vcmlnaW5hbEVycm9yID0gZXJyO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXQodXJsOiBzdHJpbmcsIG9wdGlvbnM6IFJlcXVlc3RPcHRpb25zPCdhcnJheS1vZi1vYmplY3RzJz4pOiBQcm9taXNlPE9iamVjdFJlc3BvbnNlQm9keVtdPjtcbmZ1bmN0aW9uIGdldCh1cmw6IHN0cmluZywgb3B0aW9uczogUmVxdWVzdE9wdGlvbnM8J2FycmF5LW9mLWFycmF5cyc+KTogUHJvbWlzZTxBcnJheVJlc3BvbnNlQm9keT47XG5mdW5jdGlvbiBnZXQodXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8UmVzcG9uc2VCb2R5PjtcbmZ1bmN0aW9uIGdldDxUPih1cmw6IHN0cmluZywgb3B0aW9ucz86IFJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxUPjtcbmZ1bmN0aW9uIGdldDxUPih1cmw6IHN0cmluZywgb3B0aW9ucz86IFJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IGhhbmRsZSA9IHRoaXM/LmRvbW9IdHRwID8/IGRvbW9IdHRwO1xuICByZXR1cm4gaGFuZGxlKFJlcXVlc3RNZXRob2RzLkdFVCwgdXJsLCBvcHRpb25zKTtcbn1cblxuZnVuY3Rpb24gZ2V0QWxsKHVybHM6IHN0cmluZ1tdLCBvcHRpb25zOiBSZXF1ZXN0T3B0aW9uczwnYXJyYXktb2Ytb2JqZWN0cyc+KTogUHJvbWlzZTxPYmplY3RSZXNwb25zZUJvZHlbXVtdPjtcbmZ1bmN0aW9uIGdldEFsbCh1cmxzOiBzdHJpbmdbXSwgb3B0aW9uczogUmVxdWVzdE9wdGlvbnM8J2FycmF5LW9mLWFycmF5cyc+KTogUHJvbWlzZTxBcnJheVJlc3BvbnNlQm9keVtdPjtcbmZ1bmN0aW9uIGdldEFsbCh1cmxzOiBzdHJpbmdbXSwgb3B0aW9ucz86IFJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxSZXNwb25zZUJvZHlbXT47XG5mdW5jdGlvbiBnZXRBbGw8VD4odXJsczogc3RyaW5nW10sIG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8VFtdPjtcbmZ1bmN0aW9uIGdldEFsbDxUID0gUmVzcG9uc2VCb2R5Pih1cmxzOiBzdHJpbmdbXSwgb3B0aW9ucz86IFJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxUW10+IHtcbiAgY29uc3QgaGFuZGxlID0gdGhpcz8uZ2V0ID8/IGdldDtcbiAgcmV0dXJuIFByb21pc2UuYWxsKHVybHMubWFwKHVybCA9PiBoYW5kbGUodXJsLCBvcHRpb25zKSkpO1xufTtcblxuZnVuY3Rpb24gcG9zdCh1cmw6IHN0cmluZywgYm9keT86IFJlcXVlc3RCb2R5LCBvcHRpb25zPzogUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPFJlc3BvbnNlQm9keT47XG5mdW5jdGlvbiBwb3N0PFQ+KHVybDogc3RyaW5nLCBib2R5PzogUmVxdWVzdEJvZHksIG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8VD47XG5mdW5jdGlvbiBwb3N0PFQ+KHVybDogc3RyaW5nLCBib2R5PzogUmVxdWVzdEJvZHksIG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8VD4ge1xuICBjb25zdCBoYW5kbGUgPSB0aGlzPy5kb21vSHR0cCA/PyBkb21vSHR0cDtcbiAgcmV0dXJuIGhhbmRsZShSZXF1ZXN0TWV0aG9kcy5QT1NULCB1cmwsIG9wdGlvbnMsIGJvZHkpO1xufVxuXG5mdW5jdGlvbiBwdXQodXJsOiBzdHJpbmcsIGJvZHk/OiBSZXF1ZXN0Qm9keSwgb3B0aW9ucz86IFJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxSZXNwb25zZUJvZHk+O1xuZnVuY3Rpb24gcHV0PFQ+KHVybDogc3RyaW5nLCBib2R5PzogUmVxdWVzdEJvZHksIG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8VD47XG5mdW5jdGlvbiBwdXQ8VD4odXJsOiBzdHJpbmcsIGJvZHk/OiBSZXF1ZXN0Qm9keSwgb3B0aW9ucz86IFJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IGhhbmRsZSA9IHRoaXM/LmRvbW9IdHRwID8/IGRvbW9IdHRwO1xuICByZXR1cm4gaGFuZGxlKFJlcXVlc3RNZXRob2RzLlBVVCwgdXJsLCBvcHRpb25zLCBib2R5KTtcbn1cblxuZnVuY3Rpb24gdHJhc2godXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8UmVzcG9uc2VCb2R5PjtcbmZ1bmN0aW9uIHRyYXNoPFQ+KHVybDogc3RyaW5nLCBvcHRpb25zPzogUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPFQ+O1xuZnVuY3Rpb24gdHJhc2g8VD4odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8VD4ge1xuICBjb25zdCBoYW5kbGUgPSB0aGlzPy5kb21vSHR0cCA/PyBkb21vSHR0cDtcbiAgcmV0dXJuIGhhbmRsZShSZXF1ZXN0TWV0aG9kcy5ERUxFVEUsIHVybCwgb3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZUJvZHkoYm9keTogUmVxdWVzdEJvZHksIGNvbnRlbnRUeXBlPzogc3RyaW5nKTogYW55IHtcbiAgICBpZiAoIWJvZHkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKCFjb250ZW50VHlwZSB8fCBjb250ZW50VHlwZSA9PT0gRGF0YUZvcm1hdHMuSlNPTikge1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICAgIH1cbiAgICByZXR1cm4gYm9keSBhcyBhbnk7XG4gIH1cblxuZnVuY3Rpb24gYnVpbGRFcnJvcihyZXNwb25zZTogUmVzcG9uc2UgfCB1bmRlZmluZWQsIGVycm9yVGV4dDogc3RyaW5nLCBlcnJvckJvZHk6IHN0cmluZyk6IEVycm9yIHtcbiAgY29uc3QgZXJyb3I6IGFueSA9IG5ldyBFcnJvcihyZXNwb25zZSA/IGBIVFRQIGVycm9yICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtlcnJvclRleHR9YCA6IGVycm9yVGV4dCk7XG4gIGlmIChyZXNwb25zZSkge1xuICAgIGVycm9yLnN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cztcbiAgICBlcnJvci5zdGF0dXNUZXh0ID0gcmVzcG9uc2Uuc3RhdHVzVGV4dDtcbiAgICBlcnJvci5ib2R5ID0gZXJyb3JCb2R5O1xuICAgIGVycm9yLmhlYWRlcnMgPSB7fTtcbiAgICBpZiAocmVzcG9uc2UuaGVhZGVycyAmJiB0eXBlb2YgcmVzcG9uc2UuaGVhZGVycy5mb3JFYWNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXNwb25zZS5oZWFkZXJzLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgZXJy