Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /******/ (function(modules) { // webpackBootstrap
- /******/ // The module cache
- /******/ var installedModules = {};
- /******/
- /******/ // The require function
- /******/ function __webpack_require__(moduleId) {
- /******/
- /******/ // Check if module is in cache
- /******/ if(installedModules[moduleId]) {
- /******/ return installedModules[moduleId].exports;
- /******/ }
- /******/ // Create a new module (and put it into the cache)
- /******/ var module = installedModules[moduleId] = {
- /******/ i: moduleId,
- /******/ l: false,
- /******/ exports: {}
- /******/ };
- /******/
- /******/ // Execute the module function
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- /******/
- /******/ // Flag the module as loaded
- /******/ module.l = true;
- /******/
- /******/ // Return the exports of the module
- /******/ return module.exports;
- /******/ }
- /******/
- /******/
- /******/ // expose the modules object (__webpack_modules__)
- /******/ __webpack_require__.m = modules;
- /******/
- /******/ // expose the module cache
- /******/ __webpack_require__.c = installedModules;
- /******/
- /******/ // define getter function for harmony exports
- /******/ __webpack_require__.d = function(exports, name, getter) {
- /******/ if(!__webpack_require__.o(exports, name)) {
- /******/ Object.defineProperty(exports, name, {
- /******/ configurable: false,
- /******/ enumerable: true,
- /******/ get: getter
- /******/ });
- /******/ }
- /******/ };
- /******/
- /******/ // define __esModule on exports
- /******/ __webpack_require__.r = function(exports) {
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
- /******/ };
- /******/
- /******/ // getDefaultExport function for compatibility with non-harmony modules
- /******/ __webpack_require__.n = function(module) {
- /******/ var getter = module && module.__esModule ?
- /******/ function getDefault() { return module['default']; } :
- /******/ function getModuleExports() { return module; };
- /******/ __webpack_require__.d(getter, 'a', getter);
- /******/ return getter;
- /******/ };
- /******/
- /******/ // Object.prototype.hasOwnProperty.call
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
- /******/
- /******/ // __webpack_public_path__
- /******/ __webpack_require__.p = "";
- /******/
- /******/
- /******/ // Load entry module and return exports
- /******/ return __webpack_require__(__webpack_require__.s = "./src/main.js");
- /******/ })
- /************************************************************************/
- /******/ ({
- /***/ "./src/bridgeMraid.js":
- /*!****************************!*\
- !*** ./src/bridgeMraid.js ***!
- \****************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("\n\n// Bridge interface to SDK\nvar CONSTANTS = __webpack_require__(/*! ./constants */ \"./src/constants.js\");\nvar Helpers = __webpack_require__(/*! ./helpers */ \"./src/helpers.js\");\nvar mraidState = __webpack_require__(/*! ./mraidState */ \"./src/mraidState.js\");\n\nvar nativeSDKFiredReady = false;\nvar nativeCallQueue = [];\nvar nativeCallInFlight = false;\nvar lastSizeChangeProperties = null;\n\n// Functions that will be invoked by the native SDK whenever a \"change\" event occurs.\nvar changeHandlers = {\n state: function state(val) {\n var state = mraidState.getStateValue();\n if (state === CONSTANTS.STATES.LOADING) {\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Native SDK initialized.\");\n }\n state = mraidState.updateState(val);\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set state to \" + Helpers.stringify(val));\n broadcastEvent(CONSTANTS.EVENTS.STATECHANGE, state);\n },\n viewable: function viewable(val) {\n var isViewable = mraidState.updateIsViewable(val);\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set isViewable to \" + Helpers.stringify(val));\n broadcastEvent(CONSTANTS.EVENTS.VIEWABLECHANGE, isViewable);\n },\n placementType: function placementType(val) {\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set placementType to \" + Helpers.stringify(val));\n mraidState.updatePlacementType(val);\n },\n sizeChange: function sizeChange(val) {\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set screenSize to \" + Helpers.stringify(val));\n var width = val.width,\n height = val.height;\n\n mraidState.updateScreenSize(width, height);\n },\n supports: function supports(val) {\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set supports to \" + Helpers.stringify(val));\n mraidState.updateSupportProperties(val);\n },\n hostSDKVersion: function hostSDKVersion(val) {\n // val is expected to be formatted like 'X.Y.Z[-+]identifier'.\n var versions = val.split(\".\").map(function (version) {\n return parseInt(version, 10);\n }).filter(function (version) {\n return version >= 0;\n });\n\n if (versions.length >= 3) {\n var hostSDKVersion = mraidState.updateHostSDKVersion(versions);\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set hostSDKVersion to \" + Helpers.stringify(hostSDKVersion));\n }\n }\n};\n\nfunction fireChangeEvent(properties) {\n for (var p in properties) {\n if (properties[p]) {\n // Change handlers defined by MRAID below\n var handler = changeHandlers[p];\n handler(properties[p]);\n }\n }\n}\n\nfunction nativeCallComplete() {\n if (nativeCallQueue.length === 0) {\n nativeCallInFlight = false;\n return;\n }\n var nextCall = nativeCallQueue.pop();\n window.location = nextCall;\n}\n\nfunction executeNativeCall(event, args) {\n var call = \"smaato://\" + event;\n var key = void 0;\n var value = void 0;\n var isFirstArgument = true;\n\n if (!nativeSDKFiredReady) {\n console.log(\"rejecting \" + event + \" because mraid is not ready\");\n notifyErrorEvent(\"mraid is not ready\", event);\n return;\n }\n\n for (var i = 0; i < args.length; i += 2) {\n key = args[i];\n value = args[i + 1];\n\n if (value === null) {\n continue;\n }\n if (isFirstArgument) {\n call += \"?\";\n isFirstArgument = false;\n } else {\n call += \"&\";\n }\n call += encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\n }\n\n if (nativeCallInFlight) {\n nativeCallQueue.push(call);\n } else {\n nativeCallInFlight = true;\n window.location = call; // how does this work?\n }\n}\n\nfunction setCurrentPosition(x, y, width, height) {\n var currentPosition = mraidState.updateCurrentPosition(x, y, width, height);\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set current position to \" + Helpers.stringify(currentPosition));\n}\n\nfunction setDefaultPosition(x, y, width, height) {\n var defaultPosition = mraidState.updateDefaultPosition(x, y, width, height);\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set default position to \" + Helpers.stringify(defaultPosition));\n}\n\nfunction setMaxSize(width, height) {\n var maxSize = mraidState.updateMaxSize(width, height);\n mraidState.updateExpandProperties(\"width\", width);\n mraidState.updateExpandProperties(\"height\", height);\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set max size to \" + Helpers.stringify(maxSize));\n}\n\nfunction setPlacementType(_placementType) {\n var placementType = mraidState.updatePlacementType(_placementType);\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set placement type to \" + Helpers.stringify(placementType));\n}\n\nfunction setScreenSize(width, height) {\n var screenSize = mraidState.updateScreenSize(width, height);\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set screen size to \" + Helpers.stringify(screenSize));\n}\n\nfunction setState(_state) {\n var state = mraidState.updateState(_state);\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set state to \" + Helpers.stringify(state));\n broadcastEvent(CONSTANTS.EVENTS.STATECHANGE, state);\n}\n\nfunction setIsViewable(_isViewable) {\n var isViewable = mraidState.updateIsViewable(_isViewable);\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set isViewable to \" + Helpers.stringify(isViewable));\n broadcastEvent(CONSTANTS.EVENTS.VIEWABLECHANGE, isViewable);\n}\n\nfunction setSupports(value) {\n return mraidState.updateSupportProperties(value);\n}\n\nfunction notifyReadyEvent() {\n nativeSDKFiredReady = true;\n broadcastEvent(CONSTANTS.EVENTS.READY);\n}\n\nfunction notifyErrorEvent(message, action) {\n broadcastEvent(CONSTANTS.EVENTS.ERROR, message, action);\n}\n\nfunction notifySizeChangeEvent(width, height) {\n if (lastSizeChangeProperties && width === lastSizeChangeProperties.width && height === lastSizeChangeProperties.height) {\n return;\n }\n\n lastSizeChangeProperties = {\n width: width,\n height: height\n };\n broadcastEvent(CONSTANTS.EVENTS.SIZECHANGE, width, height);\n}\n\nfunction notifyStateChangeEvent() {\n var state = mraidState.getStateValue();\n if (state === CONSTANTS.STATES.LOADING) {\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Native SDK initialized.\");\n }\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set state to \" + Helpers.stringify(state));\n broadcastEvent(CONSTANTS.EVENTS.STATECHANGE, state);\n}\n\nfunction notifyViewableChangeEvent() {\n var isViewable = mraidState.getIsViewableValue();\n broadcastEvent(CONSTANTS.EVENTS.INFO, \"Set isViewable to \" + Helpers.stringify(isViewable));\n broadcastEvent(CONSTANTS.EVENTS.VIEWABLECHANGE, isViewable);\n}\n\nmodule.exports = {\n validate: validate, // shouldn't be on bridge\n setState: setState,\n setMaxSize: setMaxSize,\n setSupports: setSupports,\n setScreenSize: setScreenSize,\n setIsViewable: setIsViewable,\n broadcastEvent: broadcastEvent,\n fireChangeEvent: fireChangeEvent,\n setPlacementType: setPlacementType,\n executeNativeCall: executeNativeCall,\n setCurrentPosition: setCurrentPosition,\n setDefaultPosition: setDefaultPosition,\n nativeCallComplete: nativeCallComplete,\n notifyReadyEvent: notifyReadyEvent,\n notifyErrorEvent: notifyErrorEvent,\n notifySizeChangeEvent: notifySizeChangeEvent,\n notifyStateChangeEvent: notifyStateChangeEvent,\n notifyViewableChangeEvent: notifyViewableChangeEvent,\n lastSizeChangeProperties: lastSizeChangeProperties,\n nativeSDKFiredReady: nativeSDKFiredReady,\n nativeCallQueue: nativeCallQueue,\n nativeCallInFlight: nativeCallInFlight,\n fireReadyEvent: notifyReadyEvent,\n fireErrorEvent: notifyErrorEvent\n};\n\nfunction broadcastEvent() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var event = args.shift();\n var listeners = mraidState.getListeners();\n if (listeners[event]) {\n listeners[event].broadcast(args);\n }\n}\n\nfunction validate(obj, validators, action, merge) {\n if (!merge) {\n // Check to see if any required properties are missing.\n if (obj === null) {\n broadcastEvent(CONSTANTS.EVENTS.ERROR, \"Required object not provided.\", action);\n return false;\n }\n for (var i in validators) {\n if (validators[i] && obj[i] === undefined) {\n broadcastEvent(CONSTANTS.EVENTS.ERROR, \"Object is missing required property: \" + i, action);\n return false;\n }\n }\n }\n\n for (var prop in obj) {\n var validator = validators[prop];\n var value = obj[prop];\n if (validator && !validator(value)) {\n // Failed validation.\n broadcastEvent(CONSTANTS.EVENTS.ERROR, \"Value of property \" + prop + \" is invalid: \" + value, action);\n return false;\n }\n }\n return true;\n}\n\n//# sourceURL=webpack:///./src/bridgeMraid.js?");
- /***/ }),
- /***/ "./src/constants.js":
- /*!**************************!*\
- !*** ./src/constants.js ***!
- \**************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("\n\nmodule.exports = {\n VERSION: \"2.0\",\n STATES: {\n LOADING: \"loading\",\n DEFAULT: \"default\",\n EXPANDED: \"expanded\",\n HIDDEN: \"hidden\",\n RESIZED: \"resized\"\n },\n EVENTS: {\n ERROR: \"error\",\n INFO: \"info\",\n READY: \"ready\",\n STATECHANGE: \"stateChange\",\n VIEWABLECHANGE: \"viewableChange\",\n SIZECHANGE: \"sizeChange\"\n },\n PLACEMENT_TYPES: {\n UNKNOWN: \"unknown\",\n INLINE: \"inline\",\n INTERSTITIAL: \"interstitial\"\n },\n NATIVE_EVENTS: {\n OPEN: \"open\",\n USECUSTOMCLOSE: \"useCustomClose\",\n EXPAND: \"expand\",\n CLOSE: \"close\",\n PLAYVIDEO: \"playVideo\",\n SETORIENTATIONPROPERTIES: \"setOrientationProperties\",\n RESIZE: \"resize\"\n }\n};\n\n//# sourceURL=webpack:///./src/constants.js?");
- /***/ }),
- /***/ "./src/helpers.js":
- /*!************************!*\
- !*** ./src/helpers.js ***!
- \************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("\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 contains(value, array) {\n for (var i in array) {\n if (array[i] === value) {\n return true;\n }\n }\n return false;\n}\n\nfunction clone(obj) {\n if (obj === null) {\n return null;\n }\n var f = function f() {};\n f.prototype = obj;\n return new f();\n}\n\nfunction stringify(obj) {\n if ((typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) === \"object\") {\n var out = [];\n if (obj.push) {\n // Array.\n for (var p in obj) {\n out.push(obj[p]);\n }\n return \"[\" + out.join(\",\") + \"]\";\n }\n // Other object.\n for (var _p in obj) {\n out.push(\"'\" + _p + \"': \" + obj[_p]);\n }\n return \"{\" + out.join(\",\") + \"}\";\n }return String(obj);\n}\n\nmodule.exports = {\n clone: clone,\n contains: contains,\n stringify: stringify\n};\n\n//# sourceURL=webpack:///./src/helpers.js?");
- /***/ }),
- /***/ "./src/main.js":
- /*!*********************!*\
- !*** ./src/main.js ***!
- \*********************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("\n\nvar mraid = __webpack_require__(/*! ./mraid */ \"./src/mraid.js\");\nvar mraidbridge = __webpack_require__(/*! ./bridgeMraid */ \"./src/bridgeMraid.js\");\n\n(function () {\n var isIOS = /iphone|ipad|ipod/i.test(window.navigator.userAgent.toLowerCase());\n if (isIOS) {\n console = {};\n console.log = function (log) {\n var iframe = document.createElement(\"iframe\");\n iframe.setAttribute(\"src\", \"ios-log: \" + log);\n document.documentElement.appendChild(iframe);\n iframe.parentNode.removeChild(iframe);\n iframe = null;\n };\n console.debug = console.info = console.warn = console.error = console.log;\n }\n})();\n\n(function () {\n // Bridge interface to SDK\n window.mraidbridge = mraidbridge;\n window.mraid = mraid;\n})();\n\n//# sourceURL=webpack:///./src/main.js?");
- /***/ }),
- /***/ "./src/mraid.js":
- /*!**********************!*\
- !*** ./src/mraid.js ***!
- \**********************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("\n\nvar CONSTANTS = __webpack_require__(/*! ./constants */ \"./src/constants.js\");\nvar Helpers = __webpack_require__(/*! ./helpers */ \"./src/helpers.js\");\nvar bridge = __webpack_require__(/*! ./bridgeMraid */ \"./src/bridgeMraid.js\");\nvar mraidState = __webpack_require__(/*! ./mraidState */ \"./src/mraidState.js\");\n\nvar VERSION = CONSTANTS.VERSION,\n STATES = CONSTANTS.STATES,\n EVENTS = CONSTANTS.EVENTS,\n PLACEMENT_TYPES = CONSTANTS.PLACEMENT_TYPES,\n NATIVE_EVENTS = CONSTANTS.NATIVE_EVENTS;\n\n\nmodule.exports = {\n VERSION: VERSION,\n STATES: STATES,\n EVENTS: EVENTS,\n PLACEMENT_TYPES: PLACEMENT_TYPES,\n addEventListener: addEventListener,\n removeEventListener: removeEventListener,\n open: open,\n close: close,\n expand: expand,\n resize: resize,\n supports: supports,\n getState: getState,\n playVideo: playVideo,\n getMaxSize: getMaxSize,\n getVersion: getVersion,\n isViewable: isViewable,\n getScreenSize: getScreenSize,\n useCustomClose: useCustomClose,\n getPlacementType: getPlacementType,\n getHostSDKVersion: getHostSDKVersion,\n getCurrentPosition: getCurrentPosition,\n getDefaultPosition: getDefaultPosition,\n getResizeProperties: getResizeProperties,\n setResizeProperties: setResizeProperties,\n getExpandProperties: getExpandProperties,\n setExpandProperties: setExpandProperties,\n getOrientationProperties: getOrientationProperties,\n setOrientationProperties: setOrientationProperties\n};\n\nvar expandPropertyValidators = {\n useCustomClose: function useCustomClose(v) {\n return typeof v === \"boolean\";\n }\n};\n\nfunction addEventListener(event, listener) {\n if (!event || !listener) {\n bridge.broadcastEvent(EVENTS.ERROR, \"Both event and listener are required.\", \"addEventListener\");\n } else if (!Helpers.contains(event, EVENTS)) {\n bridge.broadcastEvent(EVENTS.ERROR, \"Unknown MRAID event: \" + event, \"addEventListener\");\n } else {\n mraidState.updateListeners(event, listener);\n }\n}\n\nfunction close() {\n var state = mraidState.getStateValue();\n if (state === STATES.HIDDEN) {\n bridge.broadcastEvent(EVENTS.ERROR, \"Ad cannot be closed when it is already hidden.\", \"close\");\n } else {\n bridge.executeNativeCall(NATIVE_EVENTS.CLOSE, []);\n try {\n Android.close(); // eslint-disable-line no-undef\n } catch (err) {\n console.warn(\"Android is not defined!\");\n }\n }\n}\n\nfunction expand(URL) {\n var expandProperties = mraidState.getExpandProperties();\n if (!(getState() === STATES.DEFAULT || getState() === STATES.RESIZED)) {\n bridge.broadcastEvent(EVENTS.ERROR, \"Ad can only be expanded from the default or resized state.\", \"expand\");\n } else {\n var args = [\"shouldUseCustomClose\", expandProperties.useCustomClose];\n if (URL) {\n args = args.concat([\"url\", URL]);\n }\n bridge.executeNativeCall(NATIVE_EVENTS.EXPAND, args);\n try {\n Android.expand(0, 0, 0, 0, URL, expandProperties.useCustomClose); // eslint-disable-line no-undef\n } catch (err) {\n console.warn(\"Android is not defined!\");\n }\n }\n}\n\nfunction getExpandProperties() {\n var expandProperties = mraidState.getExpandProperties();\n var properties = {\n width: expandProperties.width,\n height: expandProperties.height,\n useCustomClose: expandProperties.useCustomClose,\n isModal: expandProperties.isModal\n };\n return properties;\n}\n\nfunction getCurrentPosition() {\n var _mraidState$getCurren = mraidState.getCurrentPositionValue(),\n x = _mraidState$getCurren.x,\n y = _mraidState$getCurren.y,\n width = _mraidState$getCurren.width,\n height = _mraidState$getCurren.height;\n\n return {\n x: x, y: y, width: width, height: height\n };\n}\n\nfunction getDefaultPosition() {\n var _mraidState$getDefaul = mraidState.getDefaultPositionValue(),\n x = _mraidState$getDefaul.x,\n y = _mraidState$getDefaul.y,\n width = _mraidState$getDefaul.width,\n height = _mraidState$getDefaul.height;\n\n return {\n x: x, y: y, width: width, height: height\n };\n}\n\nfunction getMaxSize() {\n var maxSize = mraidState.getMaxSizeValue();\n var width = maxSize.width,\n height = maxSize.height;\n\n return { width: width, height: height };\n}\n\nfunction getPlacementType() {\n return mraidState.getPlacementTypeValue();\n}\n\nfunction getScreenSize() {\n var screenSize = mraidState.getScreenSizeValue();\n var width = screenSize.width,\n height = screenSize.height;\n\n return { width: width, height: height };\n}\n\nfunction getState() {\n return mraidState.getStateValue();\n}\n\nfunction isViewable() {\n return mraidState.getIsViewableValue();\n}\n\nfunction getVersion() {\n return VERSION;\n}\n\nfunction open(URL) {\n if (!URL) {\n bridge.broadcastEvent(EVENTS.ERROR, \"URL is required.\", \"open\");\n } else {\n var args = [\"url\", URL];\n bridge.executeNativeCall(NATIVE_EVENTS.OPEN, args);\n try {\n Android.open(URL); // eslint-disable-line no-undef\n } catch (err) {\n console.warn(\"Android is not defined!\");\n }\n }\n}\n\nfunction removeEventListener(event, listener) {\n if (!event) {\n bridge.broadcastEvent(EVENTS.ERROR, \"Event is required.\", \"removeEventListener\");\n return;\n }\n var listeners = mraidState.getListeners();\n\n if (listener) {\n // If we have a valid event, we'll try to remove the listener from it.\n var success = false;\n if (listeners[event]) {\n success = mraidState.removeListener(listener, event);\n }\n // If we didn't have a valid event or couldn't remove the listener from the event, broadcast an error and return early.\n if (!success) {\n bridge.broadcastEvent(EVENTS.ERROR, \"Listener not currently registered for event.\", \"removeEventListener\");\n return;\n }\n } else if (!listener && listeners[event]) {\n mraidState.removeAllListeners(event);\n }\n\n listeners = mraidState.getListeners();\n if (listeners[event] && listeners[event].count === 0) {\n mraidState.deleteListeners(event);\n }\n}\n\nfunction setExpandProperties(properties) {\n if (bridge.validate(properties, expandPropertyValidators, \"setExpandProperties\", true)) {\n if (properties.hasOwnProperty(\"useCustomClose\")) {\n mraidState.updateExpandProperties(\"useCustomClose\", properties.useCustomClose);\n }\n }\n}\n\nfunction useCustomClose(shouldUseCustomClose) {\n mraidState.updateExpandProperties(\"useCustomClose\", shouldUseCustomClose);\n var args = [\"shouldUseCustomClose\", shouldUseCustomClose];\n bridge.executeNativeCall(NATIVE_EVENTS.USECUSTOMCLOSE, args);\n try {\n Android.useCustomClose(shouldUseCustomClose); // eslint-disable-line no-undef\n } catch (err) {\n console.warn(\"Android is not defined!\");\n }\n}\n\nfunction supports(feature) {\n return mraidState.getSupportValue(feature);\n}\n\nfunction playVideo(uri) {\n if (!isViewable()) {\n bridge.broadcastEvent(EVENTS.ERROR, \"playVideo cannot be called until the ad is viewable\", \"playVideo\");\n return;\n }\n if (!uri) {\n bridge.broadcastEvent(EVENTS.ERROR, \"playVideo must be called with a valid URI\", \"playVideo\");\n } else {\n var args = [\"uri\", uri];\n bridge.executeNativeCall(NATIVE_EVENTS.PLAYVIDEO, args);\n try {\n Android.playVideo(uri); // eslint-disable-line no-undef\n } catch (err) {\n console.warn(\"Android is not defined!\");\n }\n }\n}\n\nfunction setOrientationProperties(properties) {\n var desiredProperties = [\"allowOrientationChange\", \"forceOrientation\"];\n var orientationProperties = mraidState.updateOrientationProperties(desiredProperties, properties);\n\n var args = [\"allowOrientationChange\", orientationProperties.allowOrientationChange, \"forceOrientation\", orientationProperties.forceOrientation];\n bridge.executeNativeCall(NATIVE_EVENTS.SETORIENTATIONPROPERTIES, args);\n try {\n Android.setOrientationProperties(orientationProperties.allowOrientationChange, orientationProperties.forceOrientation); // eslint-disable-line no-undef\n } catch (err) {\n console.warn(\"Android is not defined!\");\n }\n}\n\nfunction getOrientationProperties() {\n var _mraidState$getOrient = mraidState.getOrientationPropertiesValues(),\n allowOrientationChange = _mraidState$getOrient.allowOrientationChange,\n forceOrientation = _mraidState$getOrient.forceOrientation;\n\n return {\n allowOrientationChange: allowOrientationChange,\n forceOrientation: forceOrientation\n };\n}\n\nfunction resize() {\n var _mraidState$getResize = mraidState.getResizePropertiesValues(),\n width = _mraidState$getResize.width,\n height = _mraidState$getResize.height,\n offsetX = _mraidState$getResize.offsetX,\n offsetY = _mraidState$getResize.offsetY,\n customClosePosition = _mraidState$getResize.customClosePosition,\n allowOffscreen = _mraidState$getResize.allowOffscreen;\n\n if (!(getState() === STATES.DEFAULT || getState() === STATES.RESIZED)) {\n bridge.broadcastEvent(EVENTS.ERROR, \"Ad can only be resized from the default or resized state.\", \"resize\");\n } else if (!width || !height) {\n bridge.broadcastEvent(EVENTS.ERROR, \"Must set resize properties before calling resize()\", \"resize\");\n } else {\n var args = [\"width\", width, \"height\", height, \"offsetX\", offsetX || 0, \"offsetY\", offsetY || 0, \"customClosePosition\", customClosePosition, \"allowOffscreen\", !!allowOffscreen];\n bridge.executeNativeCall(NATIVE_EVENTS.RESIZE, args);\n try {\n Android.resize(width, height, offsetX, offsetY, customClosePosition, allowOffscreen); // eslint-disable-line no-undef\n } catch (err) {\n console.warn(\"Android is not defined!\");\n }\n }\n}\n\nvar resizePropertyValidators = {\n width: function width(v) {\n return !isNaN(v) && v > 0;\n },\n height: function height(v) {\n return !isNaN(v) && v > 0;\n },\n offsetX: function offsetX(v) {\n return !isNaN(v);\n },\n offsetY: function offsetY(v) {\n return !isNaN(v);\n },\n customClosePosition: function customClosePosition(v) {\n return typeof v === \"string\" && [\"top-right\", \"bottom-right\", \"top-left\", \"bottom-left\", \"center\", \"top-center\", \"bottom-center\"].indexOf(v) > -1;\n },\n allowOffscreen: function allowOffscreen(v) {\n return typeof v === \"boolean\";\n }\n};\n\nfunction getResizeProperties() {\n var _mraidState$getResize2 = mraidState.getResizePropertiesValues(),\n width = _mraidState$getResize2.width,\n height = _mraidState$getResize2.height,\n offsetX = _mraidState$getResize2.offsetX,\n offsetY = _mraidState$getResize2.offsetY,\n customClosePosition = _mraidState$getResize2.customClosePosition,\n allowOffscreen = _mraidState$getResize2.allowOffscreen;\n\n var properties = {\n width: width,\n height: height,\n offsetX: offsetX,\n offsetY: offsetY,\n customClosePosition: customClosePosition,\n allowOffscreen: allowOffscreen\n };\n return properties;\n}\n\nfunction setResizeProperties(properties) {\n if (bridge.validate(properties, resizePropertyValidators, \"setResizeProperties\", true)) {\n var desiredProperties = [\"width\", \"height\", \"offsetX\", \"offsetY\", \"customClosePosition\", \"allowOffscreen\"];\n mraidState.updateResizeProperties(desiredProperties, properties);\n }\n}\n\n// Determining SDK version\nfunction getHostSDKVersion() {\n return mraidState.getHostSDKVersionValue();\n}\n\n//# sourceURL=webpack:///./src/mraid.js?");
- /***/ }),
- /***/ "./src/mraidState.js":
- /*!***************************!*\
- !*** ./src/mraidState.js ***!
- \***************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("\n\n// internal MRAID state\nvar state = \"loading\";\nvar isViewable = false;\nvar placementType = \"unknown\";\nvar hostSDKVersion = {\n major: 0,\n minor: 0,\n patch: 0\n};\nvar defaultPosition = {};\nvar currentPosition = {};\nvar maxSize = {};\nvar screenSize = {};\n\n// External MRAID state: may be directly or indirectly modified by the ad JS.\n// Properties which define the behavior of an expandable ad.\nvar expandProperties = {\n width: false,\n height: false,\n useCustomClose: false,\n isModal: true\n};\n\nvar resizeProperties = {\n width: false,\n height: false,\n offsetX: false,\n offsetY: false,\n customClosePosition: \"top-right\",\n allowOffscreen: true\n};\n\nvar orientationProperties = {\n allowOrientationChange: true,\n forceOrientation: \"none\"\n};\n\nvar supportProperties = {\n sms: false,\n tel: false,\n inlineVideo: false\n};\n\nvar eventListeners = {};\n\nfunction getListeners() {\n return eventListeners;\n}\n\nfunction getResizePropertiesValues() {\n return resizeProperties;\n}\n\nfunction getOrientationPropertiesValues() {\n return orientationProperties;\n}\n\nfunction getStateValue() {\n return state;\n}\n\nfunction getSupportValue(feature) {\n return supportProperties[feature];\n}\n\nfunction getMaxSizeValue() {\n return maxSize;\n}\n\nfunction getExpandProperties() {\n return expandProperties;\n}\n\nfunction getScreenSizeValue() {\n return screenSize;\n}\n\nfunction getPlacementTypeValue() {\n return placementType;\n}\n\nfunction getIsViewableValue() {\n return isViewable;\n}\n\nfunction getHostSDKVersionValue() {\n return hostSDKVersion;\n}\n\nfunction getDefaultPositionValue() {\n return defaultPosition;\n}\n\nfunction getCurrentPositionValue() {\n return currentPosition;\n}\n\nfunction updateState(value) {\n state = value;\n return state;\n}\n\nfunction updateMaxSize(width, height) {\n maxSize = { width: width, height: height };\n return maxSize;\n}\n\nfunction updateIsViewable(value) {\n isViewable = value;\n return isViewable;\n}\n\nfunction updateScreenSize(width, height) {\n screenSize = { width: width, height: height };\n return screenSize;\n}\n\nfunction updateExpandProperties(key, value) {\n expandProperties[key] = value;\n return expandProperties;\n}\n\nfunction updateSupportProperties(value) {\n supportProperties = value;\n return supportProperties;\n}\n\nfunction updatePlacementType(value) {\n placementType = value;\n return placementType;\n}\n\nfunction updateHostSDKVersion(versions) {\n hostSDKVersion.major = parseInt(versions[0], 10);\n hostSDKVersion.minor = parseInt(versions[1], 10);\n hostSDKVersion.patch = parseInt(versions[2], 10);\n return hostSDKVersion;\n}\n\nfunction updateResizeProperties(desiredProperties, properties) {\n desiredProperties.forEach(function (propertyName) {\n if (properties.hasOwnProperty(propertyName)) {\n resizeProperties[propertyName] = properties[propertyName];\n }\n });\n return resizeProperties;\n}\n\nfunction updateDefaultPosition(x, y, width, height) {\n defaultPosition = {\n x: x, y: y, width: width, height: height\n };\n return defaultPosition;\n}\n\nfunction updateCurrentPosition(x, y, width, height) {\n currentPosition = {\n x: x, y: y, width: width, height: height\n };\n return currentPosition;\n}\n\nfunction updateOrientationProperties(desiredProperties, properties) {\n desiredProperties.forEach(function (propertyName) {\n if (properties.hasOwnProperty(propertyName)) {\n orientationProperties[propertyName] = properties[propertyName];\n }\n });\n return orientationProperties;\n}\n\nfunction updateListeners(event, listener) {\n if (!eventListeners[event]) {\n eventListeners[event] = new EventListeners(event); // eslint-disable-line\n }\n eventListeners[event].add(listener);\n}\n\nfunction removeListener(listener, event) {\n return eventListeners[event].remove(listener);\n}\n\nfunction removeAllListeners(event) {\n return eventListeners[event].removeAll();\n}\n\nfunction deleteListeners(event) {\n eventListeners[event] = null;\n delete eventListeners[event];\n}\n\nmodule.exports = {\n getListeners: getListeners,\n removeListener: removeListener,\n deleteListeners: deleteListeners,\n updateListeners: updateListeners,\n removeAllListeners: removeAllListeners,\n getStateValue: getStateValue,\n getSupportValue: getSupportValue,\n getMaxSizeValue: getMaxSizeValue,\n getIsViewableValue: getIsViewableValue,\n getScreenSizeValue: getScreenSizeValue,\n getExpandProperties: getExpandProperties,\n getPlacementTypeValue: getPlacementTypeValue,\n getHostSDKVersionValue: getHostSDKVersionValue,\n getCurrentPositionValue: getCurrentPositionValue,\n getDefaultPositionValue: getDefaultPositionValue,\n getResizePropertiesValues: getResizePropertiesValues,\n getOrientationPropertiesValues: getOrientationPropertiesValues,\n updateState: updateState,\n updateMaxSize: updateMaxSize,\n updateIsViewable: updateIsViewable,\n updateScreenSize: updateScreenSize,\n updatePlacementType: updatePlacementType,\n updateHostSDKVersion: updateHostSDKVersion,\n updateDefaultPosition: updateDefaultPosition,\n updateCurrentPosition: updateCurrentPosition,\n updateResizeProperties: updateResizeProperties,\n updateExpandProperties: updateExpandProperties,\n updateSupportProperties: updateSupportProperties,\n updateOrientationProperties: updateOrientationProperties\n};\n\nfunction EventListeners(event) {\n this.event = event;\n this.count = 0;\n var listeners = {};\n\n this.add = function (func) {\n var id = String(func);\n if (!listeners[id]) {\n listeners[id] = func;\n this.count = this.count + 1;\n }\n };\n\n this.remove = function (func) {\n var id = String(func);\n if (listeners[id]) {\n listeners[id] = null;\n delete listeners[id];\n this.count = this.count - 1;\n return true;\n }\n return false;\n };\n\n this.removeAll = function () {\n for (var id in listeners) {\n if (listeners.hasOwnProperty(id)) {\n this.remove(listeners[id]);\n }\n }\n };\n\n this.broadcast = function (args) {\n for (var id in listeners) {\n if (listeners[id]) {\n listeners[id].apply(window.mraid, args);\n }\n }\n };\n\n this.toString = function () {\n var out = [event, \":\"];\n for (var id in listeners) {\n if (listeners.hasOwnProperty(id)) {\n out.push(\"|\", id, \"|\");\n }\n }\n return out.join(\"\");\n };\n}\n\n//# sourceURL=webpack:///./src/mraidState.js?");
- /***/ })
- /******/ });
Add Comment
Please, Sign In to add comment