@textback/notification-widget 2.0.0-9450 → 2.0.1-102913
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/.eslintrc.js +291 -291
- package/build/index.js +6 -3
- package/build/sdk.js +3 -3
- package/package.json +11 -8
- package/promote_tag.sh +1 -1
- package/{README.md → readme.md} +569 -490
- package/server.js +134 -134
- package/src/libraries/ai.1.0.11.js +4088 -4088
- package/src/libraries/localization/getLocale.js +17 -0
- package/src/libraries/localization/locales/.tern-port +1 -0
- package/src/libraries/localization/locales/cs.js +23 -0
- package/src/libraries/localization/locales/en.js +23 -0
- package/src/libraries/localization/locales/index.js +9 -0
- package/src/libraries/localization/locales/pl.js +23 -0
- package/src/libraries/localization/locales/ro.js +23 -0
- package/src/libraries/localization/locales/ru.js +22 -0
- package/src/libraries/localization/locales/uk.js +23 -0
- package/src/libraries/localization/text.js +9 -0
- package/src/libraries/t.js +82 -82
- package/src/sdk/channels/channel.js +30 -30
- package/src/sdk/channels/facebook.js +13 -13
- package/src/sdk/channels/factory.js +3 -3
- package/src/sdk/channels/skype.js +12 -12
- package/src/sdk/channels/telegram.js +18 -13
- package/src/sdk/channels/viber.js +12 -12
- package/src/sdk/channels/vk-modal/vk-modal.html +17 -17
- package/src/sdk/channels/vk-modal/vk-modal.js +25 -25
- package/src/sdk/channels/vk-modal/vk-modal.scss +116 -116
- package/src/sdk/channels/vk.js +195 -173
- package/src/sdk/channels/whatsapp.js +20 -11
- package/src/sdk/channels/whatsappb.js +27 -0
- package/src/sdk/events/observer.js +46 -46
- package/src/sdk/index.js +5 -5
- package/src/sdk/sdk.js +67 -30
- package/src/sdk/utils/apiErrorHandler.js +11 -11
- package/src/sdk/utils/appInsights.js +88 -88
- package/src/sdk/utils/browserInfo.js +8 -8
- package/src/sdk/utils/constants.js +17 -17
- package/src/sdk/utils/cookies.js +67 -50
- package/src/sdk/utils/find.js +7 -7
- package/src/sdk/utils/loadConfig.js +20 -20
- package/src/sdk/utils/loadDeepLink.js +48 -21
- package/src/sdk/utils/loadScript.js +25 -25
- package/src/sdk/utils/loadSubscriptions.js +6 -6
- package/src/sdk/utils/parseQueryString.js +33 -33
- package/src/sdk/utils/windowHelper.js +25 -0
- package/src/sdk/widget/widget.js +192 -140
- package/src/widget/components/index.js +6 -2
- package/src/widget/components/tb-notification-button/facebook.js +9 -2
- package/src/widget/components/tb-notification-button/index.js +34 -34
- package/src/widget/components/tb-notification-button/styles.scss +657 -433
- package/src/widget/components/tb-notification-button/telegram.js +9 -2
- package/src/widget/components/tb-notification-button/viber.js +9 -2
- package/src/widget/components/tb-notification-button/vk.js +60 -47
- package/src/widget/components/tb-notification-button/whatsapp.js +15 -8
- package/src/widget/components/tb-notification-button/whatsappb.js +58 -0
- package/src/widget/components/tb-notification-widget/index.js +597 -353
- package/src/widget/components/tb-notification-widget/normalize.scss +395 -394
- package/src/widget/components/tb-notification-widget/styles.scss +514 -136
- package/src/widget/components/tb-nw-wahunter/index.js +259 -0
- package/src/widget/components/tb-nw-wahunter/styles.scss +471 -0
- package/src/widget/config.js +5 -5
- package/src/widget/icons/icon_chat_window.svg +1 -0
- package/src/widget/icons/icon_close.svg +1 -0
- package/src/widget/icons/icon_facebook.svg +7 -7
- package/src/widget/icons/icon_facebook_circle.svg +7 -9
- package/src/widget/icons/icon_instagram_circle.svg +95 -95
- package/src/widget/icons/icon_skype.svg +44 -44
- package/src/widget/icons/icon_skype_circle.svg +46 -46
- package/src/widget/icons/icon_skype_new.svg +113 -113
- package/src/widget/icons/icon_tg.svg +25 -25
- package/src/widget/icons/icon_tg_circle.svg +17 -27
- package/src/widget/icons/icon_viber.svg +75 -75
- package/src/widget/icons/icon_viber_circle.svg +67 -77
- package/src/widget/icons/icon_viber_new.svg +102 -102
- package/src/widget/icons/icon_vk.svg +14 -14
- package/src/widget/icons/icon_vk_circle.svg +16 -16
- package/src/widget/icons/icon_whatsapp.svg +147 -147
- package/src/widget/icons/icon_whatsapp_circle.svg +4 -123
- package/src/widget/icons/icon_whatsapp_hollow.svg +128 -0
- package/src/widget/icons/icon_whatsapp_new.svg +127 -127
- package/src/widget/icons/icon_whatsappb.svg +147 -0
- package/src/widget/icons/icon_whatsappb_circle.svg +4 -0
- package/src/widget/icons/icon_whatsappb_new.svg +127 -0
- package/src/widget/icons/paper-plane-arrow.svg +3 -0
- package/src/widget/icons/tb-logo.svg +21 -0
- package/src/widget/index.js +28 -28
- package/src/widget/locales/cs.js +42 -0
- package/src/widget/locales/en.js +42 -20
- package/src/widget/locales/index.js +2 -2
- package/src/widget/locales/pl.js +41 -19
- package/src/widget/locales/ro.js +41 -20
- package/src/widget/locales/ru.js +40 -19
- package/src/widget/locales/uk.js +40 -19
- package/src/widget/utils/cookiesEx.js +41 -41
- package/src/widget/utils/getLocale.js +4 -2
- package/src/widget/utils/stringifyAttributes.js +19 -19
- package/src/widget/utils/text.js +2 -1
- package/src/widget/utils/widgetsStorage.js +28 -28
- package/src/widget/widget.entry.js +3 -4
- package/tests/gf.html +35 -35
- package/tests/gf.js +21 -21
- package/tests/index.js +61 -61
- package/views/examples.ejs +7 -3
- package/views/sdk.html +274 -256
- package/webpack.common.js +72 -72
- package/webpack.dev.js +15 -15
- package/webpack.prod.js +10 -17
- package/build/index.js.map +0 -1
- package/build/sdk.js.map +0 -1
- package/src/widget/components/tb-notification-button/skype.js +0 -47
- package/src/widget/icons/text-back-badge.png +0 -0
- package/src/widget/locales/cz.js +0 -20
package/build/sdk.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["webpack:///sdk.js","webpack:///webpack/bootstrap 76368bd652f6fc5f994a","webpack:///./src/sdk/utils/constants.js","webpack:///./src/sdk/channels/channel.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./src/sdk/utils/apiErrorHandler.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/uuid-js/lib/uuid.js","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/css-loader/lib/css-base.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./src/sdk/utils/appInsights.js","webpack:///./src/sdk/events/observer.js","webpack:///./src/sdk/index.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./src/sdk/utils/cookies.js","webpack:///./src/sdk/utils/find.js","webpack:///./src/widget/icons/icon_vk.svg","webpack:///./src/sdk/sdk.js","webpack:///./node_modules/whatwg-fetch/fetch.js","webpack:///./src/sdk/widget/widget.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./src/sdk/utils/loadConfig.js","webpack:///./src/sdk/utils/loadDeepLink.js","webpack:///./src/sdk/utils/loadSubscriptions.js","webpack:///./src/sdk/utils/parseQueryString.js","webpack:///./src/sdk/channels/factory.js","webpack:///./src/sdk/channels/facebook.js","webpack:///./src/sdk/channels/skype.js","webpack:///./src/sdk/channels/telegram.js","webpack:///./src/sdk/channels/viber.js","webpack:///./src/sdk/channels/vk.js","webpack:///./src/sdk/utils/loadScript.js","webpack:///./src/sdk/channels/vk-modal/vk-modal.js","webpack:///./src/libraries/t.js","webpack:///./src/sdk/channels/vk-modal/vk-modal.scss?f956","webpack:///./src/sdk/channels/vk-modal/vk-modal.scss","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///./src/sdk/channels/vk-modal/vk-modal.html","webpack:///./src/sdk/channels/whatsapp.js","webpack:///./src/sdk/utils/browserInfo.js","webpack:///./node_modules/es6-promise/dist/es6-promise.js","webpack:///./node_modules/process/browser.js","webpack:///./src/sdk/sdk.entry.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","value","constants","COOKIE_NAME_PREFIX","WIDGET_USER_ID_COOKIE_TTL","COOKIE_WIDGET_USER_ID","SECONDS_IN_DAY","WIDGET_TYPE_API_CALL","WIDGET_TYPE_WIDGET","DEFAULT_WIDGET_TYPE","SUBSCRIPTION_WINDOW_PROPS","default","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","length","descriptor","writable","key","protoProps","staticProps","_observer","Channel","channelData","arguments","undefined","deeplink","widget","this","config","channel","channelId","enabled","id","slug","initPromise","hasError","Observer","trigger","EVENTS","SUBSCRIBE_START","widgetId","_console","console","error","apply","isObject","type","apiErrorHandler","res","json","then","data","$error","Promise","reject","msg","scn","headers","catch","status","freeGlobal","freeSelf","self","root","Function","isArrayLike","isLength","isFunction","isObjectLike","baseGetTag","undefinedTag","nullTag","symToStringTag","getRawTag","objectToString","Symbol","toStringTag","eq","other","isPrototype","Ctor","constructor","objectProto","UUIDjs","getRandomInt","min","max","Math","floor","random","maxFromBits","bits","pow","limitUI04","limitUI06","limitUI08","limitUI12","limitUI14","limitUI16","limitUI32","limitUI40","limitUI48","randomUI04","randomUI06","randomUI08","randomUI12","randomUI14","randomUI16","randomUI32","randomUI40","randomUI48","paddedString","string","z","String","fromParts","timeLow","timeMid","timeHiAndVersion","clockSeqHiAndReserved","clockSeqLow","node","version","hex","toString","toURN","toBytes","parts","split","ints","intPos","j","parseInt","substr","equals","uuid","UUID","getTimeFieldValues","time","ts","Date","UTC","hm","low","mid","hi","timestamp","_create4","_create1","now","getTime","sequence","tick","tf","tl","thav","cshar","csl","create","fromTime","last","firstFromTime","lastFromTime","fromURN","strId","r","exec","fromBytes","str","pos","octet","fromBinary","binary","charCodeAt","Error","new","newTS","assignValue","copyObject","createAssigner","keys","assign","source","baseAssignValue","tag","funcTag","genTag","asyncTag","proxyTag","webpackPolyfill","deprecate","paths","children","cssWithMappingToString","item","useSourceMap","content","cssMapping","btoa","sourceMapping","toComment","concat","sources","map","sourceRoot","join","sourceMap","unescape","encodeURIComponent","JSON","stringify","list","mediaQuery","alreadyImportedModules","push","addStylesToDom","styles","options","domStyle","stylesInDom","refs","addStyle","listToStyles","newStyles","base","css","media","part","insertStyleElement","style","getElement","insertInto","lastStyleElementInsertedAtTop","stylesInsertedAtTop","insertAt","nextSibling","insertBefore","appendChild","firstChild","before","removeStyleElement","parentNode","removeChild","idx","indexOf","splice","createStyleElement","document","createElement","attrs","addAttrs","createLinkElement","link","rel","el","forEach","setAttribute","obj","update","remove","result","transform","singleton","styleIndex","singletonCounter","applyToSingletonTag","bind","URL","createObjectURL","revokeObjectURL","Blob","updateLink","href","applyToTag","newObj","index","styleSheet","cssText","replaceText","cssNode","createTextNode","childNodes","autoFixUrls","convertToAbsoluteUrls","fixUrls","blob","oldSrc","isOldIE","fn","memo","window","all","atob","selector","styleTarget","HTMLIFrameElement","contentDocument","head","e","querySelector","DEBUG","newList","mayRemove","textStore","replacement","filter","Boolean","objValue","getNative","func","getValue","baseIsNative","global","g","eval","identity","MAX_SAFE_INTEGER","isIndex","reIsUint","test","appInsights","init","aiKey","userId","accountId","_this","resolve","TextBack","context","t","queue","u","f","src","url","getElementsByTagName","cookie","pop","disableExceptionTracking","instrumentationKey","disableAjaxTracking","timer","setInterval","_onerror","clearInterval","setAuthenticatedUserContext","trackEvent","eventName","trackButtonClick","channelType","payload","widgetUrl","location","trackWidgetEvent","reason","_assign","_assign2","WIDGET_INIT","_handlers","on","fnIndex","eventData","setTimeout","handler","err","_sdk","_sdk2","SDK","customizer","isNew","newValue","assigner","baseRest","guard","isIterateeCall","arrayLikeKeys","inherited","isArr","isArray","isArg","isArguments","isBuff","isBuffer","isType","isTypedArray","skipIndexes","baseTimes","baseIsArguments","propertyIsEnumerable","Array","stubFalse","freeExports","nodeType","freeModule","moduleExports","Buffer","nativeIsBuffer","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","overArg","arg","cookies","getCookie","nameEQ","ca","charAt","substring","decodeURIComponent","setCookie","expires","date","setTime","toUTCString","deleteCookie","find","array","predicate","_widget","_widget2","polyfill","widgets","Widget","initialize","normalizeName","toLowerCase","normalizeValue","iteratorFor","items","iterator","next","shift","done","support","iterable","Headers","append","header","getOwnPropertyNames","consumed","body","bodyUsed","fileReaderReady","reader","onload","onerror","readBlobAsArrayBuffer","FileReader","promise","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","Uint8Array","chars","fromCharCode","bufferClone","slice","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","formData","FormData","_bodyFormData","searchParams","URLSearchParams","arrayBuffer","isDataView","_bodyArrayBuffer","ArrayBuffer","isArrayBufferView","rejected","text","decode","parse","normalizeMethod","method","upcased","toUpperCase","methods","Request","input","credentials","mode","referrer","form","trim","bytes","replace","parseHeaders","rawHeaders","line","Response","bodyInit","ok","statusText","fetch","viewClasses","DataView","isView","oldValue","has","callback","thisArg","values","entries","clone","response","redirectStatuses","redirect","RangeError","request","xhr","XMLHttpRequest","getAllResponseHeaders","responseURL","responseText","ontimeout","open","withCredentials","responseType","setRequestHeader","send","_interopRequireDefault","_slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_s","_i","_uuidJs","_uuidJs2","_apiErrorHandler","_loadConfig","_loadConfig2","_loadDeepLink","_loadDeepLink2","_loadSubscriptions","_loadSubscriptions2","_cookies","_cookies2","_constants","_constants2","_parseQueryString","_parseQueryString2","_find","_find2","_appInsights","_appInsights2","_factory","_factory2","INITIAL_CONFIG_DEFAULTS","apiPath","sdk","initialConfig","channels","initialized","widgetUserId","getWidgetUserId","insecureContext","createInsecureContext","secureContextToken","initializeConfig","_ref","_ref2","subscriptions","$value","$items","useVKApi","getAiKey","user","_ref3","_ref4","channelsFactory","channelInitPromises","channelPromises","overrideConfig","channelCode","getEnabledChannels","chan","subscribe","ctx","pageTitle","title","pageUrl","protocol","host","pathname","params","search","timezoneOffset","getTimezoneOffset","isMasked","reIsNative","reIsHostCtor","toSource","reRegExpChar","funcProto","funcToString","RegExp","isOwn","unmasked","nativeObjectToString","maskSrcKey","coreJsData","uid","IE_PROTO","start","setToString","overRest","nativeMax","args","otherArgs","baseSetToString","shortOut","constant","count","lastCalled","stamp","nativeNow","remaining","HOT_SPAN","HOT_COUNT","baseKeys","iteratee","argsTag","typedArrayTags","freeProcess","process","types","require","binding","nativeKeys","loadConfig","cache","loadingPromise","_apiErrorHandler2","loadDeepLink","Content-Type","loadSubscriptions","parseQueryString","query","vars","queryString","pair","_typeof","getConstructor","FacebookChannel","SkypeChannel","TelegramChannel","ViberChanel","VKChannel","WhatsappChannel","_facebook","_facebook2","_skype","_skype2","_telegram","_telegram2","_viber","_viber2","_vk","_vk2","_whatsapp","_whatsapp2","channelObj","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","_get","receiver","desc","getOwnPropertyDescriptor","parent","getPrototypeOf","_channel","_channel2","_Channel","ViberChannel","loadVkLib","VK","Auth","_loadScript2","initVK","apiId","_apiId","getLoginStatus","_loadScript","_vkModal","_vkModal2","vkApiId","vkPluginContainerId","authorized","getSession","__handleVKLoadingError","subscribeViaPlugin","_this2","__allowMessagesFromGroup","__login","_this3","Api","group_id","v","vkSession","vkUserId","__textbackSubscribe","login","address","remoteAddress","chatId","_this4","modal","VKModal","renderVKSubscriptionButton","onClose","vkSubscribeHandler","unsubscribe","height","containerId","Widgets","AllowMessagesFromCommunity","disableAllowMessageEvents","loadScript","ready","scriptElement","async","onreadystatechange","readyState","onabort","_t","_t2","_icon_vk","_icon_vk2","modalContainer","innerHTML","vkTemplate","render","vkIcon","element","addEventListener","event","classList","add","template","scrub","val","Option","get_value","fragment","blockregex","_","__","meta","inner","if_true","has_else","if_false","temp","_key","_val","valregex","hmr","locals","baseUrl","currentDir","fullMatch","origUrl","unquotedOrigUrl","$1","newUrl","_browserInfo","_browserInfo2","prefixText","domainPrefix","browserInfo","isMobile","navigator","userAgent","factory","objectOrFunction","x","setScheduler","scheduleFn","customSchedulerFn","setAsap","asapFn","asap","useVertxTimer","vertxNext","flush","useSetTimeout","globalSetTimeout","len","onFulfillment","onRejection","child","noop","PROMISE_ID","makePromise","_state","invokeCallback","_result","resolve$1","selfFulfillment","cannotReturnOwn","getThen","TRY_CATCH_ERROR","tryThen","then$$1","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","sealed","fulfill","_label","handleOwnThenable","FULFILLED","REJECTED","handleMaybeThenable","maybeThenable","publishRejection","publish","PENDING","_subscribers","subscribers","settled","detail","tryCatch","hasCallback","succeeded","failed","initializePromise","resolver","nextId","validationError","Enumerator","race","reject$1","needsResolver","needsNew","local","P","promiseToString","cast","Promise$1","_isArray","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","Uint8ClampedArray","importScripts","MessageChannel","nextTick","iterations","observer","observe","characterData","port1","onmessage","port2","postMessage","vertx","runOnLoop","runOnContext","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","_settledAt","_willSettleAt","state","enumerator","finally","_setScheduler","_setAsap","_asap","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queueIndex","drainQueue","timeout","run","Item","browser","env","argv","versions","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","cwd","chdir","dir","umask","_index"],"mappings":"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","file":"sdk.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 101);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar COOKIE_NAME_PREFIX = 'tb_notif_widget_';\nvar constants = {\n COOKIE_NAME_PREFIX: COOKIE_NAME_PREFIX,\n /**\r\n * 10 years\r\n */\n WIDGET_USER_ID_COOKIE_TTL: 315360000,\n COOKIE_WIDGET_USER_ID: COOKIE_NAME_PREFIX + 'widgetUserId',\n SECONDS_IN_DAY: 86400,\n // make subscription using API call\n WIDGET_TYPE_API_CALL: 'apiCall',\n // make subscription using native social widget\n WIDGET_TYPE_WIDGET: 'widget',\n DEFAULT_WIDGET_TYPE: 'widget',\n SUBSCRIPTION_WINDOW_PROPS: 'width=600,height=800'\n};\n\nexports.default = constants;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _observer = __webpack_require__(28);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Channel = function () {\n function Channel() {\n var channelData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var deeplink = arguments[1];\n var widget = arguments[2];\n\n _classCallCheck(this, Channel);\n\n this.config = channelData;\n\n this.channel = channelData.channel;\n this.channelId = channelData.channelId;\n this.enabled = channelData.enabled;\n this.id = channelData.id;\n this.slug = channelData.slug;\n\n this.deeplink = deeplink;\n this.widget = widget;\n\n this.initPromise = null;\n this.hasError = false;\n }\n\n _createClass(Channel, [{\n key: 'subscribe',\n value: function subscribe() {\n _observer.Observer.trigger(_observer.EVENTS.SUBSCRIBE_START, {\n widgetId: this.widget.id,\n channel: this\n });\n }\n }, {\n key: 'reportError',\n value: function reportError() {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n this.hasError = true;\n }\n }]);\n\n return Channel;\n}();\n\nexports.default = Channel;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = apiErrorHandler;\nfunction apiErrorHandler(res) {\n return res.json().then(function (data) {\n if (data.$error) {\n return Promise.reject(data.$error.msg || data.$error.scn);\n }\n data.headers = res.headers;\n\n return data;\n }).catch(function () {\n return Promise.reject(\"widget error: \" + res.status);\n });\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar freeGlobal = __webpack_require__(22);\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isFunction = __webpack_require__(13),\n isLength = __webpack_require__(25);\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(21),\n getRawTag = __webpack_require__(49),\n objectToString = __webpack_require__(50);\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\n/*\n * UUID-js: A js library to generate and parse UUIDs, TimeUUIDs and generate\n * TimeUUID based on dates for range selections.\n * @see http://www.ietf.org/rfc/rfc4122.txt\n **/\n\nfunction UUIDjs() {\n};\n\nUUIDjs.maxFromBits = function(bits) {\n return Math.pow(2, bits);\n};\n\nUUIDjs.limitUI04 = UUIDjs.maxFromBits(4);\nUUIDjs.limitUI06 = UUIDjs.maxFromBits(6);\nUUIDjs.limitUI08 = UUIDjs.maxFromBits(8);\nUUIDjs.limitUI12 = UUIDjs.maxFromBits(12);\nUUIDjs.limitUI14 = UUIDjs.maxFromBits(14);\nUUIDjs.limitUI16 = UUIDjs.maxFromBits(16);\nUUIDjs.limitUI32 = UUIDjs.maxFromBits(32);\nUUIDjs.limitUI40 = UUIDjs.maxFromBits(40);\nUUIDjs.limitUI48 = UUIDjs.maxFromBits(48);\n\n// Returns a random integer between min and max\n// Using Math.round() will give you a non-uniform distribution!\n// @see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/random\nfunction getRandomInt(min, max) {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nUUIDjs.randomUI04 = function() {\n return getRandomInt(0, UUIDjs.limitUI04-1);\n};\nUUIDjs.randomUI06 = function() {\n return getRandomInt(0, UUIDjs.limitUI06-1);\n};\nUUIDjs.randomUI08 = function() {\n return getRandomInt(0, UUIDjs.limitUI08-1);\n};\nUUIDjs.randomUI12 = function() {\n return getRandomInt(0, UUIDjs.limitUI12-1);\n};\nUUIDjs.randomUI14 = function() {\n return getRandomInt(0, UUIDjs.limitUI14-1);\n};\nUUIDjs.randomUI16 = function() {\n return getRandomInt(0, UUIDjs.limitUI16-1);\n};\nUUIDjs.randomUI32 = function() {\n return getRandomInt(0, UUIDjs.limitUI32-1);\n};\nUUIDjs.randomUI40 = function() {\n return (0 | Math.random() * (1 << 30)) + (0 | Math.random() * (1 << 40 - 30)) * (1 << 30);\n};\nUUIDjs.randomUI48 = function() {\n return (0 | Math.random() * (1 << 30)) + (0 | Math.random() * (1 << 48 - 30)) * (1 << 30);\n};\n\nUUIDjs.paddedString = function(string, length, z) {\n string = String(string);\n z = (!z) ? '0' : z;\n var i = length - string.length;\n for (; i > 0; i >>>= 1, z += z) {\n if (i & 1) {\n string = z + string;\n }\n }\n return string;\n};\n\nUUIDjs.prototype.fromParts = function(timeLow, timeMid, timeHiAndVersion, clockSeqHiAndReserved, clockSeqLow, node) {\n this.version = (timeHiAndVersion >> 12) & 0xF;\n this.hex = UUIDjs.paddedString(timeLow.toString(16), 8)\n + '-'\n + UUIDjs.paddedString(timeMid.toString(16), 4)\n + '-'\n + UUIDjs.paddedString(timeHiAndVersion.toString(16), 4)\n + '-'\n + UUIDjs.paddedString(clockSeqHiAndReserved.toString(16), 2)\n + UUIDjs.paddedString(clockSeqLow.toString(16), 2)\n + '-'\n + UUIDjs.paddedString(node.toString(16), 12);\n return this;\n};\n\nUUIDjs.prototype.toString = function() {\n return this.hex;\n};\nUUIDjs.prototype.toURN = function() {\n return 'urn:uuid:' + this.hex;\n};\n\nUUIDjs.prototype.toBytes = function() {\n var parts = this.hex.split('-');\n var ints = [];\n var intPos = 0;\n for (var i = 0; i < parts.length; i++) {\n for (var j = 0; j < parts[i].length; j+=2) {\n ints[intPos++] = parseInt(parts[i].substr(j, 2), 16);\n }\n }\n return ints;\n};\n\nUUIDjs.prototype.equals = function(uuid) {\n if (!(uuid instanceof UUID)) {\n return false;\n }\n if (this.hex !== uuid.hex) {\n return false;\n }\n return true;\n};\n\nUUIDjs.getTimeFieldValues = function(time) {\n var ts = time - Date.UTC(1582, 9, 15);\n var hm = ((ts / 0x100000000) * 10000) & 0xFFFFFFF;\n return { low: ((ts & 0xFFFFFFF) * 10000) % 0x100000000,\n mid: hm & 0xFFFF, hi: hm >>> 16, timestamp: ts };\n};\n\nUUIDjs._create4 = function() {\n return new UUIDjs().fromParts(\n UUIDjs.randomUI32(),\n UUIDjs.randomUI16(),\n 0x4000 | UUIDjs.randomUI12(),\n 0x80 | UUIDjs.randomUI06(),\n UUIDjs.randomUI08(),\n UUIDjs.randomUI48()\n );\n};\n\nUUIDjs._create1 = function() {\n var now = new Date().getTime();\n var sequence = UUIDjs.randomUI14();\n var node = (UUIDjs.randomUI08() | 1) * 0x10000000000 + UUIDjs.randomUI40();\n var tick = UUIDjs.randomUI04();\n var timestamp = 0;\n var timestampRatio = 1/4;\n\n if (now != timestamp) {\n if (now < timestamp) {\n sequence++;\n }\n timestamp = now;\n tick = UUIDjs.randomUI04();\n } else if (Math.random() < timestampRatio && tick < 9984) {\n tick += 1 + UUIDjs.randomUI04();\n } else {\n sequence++;\n }\n\n var tf = UUIDjs.getTimeFieldValues(timestamp);\n var tl = tf.low + tick;\n var thav = (tf.hi & 0xFFF) | 0x1000;\n\n sequence &= 0x3FFF;\n var cshar = (sequence >>> 8) | 0x80;\n var csl = sequence & 0xFF;\n\n return new UUIDjs().fromParts(tl, tf.mid, thav, cshar, csl, node);\n};\n\nUUIDjs.create = function(version) {\n version = version || 4;\n return this['_create' + version]();\n};\n\nUUIDjs.fromTime = function(time, last) {\n last = (!last) ? false : last;\n var tf = UUIDjs.getTimeFieldValues(time);\n var tl = tf.low;\n var thav = (tf.hi & 0xFFF) | 0x1000; // set version '0001'\n if (last === false) {\n return new UUIDjs().fromParts(tl, tf.mid, thav, 0, 0, 0);\n } else {\n return new UUIDjs().fromParts(tl, tf.mid, thav, 0x80 | UUIDjs.limitUI06, UUIDjs.limitUI08 - 1, UUIDjs.limitUI48 - 1);\n }\n};\n\nUUIDjs.firstFromTime = function(time) {\n return UUIDjs.fromTime(time, false);\n};\nUUIDjs.lastFromTime = function(time) {\n return UUIDjs.fromTime(time, true);\n};\n\nUUIDjs.fromURN = function(strId) {\n var r, p = /^(?:urn:uuid:|\\{)?([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{2})([0-9a-f]{2})-([0-9a-f]{12})(?:\\})?$/i;\n if ((r = p.exec(strId))) {\n return new UUIDjs().fromParts(parseInt(r[1], 16), parseInt(r[2], 16),\n parseInt(r[3], 16), parseInt(r[4], 16),\n parseInt(r[5], 16), parseInt(r[6], 16));\n }\n return null;\n};\n\nUUIDjs.fromBytes = function(ints) {\n if (ints.length < 5) {\n return null;\n }\n var str = '';\n var pos = 0;\n var parts = [4, 2, 2, 2, 6];\n for (var i = 0; i < parts.length; i++) {\n for (var j = 0; j < parts[i]; j++) {\n var octet = ints[pos++].toString(16);\n if (octet.length == 1) {\n octet = '0' + octet;\n }\n str += octet;\n }\n if (parts[i] !== 6) {\n str += '-';\n }\n }\n return UUIDjs.fromURN(str);\n};\n\nUUIDjs.fromBinary = function(binary) {\n var ints = [];\n for (var i = 0; i < binary.length; i++) {\n ints[i] = binary.charCodeAt(i);\n if (ints[i] > 255 || ints[i] < 0) {\n throw new Error('Unexpected byte in binary data.');\n }\n }\n return UUIDjs.fromBytes(ints);\n};\n\n// Aliases to support legacy code. Do not use these when writing new code as\n// they may be removed in future versions!\nUUIDjs.new = function() {\n return this.create(4);\n};\nUUIDjs.newTS = function() {\n return this.create(1);\n};\n\nmodule.exports = UUIDjs;\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assignValue = __webpack_require__(18),\n copyObject = __webpack_require__(30),\n createAssigner = __webpack_require__(31),\n isArrayLike = __webpack_require__(5),\n isPrototype = __webpack_require__(9),\n keys = __webpack_require__(63);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(19);\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(7),\n isObject = __webpack_require__(2);\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(selector) {\n\t\tif (typeof memo[selector] === \"undefined\") {\n\t\t\tvar styleTarget = fn.call(this, selector);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[selector] = styleTarget;\n\t\t}\n\t\treturn memo[selector]\n\t};\n})(function (target) {\n\treturn document.querySelector(target)\n});\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = __webpack_require__(87);\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n\tif (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\toptions.attrs.type = \"text/css\";\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\toptions.attrs.type = \"text/css\";\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = options.transform(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n\n\n/***/ }),\n/* 17 */,\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseAssignValue = __webpack_require__(12),\n eq = __webpack_require__(8);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getNative = __webpack_require__(20);\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsNative = __webpack_require__(48),\n getValue = __webpack_require__(54);\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar root = __webpack_require__(4);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(23)))\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports) {\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar appInsights = {\n init: function init(aiKey, userId, accountId) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n window.TextBack = window.TextBack || {};\n var context = window.TextBack;\n if (aiKey) {\n var _appInsights = context.appInsights || function (config) {\n //basically most below code is got from MS so it's kinda unreadable hmm.. see MS instructions on appinsigths\n function r(config) {\n t[config] = function () {\n var i = arguments;\n t.queue.push(function () {\n t[config].apply(t, i);\n });\n };\n }\n\n var t = {\n config: config\n },\n u = document,\n e = context,\n o = \"script\",\n s = u.createElement(o),\n i = void 0,\n f = void 0;\n for (s.src = config.url || \"//az416426.vo.msecnd.net/scripts/a/ai.0.js\", u.getElementsByTagName(o)[0].parentNode.appendChild(s), t.cookie = u.cookie, t.queue = [], i = [\"Event\", \"Exception\", \"Metric\", \"PageView\", \"Trace\"]; i.length;) {\n r(\"track\" + i.pop());\n }return r(\"setAuthenticatedUserContext\"), r(\"clearAuthenticatedUserContext\"), config.disableExceptionTracking || (i = \"onerror\", r(\"_\" + i), f = e[i], e[i] = function (config, r, u, e, o) {\n var s = f && f(config, r, u, e, o);\n return s !== !0 && t[\"_\" + i](config, r, u, e, o), s;\n }), t;\n }({\n instrumentationKey: aiKey,\n // Don't log browser exceptions.\n disableExceptionTracking: true,\n // Don't log ajax calls.\n disableAjaxTracking: true,\n //this url will point to the library - use @dev for testing when updating\\editing lib - use @latest for production version of lib\n //keep in mind that prod widget should always use @latest\n url: '//unpkg.com/@textback/notification-widget@latest/src/libraries/ai.1.0.11.js'\n // url: '//unpkg.com/@textback/notification-widget@dev/src/libraries/ai.1.0.11.js'\n //url: '//localhost:8080/src/libraries/ai.1.0.11.js',\n });\n\n _this.accountId = accountId;\n context.appInsights = _appInsights;\n //ensure appinsights is fully loaded\n var timer = setInterval(function () {\n if (_appInsights._onerror) {\n clearInterval(timer);\n _appInsights.setAuthenticatedUserContext(userId);\n resolve(true);\n }\n }, 50);\n }\n //no aiKey - no telemetry\n else {\n resolve(true);\n }\n });\n },\n trackEvent: function trackEvent(eventName, data) {\n var context = window.TextBack;\n context.appInsights && context.appInsights.trackEvent(eventName, data);\n },\n trackButtonClick: function trackButtonClick(widgetId, eventName, channelType) {\n var payload = {\n channelType: channelType,\n widgetId: widgetId,\n accountId: this.accountId,\n widgetUrl: window.location.href\n };\n this.trackEvent(eventName, payload);\n },\n trackWidgetEvent: function trackWidgetEvent(widgetId, eventName, reason) {\n var payload = {\n reason: reason,\n widgetId: widgetId,\n accountId: this.accountId,\n widgetUrl: window.location.href\n };\n this.trackEvent(eventName, payload);\n }\n};\n\nexports.default = appInsights;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EVENTS = exports.Observer = undefined;\n\nvar _assign = __webpack_require__(11);\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EVENTS = {\n WIDGET_INIT: 'widget.init',\n SUBSCRIBE_START: 'subscribe.start'\n};\n\nvar _handlers = {};\n\nwindow.TextBack = window.TextBack || {};\nwindow.TextBack.Observer = window.TextBack.Observer || {\n on: function on(eventName, fn) {\n if (!_handlers[eventName]) {\n _handlers[eventName] = [fn];\n } else {\n _handlers[eventName].push(fn);\n }\n\n return function () {\n var fnIndex = _handlers[eventName].indexOf(fn);\n if (fnIndex !== -1) {\n _handlers[eventName].splice(fnIndex, 1);\n }\n };\n },\n trigger: function trigger(eventName, data) {\n if (_handlers[eventName]) {\n var eventData = (0, _assign2.default)({}, data, { type: eventName });\n setTimeout(function () {\n _handlers[eventName].forEach(function (handler) {\n try {\n handler(eventData);\n } catch (err) {\n console.error('Error occuired while executing event handler on event ' + eventName, err);\n }\n });\n }, 0);\n }\n }\n};\n\nvar Observer = window.TextBack.Observer;\n\nexports.Observer = Observer;\nexports.EVENTS = EVENTS;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _sdk = __webpack_require__(45);\n\nvar _sdk2 = _interopRequireDefault(_sdk);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nwindow.TextBack = window.TextBack || {};\nwindow.TextBack.SDK = window.TextBack.SDK || new _sdk2.default();\n\nexports.default = window.TextBack.SDK;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar assignValue = __webpack_require__(18),\n baseAssignValue = __webpack_require__(12);\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseRest = __webpack_require__(55),\n isIterateeCall = __webpack_require__(62);\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseTimes = __webpack_require__(64),\n isArguments = __webpack_require__(33),\n isArray = __webpack_require__(34),\n isBuffer = __webpack_require__(35),\n isIndex = __webpack_require__(26),\n isTypedArray = __webpack_require__(36);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsArguments = __webpack_require__(65),\n isObjectLike = __webpack_require__(6);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(4),\n stubFalse = __webpack_require__(66);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(14)(module)))\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseIsTypedArray = __webpack_require__(67),\n baseUnary = __webpack_require__(68),\n nodeUtil = __webpack_require__(69);\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports) {\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\r\n * Created by martb on 28.06.2017.\r\n * Module for work with cookies\r\n */\n\nvar cookies = {\n /**\r\n * возвращает cookie с именем name, если есть, если нет, то null\r\n * @param name {String}\r\n * @returns {String|null}\r\n */\n getCookie: function getCookie(name) {\n var nameEQ = name + \"=\";\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }if (c.indexOf(nameEQ) === 0) return decodeURIComponent(c.substring(nameEQ.length, c.length));\n }\n return null;\n },\n\n /**\r\n * устанавливает куку\r\n * @param name - имя куки\r\n * @param value - значение куки\r\n * @param t - время в секундах\r\n */\n setCookie: function setCookie(name, value, t) {\n var expires = \"\";\n if (t) {\n var date = new Date();\n t *= 1000;\n date.setTime(date.getTime() + t);\n expires = \"; expires=\" + date.toUTCString();\n }\n document.cookie = name + \"=\" + encodeURIComponent(value) + expires + \"; path=/\";\n },\n\n /*\r\n * удаляет куку по имени\r\n * @param name {String}\r\n */\n deleteCookie: function deleteCookie(name) {\n setCookie(name, \"\", -1);\n }\n};\n\nexports.default = cookies;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = find;\nfunction find(array, predicate) {\n for (var i = 0; i < array.length; i++) {\n if (predicate(array[i], i, array)) {\n return array[i];\n }\n }\n return undefined;\n}\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg version=\\\"1.1\\\" id=\\\"Layer_1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 53.5 53.5\\\" enable-background=\\\"new 0 0 53.5 53.5\\\" xml:space=\\\"preserve\\\"><g><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#ffffff\\\" d=\\\"M25.2,37.5h2.1c0,0,0.6-0.1,1-0.4c0.3-0.3,0.3-0.9,0.3-0.9 s0-2.8,1.3-3.2c1.3-0.4,2.9,2.7,4.7,3.9c1.3,0.9,2.3,0.7,2.3,0.7l4.7-0.1c0,0,2.5-0.2,1.3-2.1c-0.1-0.2-0.7-1.4-3.5-4 c-2.9-2.7-2.5-2.3,1-7c2.2-2.9,3-4.6,2.7-5.4c-0.3-0.7-1.8-0.5-1.8-0.5l-5.3,0c0,0-0.4-0.1-0.7,0.1c-0.3,0.2-0.5,0.6-0.5,0.6 s-0.8,2.2-1.9,4.1c-2.3,4-3.3,4.2-3.7,4c-0.9-0.6-0.7-2.3-0.7-3.6c0-3.9,0.6-5.5-1.1-5.9c-0.6-0.1-1-0.2-2.5-0.2 c-1.9,0-3.5,0-4.4,0.4c-0.6,0.3-1.1,0.9-0.8,1c0.3,0,1.1,0.2,1.6,0.8c0.5,0.7,0.5,2.4,0.5,2.4s0.3,4.6-0.7,5.1 c-0.7,0.4-1.7-0.4-3.8-4c-1.1-1.9-1.9-3.9-1.9-3.9S15.3,19,15,18.8c-0.3-0.2-0.8-0.3-0.8-0.3l-5,0c0,0-0.8,0-1,0.3 c-0.2,0.3,0,0.9,0,0.9s3.9,9.2,8.4,13.8C20.6,37.8,25.2,37.5,25.2,37.5L25.2,37.5z M25.2,37.5\\\"></path></g></svg>\"\n\n/***/ }),\n/* 41 */,\n/* 42 */,\n/* 43 */,\n/* 44 */,\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(46);\n\nvar _widget = __webpack_require__(47);\n\nvar _widget2 = _interopRequireDefault(_widget);\n\nvar _observer = __webpack_require__(28);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n__webpack_require__(91).polyfill();\n\nvar SDK = function () {\n function SDK() {\n _classCallCheck(this, SDK);\n\n this.widgets = {};\n }\n\n _createClass(SDK, [{\n key: 'initWidget',\n value: function initWidget(config) {\n if (config && config.widgetId) {\n var widget = new _widget2.default(config, this);\n this.widgets[config.widgetId] = widget.initialize();\n this.widgets[config.widgetId].then(function (widget) {\n return _observer.Observer.trigger(_observer.EVENTS.WIDGET_INIT, { widgetId: config.widgetId });\n }, function (err) {\n return console.error(err);\n });\n return this.widgets[config.widgetId];\n } else {\n throw new Error('Widget id is not defined');\n }\n }\n }, {\n key: 'getWidget',\n value: function getWidget(widgetId) {\n return this.widgets[widgetId] ? this.widgets[widgetId] : null;\n }\n }, {\n key: 'on',\n value: function on(eventName, fn) {\n return _observer.Observer.on(eventName, fn);\n }\n }]);\n\n return SDK;\n}();\n\nexports.default = SDK;\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports) {\n\n(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _uuidJs = __webpack_require__(10);\n\nvar _uuidJs2 = _interopRequireDefault(_uuidJs);\n\nvar _assign = __webpack_require__(11);\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nvar _apiErrorHandler = __webpack_require__(3);\n\nvar _apiErrorHandler2 = _interopRequireDefault(_apiErrorHandler);\n\nvar _loadConfig = __webpack_require__(72);\n\nvar _loadConfig2 = _interopRequireDefault(_loadConfig);\n\nvar _loadDeepLink = __webpack_require__(73);\n\nvar _loadDeepLink2 = _interopRequireDefault(_loadDeepLink);\n\nvar _loadSubscriptions = __webpack_require__(74);\n\nvar _loadSubscriptions2 = _interopRequireDefault(_loadSubscriptions);\n\nvar _cookies = __webpack_require__(38);\n\nvar _cookies2 = _interopRequireDefault(_cookies);\n\nvar _constants = __webpack_require__(0);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _parseQueryString = __webpack_require__(75);\n\nvar _parseQueryString2 = _interopRequireDefault(_parseQueryString);\n\nvar _find = __webpack_require__(39);\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _appInsights = __webpack_require__(27);\n\nvar _appInsights2 = _interopRequireDefault(_appInsights);\n\nvar _factory = __webpack_require__(76);\n\nvar _factory2 = _interopRequireDefault(_factory);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIAL_CONFIG_DEFAULTS = {\n apiPath: 'https://api.textback.io/api'\n};\n\nvar Widget = function () {\n function Widget(config, sdk) {\n _classCallCheck(this, Widget);\n\n this.initialConfig = (0, _assign2.default)({}, INITIAL_CONFIG_DEFAULTS, config);\n this.sdk = sdk;\n\n this.config = {};\n this.channels = [];\n this.initialized = false;\n this.initPromise = null;\n\n this.id = this.initialConfig.widgetId;\n this.widgetUserId = Widget.getWidgetUserId();\n this.insecureContext = Widget.createInsecureContext(this.initialConfig.insecureContext);\n this.secureContextToken = this.initialConfig.secureContextToken;\n }\n\n _createClass(Widget, [{\n key: 'getConfig',\n value: function getConfig() {\n return this.config;\n }\n }, {\n key: 'initialize',\n value: function initialize() {\n var _this = this;\n\n this.initPromise = Promise.all([this.initializeConfig(), (0, _loadSubscriptions2.default)(this.widgetUserId, this.initialConfig.widgetId, this.initialConfig.apiPath)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n config = _ref2[0],\n subscriptions = _ref2[1];\n\n _this.config = config.$value;\n _this.subscriptions = subscriptions.$items;\n\n _this.useVKApi = _this.config.type === _constants2.default.WIDGET_TYPE_API_CALL;\n _this.aiKey = Widget.getAiKey(config);\n\n return Promise.all([(0, _loadDeepLink2.default)(_this.initialConfig.apiPath, {\n accountId: _this.config.accountId,\n insecureContext: _this.insecureContext,\n widgetId: _this.config.id,\n secureContextToken: _this.secureContextToken,\n user: {\n id: _this.widgetUserId\n }\n }), _appInsights2.default.init(_this.aiKey, _this.widgetUserId, _this.config.accountId)]);\n }).then(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n deeplink = _ref4[0],\n ai = _ref4[1];\n\n _this.deeplink = 'subscribe_' + deeplink.$value.id;\n _this.channels = _this.config.channels.map(function (channel) {\n return _factory2.default.create(channel, _this.deeplink, _this);\n }).filter(function (channel) {\n return !!channel;\n });\n var channelInitPromises = _this.channels.filter(function (channel) {\n return !!channel.initPromise;\n }).map(function (channel) {\n return channel.initPromise;\n });\n\n return Promise.all(channelInitPromises);\n }).then(function (channelPromises) {\n return _this;\n }, function (err) {\n _appInsights2.default.trackWidgetEvent(_this.config.id, 'Widget.initialize.error', err);\n return Promise.reject(err);\n });\n\n return this.initPromise;\n }\n }, {\n key: 'initializeConfig',\n value: function initializeConfig() {\n var promise = void 0;\n if (!this.initialConfig.overrideConfig) {\n promise = (0, _loadConfig2.default)(this.initialConfig.widgetId, this.initialConfig.apiPath);\n } else {\n promise = Promise.resolve({ $value: this.initialConfig.overrideConfig });\n }\n\n return promise;\n }\n }, {\n key: 'subscribe',\n value: function subscribe(channelCode) {\n var channel = (0, _find2.default)(this.getEnabledChannels(), function (chan) {\n return chan.channel === channelCode;\n });\n if (channel) {\n channel.subscribe();\n }\n }\n }, {\n key: 'getChannels',\n value: function getChannels() {\n return this.channels;\n }\n }, {\n key: 'getEnabledChannels',\n value: function getEnabledChannels() {\n return this.channels.filter(function (channel) {\n return channel.enabled && !channel.hasError;\n });\n }\n }], [{\n key: 'getWidgetUserId',\n value: function getWidgetUserId() {\n var widgetUserId = _cookies2.default.getCookie(_constants2.default.COOKIE_WIDGET_USER_ID);\n if (widgetUserId === null) {\n var uuid = _uuidJs2.default.create(4);\n widgetUserId = uuid.hex;\n _cookies2.default.setCookie(_constants2.default.COOKIE_WIDGET_USER_ID, widgetUserId, _constants2.default.WIDGET_USER_ID_COOKIE_TTL);\n }\n return widgetUserId;\n }\n }, {\n key: 'createInsecureContext',\n value: function createInsecureContext() {\n var insecureContext = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var ctx = (0, _assign2.default)({}, insecureContext); //Object.assign({}, insecureContext);\n ctx.pageTitle = window.document.title;\n ctx.pageUrl = window.location.protocol + '//' + window.location.host + window.location.pathname;\n ctx.params = (0, _parseQueryString2.default)(window.location.search.substring(1));\n ctx.timezoneOffset = new Date().getTimezoneOffset();\n\n return ctx;\n }\n }, {\n key: 'getAiKey',\n value: function getAiKey(config) {\n var aiKey = undefined;\n try {\n aiKey = config.headers.get('X-TB-AIKEY');\n } catch (e) {}\n\n return aiKey;\n }\n }]);\n\n return Widget;\n}();\n\nexports.default = Widget;\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isFunction = __webpack_require__(13),\n isMasked = __webpack_require__(51),\n isObject = __webpack_require__(2),\n toSource = __webpack_require__(53);\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(21);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports) {\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar coreJsData = __webpack_require__(52);\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar root = __webpack_require__(4);\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar identity = __webpack_require__(24),\n overRest = __webpack_require__(56),\n setToString = __webpack_require__(58);\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar apply = __webpack_require__(57);\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports) {\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseSetToString = __webpack_require__(59),\n shortOut = __webpack_require__(61);\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar constant = __webpack_require__(60),\n defineProperty = __webpack_require__(19),\n identity = __webpack_require__(24);\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports) {\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports) {\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar eq = __webpack_require__(8),\n isArrayLike = __webpack_require__(5),\n isIndex = __webpack_require__(26),\n isObject = __webpack_require__(2);\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayLikeKeys = __webpack_require__(32),\n baseKeys = __webpack_require__(70),\n isArrayLike = __webpack_require__(5);\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(7),\n isObjectLike = __webpack_require__(6);\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports) {\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(7),\n isLength = __webpack_require__(25),\n isObjectLike = __webpack_require__(6);\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports) {\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(22);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(14)(module)))\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isPrototype = __webpack_require__(9),\n nativeKeys = __webpack_require__(71);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar overArg = __webpack_require__(37);\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = loadConfig;\n\nvar _apiErrorHandler = __webpack_require__(3);\n\nvar _apiErrorHandler2 = _interopRequireDefault(_apiErrorHandler);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar cache = {};\n\nfunction loadConfig(widgetId, apiPath) {\n if (!widgetId) {\n return Promise.reject('Widget id required');\n }\n\n if (cache[widgetId]) {\n return cache[widgetId];\n }\n\n var loadingPromise = fetch(apiPath + '/endUserNotifications/widgets/' + widgetId).then(_apiErrorHandler2.default);\n loadingPromise.then(function () {\n cache[widgetId] = loadingPromise;\n });\n\n return loadingPromise;\n};\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = loadDeepLink;\n\nvar _apiErrorHandler = __webpack_require__(3);\n\nvar _apiErrorHandler2 = _interopRequireDefault(_apiErrorHandler);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar cache = {};\n\nfunction loadDeepLink(apiPath) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var body = JSON.stringify(options);\n\n if (cache[body]) {\n return cache[body];\n }\n\n cache[body] = fetch(apiPath + '/endUserNotifications/deepLinks', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: body\n }).then(_apiErrorHandler2.default);\n\n return cache[body];\n};\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = loadSubscriptions;\n\nvar _apiErrorHandler = __webpack_require__(3);\n\nvar _apiErrorHandler2 = _interopRequireDefault(_apiErrorHandler);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction loadSubscriptions(uuid, widgetId, apiPath) {\n var subscribedUsers = fetch(apiPath + '/endUserNotifications/widgets/' + widgetId + '/subscribedUsers/' + uuid).then(_apiErrorHandler2.default);\n return subscribedUsers;\n}\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction parseQueryString(query) {\n var vars = query.split('&'),\n queryString = {};\n\n if (query.length > 0) {\n for (var i = 0; i < vars.length; i++) {\n var pair = vars[i].split('='),\n key = decodeURIComponent(pair[0]),\n value = decodeURIComponent(pair[1]);\n\n if (!key) continue;\n\n switch (_typeof(queryString[key])) {\n // If first entry with this name\n case 'undefined':\n queryString[key] = value;\n break;\n // If second entry with this name\n case 'string':\n {\n var arr = [queryString[key], value];\n queryString[key] = arr;\n break;\n }\n // If third or later entry with this name\n default:\n queryString[key].push(value);\n }\n }\n }\n return queryString;\n}\n\nexports.default = parseQueryString;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _facebook = __webpack_require__(77);\n\nvar _facebook2 = _interopRequireDefault(_facebook);\n\nvar _skype = __webpack_require__(78);\n\nvar _skype2 = _interopRequireDefault(_skype);\n\nvar _telegram = __webpack_require__(79);\n\nvar _telegram2 = _interopRequireDefault(_telegram);\n\nvar _viber = __webpack_require__(80);\n\nvar _viber2 = _interopRequireDefault(_viber);\n\nvar _vk = __webpack_require__(81);\n\nvar _vk2 = _interopRequireDefault(_vk);\n\nvar _whatsapp = __webpack_require__(89);\n\nvar _whatsapp2 = _interopRequireDefault(_whatsapp);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getConstructor(channel) {\n switch (channel) {\n case 'facebook':\n return _facebook2.default;\n case 'skype':\n return _skype2.default;\n case 'tg':\n return _telegram2.default;\n case 'viber':\n return _viber2.default;\n case 'vk':\n return _vk2.default;\n case 'whatsapp':\n return _whatsapp2.default;\n default:\n return null;\n }\n}\n\nvar channelsFactory = {\n create: function create(channelObj, deeplink, widget) {\n var constructor = getConstructor(channelObj.channel);\n return constructor ? new constructor(channelObj, deeplink, widget) : null;\n }\n};\n\nexports.default = channelsFactory;\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _channel = __webpack_require__(1);\n\nvar _channel2 = _interopRequireDefault(_channel);\n\nvar _constants = __webpack_require__(0);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FacebookChannel = function (_Channel) {\n _inherits(FacebookChannel, _Channel);\n\n function FacebookChannel() {\n var channelData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var deeplink = arguments[1];\n var widget = arguments[2];\n\n _classCallCheck(this, FacebookChannel);\n\n return _possibleConstructorReturn(this, (FacebookChannel.__proto__ || Object.getPrototypeOf(FacebookChannel)).call(this, channelData, deeplink, widget));\n }\n\n _createClass(FacebookChannel, [{\n key: 'subscribe',\n value: function subscribe() {\n _get(FacebookChannel.prototype.__proto__ || Object.getPrototypeOf(FacebookChannel.prototype), 'subscribe', this).call(this);\n window.open('https://m.me/' + this.id + '?ref=' + this.deeplink, 'tb_facebook', _constants2.default.SUBSCRIPTION_WINDOW_PROPS);\n }\n }]);\n\n return FacebookChannel;\n}(_channel2.default);\n\nexports.default = FacebookChannel;\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _channel = __webpack_require__(1);\n\nvar _channel2 = _interopRequireDefault(_channel);\n\nvar _constants = __webpack_require__(0);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SkypeChannel = function (_Channel) {\n _inherits(SkypeChannel, _Channel);\n\n function SkypeChannel() {\n var channelData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var deeplink = arguments[1];\n var widget = arguments[2];\n\n _classCallCheck(this, SkypeChannel);\n\n return _possibleConstructorReturn(this, (SkypeChannel.__proto__ || Object.getPrototypeOf(SkypeChannel)).call(this, channelData, deeplink, widget));\n }\n\n _createClass(SkypeChannel, [{\n key: 'subscribe',\n value: function subscribe() {\n _get(SkypeChannel.prototype.__proto__ || Object.getPrototypeOf(SkypeChannel.prototype), 'subscribe', this).call(this);\n window.open('https://join.skype.com/bot/' + this.id + '?add', 'tb_skype', _constants2.default.SUBSCRIPTION_WINDOW_PROPS);\n }\n }]);\n\n return SkypeChannel;\n}(_channel2.default);\n\nexports.default = SkypeChannel;\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _channel = __webpack_require__(1);\n\nvar _channel2 = _interopRequireDefault(_channel);\n\nvar _constants = __webpack_require__(0);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TelegramChannel = function (_Channel) {\n _inherits(TelegramChannel, _Channel);\n\n function TelegramChannel() {\n var channelData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var deeplink = arguments[1];\n var widget = arguments[2];\n\n _classCallCheck(this, TelegramChannel);\n\n return _possibleConstructorReturn(this, (TelegramChannel.__proto__ || Object.getPrototypeOf(TelegramChannel)).call(this, channelData, deeplink, widget));\n }\n\n _createClass(TelegramChannel, [{\n key: 'subscribe',\n value: function subscribe() {\n _get(TelegramChannel.prototype.__proto__ || Object.getPrototypeOf(TelegramChannel.prototype), 'subscribe', this).call(this);\n window.open('https://telegram.me/' + this.id + '?start=' + this.deeplink, 'tb_tg', _constants2.default.SUBSCRIPTION_WINDOW_PROPS);\n }\n }]);\n\n return TelegramChannel;\n}(_channel2.default);\n\nexports.default = TelegramChannel;\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _channel = __webpack_require__(1);\n\nvar _channel2 = _interopRequireDefault(_channel);\n\nvar _constants = __webpack_require__(0);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ViberChannel = function (_Channel) {\n _inherits(ViberChannel, _Channel);\n\n function ViberChannel() {\n var channelData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var deeplink = arguments[1];\n var widget = arguments[2];\n\n _classCallCheck(this, ViberChannel);\n\n return _possibleConstructorReturn(this, (ViberChannel.__proto__ || Object.getPrototypeOf(ViberChannel)).call(this, channelData, deeplink, widget));\n }\n\n _createClass(ViberChannel, [{\n key: 'subscribe',\n value: function subscribe() {\n _get(ViberChannel.prototype.__proto__ || Object.getPrototypeOf(ViberChannel.prototype), 'subscribe', this).call(this);\n window.open('viber://pa?chatURI=' + this.id + '&context=' + this.deeplink, 'viber', _constants2.default.SUBSCRIPTION_WINDOW_PROPS);\n }\n }]);\n\n return ViberChannel;\n}(_channel2.default);\n\nexports.default = ViberChannel;\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _uuidJs = __webpack_require__(10);\n\nvar _uuidJs2 = _interopRequireDefault(_uuidJs);\n\nvar _loadScript = __webpack_require__(82);\n\nvar _loadScript2 = _interopRequireDefault(_loadScript);\n\nvar _apiErrorHandler = __webpack_require__(3);\n\nvar _apiErrorHandler2 = _interopRequireDefault(_apiErrorHandler);\n\nvar _channel = __webpack_require__(1);\n\nvar _channel2 = _interopRequireDefault(_channel);\n\nvar _vkModal = __webpack_require__(83);\n\nvar _vkModal2 = _interopRequireDefault(_vkModal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar VK_API_VERSION = '5.73';\n\nfunction loadVkLib() {\n return new Promise(function (resolve, reject) {\n if (window.VK && window.VK.Auth) {\n resolve('vk cache');\n } else {\n (0, _loadScript2.default)('//vk.com/js/api/openapi.js').then(function () {\n resolve('vk load');\n }, function (err) {\n reject(err);\n });\n }\n });\n}\n\nfunction initVK(apiId) {\n return new Promise(function (resolve, reject) {\n if (apiId) {\n if (!window.VK._apiId) {\n window.VK.init({ apiId: apiId });\n }\n window.VK.Auth.getLoginStatus(resolve);\n } else {\n reject('noVApiId');\n }\n });\n}\n\nfunction handleVKLoadingError(error) {\n console.error('Failed to load VK openapi.js. VK channel will be unavailable');\n return null;\n}\n\nvar VKChannel = function (_Channel) {\n _inherits(VKChannel, _Channel);\n\n function VKChannel() {\n var channelData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var deeplink = arguments[1];\n var widget = arguments[2];\n\n _classCallCheck(this, VKChannel);\n\n var _this = _possibleConstructorReturn(this, (VKChannel.__proto__ || Object.getPrototypeOf(VKChannel)).call(this, channelData, deeplink, widget));\n\n _this.vkApiId = _this.widget.config.vkApiId;\n _this.initPromise = null;\n _this.vkPluginContainerId = null;\n _this.authorized = false;\n\n if (_this.enabled) {\n if (!_this.widget.useVKApi) {\n _this.vkPluginContainerId = _uuidJs2.default.create(4).hex;\n _this.initPromise = loadVkLib().catch(function (err) {\n return _this.__handleVKLoadingError(err);\n });\n } else {\n _this.initPromise = loadVkLib().then(function () {\n return initVK(_this.vkApiId);\n }).then(function () {\n _this.authorized = !!window.VK.Auth.getSession();\n }).catch(function (err) {\n return _this.__handleVKLoadingError(err);\n });\n }\n }\n return _this;\n }\n\n _createClass(VKChannel, [{\n key: 'subscribe',\n value: function subscribe() {\n _get(VKChannel.prototype.__proto__ || Object.getPrototypeOf(VKChannel.prototype), 'subscribe', this).call(this);\n this.subscribeViaPlugin();\n }\n }, {\n key: 'subscribeViaApi',\n value: function subscribeViaApi() {\n var _this2 = this;\n\n var promise = null;\n if (!this.authorized) {\n promise = this.__login().then(function (res) {\n return _this2.__allowMessagesFromGroup();\n });\n } else {\n promise = this.__allowMessagesFromGroup();\n }\n return promise;\n }\n }, {\n key: '__allowMessagesFromGroup',\n value: function __allowMessagesFromGroup() {\n var _this3 = this;\n\n window.VK.Api.call('messages.allowMessagesFromGroup', {\n group_id: this.id,\n v: VK_API_VERSION\n }, function (res) {\n var vkSession = window.VK.Auth.getSession();\n var vkUserId = vkSession.mid;\n\n if (res.response === 1) {\n _this3.__textbackSubscribe(vkUserId);\n } else {\n console.log('VK res error:', res);\n }\n });\n }\n }, {\n key: '__login',\n value: function __login() {\n return new Promise(function (resolve) {\n window.VK.Auth.login(function (res) {\n resolve(res);\n }, 4096);\n });\n }\n }, {\n key: '__textbackSubscribe',\n value: function __textbackSubscribe(vkUserId) {\n return fetch(this.widget.initialConfig.apiPath + '/endUserNotifications/subscriptions', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n 'accountId': this.widget.config.accountId,\n 'insecureContext': this.widget.insecureContext,\n 'secureContextToken': this.widget.secureContextToken,\n 'address': {\n 'channel': 'vk',\n 'channelId': this.config.channelId,\n 'accountId': this.widget.config.accountId,\n 'remoteAddress': vkUserId,\n 'chatId': vkUserId\n },\n widgetId: this.widget.id,\n \"user\": {\n \"id\": this.widget.widgetUserId\n }\n })\n }).then(_apiErrorHandler2.default);\n }\n }, {\n key: '__handleVKLoadingError',\n value: function __handleVKLoadingError(err) {\n _get(VKChannel.prototype.__proto__ || Object.getPrototypeOf(VKChannel.prototype), 'reportError', this).call(this, 'Failed to load VK openapi.js. VK channel will be unavailable.', err);\n return null;\n }\n }, {\n key: 'subscribeViaPlugin',\n value: function subscribeViaPlugin() {\n var _this4 = this;\n\n var modal = new _vkModal2.default(this.vkPluginContainerId);\n this.renderVKSubscriptionButton();\n\n modal.onClose = function () {\n if (_this4.vkSubscribeHandler) {\n window.VK.Observer.unsubscribe('widgets.allowMessagesFromCommunity.allowed', _this4.vkSubscribeHandler);\n _this4.vkSubscribeHandler = null;\n }\n };\n }\n }, {\n key: 'renderVKSubscriptionButton',\n value: function renderVKSubscriptionButton() {\n var height = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 30;\n var containerId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.vkPluginContainerId;\n\n if (this.vkSubscribeHandler) {\n window.VK.Observer.unsubscribe('widgets.allowMessagesFromCommunity.allowed', this.vkSubscribeHandler);\n this.vkSubscribeHandler = null;\n }\n\n var options = {\n height: height,\n key: this.deeplink\n };\n\n window.VK.Widgets.AllowMessagesFromCommunity(containerId, options, this.id);\n if (!this.config.disableAllowMessageEvents) {\n this.vkSubscribeHandler = this.__textbackSubscribe.bind(this);\n window.VK.Observer.subscribe('widgets.allowMessagesFromCommunity.allowed', this.vkSubscribeHandler);\n }\n }\n }]);\n\n return VKChannel;\n}(_channel2.default);\n\nexports.default = VKChannel;\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = loadScript;\nvar cache = {};\n\nfunction loadScript(url) {\n if (cache[url]) {\n return cache[url];\n }\n\n cache[url] = new Promise(function (resolve, reject) {\n var ready = false;\n var scriptElement = document.createElement(\"script\");\n\n scriptElement.type = \"text/javascript\";\n scriptElement.src = url;\n scriptElement.async = true;\n scriptElement.onload = scriptElement.onreadystatechange = function () {\n if (!ready && (!this.readyState || this.readyState == \"complete\")) {\n ready = true;\n resolve();\n }\n };\n scriptElement.onerror = scriptElement.onabort = reject;\n document.head.appendChild(scriptElement);\n });\n\n return cache[url];\n}\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _t = __webpack_require__(84);\n\nvar _t2 = _interopRequireDefault(_t);\n\n__webpack_require__(85);\n\nvar _vkModal = __webpack_require__(88);\n\nvar _vkModal2 = _interopRequireDefault(_vkModal);\n\nvar _icon_vk = __webpack_require__(40);\n\nvar _icon_vk2 = _interopRequireDefault(_icon_vk);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar VKModal = function VKModal(vkPluginContainerId) {\n var _this = this;\n\n _classCallCheck(this, VKModal);\n\n var modalContainer = document.createElement('div');\n\n modalContainer.innerHTML = new _t2.default(_vkModal2.default).render({ vkPluginContainerId: vkPluginContainerId, vkIcon: _icon_vk2.default });\n\n this.element = document.body.appendChild(modalContainer.firstChild);\n this.element.querySelector('.tb-close').addEventListener('click', function (event) {\n document.body.classList.remove('tb-modal-open');\n document.body.removeChild(_this.element);\n\n if (_this.onClose) {\n _this.onClose();\n }\n });\n\n document.body.classList.add('tb-modal-open');\n};\n\nexports.default = VKModal;\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n// local-scoped modification of https://github.com/jasonmoo/t.js\nvar blockregex = /\\{\\{(([@!]?)(.+?))\\}\\}(([\\s\\S]+?)(\\{\\{:\\1\\}\\}([\\s\\S]+?))?)\\{\\{\\/\\1\\}\\}/g,\n valregex = /\\{\\{([=%])(.+?)\\}\\}/g;\n\nfunction t(template) {\n this.t = template;\n}\n\nfunction scrub(val) {\n return new Option(val).innerHTML.replace(/\"/g, \""\");\n}\n\nfunction get_value(vars, key) {\n var parts = key.split('.');\n while (parts.length) {\n if (!(parts[0] in vars)) {\n return false;\n }\n vars = vars[parts.shift()];\n }\n return vars;\n}\n\nfunction render(fragment, vars) {\n return fragment.replace(blockregex, function (_, __, meta, key, inner, if_true, has_else, if_false) {\n\n var val = get_value(vars, key),\n temp = \"\",\n i;\n\n if (!val) {\n\n // handle if not\n if (meta == '!') {\n return render(inner, vars);\n }\n // check for else\n if (has_else) {\n return render(if_false, vars);\n }\n\n return \"\";\n }\n\n // regular if\n if (!meta) {\n return render(if_true, vars);\n }\n\n // process array/obj iteration\n if (meta == '@') {\n // store any previous vars\n // reuse existing vars\n _ = vars._key;\n __ = vars._val;\n for (i in val) {\n if (val.hasOwnProperty(i)) {\n vars._key = i;\n vars._val = val[i];\n temp += render(inner, vars);\n }\n }\n vars._key = _;\n vars._val = __;\n return temp;\n }\n }).replace(valregex, function (_, meta, key) {\n var val = get_value(vars, key);\n\n if (val || val === 0) {\n return meta == '%' ? scrub(val) : val;\n }\n return \"\";\n });\n}\n\nt.prototype.render = function (vars) {\n return render(this.t, vars);\n};\n\nexports.default = t;\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(86);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// Prepare cssTransformation\nvar transform;\n\nvar options = {\"hmr\":true}\noptions.transform = transform\n// add the styles to the DOM\nvar update = __webpack_require__(16)(content, options);\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js!./vk-modal.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js!./vk-modal.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(15)(false);\n// imports\n\n\n// module\nexports.push([module.i, \".tb-modal-open {\\n overflow: hidden; }\\n .tb-modal-open .tb-modal {\\n overflow-x: hidden;\\n overflow-y: auto;\\n display: block; }\\n\\n.tb-modal {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n display: none;\\n background-color: rgba(0, 0, 0, 0.7);\\n z-index: 1072;\\n height: 100%;\\n width: 100%;\\n text-align: center; }\\n .tb-modal * {\\n box-sizing: border-box; }\\n .tb-modal .tb-modal-dialog {\\n height: 100%;\\n width: 100%; }\\n .tb-modal .tb-modal-dialog:before {\\n display: inline-block;\\n vertical-align: middle;\\n content: \\\" \\\";\\n height: 100%; }\\n .tb-modal .tb-modal-dialog .tb-modal-content {\\n display: inline-block;\\n position: relative;\\n padding: 25px 25px 35px;\\n background-color: #fff;\\n width: 310px; }\\n .tb-modal .tb-modal-dialog .tb-modal-content .tb-modal-content_text {\\n display: flex;\\n justify-content: center; }\\n .tb-modal .tb-modal-dialog .tb-modal-content .tb-close {\\n position: absolute;\\n top: 5px;\\n right: 12px;\\n border: none;\\n outline: 0;\\n padding: 0;\\n background-color: transparent;\\n font-size: 24px;\\n font-weight: bold;\\n color: #000;\\n opacity: 0.7; }\\n .tb-modal .tb-modal-dialog .tb-modal-content .tb-close:hover {\\n opacity: 1;\\n cursor: pointer; }\\n\\n.tb-vk-button {\\n margin-top: 15px;\\n display: inline-block;\\n width: 230px;\\n position: relative;\\n padding-left: 40px; }\\n .tb-vk-button .tb-vk-icon {\\n width: 30px;\\n height: 30px;\\n position: absolute;\\n top: 0px;\\n left: 0px; }\\n .tb-vk-button .tb-vk-icon > svg path {\\n fill: #45668e; }\\n\\n@media only screen and (min-device-width: 736px) {\\n .tb-modal .tb-modal-dialog .tb-modal-content {\\n width: 500px; }\\n .tb-vk-button {\\n width: 245px;\\n padding-left: 55px; }\\n .tb-vk-button .tb-vk-icon {\\n width: 40px;\\n height: 40px;\\n top: -5px; } }\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\n\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<div class=\\\"tb-modal\\\">\\r\\n <div class=\\\"tb-modal-dialog\\\">\\r\\n <div class=\\\"tb-modal-content\\\">\\r\\n <button class=\\\"tb-close\\\" type=\\\"button\\\">×</button>\\r\\n <div class=\\\"tb-modal-content_text\\\">\\r\\n <p>\\r\\n Разрешите сообществу присылать сообщения. <br>\\r\\n Вы в любой момент сможете отписаться.\\r\\n </p>\\r\\n </div>\\r\\n <div class=\\\"tb-vk-button\\\">\\r\\n <div class=\\\"tb-vk-icon\\\">{{=vkIcon}}</div>\\r\\n <div id=\\\"{{=vkPluginContainerId}}\\\"></div> \\r\\n </div> \\r\\n </div>\\r\\n </div>\\r\\n</div> \\r\\n\";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _channel = __webpack_require__(1);\n\nvar _channel2 = _interopRequireDefault(_channel);\n\nvar _browserInfo = __webpack_require__(90);\n\nvar _browserInfo2 = _interopRequireDefault(_browserInfo);\n\nvar _constants = __webpack_require__(0);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar prefixText = encodeURIComponent('Отправьте не изменяя это сообщение ');\n\nvar WhatsappChannel = function (_Channel) {\n _inherits(WhatsappChannel, _Channel);\n\n function WhatsappChannel() {\n var channelData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var deeplink = arguments[1];\n var widget = arguments[2];\n\n _classCallCheck(this, WhatsappChannel);\n\n var _this = _possibleConstructorReturn(this, (WhatsappChannel.__proto__ || Object.getPrototypeOf(WhatsappChannel)).call(this, channelData, deeplink, widget));\n\n _this.domainPrefix = _browserInfo2.default.isMobile() ? 'api' : 'web';\n return _this;\n }\n\n _createClass(WhatsappChannel, [{\n key: 'subscribe',\n value: function subscribe() {\n _get(WhatsappChannel.prototype.__proto__ || Object.getPrototypeOf(WhatsappChannel.prototype), 'subscribe', this).call(this);\n window.open('https://' + this.domainPrefix + '.whatsapp.com/send?phone=' + this.id + '&text=' + (prefixText + this.deeplink), 'whatsapp', _constants2.default.SUBSCRIPTION_WINDOW_PROPS);\n }\n }]);\n\n return WhatsappChannel;\n}(_channel2.default);\n\nexports.default = WhatsappChannel;\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _isMobile = /Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i.test(navigator.userAgent);\n\nvar browserInfo = {\n isMobile: function isMobile() {\n return _isMobile;\n }\n};\n\nexports.default = browserInfo;\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process, global) {/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.4+314e4831\n */\n\n(function (global, factory) {\n\t true ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && \"function\" === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar TRY_CATCH_ERROR = { error: null };\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n TRY_CATCH_ERROR.error = error;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === TRY_CATCH_ERROR) {\n reject(promise, TRY_CATCH_ERROR.error);\n TRY_CATCH_ERROR.error = null;\n } else if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = void 0,\n failed = void 0;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = getThen(entry);\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(92), __webpack_require__(23)))\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 93 */,\n/* 94 */,\n/* 95 */,\n/* 96 */,\n/* 97 */,\n/* 98 */,\n/* 99 */,\n/* 100 */,\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _index = __webpack_require__(29);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// sdk.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 101);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 76368bd652f6fc5f994a","const COOKIE_NAME_PREFIX = 'tb_notif_widget_';\r\nconst constants = {\r\n COOKIE_NAME_PREFIX: COOKIE_NAME_PREFIX,\r\n /**\r\n * 10 years\r\n */\r\n WIDGET_USER_ID_COOKIE_TTL: 315360000,\r\n COOKIE_WIDGET_USER_ID: `${COOKIE_NAME_PREFIX}widgetUserId`,\r\n SECONDS_IN_DAY: 86400,\r\n // make subscription using API call\r\n WIDGET_TYPE_API_CALL : 'apiCall',\r\n // make subscription using native social widget\r\n WIDGET_TYPE_WIDGET : 'widget',\r\n DEFAULT_WIDGET_TYPE : 'widget',\r\n SUBSCRIPTION_WINDOW_PROPS: 'width=600,height=800',\r\n};\r\n\r\nexport default constants;\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/utils/constants.js","import { Observer, EVENTS } from '../events/observer.js';\r\n\r\nexport default class Channel {\r\n constructor(channelData = {}, deeplink, widget) {\r\n this.config = channelData;\r\n\r\n this.channel = channelData.channel;\r\n this.channelId = channelData.channelId;\r\n this.enabled = channelData.enabled;\r\n this.id = channelData.id;\r\n this.slug = channelData.slug;\r\n\r\n this.deeplink = deeplink;\r\n this.widget = widget;\r\n\r\n this.initPromise = null;\r\n this.hasError = false;\r\n }\r\n\r\n subscribe() {\r\n Observer.trigger(EVENTS.SUBSCRIBE_START, { \r\n widgetId: this.widget.id,\r\n channel: this,\r\n });\r\n }\r\n\r\n reportError(...args) {\r\n console.error(...args);\r\n this.hasError = true;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/channels/channel.js","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/isObject.js\n// module id = 2\n// module chunks = 0 1","export default function apiErrorHandler(res) {\r\n return res.json()\r\n .then(data => {\r\n if (data.$error) {\r\n return Promise.reject(data.$error.msg || data.$error.scn);\r\n }\r\n data.headers = res.headers;\r\n\r\n return data;\r\n })\r\n .catch(() => Promise.reject(`widget error: ${res.status}`));\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/utils/apiErrorHandler.js","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_root.js\n// module id = 4\n// module chunks = 0 1","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/isArrayLike.js\n// module id = 5\n// module chunks = 0 1","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/isObjectLike.js\n// module id = 6\n// module chunks = 0 1","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseGetTag.js\n// module id = 7\n// module chunks = 0 1","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/eq.js\n// module id = 8\n// module chunks = 0 1","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_isPrototype.js\n// module id = 9\n// module chunks = 0 1","/*\n * UUID-js: A js library to generate and parse UUIDs, TimeUUIDs and generate\n * TimeUUID based on dates for range selections.\n * @see http://www.ietf.org/rfc/rfc4122.txt\n **/\n\nfunction UUIDjs() {\n};\n\nUUIDjs.maxFromBits = function(bits) {\n return Math.pow(2, bits);\n};\n\nUUIDjs.limitUI04 = UUIDjs.maxFromBits(4);\nUUIDjs.limitUI06 = UUIDjs.maxFromBits(6);\nUUIDjs.limitUI08 = UUIDjs.maxFromBits(8);\nUUIDjs.limitUI12 = UUIDjs.maxFromBits(12);\nUUIDjs.limitUI14 = UUIDjs.maxFromBits(14);\nUUIDjs.limitUI16 = UUIDjs.maxFromBits(16);\nUUIDjs.limitUI32 = UUIDjs.maxFromBits(32);\nUUIDjs.limitUI40 = UUIDjs.maxFromBits(40);\nUUIDjs.limitUI48 = UUIDjs.maxFromBits(48);\n\n// Returns a random integer between min and max\n// Using Math.round() will give you a non-uniform distribution!\n// @see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/random\nfunction getRandomInt(min, max) {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nUUIDjs.randomUI04 = function() {\n return getRandomInt(0, UUIDjs.limitUI04-1);\n};\nUUIDjs.randomUI06 = function() {\n return getRandomInt(0, UUIDjs.limitUI06-1);\n};\nUUIDjs.randomUI08 = function() {\n return getRandomInt(0, UUIDjs.limitUI08-1);\n};\nUUIDjs.randomUI12 = function() {\n return getRandomInt(0, UUIDjs.limitUI12-1);\n};\nUUIDjs.randomUI14 = function() {\n return getRandomInt(0, UUIDjs.limitUI14-1);\n};\nUUIDjs.randomUI16 = function() {\n return getRandomInt(0, UUIDjs.limitUI16-1);\n};\nUUIDjs.randomUI32 = function() {\n return getRandomInt(0, UUIDjs.limitUI32-1);\n};\nUUIDjs.randomUI40 = function() {\n return (0 | Math.random() * (1 << 30)) + (0 | Math.random() * (1 << 40 - 30)) * (1 << 30);\n};\nUUIDjs.randomUI48 = function() {\n return (0 | Math.random() * (1 << 30)) + (0 | Math.random() * (1 << 48 - 30)) * (1 << 30);\n};\n\nUUIDjs.paddedString = function(string, length, z) {\n string = String(string);\n z = (!z) ? '0' : z;\n var i = length - string.length;\n for (; i > 0; i >>>= 1, z += z) {\n if (i & 1) {\n string = z + string;\n }\n }\n return string;\n};\n\nUUIDjs.prototype.fromParts = function(timeLow, timeMid, timeHiAndVersion, clockSeqHiAndReserved, clockSeqLow, node) {\n this.version = (timeHiAndVersion >> 12) & 0xF;\n this.hex = UUIDjs.paddedString(timeLow.toString(16), 8)\n + '-'\n + UUIDjs.paddedString(timeMid.toString(16), 4)\n + '-'\n + UUIDjs.paddedString(timeHiAndVersion.toString(16), 4)\n + '-'\n + UUIDjs.paddedString(clockSeqHiAndReserved.toString(16), 2)\n + UUIDjs.paddedString(clockSeqLow.toString(16), 2)\n + '-'\n + UUIDjs.paddedString(node.toString(16), 12);\n return this;\n};\n\nUUIDjs.prototype.toString = function() {\n return this.hex;\n};\nUUIDjs.prototype.toURN = function() {\n return 'urn:uuid:' + this.hex;\n};\n\nUUIDjs.prototype.toBytes = function() {\n var parts = this.hex.split('-');\n var ints = [];\n var intPos = 0;\n for (var i = 0; i < parts.length; i++) {\n for (var j = 0; j < parts[i].length; j+=2) {\n ints[intPos++] = parseInt(parts[i].substr(j, 2), 16);\n }\n }\n return ints;\n};\n\nUUIDjs.prototype.equals = function(uuid) {\n if (!(uuid instanceof UUID)) {\n return false;\n }\n if (this.hex !== uuid.hex) {\n return false;\n }\n return true;\n};\n\nUUIDjs.getTimeFieldValues = function(time) {\n var ts = time - Date.UTC(1582, 9, 15);\n var hm = ((ts / 0x100000000) * 10000) & 0xFFFFFFF;\n return { low: ((ts & 0xFFFFFFF) * 10000) % 0x100000000,\n mid: hm & 0xFFFF, hi: hm >>> 16, timestamp: ts };\n};\n\nUUIDjs._create4 = function() {\n return new UUIDjs().fromParts(\n UUIDjs.randomUI32(),\n UUIDjs.randomUI16(),\n 0x4000 | UUIDjs.randomUI12(),\n 0x80 | UUIDjs.randomUI06(),\n UUIDjs.randomUI08(),\n UUIDjs.randomUI48()\n );\n};\n\nUUIDjs._create1 = function() {\n var now = new Date().getTime();\n var sequence = UUIDjs.randomUI14();\n var node = (UUIDjs.randomUI08() | 1) * 0x10000000000 + UUIDjs.randomUI40();\n var tick = UUIDjs.randomUI04();\n var timestamp = 0;\n var timestampRatio = 1/4;\n\n if (now != timestamp) {\n if (now < timestamp) {\n sequence++;\n }\n timestamp = now;\n tick = UUIDjs.randomUI04();\n } else if (Math.random() < timestampRatio && tick < 9984) {\n tick += 1 + UUIDjs.randomUI04();\n } else {\n sequence++;\n }\n\n var tf = UUIDjs.getTimeFieldValues(timestamp);\n var tl = tf.low + tick;\n var thav = (tf.hi & 0xFFF) | 0x1000;\n\n sequence &= 0x3FFF;\n var cshar = (sequence >>> 8) | 0x80;\n var csl = sequence & 0xFF;\n\n return new UUIDjs().fromParts(tl, tf.mid, thav, cshar, csl, node);\n};\n\nUUIDjs.create = function(version) {\n version = version || 4;\n return this['_create' + version]();\n};\n\nUUIDjs.fromTime = function(time, last) {\n last = (!last) ? false : last;\n var tf = UUIDjs.getTimeFieldValues(time);\n var tl = tf.low;\n var thav = (tf.hi & 0xFFF) | 0x1000; // set version '0001'\n if (last === false) {\n return new UUIDjs().fromParts(tl, tf.mid, thav, 0, 0, 0);\n } else {\n return new UUIDjs().fromParts(tl, tf.mid, thav, 0x80 | UUIDjs.limitUI06, UUIDjs.limitUI08 - 1, UUIDjs.limitUI48 - 1);\n }\n};\n\nUUIDjs.firstFromTime = function(time) {\n return UUIDjs.fromTime(time, false);\n};\nUUIDjs.lastFromTime = function(time) {\n return UUIDjs.fromTime(time, true);\n};\n\nUUIDjs.fromURN = function(strId) {\n var r, p = /^(?:urn:uuid:|\\{)?([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{2})([0-9a-f]{2})-([0-9a-f]{12})(?:\\})?$/i;\n if ((r = p.exec(strId))) {\n return new UUIDjs().fromParts(parseInt(r[1], 16), parseInt(r[2], 16),\n parseInt(r[3], 16), parseInt(r[4], 16),\n parseInt(r[5], 16), parseInt(r[6], 16));\n }\n return null;\n};\n\nUUIDjs.fromBytes = function(ints) {\n if (ints.length < 5) {\n return null;\n }\n var str = '';\n var pos = 0;\n var parts = [4, 2, 2, 2, 6];\n for (var i = 0; i < parts.length; i++) {\n for (var j = 0; j < parts[i]; j++) {\n var octet = ints[pos++].toString(16);\n if (octet.length == 1) {\n octet = '0' + octet;\n }\n str += octet;\n }\n if (parts[i] !== 6) {\n str += '-';\n }\n }\n return UUIDjs.fromURN(str);\n};\n\nUUIDjs.fromBinary = function(binary) {\n var ints = [];\n for (var i = 0; i < binary.length; i++) {\n ints[i] = binary.charCodeAt(i);\n if (ints[i] > 255 || ints[i] < 0) {\n throw new Error('Unexpected byte in binary data.');\n }\n }\n return UUIDjs.fromBytes(ints);\n};\n\n// Aliases to support legacy code. Do not use these when writing new code as\n// they may be removed in future versions!\nUUIDjs.new = function() {\n return this.create(4);\n};\nUUIDjs.newTS = function() {\n return this.create(1);\n};\n\nmodule.exports = UUIDjs;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/uuid-js/lib/uuid.js\n// module id = 10\n// module chunks = 0 1","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/assign.js\n// module id = 11\n// module chunks = 0 1","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseAssignValue.js\n// module id = 12\n// module chunks = 0 1","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/isFunction.js\n// module id = 13\n// module chunks = 0 1","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 14\n// module chunks = 0 1","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader/lib/css-base.js\n// module id = 15\n// module chunks = 0 1","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(selector) {\n\t\tif (typeof memo[selector] === \"undefined\") {\n\t\t\tvar styleTarget = fn.call(this, selector);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[selector] = styleTarget;\n\t\t}\n\t\treturn memo[selector]\n\t};\n})(function (target) {\n\treturn document.querySelector(target)\n});\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n\tif (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\toptions.attrs.type = \"text/css\";\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\toptions.attrs.type = \"text/css\";\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = options.transform(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/style-loader/lib/addStyles.js\n// module id = 16\n// module chunks = 0 1","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_assignValue.js\n// module id = 18\n// module chunks = 0 1","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_defineProperty.js\n// module id = 19\n// module chunks = 0 1","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_getNative.js\n// module id = 20\n// module chunks = 0 1","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_Symbol.js\n// module id = 21\n// module chunks = 0 1","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_freeGlobal.js\n// module id = 22\n// module chunks = 0 1","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 23\n// module chunks = 0 1","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/identity.js\n// module id = 24\n// module chunks = 0 1","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/isLength.js\n// module id = 25\n// module chunks = 0 1","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_isIndex.js\n// module id = 26\n// module chunks = 0 1","const appInsights = {\r\n init(aiKey, userId, accountId) {\r\n return new Promise((resolve, reject) => {\r\n window.TextBack = window.TextBack || {};\r\n let context = window.TextBack;\r\n if (aiKey) {\r\n let appInsights = context.appInsights || function (config) {\r\n //basically most below code is got from MS so it's kinda unreadable hmm.. see MS instructions on appinsigths\r\n function r(config) {\r\n t[config] = function () {\r\n let i = arguments;\r\n t.queue.push(function () {\r\n t[config].apply(t, i)\r\n })\r\n }\r\n }\r\n\r\n let t = {\r\n config: config\r\n },\r\n u = document,\r\n e = context,\r\n o = \"script\",\r\n s = u.createElement(o),\r\n i, f;\r\n for (s.src = config.url || \"//az416426.vo.msecnd.net/scripts/a/ai.0.js\", u.getElementsByTagName(o)[0].parentNode.appendChild(s), t.cookie = u.cookie, t.queue = [], i = [\"Event\", \"Exception\", \"Metric\", \"PageView\", \"Trace\"]; i.length;) r(\"track\" + i.pop());\r\n return r(\"setAuthenticatedUserContext\"), r(\"clearAuthenticatedUserContext\"), config.disableExceptionTracking || (i = \"onerror\", r(\"_\" + i), f = e[i], e[i] = function (config, r, u, e, o) {\r\n let s = f && f(config, r, u, e, o);\r\n return s !== !0 && t[\"_\" + i](config, r, u, e, o), s\r\n }), t\r\n }({\r\n instrumentationKey: aiKey,\r\n // Don't log browser exceptions.\r\n disableExceptionTracking: true,\r\n // Don't log ajax calls.\r\n disableAjaxTracking: true,\r\n //this url will point to the library - use @dev for testing when updating\\editing lib - use @latest for production version of lib\r\n //keep in mind that prod widget should always use @latest\r\n url: '//unpkg.com/@textback/notification-widget@latest/src/libraries/ai.1.0.11.js'\r\n // url: '//unpkg.com/@textback/notification-widget@dev/src/libraries/ai.1.0.11.js'\r\n //url: '//localhost:8080/src/libraries/ai.1.0.11.js',\r\n });\r\n\r\n\r\n this.accountId = accountId;\r\n context.appInsights = appInsights;\r\n //ensure appinsights is fully loaded\r\n let timer = setInterval(function () {\r\n if(appInsights._onerror){\r\n clearInterval(timer);\r\n appInsights.setAuthenticatedUserContext(userId);\r\n resolve(true);\r\n }\r\n }, 50);\r\n\r\n }\r\n //no aiKey - no telemetry\r\n else{\r\n resolve(true);\r\n }\r\n });\r\n },\r\n trackEvent(eventName, data) {\r\n let context = window.TextBack;\r\n context.appInsights && context.appInsights.trackEvent(eventName, data);\r\n },\r\n trackButtonClick(widgetId, eventName, channelType) {\r\n let payload = {\r\n channelType,\r\n widgetId,\r\n accountId: this.accountId,\r\n widgetUrl: window.location.href\r\n };\r\n this.trackEvent(eventName, payload);\r\n },\r\n trackWidgetEvent(widgetId, eventName, reason) {\r\n let payload = {\r\n reason,\r\n widgetId,\r\n accountId: this.accountId,\r\n widgetUrl: window.location.href\r\n };\r\n this.trackEvent(eventName, payload);\r\n }\r\n};\r\n\r\nexport default appInsights;\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/utils/appInsights.js","import assign from 'lodash/assign';\r\n\r\nconst EVENTS = {\r\n WIDGET_INIT: 'widget.init',\r\n SUBSCRIBE_START: 'subscribe.start',\r\n};\r\n\r\nconst _handlers = {};\r\n\r\nwindow.TextBack = window.TextBack || {};\r\nwindow.TextBack.Observer = window.TextBack.Observer || {\r\n on(eventName, fn) {\r\n if (!_handlers[eventName]) {\r\n _handlers[eventName] = [ fn ];\r\n } else {\r\n _handlers[eventName].push(fn);\r\n }\r\n\r\n return () => {\r\n const fnIndex = _handlers[eventName].indexOf(fn);\r\n if (fnIndex !== -1) {\r\n _handlers[eventName].splice(fnIndex, 1);\r\n }\r\n };\r\n },\r\n\r\n trigger(eventName, data) {\r\n if (_handlers[eventName]) {\r\n const eventData = assign({}, data, { type: eventName });\r\n setTimeout(() => {\r\n _handlers[eventName].forEach(handler => {\r\n try {\r\n handler(eventData)\r\n } catch (err) {\r\n console.error(`Error occuired while executing event handler on event ${eventName}`, err);\r\n }\r\n });\r\n }, 0);\r\n \r\n }\r\n }\r\n};\r\n\r\nconst Observer = window.TextBack.Observer;\r\n\r\nexport { Observer, EVENTS };\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/events/observer.js","import SDK from './sdk.js';\r\n\r\nwindow.TextBack = window.TextBack || {};\r\nwindow.TextBack.SDK = window.TextBack.SDK || new SDK();\r\n\r\nexport default window.TextBack.SDK;\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/index.js","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_copyObject.js\n// module id = 30\n// module chunks = 0 1","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_createAssigner.js\n// module id = 31\n// module chunks = 0 1","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_arrayLikeKeys.js\n// module id = 32\n// module chunks = 0 1","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/isArguments.js\n// module id = 33\n// module chunks = 0 1","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/isArray.js\n// module id = 34\n// module chunks = 0 1","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/isBuffer.js\n// module id = 35\n// module chunks = 0 1","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/isTypedArray.js\n// module id = 36\n// module chunks = 0 1","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_overArg.js\n// module id = 37\n// module chunks = 0 1","/**\r\n * Created by martb on 28.06.2017.\r\n * Module for work with cookies\r\n */\r\n\r\nconst cookies = {\r\n /**\r\n * возвращает cookie с именем name, если есть, если нет, то null\r\n * @param name {String}\r\n * @returns {String|null}\r\n */\r\n getCookie: function (name) {\r\n let nameEQ = name + \"=\";\r\n let ca = document.cookie.split(';');\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\r\n if (c.indexOf(nameEQ) === 0) return decodeURIComponent(c.substring(nameEQ.length, c.length));\r\n }\r\n return null;\r\n },\r\n\r\n /**\r\n * устанавливает куку\r\n * @param name - имя куки\r\n * @param value - значение куки\r\n * @param t - время в секундах\r\n */\r\n setCookie: function (name, value, t) {\r\n let expires = \"\";\r\n if (t) {\r\n let date = new Date();\r\n t *= 1000;\r\n date.setTime(date.getTime() + t);\r\n expires = \"; expires=\" + date.toUTCString();\r\n }\r\n document.cookie = name + \"=\" + encodeURIComponent(value) + expires + \"; path=/\";\r\n },\r\n\r\n\r\n /*\r\n * удаляет куку по имени\r\n * @param name {String}\r\n */\r\n deleteCookie: function (name) {\r\n setCookie(name, \"\", -1);\r\n }\r\n};\r\n\r\nexport default cookies;\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/utils/cookies.js","export default function find(array, predicate) {\r\n for (let i = 0; i < array.length; i++) {\r\n if (predicate(array[i], i, array)) {\r\n return array[i];\r\n }\r\n }\r\n return undefined;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/utils/find.js","module.exports = \"<svg version=\\\"1.1\\\" id=\\\"Layer_1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 53.5 53.5\\\" enable-background=\\\"new 0 0 53.5 53.5\\\" xml:space=\\\"preserve\\\"><g><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#ffffff\\\" d=\\\"M25.2,37.5h2.1c0,0,0.6-0.1,1-0.4c0.3-0.3,0.3-0.9,0.3-0.9 s0-2.8,1.3-3.2c1.3-0.4,2.9,2.7,4.7,3.9c1.3,0.9,2.3,0.7,2.3,0.7l4.7-0.1c0,0,2.5-0.2,1.3-2.1c-0.1-0.2-0.7-1.4-3.5-4 c-2.9-2.7-2.5-2.3,1-7c2.2-2.9,3-4.6,2.7-5.4c-0.3-0.7-1.8-0.5-1.8-0.5l-5.3,0c0,0-0.4-0.1-0.7,0.1c-0.3,0.2-0.5,0.6-0.5,0.6 s-0.8,2.2-1.9,4.1c-2.3,4-3.3,4.2-3.7,4c-0.9-0.6-0.7-2.3-0.7-3.6c0-3.9,0.6-5.5-1.1-5.9c-0.6-0.1-1-0.2-2.5-0.2 c-1.9,0-3.5,0-4.4,0.4c-0.6,0.3-1.1,0.9-0.8,1c0.3,0,1.1,0.2,1.6,0.8c0.5,0.7,0.5,2.4,0.5,2.4s0.3,4.6-0.7,5.1 c-0.7,0.4-1.7-0.4-3.8-4c-1.1-1.9-1.9-3.9-1.9-3.9S15.3,19,15,18.8c-0.3-0.2-0.8-0.3-0.8-0.3l-5,0c0,0-0.8,0-1,0.3 c-0.2,0.3,0,0.9,0,0.9s3.9,9.2,8.4,13.8C20.6,37.8,25.2,37.5,25.2,37.5L25.2,37.5z M25.2,37.5\\\"></path></g></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/icons/icon_vk.svg\n// module id = 40\n// module chunks = 0 1","require('es6-promise').polyfill();\r\nimport 'whatwg-fetch';\r\n\r\nimport Widget from './widget/widget.js';\r\nimport { Observer, EVENTS } from './events/observer.js';\r\n\r\nexport default class SDK {\r\n constructor() {\r\n this.widgets = {};\r\n }\r\n\r\n initWidget(config) {\r\n if (config && config.widgetId) {\r\n const widget = new Widget(config, this);\r\n this.widgets[config.widgetId] = widget.initialize();\r\n this.widgets[config.widgetId].then(widget => Observer.trigger(EVENTS.WIDGET_INIT, { widgetId: config.widgetId }), err => console.error(err));\r\n return this.widgets[config.widgetId];\r\n } else {\r\n throw new Error('Widget id is not defined');\r\n }\r\n }\r\n\r\n getWidget(widgetId) {\r\n return this.widgets[widgetId] ? this.widgets[widgetId] : null;\r\n }\r\n\r\n on(eventName, fn) {\r\n return Observer.on(eventName, fn);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/sdk.js","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/whatwg-fetch/fetch.js\n// module id = 46\n// module chunks = 0 1","import UUID from 'uuid-js';\r\nimport assign from 'lodash/assign';\r\n\r\nimport apiErrorHandler from '../utils/apiErrorHandler.js';\r\nimport loadConfig from '../utils/loadConfig.js';\r\nimport loadDeepLink from '../utils/loadDeepLink.js';\r\nimport loadSubscriptions from '../utils/loadSubscriptions.js';\r\nimport cookies from '../utils/cookies.js';\r\nimport constants from '../utils/constants.js';\r\nimport parseQueryString from '../utils/parseQueryString.js';\r\nimport find from '../utils/find.js';\r\nimport appInsights from '../utils/appInsights.js';\r\n\r\nimport channelsFactory from '../channels/factory.js';\r\n\r\nconst INITIAL_CONFIG_DEFAULTS = {\r\n apiPath: 'https://api.textback.io/api',\r\n};\r\n\r\nexport default class Widget {\r\n constructor(config, sdk) {\r\n this.initialConfig = assign({}, INITIAL_CONFIG_DEFAULTS, config);\r\n this.sdk = sdk;\r\n\r\n this.config = {};\r\n this.channels = [];\r\n this.initialized = false;\r\n this.initPromise = null;\r\n\r\n this.id = this.initialConfig.widgetId;\r\n this.widgetUserId = Widget.getWidgetUserId();\r\n this.insecureContext = Widget.createInsecureContext(this.initialConfig.insecureContext);\r\n this.secureContextToken = this.initialConfig.secureContextToken;\r\n }\r\n\r\n getConfig() {\r\n return this.config;\r\n }\r\n\r\n initialize() {\r\n this.initPromise = Promise.all([\r\n this.initializeConfig(),\r\n loadSubscriptions(this.widgetUserId, this.initialConfig.widgetId, this.initialConfig.apiPath),\r\n ]).then(([config, subscriptions]) => {\r\n this.config = config.$value;\r\n this.subscriptions = subscriptions.$items;\r\n\r\n this.useVKApi = this.config.type === constants.WIDGET_TYPE_API_CALL;\r\n this.aiKey = Widget.getAiKey(config);\r\n\r\n return Promise.all([\r\n loadDeepLink(\r\n this.initialConfig.apiPath,\r\n {\r\n accountId: this.config.accountId,\r\n insecureContext: this.insecureContext,\r\n widgetId: this.config.id,\r\n secureContextToken: this.secureContextToken,\r\n user: {\r\n id: this.widgetUserId\r\n }\r\n }\r\n ),\r\n appInsights.init(this.aiKey, this.widgetUserId, this.config.accountId)\r\n ]);\r\n }).then(([deeplink, ai]) => {\r\n this.deeplink = `subscribe_${deeplink.$value.id}`;\r\n this.channels = this.config.channels.map(channel => channelsFactory.create(channel, this.deeplink, this))\r\n .filter(channel => !!channel);\r\n const channelInitPromises = this.channels.filter(channel => !!channel.initPromise)\r\n .map(channel => channel.initPromise);\r\n\r\n return Promise.all(channelInitPromises);\r\n }).then(channelPromises => {\r\n return this;\r\n }, err => {\r\n appInsights.trackWidgetEvent(this.config.id, 'Widget.initialize.error', err);\r\n return Promise.reject(err);\r\n })\r\n\r\n return this.initPromise;\r\n }\r\n\r\n initializeConfig() {\r\n let promise;\r\n if (!this.initialConfig.overrideConfig) {\r\n promise = loadConfig(this.initialConfig.widgetId, this.initialConfig.apiPath);\r\n } else {\r\n promise = Promise.resolve({ $value: this.initialConfig.overrideConfig });\r\n }\r\n\r\n return promise;\r\n }\r\n\r\n subscribe(channelCode) {\r\n const channel = find(this.getEnabledChannels(), chan => chan.channel === channelCode);\r\n if (channel) {\r\n channel.subscribe();\r\n }\r\n }\r\n\r\n getChannels() {\r\n return this.channels;\r\n }\r\n\r\n getEnabledChannels() {\r\n return this.channels.filter(channel => channel.enabled && !channel.hasError);\r\n }\r\n\r\n static getWidgetUserId() {\r\n let widgetUserId = cookies.getCookie(constants.COOKIE_WIDGET_USER_ID);\r\n if (widgetUserId === null) {\r\n let uuid = UUID.create(4);\r\n widgetUserId = uuid.hex;\r\n cookies.setCookie(constants.COOKIE_WIDGET_USER_ID, widgetUserId, constants.WIDGET_USER_ID_COOKIE_TTL);\r\n }\r\n return widgetUserId;\r\n }\r\n\r\n static createInsecureContext(insecureContext = {}) {\r\n const ctx = assign({}, insecureContext);//Object.assign({}, insecureContext);\r\n ctx.pageTitle = window.document.title;\r\n ctx.pageUrl = window.location.protocol + '//' + window.location.host + window.location.pathname;\r\n ctx.params = parseQueryString(window.location.search.substring(1));\r\n ctx.timezoneOffset = new Date().getTimezoneOffset();\r\n\r\n return ctx;\r\n }\r\n\r\n static getAiKey(config) {\r\n let aiKey = undefined;\r\n try {\r\n aiKey = config.headers.get('X-TB-AIKEY');\r\n } catch (e) { }\r\n\r\n return aiKey;\r\n }\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/widget/widget.js","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseIsNative.js\n// module id = 48\n// module chunks = 0 1","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_getRawTag.js\n// module id = 49\n// module chunks = 0 1","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_objectToString.js\n// module id = 50\n// module chunks = 0 1","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_isMasked.js\n// module id = 51\n// module chunks = 0 1","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_coreJsData.js\n// module id = 52\n// module chunks = 0 1","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_toSource.js\n// module id = 53\n// module chunks = 0 1","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_getValue.js\n// module id = 54\n// module chunks = 0 1","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseRest.js\n// module id = 55\n// module chunks = 0 1","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_overRest.js\n// module id = 56\n// module chunks = 0 1","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_apply.js\n// module id = 57\n// module chunks = 0 1","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_setToString.js\n// module id = 58\n// module chunks = 0 1","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseSetToString.js\n// module id = 59\n// module chunks = 0 1","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/constant.js\n// module id = 60\n// module chunks = 0 1","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_shortOut.js\n// module id = 61\n// module chunks = 0 1","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_isIterateeCall.js\n// module id = 62\n// module chunks = 0 1","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/keys.js\n// module id = 63\n// module chunks = 0 1","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseTimes.js\n// module id = 64\n// module chunks = 0 1","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseIsArguments.js\n// module id = 65\n// module chunks = 0 1","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/stubFalse.js\n// module id = 66\n// module chunks = 0 1","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseIsTypedArray.js\n// module id = 67\n// module chunks = 0 1","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseUnary.js\n// module id = 68\n// module chunks = 0 1","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_nodeUtil.js\n// module id = 69\n// module chunks = 0 1","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseKeys.js\n// module id = 70\n// module chunks = 0 1","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_nativeKeys.js\n// module id = 71\n// module chunks = 0 1","import apiErrorHandler from './apiErrorHandler.js';\r\n\r\nconst cache = {};\r\n\r\n\r\nexport default function loadConfig(widgetId, apiPath) {\r\n if (!widgetId) {\r\n return Promise.reject('Widget id required');\r\n }\r\n\r\n if (cache[widgetId]) {\r\n return cache[widgetId];\r\n }\r\n\r\n const loadingPromise = fetch(`${apiPath}/endUserNotifications/widgets/${widgetId}`).then(apiErrorHandler);\r\n loadingPromise.then(() => {\r\n cache[widgetId] = loadingPromise;\r\n });\r\n\r\n return loadingPromise;\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/utils/loadConfig.js","import apiErrorHandler from './apiErrorHandler.js';\r\n\r\nconst cache = {};\r\n\r\nexport default function loadDeepLink(apiPath, options = {}) {\r\n const body = JSON.stringify(options);\r\n\r\n if (cache[body]) {\r\n return cache[body];\r\n }\r\n\r\n cache[body] = fetch(`${apiPath}/endUserNotifications/deepLinks`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body\r\n }).then(apiErrorHandler);\r\n\r\n return cache[body];\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/utils/loadDeepLink.js","import apiErrorHandler from './apiErrorHandler.js';\r\n\r\nexport default function loadSubscriptions(uuid, widgetId, apiPath){\r\n const subscribedUsers = fetch(`${apiPath}/endUserNotifications/widgets/${widgetId}/subscribedUsers/${uuid}`).then(apiErrorHandler);\r\n return subscribedUsers;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/utils/loadSubscriptions.js","function parseQueryString(query) {\r\n const vars = query.split('&'),\r\n queryString = {};\r\n\r\n if (query.length > 0) {\r\n for (var i = 0; i < vars.length; i++) {\r\n const pair = vars[i].split('='),\r\n key = decodeURIComponent(pair[0]),\r\n value = decodeURIComponent(pair[1]);\r\n\r\n if (!key) \r\n continue;\r\n\r\n switch ( typeof queryString[key] ) {\r\n // If first entry with this name\r\n case 'undefined':\r\n queryString[key] = value;\r\n break;\r\n // If second entry with this name\r\n case 'string': {\r\n const arr = [ queryString[key], value ];\r\n queryString[ key ] = arr;\r\n break;\r\n }\r\n // If third or later entry with this name\r\n default:\r\n queryString[key].push(value);\r\n }\r\n }\r\n }\r\n return queryString;\r\n}\r\n\r\nexport default parseQueryString;\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/utils/parseQueryString.js","import FacebookChannel from './facebook.js';\r\nimport SkypeChannel from './skype.js';\r\nimport TelegramChannel from './telegram.js';\r\nimport ViberChanel from './viber.js';\r\nimport VKChannel from './vk.js';\r\nimport WhatsappChannel from './whatsapp.js';\r\n\r\nfunction getConstructor(channel) {\r\n switch(channel) {\r\n case 'facebook':\r\n return FacebookChannel;\r\n case 'skype':\r\n return SkypeChannel;\r\n case 'tg':\r\n return TelegramChannel;\r\n case 'viber':\r\n return ViberChanel;\r\n case 'vk':\r\n return VKChannel;\r\n case 'whatsapp':\r\n return WhatsappChannel;\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nconst channelsFactory = {\r\n create(channelObj, deeplink, widget) {\r\n const constructor = getConstructor(channelObj.channel);\r\n return (constructor ? new constructor(channelObj, deeplink, widget) : null);\r\n }\r\n}\r\n\r\nexport default channelsFactory;\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/channels/factory.js","import Channel from './channel.js';\r\nimport constants from '../utils/constants.js';\r\n\r\nexport default class FacebookChannel extends Channel {\r\n constructor(channelData = {}, deeplink, widget) {\r\n super(channelData, deeplink, widget);\r\n }\r\n\r\n subscribe() {\r\n super.subscribe();\r\n window.open(`https://m.me/${this.id}?ref=${this.deeplink}`, 'tb_facebook', constants.SUBSCRIPTION_WINDOW_PROPS);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/channels/facebook.js","import Channel from './channel.js';\r\nimport constants from '../utils/constants.js';\r\n\r\nexport default class SkypeChannel extends Channel {\r\n constructor(channelData = {}, deeplink, widget) {\r\n super(channelData, deeplink, widget);\r\n }\r\n\r\n subscribe() {\r\n super.subscribe();\r\n window.open(`https://join.skype.com/bot/${this.id}?add`, 'tb_skype', constants.SUBSCRIPTION_WINDOW_PROPS);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/channels/skype.js","import Channel from './channel.js';\r\nimport constants from '../utils/constants.js';\r\n\r\nexport default class TelegramChannel extends Channel {\r\n constructor(channelData = {}, deeplink, widget) {\r\n super(channelData, deeplink, widget);\r\n }\r\n\r\n subscribe() {\r\n super.subscribe();\r\n window.open(`https://telegram.me/${this.id}?start=${this.deeplink}`, 'tb_tg', constants.SUBSCRIPTION_WINDOW_PROPS);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/channels/telegram.js","import Channel from './channel.js';\r\nimport constants from '../utils/constants.js';\r\n\r\nexport default class ViberChannel extends Channel {\r\n constructor(channelData = {}, deeplink, widget) {\r\n super(channelData, deeplink, widget);\r\n }\r\n\r\n subscribe() {\r\n super.subscribe();\r\n window.open(`viber://pa?chatURI=${this.id}&context=${this.deeplink}`, 'viber', constants.SUBSCRIPTION_WINDOW_PROPS);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/channels/viber.js","import UUID from 'uuid-js';\r\n\r\nimport loadScript from '../utils/loadScript.js';\r\nimport apiErrorHandler from '../utils/apiErrorHandler.js';\r\n\r\nimport Channel from './channel.js';\r\nimport VKModal from './vk-modal/vk-modal.js';\r\n\r\nconst VK_API_VERSION = '5.73';\r\n\r\nfunction loadVkLib(){\r\n return new Promise((resolve, reject) => {\r\n if (window.VK && window.VK.Auth) {\r\n resolve('vk cache')\r\n }\r\n else {\r\n loadScript('//vk.com/js/api/openapi.js')\r\n .then(function () {\r\n resolve('vk load')\r\n }, function (err) {\r\n reject(err)\r\n })\r\n }\r\n });\r\n}\r\n\r\nfunction initVK(apiId) {\r\n return new Promise((resolve, reject) => {\r\n if (apiId) {\r\n if (!window.VK._apiId) {\r\n window.VK.init({apiId}); \r\n }\r\n window.VK.Auth.getLoginStatus(resolve)\r\n } else {\r\n reject('noVApiId')\r\n }\r\n })\r\n}\r\n\r\nfunction handleVKLoadingError(error) {\r\n console.error('Failed to load VK openapi.js. VK channel will be unavailable');\r\n return null; \r\n}\r\n\r\nexport default class VKChannel extends Channel {\r\n constructor(channelData = {}, deeplink, widget) {\r\n super(channelData, deeplink, widget);\r\n\r\n this.vkApiId = this.widget.config.vkApiId;\r\n this.initPromise = null;\r\n this.vkPluginContainerId = null;\r\n this.authorized = false;\r\n\r\n if (this.enabled) {\r\n if (!this.widget.useVKApi) {\r\n this.vkPluginContainerId = UUID.create(4).hex;\r\n this.initPromise = loadVkLib()\r\n .catch(err => this.__handleVKLoadingError(err));\r\n } else {\r\n this.initPromise = loadVkLib()\r\n .then(() => initVK(this.vkApiId))\r\n .then(() => {\r\n this.authorized = !!(window.VK.Auth.getSession());\r\n })\r\n .catch(err => this.__handleVKLoadingError(err));\r\n }\r\n }\r\n }\r\n\r\n subscribe() {\r\n super.subscribe();\r\n this.subscribeViaPlugin();\r\n }\r\n\r\n subscribeViaApi() {\r\n let promise = null;\r\n if (!this.authorized) {\r\n promise = this.__login().then( res => this.__allowMessagesFromGroup() );\r\n } else {\r\n promise = this.__allowMessagesFromGroup();\r\n }\r\n return promise;\r\n }\r\n\r\n __allowMessagesFromGroup () {\r\n window.VK.Api.call(\r\n 'messages.allowMessagesFromGroup',\r\n {\r\n group_id: this.id,\r\n v: VK_API_VERSION,\r\n },\r\n res => {\r\n const vkSession = window.VK.Auth.getSession();\r\n const vkUserId = vkSession.mid;\r\n\r\n if (res.response === 1) {\r\n this.__textbackSubscribe(vkUserId);\r\n } else {\r\n console.log('VK res error:', res)\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n __login () {\r\n return new Promise(resolve => {\r\n window.VK.Auth.login(res => {\r\n resolve(res)\r\n }, 4096)\r\n })\r\n }\r\n\r\n __textbackSubscribe (vkUserId) {\r\n return fetch(`${this.widget.initialConfig.apiPath}/endUserNotifications/subscriptions`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n 'accountId': this.widget.config.accountId,\r\n 'insecureContext': this.widget.insecureContext,\r\n 'secureContextToken': this.widget.secureContextToken,\r\n 'address': {\r\n 'channel': 'vk',\r\n 'channelId': this.config.channelId,\r\n 'accountId': this.widget.config.accountId,\r\n 'remoteAddress': vkUserId,\r\n 'chatId': vkUserId\r\n },\r\n widgetId: this.widget.id,\r\n \"user\": {\r\n \"id\": this.widget.widgetUserId\r\n }\r\n })\r\n }).then(apiErrorHandler);\r\n }\r\n\r\n __handleVKLoadingError(err) {\r\n super.reportError('Failed to load VK openapi.js. VK channel will be unavailable.', err);\r\n return null; \r\n }\r\n\r\n subscribeViaPlugin() {\r\n const modal = new VKModal(this.vkPluginContainerId);\r\n this.renderVKSubscriptionButton();\r\n\r\n modal.onClose = () => {\r\n if (this.vkSubscribeHandler) {\r\n window.VK.Observer.unsubscribe('widgets.allowMessagesFromCommunity.allowed', this.vkSubscribeHandler);\r\n this.vkSubscribeHandler = null;\r\n }\r\n };\r\n }\r\n\r\n renderVKSubscriptionButton(height = 30, containerId = this.vkPluginContainerId) {\r\n if (this.vkSubscribeHandler) {\r\n window.VK.Observer.unsubscribe('widgets.allowMessagesFromCommunity.allowed', this.vkSubscribeHandler);\r\n this.vkSubscribeHandler = null;\r\n }\r\n\r\n const options = {\r\n height,\r\n key: this.deeplink\r\n };\r\n\r\n window.VK.Widgets.AllowMessagesFromCommunity(containerId, options, this.id);\r\n if (!this.config.disableAllowMessageEvents) {\r\n this.vkSubscribeHandler = this.__textbackSubscribe.bind(this);\r\n window.VK.Observer.subscribe('widgets.allowMessagesFromCommunity.allowed', this.vkSubscribeHandler);\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/channels/vk.js","const cache = {};\r\n\r\nexport default function loadScript(url) {\r\n if (cache[url]){\r\n return cache[url];\r\n }\r\n\r\n cache[url] = new Promise((resolve, reject) => {\r\n let ready = false;\r\n const scriptElement = document.createElement(\"script\");\r\n\r\n scriptElement.type = \"text/javascript\";\r\n scriptElement.src = url;\r\n scriptElement.async = true;\r\n scriptElement.onload = scriptElement.onreadystatechange = function() {\r\n if (!ready && (!this.readyState || this.readyState == \"complete\")) {\r\n ready = true;\r\n resolve();\r\n }\r\n };\r\n scriptElement.onerror = scriptElement.onabort = reject;\r\n document.head.appendChild(scriptElement);\r\n });\r\n\r\n return cache[url];\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/utils/loadScript.js","import t from '../../../libraries/t.js';\r\n\r\nimport './vk-modal.scss';\r\nimport vkTemplate from './vk-modal.html';\r\nimport vkIcon from '../../../widget/icons/icon_vk.svg';\r\n\r\nexport default class VKModal {\r\n constructor(vkPluginContainerId) {\r\n const modalContainer = document.createElement('div');\r\n \r\n modalContainer.innerHTML = new t(vkTemplate).render({ vkPluginContainerId, vkIcon });\r\n\r\n this.element = document.body.appendChild(modalContainer.firstChild);\r\n this.element.querySelector('.tb-close').addEventListener('click', event => {\r\n document.body.classList.remove('tb-modal-open');\r\n document.body.removeChild(this.element);\r\n\r\n if (this.onClose) {\r\n this.onClose();\r\n }\r\n });\r\n\r\n document.body.classList.add('tb-modal-open');\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/channels/vk-modal/vk-modal.js","// local-scoped modification of https://github.com/jasonmoo/t.js\r\nvar blockregex = /\\{\\{(([@!]?)(.+?))\\}\\}(([\\s\\S]+?)(\\{\\{:\\1\\}\\}([\\s\\S]+?))?)\\{\\{\\/\\1\\}\\}/g,\r\n valregex = /\\{\\{([=%])(.+?)\\}\\}/g;\r\n\r\nfunction t(template) {\r\n this.t = template;\r\n}\r\n\r\nfunction scrub(val) {\r\n return new Option(val).innerHTML.replace(/\"/g,\""\");\r\n}\r\n\r\nfunction get_value(vars, key) {\r\n var parts = key.split('.');\r\n while (parts.length) {\r\n if (!(parts[0] in vars)) {\r\n return false;\r\n }\r\n vars = vars[parts.shift()];\r\n }\r\n return vars;\r\n}\r\n\r\nfunction render(fragment, vars) {\r\n return fragment\r\n .replace(blockregex, function(_, __, meta, key, inner, if_true, has_else, if_false) {\r\n\r\n var val = get_value(vars,key), temp = \"\", i;\r\n\r\n if (!val) {\r\n\r\n // handle if not\r\n if (meta == '!') {\r\n return render(inner, vars);\r\n }\r\n // check for else\r\n if (has_else) {\r\n return render(if_false, vars);\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n // regular if\r\n if (!meta) {\r\n return render(if_true, vars);\r\n }\r\n\r\n // process array/obj iteration\r\n if (meta == '@') {\r\n // store any previous vars\r\n // reuse existing vars\r\n _ = vars._key;\r\n __ = vars._val;\r\n for (i in val) {\r\n if (val.hasOwnProperty(i)) {\r\n vars._key = i;\r\n vars._val = val[i];\r\n temp += render(inner, vars);\r\n }\r\n }\r\n vars._key = _;\r\n vars._val = __;\r\n return temp;\r\n }\r\n\r\n })\r\n .replace(valregex, function(_, meta, key) {\r\n var val = get_value(vars,key);\r\n\r\n if (val || val === 0) {\r\n return meta == '%' ? scrub(val) : val;\r\n }\r\n return \"\";\r\n });\r\n}\r\n\r\nt.prototype.render = function (vars) {\r\n return render(this.t, vars);\r\n};\r\n\r\nexport default t;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/libraries/t.js","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js!./vk-modal.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// Prepare cssTransformation\nvar transform;\n\nvar options = {\"hmr\":true}\noptions.transform = transform\n// add the styles to the DOM\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js!./vk-modal.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js!./vk-modal.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/sdk/channels/vk-modal/vk-modal.scss\n// module id = 85\n// module chunks = 0 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".tb-modal-open {\\n overflow: hidden; }\\n .tb-modal-open .tb-modal {\\n overflow-x: hidden;\\n overflow-y: auto;\\n display: block; }\\n\\n.tb-modal {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n display: none;\\n background-color: rgba(0, 0, 0, 0.7);\\n z-index: 1072;\\n height: 100%;\\n width: 100%;\\n text-align: center; }\\n .tb-modal * {\\n box-sizing: border-box; }\\n .tb-modal .tb-modal-dialog {\\n height: 100%;\\n width: 100%; }\\n .tb-modal .tb-modal-dialog:before {\\n display: inline-block;\\n vertical-align: middle;\\n content: \\\" \\\";\\n height: 100%; }\\n .tb-modal .tb-modal-dialog .tb-modal-content {\\n display: inline-block;\\n position: relative;\\n padding: 25px 25px 35px;\\n background-color: #fff;\\n width: 310px; }\\n .tb-modal .tb-modal-dialog .tb-modal-content .tb-modal-content_text {\\n display: flex;\\n justify-content: center; }\\n .tb-modal .tb-modal-dialog .tb-modal-content .tb-close {\\n position: absolute;\\n top: 5px;\\n right: 12px;\\n border: none;\\n outline: 0;\\n padding: 0;\\n background-color: transparent;\\n font-size: 24px;\\n font-weight: bold;\\n color: #000;\\n opacity: 0.7; }\\n .tb-modal .tb-modal-dialog .tb-modal-content .tb-close:hover {\\n opacity: 1;\\n cursor: pointer; }\\n\\n.tb-vk-button {\\n margin-top: 15px;\\n display: inline-block;\\n width: 230px;\\n position: relative;\\n padding-left: 40px; }\\n .tb-vk-button .tb-vk-icon {\\n width: 30px;\\n height: 30px;\\n position: absolute;\\n top: 0px;\\n left: 0px; }\\n .tb-vk-button .tb-vk-icon > svg path {\\n fill: #45668e; }\\n\\n@media only screen and (min-device-width: 736px) {\\n .tb-modal .tb-modal-dialog .tb-modal-content {\\n width: 500px; }\\n .tb-vk-button {\\n width: 245px;\\n padding-left: 55px; }\\n .tb-vk-button .tb-vk-icon {\\n width: 40px;\\n height: 40px;\\n top: -5px; } }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/sdk/channels/vk-modal/vk-modal.scss\n// module id = 86\n// module chunks = 0 1","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/style-loader/lib/urls.js\n// module id = 87\n// module chunks = 0 1","module.exports = \"<div class=\\\"tb-modal\\\">\\r\\n <div class=\\\"tb-modal-dialog\\\">\\r\\n <div class=\\\"tb-modal-content\\\">\\r\\n <button class=\\\"tb-close\\\" type=\\\"button\\\">×</button>\\r\\n <div class=\\\"tb-modal-content_text\\\">\\r\\n <p>\\r\\n Разрешите сообществу присылать сообщения. <br>\\r\\n Вы в любой момент сможете отписаться.\\r\\n </p>\\r\\n </div>\\r\\n <div class=\\\"tb-vk-button\\\">\\r\\n <div class=\\\"tb-vk-icon\\\">{{=vkIcon}}</div>\\r\\n <div id=\\\"{{=vkPluginContainerId}}\\\"></div> \\r\\n </div> \\r\\n </div>\\r\\n </div>\\r\\n</div> \\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/sdk/channels/vk-modal/vk-modal.html\n// module id = 88\n// module chunks = 0 1","import Channel from './channel.js';\r\nimport browserInfo from '../utils/browserInfo.js';\r\nimport constants from '../utils/constants.js';\r\n\r\nconst prefixText = encodeURIComponent('Отправьте не изменяя это сообщение ');\r\n\r\nexport default class WhatsappChannel extends Channel {\r\n constructor(channelData = {}, deeplink, widget) {\r\n super(channelData, deeplink, widget);\r\n\r\n this.domainPrefix = browserInfo.isMobile() ? 'api' : 'web';\r\n }\r\n\r\n subscribe() {\r\n super.subscribe();\r\n window.open(`https://${this.domainPrefix}.whatsapp.com/send?phone=${this.id}&text=${prefixText + this.deeplink}`, 'whatsapp', constants.SUBSCRIPTION_WINDOW_PROPS);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/channels/whatsapp.js","const isMobile = /Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i.test(navigator.userAgent);\r\n\r\nconst browserInfo = {\r\n isMobile() { \r\n return isMobile;\r\n },\r\n};\r\n\r\nexport default browserInfo;\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/utils/browserInfo.js","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.4+314e4831\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar TRY_CATCH_ERROR = { error: null };\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n TRY_CATCH_ERROR.error = error;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === TRY_CATCH_ERROR) {\n reject(promise, TRY_CATCH_ERROR.error);\n TRY_CATCH_ERROR.error = null;\n } else if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = void 0,\n failed = void 0;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = getThen(entry);\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/es6-promise/dist/es6-promise.js\n// module id = 91\n// module chunks = 0 1","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 92\n// module chunks = 0 1","import SDK from './index.js';\n\n\n// WEBPACK FOOTER //\n// ./src/sdk/sdk.entry.js"],"sourceRoot":""}
|