{"version":3,"sources":["webpack:///webpack/bootstrap bac5862548f8abf01355","webpack:///./src/shared/widgetId.js","webpack:///./src/shared/messaging.js","webpack:///./src/shared/config.js","webpack:///./src/widget/scripts/lib/commons/globalMessageListeners.js","webpack:///./src/widget/scripts/lib/commons/widgetMessagingChannels.js","webpack:///./src/widget/scripts/lib/config/main.js","webpack:///./src/widget/scripts/lib/commons/widgetStateManager.js","webpack:///./src/widget/scripts/lib/commons/events/eventing.js","webpack:///./src/widget/scripts/lib/commons/events/defs/events.js","webpack:///./src/widget/scripts/widget.js","webpack:///./src/shared/utilities/defs/utilities.js","webpack:///./src/shared/utilities/defs/units.js","webpack:///./src/widget/scripts/lib/api/factory.js","webpack:///./src/widget/scripts/lib/commons/normalizeRenderIntoNode.js","webpack:///./src/widget/scripts/lib/commons/getNodeFromSelector.js","webpack:///./src/widget/scripts/lib/api/destroy.js","webpack:///./src/widget/scripts/lib/api/onEvent.js","webpack:///./src/widget/scripts/lib/api/getVisualization.js","webpack:///./src/widget/scripts/lib/commons/receiverHelpers.js","webpack:///./src/widget/scripts/lib/commons/submitToReceiver.js"],"names":[],"mappings":";QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;;;;;;;;AC7DA,gEAAa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iCAA0B,CAAC,sBAAe,CAAC,kCAAE;AAC7C;AACA,CAAC;AAAA,oGAAC;;;;;;;;AChCF,gEAAa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,iCAA2B,CAAC,sBAAe,EAAE,sBAAiB,CAAC,kCAAE;AACjE;AACA,CAAC;AAAA,oGAAC;;;;;;;;ACpGF,gEAAa;;AAEb;AACA;AACA;AACA;AACA,aAAa,4CAA4C;AACzD,aAAa,8BAA8B;AAC3C,aAAa,6BAA6B;AAC1C,aAAa,6BAA6B;AAC1C,aAAa,4BAA4B;AACzC,aAAa,4BAA4B;AACzC,aAAa;AACb;AACA;AACA;;AAEA;AACA,iCAAwB,EAAE,kCAAE;AAC5B;AACA,CAAC;AAAA,oGAAC;;;;;;;;ACpBW;;AAEb,aAAa,mBAAO,CAAC,CAAgC;AACrD,gBAAgB,mBAAO,CAAC,CAAkB;;AAE1C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACtEa;;AAEb,eAAe,mBAAO,CAAC,CAAiB;AACxC,gBAAgB,mBAAO,CAAC,CAAkB;;AAE1C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;AClDa;;AAEb,mBAAmB,mBAAO,CAAC,CAAe;;AAE1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;AC3Ba;;AAEb,eAAe,mBAAO,CAAC,CAAiB;;AAExC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;AChDA,CAAc;;AAEd;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;;;;;;;;ACvCa;;AAEb;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACNY;;AAEb,gBAAgB,mBAAO,CAAC,EAAiC;AACzD,YAAY,mBAAO,CAAC,EAA6B;;AAEjD,cAAc,mBAAO,CAAC,EAAgC;AACtD,aAAa,mBAAO,CAAC,CAA+C;;AAEpE,6BAA6B,mBAAO,CAAC,CAAsD;;AAE3F;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;;;;;;;ACvBA,gEAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,iCAA0C,EAAE,kCAAE;AAC9C;AACA,CAAC;AAAA,oGAAC;;;;;;;;ACbF,gEAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,iCAAsC,EAAE,kCAAE;AAC1C;AACA,CAAC;AAAA,oGAAC;;;;;;;;AChBW;;AAEb,eAAe,mBAAO,CAAC,CAAiB;;AAExC,8BAA8B,mBAAO,CAAC,EAAoD;AAC1F,cAAc,mBAAO,CAAC,EAAgC;AACtD,cAAc,mBAAO,CAAC,EAAgC;AACtD,uBAAuB,mBAAO,CAAC,EAAyC;;AAExE;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;AC/Da;;AAEb,0BAA0B,mBAAO,CAAC,EAAgD;;AAElF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;ACxBa;;AAEb;AACA;AACA;;;;;;;;ACJa;;AAEb,6BAA6B,mBAAO,CAAC,CAAmD;AACxF,8BAA8B,mBAAO,CAAC,CAAoD;AAC1F,yBAAyB,mBAAO,CAAC,CAA+C;;AAEhF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;;;;;;;AC1BA,CAAc;;AAEd,eAAe,mBAAO,CAAC,CAA+C;;AAEtE;AACA;AACA;AACA;AACA;;;;;;;;;ACRa;;AAEb,gBAAgB,mBAAO,CAAC,CAAkB;;AAE1C,aAAa,mBAAO,CAAC,CAA+C;AACpE,eAAe,mBAAO,CAAC,CAA4C;AACnE,sBAAsB,mBAAO,CAAC,EAA4C;AAC1E,8BAA8B,mBAAO,CAAC,CAAoD;AAC1F,yBAAyB,mBAAO,CAAC,CAA+C;AAChF,6BAA6B,mBAAO,CAAC,CAAmD;AACxF,uBAAuB,mBAAO,CAAC,EAA6C;;AAE5E;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClLa;;AAEb,aAAa,mBAAO,CAAC,CAAgC;;AAErD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACvBa;;AAEb,gBAAgB,mBAAO,CAAC,CAAkB;;AAE1C,8BAA8B,mBAAO,CAAC,CAAoD;;AAE1F;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA","file":"widget.js","sourcesContent":[" \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 = 9);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap bac5862548f8abf01355","'use strict';\n\nfunction widgetIdFactory(sharedConfig) {\n\n return {\n generate: generate,\n isValid: isValid\n };\n\n function generate() {\n\n return [\n sharedConfig.WIDGET_PREFIX,\n _generateRandomNumber()\n ].join('-');\n }\n\n function isValid(widgetId) {\n var isValidWidgetIdRegExp = new RegExp('^' + sharedConfig.WIDGET_PREFIX + '-[0-9]+$');\n return isValidWidgetIdRegExp.test(widgetId);\n }\n\n function _generateRandomNumber() {\n var randomNumberAsString = '' + Math.random(),\n randomId = randomNumberAsString.replace('0.', '');\n\n return randomId;\n }\n}\n\ndefine('shared/widgetId', ['shared/config'], function (sharedConfig) {\n return widgetIdFactory(sharedConfig);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/shared/widgetId.js\n// module id = 0\n// module chunks = 0 1","'use strict';\n\nfunction messagingFactory(sharedConfig, sharedWidgetId) {\n\n var validTitles = {\n READY: 'READY',\n GET: 'GET',\n OK: 'OK',\n ERROR: 'ERROR',\n NODATA: 'NODATA'\n },\n messageIds = {};\n\n Object.freeze(validTitles);\n\n return {\n titles: validTitles,\n generateMessage: generateMessage,\n generateResponseToMessage: generateResponseToMessage,\n isValidTitle: isValidTitle,\n isValidMessage: isValidMessage\n };\n\n function isValidMessage(message) {\n return (\n typeof (message) === 'object' &&\n message.hasOwnProperty('messageTitle') && typeof (message.messageTitle) === 'string' &&\n message.hasOwnProperty('widgetId') && typeof (message.widgetId) === 'string' &&\n message.hasOwnProperty('messageId') && typeof (message.messageId) === 'string' &&\n message.hasOwnProperty('data') && typeof (message.data) === 'object'\n );\n }\n\n function isValidTitle(title) {\n try {\n _validTitle(title);\n } catch (e) {\n return false;\n }\n\n return true;\n }\n\n function generateMessage(widgetId, title, data) {\n return _generateMessage(widgetId, title, null, data);\n }\n\n function generateResponseToMessage(widgetId, title, msgId) {\n return _generateMessage(widgetId, title, msgId);\n }\n\n function _generateMessage(widgetId, title, respondToMessageId, data) {\n var message,\n messageId;\n\n _validateWidgetId(widgetId);\n _validTitle(title);\n\n messageId = respondToMessageId || _generateMessageIdForWidget(widgetId);\n\n message = {\n messageTitle: title,\n widgetId: widgetId,\n messageId: messageId,\n data: typeof (data) === 'object' ? data : {}\n };\n\n return {\n message: message,\n id: messageId\n };\n }\n\n function _validTitle(title) {\n var isValid = title in validTitles;\n\n if (!isValid) {\n throw new Error('iVis shared messaging: unsupported message title: ' + title);\n }\n }\n\n function _validateWidgetId(widgetId) {\n if (!sharedWidgetId.isValid(widgetId)) {\n throw new Error('iVis shared messaging: unknown widgetId given: ' + widgetId);\n }\n }\n\n function _generateMessageIdForWidget(widgetId) {\n if (!messageIds[widgetId]) {\n messageIds[widgetId] = 0;\n }\n\n return sharedConfig.WIDGET_PREFIX + '_' + (++messageIds[widgetId]);\n }\n\n}\n\n// expose based on requesting environment\ndefine('shared/messaging', ['shared/config', 'shared/widgetId'], function (sharedConfig, sharedWidgetId) {\n return messagingFactory(sharedConfig, sharedWidgetId);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/shared/messaging.js\n// module id = 1\n// module chunks = 0 1","'use strict';\n\nvar config = {\n WIDGET_PREFIX: 'iVis',\n WIDGET_ID_PARAM_NAME: 'widgetId',\n LOCALIZATIONS: [\n { id: 'en', value: 'English', default: true },\n { id: 'it', value: 'Italiano' },\n { id: 'cz', value: 'Czechia' },\n { id: 'ro', value: 'Romanian'},\n { id: 'hu', value: 'Hungary'},\n { id: 'pl', value: 'Poland' },\n { id: 'cz', value: 'Czech Republic'}\n ],\n LOCALIZATIONS_LOCATION: '../locales'\n };\n\n// expose based on requesting environment\ndefine('shared/config', [], function () {\n return config;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/shared/config.js\n// module id = 2\n// module chunks = 0 1","'use strict';\n\nvar config = require('widget/scripts/lib/config/main'),\n messaging = require('shared/messaging'),\n\n messageListeners = [];\n\nmodule.exports = {\n bootstrap: bootstrapGlobalMessageListener,\n registerListener: registerListener,\n unregisterListener: unregisterListener\n};\n\nfunction bootstrapGlobalMessageListener() {\n window.addEventListener('message', _messageListener, false);\n}\n\nfunction registerListener(widgetId, messageTitle, callback, useOnce) {\n\n messageListeners.push({\n widgetId: widgetId,\n messageTitle: messageTitle,\n callback: callback,\n useOnce: useOnce || false\n });\n}\n\nfunction unregisterListener(widgetId, messageTitle, callback) {\n\n messageListeners = messageListeners.filter(function (messageListener) {\n return !(\n messageListener.widgetId === widgetId &&\n (messageListener.messageTitle === messageTitle || messageTitle === '**') &&\n (messageListener.callback === callback || !callback)\n );\n });\n}\n\nfunction _messageListener(event) {\n\n if (_isAcceptable()) {\n _informListeners(event.data, event.ports[0]);\n }\n\n function _isAcceptable() {\n return config.SERVICE_URL.replace(/^https?:/i, '').indexOf(event.origin.replace(/^https?:/i, '')) === 0 && messaging.isValidMessage(event.data);\n }\n}\n\nfunction _informListeners(incomingMessage, channel) {\n\n messageListeners.forEach(function (messageListener) {\n\n if (_isAddressedTo(messageListener.widgetId, incomingMessage.widgetId) && _listenerAcceptsThisTitle(messageListener.messageTitle, incomingMessage.messageTitle)) {\n messageListener.callback(incomingMessage, channel);\n\n if (messageListener.useOnce) {\n unregisterListener(messageListener.widgetId, messageListener.messageTitle, messageListener.callback);\n }\n }\n\n });\n\n function _isAddressedTo(listenerWidgetId, messageTargetWidgetId) {\n return listenerWidgetId === messageTargetWidgetId;\n }\n\n function _listenerAcceptsThisTitle(listenerAcceptedTitle, messageTitle) {\n return listenerAcceptedTitle === messageTitle || listenerAcceptedTitle === '*';\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/lib/commons/globalMessageListeners.js\n// module id = 3\n// module chunks = 0 1","'use strict';\n\nvar widgetId = require('shared/widgetId'),\n messaging = require('shared/messaging'),\n\n messagingChannels = {};\n\nmodule.exports = {\n store: store,\n storeFromGlobalMessageListenerParams: storeFromGlobalMessageListenerParams,\n get: get,\n destroy: destroy\n};\n\nfunction store(widgetId, channel) {\n\n _validateWidgetId(widgetId);\n _validateChannel(channel);\n\n messagingChannels[widgetId] = channel;\n return true;\n}\n\nfunction storeFromGlobalMessageListenerParams(widgetId, message, channel) {\n\n if (message && message.messageTitle === messaging.titles.READY) {\n store(widgetId, channel);\n }\n\n return false;\n}\n\nfunction get(widgetId) {\n return messagingChannels[widgetId] || null;\n}\n\nfunction destroy(widgetId) {\n delete messagingChannels[widgetId];\n}\n\nfunction _validateWidgetId(validationSubject) {\n if (!widgetId.isValid(validationSubject)) {\n throw new Error('iVis.Widget: widgetMessagingChannels.store arg[0] should be a valid widgetId');\n }\n}\n\nfunction _validateChannel(channel) {\n if (!(channel instanceof(MessagePort))) {\n throw new Error('iVis.Widget: widgetMessagingChannels.store arg[1] should be a valid MessagePort instance');\n }\n}\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/lib/commons/widgetMessagingChannels.js\n// module id = 4\n// module chunks = 0 1","'use strict';\n\nvar sharedConfig = require('shared/config');\n\nmodule.exports = {\n SERVICE_URL: _discoverServiceUrl(),\n RECEIVER_PATH: 'receiver/',\n WIDGET_PREFIX: sharedConfig.WIDGET_PREFIX,\n WIDGET_ID_PARAM_NAME: sharedConfig.WIDGET_ID_PARAM_NAME\n};\n\n// TODO: unit test this\nfunction _discoverServiceUrl() {\n\n var associatedScriptTag = document.getElementById('iVisWidgetScript'),\n hasGlobalConfigurationObject = typeof (iVisWidgetConfiguration) !== 'undefined',\n hasServiceUrlDefined = hasGlobalConfigurationObject && iVisWidgetConfiguration.hasOwnProperty('SERVICE_URL');\n\n if (!associatedScriptTag && !hasServiceUrlDefined) {\n throw new Error('iVis Widget couldn\\'t discover it\\'s server host. Check if script tag with id=\"iVisWidgetScript\" exists in DOM');\n }\n\n if (hasServiceUrlDefined) {\n return iVisWidgetConfiguration.SERVICE_URL;\n }\n\n return associatedScriptTag.getAttribute('src').replace('widget/widget.js', '');\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/lib/config/main.js\n// module id = 5\n// module chunks = 0 1","'use strict';\n\nvar widgetId = require('shared/widgetId'),\n\n busyWidgets = {};\n\nmodule.exports = {\n setBusy: setBusy,\n setFree: setFree,\n isBusy: isBusy,\n isBusyWithMessage: isBusyWithMessage\n};\n\n// TODO: create unit tests\nfunction setBusy(widgetId, processedMsgId) {\n\n _validateWidgetId(widgetId);\n\n busyWidgets[widgetId] = processedMsgId;\n}\n\nfunction setFree(widgetId, processedMsgId) {\n\n _validateWidgetId(widgetId);\n\n if (busyWidgets[widgetId] && busyWidgets[widgetId] === processedMsgId) {\n delete busyWidgets[widgetId];\n }\n}\n\nfunction isBusy(widgetId) {\n\n _validateWidgetId(widgetId);\n\n return busyWidgets.hasOwnProperty(widgetId);\n}\n\nfunction isBusyWithMessage(widgetId, messageId) {\n\n _validateWidgetId(widgetId);\n\n return busyWidgets.hasOwnProperty(widgetId) ? busyWidgets[widgetId] === messageId : false;\n}\n\nfunction _validateWidgetId(validationSubject) {\n if (!widgetId.isValid(validationSubject)) {\n throw new Error('iVis.Widget: widgetBusyState methods expect a valid widgetId');\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/lib/commons/widgetStateManager.js\n// module id = 6\n// module chunks = 0 1","'use strict';\n\n// TODO: write unit tests\nvar events = {};\n\nmodule.exports = {\n off: function (widget, event) {\n if (!event) {\n delete events[widget.id];\n } else {\n delete events[widget.id][event];\n }\n },\n on: function (widget, event, callback) {\n if (!events[widget.id]) {\n events[widget.id] = {};\n }\n\n if (!events[widget.id][event]) {\n events[widget.id][event] = [];\n }\n\n events[widget.id][event].push(callback);\n },\n rise: function (widget, event) {\n var index,\n args = Array.prototype.slice.call(arguments, 2),\n widgetEvents;\n\n if (!events[widget.id] || !events[widget.id][event]) {\n return;\n }\n\n widgetEvents = events[widget.id][event];\n\n for (index = 0; index < widgetEvents.length; index++) {\n widgetEvents[index].apply(widget, args);\n }\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/lib/commons/events/eventing.js\n// module id = 7\n// module chunks = 0 1","'use strict';\n\nmodule.exports = Object.freeze({\n BUSY_STATE_CHANGED: 'busy_state_changed',\n NO_DATA_CHANGED: 'no_data_changed',\n ERROR: 'error'\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/lib/commons/events/defs/events.js\n// module id = 8\n// module chunks = 0 1","'use strict';\n\nvar utilities = require('shared/utilities/defs/utilities'),\n units = require('shared/utilities/defs/units'),\n\n factory = require('widget/scripts/lib/api/factory'),\n events = require('widget/scripts/lib/commons/events/defs/events'),\n\n globalMessageListeners = require('widget/scripts/lib/commons/globalMessageListeners.js');\n\nglobalMessageListeners.bootstrap();\n\nwindow.iVis = {\n Widget: {\n create: function (targetContainer) {\n return factory(targetContainer);\n }\n },\n Utilities: utilities,\n UtilitiesUnits: units,\n Events: events\n};\n\nmodule.exports = window.iVis;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/widget.js\n// module id = 9\n// module chunks = 0 1","'use strict';\n\nvar utilities = Object.freeze({\n HOT_WATER: 'HOT_WATER',\n COLD_WATER: 'COLD_WATER',\n WATER: 'WATER',\n HEAT: 'HEAT',\n COOL: 'COOL',\n ELECTRICITY: 'ELECTRICITY'\n });\n\ndefine('shared/utilities/defs/utilities', [], function () {\n return utilities;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/shared/utilities/defs/utilities.js\n// module id = 10\n// module chunks = 0 1","'use strict';\n\nvar units = Object.freeze({\n KJ: 'KJ',\n GJ: 'GJ',\n GC: 'GC',\n KWH: 'KWH',\n MWH: 'MWH',\n L: 'L',\n M_3: 'M_3',\n DEVICE_UNIT: 'DEVICE_UNIT',\n UNDEFINED: 'UNDEFINED'\n });\n\ndefine('shared/utilities/defs/units', [], function () {\n return units;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/shared/utilities/defs/units.js\n// module id = 11\n// module chunks = 0 1","'use strict';\n\nvar widgetId = require('shared/widgetId'),\n\n normalizeRenderIntoNode = require('widget/scripts/lib/commons/normalizeRenderIntoNode'),\n destroy = require('widget/scripts/lib/api/destroy'),\n onEvent = require('widget/scripts/lib/api/onEvent'),\n getVisualization = require('widget/scripts/lib/api/getVisualization');\n\nWidget.prototype.destroy = destroy;\nWidget.prototype.onEvent = onEvent;\nWidget.prototype.getVisualization = getVisualization;\n\nmodule.exports = Widget;\n\nfunction Widget(targetContainer) {\n\n var widget = this;\n\n if (!(widget instanceof(Widget))) {\n return new Widget(targetContainer);\n }\n\n _bootstrapWidget(widget);\n _storeTargetNode(widget, targetContainer);\n\n return widget;\n}\n\nfunction _bootstrapWidget(widget) {\n Object.defineProperty(widget, 'id', {\n value: widgetId.generate()\n });\n}\n\nfunction _storeTargetNode(widget, renderIntoNode) {\n\n _verifyIfNotStoredYet();\n _tryToStoreNode();\n\n return widget;\n\n function _verifyIfNotStoredYet() {\n if (widget.parentNode) {\n throw new Error('iVis.Widget: you cannot change the container once it was assigned.');\n }\n }\n\n function _tryToStoreNode() {\n if (!_isInDOM(widget)) {\n _rememberWhereToRender(widget, normalizeRenderIntoNode(renderIntoNode));\n } else {\n throw new Error('iVis.Widget: visualization already attached to DOM.');\n }\n }\n\n function _rememberWhereToRender(widget, renderIntoNode) {\n widget.parentNode = renderIntoNode;\n }\n\n function _isInDOM(widget) {\n return document.getElementById(widget.id) !== null;\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/lib/api/factory.js\n// module id = 12\n// module chunks = 0 1","'use strict';\n\nvar getNodeFromSelector = require('widget/scripts/lib/commons/getNodeFromSelector');\n\nmodule.exports = function (renderIntoNode) {\n\n var isSelector = typeof renderIntoNode === 'string',\n isPureDomNode = renderIntoNode instanceof(Node),\n isNotEmptyJQueryCollection = renderIntoNode && !!renderIntoNode.jquery && renderIntoNode.length > 0,\n normalizedNode;\n\n if (isNotEmptyJQueryCollection) {\n normalizedNode = renderIntoNode.get(0);\n } else if (isPureDomNode) {\n normalizedNode = renderIntoNode;\n } else if (isSelector) {\n normalizedNode = getNodeFromSelector(renderIntoNode);\n }\n\n if (!normalizedNode) {\n throw new Error('iVis.Widget: expects node to be either a valid: DOM Node, jQuery non-empty collection or a selector');\n }\n\n return normalizedNode;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/lib/commons/normalizeRenderIntoNode.js\n// module id = 13\n// module chunks = 0 1","'use strict';\n\nmodule.exports = function (selector) {\n return document.querySelector(selector);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/lib/commons/getNodeFromSelector.js\n// module id = 14\n// module chunks = 0 1","'use strict';\n\nvar globalMessageListeners = require('widget/scripts/lib/commons/globalMessageListeners'),\n widgetMessagingChannels = require('widget/scripts/lib/commons/widgetMessagingChannels'),\n widgetStateManager = require('widget/scripts/lib/commons/widgetStateManager');\n\n// TODO: write unit tests\nmodule.exports = function () {\n var widget = this;\n\n // unregister all global listeners\n globalMessageListeners.unregisterListener(widget.id, '**');\n // remove messaging channel\n widgetMessagingChannels.destroy(widget.id);\n // remove reference from widgetStateManager by setting widget as free\n widgetStateManager.setFree(widget.id);\n // remove widget node from DOM\n widget.node.remove();\n\n // mark widget as destroyed\n Object.defineProperty(widget, 'isDestroyed', {\n value: true\n });\n\n //return null instead of this to break any further chaining\n return null;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/lib/api/destroy.js\n// module id = 15\n// module chunks = 0 1","'use strict';\n\nvar eventing = require('widget/scripts/lib/commons/events/eventing.js');\n\nmodule.exports = function onEvent(event, listener) {\n var widget = this;\n eventing.on(widget, event, listener);\n return widget;\n};\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/lib/api/onEvent.js\n// module id = 16\n// module chunks = 0 1","'use strict';\n\nvar messaging = require('shared/messaging'),\n\n events = require('widget/scripts/lib/commons/events/defs/events'),\n eventing = require('widget/scripts/lib/commons/events/eventing'),\n receiverHelpers = require('widget/scripts/lib/commons/receiverHelpers'),\n widgetMessagingChannels = require('widget/scripts/lib/commons/widgetMessagingChannels'),\n widgetStateManager = require('widget/scripts/lib/commons/widgetStateManager'),\n globalMessageListeners = require('widget/scripts/lib/commons/globalMessageListeners'),\n submitToReceiver = require('widget/scripts/lib/commons/submitToReceiver');\n\nmodule.exports = function (visualizationType, visualizationTypeOptions) {\n\n var widget = this,\n visualizationTypeOptionsLocal;\n\n _validateArguments();\n\n _cloneVisualizationTypeOptions();\n\n _checkIfBusy();\n _checkIfNotDestroyed();\n\n _requestMessagingChannelIfNeeded();\n _renderIntoDOMIfNeeded();\n\n _requestVisualizationIfReady();\n\n return widget;\n\n function _validateArguments() {\n if (typeof (visualizationType) !== 'string' || typeof (visualizationTypeOptions) !== 'object') {\n throw new Error('iVis.Widget: getVisualization expects valid params: (string) visualizationType, (object)visualizationTypeOptions.');\n }\n }\n\n function _cloneVisualizationTypeOptions() {\n visualizationTypeOptionsLocal = JSON.parse(JSON.stringify(visualizationTypeOptions));\n }\n\n function _checkIfBusy() {\n if (widgetStateManager.isBusy(widget.id)) {\n throw new Error('iVis.Widget: your previous request is still being processed.');\n }\n }\n\n function _checkIfNotDestroyed() {\n if (widget.isDestroyed) {\n throw new Error('iVis.Widget: you cannot request a visualization on a destroyed widget.');\n }\n }\n\n function _requestMessagingChannelIfNeeded() {\n if (!_isMessagingChannelIsEstablished(widget)) {\n _requestMessagingChannel(widget, visualizationType, visualizationTypeOptionsLocal);\n }\n }\n\n function _renderIntoDOMIfNeeded() {\n if (!_isInDOM(widget)) {\n _setupTargetNode(widget);\n _render(widget);\n }\n }\n\n function _requestVisualizationIfReady() {\n\n if (_isReadyToSubmit(widget)) {\n\n widgetStateManager.setBusy(\n widget.id,\n submitToReceiver(widget, visualizationType, visualizationTypeOptionsLocal)\n );\n\n eventing.rise(widget, events.NO_DATA_CHANGED, false);\n eventing.rise(widget, events.BUSY_STATE_CHANGED, true);\n }\n }\n};\n\nfunction _isInDOM(widget) {\n return document.getElementById(widget.id) !== null;\n}\n\nfunction _isMessagingChannelIsEstablished(widget) {\n return widgetMessagingChannels.get(widget.id) !== null;\n}\n\nfunction _isReadyToSubmit(widget) {\n return _isInDOM(widget) && _isMessagingChannelIsEstablished(widget);\n}\n\nfunction _setupTargetNode(widget) {\n\n if (widget.node) {\n return;\n }\n\n widget.node = document.createElement('iframe');\n\n widget.node.setAttribute('id', widget.id);\n widget.node.setAttribute('src', receiverHelpers.getReceiverFullUrl(widget.id));\n widget.node.setAttribute('frameborder', 0);\n\n widget.node.setAttribute('marginheight', 0);\n widget.node.setAttribute('marginwidth', 0);\n widget.node.setAttribute('scrolling', 'no');\n widget.node.setAttribute('class', 'iVisWidget');\n}\n\nfunction _render(widget) {\n widget.parentNode.appendChild(widget.node);\n}\n\nfunction _hookUpWidgetToMessages(widget, msg, channel) {\n channel.onmessage = _processMessageFromReceiver.bind(null, widget);\n}\n\nfunction _processMessageFromReceiver(widget, event) {\n\n if (messaging.isValidMessage(event.data)) {\n if (_canSetFree(event.data)) {\n\n widgetStateManager.setFree(\n event.data.widgetId,\n event.data.messageId\n );\n\n eventing.rise(widget, events.BUSY_STATE_CHANGED, false);\n\n if (event.data.messageTitle === messaging.titles.NODATA) {\n eventing.rise(widget, events.NO_DATA_CHANGED, true);\n }\n\n if (event.data.messageTitle === messaging.titles.ERROR) {\n eventing.rise(widget, events.ERROR);\n }\n }\n }\n\n function _canSetFree(message) {\n return (\n (\n message.messageTitle === messaging.titles.OK ||\n message.messageTitle === messaging.titles.ERROR ||\n message.messageTitle === messaging.titles.NODATA\n ) &&\n widgetStateManager.isBusyWithMessage(message.widgetId, message.messageId)\n );\n }\n}\n\nfunction _requestMessagingChannel(widget, visualizationType, visualizationTypeOptions) {\n var channel = widgetMessagingChannels.get(widget.id);\n\n if (channel) {\n return;\n }\n\n globalMessageListeners.registerListener(\n widget.id,\n messaging.titles.READY,\n widgetMessagingChannels.storeFromGlobalMessageListenerParams.bind(null, widget.id)\n );\n\n globalMessageListeners.registerListener(\n widget.id,\n messaging.titles.READY,\n _hookUpWidgetToMessages.bind(null, widget)\n );\n\n globalMessageListeners.registerListener(\n widget.id,\n messaging.titles.READY,\n widget.getVisualization.bind(widget, visualizationType, visualizationTypeOptions),\n true\n );\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/lib/api/getVisualization.js\n// module id = 17\n// module chunks = 0 1","'use strict';\n\nvar config = require('widget/scripts/lib/config/main');\n\nmodule.exports = {\n getReceiverFullUrl: getReceiverFullUrl,\n getReceiverDomain: getReceiverDomain\n};\n\nfunction getReceiverFullUrl(widgetId) {\n return [\n config.SERVICE_URL,\n config.RECEIVER_PATH,\n _getWidgetIdParamName()\n ].join('');\n\n function _getWidgetIdParamName() {\n return '?' + config.WIDGET_ID_PARAM_NAME + '=' + widgetId;\n }\n}\n\nfunction getReceiverDomain() {\n return config.SERVICE_URL;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/lib/commons/receiverHelpers.js\n// module id = 18\n// module chunks = 0 1","'use strict';\n\nvar messaging = require('shared/messaging'),\n\n widgetMessagingChannels = require('widget/scripts/lib/commons/widgetMessagingChannels');\n\nmodule.exports = function (widget, visualizationType, visualizationTypeOptions) {\n var channel = widgetMessagingChannels.get(widget.id),\n messageToSend,\n messageToSendData = {};\n\n if (!_isInDOM(widget)) {\n throw new Error('iVis.Widget: cannot request/update visualization as widget seams not be in DOM');\n }\n\n messageToSendData = {\n type: visualizationType,\n options: visualizationTypeOptions\n };\n\n messageToSend = messaging.generateMessage(\n widget.id,\n messaging.titles.GET,\n messageToSendData\n );\n\n channel.postMessage(messageToSend.message);\n\n return messageToSend.id;\n};\n\nfunction _isInDOM(widget) {\n return document.getElementById(widget.id) !== null;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/widget/scripts/lib/commons/submitToReceiver.js\n// module id = 19\n// module chunks = 0 1"],"sourceRoot":""}