var ctEvents;(()=>{"use strict";var __webpack_modules__={701:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Probably split string into general purpose object representation for\n * event names and listeners. This function leaves objects un-modified.\n *\n * @param topicStringOrObject {String | Object}\n * @param listener {Function | false}\n *\n * @returns {Object} {\n * eventname: listener,\n * otherevent: listener\n * }\n */\nconst splitTopicStringOrObject = (topicStringOrObject, listener) => typeof topicStringOrObject !== 'string' ? topicStringOrObject : topicStringOrObject.replace(/\\s\\s+/g, ' ').trim().split(' ').reduce((allEvents, event) => _objectSpread(_objectSpread({}, allEvents), {}, {\n [event]: listener\n}), {});\n\nclass EventsManager {\n constructor() {\n _defineProperty(this, \"_events\", {});\n }\n\n on(topicStringOrObject, listener) {\n const eventsAndListeners = splitTopicStringOrObject(topicStringOrObject, listener);\n Object.keys(eventsAndListeners).map(eventName => this._events = _objectSpread(_objectSpread({}, this._events), {}, {\n [eventName]: [...(this._events[eventName] || []), eventsAndListeners[eventName]]\n }));\n return this;\n }\n /**\n * In order to remove one single listener you should give as an argument\n * the same callback function. If you want to remove *all* listeners from\n * a particular event you should not pass the second argument.\n *\n * @param topicStringOrObject {String | Object}\n * @param listener {Function | false}\n */\n\n\n off(topicStringOrObject, listener) {\n const eventsAndListeners = splitTopicStringOrObject(topicStringOrObject, listener);\n Object.keys(eventsAndListeners).map(eventName => {\n if (this._events[eventName]) {\n if (eventsAndListeners[eventName]) {\n this._events[eventName].splice(this._events[eventName].indexOf(listener) >>> 0, 1);\n } else {\n this._events[eventName] = [];\n }\n }\n });\n return this;\n }\n /**\n * Trigger an event. In case you provide multiple events via space-separated\n * string or an object of events it will execute listeners for each event\n * separatedly. You can use the \"all\" event to trigger all events.\n *\n * @param topicStringOrObject {String | Object}\n * @param data {Object}\n */\n\n\n trigger(eventName, data) {\n const events = splitTopicStringOrObject(eventName);\n\n const dispatchSingleEvent = listenerDescriptor => listenerDescriptor && listenerDescriptor.call(window, data);\n\n Object.keys(events).map(eventName => {\n try {\n ;\n (this._events[eventName] || []).map(dispatchSingleEvent);\n (this._events['all'] || []).map(dispatchSingleEvent);\n } catch (e) {\n console.log('%c [Events] Exception raised.', 'color: red; font-weight: bold;');\n\n if (typeof console !== 'undefined') {\n console.error(e);\n } else {\n throw e;\n }\n }\n });\n return this;\n }\n\n}\n\nconst events = new EventsManager();\nwindow.ctEvents = events;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (events);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzAxLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vY3RFdmVudHMvLi9zdGF0aWMvanMvZXZlbnRzLmpzP2MxOTgiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGVudW1lcmFibGVPbmx5ICYmIChzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSkpLCBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IG51bGwgIT0gYXJndW1lbnRzW2ldID8gYXJndW1lbnRzW2ldIDoge307IGkgJSAyID8gb3duS2V5cyhPYmplY3Qoc291cmNlKSwgITApLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSkgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSkgOiBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxuLyoqXG4gKiBQcm9iYWJseSBzcGxpdCBzdHJpbmcgaW50byBnZW5lcmFsIHB1cnBvc2Ugb2JqZWN0IHJlcHJlc2VudGF0aW9uIGZvclxuICogZXZlbnQgbmFtZXMgYW5kIGxpc3RlbmVycy4gVGhpcyBmdW5jdGlvbiBsZWF2ZXMgb2JqZWN0cyB1bi1tb2RpZmllZC5cbiAqXG4gKiBAcGFyYW0gdG9waWNTdHJpbmdPck9iamVjdCB7U3RyaW5nIHwgT2JqZWN0fVxuICogQHBhcmFtIGxpc3RlbmVyIHtGdW5jdGlvbiB8IGZhbHNlfVxuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9IHtcbiAqICAgIGV2ZW50bmFtZTogbGlzdGVuZXIsXG4gKiAgICBvdGhlcmV2ZW50OiBsaXN0ZW5lclxuICogfVxuICovXG5jb25zdCBzcGxpdFRvcGljU3RyaW5nT3JPYmplY3QgPSAodG9waWNTdHJpbmdPck9iamVjdCwgbGlzdGVuZXIpID0+IHR5cGVvZiB0b3BpY1N0cmluZ09yT2JqZWN0ICE9PSAnc3RyaW5nJyA/IHRvcGljU3RyaW5nT3JPYmplY3QgOiB0b3BpY1N0cmluZ09yT2JqZWN0LnJlcGxhY2UoL1xcc1xccysvZywgJyAnKS50cmltKCkuc3BsaXQoJyAnKS5yZWR1Y2UoKGFsbEV2ZW50cywgZXZlbnQpID0+IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgYWxsRXZlbnRzKSwge30sIHtcbiAgW2V2ZW50XTogbGlzdGVuZXJcbn0pLCB7fSk7XG5cbmNsYXNzIEV2ZW50c01hbmFnZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBfZGVmaW5lUHJvcGVydHkodGhpcywgXCJfZXZlbnRzXCIsIHt9KTtcbiAgfVxuXG4gIG9uKHRvcGljU3RyaW5nT3JPYmplY3QsIGxpc3RlbmVyKSB7XG4gICAgY29uc3QgZXZlbnRzQW5kTGlzdGVuZXJzID0gc3BsaXRUb3BpY1N0cmluZ09yT2JqZWN0KHRvcGljU3RyaW5nT3JPYmplY3QsIGxpc3RlbmVyKTtcbiAgICBPYmplY3Qua2V5cyhldmVudHNBbmRMaXN0ZW5lcnMpLm1hcChldmVudE5hbWUgPT4gdGhpcy5fZXZlbnRzID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCB0aGlzLl9ldmVudHMpLCB7fSwge1xuICAgICAgW2V2ZW50TmFtZV06IFsuLi4odGhpcy5fZXZlbnRzW2V2ZW50TmFtZV0gfHwgW10pLCBldmVudHNBbmRMaXN0ZW5lcnNbZXZlbnROYW1lXV1cbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEluIG9yZGVyIHRvIHJlbW92ZSBvbmUgc2luZ2xlIGxpc3RlbmVyIHlvdSBzaG91bGQgZ2l2ZSBhcyBhbiBhcmd1bWVudFxuICAgKiB0aGUgc2FtZSBjYWxsYmFjayBmdW5jdGlvbi4gSWYgeW91IHdhbnQgdG8gcmVtb3ZlICphbGwqIGxpc3RlbmVycyBmcm9tXG4gICAqIGEgcGFydGljdWxhciBldmVudCB5b3Ugc2hvdWxkIG5vdCBwYXNzIHRoZSBzZWNvbmQgYXJndW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB0b3BpY1N0cmluZ09yT2JqZWN0IHtTdHJpbmcgfCBPYmplY3R9XG4gICAqIEBwYXJhbSBsaXN0ZW5lciB7RnVuY3Rpb24gfCBmYWxzZX1cbiAgICovXG5cblxuICBvZmYodG9waWNTdHJpbmdPck9iamVjdCwgbGlzdGVuZXIpIHtcbiAgICBjb25zdCBldmVudHNBbmRMaXN0ZW5lcnMgPSBzcGxpdFRvcGljU3RyaW5nT3JPYmplY3QodG9waWNTdHJpbmdPck9iamVjdCwgbGlzdGVuZXIpO1xuICAgIE9iamVjdC5rZXlzKGV2ZW50c0FuZExpc3RlbmVycykubWFwKGV2ZW50TmFtZSA9PiB7XG4gICAgICBpZiAodGhpcy5fZXZlbnRzW2V2ZW50TmFtZV0pIHtcbiAgICAgICAgaWYgKGV2ZW50c0FuZExpc3RlbmVyc1tldmVudE5hbWVdKSB7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzW2V2ZW50TmFtZV0uc3BsaWNlKHRoaXMuX2V2ZW50c1tldmVudE5hbWVdLmluZGV4T2YobGlzdGVuZXIpID4+PiAwLCAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHNbZXZlbnROYW1lXSA9IFtdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIFRyaWdnZXIgYW4gZXZlbnQuIEluIGNhc2UgeW91IHByb3ZpZGUgbXVsdGlwbGUgZXZlbnRzIHZpYSBzcGFjZS1zZXBhcmF0ZWRcbiAgICogc3RyaW5nIG9yIGFuIG9iamVjdCBvZiBldmVudHMgaXQgd2lsbCBleGVjdXRlIGxpc3RlbmVycyBmb3IgZWFjaCBldmVudFxuICAgKiBzZXBhcmF0ZWRseS4gWW91IGNhbiB1c2UgdGhlIFwiYWxsXCIgZXZlbnQgdG8gdHJpZ2dlciBhbGwgZXZlbnRzLlxuICAgKlxuICAgKiBAcGFyYW0gdG9waWNTdHJpbmdPck9iamVjdCB7U3RyaW5nIHwgT2JqZWN0fVxuICAgKiBAcGFyYW0gZGF0YSB7T2JqZWN0fVxuICAgKi9cblxuXG4gIHRyaWdnZXIoZXZlbnROYW1lLCBkYXRhKSB7XG4gICAgY29uc3QgZXZlbnRzID0gc3BsaXRUb3BpY1N0cmluZ09yT2JqZWN0KGV2ZW50TmFtZSk7XG5cbiAgICBjb25zdCBkaXNwYXRjaFNpbmdsZUV2ZW50ID0gbGlzdGVuZXJEZXNjcmlwdG9yID0+IGxpc3RlbmVyRGVzY3JpcHRvciAmJiBsaXN0ZW5lckRlc2NyaXB0b3IuY2FsbCh3aW5kb3csIGRhdGEpO1xuXG4gICAgT2JqZWN0LmtleXMoZXZlbnRzKS5tYXAoZXZlbnROYW1lID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIDtcbiAgICAgICAgKHRoaXMuX2V2ZW50c1tldmVudE5hbWVdIHx8IFtdKS5tYXAoZGlzcGF0Y2hTaW5nbGVFdmVudCk7XG4gICAgICAgICh0aGlzLl9ldmVudHNbJ2FsbCddIHx8IFtdKS5tYXAoZGlzcGF0Y2hTaW5nbGVFdmVudCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCclYyBbRXZlbnRzXSBFeGNlcHRpb24gcmFpc2VkLicsICdjb2xvcjogcmVkOyBmb250LXdlaWdodDogYm9sZDsnKTtcblxuICAgICAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxufVxuXG5jb25zdCBldmVudHMgPSBuZXcgRXZlbnRzTWFuYWdlcigpO1xud2luZG93LmN0RXZlbnRzID0gZXZlbnRzO1xuZXhwb3J0IGRlZmF1bHQgZXZlbnRzOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///701\n")}},__webpack_require__={d:(e,n)=>{for(var t in n)__webpack_require__.o(n,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},o:(e,n)=>Object.prototype.hasOwnProperty.call(e,n),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},__webpack_exports__={};__webpack_modules__[701](0,__webpack_exports__,__webpack_require__),ctEvents=__webpack_exports__})();