{"version":3,"file":"index.js","sources":["../../src/core/lib/helpers/string.js","../../src/core/defs/defaults.js","../../node_modules/hyperapp/src/index.js","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/is-in-browser/dist/module.js","../../node_modules/tiny-warning/dist/tiny-warning.esm.js","../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/jss/dist/jss.esm.js","../../node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","../../node_modules/symbol-observable/es/ponyfill.js","../../node_modules/symbol-observable/es/index.js","../../node_modules/jss-plugin-rule-value-observable/dist/jss-plugin-rule-value-observable.esm.js","../../node_modules/jss-plugin-template/dist/jss-plugin-template.esm.js","../../node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","../../node_modules/jss-plugin-extend/dist/jss-plugin-extend.esm.js","../../node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","../../node_modules/jss-plugin-compose/dist/jss-plugin-compose.esm.js","../../node_modules/hyphenate-style-name/index.js","../../node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","../../node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","../../node_modules/jss-plugin-expand/dist/jss-plugin-expand.esm.js","../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../node_modules/css-vendor/dist/css-vendor.esm.js","../../node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","../../node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","../../node_modules/jss-preset-default/dist/jss-preset-default.esm.js","../../src/core/styles/jss.js","../../src/core/styles/color-helpers.js","../../src/core/styles/third-party/psbc.js","../../src/core/styles/variables.js","../../src/core/lib/helpers/object.js","../../src/core/styles/helpers.js","../../src/core/lib/helpers/layout.js","../../src/core/styles/base.js","../../src/core/defs/scope.js","../../src/core/defs/input.js","../../src/core/lib/helpers/events.js","../../src/core/lib/helpers/browser.js","../../src/core/lib/helpers/class-names.js","../../src/core/defs/events.js","../../src/core/lib/helpers/framework.js","../../src/core/defs/settings.js","../../src/core/lib/helpers/store.js","../../src/core/services/config.js","../../src/core/actions/input.js","../../src/core/lib/bridge.js","../../src/core/services/logging.js","../../src/core/effects/async-effect.js","../../src/core/effects/switch-view-effect.js","../../src/core/defs/message.js","../../src/core/lib/helpers/array.js","../../src/core/actions/chat.helpers.js","../../src/core/effects/scroll-into-view-effect.js","../../src/core/effects/delay-action-effect.js","../../src/core/effects/focus-element-effect.js","../../src/core/effects/focus-textarea-effect.js","../../src/core/effects/auto-size-effect.js","../../src/core/effects/scroll-to-bottom-effect.js","../../node_modules/get-size/get-size.js","../../node_modules/ev-emitter/ev-emitter.js","../../node_modules/unipointer/unipointer.js","../../node_modules/unidragger/unidragger.js","../../node_modules/draggabilly/draggabilly.js","../../src/core/effects/draggable-effect.js","../../src/core/lib/resizable.js","../../src/core/effects/resizable-effect.js","../../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../../src/core/effects/sizable-effect.js","../../src/core/effects/toggle-class-name-effect.js","../../src/core/actions/file.js","../../src/core/lib/endpoints.js","../../src/core/lib/file-attachment.js","../../src/core/effects/remove-node-children-effect.js","../../src/core/defs/file.js","../../src/core/actions/notification.js","../../src/core/lib/errors.js","../../src/core/lib/http-client.js","../../src/core/lib/translation.js","../../src/core/effects/attach-file-effect.js","../../src/core/effects/emoji-match-height-effect.js","../../src/core/effects/remove-attribute-effect.js","../../src/core/services/captcha.js","../../src/core/oidc.js","../../src/core/services/notification.js","../../src/core/services/message.js","../../src/core/services/chat.js","../../src/core/lib/helpers/time.js","../../src/core/services/queue.js","../../src/core/actions/events.helpers.js","../../src/core/actions/textarea.helpers.js","../../src/core/actions/file.helpers.js","../../src/core/actions/chat.js","../../src/core/effects/survey-submit-effect.js","../../src/core/actions/view.helpers.js","../../src/core/actions/view.js","../../src/core/subscriptions/polling.js","../../src/core/actions/events.js","../../src/core/services/polling.js","../../src/core/components/controls/handlers.js","../../src/core/components/controls/icons.js","../../src/core/styles/shared/alerts.js","../../src/core/styles/shared/button.js","../../src/core/styles/shared/form.js","../../src/core/styles/mixins.js","../../src/core/styles/shared/input.js","../../src/core/styles/shared/textarea.js","../../src/core/components/controls/styles.js","../../src/core/components/controls/index.js","../../src/core/components/notification/styles.js","../../src/core/components/notification/index.js","../../src/core/components/chat-container/styles.js","../../src/core/components/chat-container/index.js","../../src/core/views/captcha/handlers.js","../../src/core/views/captcha/styles.js","../../src/core/views/captcha/index.js","../../node_modules/cssfilter/lib/default.js","../../node_modules/cssfilter/lib/util.js","../../node_modules/cssfilter/lib/parser.js","../../node_modules/cssfilter/lib/css.js","../../node_modules/cssfilter/lib/index.js","../../node_modules/xss/lib/util.js","../../node_modules/xss/lib/default.js","../../node_modules/xss/lib/parser.js","../../node_modules/xss/lib/xss.js","../../node_modules/xss/lib/index.js","../../node_modules/linkifyjs/dist/linkify.module.js","../../node_modules/linkify-html/dist/linkify-html.module.js","../../src/core/lib/html.js","../../src/core/actions/bot.helpers.js","../../src/core/components/message-meta/icons.js","../../src/core/components/avatar-agent/index.js","../../src/core/components/message-meta/styles.js","../../src/core/components/message-meta/index.js","../../src/core/components/message-media-card/styles.js","../../src/core/components/message-media-card/index.js","../../src/core/actions/bot.js","../../src/core/components/message-reaction/handlers.js","../../src/core/components/message-reaction/icons.js","../../src/core/components/message-reaction/styles.js","../../src/core/components/message-reaction/index.js","../../src/core/components/message/styles.js","../../src/core/components/message/index.js","../../src/core/lib/helpers/options.js","../../src/core/components/message-info/styles.js","../../src/core/components/message-info/index.js","../../src/core/components/message-option/handlers.js","../../src/core/components/message-option/styles.js","../../src/core/components/message-option/icons.js","../../src/core/components/message-option/text-option.js","../../src/core/components/message-option/json-option.js","../../src/core/components/message-option/index.js","../../src/core/components/message-intro/helpers.js","../../src/core/components/message-intro/styles.js","../../src/core/components/message-intro/index.js","../../src/core/components/message-queue/styles.js","../../src/core/components/message-queue/index.js","../../src/core/components/typing-indication/styles.js","../../src/core/components/typing-indication/index.js","../../src/core/lib/helpers/status.js","../../src/core/components/message-list/styles.js","../../src/core/components/message-list/index.js","../../src/core/actions/emojis.js","../../src/core/components/emojis/icons.js","../../src/core/components/emojis/handlers.js","../../src/core/components/emojis/styles.js","../../src/core/components/emojis/index.js","../../src/core/lib/helpers/timers.js","../../src/core/actions/textarea.js","../../src/core/components/editor/icons.js","../../src/core/components/editor/styles.js","../../src/core/components/editor/index.js","../../src/core/views/chat/index.js","../../src/core/components/input/helpers.js","../../src/core/components/input/index.js","../../src/core/views/start-screen/handlers.js","../../src/core/views/start-screen/styles.js","../../src/core/views/start-screen/index.js","../../src/core/components/star/index.js","../../src/core/views/survey/helpers.js","../../src/core/views/survey/handlers.js","../../src/core/views/survey/styles.js","../../src/core/views/survey/form.js","../../src/core/views/survey/index.js","../../src/core/views/end-screen/handlers.js","../../src/core/views/end-screen/styles.js","../../src/core/views/end-screen/index.js","../../src/core/views/reject-screen/styles.js","../../src/core/views/reject-screen/index.js","../../src/core/lib/state-provider.js","../../src/core/lib/helpers/conditions.js","../../src/core/lib/page-tracker.js","../../src/core/bootstrapper.js","../../src/core/api.js","../../src/core/main.js"],"sourcesContent":["/**\r\n * A helper function to trim strings\r\n * @param {String} target - a target to trim from\r\n * @returns {String} - a trimmed string\r\n */\r\nexport function trim(target) {\r\n\tif (typeof target === 'string') {\r\n\t\treturn target.trim();\r\n\t}\r\n\r\n\treturn target;\r\n}\r\n\r\nexport function isNullOrEmpty(target) {\r\n\treturn target === null || target === '';\r\n}\r\n\r\nexport function lowerCaseFirst(target) {\r\n\tif (typeof target !== 'string') {\r\n\t\treturn target;\r\n\t}\r\n\r\n\t// eslint-disable-next-line no-magic-numbers\r\n\treturn target.charAt(0).toLowerCase() + target.substring(1);\r\n}\r\n\r\nexport function lowercase(target) {\r\n\treturn String(target).toLowerCase();\r\n}\r\n\r\nexport function contains(value, needle) {\r\n\t// eslint-disable-next-line no-magic-numbers\r\n\treturn String(value).indexOf(needle) !== -1;\r\n}\r\n\r\n/**\r\n * Is it a String\r\n * @param {String} target\r\n * @return {Boolean}\r\n */\r\nexport const isString = target => target instanceof String || typeof target === 'string';\r\n\r\n/**\r\n * A helper to convert a string to array nested into another array\r\n * @param {String} target - A string '1, 3, 4, 6'\r\n * @param {Boolean} numbers - A Boolean\r\n * @returns {array | string} - array appended to another Array\r\n */\r\n\r\nexport function toArrayOf(target, numbers = true) {\r\n\tconst nestedArray = [];\r\n\r\n\tif (isString(target)) {\r\n\t\tif (numbers) {\r\n\t\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\t\tnestedArray.push(Array.from(target.split(/,(?:\\s+)?/), i => i * 1));\r\n\t\t} else {\r\n\t\t\tnestedArray.push(Array.from(target.split(/,(?:\\s+)?/)));\r\n\t\t}\r\n\r\n\t\treturn nestedArray;\r\n\t}\r\n\r\n\treturn target;\r\n}\r\n\r\n/**\r\n * A helper to split and extract the given Index from a String to Number\r\n * @param {String} target - the target String\r\n * @param {Number} index - the index at which the target should be converted and returned\r\n */\r\n\r\n// eslint-disable-next-line no-magic-numbers\r\nexport function toNumberFromIndex(target, index = 0) {\r\n\tlet returnValue;\r\n\r\n\tif (isString(target)) {\r\n\t\treturnValue = Number(target.split(/,(?:\\s+)?/)[index]);\r\n\t}\r\n\r\n\tif (isNaN(returnValue)) {\r\n\t\treturn target;\r\n\t}\r\n\r\n\treturn returnValue;\r\n}\r\n\r\n/**\r\n * A helper that replaces dots with dashes in a string\r\n * @param {String} string - the target string\r\n */\r\n\r\nexport const replaceDotsWithDashes = string => string.replace(/\\.+/g, '-');\r\n\r\n/**\r\n * A regEx tester for a valid URL with protocol\r\n * @see https://stackoverflow.com/questions/161738/what-is-the-best-regular-expression-to-check-if-a-string-is-a-valid-url\r\n * @param {String} url - the url\r\n * @returns {Boolean}\r\n */\r\nexport const URLValidator = url => {\r\n\tconst pattern = /\\b(https?|ftp|file):\\/\\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]*[-A-Za-z0-9+&@#/%=~_|]/;\r\n\tconst matcher = new RegExp(pattern, 'i');\r\n\r\n\treturn matcher.test(url);\r\n};\r\n\r\n","import { version } from '../../../package.json';\r\nimport { replaceDotsWithDashes } from '../lib/helpers/string';\r\n\r\nexport const DEFAULT_STATE = {\r\n\tview: 'bubble',\r\n\tisConnected: false,\r\n\tisEnded: false,\r\n\tisEndedByUser: false,\r\n\tisEndedByAgent: false,\r\n\tisInQueue: true,\r\n\tisRedirectingToSSO: false,\r\n\thasBeenInConference: false,\r\n\tisMinimized: false,\r\n\tqueuePosition: null,\r\n\tqueuePositionTime: null,\r\n\tagentIsTyping: false,\r\n\tchatterIsTyping: false,\r\n\tchatAreaDisabled: false,\r\n\tresetChatInput: false,\r\n\tcaptchaConfig: {},\r\n\tloading: {},\r\n\tmessages: [],\r\n\tconnectedAgents: [],\r\n\tlastConnectedAgentId: null,\r\n\tisScrolling: true,\r\n\tisDelayedStarterShown: false,\r\n\tisUntouched: true,\r\n\tviewportWidth: null,\r\n\tviewportHeight: null,\r\n\tisEmojiWindowShown: false,\r\n\tcurrentEmojiIndex: 0,\r\n\temojiWindowClosedByBlur: false,\r\n\tfileAttachmentsEnabled: false,\r\n\tisAttachingFile: false,\r\n\tfileCount: 0,\r\n\tnotification: null\r\n};\r\n\r\nexport const DEFAULT_EDITOR = {\r\n\tINITIAL_HEIGHT: 41,\r\n\tDEFAULT_FILE_ATTACHMENT_HEIGHT: 82,\r\n\tINITIAL_HEIGHT_OFFSET: 3,\r\n\tMAX_HEIGHT: 200\r\n};\r\n\r\n/**\r\n * @see {@link https://bit.ly/2GAUMtx|StyleGuides}\r\n */\r\nexport const DEFAULT_THEME = {\r\n\ttheme: {\r\n\t\tprimaryColor: '#eb1562', // Brand color. In use for the primary buttons, button states, certain border colors\r\n\t\tsecondaryColor: '#f373a1', // Second Brand color.\r\n\t\ttertiaryColor: '#f4f5f6', // Third Brand color\r\n\t\tsupportColorOne: '#bfc0c6',\r\n\t\tsupportColorTwo: '#e8abbd',\r\n\t\tsupportColorThree: '#ffffff',\r\n\t\tbuttonTertiaryNormal: '#ffffff',\r\n\t\tbuttonSecondaryNormal: '#515665',\r\n\t\tbuttonPrimaryNormal: '#eb1562',\r\n\t\tbuttonPrimaryHover: '#af0026', // The default form button + Bubble styles\r\n\t\tbuttonSecondaryHover: '#9cc624', // buttons referred as \"inside chat area\"\r\n\t\tbuttonTertiaryHover: '#eb1562', // chat option select button styles\r\n\t\tbuttonPrimaryFocus: '#af0026',\r\n\t\tbuttonSecondaryFocus: '#f0585d',\r\n\t\tbuttonTertiaryFocus: '#f5acac',\r\n\t\tbuttonPrimaryBorder: '3px, solid, #eb1562',\r\n\t\tbuttonSecondaryBorder: '3px, solid, #515665',\r\n\t\tbuttonTertiaryBorder: '1px, solid, #eb1562',\r\n\t\talertSuccessColor: '#155724',\r\n\t\talertErrorColor: '#721c24',\r\n\t\teditorInputBorderColor: '#a6a7ac',\r\n\t\teditorSendButtonFillColor: '#a6a7ac',\r\n\t\tinputBorderColor: '#ced4da',\r\n\t\tstartChatBubbleBorderColor: '#eb1562', // Primary color #eb1562\r\n\t\tstartChatBubbleShadowColor: '#000000',\r\n\t\tstartChatBubbleBoxShadow: '0, 0, 0', // Defaults no shadow\r\n\t\ttypography: {\r\n\t\t\tfontColor: '#444a51',\r\n\t\t\tfontSize: 13,\r\n\t\t\tfontFace: 'normal',\r\n\t\t\theaderTextColor: '#ffffff',\r\n\t\t\theadingsTextColor: '#444a51',\r\n\t\t\theadingsFontSize: 16,\r\n\t\t\theadingsTextTransform: 'none',\r\n\t\t\tlineHeight: 'normal',\r\n\t\t\ttextTransform: 'none',\r\n\t\t\theaderTextSize: 24,\r\n\t\t\teditorTextColor: '#5f5c5c',\r\n\t\t\tbuttonPrimaryTextColor: '#ffffff',\r\n\t\t\tbuttonSecondaryTextColor: '#ffffff',\r\n\t\t\tbuttonTertiaryTextColor: '#eb1562',\r\n\t\t\tchatBubbleMetaTextSize: 8,\r\n\t\t\tbuttonPrimaryTextSize: 12,\r\n\t\t\tbuttonSecondaryTextSize: 14,\r\n\t\t\tbuttonTertiaryTextSize: 12,\r\n\t\t\tbuttonPrimaryTextTransform: 'uppercase',\r\n\t\t\tbuttonSecondaryTextTransform: 'inherit',\r\n\t\t\tbuttonTertiaryTextTransform: 'none',\r\n\t\t\tstartChatBubbleFontStyle: 'bold',\r\n\t\t\tstartChatBubbleFontSize: 18,\r\n\t\t\tstartChatBubbleTextColor: '#ffffff',\r\n\t\t\tstartChatBubbleIconColor: '#ffffff'\r\n\t\t},\r\n\t\tshapes: {\r\n\t\t\tborderRadius: 3,\r\n\t\t\tinputBorderRadius: 5,\r\n\t\t\tstartChatBubbleBorderRadius: '30, 30, 30, 30',\r\n\t\t\tstartChatBubbleSize: '60, 60', /* height, width */\r\n\t\t\tstartChatBubbleBorderThickness: 2,\r\n\t\t\tagentBubbleBorderRadius: '0, 10, 10, 10',\r\n\t\t\tchatterBubbleBorderRadius: '10, 10, 0, 10',\r\n\t\t\tbuttonPrimaryBorderRadius: 3,\r\n\t\t\tbuttonSecondaryBorderRadius: 4,\r\n\t\t\tbuttonTertiaryBorderRadius: 20,\r\n\t\t\tbuttonPrimaryHeight: 38,\r\n\t\t\tbuttonSecondaryHeight: 38,\r\n\t\t\tbuttonTertiaryHeight: 38,\r\n\t\t\tbuttonPrimaryWidth: 150,\r\n\t\t\tbuttonSecondaryWidth: 120,\r\n\t\t\tbuttonTertiaryWidth: 250,\r\n\t\t\tinputHeight: 32,\r\n\t\t\theaderHeight: 46,\r\n\t\t\tbuttonHeight: 38,\r\n\t\t\teditorBorderRadius: 20\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport const DEFAULT_POLLING_FREQUENCY = 1500;\r\n\r\n// We are aiming here the ISO 639-1 standard\r\nexport const DEFAULT_LANGUAGE_CODE = 'en';\r\n\r\nexport const DEFAULT_ELEMENTS_WHITELIST = {\r\n\t// Formatting\r\n\tbr: [],\r\n\th1: [],\r\n\th2: [],\r\n\th3: [],\r\n\th4: [],\r\n\th5: [],\r\n\th6: [],\r\n\tp: [],\r\n\r\n\t// Visual elements\r\n\ta: ['target', 'href', 'title', 'tabindex'],\r\n\r\n\t// Text styling\r\n\tu: [],\r\n\ts: [],\r\n\tb: [],\r\n\tstrong: [],\r\n\tem: [],\r\n\ti: [],\r\n\tsub: [],\r\n\tsup: []\r\n};\r\n\r\nexport const DEFAULT_HYPERLINKS_ATTRIBUTES = {\r\n\ttabindex: '-1',\r\n\ttarget: '_blank'\r\n};\r\n\r\nexport const SELECTOR_IS_DRAGGED = 'is-dragged';\r\nexport const RESIZE_TRIGGER_SIZE = 13; // px\r\n\r\nexport const CHAT_SELECTOR = '[data-puzzel-chat]';\r\nexport const CHAT_INPUT_SELECTOR = '#editor';\r\nexport const CHAT_DRAG_HANDLE = '#drag-handle';\r\nexport const CHAT_MIN_WIDTH = 300;\r\nexport const CHAT_MIN_HEIGHT = 500;\r\n\r\nexport const NOTIFICATIONS_TTL = 2500;\r\n\r\nexport const TYPING_TTL = 5000;\r\n\r\nexport const OIDC_CONNECTION_NAME = 'oidc';\r\n\r\nexport const EMOJI_WINDOW_SELECTOR = '#chat-emoji-window';\r\nexport const EMOJIS_PER_ROW = 5;\r\nexport const EMOJIS = [\r\n\t'👍',\r\n\t'👎',\r\n\t'🙂',\r\n\t'😀',\r\n\t'😂',\r\n\t'🤣',\r\n\t'🙁',\r\n\t'😢',\r\n\t'😎',\r\n\t'❤️'\r\n];\r\n\r\nexport const KEYBOARD = {\r\n\tARROW_DOWN: 40,\r\n\tARROW_LEFT: 37,\r\n\tARROW_RIGHT: 39,\r\n\tARROW_UP: 38,\r\n\tENTER: 13,\r\n\tESC: 27,\r\n\tSPACE: 32\r\n};\r\n\r\nexport const MESSAGE_OPTION_CAN_CANCEL = true;\r\nexport const MESSAGE_OPTION_SHOW_HEADER = true;\r\nexport const MESSAGE_OPTION_SHOW_CONFIRMATION = true;\r\nexport const MESSAGE_OPTION_HEADER_LABEL = 'offeredOptions.pleaseSelect';\r\nexport const MESSAGE_OPTION_HEADER_CONFIRMED_LABEL = 'common.thankYou';\r\n\r\nexport const SKIP_INTRO_VARIABLES = ['verifiedId', 'verifiedName'];\r\n\r\nexport const STYLES_PREFIX = `puzzel-chat-${replaceDotsWithDashes(version)}-`;\r\n","var RECYCLED_NODE = 1\nvar LAZY_NODE = 2\nvar TEXT_NODE = 3\nvar EMPTY_OBJ = {}\nvar EMPTY_ARR = []\nvar map = EMPTY_ARR.map\nvar isArray = Array.isArray\nvar defer =\n typeof requestAnimationFrame !== \"undefined\"\n ? requestAnimationFrame\n : setTimeout\n\nvar createClass = function(obj) {\n var out = \"\"\n\n if (typeof obj === \"string\") return obj\n\n if (isArray(obj) && obj.length > 0) {\n for (var k = 0, tmp; k < obj.length; k++) {\n if ((tmp = createClass(obj[k])) !== \"\") {\n out += (out && \" \") + tmp\n }\n }\n } else {\n for (var k in obj) {\n if (obj[k]) {\n out += (out && \" \") + k\n }\n }\n }\n\n return out\n}\n\nvar merge = function(a, b) {\n var out = {}\n\n for (var k in a) out[k] = a[k]\n for (var k in b) out[k] = b[k]\n\n return out\n}\n\nvar batch = function(list) {\n return list.reduce(function(out, item) {\n return out.concat(\n !item || item === true\n ? 0\n : typeof item[0] === \"function\"\n ? [item]\n : batch(item)\n )\n }, EMPTY_ARR)\n}\n\nvar isSameAction = function(a, b) {\n return isArray(a) && isArray(b) && a[0] === b[0] && typeof a[0] === \"function\"\n}\n\nvar shouldRestart = function(a, b) {\n if (a !== b) {\n for (var k in merge(a, b)) {\n if (a[k] !== b[k] && !isSameAction(a[k], b[k])) return true\n b[k] = a[k]\n }\n }\n}\n\nvar patchSubs = function(oldSubs, newSubs, dispatch) {\n for (\n var i = 0, oldSub, newSub, subs = [];\n i < oldSubs.length || i < newSubs.length;\n i++\n ) {\n oldSub = oldSubs[i]\n newSub = newSubs[i]\n subs.push(\n newSub\n ? !oldSub ||\n newSub[0] !== oldSub[0] ||\n shouldRestart(newSub[1], oldSub[1])\n ? [\n newSub[0],\n newSub[1],\n newSub[0](dispatch, newSub[1]),\n oldSub && oldSub[2]()\n ]\n : oldSub\n : oldSub && oldSub[2]()\n )\n }\n return subs\n}\n\nvar patchProperty = function(node, key, oldValue, newValue, listener, isSvg) {\n if (key === \"key\") {\n } else if (key === \"style\") {\n for (var k in merge(oldValue, newValue)) {\n oldValue = newValue == null || newValue[k] == null ? \"\" : newValue[k]\n if (k[0] === \"-\") {\n node[key].setProperty(k, oldValue)\n } else {\n node[key][k] = oldValue\n }\n }\n } else if (key[0] === \"o\" && key[1] === \"n\") {\n if (\n !((node.actions || (node.actions = {}))[\n (key = key.slice(2).toLowerCase())\n ] = newValue)\n ) {\n node.removeEventListener(key, listener)\n } else if (!oldValue) {\n node.addEventListener(key, listener)\n }\n } else if (!isSvg && key !== \"list\" && key in node) {\n node[key] = newValue == null ? \"\" : newValue\n } else if (\n newValue == null ||\n newValue === false ||\n (key === \"class\" && !(newValue = createClass(newValue)))\n ) {\n node.removeAttribute(key)\n } else {\n node.setAttribute(key, newValue)\n }\n}\n\nvar createNode = function(vdom, listener, isSvg) {\n var ns = \"http://www.w3.org/2000/svg\"\n var props = vdom.props\n var node =\n vdom.type === TEXT_NODE\n ? document.createTextNode(vdom.name)\n : (isSvg = isSvg || vdom.name === \"svg\")\n ? document.createElementNS(ns, vdom.name, { is: props.is })\n : document.createElement(vdom.name, { is: props.is })\n\n for (var k in props) {\n patchProperty(node, k, null, props[k], listener, isSvg)\n }\n\n for (var i = 0, len = vdom.children.length; i < len; i++) {\n node.appendChild(\n createNode(\n (vdom.children[i] = getVNode(vdom.children[i])),\n listener,\n isSvg\n )\n )\n }\n\n return (vdom.node = node)\n}\n\nvar getKey = function(vdom) {\n return vdom == null ? null : vdom.key\n}\n\nvar patch = function(parent, node, oldVNode, newVNode, listener, isSvg) {\n if (oldVNode === newVNode) {\n } else if (\n oldVNode != null &&\n oldVNode.type === TEXT_NODE &&\n newVNode.type === TEXT_NODE\n ) {\n if (oldVNode.name !== newVNode.name) node.nodeValue = newVNode.name\n } else if (oldVNode == null || oldVNode.name !== newVNode.name) {\n node = parent.insertBefore(\n createNode((newVNode = getVNode(newVNode)), listener, isSvg),\n node\n )\n if (oldVNode != null) {\n parent.removeChild(oldVNode.node)\n }\n } else {\n var tmpVKid\n var oldVKid\n\n var oldKey\n var newKey\n\n var oldVProps = oldVNode.props\n var newVProps = newVNode.props\n\n var oldVKids = oldVNode.children\n var newVKids = newVNode.children\n\n var oldHead = 0\n var newHead = 0\n var oldTail = oldVKids.length - 1\n var newTail = newVKids.length - 1\n\n isSvg = isSvg || newVNode.name === \"svg\"\n\n for (var i in merge(oldVProps, newVProps)) {\n if (\n (i === \"value\" || i === \"selected\" || i === \"checked\"\n ? node[i]\n : oldVProps[i]) !== newVProps[i]\n ) {\n patchProperty(node, i, oldVProps[i], newVProps[i], listener, isSvg)\n }\n }\n\n while (newHead <= newTail && oldHead <= oldTail) {\n if (\n (oldKey = getKey(oldVKids[oldHead])) == null ||\n oldKey !== getKey(newVKids[newHead])\n ) {\n break\n }\n\n patch(\n node,\n oldVKids[oldHead].node,\n oldVKids[oldHead],\n (newVKids[newHead] = getVNode(\n newVKids[newHead++],\n oldVKids[oldHead++]\n )),\n listener,\n isSvg\n )\n }\n\n while (newHead <= newTail && oldHead <= oldTail) {\n if (\n (oldKey = getKey(oldVKids[oldTail])) == null ||\n oldKey !== getKey(newVKids[newTail])\n ) {\n break\n }\n\n patch(\n node,\n oldVKids[oldTail].node,\n oldVKids[oldTail],\n (newVKids[newTail] = getVNode(\n newVKids[newTail--],\n oldVKids[oldTail--]\n )),\n listener,\n isSvg\n )\n }\n\n if (oldHead > oldTail) {\n while (newHead <= newTail) {\n node.insertBefore(\n createNode(\n (newVKids[newHead] = getVNode(newVKids[newHead++])),\n listener,\n isSvg\n ),\n (oldVKid = oldVKids[oldHead]) && oldVKid.node\n )\n }\n } else if (newHead > newTail) {\n while (oldHead <= oldTail) {\n node.removeChild(oldVKids[oldHead++].node)\n }\n } else {\n for (var i = oldHead, keyed = {}, newKeyed = {}; i <= oldTail; i++) {\n if ((oldKey = oldVKids[i].key) != null) {\n keyed[oldKey] = oldVKids[i]\n }\n }\n\n while (newHead <= newTail) {\n oldKey = getKey((oldVKid = oldVKids[oldHead]))\n newKey = getKey(\n (newVKids[newHead] = getVNode(newVKids[newHead], oldVKid))\n )\n\n if (\n newKeyed[oldKey] ||\n (newKey != null && newKey === getKey(oldVKids[oldHead + 1]))\n ) {\n if (oldKey == null) {\n node.removeChild(oldVKid.node)\n }\n oldHead++\n continue\n }\n\n if (newKey == null || oldVNode.type === RECYCLED_NODE) {\n if (oldKey == null) {\n patch(\n node,\n oldVKid && oldVKid.node,\n oldVKid,\n newVKids[newHead],\n listener,\n isSvg\n )\n newHead++\n }\n oldHead++\n } else {\n if (oldKey === newKey) {\n patch(\n node,\n oldVKid.node,\n oldVKid,\n newVKids[newHead],\n listener,\n isSvg\n )\n newKeyed[newKey] = true\n oldHead++\n } else {\n if ((tmpVKid = keyed[newKey]) != null) {\n patch(\n node,\n node.insertBefore(tmpVKid.node, oldVKid && oldVKid.node),\n tmpVKid,\n newVKids[newHead],\n listener,\n isSvg\n )\n newKeyed[newKey] = true\n } else {\n patch(\n node,\n oldVKid && oldVKid.node,\n null,\n newVKids[newHead],\n listener,\n isSvg\n )\n }\n }\n newHead++\n }\n }\n\n while (oldHead <= oldTail) {\n if (getKey((oldVKid = oldVKids[oldHead++])) == null) {\n node.removeChild(oldVKid.node)\n }\n }\n\n for (var i in keyed) {\n if (newKeyed[i] == null) {\n node.removeChild(keyed[i].node)\n }\n }\n }\n }\n\n return (newVNode.node = node)\n}\n\nvar propsChanged = function(a, b) {\n for (var k in a) if (a[k] !== b[k]) return true\n for (var k in b) if (a[k] !== b[k]) return true\n}\n\nvar getTextVNode = function(node) {\n return typeof node === \"object\" ? node : createTextVNode(node)\n}\n\nvar getVNode = function(newVNode, oldVNode) {\n return newVNode.type === LAZY_NODE\n ? ((!oldVNode || !oldVNode.lazy || propsChanged(oldVNode.lazy, newVNode.lazy))\n && ((oldVNode = getTextVNode(newVNode.lazy.view(newVNode.lazy))).lazy =\n newVNode.lazy),\n oldVNode)\n : newVNode\n}\n\nvar createVNode = function(name, props, children, node, key, type) {\n return {\n name: name,\n props: props,\n children: children,\n node: node,\n type: type,\n key: key\n }\n}\n\nvar createTextVNode = function(value, node) {\n return createVNode(value, EMPTY_OBJ, EMPTY_ARR, node, undefined, TEXT_NODE)\n}\n\nvar recycleNode = function(node) {\n return node.nodeType === TEXT_NODE\n ? createTextVNode(node.nodeValue, node)\n : createVNode(\n node.nodeName.toLowerCase(),\n EMPTY_OBJ,\n map.call(node.childNodes, recycleNode),\n node,\n undefined,\n RECYCLED_NODE\n )\n}\n\nexport var Lazy = function(props) {\n return {\n lazy: props,\n type: LAZY_NODE\n }\n}\n\nexport var h = function(name, props) {\n for (var vdom, rest = [], children = [], i = arguments.length; i-- > 2; ) {\n rest.push(arguments[i])\n }\n\n while (rest.length > 0) {\n if (isArray((vdom = rest.pop()))) {\n for (var i = vdom.length; i-- > 0; ) {\n rest.push(vdom[i])\n }\n } else if (vdom === false || vdom === true || vdom == null) {\n } else {\n children.push(getTextVNode(vdom))\n }\n }\n\n props = props || EMPTY_OBJ\n\n return typeof name === \"function\"\n ? name(props, children)\n : createVNode(name, props, children, undefined, props.key)\n}\n\nexport var app = function(props) {\n var state = {}\n var lock = false\n var view = props.view\n var node = props.node\n var vdom = node && recycleNode(node)\n var subscriptions = props.subscriptions\n var subs = []\n\n var listener = function(event) {\n dispatch(this.actions[event.type], event)\n }\n\n var setState = function(newState) {\n if (state !== newState) {\n state = newState\n if (subscriptions) {\n subs = patchSubs(subs, batch([subscriptions(state)]), dispatch)\n }\n if (view && !lock) defer(render, (lock = true))\n }\n return state\n }\n\n var dispatch = (props.middleware ||\n function(obj) {\n return obj\n })(function(action, props) {\n return typeof action === \"function\"\n ? dispatch(action(state, props))\n : isArray(action)\n ? typeof action[0] === \"function\" || isArray(action[0])\n ? dispatch(\n action[0],\n typeof action[1] === \"function\" ? action[1](props) : action[1]\n )\n : (batch(action.slice(1)).map(function(fx) {\n fx && fx[0](dispatch, fx[1])\n }, setState(action[0])),\n state)\n : setState(action)\n })\n\n var render = function() {\n lock = false\n node = patch(\n node.parentNode,\n node,\n vdom,\n (vdom = getTextVNode(view(state))),\n listener\n )\n }\n\n dispatch(props.init)\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","var _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\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexport default isBrowser;\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport isInBrowser from 'is-in-browser';\nimport warning from 'tiny-warning';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\n\nvar plainObjectConstrurctor = {}.constructor;\nfunction cloneStyle(style) {\n if (style == null || typeof style !== 'object') return style;\n if (Array.isArray(style)) return style.map(cloneStyle);\n if (style.constructor !== plainObjectConstrurctor) return style;\n var newStyle = {};\n\n for (var name in style) {\n newStyle[name] = cloneStyle(style[name]);\n }\n\n return newStyle;\n}\n\n/**\n * Create a rule instance.\n */\n\nfunction createRule(name, decl, options) {\n if (name === void 0) {\n name = 'unnamed';\n }\n\n var jss = options.jss;\n var declCopy = cloneStyle(decl);\n var rule = jss.plugins.onCreateRule(name, declCopy, options);\n if (rule) return rule; // It is an at-rule and it has no instance.\n\n if (name[0] === '@') {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown rule \" + name) : void 0;\n }\n\n return null;\n}\n\nvar join = function join(value, by) {\n var result = '';\n\n for (var i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break;\n if (result) result += by;\n result += value[i];\n }\n\n return result;\n};\n/**\n * Converts array values to string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\n\n\nfunction toCssValue(value, ignoreImportant) {\n if (ignoreImportant === void 0) {\n ignoreImportant = false;\n }\n\n if (!Array.isArray(value)) return value;\n var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n\n if (!ignoreImportant && value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n\n return cssValue;\n}\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\nfunction indentStr(str, indent) {\n var result = '';\n\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }\n\n return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\n\nfunction toCss(selector, style, options) {\n if (options === void 0) {\n options = {};\n }\n\n var result = '';\n if (!style) return result;\n var _options = options,\n _options$indent = _options.indent,\n indent = _options$indent === void 0 ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n if (selector) indent++; // Apply fallbacks first.\n\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n\n for (var prop in fallback) {\n var value = fallback[prop];\n\n if (value != null) {\n if (result) result += '\\n';\n result += \"\" + indentStr(prop + \": \" + toCssValue(value) + \";\", indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n\n if (_value != null) {\n if (result) result += '\\n';\n result += \"\" + indentStr(_prop + \": \" + toCssValue(_value) + \";\", indent);\n }\n }\n }\n }\n\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n\n if (_value2 != null && _prop2 !== 'fallbacks') {\n if (result) result += '\\n';\n result += \"\" + indentStr(_prop2 + \": \" + toCssValue(_value2) + \";\", indent);\n }\n } // Allow empty style in this case, because properties will be added dynamically.\n\n\n if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n if (!selector) return result;\n indent--;\n if (result) result = \"\\n\" + result + \"\\n\";\n return indentStr(selector + \" {\" + result, indent) + indentStr('}', indent);\n}\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\nvar escape = (function (str) {\n return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n});\n\nvar BaseStyleRule =\n/*#__PURE__*/\nfunction () {\n function BaseStyleRule(key, style, options) {\n this.type = 'style';\n this.key = void 0;\n this.isProcessed = false;\n this.style = void 0;\n this.renderer = void 0;\n this.renderable = void 0;\n this.options = void 0;\n var sheet = options.sheet,\n Renderer = options.Renderer;\n this.key = key;\n this.options = options;\n this.style = style;\n if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n }\n /**\n * Get or set a style property.\n */\n\n\n var _proto = BaseStyleRule.prototype;\n\n _proto.prop = function prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n var force = options ? options.force : false;\n if (!force && this.style[name] === value) return this;\n var newValue = value;\n\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n }\n\n var isEmpty = newValue == null || newValue === false;\n var isDefined = name in this.style; // Value is empty and wasn't defined before.\n\n if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n var remove = isEmpty && isDefined;\n if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n return this;\n }\n\n var sheet = this.options.sheet;\n\n if (sheet && sheet.attached) {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".') : void 0;\n }\n\n return this;\n };\n\n return BaseStyleRule;\n}();\nvar StyleRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(StyleRule, _BaseStyleRule);\n\n function StyleRule(key, style, options) {\n var _this;\n\n _this = _BaseStyleRule.call(this, key, style, options) || this;\n _this.selectorText = void 0;\n _this.id = void 0;\n _this.renderable = void 0;\n var selector = options.selector,\n scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n\n if (selector) {\n _this.selectorText = selector;\n } else if (scoped !== false) {\n _this.id = generateId(_assertThisInitialized(_assertThisInitialized(_this)), sheet);\n _this.selectorText = \".\" + escape(_this.id);\n }\n\n return _this;\n }\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n\n var _proto2 = StyleRule.prototype;\n\n /**\n * Apply rule to an element inline.\n */\n _proto2.applyTo = function applyTo(renderable) {\n var renderer = this.renderer;\n\n if (renderer) {\n var json = this.toJSON();\n\n for (var prop in json) {\n renderer.setProperty(renderable, prop, json[prop]);\n }\n }\n\n return this;\n }\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n ;\n\n _proto2.toJSON = function toJSON() {\n var json = {};\n\n for (var prop in this.style) {\n var value = this.style[prop];\n if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n }\n\n return json;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto2.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.selectorText, this.style, opts);\n };\n\n _createClass(StyleRule, [{\n key: \"selector\",\n set: function set(selector) {\n if (selector === this.selectorText) return;\n this.selectorText = selector;\n var renderer = this.renderer,\n renderable = this.renderable;\n if (!renderable || !renderer) return;\n var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n if (!hasChanged) {\n renderer.replaceRule(renderable, this);\n }\n }\n /**\n * Get selector string.\n */\n ,\n get: function get() {\n return this.selectorText;\n }\n }]);\n\n return StyleRule;\n}(BaseStyleRule);\nvar pluginStyleRule = {\n onCreateRule: function onCreateRule(name, style, options) {\n if (name[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n\n return new StyleRule(name, style, options);\n }\n};\n\nvar defaultToStringOptions = {\n indent: 1,\n children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule =\n/*#__PURE__*/\nfunction () {\n function ConditionalRule(key, styles, options) {\n this.type = 'conditional';\n this.at = void 0;\n this.key = void 0;\n this.query = void 0;\n this.rules = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n this.query = options.name;\n var atMatch = key.match(atRegExp);\n this.at = atMatch ? atMatch[1] : 'unknown';\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = ConditionalRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\n\n if (options.indent == null) options.indent = defaultToStringOptions.indent;\n if (options.children == null) options.children = defaultToStringOptions.children;\n\n if (options.children === false) {\n return this.query + \" {}\";\n }\n\n var children = this.rules.toString(options);\n return children ? this.query + \" {\\n\" + children + \"\\n}\" : '';\n };\n\n return ConditionalRule;\n}();\nvar keyRegExp = /@media|@supports\\s+/;\nvar pluginConditionalRule = {\n onCreateRule: function onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n }\n};\n\nvar defaultToStringOptions$1 = {\n indent: 1,\n children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule =\n/*#__PURE__*/\nfunction () {\n function KeyframesRule(key, frames, options) {\n this.type = 'keyframes';\n this.at = '@keyframes';\n this.key = void 0;\n this.name = void 0;\n this.id = void 0;\n this.rules = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n var nameMatch = key.match(nameRegExp);\n\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1];\n } else {\n this.name = 'noname';\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Bad keyframes name \" + key) : void 0;\n }\n\n this.key = this.type + \"-\" + this.name;\n this.options = options;\n var scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends({}, options, {\n parent: this\n }));\n }\n\n this.rules.process();\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = KeyframesRule.prototype;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions$1;\n }\n\n if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n if (options.children == null) options.children = defaultToStringOptions$1.children;\n\n if (options.children === false) {\n return this.at + \" \" + this.id + \" {}\";\n }\n\n var children = this.rules.toString(options);\n if (children) children = \"\\n\" + children + \"\\n\";\n return this.at + \" \" + this.id + \" {\" + children + \"}\";\n };\n\n return KeyframesRule;\n}();\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\n\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n if (typeof val === 'string') {\n return val.replace(refRegExp, function (match, name) {\n if (name in keyframes) {\n return keyframes[name];\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced keyframes rule \\\"\" + name + \"\\\" is not defined.\") : void 0;\n return match;\n });\n }\n\n return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n var value = style[prop];\n var refKeyframe = findReferencedKeyframe(value, keyframes);\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe;\n }\n};\n\nvar plugin = {\n onCreateRule: function onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n },\n // Animation name ref replacer.\n onProcessStyle: function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style' || !sheet) return style;\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n return style;\n },\n onChangeValue: function onChangeValue(val, prop, rule) {\n var sheet = rule.options.sheet;\n\n if (!sheet) {\n return val;\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n default:\n return val;\n }\n }\n};\n\nvar KeyframeRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(KeyframeRule, _BaseStyleRule);\n\n function KeyframeRule() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _BaseStyleRule.call.apply(_BaseStyleRule, [this].concat(args)) || this;\n _this.renderable = void 0;\n return _this;\n }\n\n var _proto = KeyframeRule.prototype;\n\n /**\n * Generates a CSS string.\n */\n _proto.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.key, this.style, opts);\n };\n\n return KeyframeRule;\n}(BaseStyleRule);\nvar pluginKeyframeRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options);\n }\n\n return null;\n }\n};\n\nvar FontFaceRule =\n/*#__PURE__*/\nfunction () {\n function FontFaceRule(key, style, options) {\n this.type = 'font-face';\n this.at = '@font-face';\n this.key = void 0;\n this.style = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = FontFaceRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.style)) {\n var str = '';\n\n for (var index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index]);\n if (this.style[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return toCss(this.at, this.style, options);\n };\n\n return FontFaceRule;\n}();\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n }\n};\n\nvar ViewportRule =\n/*#__PURE__*/\nfunction () {\n function ViewportRule(key, style, options) {\n this.type = 'viewport';\n this.at = '@viewport';\n this.key = void 0;\n this.style = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = ViewportRule.prototype;\n\n _proto.toString = function toString(options) {\n return toCss(this.key, this.style, options);\n };\n\n return ViewportRule;\n}();\nvar pluginViewportRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n }\n};\n\nvar SimpleRule =\n/*#__PURE__*/\nfunction () {\n function SimpleRule(key, value, options) {\n this.type = 'simple';\n this.key = void 0;\n this.value = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.value = value;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n\n var _proto = SimpleRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + \" \" + this.value[index] + \";\";\n if (this.value[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return this.key + \" \" + this.value + \";\";\n };\n\n return SimpleRule;\n}();\nvar keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n};\nvar pluginSimpleRule = {\n onCreateRule: function onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null;\n }\n};\n\nvar plugins = [pluginStyleRule, pluginConditionalRule, plugin, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\n\nvar defaultUpdateOptions = {\n process: true\n};\nvar forceUpdateOptions = {\n force: true,\n process: true\n /**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\n\n};\n\nvar RuleList =\n/*#__PURE__*/\nfunction () {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n // Original styles object.\n // Used to ensure correct rules order.\n function RuleList(options) {\n this.map = {};\n this.raw = {};\n this.index = [];\n this.counter = 0;\n this.options = void 0;\n this.classes = void 0;\n this.keyframes = void 0;\n this.options = options;\n this.classes = options.classes;\n this.keyframes = options.keyframes;\n }\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n\n var _proto = RuleList.prototype;\n\n _proto.add = function add(name, decl, ruleOptions) {\n var _this$options = this.options,\n parent = _this$options.parent,\n sheet = _this$options.sheet,\n jss = _this$options.jss,\n Renderer = _this$options.Renderer,\n generateId = _this$options.generateId,\n scoped = _this$options.scoped;\n\n var options = _extends({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateId: generateId,\n scoped: scoped,\n name: name,\n keyframes: this.keyframes,\n selector: undefined\n }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n\n\n var key = name;\n\n if (name in this.raw) {\n key = name + \"-d\" + this.counter++;\n } // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n\n\n this.raw[key] = decl;\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = \".\" + escape(this.classes[key]);\n }\n\n var rule = createRule(key, decl, options);\n if (!rule) return null;\n this.register(rule);\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n return rule;\n }\n /**\n * Get a rule.\n */\n ;\n\n _proto.get = function get(name) {\n return this.map[name];\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.remove = function remove(rule) {\n this.unregister(rule);\n delete this.raw[rule.key];\n this.index.splice(this.index.indexOf(rule), 1);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n ;\n\n _proto.process = function process() {\n var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n }\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n ;\n\n _proto.register = function register(rule) {\n this.map[rule.key] = rule;\n\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule;\n if (rule.id) this.classes[rule.key] = rule.id;\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id;\n }\n }\n /**\n * Unregister a rule.\n */\n ;\n\n _proto.unregister = function unregister(rule) {\n delete this.map[rule.key];\n\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name];\n }\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var name;\n var data;\n var options;\n\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n name = arguments.length <= 0 ? undefined : arguments[0]; // $FlowFixMe\n\n data = arguments.length <= 1 ? undefined : arguments[1]; // $FlowFixMe\n\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0]; // $FlowFixMe\n\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n\n if (name) {\n this.updateOne(this.map[name], data, options);\n } else {\n for (var index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options);\n }\n }\n }\n /**\n * Execute plugins, update rule props.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n if (options === void 0) {\n options = defaultUpdateOptions;\n }\n\n var _this$options2 = this.options,\n plugins = _this$options2.jss.plugins,\n sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options);\n return;\n }\n\n var styleRule = rule;\n var style = styleRule.style;\n plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n if (options.process && style && style !== styleRule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(styleRule.style, styleRule, sheet); // Update and add props.\n\n for (var prop in styleRule.style) {\n var nextValue = styleRule.style[prop];\n var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (nextValue !== prevValue) {\n styleRule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n\n for (var _prop in style) {\n var _nextValue = styleRule.style[_prop];\n var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (_nextValue == null && _nextValue !== _prevValue) {\n styleRule.prop(_prop, null, forceUpdateOptions);\n }\n }\n }\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options); // No need to render an empty rule.\n\n if (!css && !link) continue;\n if (str) str += '\\n';\n str += css;\n }\n\n return str;\n };\n\n return RuleList;\n}();\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(styles, options) {\n this.options = void 0;\n this.deployed = void 0;\n this.attached = void 0;\n this.rules = void 0;\n this.renderer = void 0;\n this.classes = void 0;\n this.keyframes = void 0;\n this.queue = void 0;\n this.attached = false;\n this.deployed = false;\n this.classes = {};\n this.keyframes = {};\n this.options = _extends({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n });\n\n if (options.Renderer) {\n this.renderer = new options.Renderer(this);\n }\n\n this.rules = new RuleList(this.options);\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Attach renderable to the render tree.\n */\n\n\n var _proto = StyleSheet.prototype;\n\n _proto.attach = function attach() {\n if (this.attached) return this;\n if (this.renderer) this.renderer.attach();\n this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n if (!this.deployed) this.deploy();\n return this;\n }\n /**\n * Remove renderable from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.attached) return this;\n if (this.renderer) this.renderer.detach();\n this.attached = false;\n return this;\n }\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n ;\n\n _proto.addRule = function addRule(name, decl, options) {\n var queue = this.queue; // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n var rule = this.rules.add(name, decl, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n\n if (this.attached) {\n if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n } // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return rule;\n }\n /**\n * Insert rule into the StyleSheet\n */\n ;\n\n _proto.insertRule = function insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule);\n }\n }\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n ;\n\n _proto.addRules = function addRules(styles, options) {\n var added = [];\n\n for (var name in styles) {\n var rule = this.addRule(name, styles[name], options);\n if (rule) added.push(rule);\n }\n\n return added;\n }\n /**\n * Get a rule by name.\n */\n ;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n ;\n\n _proto.deleteRule = function deleteRule(name) {\n var rule = typeof name === 'object' ? name : this.rules.get(name);\n if (!rule) return false;\n this.rules.remove(rule);\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable);\n }\n\n return true;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Deploy pure CSS string to a renderable.\n */\n ;\n\n _proto.deploy = function deploy() {\n if (this.renderer) this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var _this$rules;\n\n (_this$rules = this.rules).update.apply(_this$rules, arguments);\n\n return this;\n }\n /**\n * Updates a single rule.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options);\n return this;\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return StyleSheet;\n}();\n\nvar PluginsRegistry =\n/*#__PURE__*/\nfunction () {\n function PluginsRegistry() {\n this.plugins = {\n internal: [],\n external: []\n };\n this.registry = void 0;\n }\n\n var _proto = PluginsRegistry.prototype;\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n _proto.onCreateRule = function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n var rule = this.registry.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n\n return null;\n }\n /**\n * Call `onProcessRule` hooks.\n */\n ;\n\n _proto.onProcessRule = function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n\n for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet);\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n rule.isProcessed = true;\n }\n /**\n * Call `onProcessStyle` hooks.\n */\n ;\n\n _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n // $FlowFixMe\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n }\n }\n /**\n * Call `onProcessSheet` hooks.\n */\n ;\n\n _proto.onProcessSheet = function onProcessSheet(sheet) {\n for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet);\n }\n }\n /**\n * Call `onUpdate` hooks.\n */\n ;\n\n _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n for (var i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options);\n }\n }\n /**\n * Call `onChangeValue` hooks.\n */\n ;\n\n _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n var processedValue = value;\n\n for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n }\n\n return processedValue;\n }\n /**\n * Register a plugin.\n */\n ;\n\n _proto.use = function use(newPlugin, options) {\n if (options === void 0) {\n options = {\n queue: 'external'\n };\n }\n\n var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n if (plugins.indexOf(newPlugin) !== -1) {\n return;\n }\n\n plugins.push(newPlugin);\n this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n for (var name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name]);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown hook \\\"\" + name + \"\\\".\") : void 0;\n }\n }\n\n return registry;\n }, {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n });\n };\n\n return PluginsRegistry;\n}();\n\n/**\n * Sheets registry to access them all at one place.\n */\nvar SheetsRegistry =\n/*#__PURE__*/\nfunction () {\n function SheetsRegistry() {\n this.registry = [];\n }\n\n var _proto = SheetsRegistry.prototype;\n\n /**\n * Register a Style Sheet.\n */\n _proto.add = function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n if (registry.indexOf(sheet) !== -1) return;\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n } // Find a position.\n\n\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n /**\n * Reset the registry.\n */\n ;\n\n _proto.reset = function reset() {\n this.registry = [];\n }\n /**\n * Remove a Style Sheet.\n */\n ;\n\n _proto.remove = function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n /**\n * Convert all attached sheets to a CSS string.\n */\n ;\n\n _proto.toString = function toString(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n attached = _ref.attached,\n options = _objectWithoutPropertiesLoose(_ref, [\"attached\"]);\n\n var css = '';\n\n for (var i = 0; i < this.registry.length; i++) {\n var sheet = this.registry[i];\n\n if (attached != null && sheet.attached !== attached) {\n continue;\n }\n\n if (css) css += '\\n';\n css += sheet.toString(options);\n }\n\n return css;\n };\n\n _createClass(SheetsRegistry, [{\n key: \"index\",\n\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n\n return SheetsRegistry;\n}();\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\nvar sheets = new SheetsRegistry();\n\n/* eslint-disable */\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar globalThis = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis[ns] == null) globalThis[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis[ns]++;\n\nvar maxRules = 1e10;\n\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\nvar createGenerateId = function createGenerateId(options) {\n if (options === void 0) {\n options = {};\n }\n\n var ruleCounter = 0;\n return function (rule, sheet) {\n ruleCounter += 1;\n\n if (ruleCounter > maxRules) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] You might have a memory leak. Rule counter is at \" + ruleCounter + \".\") : void 0;\n }\n\n var jssId = '';\n var prefix = '';\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix;\n }\n\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id);\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n }\n\n return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n };\n};\n\n/**\n * Cache the value from the first time a function is called.\n */\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n/**\n * Get a style property value.\n */\n\n\nfunction getPropertyValue(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop);\n }\n\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n}\n/**\n * Set a style property.\n */\n\n\nfunction setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value, true);\n\n if (value[value.length - 1] === '!important') {\n cssRule.style.setProperty(prop, cssValue, 'important');\n return true;\n }\n } // Support CSSTOM.\n\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n cssRule.style.setProperty(prop, cssValue);\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n\n return true;\n}\n/**\n * Remove a style property.\n */\n\n\nfunction removeProperty(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop);\n } else {\n cssRule.style.removeProperty(prop);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] DOMException \\\"\" + err.message + \"\\\" was thrown. Tried to remove property \\\"\" + prop + \"\\\".\") : void 0;\n }\n}\n/**\n * Set the selector.\n */\n\n\nfunction setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText; // Return false if setter was not successful.\n // Currently works in chrome only.\n\n return cssRule.selectorText === selectorText;\n}\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\n\nvar getHead = memoize(function () {\n return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\n\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\n\nfunction findCommentNode(text) {\n var head = getHead();\n\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n\n return null;\n}\n\n/**\n * Find a node before which we can insert the sheet.\n */\nfunction findPrevNode(options) {\n var registry = sheets.registry;\n\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n };\n } // Otherwise insert after the last attached.\n\n\n sheet = findHighestSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n };\n }\n } // Try to find a comment placeholder if registry is empty.\n\n\n var insertionPoint = options.insertionPoint;\n\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n };\n } // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Insertion point \\\"\" + insertionPoint + \"\\\" not found.\") : void 0;\n }\n\n return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\n\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n var nextNode = findPrevNode(options);\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node);\n return;\n } // Works with iframes and any node types.\n\n\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n // https://stackoverflow.com/questions/41328728/force-casting-in-flow\n var insertionPointElement = insertionPoint;\n var parentNode = insertionPointElement.parentNode;\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Insertion point is not in the DOM.') : void 0;\n return;\n }\n\n getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\n\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\n\nvar _insertRule = function insertRule(container, rule, index) {\n var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n index = maxIndex;\n }\n\n try {\n if ('insertRule' in container) {\n var c = container;\n c.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n var _c = container;\n\n _c.appendRule(rule);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] \" + err.message) : void 0;\n return false;\n }\n\n return container.cssRules[index];\n};\n\nvar createStyle = function createStyle() {\n var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n\n el.textContent = '\\n';\n return el;\n};\n\nvar DomRenderer =\n/*#__PURE__*/\nfunction () {\n // HTMLStyleElement needs fixing https://github.com/facebook/flow/issues/2696\n function DomRenderer(sheet) {\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.element = void 0;\n this.sheet = void 0;\n this.hasInsertedRules = false;\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) sheets.add(sheet);\n this.sheet = sheet;\n\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n\n this.element = element || createStyle();\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n /**\n * Insert style element into render tree.\n */\n\n\n var _proto = DomRenderer.prototype;\n\n _proto.attach = function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n\n var deployed = Boolean(this.sheet && this.sheet.deployed);\n\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false;\n this.deploy();\n }\n }\n /**\n * Remove style element from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n var parentNode = this.element.parentNode;\n if (parentNode) parentNode.removeChild(this.element);\n }\n /**\n * Inject CSS string into element.\n */\n ;\n\n _proto.deploy = function deploy() {\n var sheet = this.sheet;\n if (!sheet) return;\n\n if (sheet.options.link) {\n this.insertRules(sheet.rules);\n return;\n }\n\n this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n }\n /**\n * Insert RuleList into an element.\n */\n ;\n\n _proto.insertRules = function insertRules(rules, nativeParent) {\n for (var i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent);\n }\n }\n /**\n * Insert a rule into element.\n */\n ;\n\n _proto.insertRule = function insertRule(rule, index, nativeParent) {\n if (nativeParent === void 0) {\n nativeParent = this.element.sheet;\n }\n\n if (rule.rules) {\n var parent = rule;\n var latestNativeParent = nativeParent;\n\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n // We need to render the container without children first.\n latestNativeParent = _insertRule(nativeParent, parent.toString({\n children: false\n }), index);\n\n if (latestNativeParent === false) {\n return false;\n }\n }\n\n this.insertRules(parent.rules, latestNativeParent);\n return latestNativeParent;\n } // IE keeps the CSSStyleSheet after style node has been reattached,\n // so we need to check if the `renderable` reference the right style sheet and not\n // rerender those rules.\n\n\n if (rule.renderable && rule.renderable.parentStyleSheet === this.element.sheet) {\n return rule.renderable;\n }\n\n var ruleStr = rule.toString();\n if (!ruleStr) return false;\n\n var nativeRule = _insertRule(nativeParent, ruleStr, index);\n\n if (nativeRule === false) {\n return false;\n }\n\n this.hasInsertedRules = true;\n rule.renderable = nativeRule;\n return nativeRule;\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.deleteRule = function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n return true;\n }\n /**\n * Get index of a CSS Rule.\n */\n ;\n\n _proto.indexOf = function indexOf(cssRule) {\n var cssRules = this.element.sheet.cssRules;\n\n for (var index = 0; index < cssRules.length; index++) {\n if (cssRule === cssRules[index]) return index;\n }\n\n return -1;\n }\n /**\n * Generate a new CSS rule and replace the existing one.\n *\n * Only used for some old browsers because they can't set a selector.\n */\n ;\n\n _proto.replaceRule = function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n this.element.sheet.deleteRule(index);\n return this.insertRule(rule, index);\n }\n /**\n * Get all rules elements.\n */\n ;\n\n _proto.getRules = function getRules() {\n return this.element.sheet.cssRules;\n };\n\n return DomRenderer;\n}();\n\nvar instanceCounter = 0;\n\nvar Jss =\n/*#__PURE__*/\nfunction () {\n function Jss(options) {\n this.id = instanceCounter++;\n this.version = \"10.4.0\";\n this.plugins = new PluginsRegistry();\n this.options = {\n id: {\n minify: false\n },\n createGenerateId: createGenerateId,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n };\n this.generateId = createGenerateId({\n minify: false\n });\n\n for (var i = 0; i < plugins.length; i++) {\n this.plugins.use(plugins[i], {\n queue: 'internal'\n });\n }\n\n this.setup(options);\n }\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n\n\n var _proto = Jss.prototype;\n\n _proto.setup = function setup(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId;\n }\n\n if (options.id) {\n this.options.id = _extends({}, this.options.id, options.id);\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id);\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer;\n } // eslint-disable-next-line prefer-spread\n\n\n if (options.plugins) this.use.apply(this, options.plugins);\n return this;\n }\n /**\n * Create a Style Sheet.\n */\n ;\n\n _proto.createStyleSheet = function createStyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n index = _options.index;\n\n if (typeof index !== 'number') {\n index = sheets.index === 0 ? 0 : sheets.index + 1;\n }\n\n var sheet = new StyleSheet(styles, _extends({}, options, {\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n return sheet;\n }\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n ;\n\n _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n sheet.detach();\n sheets.remove(sheet);\n return this;\n }\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n ;\n\n _proto.createRule = function createRule$1(name, style, options) {\n if (style === void 0) {\n style = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n // $FlowIgnore\n return this.createRule(undefined, name, style);\n } // $FlowIgnore\n\n\n var ruleOptions = _extends({}, options, {\n name: name,\n jss: this,\n Renderer: this.options.Renderer\n });\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n\n var rule = createRule(name, style, ruleOptions);\n\n if (rule) this.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n ;\n\n _proto.use = function use() {\n var _this = this;\n\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n plugins.forEach(function (plugin) {\n _this.plugins.use(plugin);\n });\n return this;\n };\n\n return Jss;\n}();\n\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n var to = null;\n\n for (var key in styles) {\n var value = styles[key];\n var type = typeof value;\n\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n\n return to;\n}\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n */\nvar SheetsManager =\n/*#__PURE__*/\nfunction () {\n function SheetsManager() {\n this.length = 0;\n this.sheets = new WeakMap();\n }\n\n var _proto = SheetsManager.prototype;\n\n _proto.get = function get(key) {\n var entry = this.sheets.get(key);\n return entry && entry.sheet;\n };\n\n _proto.add = function add(key, sheet) {\n if (this.sheets.has(key)) return;\n this.length++;\n this.sheets.set(key, {\n sheet: sheet,\n refs: 0\n });\n };\n\n _proto.manage = function manage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach();\n }\n\n entry.refs++;\n return entry.sheet;\n }\n\n warning(false, \"[JSS] SheetsManager: can't find sheet to manage\");\n return undefined;\n };\n\n _proto.unmanage = function unmanage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--;\n if (entry.refs === 0) entry.sheet.detach();\n }\n } else {\n warning(false, \"SheetsManager: can't find sheet to unmanage\");\n }\n };\n\n _createClass(SheetsManager, [{\n key: \"size\",\n get: function get() {\n return this.length;\n }\n }]);\n\n return SheetsManager;\n}();\n\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\n\n/**\n * Export a constant indicating if this browser has CSSTOM support.\n * https://developers.google.com/web/updates/2018/03/cssom\n */\nvar hasCSSTOMSupport = typeof CSS !== 'undefined' && CSS && 'number' in CSS;\n/**\n * Creates a new instance of Jss.\n */\n\nvar create = function create(options) {\n return new Jss(options);\n};\n/**\n * A global Jss instance.\n */\n\nvar index = create();\n\nexport default index;\nexport { RuleList, SheetsManager, SheetsRegistry, create, createGenerateId, createRule, getDynamicStyles, hasCSSTOMSupport, sheets, toCssValue };\n","import warning from 'tiny-warning';\nimport { createRule } from 'jss';\n\nvar now = Date.now();\nvar fnValuesNs = \"fnValues\" + now;\nvar fnRuleNs = \"fnStyle\" + ++now;\nfunction functionPlugin() {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (typeof decl !== 'function') return null;\n var rule = createRule(name, {}, options);\n rule[fnRuleNs] = decl;\n return rule;\n },\n onProcessStyle: function onProcessStyle(style, rule) {\n // We need to extract function values from the declaration, so that we can keep core unaware of them.\n // We need to do that only once.\n // We don't need to extract functions on each style update, since this can happen only once.\n // We don't support function values inside of function rules.\n if (fnValuesNs in rule || fnRuleNs in rule) return style;\n var fnValues = {};\n\n for (var prop in style) {\n var value = style[prop];\n if (typeof value !== 'function') continue;\n delete style[prop];\n fnValues[prop] = value;\n } // $FlowFixMe\n\n\n rule[fnValuesNs] = fnValues;\n return style;\n },\n onUpdate: function onUpdate(data, rule, sheet, options) {\n var styleRule = rule;\n var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object\n // will be returned from that function.\n\n if (fnRule) {\n // Empty object will remove all currently defined props\n // in case function rule returns a falsy value.\n styleRule.style = fnRule(data) || {};\n\n if (process.env.NODE_ENV === 'development') {\n for (var prop in styleRule.style) {\n if (typeof styleRule.style[prop] === 'function') {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Function values inside function rules are not supported.') : void 0;\n break;\n }\n }\n }\n }\n\n var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.\n\n if (fnValues) {\n for (var _prop in fnValues) {\n styleRule.prop(_prop, fnValues[_prop](data), options);\n }\n }\n }\n };\n}\n\nexport default functionPlugin;\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","import $$observable from 'symbol-observable';\nimport { createRule } from 'jss';\n\nvar isObservable = function isObservable(value) {\n return value && value[$$observable] && value === value[$$observable]();\n};\n\nfunction observablePlugin(updateOptions) {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (!isObservable(decl)) return null; // Cast `decl` to `Observable`, since it passed the type guard.\n\n var style$ = decl;\n var rule = createRule(name, {}, options); // TODO\n // Call `stream.subscribe()` returns a subscription, which should be explicitly\n // unsubscribed from when we know this sheet is no longer needed.\n\n style$.subscribe(function (style) {\n for (var prop in style) {\n rule.prop(prop, style[prop], updateOptions);\n }\n });\n return rule;\n },\n onProcessRule: function onProcessRule(rule) {\n if (rule && rule.type !== 'style') return;\n var styleRule = rule;\n var style = styleRule.style;\n\n var _loop = function _loop(prop) {\n var value = style[prop];\n if (!isObservable(value)) return \"continue\";\n delete style[prop];\n value.subscribe({\n next: function next(nextValue) {\n styleRule.prop(prop, nextValue, updateOptions);\n }\n });\n };\n\n for (var prop in style) {\n var _ret = _loop(prop);\n\n if (_ret === \"continue\") continue;\n }\n }\n };\n}\n\nexport default observablePlugin;\n","import warning from 'tiny-warning';\n\nvar semiWithNl = /;\\n/;\n/**\n * Naive CSS parser.\n * - Supports only rule body (no selectors)\n * - Requires semicolon and new line after the value (except of last line)\n * - No nested rules support\n */\n\nvar parse = (function (cssText) {\n var style = {};\n var split = cssText.split(semiWithNl);\n\n for (var i = 0; i < split.length; i++) {\n var decl = (split[i] || '').trim();\n if (!decl) continue;\n var colonIndex = decl.indexOf(':');\n\n if (colonIndex === -1) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Malformed CSS string \\\"\" + decl + \"\\\"\") : void 0;\n continue;\n }\n\n var prop = decl.substr(0, colonIndex).trim();\n var value = decl.substr(colonIndex + 1).trim();\n style[prop] = value;\n }\n\n return style;\n});\n\nvar onProcessRule = function onProcessRule(rule) {\n if (typeof rule.style === 'string') {\n // $FlowFixMe: We can safely assume that rule has the style property\n rule.style = parse(rule.style);\n }\n};\n\nfunction templatePlugin() {\n return {\n onProcessRule: onProcessRule\n };\n}\n\nexport default templatePlugin;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { RuleList } from 'jss';\n\nvar at = '@global';\nvar atPrefix = '@global ';\n\nvar GlobalContainerRule =\n/*#__PURE__*/\nfunction () {\n function GlobalContainerRule(key, styles, options) {\n this.type = 'global';\n this.at = at;\n this.rules = void 0;\n this.options = void 0;\n this.key = void 0;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var selector in styles) {\n this.rules.add(selector, styles[selector]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = GlobalContainerRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString() {\n return this.rules.toString();\n };\n\n return GlobalContainerRule;\n}();\n\nvar GlobalPrefixedRule =\n/*#__PURE__*/\nfunction () {\n function GlobalPrefixedRule(key, style, options) {\n this.type = 'global';\n this.at = at;\n this.options = void 0;\n this.rule = void 0;\n this.isProcessed = false;\n this.key = void 0;\n this.key = key;\n this.options = options;\n var selector = key.substr(atPrefix.length);\n this.rule = options.jss.createRule(selector, style, _extends({}, options, {\n parent: this\n }));\n }\n\n var _proto2 = GlobalPrefixedRule.prototype;\n\n _proto2.toString = function toString(options) {\n return this.rule ? this.rule.toString(options) : '';\n };\n\n return GlobalPrefixedRule;\n}();\n\nvar separatorRegExp = /\\s*,\\s*/g;\n\nfunction addScope(selector, scope) {\n var parts = selector.split(separatorRegExp);\n var scoped = '';\n\n for (var i = 0; i < parts.length; i++) {\n scoped += scope + \" \" + parts[i].trim();\n if (parts[i + 1]) scoped += ', ';\n }\n\n return scoped;\n}\n\nfunction handleNestedGlobalContainerRule(rule) {\n var options = rule.options,\n style = rule.style;\n var rules = style ? style[at] : null;\n if (!rules) return;\n\n for (var name in rules) {\n options.sheet.addRule(name, rules[name], _extends({}, options, {\n selector: addScope(name, rule.selector)\n }));\n }\n\n delete style[at];\n}\n\nfunction handlePrefixedGlobalRule(rule) {\n var options = rule.options,\n style = rule.style;\n\n for (var prop in style) {\n if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;\n var selector = addScope(prop.substr(at.length), rule.selector);\n options.sheet.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n delete style[prop];\n }\n}\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\n\nfunction jssGlobal() {\n function onCreateRule(name, styles, options) {\n if (!name) return null;\n\n if (name === at) {\n return new GlobalContainerRule(name, styles, options);\n }\n\n if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {\n return new GlobalPrefixedRule(name, styles, options);\n }\n\n var parent = options.parent;\n\n if (parent) {\n if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {\n options.scoped = false;\n }\n }\n\n if (options.scoped === false) {\n options.selector = name;\n }\n\n return null;\n }\n\n function onProcessRule(rule) {\n if (rule.type !== 'style') return;\n handleNestedGlobalContainerRule(rule);\n handlePrefixedGlobalRule(rule);\n }\n\n return {\n onCreateRule: onCreateRule,\n onProcessRule: onProcessRule\n };\n}\n\nexport default jssGlobal;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\n\nvar isObject = function isObject(obj) {\n return obj && typeof obj === 'object' && !Array.isArray(obj);\n};\n\nvar valueNs = \"extendCurrValue\" + Date.now();\n\nfunction mergeExtend(style, rule, sheet, newStyle) {\n var extendType = typeof style.extend; // Extend using a rule name.\n\n if (extendType === 'string') {\n if (!sheet) return;\n var refRule = sheet.getRule(style.extend);\n if (!refRule) return;\n\n if (refRule === rule) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] A rule tries to extend itself \\n\" + rule.toString()) : void 0;\n return;\n }\n\n var parent = refRule.options.parent;\n\n if (parent) {\n var originalStyle = parent.rules.raw[style.extend];\n extend(originalStyle, rule, sheet, newStyle);\n }\n\n return;\n } // Extend using an array.\n\n\n if (Array.isArray(style.extend)) {\n for (var index = 0; index < style.extend.length; index++) {\n var singleExtend = style.extend[index];\n var singleStyle = typeof singleExtend === 'string' ? _extends({}, style, {\n extend: singleExtend\n }) : style.extend[index];\n extend(singleStyle, rule, sheet, newStyle);\n }\n\n return;\n } // Extend is a style object.\n\n\n for (var prop in style.extend) {\n if (prop === 'extend') {\n extend(style.extend.extend, rule, sheet, newStyle);\n continue;\n }\n\n if (isObject(style.extend[prop])) {\n if (!(prop in newStyle)) newStyle[prop] = {};\n extend(style.extend[prop], rule, sheet, newStyle[prop]);\n continue;\n }\n\n newStyle[prop] = style.extend[prop];\n }\n}\n\nfunction mergeRest(style, rule, sheet, newStyle) {\n // Copy base style.\n for (var prop in style) {\n if (prop === 'extend') continue;\n\n if (isObject(newStyle[prop]) && isObject(style[prop])) {\n extend(style[prop], rule, sheet, newStyle[prop]);\n continue;\n }\n\n if (isObject(style[prop])) {\n newStyle[prop] = extend(style[prop], rule, sheet);\n continue;\n }\n\n newStyle[prop] = style[prop];\n }\n}\n/**\n * Recursively extend styles.\n */\n\n\nfunction extend(style, rule, sheet, newStyle) {\n if (newStyle === void 0) {\n newStyle = {};\n }\n\n mergeExtend(style, rule, sheet, newStyle);\n mergeRest(style, rule, sheet, newStyle);\n return newStyle;\n}\n/**\n * Handle `extend` property.\n *\n * @param {Rule} rule\n * @api public\n */\n\n\nfunction jssExtend() {\n function onProcessStyle(style, rule, sheet) {\n if ('extend' in style) return extend(style, rule, sheet);\n return style;\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop !== 'extend') return value; // Value is empty, remove properties set previously.\n\n if (value == null || value === false) {\n // $FlowFixMe: Flow complains because there is no indexer property in StyleRule\n for (var key in rule[valueNs]) {\n rule.prop(key, null);\n } // $FlowFixMe: Flow complains because there is no indexer property in StyleRule\n\n\n rule[valueNs] = null;\n return null;\n }\n\n if (typeof value === 'object') {\n // $FlowFixMe: This will be an object\n for (var _key in value) {\n // $FlowFixMe: This will be an object\n rule.prop(_key, value[_key]);\n } // $FlowFixMe: Flow complains because there is no indexer property in StyleRule\n\n\n rule[valueNs] = value;\n } // Make sure we don't set the value in the core.\n\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default jssExtend;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\n\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n\n if (rule) {\n rule = rule;\n return rule.selector;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : void 0;\n return key;\n };\n }\n\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n var result = '';\n\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n\n return result;\n }\n\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends({}, prevOptions, {\n index: prevOptions.index + 1\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n var options = _extends({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n\n });\n\n delete options.name;\n return options;\n }\n\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp, replaceRef);\n container.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options) // Flow expects more options but they aren't required\n // And flow doesn't know this will always be a StyleRule which has the addRule method\n // $FlowFixMe\n .addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n\n delete style[prop];\n }\n\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssNested;\n","import warning from 'tiny-warning';\n\n/**\n * Set selector.\n *\n * @param {Object} original rule\n * @param {String} className class string\n * @return {Boolean} flag, indicating function was successfull or not\n */\nfunction registerClass(rule, className) {\n // Skip falsy values\n if (!className) return true; // Support array of class names `{composes: ['foo', 'bar']}`\n\n if (Array.isArray(className)) {\n for (var index = 0; index < className.length; index++) {\n var isSetted = registerClass(rule, className[index]);\n if (!isSetted) return false;\n }\n\n return true;\n } // Support space separated class names `{composes: 'foo bar'}`\n\n\n if (className.indexOf(' ') > -1) {\n return registerClass(rule, className.split(' '));\n }\n\n var _ref = rule.options,\n parent = _ref.parent; // It is a ref to a local rule.\n\n if (className[0] === '$') {\n var refRule = parent.getRule(className.substr(1));\n\n if (!refRule) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced rule is not defined. \\n\" + rule.toString()) : void 0;\n return false;\n }\n\n if (refRule === rule) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Cyclic composition detected. \\n\" + rule.toString()) : void 0;\n return false;\n }\n\n parent.classes[rule.key] += \" \" + parent.classes[refRule.key];\n return true;\n }\n\n parent.classes[rule.key] += \" \" + className;\n return true;\n}\n/**\n * Convert compose property to additional class, remove property from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\n\nfunction jssCompose() {\n function onProcessStyle(style, rule) {\n if (!('composes' in style)) return style;\n registerClass(rule, style.composes); // Remove composes property to prevent infinite loop.\n\n delete style.composes;\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssCompose;\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","import hyphenate from 'hyphenate-style-name';\n\n/**\n * Convert camel cased property names to dash separated.\n *\n * @param {Object} style\n * @return {Object}\n */\n\nfunction convertCase(style) {\n var converted = {};\n\n for (var prop in style) {\n var key = prop.indexOf('--') === 0 ? prop : hyphenate(prop);\n converted[key] = style[prop];\n }\n\n if (style.fallbacks) {\n if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n }\n\n return converted;\n}\n/**\n * Allow camel cased property names by converting them back to dasherized.\n *\n * @param {Rule} rule\n */\n\n\nfunction camelCase() {\n function onProcessStyle(style) {\n if (Array.isArray(style)) {\n // Handle rules like @font-face, which can have multiple styles in an array\n for (var index = 0; index < style.length; index++) {\n style[index] = convertCase(style[index]);\n }\n\n return style;\n }\n\n return convertCase(style);\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop.indexOf('--') === 0) {\n return value;\n }\n\n var hyphenatedProp = hyphenate(prop); // There was no camel case in place\n\n if (prop === hyphenatedProp) return value;\n rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default camelCase;\n","import { hasCSSTOMSupport } from 'jss';\n\nvar px = hasCSSTOMSupport && CSS ? CSS.px : 'px';\nvar ms = hasCSSTOMSupport && CSS ? CSS.ms : 'ms';\nvar percent = hasCSSTOMSupport && CSS ? CSS.percent : '%';\n/**\n * Generated jss-plugin-default-unit CSS property units\n *\n * @type object\n */\n\nvar defaultUnits = {\n // Animation properties\n 'animation-delay': ms,\n 'animation-duration': ms,\n // Background properties\n 'background-position': px,\n 'background-position-x': px,\n 'background-position-y': px,\n 'background-size': px,\n // Border Properties\n border: px,\n 'border-bottom': px,\n 'border-bottom-left-radius': px,\n 'border-bottom-right-radius': px,\n 'border-bottom-width': px,\n 'border-left': px,\n 'border-left-width': px,\n 'border-radius': px,\n 'border-right': px,\n 'border-right-width': px,\n 'border-top': px,\n 'border-top-left-radius': px,\n 'border-top-right-radius': px,\n 'border-top-width': px,\n 'border-width': px,\n // Margin properties\n margin: px,\n 'margin-bottom': px,\n 'margin-left': px,\n 'margin-right': px,\n 'margin-top': px,\n // Padding properties\n padding: px,\n 'padding-bottom': px,\n 'padding-left': px,\n 'padding-right': px,\n 'padding-top': px,\n // Mask properties\n 'mask-position-x': px,\n 'mask-position-y': px,\n 'mask-size': px,\n // Width and height properties\n height: px,\n width: px,\n 'min-height': px,\n 'max-height': px,\n 'min-width': px,\n 'max-width': px,\n // Position properties\n bottom: px,\n left: px,\n top: px,\n right: px,\n // Shadow properties\n 'box-shadow': px,\n 'text-shadow': px,\n // Column properties\n 'column-gap': px,\n 'column-rule': px,\n 'column-rule-width': px,\n 'column-width': px,\n // Font and text properties\n 'font-size': px,\n 'font-size-delta': px,\n 'letter-spacing': px,\n 'text-indent': px,\n 'text-stroke': px,\n 'text-stroke-width': px,\n 'word-spacing': px,\n // Motion properties\n motion: px,\n 'motion-offset': px,\n // Outline properties\n outline: px,\n 'outline-offset': px,\n 'outline-width': px,\n // Perspective properties\n perspective: px,\n 'perspective-origin-x': percent,\n 'perspective-origin-y': percent,\n // Transform properties\n 'transform-origin': percent,\n 'transform-origin-x': percent,\n 'transform-origin-y': percent,\n 'transform-origin-z': percent,\n // Transition properties\n 'transition-delay': ms,\n 'transition-duration': ms,\n // Alignment properties\n 'vertical-align': px,\n 'flex-basis': px,\n // Some random properties\n 'shape-margin': px,\n size: px,\n // Grid properties\n grid: px,\n 'grid-gap': px,\n 'grid-row-gap': px,\n 'grid-column-gap': px,\n 'grid-template-rows': px,\n 'grid-template-columns': px,\n 'grid-auto-rows': px,\n 'grid-auto-columns': px,\n // Not existing properties.\n // Used to avoid issues with jss-plugin-expand integration.\n 'box-shadow-x': px,\n 'box-shadow-y': px,\n 'box-shadow-blur': px,\n 'box-shadow-spread': px,\n 'font-line-height': px,\n 'text-shadow-x': px,\n 'text-shadow-y': px,\n 'text-shadow-blur': px\n};\n\n/**\n * Clones the object and adds a camel cased property version.\n */\nfunction addCamelCasedVersion(obj) {\n var regExp = /(-[a-z])/g;\n\n var replace = function replace(str) {\n return str[1].toUpperCase();\n };\n\n var newObj = {};\n\n for (var _key in obj) {\n newObj[_key] = obj[_key];\n newObj[_key.replace(regExp, replace)] = obj[_key];\n }\n\n return newObj;\n}\n\nvar units = addCamelCasedVersion(defaultUnits);\n/**\n * Recursive deep style passing function\n */\n\nfunction iterate(prop, value, options) {\n if (!value) return value;\n\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i] = iterate(prop, value[i], options);\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n for (var innerProp in value) {\n value[innerProp] = iterate(innerProp, value[innerProp], options);\n }\n } else {\n for (var _innerProp in value) {\n value[_innerProp] = iterate(prop + \"-\" + _innerProp, value[_innerProp], options);\n }\n }\n } else if (typeof value === 'number') {\n var unit = options[prop] || units[prop];\n\n if (unit) {\n return typeof unit === 'function' ? unit(value).toString() : \"\" + value + unit;\n }\n\n return value.toString();\n }\n\n return value;\n}\n/**\n * Add unit to numeric values.\n */\n\n\nfunction defaultUnit(options) {\n if (options === void 0) {\n options = {};\n }\n\n var camelCasedOptions = addCamelCasedVersion(options);\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n\n for (var prop in style) {\n style[prop] = iterate(prop, style[prop], camelCasedOptions);\n }\n\n return style;\n }\n\n function onChangeValue(value, prop) {\n return iterate(prop, value, camelCasedOptions);\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default defaultUnit;\n","/**\n * A scheme for converting properties from array to regular style.\n * All properties listed below will be transformed to a string separated by space.\n */\nvar propArray = {\n 'background-size': true,\n 'background-position': true,\n border: true,\n 'border-bottom': true,\n 'border-left': true,\n 'border-top': true,\n 'border-right': true,\n 'border-radius': true,\n 'border-image': true,\n 'border-width': true,\n 'border-style': true,\n 'border-color': true,\n 'box-shadow': true,\n flex: true,\n margin: true,\n padding: true,\n outline: true,\n 'transform-origin': true,\n transform: true,\n transition: true\n /**\n * A scheme for converting arrays to regular styles inside of objects.\n * For e.g.: \"{position: [0, 0]}\" => \"background-position: 0 0;\".\n */\n\n};\nvar propArrayInObj = {\n position: true,\n // background-position\n size: true // background-size\n\n /**\n * A scheme for parsing and building correct styles from passed objects.\n */\n\n};\nvar propObj = {\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n margin: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n background: {\n attachment: null,\n color: null,\n image: null,\n position: null,\n repeat: null\n },\n border: {\n width: null,\n style: null,\n color: null\n },\n 'border-top': {\n width: null,\n style: null,\n color: null\n },\n 'border-right': {\n width: null,\n style: null,\n color: null\n },\n 'border-bottom': {\n width: null,\n style: null,\n color: null\n },\n 'border-left': {\n width: null,\n style: null,\n color: null\n },\n outline: {\n width: null,\n style: null,\n color: null\n },\n 'list-style': {\n type: null,\n position: null,\n image: null\n },\n transition: {\n property: null,\n duration: null,\n 'timing-function': null,\n timingFunction: null,\n // Needed for avoiding comilation issues with jss-plugin-camel-case\n delay: null\n },\n animation: {\n name: null,\n duration: null,\n 'timing-function': null,\n timingFunction: null,\n // Needed to avoid compilation issues with jss-plugin-camel-case\n delay: null,\n 'iteration-count': null,\n iterationCount: null,\n // Needed to avoid compilation issues with jss-plugin-camel-case\n direction: null,\n 'fill-mode': null,\n fillMode: null,\n // Needed to avoid compilation issues with jss-plugin-camel-case\n 'play-state': null,\n playState: null // Needed to avoid compilation issues with jss-plugin-camel-case\n\n },\n 'box-shadow': {\n x: 0,\n y: 0,\n blur: 0,\n spread: 0,\n color: null,\n inset: null\n },\n 'text-shadow': {\n x: 0,\n y: 0,\n blur: null,\n color: null\n }\n /**\n * A scheme for converting non-standart properties inside object.\n * For e.g.: include 'border-radius' property inside 'border' object.\n */\n\n};\nvar customPropObj = {\n border: {\n radius: 'border-radius',\n image: 'border-image',\n width: 'border-width',\n style: 'border-style',\n color: 'border-color'\n },\n 'border-bottom': {\n width: 'border-bottom-width',\n style: 'border-bottom-style',\n color: 'border-bottom-color'\n },\n 'border-top': {\n width: 'border-top-width',\n style: 'border-top-style',\n color: 'border-top-color'\n },\n 'border-left': {\n width: 'border-left-width',\n style: 'border-left-style',\n color: 'border-left-color'\n },\n 'border-right': {\n width: 'border-right-width',\n style: 'border-right-style',\n color: 'border-right-color'\n },\n background: {\n size: 'background-size',\n image: 'background-image'\n },\n font: {\n style: 'font-style',\n variant: 'font-variant',\n weight: 'font-weight',\n stretch: 'font-stretch',\n size: 'font-size',\n family: 'font-family',\n lineHeight: 'line-height',\n // Needed to avoid compilation issues with jss-plugin-camel-case\n 'line-height': 'line-height'\n },\n flex: {\n grow: 'flex-grow',\n basis: 'flex-basis',\n direction: 'flex-direction',\n wrap: 'flex-wrap',\n flow: 'flex-flow',\n shrink: 'flex-shrink'\n },\n align: {\n self: 'align-self',\n items: 'align-items',\n content: 'align-content'\n },\n grid: {\n 'template-columns': 'grid-template-columns',\n templateColumns: 'grid-template-columns',\n 'template-rows': 'grid-template-rows',\n templateRows: 'grid-template-rows',\n 'template-areas': 'grid-template-areas',\n templateAreas: 'grid-template-areas',\n template: 'grid-template',\n 'auto-columns': 'grid-auto-columns',\n autoColumns: 'grid-auto-columns',\n 'auto-rows': 'grid-auto-rows',\n autoRows: 'grid-auto-rows',\n 'auto-flow': 'grid-auto-flow',\n autoFlow: 'grid-auto-flow',\n row: 'grid-row',\n column: 'grid-column',\n 'row-start': 'grid-row-start',\n rowStart: 'grid-row-start',\n 'row-end': 'grid-row-end',\n rowEnd: 'grid-row-end',\n 'column-start': 'grid-column-start',\n columnStart: 'grid-column-start',\n 'column-end': 'grid-column-end',\n columnEnd: 'grid-column-end',\n area: 'grid-area',\n gap: 'grid-gap',\n 'row-gap': 'grid-row-gap',\n rowGap: 'grid-row-gap',\n 'column-gap': 'grid-column-gap',\n columnGap: 'grid-column-gap'\n }\n};\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Map values by given prop.\n *\n * @param {Array} array of values\n * @param {String} original property\n * @param {String} original rule\n * @return {String} mapped values\n */\nfunction mapValuesByProp(value, prop, rule) {\n return value.map(function (item) {\n return objectToArray(item, prop, rule, false, true);\n });\n}\n/**\n * Convert array to nested array, if needed\n */\n\n\nfunction processArray(value, prop, scheme, rule) {\n if (scheme[prop] == null) return value;\n if (value.length === 0) return [];\n if (Array.isArray(value[0])) return processArray(value[0], prop, scheme, rule);\n\n if (typeof value[0] === 'object') {\n return mapValuesByProp(value, prop, rule);\n }\n\n return [value];\n}\n/**\n * Convert object to array.\n */\n\n\nfunction objectToArray(value, prop, rule, isFallback, isInArray) {\n if (!(propObj[prop] || customPropObj[prop])) return [];\n var result = []; // Check if exists any non-standard property\n\n if (customPropObj[prop]) {\n // eslint-disable-next-line no-param-reassign\n value = customPropsToStyle(value, rule, customPropObj[prop], isFallback);\n } // Pass throught all standart props\n\n\n if (Object.keys(value).length) {\n for (var baseProp in propObj[prop]) {\n if (value[baseProp]) {\n if (Array.isArray(value[baseProp])) {\n result.push(propArrayInObj[baseProp] === null ? value[baseProp] : value[baseProp].join(' '));\n } else result.push(value[baseProp]);\n\n continue;\n } // Add default value from props config.\n\n\n if (propObj[prop][baseProp] != null) {\n result.push(propObj[prop][baseProp]);\n }\n }\n }\n\n if (!result.length || isInArray) return result;\n return [result];\n}\n/**\n * Convert custom properties values to styles adding them to rule directly\n */\n\n\nfunction customPropsToStyle(value, rule, customProps, isFallback) {\n for (var prop in customProps) {\n var propName = customProps[prop]; // If current property doesn't exist already in rule - add new one\n\n if (typeof value[prop] !== 'undefined' && (isFallback || !rule.prop(propName))) {\n var _styleDetector;\n\n var appendedValue = styleDetector((_styleDetector = {}, _styleDetector[propName] = value[prop], _styleDetector), rule)[propName]; // Add style directly in rule\n\n if (isFallback) rule.style.fallbacks[propName] = appendedValue;else rule.style[propName] = appendedValue;\n } // Delete converted property to avoid double converting\n\n\n delete value[prop];\n }\n\n return value;\n}\n/**\n * Detect if a style needs to be converted.\n */\n\n\nfunction styleDetector(style, rule, isFallback) {\n for (var prop in style) {\n var value = style[prop];\n\n if (Array.isArray(value)) {\n // Check double arrays to avoid recursion.\n if (!Array.isArray(value[0])) {\n if (prop === 'fallbacks') {\n for (var index = 0; index < style.fallbacks.length; index++) {\n style.fallbacks[index] = styleDetector(style.fallbacks[index], rule, true);\n }\n\n continue;\n }\n\n style[prop] = processArray(value, prop, propArray, rule); // Avoid creating properties with empty values\n\n if (!style[prop].length) delete style[prop];\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n style.fallbacks = styleDetector(style.fallbacks, rule, true);\n continue;\n }\n\n style[prop] = objectToArray(value, prop, rule, isFallback); // Avoid creating properties with empty values\n\n if (!style[prop].length) delete style[prop];\n } // Maybe a computed value resulting in an empty string\n else if (style[prop] === '') delete style[prop];\n }\n\n return style;\n}\n/**\n * Adds possibility to write expanded styles.\n */\n\n\nfunction jssExpand() {\n function onProcessStyle(style, rule) {\n if (!style || rule.type !== 'style') return style;\n\n if (Array.isArray(style)) {\n // Pass rules one by one and reformat them\n for (var index = 0; index < style.length; index++) {\n style[index] = styleDetector(style[index], rule);\n }\n\n return style;\n }\n\n return styleDetector(style, rule);\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssExpand;\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import isInBrowser from 'is-in-browser';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\n\n// Export javascript style and css style vendor prefixes.\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (isInBrowser) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n\n var _document$createEleme = document.createElement('p'),\n style = _document$createEleme.style;\n\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n } // Correctly detect the Edge browser.\n\n\n if (js === 'Webkit' && 'msHyphens' in style) {\n js = 'ms';\n css = jsCssMap.ms;\n browser = 'edge';\n } // Correctly detect the Safari browser.\n\n\n if (js === 'Webkit' && '-apple-trailing-word' in style) {\n vendor = 'apple';\n }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\n\nvar prefix = {\n js: js,\n css: css,\n vendor: vendor,\n browser: browser,\n isTouch: isTouch\n};\n\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n // https://caniuse.com/#search=keyframes\n\n if (prefix.js === 'ms') return key;\n return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n}\n\n// https://caniuse.com/#search=appearance\n\nvar appearence = {\n noPrefill: ['appearance'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'appearance') return false;\n if (prefix.js === 'ms') return \"-webkit-\" + prop;\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n noPrefill: ['color-adjust'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'color-adjust') return false;\n if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n return prop;\n }\n};\n\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n}\n\n// but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\nvar mask = {\n noPrefill: ['mask'],\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^mask/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var longhand = 'mask-image';\n\n if (camelize(longhand) in style) {\n return prop;\n }\n\n if (prefix.js + pascalize(longhand) in style) {\n return prefix.css + prop;\n }\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n noPrefill: ['text-orientation'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'text-orientation') return false;\n\n if (prefix.vendor === 'apple' && !prefix.isTouch) {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=transform\n\nvar transform = {\n noPrefill: ['transform'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transform') return false;\n\n if (options.transform) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=transition\n\nvar transition = {\n noPrefill: ['transition'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transition') return false;\n\n if (options.transition) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n noPrefill: ['writing-mode'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'writing-mode') return false;\n\n if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=user-select\n\nvar userSelect = {\n noPrefill: ['user-select'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'user-select') return false;\n\n if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^break-/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var jsProp = \"WebkitColumn\" + pascalize(prop);\n return jsProp in style ? prefix.css + \"column-\" + prop : false;\n }\n\n if (prefix.js === 'Moz') {\n var _jsProp = \"page\" + pascalize(prop);\n\n return _jsProp in style ? \"page-\" + prop : false;\n }\n\n return false;\n }\n};\n\n// See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n if (prefix.js === 'Moz') return prop;\n var newProp = prop.replace('-inline', '');\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\n// Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n return camelize(prop) in style ? prop : false;\n }\n};\n\nvar prefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n if (prop[0] === '-' && prop[1] === '-') return prop;\n if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n return false;\n }\n};\n\n// https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n supportedProperty: function supportedProperty(prop) {\n if (prop.substring(0, 11) !== 'scroll-snap') return false;\n\n if (prefix.js === 'ms') {\n return \"\" + prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'overscroll-behavior') return false;\n\n if (prefix.js === 'ms') {\n return prefix.css + \"scroll-chaining\";\n }\n\n return prop;\n }\n};\n\nvar propMap = {\n 'flex-grow': 'flex-positive',\n 'flex-shrink': 'flex-negative',\n 'flex-basis': 'flex-preferred-size',\n 'justify-content': 'flex-pack',\n order: 'flex-order',\n 'align-items': 'flex-align',\n 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n supportedProperty: function supportedProperty(prop, style) {\n var newProp = propMap[prop];\n if (!newProp) return false;\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\nvar propMap$1 = {\n flex: 'box-flex',\n 'flex-grow': 'box-flex',\n 'flex-direction': ['box-orient', 'box-direction'],\n order: 'box-ordinal-group',\n 'align-items': 'box-align',\n 'flex-flow': ['box-orient', 'box-direction'],\n 'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\n\nvar prefixCss = function prefixCss(p) {\n return prefix.css + p;\n}; // Support old flex spec from 2009.\n\n\nvar flex2009 = {\n supportedProperty: function supportedProperty(prop, style, _ref) {\n var multiple = _ref.multiple;\n\n if (propKeys.indexOf(prop) > -1) {\n var newProp = propMap$1[prop];\n\n if (!Array.isArray(newProp)) {\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n\n if (!multiple) return false;\n\n for (var i = 0; i < newProp.length; i++) {\n if (!(prefix.js + pascalize(newProp[0]) in style)) {\n return false;\n }\n }\n\n return newProp.map(prefixCss);\n }\n\n return false;\n }\n};\n\n// plugins = [\n// ...plugins,\n// breakPropsOld,\n// inlineLogicalOld,\n// unprefixed,\n// prefixed,\n// scrollSnap,\n// flex2012,\n// flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins.filter(function (p) {\n return p.supportedProperty;\n}).map(function (p) {\n return p.supportedProperty;\n});\nvar noPrefill = plugins.filter(function (p) {\n return p.noPrefill;\n}).reduce(function (a, p) {\n a.push.apply(a, _toConsumableArray(p.noPrefill));\n return a;\n}, []);\n\nvar el;\nvar cache = {};\n\nif (isInBrowser) {\n el = document.createElement('p'); // We test every property on vendor prefix requirement.\n // Once tested, result is cached. It gives us up to 70% perf boost.\n // http://jsperf.com/element-style-object-access-vs-plain-object\n //\n // Prefill cache with known css properties to reduce amount of\n // properties we need to feature test at runtime.\n // http://davidwalsh.name/vendor-prefix\n\n var computed = window.getComputedStyle(document.documentElement, '');\n\n for (var key$1 in computed) {\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];\n } // Properties that cannot be correctly detected using the\n // cache prefill method.\n\n\n noPrefill.forEach(function (x) {\n return delete cache[x];\n });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\n\nfunction supportedProperty(prop, options) {\n if (options === void 0) {\n options = {};\n }\n\n // For server-side rendering.\n if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {\n return cache[prop];\n } // Check if 'transition' or 'transform' natively supported in browser.\n\n\n if (prop === 'transition' || prop === 'transform') {\n options[prop] = prop in el.style;\n } // Find a plugin for current prefix property.\n\n\n for (var i = 0; i < propertyDetectors.length; i++) {\n cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n if (cache[prop]) break;\n } // Reset styles for current property.\n // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n\n try {\n el.style[prop] = '';\n } catch (err) {\n return false;\n }\n\n return cache[prop];\n}\n\nvar cache$1 = {};\nvar transitionProperties = {\n transition: 1,\n 'transition-property': 1,\n '-webkit-transition': 1,\n '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n if (p1 === 'var') return 'var';\n if (p1 === 'all') return 'all';\n if (p2 === 'all') return ', all';\n var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n if (!prefixedValue) return p1 || p2;\n return prefixedValue;\n}\n\nif (isInBrowser) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n // For server-side rendering.\n var prefixedValue = value;\n if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n // eslint-disable-next-line no-restricted-globals\n\n if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n return prefixedValue;\n } // Create cache key for current value.\n\n\n var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {\n return cache$1[cacheKey];\n } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n\n try {\n // Test value as it is.\n el$1.style[property] = prefixedValue;\n } catch (err) {\n // Return false if value not supported.\n cache$1[cacheKey] = false;\n return false;\n } // If 'transition' or 'transition-property' property.\n\n\n if (transitionProperties[property]) {\n prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n } else if (el$1.style[property] === '') {\n // Value with a vendor prefix.\n prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n if (el$1.style[property] === '') {\n cache$1[cacheKey] = false;\n return false;\n }\n } // Reset styles for current property.\n\n\n el$1.style[property] = ''; // Write current value to cache.\n\n cache$1[cacheKey] = prefixedValue;\n return cache$1[cacheKey];\n}\n\nexport { prefix, supportedKeyframes, supportedProperty, supportedValue };\n","import { supportedKeyframes, supportedValue, supportedProperty } from 'css-vendor';\nimport { toCssValue } from 'jss';\n\n/**\n * Add vendor prefix to a property name when needed.\n *\n * @api public\n */\n\nfunction jssVendorPrefixer() {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n var atRule = rule;\n atRule.at = supportedKeyframes(atRule.at);\n }\n }\n\n function prefixStyle(style) {\n for (var prop in style) {\n var value = style[prop];\n\n if (prop === 'fallbacks' && Array.isArray(value)) {\n style[prop] = value.map(prefixStyle);\n continue;\n }\n\n var changeProp = false;\n var supportedProp = supportedProperty(prop);\n if (supportedProp && supportedProp !== prop) changeProp = true;\n var changeValue = false;\n var supportedValue$1 = supportedValue(supportedProp, toCssValue(value));\n if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;\n\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop];\n style[supportedProp || prop] = supportedValue$1 || value;\n }\n }\n\n return style;\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n return prefixStyle(style);\n }\n\n function onChangeValue(value, prop) {\n return supportedValue(prop, toCssValue(value)) || value;\n }\n\n return {\n onProcessRule: onProcessRule,\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default jssVendorPrefixer;\n","/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n var sort = function sort(prop0, prop1) {\n if (prop0.length === prop1.length) {\n return prop0 > prop1 ? 1 : -1;\n }\n\n return prop0.length - prop1.length;\n };\n\n return {\n onProcessStyle: function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n var newStyle = {};\n var props = Object.keys(style).sort(sort);\n\n for (var i = 0; i < props.length; i++) {\n newStyle[props[i]] = style[props[i]];\n }\n\n return newStyle;\n }\n };\n}\n\nexport default jssPropsSort;\n","import functions from 'jss-plugin-rule-value-function';\nimport observable from 'jss-plugin-rule-value-observable';\nimport template from 'jss-plugin-template';\nimport global from 'jss-plugin-global';\nimport extend from 'jss-plugin-extend';\nimport nested from 'jss-plugin-nested';\nimport compose from 'jss-plugin-compose';\nimport camelCase from 'jss-plugin-camel-case';\nimport defaultUnit from 'jss-plugin-default-unit';\nimport expand from 'jss-plugin-expand';\nimport vendorPrefixer from 'jss-plugin-vendor-prefixer';\nimport propsSort from 'jss-plugin-props-sort';\n\nvar index = (function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n plugins: [functions(), observable(options.observable), template(), global(), extend(), nested(), compose(), camelCase(), defaultUnit(options.defaultUnit), expand(), vendorPrefixer(), propsSort()]\n };\n});\n\nexport default index;\n","import jss from 'jss';\r\nimport preset from 'jss-preset-default';\r\nimport jssPluginSyntaxNested from 'jss-plugin-nested';\r\nimport jssPluginSyntaxGlobal from 'jss-plugin-global';\r\n\r\njss.setup(preset());\r\njss.use([\r\n\tjssPluginSyntaxNested(),\r\n\tjssPluginSyntaxGlobal()\r\n]);\r\n\r\nexport default jss;\r\n","/* eslint-disable no-magic-numbers */\r\n/**\r\n* A Color attributes transformation function\r\n* Adding a transparency to the input\r\n* @param {string} color - a rgb color value OR a 3-digit 6-digit HEX\r\n* @param {number} opacity - the amount of transparency 1=100%\r\n* @see https://gist.github.com/danieliser/b4b24c9f772066bcf0a6\r\n* @example\r\n* // returns 'rbga(222, 45, 23, .5)'\r\n* transparentize('rgb(222, 45, 23)')\r\n* transparentize('#efefef')\r\n* returns {string} - RGBA color value\r\n* */\r\nexport function transparentize(color = '', opacity = 1) {\r\n\tlet output;\r\n\r\n\tif (color.startsWith('rgb')) {\r\n\t\toutput = color.substring(4, color.length - 1);\r\n\t\treturn `rgba(${output}, ${opacity})`;\r\n\t}\r\n\r\n\tlet hex = color.replace('#', '');\r\n\r\n\tif (hex.length === 3) {\r\n\t\thex = `${hex[0]}${hex[0]}${hex[1]}${hex[1]}${hex[2]}${hex[2]}`;\r\n\t}\r\n\r\n\tconst r = parseInt(hex.substring(0, 2), 16);\r\n\tconst g = parseInt(hex.substring(2, 4), 16);\r\n\tconst b = parseInt(hex.substring(4, 6), 16);\r\n\r\n\treturn `rgba(${r},${g},${b},${opacity / 100})`;\r\n}\r\n\r\n/**\r\n* A simple color transformation function\r\n* @param {string} color - A hex color value\r\n* @param {number} amount - the percentage, represented by a number\r\n* @param {string} direction - 'lighten' | 'darken';\r\n* @returns {string} - a hex color value\r\n* @example\r\n* // returns #bb5f5f\r\n* adjust('FF933737', 40, 'lighten');\r\n* // returns #cb0028\r\n* adjust('#f31750', 40, 'darken');\r\n* @returns {string} - a hex color value\r\n* */\r\nexport function adjust(color, amount, direction = 'lighten') {\r\n\tconst _amount = direction === 'lighten' ? 1 : -1;\r\n\tconst result = color.\r\n\t\treplace(/^#/, '').\r\n\t\treplace(/^00/, '').\r\n\t\treplace(/^FF/, '').\r\n\t\treplace(/../g, color =>\r\n\t\t\t(\r\n\t\t\t\t'0' +\r\n\t\t\tMath.min(\r\n\t\t\t\t255,\r\n\t\t\t\tMath.max(0, parseInt(color, 16) + (amount * _amount))\r\n\t\t\t).toString(16)\r\n\t\t\t).substr(-2)\r\n\t\t);\r\n\r\n\t// Too much Light Case\r\n\tif (/f|e{3,6}/i.test(result)) {\r\n\t\treturn adjust(color, (amount - 10), direction);\r\n\t}\r\n\r\n\treturn `#${result}`;\r\n}\r\n","/**\r\n * @see https://github.com/PimpTrizkit/PJs/wiki/12.-Shade,-Blend-and-Convert-a-Web-Color-(pSBC.js)#stackoverflow-archive-begin\r\n * @author https://github.com/PimpTrizkit\r\n */\r\n// Version 4.1\r\nexport const pSBC = (p, c0, c1, l) => {\r\n\tlet r, g, b, P, f, t, h, m = Math.round, a = typeof (c1) === 'string';\r\n\r\n\tif (typeof (p) !== 'number' || p < -1 || p > 1 || typeof (c0) !== 'string' || (c0[0] != 'r' && c0[0] != '#') || (c1 && !a)) return null;\r\n\th = c0.length > 9, h = a ? c1.length > 9 ? true : c1 == 'c' ? !h : false : h, f = pSBC.pSBCr(c0), P = p < 0, t = c1 && c1 != 'c' ? pSBC.pSBCr(c1) : P ? {\r\n\t\tr: 0,\r\n\t\tg: 0,\r\n\t\tb: 0,\r\n\t\ta: -1\r\n\t} : { r: 255, g: 255, b: 255, a: -1 }, p = P ? p * -1 : p, P = 1 - p;\r\n\tif (!f || !t) return null;\r\n\tif (l) r = m(P * f.r + p * t.r), g = m(P * f.g + p * t.g), b = m(P * f.b + p * t.b);\r\n\telse r = m((P * f.r ** 2 + p * t.r ** 2) ** 0.5), g = m((P * f.g ** 2 + p * t.g ** 2) ** 0.5), b = m((P * f.b ** 2 + p * t.b ** 2) ** 0.5);\r\n\ta = f.a, t = t.a, f = a >= 0 || t >= 0, a = f ? a < 0 ? t : t < 0 ? a : a * P + t * p : 0;\r\n\tif (h) return 'rgb' + (f ? 'a(' : '(') + r + ',' + g + ',' + b + (f ? ',' + m(a * 1000) / 1000 : '') + ')';\r\n\telse return '#' + (4294967296 + r * 16777216 + g * 65536 + b * 256 + (f ? m(a * 255) : 0)).toString(16).slice(1, f ? undefined : -2);\r\n};\r\n\r\npSBC.pSBCr = (d) => {\r\n\tconst i = parseInt;\r\n\tlet n = d.length, x = {};\r\n\r\n\tif (n > 9) {\r\n\t\tconst [r, g, b, a] = (d = d.split(','));\r\n\t\tn = d.length;\r\n\t\tif (n < 3 || n > 4) return null;\r\n\t\tx.r = i(r[3] == 'a' ? r.slice(5) : r.slice(4)), x.g = i(g), x.b = i(b), x.a = a ? parseFloat(a) : -1;\r\n\t} else {\r\n\t\tif (n == 8 || n == 6 || n < 4) return null;\r\n\t\tif (n < 6) d = '#' + d[1] + d[1] + d[2] + d[2] + d[3] + d[3] + (n > 4 ? d[4] + d[4] : '');\r\n\t\td = i(d.slice(1), 16);\r\n\t\tif (n == 9 || n == 5) x.r = d >> 24 & 255, x.g = d >> 16 & 255, x.b = d >> 8 & 255, x.a = Math.round((d & 255) / 0.255) / 1000;\r\n\t\telse x.r = d >> 16, x.g = d >> 8 & 255, x.b = d & 255, x.a = -1;\r\n\t}\r\n\r\n\treturn x;\r\n};\r\n","/* eslint-disable no-magic-numbers */\r\nimport { DEFAULT_THEME } from '../defs/defaults';\r\n\r\nimport { adjust, transparentize } from './color-helpers';\r\nimport { pSBC } from './third-party/psbc';\r\n\r\nconst variables = () => {\r\n\tconst {\r\n\t\ttheme: {\r\n\t\t\tprimaryColor,\r\n\t\t\tsecondaryColor,\r\n\t\t\ttertiaryColor,\r\n\t\t\tsupportColorOne,\r\n\t\t\tsupportColorTwo,\r\n\t\t\tsupportColorThree,\r\n\t\t\tbuttonPrimaryNormal,\r\n\t\t\tbuttonSecondaryNormal,\r\n\t\t\tbuttonTertiaryNormal,\r\n\t\t\tbuttonPrimaryHover,\r\n\t\t\tbuttonSecondaryHover,\r\n\t\t\tbuttonTertiaryHover,\r\n\t\t\tbuttonPrimaryFocus,\r\n\t\t\tbuttonSecondaryFocus,\r\n\t\t\tbuttonTertiaryFocus,\r\n\t\t\tbuttonPrimaryBorder,\r\n\t\t\tbuttonSecondaryBorder,\r\n\t\t\tbuttonTertiaryBorder,\r\n\t\t\tinputBorderColor,\r\n\t\t\teditorInputBorderColor,\r\n\t\t\teditorSendButtonFillColor,\r\n\t\t\teditorSendButtonStrokeColor,\r\n\t\t\talertSuccessColor,\r\n\t\t\talertErrorColor,\r\n\t\t\ttypography: {\r\n\t\t\t\tfontColor,\r\n\t\t\t\tfontSize,\r\n\t\t\t\tfontFace,\r\n\t\t\t\tlineHeight,\r\n\t\t\t\theaderTextColor,\r\n\t\t\t\theaderTextSize,\r\n\t\t\t\theadingsTextColor,\r\n\t\t\t\theadingsFontSize,\r\n\t\t\t\theadingsTextTransform,\r\n\t\t\t\teditorTextColor,\r\n\t\t\t\ttextTransform,\r\n\t\t\t\tbuttonPrimaryTextColor,\r\n\t\t\t\tbuttonSecondaryTextColor,\r\n\t\t\t\tbuttonTertiaryTextColor,\r\n\t\t\t\tchatBubbleMetaTextSize,\r\n\t\t\t\tbuttonPrimaryTextSize,\r\n\t\t\t\tbuttonSecondaryTextSize,\r\n\t\t\t\tbuttonTertiaryTextSize,\r\n\t\t\t\tbuttonPrimaryTextTransform,\r\n\t\t\t\tbuttonSecondaryTextTransform,\r\n\t\t\t\tbuttonTertiaryTextTransform,\r\n\t\t\t\tmessageMetaTextColor\r\n\t\t\t},\r\n\t\t\tshapes: {\r\n\t\t\t\tborderRadius,\r\n\t\t\t\tinputBorderRadius,\r\n\t\t\t\tstartChatBubbleBorderRadius,\r\n\t\t\t\tstartChatBubbleSize,\r\n\t\t\t\tchatterBubbleBorderRadius,\r\n\t\t\t\tagentBubbleBorderRadius,\r\n\t\t\t\tbuttonPrimaryBorderRadius,\r\n\t\t\t\tbuttonSecondaryBorderRadius,\r\n\t\t\t\tbuttonTertiaryBorderRadius,\r\n\t\t\t\tbuttonPrimaryHeight,\r\n\t\t\t\tbuttonSecondaryHeight,\r\n\t\t\t\tbuttonTertiaryHeight,\r\n\t\t\t\tbuttonPrimaryWidth,\r\n\t\t\t\tbuttonSecondaryWidth,\r\n\t\t\t\tbuttonTertiaryWidth,\r\n\t\t\t\tinputHeight,\r\n\t\t\t\theaderHeight,\r\n\t\t\t\tbuttonHeight,\r\n\t\t\t\teditorBorderRadius\r\n\t\t\t}\r\n\t\t}\r\n\t} = DEFAULT_THEME;\r\n\r\n\treturn {\r\n\t\tprimaryColor,\r\n\t\tsecondaryColor,\r\n\t\ttertiaryColor,\r\n\t\tsupportColorOne, // Mostly Grey tints\r\n\t\tsupportColorTwo,\r\n\t\tsupportColorThree,\r\n\t\tborderRadius,\r\n\t\theadingsTextColor,\r\n\t\theadingsFontSize,\r\n\t\theadingsTextTransform,\r\n\t\tchatFocusOutlineColor: transparentize(primaryColor, 20),\r\n\t\tchatFocusOutlineColorButton: transparentize(primaryColor, 30), // Buttons are special :)\r\n\t\tchatFocusBorderColor: pSBC(0.3, primaryColor),\r\n\r\n\t\t// Start Chat Button\r\n\t\tstartChatBubbleSize,\r\n\t\tstartChatBubbleBorderRadius,\r\n\r\n\t\t// Buttons\r\n\t\tbuttonHeight: `${buttonHeight}px`,\r\n\t\tbuttonPrimaryHeight,\r\n\t\tbuttonSecondaryHeight,\r\n\t\tbuttonTertiaryHeight,\r\n\t\tbuttonPrimaryWidth,\r\n\t\tbuttonSecondaryWidth,\r\n\t\tbuttonTertiaryWidth,\r\n\t\tbuttonIconFocusBackground: supportColorTwo,\r\n\t\tbuttonDisabledBackgroundColor: adjust(supportColorOne, 2, 'lighten'),\r\n\t\tbuttonDisabledColor: fontColor,\r\n\t\tbuttonPrimaryBorder,\r\n\t\tbuttonSecondaryBorder,\r\n\t\tbuttonTertiaryBorder,\r\n\t\tbuttonPrimaryTextColor,\r\n\t\tbuttonSecondaryTextColor,\r\n\t\tbuttonTertiaryTextColor,\r\n\t\tbuttonPrimaryBorderRadius,\r\n\t\tbuttonSecondaryBorderRadius,\r\n\t\tbuttonTertiaryBorderRadius,\r\n\t\tbuttonPrimaryNormal,\r\n\t\tbuttonPrimaryHover,\r\n\t\tbuttonSecondaryNormal,\r\n\t\tbuttonSecondaryHover,\r\n\t\tbuttonTertiaryNormal,\r\n\t\tbuttonTertiaryHover,\r\n\t\tbuttonPrimaryFocus,\r\n\t\tbuttonSecondaryFocus,\r\n\t\tbuttonTertiaryFocus,\r\n\r\n\t\t// Input\r\n\t\tinputBackgroundColor: supportColorThree,\r\n\t\tinputDisabledBackgroundColor: 'rgba(73, 80, 87, 0.1)',\r\n\t\tinputBorderColor,\r\n\t\tinputColor: adjust(supportColorOne, 118, 'darken'),\r\n\t\tinputHeight: `${inputHeight}px`,\r\n\t\tinputBorderRadius,\r\n\r\n\t\t// Container\r\n\t\tchatContainerBorderColor: adjust(supportColorOne, 53, 'lighten'),\r\n\t\tchatContainerShadowColor: 'rgba(0, 0, 0, .16)',\r\n\r\n\t\t// Controls component\r\n\t\theaderHeight,\r\n\t\theaderTextColor,\r\n\r\n\t\t// Editor\r\n\t\teditorInputBorderColor,\r\n\t\teditorBorderRadius,\r\n\t\teditorSendButtonFillColor,\r\n\t\teditorInputBorderFocusColor: adjust(supportColorOne, 80, 'darken'),\r\n\t\teditorSendButtonStrokeColor: editorSendButtonStrokeColor || adjust(supportColorOne, 40, 'darken'),\r\n\t\teditorSendButtonHoverColor: pSBC(-0.2, editorSendButtonFillColor), // TODO: Refactor the rest of the places, where the color transformation is used\r\n\t\teditorTextColor,\r\n\t\teditorPlaceholderTextColor: '#b1b1b1',\r\n\t\teditorBackgroundDisabledColor: '#edeeef',\r\n\t\teditorBorderDisabledColor: adjust(supportColorOne, 40, 'darken'),\r\n\r\n\t\t// Message List\r\n\t\tmessageListBackgroundColor: supportColorThree,\r\n\t\tmessageMetaTextColor: messageMetaTextColor || adjust(supportColorOne, 40, 'darken'),\r\n\r\n\t\t// Messages\r\n\t\tagentBubbleBorderRadius,\r\n\t\tchatterBubbleBorderRadius,\r\n\t\tmessageDefaultBackground: tertiaryColor,\r\n\t\tmessageAgentBackground: supportColorOne,\r\n\t\tmessageUserBackground: transparentize(primaryColor, 20),\r\n\t\tlinkNormalColor: '#5872F0',\r\n\r\n\t\t// Message Option\r\n\t\tmessageOptionBorderRadius: buttonTertiaryBorderRadius,\r\n\t\tmessageOptionColor: primaryColor,\r\n\t\tmessageOptionHeight: buttonTertiaryHeight,\r\n\t\tmessageOptionWidth: buttonTertiaryWidth,\r\n\t\tmessageOptionBackground: buttonTertiaryNormal,\r\n\t\tmessageOptionHoverBackground: buttonTertiaryHover,\r\n\t\tmessageOptionFocusBackground: buttonTertiaryFocus,\r\n\t\tmessageOptionHoverColor: supportColorThree, // this is color white\r\n\t\tmessageOptionFocusColor: supportColorThree, // this is color white\r\n\t\tmessageOptionSeparatorColor: '#757575',\r\n\r\n\t\t// Typography\r\n\t\tsecondaryTextColor: supportColorThree,\r\n\t\tchatInfoMessageTextColor: fontColor,\r\n\t\tchatInfoHeadingTextSize: 16,\r\n\t\tchatInfoMessageTextSize: 11,\r\n\t\tchatInfoTimestampTextSize: 10,\r\n\t\tfontColor,\r\n\t\tfontSize: `${fontSize}px`,\r\n\t\tfontFace,\r\n\t\tlineHeight,\r\n\t\ttextTransform,\r\n\t\theaderTextSize,\r\n\t\tchatBubbleMetaTextSize,\r\n\t\tbuttonPrimaryTextSize,\r\n\t\tbuttonSecondaryTextSize,\r\n\t\tbuttonTertiaryTextSize,\r\n\t\tbuttonPrimaryTextTransform,\r\n\t\tbuttonSecondaryTextTransform,\r\n\t\tbuttonTertiaryTextTransform,\r\n\r\n\t\t// Alerts\r\n\t\talertBorderRadius: borderRadius,\r\n\t\talertSuccessColor,\r\n\t\talertSuccessBackground: adjust(alertSuccessColor, 191, 'lighten'),\r\n\t\talertSuccessBorderColor: adjust(alertSuccessColor, 174, 'lighten'),\r\n\t\talertErrorColor,\r\n\t\talertErrorBackground: adjust(alertErrorColor, 134, 'lighten'),\r\n\t\talertErrorBorderColor: adjust(alertErrorColor, 131, 'lighten'),\r\n\r\n\t\t// Intro\r\n\t\tintroBorder: `1px solid ${primaryColor}`,\r\n\t\tintroBorderRadius: borderRadius,\r\n\r\n\t\t// Captcha\r\n\t\tcaptchaCodeColor: primaryColor,\r\n\t\tcaptchaErrorColor: adjust(alertErrorColor, 134, 'lighten'),\r\n\r\n\t\t// Notifications\r\n\t\tnotificationBorderColor: adjust('#ffd399', 50, 'darken'),\r\n\t\tnotificationBorderThickness: 1,\r\n\t\tnotificationColor: '#ffd399',\r\n\t\tnotificationShadowThickness: 6,\r\n\t\tnotificationTextColor: 'inherit',\r\n\t\tnotificationTextStyle: 'inherit'\r\n\t};\r\n};\r\n\r\nexport default variables;\r\n","/**\r\n * Simple object check.\r\n * @see https://stackoverflow.com/questions/27936772/how-to-deep-merge-instead-of-shallow-merge\r\n * @param item\r\n * @returns {boolean}\r\n */\r\nexport function isObject(item) {\r\n\treturn (item && typeof item === 'object' && !Array.isArray(item));\r\n}\r\n\r\n/**\r\n * Deep merge two objects.\r\n * @see https://stackoverflow.com/questions/27936772/how-to-deep-merge-instead-of-shallow-merge\r\n * @param target\r\n * @param [sources]\r\n */\r\nexport function mergeDeep(target, ...sources) {\r\n\tif (!sources.length) return target;\r\n\tconst source = sources.shift();\r\n\r\n\tif (isObject(target) && isObject(source)) {\r\n\t\tfor (const key in source) {\r\n\t\t\tif (isObject(source[key])) {\r\n\t\t\t\tif (!target[key]) Object.assign(target, { [key]: {} });\r\n\t\t\t\tmergeDeep(target[key], source[key]);\r\n\t\t\t} else {\r\n\t\t\t\tObject.assign(target, { [key]: source[key] });\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn mergeDeep(target, ...sources);\r\n}\r\n\r\n/**\r\n * Skips values in a object\r\n * @param {object} target Target object\r\n * @param {array} values Values to skip\r\n*/\r\nexport function skipValues(target, values) {\r\n\treturn Object.keys(target).reduce((result, key) => {\r\n\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\tif (values.indexOf(target[key]) !== -1) {\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\tconst value = isObject(target[key]) ? skipValues(target[key], values) : target[key];\r\n\r\n\t\treturn {\r\n\t\t\t...result,\r\n\t\t\t[key]: value\r\n\t\t};\r\n\t}, {});\r\n}\r\n\r\n/**\r\n * Lossy flattens a nested object.\r\n * @param {object} target - source to be proceeded\r\n * @returns {object} Flattened object\r\n*/\r\nexport function flatten(target) {\r\n\treturn Object.keys(target).reduce((result, key) => {\r\n\t\tconst value = target[key];\r\n\r\n\t\tif (isObject(value)) {\r\n\t\t\treturn {\r\n\t\t\t\t...result,\r\n\t\t\t\t...flatten(value)\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\t...result,\r\n\t\t\t[key]: value\r\n\t\t};\r\n\t}, {});\r\n}\r\n\r\n\r\n/**\r\n * Helper function that returns a string from a Object entries\r\n * @param { Object } stack - the input\r\n * @return { String } - the output\r\n */\r\nexport const objectValuesToString = (stack) => Object.values(stack).join(', ');\r\n","/* eslint-disable no-magic-numbers */\r\nimport jss from './jss';\r\nimport variables from './variables';\r\nimport { flatten, isObject } from '../lib/helpers/object';\r\n\r\nexport * from './color-helpers';\r\n\r\nconst stylesAttached = new Map();\r\n\r\n/**\r\n * A helper function to provide an object with input class as values and name suffix as\r\n * property keys. It could save some repetitive imports and initializations of the styles with it's\r\n * chain methods - E.g. attaching and destructuring.\r\n * @param {Object} [theme] - theme variables to be merged\r\n * @param {Object | Function} styles - an object containing styles\r\n * @param {Boolean} [link] - A boolean of where the style instance will be updated in the component.\r\n * @param {Boolean} [flat] - A boolean of where the style instance will be returned flatten.\r\n * @returns {Array | Object} Styles object - Objects with Suffixed property names for destructuring or JSS instance\r\n * of created .\r\n */\r\nexport function withStyles(theme, styles, link = false, flat = true) {\r\n\tconst suffix = 'Sheet';\r\n\tconst aliases = {};\r\n\tlet component;\r\n\r\n\tif (isObject(styles)) {\r\n\t\tcomponent = Object.keys(styles)[0];\r\n\t} else {\r\n\t\tcomponent = styles.name;\r\n\t}\r\n\r\n\tconst themeProps = flat ? flatten(theme) : theme;\r\n\tconst melted = (typeof styles === 'function') ? styles({ ...variables(), ...themeProps }) : styles;\r\n\tconst isLive = link;\r\n\r\n\tlet jssStyles;\r\n\r\n\tif (stylesAttached.has(component)) {\r\n\t\tjssStyles = stylesAttached.get(component);\r\n\t} else {\r\n\t\tjssStyles = jss.createStyleSheet(melted, { meta: component, link: isLive }).attach();\r\n\t\tstylesAttached.set(component, jssStyles);\r\n\t}\r\n\r\n\tfor (const selector in melted) {\r\n\t\taliases[selector + suffix] = jssStyles.classes[selector];\r\n\t}\r\n\r\n\treturn isLive ? [aliases, jssStyles] : aliases;\r\n}\r\n\r\n/**\r\n * A helper for enhancing existing property, part of particular styles OR add new one if the target for enhancements doesn't exist\r\n * @param { Object } stylesPartial - target object with style properties\r\n * @returns { Object } the styles partial object\r\n */\r\n\r\nexport const propertyEnhancer = stylesPartial => {\r\n\tconst handler = {\r\n\t\tget(target, prop) {\r\n\t\t\tif (prop in target) {\r\n\t\t\t\treturn target[prop];\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t},\r\n\r\n\t\tset(target, prop, value) {\r\n\t\t\tif (target[prop]) {\r\n\t\t\t\t// Check is the property has ; auto added by the JSS and clue it with the value\r\n\t\t\t\tconst valueClosed = target[prop].slice(-1) === ';';\r\n\t\t\t\tconst propertySliced = `${target[prop].slice(0, target[prop].length - 1)}, ${value};`;\r\n\r\n\t\t\t\t// Key here is to to use multiple box-shadow declarations to archive the effects\r\n\t\t\t\tvalueClosed ? target[prop] = propertySliced : target[prop] += `, ${value};`;\r\n\t\t\t} else {\r\n\t\t\t\ttarget[prop] = value;\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\t};\r\n\r\n\treturn new Proxy(stylesPartial, handler);\r\n};\r\n\r\nconst positionMap = ['top', 'left', 'bottom', 'right'];\r\n\r\nexport const positionOffset = sequence => {\r\n\treturn sequence ? sequence.split(/,(?:\\s+)?/).reduce((acc, offset, index) => {\r\n\t\tacc[positionMap[index]] = offset;\r\n\t\treturn acc;\r\n\t}, {}) : sequence;\r\n};\r\n\r\n","/* eslint-disable no-magic-numbers */\r\n// {key}: [position, translate]\r\n\r\nconst positionTransformMap = {\r\n\tleft: [0, 0],\r\n\tright: [100, -100],\r\n\tmiddle: [50, -50],\r\n\ttop: [0, 0],\r\n\tbottom: [100, -100]\r\n};\r\n\r\n/**\r\n * A helper altering the transform CSS property depending on the input.\r\n * @param {String} horizontal\r\n * @param {String} vertical\r\n * @param {Object} offsets\r\n * @param offsets.offsetX offset on X axis\r\n * @param offsets.offsetY offset on Y axis\r\n * @return {{transform: string, top: string, left: string, position: string}}\r\n */\r\nexport function transformPosition(horizontal, vertical, offsets) {\r\n\tconst [top, translateY] = positionTransformMap[vertical] || positionTransformMap.middle;\r\n\tconst [left, translateX] = positionTransformMap[horizontal] || positionTransformMap.right;\r\n\tconst computedOffset = offsets ?? { offsetX: 0, offsetY: 0 };\r\n\r\n\treturn {\r\n\t\tposition: 'fixed',\r\n\t\ttop: `${top}%`,\r\n\t\tleft: `${left}%`,\r\n\t\ttransform: `translate(calc(${translateX}% + ${computedOffset.offsetX}px), calc(${translateY}% - ${computedOffset.offsetY}px))`\r\n\t};\r\n}\r\n\r\nexport const sizeApplicationFrame = (width, height) => ({ width, height });\r\n\r\n/**\r\n * A helper to determine the proper width and height of the application frame\r\n * based on the any given values in the configuration and client's available resolution\r\n * @param {Number} frameWidth - the given width from app defaults\r\n * @param {Number} frameHeight - the given height from app defaults\r\n * @param {Number} width - the given height from app configuration\r\n * @param {Number} height - the given height from app configuration\r\n * @return {Object}\r\n */\r\nexport function sizeApp(frameWidth, frameHeight, width, height) {\r\n\t// Get the client's viewport size\r\n\tconst { clientHeight, clientWidth } = document.documentElement;\r\n\r\n\tconst frameHeightScoped = clientHeight >= frameHeight ? clientHeight : frameHeight;\r\n\tconst frameWidthScoped = clientWidth >= frameWidth ? clientWidth : frameWidth;\r\n\r\n\t// fit the values based on the viewport conditions\r\n\tconst computedHeight = height <= clientHeight && height >= frameHeight ? height : height >= clientHeight ? frameHeightScoped : frameHeight;\r\n\tconst computedWidth = width <= clientWidth && width >= frameWidth ? width : width >= clientWidth ? frameWidthScoped : frameWidth;\r\n\r\n\treturn {\r\n\t\tcomputedHeight,\r\n\t\tcomputedWidth\r\n\t};\r\n}\r\n","import { DEFAULT_THEME } from 'defs/defaults';\r\nimport { toNumberFromIndex, toArrayOf } from 'lib/helpers/string';\r\nimport { positionOffset } from 'styles/helpers';\r\nimport { sizeApp, transformPosition } from 'lib/helpers/layout';\r\nimport { CHAT_MIN_HEIGHT, CHAT_MIN_WIDTH } from 'defs/defaults';\r\n\r\n/**\r\n\tSet default font-size, other font-sizes will be relevant to this one (em)\r\n\tFunctionality to increase/decrease should be implemented.\r\n **/\r\nconst {\r\n\ttheme: {\r\n\t\ttypography: {\r\n\t\t\tfontColor: defaultFontColor,\r\n\t\t\tfontSize: defaultFontSize,\r\n\t\t\tfontFace: defaultFontFace,\r\n\t\t\tlineHeight: defaultLineHeight,\r\n\t\t\ttextTransform: defaultTextTransform\r\n\t\t}\r\n\t}\r\n} = DEFAULT_THEME;\r\n\r\nconst base = theme => {\r\n\tconst typography = theme.typography || {};\r\n\tconst {\r\n\t\tstarterPosition,\r\n\t\tchatPosition,\r\n\t\tstarterOffset,\r\n\t\thorizontalChatPosition,\r\n\t\tverticalChatPosition,\r\n\t\tchatOffset,\r\n\t\tchatFrameSize: {\r\n\t\t\twidth,\r\n\t\t\theight\r\n\t\t},\r\n\t\tshapes: {\r\n\t\t\tstartChatBubbleSize\r\n\t\t}\r\n\t} = theme;\r\n\r\n\tconst chatBubbleHeight = toNumberFromIndex(startChatBubbleSize);\r\n\tconst chatBubbleWidth = toNumberFromIndex(startChatBubbleSize, 1); // eslint-disable-line no-magic-numbers\r\n\tconst { computedHeight, computedWidth } = sizeApp(CHAT_MIN_WIDTH, CHAT_MIN_HEIGHT, width, height);\r\n\t// eslint-disable-next-line no-magic-numbers\r\n\tconst [[offsetTop, offsetRight, offsetBottom, offsetLeft]] = toArrayOf(starterOffset) || [[0, 0, 0, 0]];\r\n\tconst windowOffset = positionOffset(chatOffset) || { top: 0, left: 0, bottom: 0, right: 0 };\r\n\tconst offSets = {\r\n\t\toffsetX: windowOffset.left - windowOffset.right,\r\n\t\toffsetY: windowOffset.top - windowOffset.bottom\r\n\t};\r\n\tconst setOffsets = transformPosition(horizontalChatPosition, verticalChatPosition, offSets);\r\n\r\n\treturn {\r\n\t\t'@global': {\r\n\t\t\t'[data-puzzel-chat]': {\r\n\t\t\t\tcolor: typography.fontColor || defaultFontColor,\r\n\t\t\t\t'font-size': `${typography.fontSize || defaultFontSize}px`,\r\n\t\t\t\t'font-style': typography.fontFace || defaultFontFace,\r\n\t\t\t\t'line-height': typography.lineHeight || defaultLineHeight,\r\n\t\t\t\t'text-transform': typography.textTransform || defaultTextTransform,\r\n\r\n\t\t\t\t// Position for the chat bubble, doesn't change for mobile and web\r\n\t\t\t\t'&[data-view=\"bubble\"]': {\r\n\t\t\t\t\textend: starterPosition,\r\n\t\t\t\t\ttop: `calc(${starterPosition.top} - ${offsetTop - offsetBottom}px) !important`,\r\n\t\t\t\t\tleft: `calc(${starterPosition.left} - ${offsetLeft - offsetRight}px) !important`,\r\n\t\t\t\t\twidth: `${chatBubbleWidth}px !important`,\r\n\t\t\t\t\theight: `${chatBubbleHeight}px !important`,\r\n\t\t\t\t\ttransform: `${starterPosition.transform} !important`\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Position and dimensions for the chat window (Web)\r\n\t\t\t\t'&.web:not([data-view=\"bubble\"])': {\r\n\t\t\t\t\textend: chatPosition,\r\n\t\t\t\t\twidth: computedWidth,\r\n\t\t\t\t\theight: computedHeight,\r\n\t\t\t\t\t'&:not(.is-dragged):not(.is-resized)': {\r\n\t\t\t\t\t\ttransform: `${setOffsets.transform}`\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t'&.is-dragged, &.is-resized': {\r\n\t\t\t\t\t\ttransform: 'translate(0, 0)'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Position and dimensions for the chat window (Mobile)\r\n\t\t\t\t'&.mobile:not([data-view=\"bubble\"])': {\r\n\t\t\t\t\twidth: '100%',\r\n\t\t\t\t\theight: '100%',\r\n\t\t\t\t\tposition: 'fixed',\r\n\t\t\t\t\ttop: 0,\r\n\t\t\t\t\tleft: 0\r\n\t\t\t\t},\r\n\r\n\t\t\t\t'&.mobile.iso-15-safari-keyboard-open': {\r\n\t\t\t\t\theight: 'calc(100% - 52px)'\r\n\t\t\t\t},\r\n\t\t\t\t'*': {\r\n\t\t\t\t\t'box-sizing': 'border-box'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'.mobile-lock-scroll': {\r\n\t\t\t\toverflow: 'hidden'\r\n\t\t\t},\r\n\t\t\t'input[type=number]': {\r\n\t\t\t\t'-moz-appearance': 'textfield'\r\n\t\t\t},\r\n\t\t\t'input::-webkit-outer-spin-button, input::-webkit-inner-spin-button': {\r\n\t\t\t\t'-webkit-appearance': 'none'\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport default base;\r\n","export const START_SCREEN_INPUT = 'startScreenInput';\r\nexport const CAPTCHA_INPUT = 'captchaScreenInput';\r\nexport const EDITOR_INPUT = 'editorInput';\r\nexport const SURVEY_INPUT = 'surveyScreenInput';\r\nexport const GOODBYE_INPUT = 'goodbyeScreenInput';\r\nexport const CONFIG_STORE = '[euwa_chat]';\r\n","// Start form\r\nexport const START_FORM_EMAIL_INPUT = 'enteredChatId';\r\nexport const START_FORM_NAME_INPUT = 'enteredFormName';\r\nexport const START_FORM_SUBJECT_INPUT = 'enteredFormIssue';\r\nexport const START_FORM_QUEUE_INPUT = 'selectedQueueKey';\r\nexport const START_FORM_TIME_ID_INPUT = 'timeId2Map';\r\nexport const DENY_ARCHIVING = 'denyArchiving';\r\n\r\n// Captcha\r\nexport const CAPTCHA_CODE_INPUT = 'code';\r\n\r\n// Editor\r\nexport const NEW_MESSAGE_INPUT = 'newMessageText';\r\nexport const EDITOR_INPUT_ID = 'editor';\r\n\r\n// Survey\r\nexport const SURVEY_COMMENT = 'comment';\r\nexport const SURVEY_ID = 'surveyId';\r\nexport const SURVEY_RATING_INPUT = 'rating';\r\n\r\n// Goodbye\r\nexport const GOODBYE_EMAIL = 'email';\r\n","// Event options\r\nconst effect = fx => props => [fx, props];\r\n\r\nexport const eventOptions = effect((dispatch, props) => {\r\n\tif (props.preventDefault) props.event.preventDefault();\r\n\tif (props.stopPropagation) props.event.stopPropagation();\r\n\tif (props.action !== undefined) dispatch(props.action, props.event);\r\n});\r\n\r\nexport const preventDefault = action => (state, event) => [\r\n\tstate,\r\n\teventOptions({ preventDefault: true, action: action, event: event })\r\n];\r\n\r\nexport const stopPropagation = action => (state, event) => [\r\n\tstate,\r\n\teventOptions({ stopPropagation: true, action: action, event: event })\r\n];\r\n\r\n// Other\r\nexport const eventKey = event => {\r\n\treturn event.key;\r\n};\r\n\r\nexport const targetValue = event => {\r\n\treturn event.target.value;\r\n};\r\n\r\nexport const targetChecked = event => {\r\n\treturn event.target.checked;\r\n};\r\n\r\nexport const targetValueInteger = event => {\r\n\treturn Number(event.target.value);\r\n};\r\n","/**\r\n * Detects if the current device is a mobile phone.\r\n * @see http://detectmobilebrowsers.com/\r\n */\r\nexport function isMobile() {\r\n\tconst browser = navigator.userAgent || navigator.vendor || window.opera;\r\n\r\n\t/* eslint-disable no-magic-numbers, no-useless-escape */\r\n\treturn /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(browser)\r\n\t\t|| /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(browser.substr(0, 4));\r\n\t/* eslint-enable no-magic-numbers, no-useless-escape */\r\n}\r\n\r\n/**\r\n * Detects is the current OS is iOS and version is >=15\r\n * @see https://stackoverflow.com/questions/68974702/ios-15-safari-detect-floating-address-bar-when-keyboard-is-visible\r\n */\r\nexport function isIOS15() {\r\n\t// eslint-disable-next-line no-magic-numbers\r\n\treturn navigator.userAgent.includes('iPhone OS 15');\r\n}\r\n","export default function classNames(...classList) {\r\n\treturn classList.reduce((result, classes) => {\r\n\t\tif (typeof classes === 'object') {\r\n\t\t\tconst filter = key => classes[key];\r\n\t\t\tconst keys = Object.keys(classes).filter(filter);\r\n\r\n\t\t\treturn [...result, classNames(...keys)];\r\n\t\t}\r\n\r\n\t\treturn [...result, classes];\r\n\t}, []).join(' ').trim();\r\n}\r\n","export const CHAT_INIT = 'chatInit';\r\nexport const CHAT_STARTS = 'chatStarts';\r\nexport const CHAT_CONTINUE = 'chatContinue';\r\nexport const CHAT_ENDED = 'chatEnded';\r\nexport const CHAT_WINDOW_SHOWN = 'chatWindowShown';\r\nexport const CHAT_WINDOW_CLOSED = 'chatWindowClosed';\r\nexport const CHAT_WINDOW_MINIMIZED = 'chatWindowMinimized';\r\nexport const CONTACT_CENTRE_CLOSED = 'contactCenterClosed';\r\nexport const CHATTER_IS_TYPING = 'chatterTyping';\r\nexport const CHATTER_NOT_TYPING = 'chatterNotTyping';\r\n","export const RENDER_TOLERANCE = 50; // ms\r\n\r\nexport const noop = state => state;\r\n\r\nexport const mergeActions = (input, actions) => {\r\n\tconst result = actions.reduce((stack, action) => {\r\n\t\tconst result = action(stack[0]);\r\n\r\n\t\tif (Array.isArray(result)) {\r\n\t\t\tconst [patched, ...effects] = result;\r\n\t\t\tstack[0] = patched;\r\n\t\t\tstack.push(...effects);\r\n\t\t\treturn stack;\r\n\t\t}\r\n\r\n\t\tstack[0] = result;\r\n\r\n\t\treturn stack;\r\n\t}, [input]);\r\n\r\n\t// Handle actions that don't return effects\r\n\tif (result.length === 1) { // eslint-disable-line no-magic-numbers\r\n\t\treturn result[0];\r\n\t}\r\n\r\n\treturn result;\r\n};\r\n\r\nexport const queueViewAction = action => setTimeout(action, RENDER_TOLERANCE);\r\n","import { DEFAULT_LANGUAGE_CODE } from './defaults';\r\n\r\nexport default {\r\n\tlanguageCode: DEFAULT_LANGUAGE_CODE,\r\n\r\n\t// Start-up Settings\r\n\tstartChatImmediately: false,\r\n\r\n\t// Start Screen Settings\r\n\tmsgFormHeader: 'startForm.header',\r\n\tmsgFormIngress: 'startForm.body',\r\n\tinputFields: [\r\n\t\t{\r\n\t\t\tinputLabel: 'startForm.nameLabel',\r\n\t\t\tinputPlaceholder: 'startForm.namePlaceholder',\r\n\t\t\tinputRequired: false,\r\n\t\t\tinputType: 'text',\r\n\t\t\tinputVariableName: 'enteredFormName'\r\n\t\t},\r\n\t\t{\r\n\t\t\tinputLabel: 'startForm.emailLabel',\r\n\t\t\tinputPlaceholder: 'startForm.emailPlaceholder',\r\n\t\t\tinputRequired: false,\r\n\t\t\tinputType: 'email',\r\n\t\t\tinputVariableName: 'enteredChatId'\r\n\t\t}\r\n\t],\r\n\r\n\t// Survey Settings\r\n\tmsgSurveyHeader: 'survey.header',\r\n\tmsgSurveyQuestion: 'survey.body',\r\n\tenableSurvey: true,\r\n\tsurveyOnlyWhenConnected: true,\r\n\tsurveyMaxScore: 5,\r\n\tsurveyMinScore: 1,\r\n\tsurveyType: 'star',\r\n\r\n\t// Email Settings\r\n\tshowSendEmail: true,\r\n\temailTopBackgroundColor: '#FFFFFF',\r\n\temailTopLineColor: '#555555',\r\n\temailBottomLineColor: '#555555',\r\n\r\n\t// Goodbye Settings\r\n\tmsgGoodbyeHeader: 'goodbye.header',\r\n\tmsgGoodbye: 'goodbye.body',\r\n\tshowEndPage: true,\r\n\r\n\t// Intro Settings\r\n\tshowVariablesInIntro: true,\r\n\tvariables: {},\r\n\r\n\t// Reject Settings\r\n\tmsgReject: 'rejected.unavailable',\r\n\r\n\t// Availability Settings\r\n\tvisualQueueConditions: 'AgentsLoggedIn>=1',\r\n\ttimeOpenExits: [\r\n\t\t'open'\r\n\t],\r\n\r\n\t// Positioning Settings\r\n\thorizontalStarterPosition: 'right',\r\n\tverticalStarterPosition: 'middle',\r\n\thorizontalChatPosition: 'right',\r\n\tverticalChatPosition: 'bottom',\r\n\r\n\t// Starter Button Settings\r\n\tshowStarter: true,\r\n\tshowStarterWhenMinimized: true,\r\n\r\n\t// Chat Window Settings\r\n\tdraggable: true,\r\n\tresizable: true,\r\n\tframeWidth: 300,\r\n\tframeHeight: 500,\r\n\r\n\t// Chat Bubble Settings\r\n\tdelayStarterSeconds: 0,\r\n\r\n\t// Notifications Settings\r\n\tnotifyChatterOnNewMessage: true,\r\n\r\n\t// Page Tracker Settings\r\n\tuseTracker: false,\r\n\ttrackerMaxTracks: 30,\r\n\r\n\t// Emojis Settings\r\n\tshowEmojis: true\r\n};\r\n","import { CONFIG_STORE } from 'defs/scope';\r\n\r\nexport const chatScope = key => CONFIG_STORE + key;\r\nexport const isChatScope = key => key.indexOf(CONFIG_STORE) === 0; // eslint-disable-line no-magic-numbers\r\nexport const removeChatScope = key => {\r\n\tif (!isChatScope(key)) {\r\n\t\treturn key;\r\n\t}\r\n\r\n\treturn key.substr(CONFIG_STORE.length);\r\n};\r\n\r\n","import DEFAULT_SETTINGS from 'defs/settings';\r\n\r\nimport {\r\n\tchatScope,\r\n\tisChatScope,\r\n\tremoveChatScope\r\n} from 'lib/helpers/store';\r\n\r\nexport class ConfigService {\r\n\t_settings = {};\r\n\r\n\tconstructor(store) {\r\n\t\tthis._store = store;\r\n\r\n\t\tthis._sync();\r\n\t\tthis.update(DEFAULT_SETTINGS);\r\n\t}\r\n\r\n\tset(key, value, persistentStorage = false) {\r\n\t\tthis._settings[key] = value;\r\n\r\n\t\tif (persistentStorage) {\r\n\t\t\tthis._saveToStore(key, value);\r\n\t\t}\r\n\t}\r\n\r\n\tget(key) {\r\n\t\tconst value = this._settings[key] ?? this._getFromStore(key);\r\n\t\treturn this._castValue(value);\r\n\t}\r\n\r\n\tdelete(...keys) {\r\n\t\tkeys.forEach(key => this._removeFromStore(key));\r\n\t}\r\n\r\n\tupdate(settings, persistentStorage = false) {\r\n\t\tObject.keys(settings).forEach(key => {\r\n\t\t\tthis.set(key, settings[key], persistentStorage);\r\n\t\t});\r\n\t}\r\n\r\n\tpick(keys) {\r\n\t\treturn keys.reduce((result, key) => ({\r\n\t\t\t...result,\r\n\t\t\t[key]: this.get(key)\r\n\t\t}), {});\r\n\t}\r\n\r\n\t// One-way syncing: Storage -> Config service\r\n\t// NOTE: Two-way syncing is possible, if we construct the service with set of properties\r\n\t// and then use this.get(key) and this.set(key, value, persistentStorage: true)\r\n\t_sync() {\r\n\t\tconst keys = Object.\r\n\t\t\tkeys(this._store).\r\n\t\t\tfilter(isChatScope).\r\n\t\t\tmap(removeChatScope);\r\n\r\n\t\tkeys.forEach(key => {\r\n\t\t\tconst value = this._getFromStore(key);\r\n\t\t\tthis.set(key, value);\r\n\t\t});\r\n\t}\r\n\r\n\t_getFromStore(key) {\r\n\t\treturn this._store.getItem(chatScope(key));\r\n\t}\r\n\r\n\t_saveToStore(key, value) {\r\n\t\tkey = chatScope(key);\r\n\t\tvalue = this._encodeValue(value);\r\n\r\n\t\tthis._store.setItem(key, value);\r\n\t}\r\n\r\n\t_removeFromStore(key) {\r\n\t\treturn this._store.removeItem(chatScope(key));\r\n\t}\r\n\r\n\t_encodeValue(value) {\r\n\t\tif (typeof value === 'object') {\r\n\t\t\treturn JSON.stringify(value);\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t}\r\n\r\n\t_castValue(value) {\r\n\t\tif (value === 'false' || value === 'true') {\r\n\t\t\treturn value === 'true';\r\n\t\t}\r\n\r\n\t\tif (String(value).match(/^\\d+$/, value)) {\r\n\t\t\treturn Number(value);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\treturn JSON.parse(value);\r\n\t\t} catch {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst instance = new ConfigService(localStorage);\r\n\r\nexport default instance;\r\n","import {\r\n\tSTART_SCREEN_INPUT,\r\n\tEDITOR_INPUT,\r\n\tSURVEY_INPUT\r\n} from 'defs/scope';\r\n\r\nimport {\r\n\tNEW_MESSAGE_INPUT,\r\n\tSTART_FORM_EMAIL_INPUT,\r\n\tSTART_FORM_NAME_INPUT,\r\n\tSTART_FORM_SUBJECT_INPUT,\r\n\tSTART_FORM_QUEUE_INPUT,\r\n\tSTART_FORM_TIME_ID_INPUT,\r\n\tSURVEY_ID,\r\n\tSURVEY_COMMENT,\r\n\tSURVEY_RATING_INPUT,\r\n\tDENY_ARCHIVING\r\n} from 'defs/input';\r\n\r\nexport const getStartFormEmail = (state) => {\r\n\treturn getInputValue(state, START_SCREEN_INPUT, START_FORM_EMAIL_INPUT);\r\n};\r\n\r\nexport const getStartFormName = (state) => {\r\n\treturn getInputValue(state, START_SCREEN_INPUT, START_FORM_NAME_INPUT);\r\n};\r\n\r\nexport const getStartFormSubject = (state) => {\r\n\treturn getInputValue(state, START_SCREEN_INPUT, START_FORM_SUBJECT_INPUT);\r\n};\r\n\r\nexport const getStartFormQueue = (state) => {\r\n\treturn getInputValue(state, START_SCREEN_INPUT, START_FORM_QUEUE_INPUT);\r\n};\r\n\r\nexport const getStartFormTimeId = (state) => {\r\n\treturn getInputValue(state, START_SCREEN_INPUT, START_FORM_TIME_ID_INPUT);\r\n};\r\n\r\nexport const getStartFormVariables = (state, includeSystemVariables = false) => {\r\n\tif (includeSystemVariables) {\r\n\t\treturn state[START_SCREEN_INPUT];\r\n\t}\r\n\r\n\tconst systemVariables = [\r\n\t\tSTART_FORM_EMAIL_INPUT,\r\n\t\tSTART_FORM_NAME_INPUT,\r\n\t\tSTART_FORM_SUBJECT_INPUT,\r\n\t\tSTART_FORM_QUEUE_INPUT,\r\n\t\tSTART_FORM_TIME_ID_INPUT,\r\n\t\tDENY_ARCHIVING\r\n\t];\r\n\r\n\treturn Object.keys(state[START_SCREEN_INPUT] || {}).reduce((result, key) => {\r\n\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\tif (systemVariables.indexOf(key) !== -1) {\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\t...result,\r\n\t\t\t[key]: state[START_SCREEN_INPUT][key]\r\n\t\t};\r\n\t}, {});\r\n};\r\n\r\nexport const getNewMessage = (state) => {\r\n\treturn getInputValue(state, EDITOR_INPUT, NEW_MESSAGE_INPUT);\r\n};\r\n\r\nexport const setNewMessage = (state, value) => {\r\n\tconst setMessage = setInputValue(EDITOR_INPUT, NEW_MESSAGE_INPUT);\r\n\treturn setMessage(state, value);\r\n};\r\n\r\nexport const editNewMessage = (state, value, { start, end }) => {\r\n\tconst message = [ ...(getNewMessage(state) || '') ];\r\n\r\n\tmessage.splice(start, (end - start), value); // eslint-disable-line no-magic-numbers\r\n\r\n\treturn setNewMessage(state, message.join(''));\r\n};\r\n\r\nexport const getSurveyId = (state) => {\r\n\treturn getInputValue(state, SURVEY_INPUT, SURVEY_ID);\r\n};\r\n\r\nexport const getSurveyRating = (state) => {\r\n\treturn getInputValue(state, SURVEY_INPUT, SURVEY_RATING_INPUT);\r\n};\r\n\r\nexport const getSurveyComment = (state) => {\r\n\treturn getInputValue(state, SURVEY_INPUT, SURVEY_COMMENT);\r\n};\r\n\r\nexport const setSurveyId = (state, value) => {\r\n\tconst setMessage = setInputValue(SURVEY_INPUT, SURVEY_ID);\r\n\treturn setMessage(state, value);\r\n};\r\n\r\nexport const getDenyArchiving = (state) => {\r\n\treturn getInputValue(state, START_SCREEN_INPUT, DENY_ARCHIVING);\r\n};\r\n\r\nexport const setDenyArchiving = (state, value) => {\r\n\tconst setMessage = setInputValue(START_SCREEN_INPUT, DENY_ARCHIVING);\r\n\treturn setMessage(state, value);\r\n};\r\n\r\nexport const setInputValue = (scope, name) => (state, value) => {\r\n\tconst scopeValues = state[scope] || {};\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\t[scope]: {\r\n\t\t\t...scopeValues,\r\n\t\t\t[name]: value\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport const getInputValue = (state, scope, name, defaultValue = null) => {\r\n\tconst scopeValues = state[scope] || {};\r\n\treturn name in scopeValues ? scopeValues[name] : defaultValue;\r\n};\r\n","import { isMobile } from './helpers/browser';\r\n\r\nimport ConfigService from 'services/config';\r\nimport {\r\n\tgetSurveyComment,\r\n\tgetSurveyRating,\r\n\tgetStartFormName,\r\n\tgetStartFormEmail,\r\n\tgetStartFormSubject,\r\n\tgetStartFormQueue,\r\n\tgetStartFormVariables\r\n} from 'actions/input';\r\n\r\nlet loaderBridge = null;\r\n\r\nexport function $registerBridge(bridge) {\r\n\tloaderBridge = bridge;\r\n}\r\n\r\nexport function getBridge() {\r\n\treturn loaderBridge;\r\n}\r\n\r\nexport function getEventdata(state) {\r\n\tconst {\r\n\t\tsubject,\r\n\t\tnickName: name,\r\n\t\tchatId: email,\r\n\t\tsessionId,\r\n\t\trequestId,\r\n\t\tvariables,\r\n\t\tqueueKey,\r\n\t\tlanguageCode,\r\n\t\tstartFormVariables\r\n\t} = ConfigService.pick([\r\n\t\t'subject',\r\n\t\t'nickName',\r\n\t\t'chatId',\r\n\t\t'sessionId',\r\n\t\t'requestId',\r\n\t\t'variables',\r\n\t\t'queueKey',\r\n\t\t'languageCode',\r\n\t\t'startFormVariables'\r\n\t]);\r\n\r\n\tconst {\r\n\t\tisEndedByAgent,\r\n\t\tisEndedByUser,\r\n\t\thasBeenInConference,\r\n\t\tconnectedAgents: activeUsers,\r\n\t\tlastConnectedAgentId\r\n\t} = state;\r\n\r\n\tconst hasBeenConnected = isEndedByAgent || isEndedByUser;\r\n\r\n\treturn {\r\n\t\tchat: {\r\n\t\t\tactiveUsers: activeUsers || [],\r\n\t\t\tlastConnectedAgentId,\r\n\t\t\tsessionId,\r\n\t\t\trequestId,\r\n\t\t\tvariables: {\r\n\t\t\t\t...variables,\r\n\t\t\t\t...({\r\n\t\t\t\t\t...startFormVariables,\r\n\t\t\t\t\t...getStartFormVariables(state)\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tqueueKey: getStartFormQueue(state) || queueKey,\r\n\t\t\tlanguageCode\r\n\t\t},\r\n\t\tchatter: {\r\n\t\t\tsubject: getStartFormSubject(state) || subject,\r\n\t\t\tname: getStartFormName(state) || name,\r\n\t\t\temail: getStartFormEmail(state) || email,\r\n\t\t\thasBeenConnected,\r\n\t\t\thasBeenInConference\r\n\t\t},\r\n\t\tsurvey: {\r\n\t\t\tresult: getSurveyRating(state),\r\n\t\t\tcomment: getSurveyComment(state)\r\n\t\t},\r\n\t\tdevice: {\r\n\t\t\tisMobile: isMobile()\r\n\t\t}\r\n\t};\r\n}\r\n\r\nexport function publishEvent(state, event, ...data) {\r\n\tif (Array.isArray(state)) {\r\n\t\tstate = state[0];\r\n\t}\r\n\r\n\tdata.unshift(getEventdata(state));\r\n\r\n\tgetBridge().publish(event, ...data);\r\n}\r\n","import ConfigService from './config';\r\n\r\n/**\r\n * Takes care of logging needs. Any extension of the logging functionality (like logging to a server) should be implemented here.\r\n */\r\nexport class LoggingService {\r\n\tconstructor(config) {\r\n\t\tthis._config = config;\r\n\t}\r\n\r\n\t/**\r\n\t * Logs an error.\r\n\t * @param {...any} args A list of items to log.\r\n\t */\r\n\terror(...args) {\r\n\t\tif (this._config.get('log')) {\r\n\t\t\t// eslint-disable-next-line no-console\r\n\t\t\tconsole.error(...args);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst instance = new LoggingService(ConfigService);\r\n\r\nexport default instance;\r\n","import { noop } from 'lib/helpers/framework';\r\nimport LoggingService from 'services/logging';\r\n\r\nconst markAsLoading = prop => state => ({\r\n\t...state,\r\n\tloading: {\r\n\t\t...state.loading,\r\n\t\t[prop]: true\r\n\t}\r\n});\r\n\r\nconst markAsLoaded = prop => state => ({\r\n\t...state,\r\n\tloading: {\r\n\t\t...state.loading,\r\n\t\t[prop]: false\r\n\t}\r\n});\r\n\r\nconst effect = (dispatch, props) => {\r\n\tprops.catch = props.catch || noop;\r\n\tprops.finally = props.finally || noop;\r\n\r\n\t// If loading property is present, mark the request as loading\r\n\tprops.loading && dispatch([markAsLoading(props.loading)]);\r\n\r\n\tprops.request(dispatch).then(result => {\r\n\t\tdispatch([props.action, result]);\r\n\t}).catch(error => {\r\n\t\tLoggingService.error('[AsyncEffect]', error);\r\n\t\tdispatch([props.catch, error]);\r\n\t}).finally(() => {\r\n\t\t// Remove the loading indication\r\n\t\tprops.loading && dispatch([markAsLoaded(props.loading)]);\r\n\t\tdispatch([props.finally]);\r\n\t});\r\n};\r\n\r\nexport const AsyncEffect = props => [effect, props];\r\n","const switchView = (state, view) => ({\r\n\t...state,\r\n\tview\r\n});\r\nconst effect = (dispatch, view) => {\r\n\tdispatch([switchView, view]);\r\n};\r\n\r\nexport const SwitchViewEffect = view => [effect, view];\r\n","export const MESSAGE_TYPE = {\r\n\tEVENT: 'Event',\r\n\tINTRO: 'Intro',\r\n\tJSON_TEMPLATE: 'JsonTemplate',\r\n\tOPTION: 'Option',\r\n\tOPTION_RESULT: 'OptionResult',\r\n\tOPTION_RESULT_EXTENDED: 'OptionResultEx',\r\n\tREACTION: 'Reaction',\r\n\tSYSTEM: 'System',\r\n\tTEXT: 'Message',\r\n\tTRACKS: 'Tracks',\r\n\tUSER_INFO: 'UserInfo'\r\n};\r\n\r\nexport const JSON_OPTION_PREFIX = 'json|';\r\nexport const OPTION_TYPE = {\r\n\tLINK_BUTTON: 'link-button',\r\n\tACTION_BUTTON: 'action-button'\r\n};\r\n\r\nexport const USER_TYPE = {\r\n\tBOT: 'Bot',\r\n\tHUMAN: 'Human'\r\n};\r\n\r\nexport const ROLE = {\r\n\tAGENT: 1,\r\n\tUSER: 0\r\n};\r\n\r\nexport const EVENTS = {\r\n\tAGENTS_TYPING: 'TYPE_MSG',\r\n\tCHATTER_TYPING: 'TYPE_MSG',\r\n\tREQUEST_PUT_IN_QUEUE: 'REQUEST_PUTINQUEUE',\r\n\tUSER_CONNECTED: 'USER_CONNECTED',\r\n\tUSER_DISCONNECTED: 'USER_DISCONNECTED'\r\n};\r\n\r\nexport const REACTIONS = {\r\n\tLIKE: 'LIKE',\r\n\tCANCEL: 'CANCEL',\r\n\tDISLIKE: 'DISLIKE',\r\n\tUNKNOWN: 'UNKNOWN'\r\n};\r\n\r\nexport const MESSAGE_INFO_ENDED = {\r\n\tid: 101,\r\n\tsent: Date.now(),\r\n\tcontent: 'The chat has ended.',\r\n\ttype: MESSAGE_TYPE.SYSTEM,\r\n\tname: 'Chat',\r\n\tnickName: 'ChatApp'\r\n};\r\n\r\nexport const MESSAGE_SCROLLING_SETTINGS = {\r\n\tSCROLL_INTO_VIEW_INTERVAL: 60,\r\n\tSCROLL_TO_BOTTOM_INTERVAL: 300,\r\n\tOFFSET: 24,\r\n\tSCROLL_TOLERANCE: 30\r\n};\r\n\r\n// Elements\r\nexport const MESSAGE_WRAPPER_ELEMENT = 'message-list';\r\nexport const TYPING_INDICATION_ELEMENT = 'typing-dots';\r\nexport const MESSAGE_QUEUE_ELEMENT = 'queue-details';\r\n\r\n// Timeouts\r\nexport const MESSAGE_FREEZE_TIME = 1000;\r\nexport const DEFAULT_TYPING_CHECK_TIME = 2000;\r\nexport const DEFAULT_TYPING_TIME = 10000;\r\n","/* eslint-disable no-magic-numbers */\r\nimport { lowercase } from './string';\r\n\r\nexport const getLast = (stack, fallback = {}) => {\r\n\tconst lastIndex = stack.length - 1;\r\n\treturn stack[lastIndex] || fallback;\r\n};\r\n\r\nexport const getFirst = (stack, fallback = {}) => stack[0] || fallback;\r\n\r\n/**\r\n * A helper that filters an array based on criteria in tuple format {key: value}\r\n * @param [array]\r\n * @param {Object[]} criteria {key: value} format\r\n * @returns {Number}\r\n */\r\nexport const arrayFilterByCriteria = (array, ...criteria) => {\r\n\treturn array.filter(item => {\r\n\t\treturn criteria.reduce((matches, criterion) => {\r\n\t\t\t// The item has already been matched by a criterion\r\n\t\t\tif (matches) return matches;\r\n\r\n\t\t\tconst criterionKeys = Object.keys(criterion);\r\n\t\t\tconst matchedKeys = criterionKeys.filter(key => item[key] === criterion[key]);\r\n\r\n\t\t\treturn criterionKeys.length === matchedKeys.length;\r\n\t\t}, false);\r\n\t});\r\n};\r\n\r\nexport const isEmpty = stack => {\r\n\treturn !Array.isArray(stack) || stack.length === 0;\r\n};\r\n\r\nexport const contains = (stack, needle, caseInsensitive = false) => {\r\n\tif (caseInsensitive) {\r\n\t\tstack = stack.map(lowercase);\r\n\t\tneedle = lowercase(needle);\r\n\t}\r\n\r\n\treturn stack.indexOf(needle) !== -1;\r\n};\r\n\r\n/**\r\n * This helper checks whether the array sum of values is not 0\r\n * @param { Array } stack - the target array\r\n * @returns { Boolean } - the result\r\n */\r\nexport const sumNotZero = stack => {\r\n\tif (Array.isArray(stack)) {\r\n\t\tconst sum = stack.reduce((accumulator, nextValue) => {\r\n\t\t\treturn accumulator + (nextValue * 1);\r\n\t\t}, 0);\r\n\r\n\t\treturn sum !== 0;\r\n\t}\r\n\r\n\treturn false;\r\n};\r\n","import { START_SCREEN_INPUT, EDITOR_INPUT, SURVEY_INPUT } from 'defs/scope';\r\nimport { MESSAGE_TYPE, EVENTS } from 'defs/message';\r\n\r\nimport { arrayFilterByCriteria } from 'lib/helpers/array';\r\nimport { mergeActions } from 'lib/helpers/framework';\r\n\r\nimport { getNewMessage, setNewMessage } from './input';\r\n\r\nexport const addChatMessages = (state, messages, preserveUserInput = false) => {\r\n\tconst patched = { ...state, messages };\r\n\tconst value = preserveUserInput ? getNewMessage(state) : '';\r\n\r\n\treturn setNewMessage(patched, value);\r\n};\r\n\r\nexport const markAsStarted = (state, messages) => ({\r\n\t...state,\r\n\tisConnected: true,\r\n\tisEnded: false,\r\n\tisEndedByUser: false,\r\n\tisEndedByAgent: false,\r\n\tisTranscriptSent: false,\r\n\ttranscriptSendError: null,\r\n\ttranscriptTimeout: false,\r\n\tisCaptchaWrong: false,\r\n\t[SURVEY_INPUT]: {},\r\n\tmessages\r\n});\r\n\r\nexport const markAsEnded = state => ({\r\n\t...state,\r\n\t[START_SCREEN_INPUT]: {},\r\n\t[EDITOR_INPUT]: {},\r\n\tisConnected: false,\r\n\tisEnded: true,\r\n\tagentIsTyping: false,\r\n\tmessages: []\r\n});\r\n\r\nexport const markAsEndedByUser = state => ({\r\n\t...state,\r\n\tisEndedByUser: true\r\n});\r\n\r\nexport const markAsEndedByAgent = (state, endMessage) => ({\r\n\t...markAsEnded(state),\r\n\tisEndedByAgent: true,\r\n\tmessages: [\r\n\t\t...state.messages,\r\n\t\tendMessage\r\n\t]\r\n});\r\n\r\nexport const disableChatArea = state => ({ ...state, chatAreaDisabled: true });\r\nexport const enableChatArea = state => ({ ...state, chatAreaDisabled: false });\r\n\r\nexport const getOptionResults = state => {\r\n\treturn state.messages.filter(({ type }) => type === MESSAGE_TYPE.OPTION_RESULT);\r\n};\r\n\r\nexport const getOptionResult = (state, optionId) => {\r\n\tconst results = getOptionResults(state);\r\n\r\n\treturn results.filter(message => {\r\n\t\treturn message.content.messageId === optionId;\r\n\t});\r\n};\r\n\r\nexport const markTranscriptAsSent = state => ({\r\n\t...state,\r\n\tisTranscriptSent: true,\r\n\ttranscriptSendError: null,\r\n\ttranscriptTimeout: false\r\n});\r\n\r\nexport const markTranscriptSendError = (state, { message, statusCode }) => ({\r\n\t...state,\r\n\tisTranscriptSent: false,\r\n\ttranscriptSendError: message,\r\n\ttranscriptTimeout: statusCode === 404 // eslint-disable-line no-magic-numbers\r\n});\r\n\r\nexport const putOnQueue = state => ({ ...state, isInQueue: true });\r\nexport const putOffQueue = state => ({ ...state, isInQueue: false });\r\n\r\nexport const setInitialConfig = (state, { modules, captchaConfig }) => {\r\n\treturn mergeActions(state, [\r\n\t\t(patch) => setCaptchaConfig(patch, captchaConfig),\r\n\t\t(patch) => setModulesConfig(patch, modules),\r\n\t\tsetIsTouchedByTheUser\r\n\t]);\r\n};\r\n\r\nexport const setModulesConfig = (state, modules) => ({ ...state, modules });\r\nexport const setCaptchaConfig = (state, captchaConfig) => ({ ...state, captchaConfig });\r\n\r\nexport const markCaptchaAsWrong = state => ({ ...state, isCaptchaWrong: true });\r\nexport const markCaptchaAsCorrect = state => ({ ...state, isCaptchaWrong: false });\r\n\r\nexport const setScrollingOn = state => ({ ...state, isScrolling: true });\r\nexport const setScrollingOff = state => ({ ...state, isScrolling: false });\r\n\r\nexport const setIsTouchedByTheUser = state => ({ ...state, isUntouched: false });\r\n\r\nexport const getTracker = state => state.tracker;\r\n\r\nexport const setViewportSize = (state, viewportWidth, viewportHeight) => ({\r\n\t...state,\r\n\tviewportWidth,\r\n\tviewportHeight\r\n});\r\n\r\nexport const markSSORedirection = state => ({ ...state, isRedirectingToSSO: true });\r\n\r\nexport const getDisplayedMessages = messages => {\r\n\treturn arrayFilterByCriteria(\r\n\t\tmessages,\r\n\t\t{ type: MESSAGE_TYPE.TEXT },\r\n\t\t{ type: MESSAGE_TYPE.OPTION },\r\n\t\t{ type: MESSAGE_TYPE.SYSTEM },\r\n\t\t{ type: MESSAGE_TYPE.INTRO },\r\n\t\t{ type: MESSAGE_TYPE.JSON_TEMPLATE },\r\n\t\t{ type: MESSAGE_TYPE.EVENT, content: EVENTS.USER_CONNECTED },\r\n\t\t{ type: MESSAGE_TYPE.EVENT, content: EVENTS.USER_DISCONNECTED }\r\n\t);\r\n};\r\n\r\nexport const enableCustomerInsightSurvey= (state) => ({\r\n\t...state,\r\n\tisCustomerInsightSurvey: true\r\n});\r\n","import { MESSAGE_SCROLLING_SETTINGS } from 'defs/message';\r\nimport { setScrollingOff, setScrollingOn } from 'actions/chat.helpers';\r\n\r\nconst effectFn = (dispatch, props) => {\r\n\tconst { OFFSET, SCROLL_TOLERANCE } = MESSAGE_SCROLLING_SETTINGS;\r\n\tconst wrapper = document.getElementById(props.wrapperId);\r\n\tconst { state } = props;\r\n\tconst { isScrolling } = state;\r\n\r\n\twrapper && wrapper.addEventListener('scroll', () => {\r\n\t\tconst scrollToleranceMeter = wrapper.scrollHeight - (wrapper.offsetHeight + wrapper.scrollTop + OFFSET) <= SCROLL_TOLERANCE;\r\n\t\t(scrollToleranceMeter) ? dispatch(setScrollingOn) : dispatch(setScrollingOff);\r\n\t});\r\n\r\n\treturn setTimeout(() => {\r\n\t\tconst target = document.getElementById(props.elementId);\r\n\r\n\t\tif (target && isScrolling) {\r\n\t\t\ttarget.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' });\r\n\t\t}\r\n\t}, props.interval);\r\n};\r\n\r\nexport const ScrollIntoViewEffect = (elementId, wrapperId, interval, state) => [effectFn, { elementId, wrapperId, interval, state }];\r\n","export const DelayActionEffect = ({ action, timeout }) => ([\r\n\t(dispatch, props) => setTimeout(() => dispatch(props.action), timeout),\r\n\t{ action, timeout }\r\n]);\r\n","export const FocusElementEffect = (props) => [\r\n\t(dispatch, { elementId, getElement = null, timeout = 0 }) => { // eslint-disable-line no-magic-numbers\r\n\t\tsetTimeout(() => {\r\n\t\t\tlet elementToFocus = null;\r\n\r\n\t\t\tif (typeof getElement === 'function') {\r\n\t\t\t\telementToFocus = getElement();\r\n\t\t\t}\r\n\r\n\t\t\tif (elementToFocus === null) {\r\n\t\t\t\telementToFocus = document.querySelector(`#${elementId}`);\r\n\t\t\t}\r\n\r\n\t\t\tif (elementToFocus) {\r\n\t\t\t\telementToFocus.focus();\r\n\t\t\t}\r\n\t\t}, timeout);\r\n\t},\r\n\tprops\r\n];\r\n","export const FocusTextAreaEffect = props => [\r\n\t(_, { selector, selectionEnd = null }) => {\r\n\t\tconst elementToFocus = document.querySelector(selector);\r\n\r\n\t\tif (elementToFocus) {\r\n\t\t\telementToFocus.focus();\r\n\r\n\t\t\tif (selectionEnd !== null) {\r\n\t\t\t\tsetTimeout(() => elementToFocus.selectionEnd = selectionEnd);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tprops\r\n];\r\n","const effectFn = (dispatch, { elementId, value, maxHeight, offset }) => {\r\n\tconst target = document.getElementById(elementId);\r\n\tconst { height: oldHeight } = target.getBoundingClientRect();\r\n\tconst targetStyleOverflow = target.style.overflow;\r\n\r\n\t// Parent properties\r\n\tconst parent = target.parentElement;\r\n\tconst height = parent.clientHeight;\r\n\r\n\t// Preserve the parent's height, because of the bouncing mentioned below\r\n\tparent.style.height = height + 'px';\r\n\r\n\t// Setting the height to 0 will force recalculation of the scrollHeight\r\n\t// NOTE: Causes bouncing on Firefox & Safari\r\n\ttarget.style.height = 0;\r\n\r\n\t// Hide the overflow only when max height is not reached or the user has deleted characters\r\n\tif (oldHeight < maxHeight || value.old.length > value.current.length) {\r\n\t\ttarget.style.overflow = 'hidden';\r\n\t}\r\n\r\n\tlet newHeight = target.scrollHeight + offset;\r\n\r\n\t// NOTE: Firefox specific fix: THe paddings are not taken into consideration in scrollHeight property\r\n\tif (navigator.userAgent.match(/firefox/i) !== null) {\r\n\t\tconst { paddingBottom } = window.getComputedStyle(target);\r\n\t\tnewHeight += parseInt(paddingBottom);\r\n\t}\r\n\r\n\t// Max height limitation\r\n\tif (newHeight > maxHeight) {\r\n\t\tnewHeight = maxHeight;\r\n\t}\r\n\r\n\t// Set the new height of the elements and scroll to bottom\r\n\tparent.style.height = newHeight + 'px';\r\n\ttarget.style.height = newHeight + 'px';\r\n\ttarget.style.overflow = targetStyleOverflow;\r\n\r\n\t// Keep the scroll to bottom, if cursor position is at the end\r\n\tif (target.selectionEnd === target.value.length) {\r\n\t\ttarget.scrollTop = target.scrollHeight;\r\n\t}\r\n};\r\n\r\nexport const AutoSizeEffect = (elementId, { old, current }, maxHeight, offset) => [\r\n\teffectFn,\r\n\t{ elementId, value: { old, current }, maxHeight, offset }\r\n];\r\n","import { MESSAGE_SCROLLING_SETTINGS } from 'defs/message';\r\n\r\nexport const ScrollToBottomEffect = (props) => [\r\n\t(dispatch, props) => {\r\n\t\tconst target = document.querySelector(`#${props.elementId}`);\r\n\r\n\t\tif (target && target.scrollHeight > target.clientHeight) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\ttarget.scrollTop = target.scrollHeight;\r\n\t\t\t}, MESSAGE_SCROLLING_SETTINGS.SCROLL_TO_BOTTOM_INTERVAL);\r\n\t\t}\r\n\t},\r\n\tprops\r\n];\r\n","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/*!\n * Unipointer v2.3.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n } else if ( 'ontouchstart' in window ) {\n // Touch Events. iOS Safari\n startEvent = 'touchstart';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if ( event.button || this.isPointerDown ) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n","/*!\n * Unidragger v2.3.1\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n if ( this.isDragging ) {\n this._dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick( event, pointer );\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n // do not drag if not dragging yet\n if ( !this.isDragging ) {\n return;\n }\n\n this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n return;\n }\n\n this.staticClick( event, pointer );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n","/*!\n * Draggabilly v2.3.0\n * Make that shiz draggable\n * https://draggabilly.desandro.com\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'get-size/get-size',\n 'unidragger/unidragger',\n ],\n function( getSize, Unidragger ) {\n return factory( window, getSize, Unidragger );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('get-size'),\n require('unidragger')\n );\n } else {\n // browser global\n window.Draggabilly = factory(\n window,\n window.getSize,\n window.Unidragger\n );\n }\n\n}( window, function factory( window, getSize, Unidragger ) {\n\n// -------------------------- helpers & variables -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\nfunction noop() {}\n\nvar jQuery = window.jQuery;\n\n// -------------------------- -------------------------- //\n\nfunction Draggabilly( element, options ) {\n // querySelector if string\n this.element = typeof element == 'string' ?\n document.querySelector( element ) : element;\n\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n\n // options\n this.options = extend( {}, this.constructor.defaults );\n this.option( options );\n\n this._create();\n}\n\n// inherit Unidragger methods\nvar proto = Draggabilly.prototype = Object.create( Unidragger.prototype );\n\nDraggabilly.defaults = {\n};\n\n/**\n * set options\n * @param {Object} opts\n */\nproto.option = function( opts ) {\n extend( this.options, opts );\n};\n\n// css position values that don't need to be set\nvar positionValues = {\n relative: true,\n absolute: true,\n fixed: true,\n};\n\nproto._create = function() {\n // properties\n this.position = {};\n this._getPosition();\n\n this.startPoint = { x: 0, y: 0 };\n this.dragPoint = { x: 0, y: 0 };\n\n this.startPosition = extend( {}, this.position );\n\n // set relative positioning\n var style = getComputedStyle( this.element );\n if ( !positionValues[ style.position ] ) {\n this.element.style.position = 'relative';\n }\n\n // events, bridge jQuery events from vanilla\n this.on( 'pointerMove', this.onPointerMove );\n this.on( 'pointerUp', this.onPointerUp );\n\n this.enable();\n this.setHandles();\n};\n\n/**\n * set this.handles and bind start events to 'em\n */\nproto.setHandles = function() {\n this.handles = this.options.handle ?\n this.element.querySelectorAll( this.options.handle ) : [ this.element ];\n\n this.bindHandles();\n};\n\n/**\n * emits events via EvEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n var emitArgs = [ event ].concat( args );\n this.emitEvent( type, emitArgs );\n this.dispatchJQueryEvent( type, event, args );\n};\n\nproto.dispatchJQueryEvent = function( type, event, args ) {\n var jquery = window.jQuery;\n // trigger jQuery event\n if ( !jquery || !this.$element ) {\n return;\n }\n // create jQuery event\n /* eslint-disable-next-line new-cap */\n var $event = jquery.Event( event );\n $event.type = type;\n this.$element.trigger( $event, args );\n};\n\n// -------------------------- position -------------------------- //\n\n// get x/y position from style\nproto._getPosition = function() {\n var style = getComputedStyle( this.element );\n var x = this._getPositionCoord( style.left, 'width' );\n var y = this._getPositionCoord( style.top, 'height' );\n // clean up 'auto' or other non-integer values\n this.position.x = isNaN( x ) ? 0 : x;\n this.position.y = isNaN( y ) ? 0 : y;\n\n this._addTransformPosition( style );\n};\n\nproto._getPositionCoord = function( styleSide, measure ) {\n if ( styleSide.indexOf('%') != -1 ) {\n // convert percent into pixel for Safari, #75\n var parentSize = getSize( this.element.parentNode );\n // prevent not-in-DOM element throwing bug, #131\n return !parentSize ? 0 :\n ( parseFloat( styleSide ) / 100 ) * parentSize[ measure ];\n }\n return parseInt( styleSide, 10 );\n};\n\n// add transform: translate( x, y ) to position\nproto._addTransformPosition = function( style ) {\n var transform = style.transform;\n // bail out if value is 'none'\n if ( transform.indexOf('matrix') !== 0 ) {\n return;\n }\n // split matrix(1, 0, 0, 1, x, y)\n var matrixValues = transform.split(',');\n // translate X value is in 12th or 4th position\n var xIndex = transform.indexOf('matrix3d') === 0 ? 12 : 4;\n var translateX = parseInt( matrixValues[ xIndex ], 10 );\n // translate Y value is in 13th or 5th position\n var translateY = parseInt( matrixValues[ xIndex + 1 ], 10 );\n this.position.x += translateX;\n this.position.y += translateY;\n};\n\n// -------------------------- events -------------------------- //\n\nproto.onPointerDown = function( event, pointer ) {\n this.element.classList.add('is-pointer-down');\n this.dispatchJQueryEvent( 'pointerDown', event, [ pointer ] );\n};\n\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay || !this.isEnabled ) {\n this._pointerReset();\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.element.classList.add('is-pointer-down');\n this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\n/**\n * drag start\n * @param {Event} event\n * @param {[Event, Touch]} pointer\n */\nproto.dragStart = function( event, pointer ) {\n if ( !this.isEnabled ) {\n return;\n }\n this._getPosition();\n this.measureContainment();\n // position _when_ drag began\n this.startPosition.x = this.position.x;\n this.startPosition.y = this.position.y;\n // reset left/top style\n this.setLeftTop();\n\n this.dragPoint.x = 0;\n this.dragPoint.y = 0;\n\n this.element.classList.add('is-dragging');\n this.dispatchEvent( 'dragStart', event, [ pointer ] );\n // start animation\n this.animate();\n};\n\nproto.measureContainment = function() {\n var container = this.getContainer();\n if ( !container ) {\n return;\n }\n\n var elemSize = getSize( this.element );\n var containerSize = getSize( container );\n var elemRect = this.element.getBoundingClientRect();\n var containerRect = container.getBoundingClientRect();\n\n var borderSizeX = containerSize.borderLeftWidth + containerSize.borderRightWidth;\n var borderSizeY = containerSize.borderTopWidth + containerSize.borderBottomWidth;\n\n var position = this.relativeStartPosition = {\n x: elemRect.left - ( containerRect.left + containerSize.borderLeftWidth ),\n y: elemRect.top - ( containerRect.top + containerSize.borderTopWidth ),\n };\n\n this.containSize = {\n width: ( containerSize.width - borderSizeX ) - position.x - elemSize.width,\n height: ( containerSize.height - borderSizeY ) - position.y - elemSize.height,\n };\n};\n\nproto.getContainer = function() {\n var containment = this.options.containment;\n if ( !containment ) {\n return;\n }\n var isElement = containment instanceof HTMLElement;\n // use as element\n if ( isElement ) {\n return containment;\n }\n // querySelector if string\n if ( typeof containment == 'string' ) {\n return document.querySelector( containment );\n }\n // fallback to parent element\n return this.element.parentNode;\n};\n\n// ----- move event ----- //\n\nproto.onPointerMove = function( event, pointer, moveVector ) {\n this.dispatchJQueryEvent( 'pointerMove', event, [ pointer, moveVector ] );\n};\n\n/**\n * drag move\n * @param {Event} event\n * @param {[Event, Touch]} pointer\n * @param {Object} moveVector - x and y coordinates\n */\nproto.dragMove = function( event, pointer, moveVector ) {\n if ( !this.isEnabled ) {\n return;\n }\n var dragX = moveVector.x;\n var dragY = moveVector.y;\n\n var grid = this.options.grid;\n var gridX = grid && grid[0];\n var gridY = grid && grid[1];\n\n dragX = applyGrid( dragX, gridX );\n dragY = applyGrid( dragY, gridY );\n\n dragX = this.containDrag( 'x', dragX, gridX );\n dragY = this.containDrag( 'y', dragY, gridY );\n\n // constrain to axis\n dragX = this.options.axis == 'y' ? 0 : dragX;\n dragY = this.options.axis == 'x' ? 0 : dragY;\n\n this.position.x = this.startPosition.x + dragX;\n this.position.y = this.startPosition.y + dragY;\n // set dragPoint properties\n this.dragPoint.x = dragX;\n this.dragPoint.y = dragY;\n\n this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nfunction applyGrid( value, grid, method ) {\n method = method || 'round';\n return grid ? Math[ method ]( value/grid ) * grid : value;\n}\n\nproto.containDrag = function( axis, drag, grid ) {\n if ( !this.options.containment ) {\n return drag;\n }\n var measure = axis == 'x' ? 'width' : 'height';\n\n var rel = this.relativeStartPosition[ axis ];\n var min = applyGrid( -rel, grid, 'ceil' );\n var max = this.containSize[ measure ];\n max = applyGrid( max, grid, 'floor' );\n return Math.max( min, Math.min( max, drag ) );\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {[Event, Touch]} pointer\n */\nproto.onPointerUp = function( event, pointer ) {\n this.element.classList.remove('is-pointer-down');\n this.dispatchJQueryEvent( 'pointerUp', event, [ pointer ] );\n};\n\n/**\n * drag end\n * @param {Event} event\n * @param {[Event, Touch]} pointer\n */\nproto.dragEnd = function( event, pointer ) {\n if ( !this.isEnabled ) {\n return;\n }\n // use top left position when complete\n this.element.style.transform = '';\n this.setLeftTop();\n this.element.classList.remove('is-dragging');\n this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\n// -------------------------- animation -------------------------- //\n\nproto.animate = function() {\n // only render and animate if dragging\n if ( !this.isDragging ) {\n return;\n }\n\n this.positionDrag();\n\n var _this = this;\n requestAnimationFrame( function animateFrame() {\n _this.animate();\n } );\n\n};\n\n// left/top positioning\nproto.setLeftTop = function() {\n this.element.style.left = this.position.x + 'px';\n this.element.style.top = this.position.y + 'px';\n};\n\nproto.positionDrag = function() {\n this.element.style.transform = 'translate3d( ' + this.dragPoint.x +\n 'px, ' + this.dragPoint.y + 'px, 0)';\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function( event, pointer ) {\n this.dispatchEvent( 'staticClick', event, [ pointer ] );\n};\n\n// ----- methods ----- //\n\n/**\n * @param {Number} x\n * @param {Number} y\n */\nproto.setPosition = function( x, y ) {\n this.position.x = x;\n this.position.y = y;\n this.setLeftTop();\n};\n\nproto.enable = function() {\n this.isEnabled = true;\n};\n\nproto.disable = function() {\n this.isEnabled = false;\n if ( this.isDragging ) {\n this.dragEnd();\n }\n};\n\nproto.destroy = function() {\n this.disable();\n // reset styles\n this.element.style.transform = '';\n this.element.style.left = '';\n this.element.style.top = '';\n this.element.style.position = '';\n // unbind handles\n this.unbindHandles();\n // remove jQuery data\n if ( this.$element ) {\n this.$element.removeData('draggabilly');\n }\n};\n\n// ----- jQuery bridget ----- //\n\n// required for jQuery bridget\nproto._init = noop;\n\nif ( jQuery && jQuery.bridget ) {\n jQuery.bridget( 'draggabilly', Draggabilly );\n}\n\n// ----- ----- //\n\nreturn Draggabilly;\n\n} ) );\n","// TODO: Refactor. Draggable can be exported as a class, with a simple interface (like lib/resizable).\r\nimport { SELECTOR_IS_DRAGGED } from 'defs/defaults';\r\nimport Draggabilly from 'draggabilly';\r\n\r\nimport { queueViewAction } from 'lib/helpers/framework';\r\n\r\nlet draggable = null,\r\n\tisDragged = false;\r\n\r\nexport const addIsDraggedClass = element => isDragged && element.classList.add(SELECTOR_IS_DRAGGED);\r\nexport const removeIsDraggedClass = element => isDragged && element.classList.remove(SELECTOR_IS_DRAGGED);\r\n\r\nexport const containDrag = (element, position) => {\r\n\tconst { clientHeight, clientWidth } = document.body;\r\n\tconst { width, height } = element.getBoundingClientRect();\r\n\r\n\tconst minLeft = 0;\r\n\tconst minTop = 0;\r\n\tconst maxLeft = clientWidth - width;\r\n\tconst maxTop = clientHeight - height;\r\n\r\n\tlet { x, y } = position;\r\n\r\n\tif (x < minLeft) {\r\n\t\tx = minLeft;\r\n\t} else if (x > maxLeft) {\r\n\t\tx = maxLeft;\r\n\t}\r\n\r\n\tif (y < minTop) {\r\n\t\ty = minTop;\r\n\t} else if (y > maxTop) {\r\n\t\ty = maxTop;\r\n\t}\r\n\r\n\treturn { x, y };\r\n};\r\n\r\nexport const effect = (dispatch, { element, handle, view, preserve = null }) => {\r\n\tconst container = document.querySelector(element);\r\n\r\n\tif (draggable) {\r\n\t\tif (view === 'bubble') {\r\n\t\t\tremoveIsDraggedClass(container);\r\n\r\n\t\t\treturn queueViewAction(draggable.disable);\r\n\t\t}\r\n\r\n\t\taddIsDraggedClass(container);\r\n\r\n\t\treturn queueViewAction(() => {\r\n\t\t\tdraggable.enable();\r\n\t\t\tdraggable.setHandles();\r\n\t\t});\r\n\t}\r\n\r\n\treturn queueViewAction(() => {\r\n\t\tdraggable = new Draggabilly(container, { handle });\r\n\r\n\t\tdraggable.on('dragEnd', () => {\r\n\t\t\tif (!isDragged) {\r\n\t\t\t\tisDragged = true;\r\n\t\t\t}\r\n\r\n\t\t\tconst { x, y } = containDrag(container, draggable.position);\r\n\r\n\t\t\tdraggable.setPosition(x, y);\r\n\t\t\taddIsDraggedClass(container);\r\n\r\n\t\t\tif (preserve) {\r\n\t\t\t\tconst dimensions = container.getBoundingClientRect();\r\n\t\t\t\tpreserve(dimensions);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n};\r\n\r\nexport const DraggableEffect = (props) => [ effect, props ];\r\n","import { RESIZE_TRIGGER_SIZE } from 'defs/defaults';\r\n\r\nconst RESIZE_EXPAND_POSITIVE = 1;\r\nconst RESIZE_EXPAND_NEGATIVE = -1;\r\nconst RESIZE_OFFSET = 5; // px\r\n\r\nexport class Resizable {\r\n\tconstructor(selector, options = {}) {\r\n\t\tthis.isEnabled = true;\r\n\r\n\t\tthis._element = document.querySelector(selector);\r\n\t\tthis._options = options;\r\n\r\n\t\tif (this._element) {\r\n\t\t\tthis._createResizeTriggers();\r\n\t\t\tthis._attachHandlers();\r\n\t\t}\r\n\t}\r\n\r\n\tenable() {\r\n\t\tthis._edges.forEach(([ edge ]) => this._element.append(edge));\r\n\t\tthis.isEnabled = true;\r\n\t}\r\n\r\n\tdisable() {\r\n\t\tthis._edges.forEach(([ edge ]) => edge.remove());\r\n\t\tthis.isEnabled = false;\r\n\t}\r\n\r\n\t_createResizeTriggers() {\r\n\t\tthis._edges = [\r\n\t\t\t// [element, expandDirX, expandDirY]\r\n\t\t\t[this._createResizeTrigger('0px', '0px', 'nwse-resize'), RESIZE_EXPAND_NEGATIVE, RESIZE_EXPAND_NEGATIVE], // top left\r\n\t\t\t[this._createResizeTrigger('0px', '100%', 'nesw-resize'), RESIZE_EXPAND_NEGATIVE, RESIZE_EXPAND_POSITIVE], // bottom left\r\n\t\t\t[this._createResizeTrigger('100%', '0px', 'nesw-resize'), RESIZE_EXPAND_POSITIVE, RESIZE_EXPAND_NEGATIVE], // top right\r\n\t\t\t[this._createResizeTrigger('100%', '100%', 'nwse-resize'), RESIZE_EXPAND_POSITIVE, RESIZE_EXPAND_POSITIVE] // bottom right\r\n\t\t];\r\n\t}\r\n\r\n\t_createResizeTrigger(x, y, cursor) {\r\n\t\tconst element = document.createElement('span');\r\n\r\n\t\telement.draggable = true;\r\n\t\telement.dataset.resizeTrigger = true;\r\n\t\telement.style.position = 'absolute';\r\n\t\telement.style.left = x;\r\n\t\telement.style.top = y;\r\n\t\telement.style.cursor = cursor;\r\n\t\telement.style.width = `${RESIZE_TRIGGER_SIZE}px`;\r\n\t\telement.style.height = `${RESIZE_TRIGGER_SIZE}px`;\r\n\t\telement.style.transform = 'translate(-50%, -50%)';\r\n\r\n\t\treturn element;\r\n\t}\r\n\r\n\t_attachHandlers() {\r\n\t\t// NOTE: Firefox doesn't provide mouse coordinates in drag event.\r\n\t\t// They should be retrieved by global dragover event.\r\n\t\tdocument.addEventListener('dragover', ({ pageX, pageY }) => {\r\n\t\t\tthis._currentMousePosition = { pageX, pageY };\r\n\t\t});\r\n\r\n\t\tthis._edges.forEach(([edge, expandDirX, expandDirY]) => {\r\n\t\t\tedge.addEventListener('dragstart', this._dragStart.bind(this));\r\n\t\t\tedge.addEventListener('drag', this._drag.bind(this, { expandDirX, expandDirY }));\r\n\t\t\tedge.addEventListener('dragend', this._dragEnd.bind(this));\r\n\t\t\tthis._element.append(edge);\r\n\t\t});\r\n\t}\r\n\r\n\t_dragStart({ pageX, pageY }) {\r\n\t\tconst { width, height, left, top } = this._element.getBoundingClientRect();\r\n\r\n\t\t// Handles any translations, applied to the element\r\n\t\tthis._element.classList.add('is-resized');\r\n\t\tthis._element.style.transform = 'none';\r\n\t\tthis._element.style.left = `${left}px`;\r\n\t\tthis._element.style.top = `${top}px`;\r\n\r\n\t\tthis._initialDimensions = { width, height, left, top };\r\n\t\tthis._initialCoordinates = { x: pageX, y: pageY };\r\n\t\tthis._currentMousePosition = { pageX, pageY };\r\n\t}\r\n\r\n\t_drag({ expandDirX, expandDirY }) {\r\n\t\tconst { pageX, pageY } = this._currentMousePosition;\r\n\t\tconst { x, y } = this._initialCoordinates;\r\n\t\tconst ΔX = (pageX - x) * expandDirX;\r\n\t\tconst ΔY = (pageY - y) * expandDirY;\r\n\r\n\t\tthis._translateMouseMove({\r\n\t\t\texpandDirX,\r\n\t\t\texpandDirY,\r\n\t\t\tx: ΔX,\r\n\t\t\ty: ΔY\r\n\t\t});\r\n\t}\r\n\r\n\t_translateMouseMove({ expandDirX, expandDirY, x, y }) {\r\n\t\tconst {\r\n\t\t\tminWidth,\r\n\t\t\tminHeight\r\n\t\t} = this._options;\r\n\r\n\t\tconst {\r\n\t\t\twidth,\r\n\t\t\theight,\r\n\t\t\ttop,\r\n\t\t\tleft\r\n\t\t} = this._initialDimensions;\r\n\r\n\t\tconst { clientHeight, clientWidth } = document.body;\r\n\r\n\t\tconst projectedWidth = width + x;\r\n\t\tconst projectedLeft = left - x;\r\n\t\tconst projectedHeight = height + y;\r\n\t\tconst projectedTop = top - y;\r\n\t\tconst isMinWidthReached = projectedWidth < minWidth;\r\n\t\tconst isMinHeightReached = projectedHeight < minHeight;\r\n\r\n\t\tlet isMaxWidthReached = (left + projectedWidth) >= (clientWidth - RESIZE_OFFSET),\r\n\t\t\tisMaxHeightReached = (top + projectedHeight) >= (clientHeight - RESIZE_OFFSET);\r\n\r\n\t\tif (expandDirX === RESIZE_EXPAND_NEGATIVE) {\r\n\t\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\t\tisMaxWidthReached = (projectedLeft - RESIZE_OFFSET) <= 0;\r\n\t\t}\r\n\r\n\t\tif (expandDirY === RESIZE_EXPAND_NEGATIVE) {\r\n\t\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\t\tisMaxHeightReached = (projectedTop - RESIZE_OFFSET) <= 0;\r\n\t\t}\r\n\r\n\t\tif (!isMinWidthReached && !isMaxWidthReached) {\r\n\t\t\tthis._element.style.width = `${projectedWidth}px`;\r\n\r\n\t\t\tif (expandDirX === RESIZE_EXPAND_NEGATIVE) {\r\n\t\t\t\tthis._element.style.left = `${projectedLeft}px`;\r\n\t\t\t} else {\r\n\t\t\t\tthis._element.style.left = `${left}px`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!isMinHeightReached && !isMaxHeightReached) {\r\n\t\t\tthis._element.style.height = `${projectedHeight}px`;\r\n\r\n\t\t\tif (expandDirY === RESIZE_EXPAND_NEGATIVE) {\r\n\t\t\t\tthis._element.style.top = `${projectedTop}px`;\r\n\t\t\t} else {\r\n\t\t\t\tthis._element.style.top = `${top}px`;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_dragEnd() {\r\n\t\tthis._initialCoordinates = null;\r\n\t\tthis._initialDimensions = null;\r\n\t\tthis._currentMousePosition = null;\r\n\r\n\t\tif (this._options.preserve) {\r\n\t\t\tconst dimensions = this._element.getBoundingClientRect();\r\n\t\t\tthis._options.preserve(dimensions);\r\n\t\t}\r\n\t}\r\n}\r\n","import { Resizable } from 'lib/resizable';\r\n\r\nlet resizable;\r\n\r\nexport const effect = (dispatch, { element, view, ...options }) => {\r\n\tif (!resizable) {\r\n\t\tresizable = new Resizable(element, options);\r\n\t}\r\n\r\n\tif (view === 'bubble' && resizable.isEnabled) {\r\n\t\tresizable.disable();\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (!resizable.isEnabled) {\r\n\t\tresizable.enable();\r\n\t}\r\n};\r\n\r\nexport const ResizableEffect = (props) => [ effect, props ];\r\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","import ResizeObserver from 'resize-observer-polyfill';\r\nimport { setViewportSize } from 'actions/chat.helpers';\r\nimport { CHAT_MIN_HEIGHT, CHAT_MIN_WIDTH } from 'defs/defaults';\r\nimport ConfigService from 'services/config';\r\n\r\nconst effectFn = (dispatch, props) => {\r\n\tconst { element, state } = props;\r\n\tconst { theme } = state;\r\n\tconst {\r\n\t\tchatFrameSize: { width: widthFromConfig, height: heightFromConfig }\r\n\t} = theme;\r\n\tconst elementToSize = document.querySelector(element);\r\n\tconst observer = new ResizeObserver(element => {\r\n\t\tconst { contentRect } = element[0];\r\n\r\n\t\t// set the viewport size in the state\r\n\t\tdispatch(state => setViewportSize(state, contentRect.width, contentRect.height));\r\n\r\n\t\tconst { height: viewportHeight, width: viewportWidth } = contentRect;\r\n\r\n\t\t// amend the app defaults of the configs from the admin are lower that defaults\r\n\t\tlet appHeightPatched = heightFromConfig >= CHAT_MIN_HEIGHT ? heightFromConfig : CHAT_MIN_HEIGHT;\r\n\t\tlet appWidthPatched = widthFromConfig >= CHAT_MIN_WIDTH ? widthFromConfig : CHAT_MIN_WIDTH;\r\n\r\n\t\t// Memoize the top and left position when viewport is larger and app is in it. Most of the cases.\r\n\t\tlet memLeft = 0, memTop = 0;\r\n\r\n\t\t// Calculate the viewport against the current app size.\r\n\t\tconst heightApplied = viewportHeight > appHeightPatched ? appHeightPatched : viewportHeight;\r\n\t\tconst widthApplied = viewportWidth > appWidthPatched ? appWidthPatched : viewportWidth;\r\n\t\t// eslint-disable-next-line prefer-const\r\n\t\tconst {\r\n\t\t\ttop: appPositionTop,\r\n\t\t\tleft: appPositionLeft,\r\n\t\t\theight: appSizeHeight,\r\n\t\t\twidth: appSizeWidth\r\n\t\t} = ConfigService.get('windowRect')\r\n\t\t||\r\n\t\t{\r\n\t\t\ttop: viewportHeight - heightApplied,\r\n\t\t\tleft: viewportWidth - widthApplied,\r\n\t\t\theight: heightApplied,\r\n\t\t\twidth: widthApplied\r\n\t\t};\r\n\r\n\t\t// Element is dragged or re-sized by the user. Calculate the offsets and bring the app into the viewport.\r\n\t\tif (elementToSize.classList.contains('is-dragged') || elementToSize.classList.contains('is-resized')) {\r\n\t\t\tappWidthPatched = appSizeWidth;\r\n\t\t\tappHeightPatched = appSizeHeight;\r\n\r\n\t\t\t// Measure the position and size and add a condition in case of overlapping\r\n\t\t\tif (appPositionTop + appHeightPatched > viewportHeight) {\r\n\t\t\t\tif (appHeightPatched > viewportHeight && appPositionTop + appHeightPatched > viewportHeight) {\r\n\t\t\t\t\telementToSize.style.transform = `translate(0, ${-appPositionTop}px)`;\r\n\t\t\t\t} else if (appPositionLeft + appWidthPatched < viewportWidth) {\r\n\t\t\t\t\telementToSize.style.transform = `translate(0, ${viewportHeight - (appPositionTop + appHeightPatched)}px)`;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tmemLeft = viewportWidth - (appPositionLeft + appWidthPatched);\r\n\t\t\t\t\telementToSize.style.transform = `translate(${memLeft}px, ${viewportHeight - (appPositionTop + appHeightPatched)}px)`;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (appPositionLeft + appWidthPatched > viewportWidth) {\r\n\t\t\t\tif (appWidthPatched > viewportWidth && appPositionLeft + appWidthPatched > viewportWidth) {\r\n\t\t\t\t\t(appPositionTop + appHeightPatched > viewportHeight)\r\n\t\t\t\t\t\t?\r\n\t\t\t\t\t\telementToSize.style.transform = `translate(${-appPositionLeft}px, ${-appPositionTop}px)`\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\telementToSize.style.transform = `translate(${-appPositionLeft}px, 0)`;\r\n\t\t\t\t} else if (appPositionTop + appHeightPatched > viewportHeight) {\r\n\t\t\t\t\tmemTop = -appPositionTop;\r\n\t\t\t\t\telementToSize.style.transform = `translate(${viewportWidth - (appPositionLeft + appWidthPatched)}px, ${memTop}px)`;\r\n\t\t\t\t} else {\r\n\t\t\t\t\telementToSize.style.transform = `translate(${viewportWidth - (appPositionLeft + appWidthPatched)}px, 0)`;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (appPositionTop + appHeightPatched <= viewportHeight && appPositionLeft + appWidthPatched <= viewportWidth && elementToSize.dataset.view !== 'bubble') {\r\n\t\t\t\tdelete elementToSize.style.transform;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (viewportHeight > appHeightPatched) {\r\n\t\t\t// Apply the computed width / height\r\n\t\t\telementToSize.style.height = `${Math.round(appHeightPatched)}px`;\r\n\t\t}\r\n\r\n\t\tif (viewportWidth > appWidthPatched) {\r\n\t\t\t// Apply the computed width / height\r\n\t\t\telementToSize.style.width = `${Math.round(appWidthPatched)}px`;\r\n\t\t}\r\n\r\n\t\tif (viewportHeight <= appHeightPatched) {\r\n\t\t\t// app height exceeds Viewport height. Apply Viewport height.\r\n\t\t\telementToSize.style.height = `${viewportHeight}px`;\r\n\t\t}\r\n\r\n\t\tif (viewportWidth <= appWidthPatched) {\r\n\t\t\t// app width exceeds Viewport width. Apply Viewport width.\r\n\t\t\telementToSize.style.width = `${viewportWidth}px`;\r\n\t\t}\r\n\r\n\t\t// If its minimized or closed after applying re-sizing and / or dragging\r\n\t\t// restore the original position from the config\r\n\t\tif (elementToSize.dataset.view === 'bubble') {\r\n\t\t\tdelete elementToSize.style.transform;\r\n\t\t}\r\n\t});\r\n\r\n\tobserver.observe(document.documentElement);\r\n};\r\n\r\nexport const SizableEffect = (element, state) => [effectFn, { element, state }];\r\n","const effectFn = (dispatch, { conditionFn, element, className, eventType }) => {\r\n\tif (!conditionFn()) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst targetElement = document.querySelector(element);\r\n\r\n\tif (targetElement && eventType === 'focus') {\r\n\t\ttargetElement.classList.add(className);\r\n\t} else if (targetElement && eventType === 'blur') {\r\n\t\ttargetElement.classList.remove(className);\r\n\t}\r\n};\r\n\r\nexport const ToggleClassNameEffect = (conditionFn, element, className, eventType) => [effectFn, { conditionFn, element, className, eventType }];\r\n","export const attachFilesModeOn = state => ({ ...state, isAttachingFile: true });\r\nexport const attachFilesModeOff = state => ({ ...state, isAttachingFile: false });\r\nexport const attachedFilesCount = (state, fileCount) => ({ ...state, fileCount });\r\n","import { contains } from './helpers/string';\r\n\r\nexport const HOST = {\r\n\tLOCAL: 'local.euwa.puzzel.com',\r\n\tDEV: 'euwa-dev',\r\n\tTEST: 'testeuwa',\r\n\tSTAGE: 'stageuwa'\r\n};\r\n\r\nexport function getAPIEndpoint() {\r\n\tconst { host } = window.location;\r\n\r\n\tif (typeof window.PUZZEL_EUWA_CHAT_ENDPOINT !== 'undefined') {\r\n\t\treturn window.PUZZEL_EUWA_CHAT_ENDPOINT;\r\n\t} else if (contains(host, HOST.LOCAL) || contains(host, HOST.DEV)) {\r\n\t\treturn 'https://devapi.puzzel.com/chat/v1';\r\n\t} else if (contains(host, HOST.TEST)) {\r\n\t\treturn 'https://testapi.puzzel.com/chat/v1';\r\n\t} else if (contains(host, HOST.STAGE)) {\r\n\t\treturn 'https://qaapi.puzzel.com/chat/v1';\r\n\t}\r\n\r\n\t// Fallback to production URL-s, consider that the Chat is on customer's domain.\r\n\treturn 'https://api.puzzel.com/chat/v1';\r\n}\r\n\r\nexport function getBaseURL() {\r\n\tconst { host } = window.location;\r\n\r\n\tif (typeof window.PUZZEL_EUWA_BASE !== 'undefined') {\r\n\t\treturn window.PUZZEL_EUWA_BASE + '/chat';\r\n\t} else if (contains(host, HOST.LOCAL)) {\r\n\t\treturn 'http://local.euwa.puzzel.com:8080/chat';\r\n\t} else if (contains(host, HOST.DEV)) {\r\n\t\treturn 'https://euwa-dev.azurewebsites.net/chat';\r\n\t} else if (contains(host, HOST.TEST)) {\r\n\t\treturn 'https://testeuwa.puzzel.com/chat';\r\n\t} else if (contains(host, HOST.STAGE)) {\r\n\t\treturn 'https://stageuwa.puzzel.com/chat';\r\n\t}\r\n\r\n\t// Fallback to production URL-s, consider that the Chat is on customer's domain.\r\n\treturn 'https://euwa.puzzel.com/chat';\r\n}\r\n\r\nexport function getSurveyEndpoint() {\r\n\tconst { host } = window.location;\r\n\r\n\tif (typeof window.PUZZEL_CUSTOMER_INSIGHT_BASE !== 'undefined') {\r\n\t\treturn `${window.PUZZEL_CUSTOMER_INSIGHT_BASE}/customer-feedback/v1`;\r\n\t} else if (contains(host, HOST.LOCAL) || contains(host, HOST.DEV)) {\r\n\t\treturn 'https://devfeedback.puzzel.com/customer-feedback/v1';\r\n\t} else if (contains(host, HOST.TEST)) {\r\n\t\treturn 'https://testfeedback.puzzel.com/customer-feedback/v1';\r\n\t} else if (contains(host, HOST.STAGE)) {\r\n\t\treturn 'https://stagfeedback.puzzel.com/customer-feedback/v1';\r\n\t}\r\n\r\n\t// Fallback to production URL-s, consider that the Chat is on customer's domain.\r\n\treturn 'https://feedback.puzzel.com/customer-feedback/v1';\r\n}\r\n","/* eslint-disable no-magic-numbers */\r\nimport { getBaseURL } from './endpoints';\r\n\r\nexport const fileAttachment = (options = { file: null, elementWrapper: null }) => {\r\n\tconst iconThumbnail = document.createElement('img');\r\n\tconst picture = document.createElement('picture');\r\n\tconst { elementWrapper: element } = options;\r\n\r\n\tswitch (options?.file?.type) {\r\n\t\tcase 'image/png':\r\n\t\tcase 'image/jpeg':\r\n\t\tcase 'image/gif':\r\n\t\tcase 'image/svg':\r\n\t\tcase 'image/webp':\r\n\t\t\ticonThumbnail.src = URL.createObjectURL(options.file);\r\n\t\t\tbreak;\r\n\t\tcase 'application/pdf':\r\n\t\t\ticonThumbnail.src = `${getBaseURL()}/assets/file-pdf.svg`;\r\n\t\t\tbreak;\r\n\t\tcase 'text/plain':\r\n\t\t\ticonThumbnail.src = `${getBaseURL()}/assets/file-alt.svg`;\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\t// Consider: Maybe here is a place to call a notification on un-supported file-types\r\n\t\t\ticonThumbnail.src = `${getBaseURL()}/assets/file.svg`;\r\n\t}\r\n\r\n\ticonThumbnail.height = 60;\r\n\r\n\tconst nBytes = options?.file?.size;\r\n\tlet sOutput = nBytes + ' bytes';\r\n\r\n\t/**\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications\r\n\t */\r\n\r\n\t// optional code for multiples approximation\r\n\tconst aMultiples = ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];\r\n\r\n\tfor (let nMultiple = 0, nApprox = nBytes / 1024; nApprox > 1; nApprox /= 1024, nMultiple++) {\r\n\t\tsOutput = nApprox.toFixed(3) + ' ' + aMultiples[nMultiple] + ' (' + nBytes + ' bytes)';\r\n\t}\r\n\r\n\ticonThumbnail.onload = function() {\r\n\t\tURL.revokeObjectURL(this.src);\r\n\t};\r\n\r\n\ticonThumbnail.id = 'thumbnail_placeholder';\r\n\tconst filename = document.createElement('span');\r\n\tconst filesize = document.createElement('b');\r\n\r\n\t// attach the img thumbnail and meta data\r\n\tpicture.appendChild(iconThumbnail);\r\n\telement.prepend(picture);\r\n\telement.parentNode.insertBefore(filesize, element.nextSibling);\r\n\telement.parentNode.insertBefore(filename, element.nextSibling);\r\n\r\n\t// write the filename\r\n\tfilename.innerHTML = options?.file?.name;\r\n\tfilesize.innerHTML = sOutput;\r\n};\r\n\r\nexport const clearAttachedFiles = elementWrapper => {\r\n\tconst imgThumbnail = elementWrapper.querySelector('img');\r\n\r\n\tif (!imgThumbnail)\r\n\t\treturn;\r\n\r\n\telementWrapper.removeChild(elementWrapper.querySelector('picture'));\r\n\telementWrapper.parentNode.removeChild(elementWrapper.parentNode.querySelector('span'));\r\n\telementWrapper.parentNode.removeChild(elementWrapper.parentNode.querySelector('b'));\r\n};\r\n\r\n","import { attachedFilesCount } from '../actions/file';\r\nimport { clearAttachedFiles } from '../lib/file-attachment';\r\n\r\nconst effectFn = (dispatch, { state, elementId }) => {\r\n\tconst parent = document.querySelector(`#${elementId}`);\r\n\r\n\tdispatch(attachedFilesCount(state, 0));\r\n\tclearAttachedFiles(parent);\r\n};\r\n\r\nexport const RemoveNodeChildrenEffect = ({ state, elementId }) => [effectFn, { state, elementId }];\r\n\r\n\r\n","export const FILE_TYPES = {\r\n\tIMAGE_JPEG: 'image/jpeg',\r\n\tIMAGE_PNG: 'image/png',\r\n\tIMAGE_GIF: 'image/gif',\r\n\tIMAGE_SVG: 'image/svg+xml',\r\n\tIMAGE_AVIF: 'image/avif',\r\n\tIMAGE_WEBP: 'image/webp',\r\n\tPLAIN_TEXT: 'text/plain',\r\n\tPDF: 'application/pdf'\r\n};\r\n\r\nexport const MAX_FILE_SIZE_IN_BYTES = 5242880; // 5MB\r\nexport const MAX_FILE_SIZE_IN_MB = 5;\r\n","export const showNotificationFactory = text => state => ({ ...state, notification: text });\r\nexport const hideNotification = state => ({ ...state, notification: null });\r\n","/* eslint-disable max-classes-per-file */\r\n\r\nexport class HttpError extends Error {\r\n\tconstructor(error, statusCode) {\r\n\t\tsuper(error);\r\n\r\n\t\tthis.name = 'HttpError';\r\n\t\tthis.statusCode = statusCode;\r\n\t}\r\n}\r\n\r\nexport class NotAvailableError extends Error {\r\n\tconstructor(error) {\r\n\t\tsuper(error);\r\n\r\n\t\tthis.name = 'NotAvailableError';\r\n\t}\r\n}\r\n","import { HttpError } from './errors';\r\n\r\nexport class HttpClient {\r\n\tpost(endpoint, payload = {}) {\r\n\t\treturn this._request(endpoint, 'POST', JSON.stringify(payload));\r\n\t}\r\n\r\n\tpostMultipartFormData(endpoint, payload= {}, controller = null) {\r\n\t\tconst formData = new FormData();\r\n\r\n\t\tfor (const name in payload) {\r\n\t\t\tformData.append(name, payload[name]);\r\n\t\t}\r\n\r\n\t\tconst request = {\r\n\t\t\tmethod: 'POST',\r\n\t\t\tbody: formData,\r\n\t\t\tsignal: controller?.signal\r\n\t\t};\r\n\r\n\t\treturn fetch(endpoint, request).then(this._parseJSON);\r\n\t}\r\n\r\n\tget(endpoint, params = null) {\r\n\t\tendpoint = params ? endpoint.concat('?', this.createQueryString(params)) : endpoint;\r\n\t\treturn this._request(endpoint, 'GET');\r\n\t}\r\n\r\n\tdelete(endpoint, payload = {}) {\r\n\t\treturn this._request(endpoint, 'DELETE', JSON.stringify(payload));\r\n\t}\r\n\r\n\tcreateQueryString(params) {\r\n\t\treturn Object.keys(params).map(key => {\r\n\t\t\treturn [key, params[key]].map(encodeURIComponent).join('=');\r\n\t\t}).join('&');\r\n\t}\r\n\r\n\t_request(endpoint, method = 'GET', body = null) {\r\n\t\tconst headers = {\r\n\t\t\t'Content-Type': 'application/json'\r\n\t\t};\r\n\r\n\t\tconst request = { headers, method };\r\n\r\n\t\tif (body) {\r\n\t\t\trequest.body = body;\r\n\t\t}\r\n\r\n\t\treturn fetch(endpoint, request).then(this._parseJSON);\r\n\t}\r\n\r\n\t_parseJSON(response) {\r\n\t\tif (!response.ok) {\r\n\t\t\treturn response.text().then(text => {\r\n\t\t\t\tif (text) {\r\n\t\t\t\t\tlet message;\r\n\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tconst json = JSON.parse(text);\r\n\t\t\t\t\t\tmessage = json.message;\r\n\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\tmessage = null;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!message){\r\n\t\t\t\t\t\tmessage = text;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthrow new HttpError(message, response.status);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow new HttpError(response.statusText, response.status);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn response.text().then(text => {\r\n\t\t\ttry {\r\n\t\t\t\treturn JSON.parse(text);\r\n\t\t\t} catch (error) {\r\n\t\t\t\treturn text;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nconst instance = new HttpClient();\r\n\r\nexport default instance;\r\n","import { DEFAULT_LANGUAGE_CODE } from 'defs/defaults';\r\n\r\nimport defaultDictionary from '../../translations/uk.json';\r\n\r\nimport { mergeDeep } from './helpers/object';\r\nimport { getBaseURL } from './endpoints';\r\nimport HttpClient from './http-client';\r\nimport LoggingService from 'services/logging';\r\n\r\nconst dictionary = {\r\n\tlanguageCode: DEFAULT_LANGUAGE_CODE,\r\n\ttranslations: defaultDictionary\r\n};\r\n\r\nexport const setupDictionary = (languageCode, customLanguageUrl = null) => {\r\n\tlanguageCode = String(languageCode).toLowerCase();\r\n\r\n\treturn loadDictionary(languageCode, customLanguageUrl).then(result => {\r\n\t\tdictionary.translations = result.translations;\r\n\t\tdictionary.languageCode = result.languageCode;\r\n\t});\r\n};\r\n\r\nexport const tr = (key, data = {}) => {\r\n\tconst path = String(key).split('.');\r\n\tconst { translations } = dictionary;\r\n\r\n\tconst translation = path.reduce((currentDictionary, currentKey) => {\r\n\t\treturn currentDictionary[currentKey] || key;\r\n\t}, translations);\r\n\r\n\treturn Object.keys(data).reduce((translation, key) => {\r\n\t\treturn translation.replace(`{{${key}}}`, data[key]);\r\n\t}, translation);\r\n};\r\n\r\nconst loadDictionary = (languageCode, customLanguageUrl = null) => {\r\n\tif (customLanguageUrl) {\r\n\t\treturn externalDictionaryLoader(languageCode, customLanguageUrl);\r\n\t}\r\n\r\n\treturn defaultDictionaryLoader(languageCode);\r\n};\r\n\r\nconst externalDictionaryLoader = (languageCode, customLanguageUrl = null) => {\r\n\tconst params = { languageCode };\r\n\treturn HttpClient.get(customLanguageUrl, params).then(translations => {\r\n\t\ttranslations = mergeDeep(defaultDictionary, translations);\r\n\r\n\t\treturn { translations, languageCode };\r\n\t}).catch(error => {\r\n\t\tLoggingService.error('[Translations::External]', error);\r\n\t\treturn defaultDictionaryLoader(languageCode);\r\n\t});\r\n};\r\n\r\nconst defaultDictionaryLoader = (languageCode) => {\r\n\tif (languageCode === DEFAULT_LANGUAGE_CODE) {\r\n\t\treturn defaultDictionaryResolve();\r\n\t}\r\n\r\n\tconst translationsEndpoint = getTranslationsEndpoint(languageCode);\r\n\r\n\treturn HttpClient.get(translationsEndpoint).then(translations => {\r\n\t\ttranslations = mergeDeep(defaultDictionary, translations);\r\n\r\n\t\treturn { translations, languageCode };\r\n\t}).catch(error => {\r\n\t\tLoggingService.error('[Translations::Default]', error);\r\n\t\treturn defaultDictionaryResolve(languageCode);\r\n\t});\r\n};\r\n\r\nconst getTranslationsEndpoint = languageCode => {\r\n\treturn `${getBaseURL()}/translations/${languageCode}.json`;\r\n};\r\n\r\n// DEBUG: languageCode argument is for debugging, so we can visualize the translation usage, even if we don't have it\r\nconst defaultDictionaryResolve = (languageCode = null) => {\r\n\treturn Promise.resolve({\r\n\t\ttranslations: defaultDictionary,\r\n\t\tlanguageCode: languageCode || DEFAULT_LANGUAGE_CODE\r\n\t});\r\n};\r\n","import { MAX_FILE_SIZE_IN_BYTES, MAX_FILE_SIZE_IN_MB } from '../defs/file';\r\nimport { attachedFilesCount, attachFilesModeOff, attachFilesModeOn } from '../actions/file';\r\nimport { hideNotification, showNotificationFactory } from '../actions/notification';\r\nimport { disableChatArea } from '../actions/chat.helpers';\r\nimport { clearAttachedFiles, fileAttachment } from '../lib/file-attachment';\r\nimport { tr } from '../lib/translation';\r\n\r\nexport const AttachFileEffect = ({ state, value, elementId }) => [\r\n\t(dispatch, { state, value, elementId }) => {\r\n\t\tconst attachmentPreview = document.querySelector(`#${elementId}`);\r\n\r\n\t\tlet patch = hideNotification(state);\r\n\t\t\r\n\t\tif (value?.files.length) {\r\n\t\t\tfileAttachment({ file: value.files[0], elementWrapper: attachmentPreview });\r\n\r\n\t\t\tpatch = attachFilesModeOn(patch);\r\n\r\n\t\t\t// set attach mode to on\r\n\t\t\tdispatch(attachFilesModeOn);\r\n\t\t\tdispatch(attachedFilesCount(patch, value?.files.length));\r\n\r\n\t\t\tif (value.files[0].size > MAX_FILE_SIZE_IN_BYTES) {\r\n\t\t\t\tdispatch(showNotificationFactory(tr('attachment.maxSizeExceeded', { maxFileSize: MAX_FILE_SIZE_IN_MB })));\r\n\t\t\t\tdispatch(disableChatArea);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tpatch = attachFilesModeOff(patch);\r\n\r\n\t\t\t// set attach mode to off\r\n\t\t\tdispatch(attachFilesModeOff);\r\n\t\t\tclearAttachedFiles(attachmentPreview);\r\n\t\t\tdispatch(attachedFilesCount(patch, 0));\r\n\t\t}\r\n\t},\r\n\t{ state, value, elementId }\r\n];\r\n","import { CHAT_INPUT_SELECTOR } from '../defs/defaults';\r\n\r\n/* It might be more general for the future, but... */\r\nexport const EmojiMatchHeightEffect = props => [\r\n\t() => {\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst el = document.querySelector('.emojis-container');\r\n\t\t\tconst editor = document.querySelector(CHAT_INPUT_SELECTOR);\r\n\t\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\t\tel.style.height = `${editor.clientHeight + 2}px`;\r\n\t\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\t}, 300);\r\n\t},\r\n\tprops\r\n];\r\n","export const RemoveAttributeEffect = props => [\r\n\t(_, props) => {\r\n\t\tconst { attribute, selector } = props;\r\n\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\tsetTimeout(() => document.querySelector(selector).removeAttribute(attribute), 300);\r\n\t},\r\n\tprops\r\n];\r\n","import { getAPIEndpoint } from 'lib/endpoints';\r\nimport HttpClient from 'lib/http-client';\r\nimport ConfigService from './config';\r\n\r\nexport class CaptchaService {\r\n\tconstructor(config, httpClient) {\r\n\t\tthis._config = config;\r\n\t\tthis._http = httpClient;\r\n\t\tthis._endpoint = getAPIEndpoint();\r\n\t}\r\n\r\n\tgetConfig() {\r\n\t\treturn this.isEnabled().then(isEnabled => {\r\n\t\t\tif (!isEnabled) {\r\n\t\t\t\treturn { isEnabled: false };\r\n\t\t\t}\r\n\r\n\t\t\treturn this.getCode().then(result => ({\r\n\t\t\t\tisEnabled,\r\n\t\t\t\t...result\r\n\t\t\t}));\r\n\t\t});\r\n\t}\r\n\r\n\tisEnabled() {\r\n\t\tconst customerKey = this._config.get('customerKey');\r\n\t\treturn this._http.get(`${this._endpoint}/captcha/${customerKey}/enabled`);\r\n\t}\r\n\r\n\tgetCode() {\r\n\t\tconst customerKey = this._config.get('customerKey');\r\n\t\treturn this._http.post(`${this._endpoint}/captcha/${customerKey}`);\r\n\t}\r\n}\r\n\r\nconst instance = new CaptchaService(ConfigService, HttpClient);\r\n\r\nexport default instance;\r\n","import HttpClient from './lib/http-client';\r\nimport { getAPIEndpoint } from './lib/endpoints';\r\n\r\nimport ConfigService from 'services/config';\r\n\r\nexport class OIDC {\r\n\tconstructor() {\r\n\t\tthis._endpoint = getAPIEndpoint();\r\n\t}\r\n\r\n\tredirectToSSO() {\r\n\t\tconst currentUrl = encodeURIComponent(window.location.href);\r\n\t\tconst customerKey = ConfigService.get('customerKey');\r\n\t\tconst endpoint = `${this._endpoint}/auth/state/${customerKey}?value=${currentUrl}`;\r\n\r\n\t\treturn HttpClient.post(endpoint).then(authState => {\r\n\t\t\tconst authUrl = this._createAuthUrl(authState);\r\n\r\n\t\t\t// Redirect to the authentication URL\r\n\t\t\twindow.location.assign(authUrl);\r\n\r\n\t\t\t// Throw an error, so the bootstrapping sequence terminates\r\n\t\t\tthrow new Error('Redirecting to SSO provider...');\r\n\t\t});\r\n\t}\r\n\r\n\tpreserveAuthCode() {\r\n\t\tconst urlParams = new URLSearchParams(window.location.search);\r\n\t\tconst authCode = urlParams.get('authCode');\r\n\r\n\t\t// Save the auth code in localStorage\r\n\t\tConfigService.set('authCode', authCode, /* persistentStorage */ true);\r\n\r\n\t\t// Remove the auth code from the URL, without refreshing the page\r\n\t\tconst currentUrlNoAuthCode = window.location.href.\r\n\t\t\treplace(/&?authCode=[^&]+/, '').\r\n\t\t\treplace(/\\?$/, '');\r\n\r\n\t\twindow.history.pushState({}, document.title, currentUrlNoAuthCode);\r\n\t}\r\n\r\n\thasAuthCode() {\r\n\t\treturn ConfigService.get('authCode') !== null;\r\n\t}\r\n\r\n\thasAuthCodeParam() {\r\n\t\treturn window.location.href.indexOf('authCode') !== -1; // eslint-disable-line no-magic-numbers\r\n\t}\r\n\r\n\tgetRedirectUrl() {\r\n\t\treturn `${this._endpoint}/auth/redirect`;\r\n\t}\r\n\r\n\t_createAuthUrl(authState) {\r\n\t\tconst { endpointAuthorize } = ConfigService.get('oidc');\r\n\t\treturn `${endpointAuthorize}?${this._createUrlParams(authState)}`;\r\n\t}\r\n\r\n\t_createUrlParams(state) {\r\n\t\t/* eslint-disable camelcase */\r\n\t\tconst {\r\n\t\t\tscope,\r\n\t\t\tclientId: client_id,\r\n\t\t\tacrValues: acr_values\r\n\t\t} = ConfigService.get('oidc');\r\n\r\n\t\tconst redirect_uri = this.getRedirectUrl();\r\n\t\tconst params = {\r\n\t\t\tresponse_type: 'code',\r\n\t\t\tscope: scope || 'openid profile',\r\n\t\t\tredirect_uri,\r\n\t\t\tclient_id,\r\n\t\t\tstate\r\n\t\t};\r\n\r\n\t\tif (acr_values) {\r\n\t\t\tparams.acr_values = acr_values;\r\n\t\t}\r\n\r\n\t\treturn HttpClient.createQueryString(params);\r\n\t\t/* eslint-enable camelcase */\r\n\t}\r\n}\r\n\r\nexport default new OIDC();\r\n","import { NOTIFICATIONS_TTL } from 'defs/defaults';\r\n\r\nexport class NotificationService {\r\n\t// [id]: [notification, timeoutId]\r\n\t_notifications = {};\r\n\r\n\tconstructor(window, document) {\r\n\t\tthis._window = window;\r\n\t\tthis._document = document;\r\n\t\tthis._Notification = window.Notification;\r\n\t\tthis._permissionRequested = null;\r\n\t}\r\n\r\n\tnotify(title, { id = null, timeout = NOTIFICATIONS_TTL, showWhenFocused = false, options = {} } = {}) {\r\n\t\tif (!this._Notification) {\r\n\t\t\treturn Promise.resolve(null);\r\n\t\t}\r\n\r\n\t\tif (!showWhenFocused && this._document.visibilityState === 'visible') {\r\n\t\t\treturn Promise.resolve(null);\r\n\t\t}\r\n\r\n\t\treturn this.requestPermissions().then(() => {\r\n\t\t\tif (this._Notification.permission !== 'granted') {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tif (this._hasSavedNotification(id)) {\r\n\t\t\t\treturn this._resetTimeout(timeout, id);\r\n\t\t\t}\r\n\r\n\t\t\treturn this._createNotification(title, options, timeout, id);\r\n\t\t});\r\n\t}\r\n\r\n\trequestPermissions() {\r\n\t\tif (!this._Notification) {\r\n\t\t\treturn Promise.resolve(null);\r\n\t\t}\r\n\r\n\t\tif (!this._permissionRequested) {\r\n\t\t\tthis._permissionRequested = this._Notification.requestPermission();\r\n\t\t}\r\n\r\n\t\treturn this._permissionRequested;\r\n\t}\r\n\r\n\t_createTimeout(notification, timeout, id = null) {\r\n\t\treturn this._window.setTimeout(this._close.bind(this, notification, id), timeout);\r\n\t}\r\n\r\n\t_resetTimeout(timeout, id) {\r\n\t\tconst [ notification, timeoutId ] = this._notifications[id];\r\n\r\n\t\tif (timeout && timeoutId !== null) {\r\n\t\t\tthis._window.clearTimeout(timeoutId);\r\n\t\t\tthis._saveNotification(id, notification, this._createTimeout(notification, timeout, id));\r\n\t\t}\r\n\r\n\t\treturn notification;\r\n\t}\r\n\r\n\t_createNotification(title, options, timeout, id = null) {\r\n\t\tconst notification = new this._Notification(title, options);\r\n\r\n\t\tnotification.onclick = this._click.bind(this, notification, id);\r\n\r\n\t\tlet timeoutId = null;\r\n\r\n\t\tif (timeout) {\r\n\t\t\ttimeoutId = this._createTimeout(notification, timeout, id);\r\n\t\t}\r\n\r\n\t\tif (id !== null) {\r\n\t\t\tthis._saveNotification(id, notification, timeoutId);\r\n\t\t}\r\n\r\n\t\treturn notification;\r\n\t}\r\n\r\n\t_click(notification, id = null) {\r\n\t\tthis._window.focus();\r\n\t\tthis._close(notification, id);\r\n\t}\r\n\r\n\t_close(notification, id = null) {\r\n\t\tnotification.close();\r\n\r\n\t\tif (id !== null) {\r\n\t\t\tthis._saveNotification(id, null, null);\r\n\t\t}\r\n\t}\r\n\r\n\t_hasSavedNotification(id) {\r\n\t\treturn id !== null && this._notifications[id] && this._notifications[id][0] !== null;\r\n\t}\r\n\r\n\t_saveNotification(id, notification, timeoutId) {\r\n\t\tthis._notifications[id] = [notification, timeoutId];\r\n\t}\r\n}\r\n\r\nconst instance = new NotificationService(window, document);\r\n\r\nexport default instance;\r\n","import { MESSAGE_TYPE, ROLE } from 'defs/message';\r\n\r\nimport HttpClient from 'lib/http-client';\r\nimport { tr } from 'lib/translation';\r\nimport { getAPIEndpoint, getBaseURL } from 'lib/endpoints';\r\nimport { getLast } from 'lib/helpers/array';\r\n\r\nimport ConfigService from './config';\r\nimport NotificationService from './notification';\r\n\r\nexport class MessageService {\r\n\tmessages = [];\r\n\r\n\tconstructor(config, httpClient, notifications) {\r\n\t\tthis._config = config;\r\n\t\tthis._http = httpClient;\r\n\t\tthis._notifications = notifications;\r\n\t\tthis._endpoint = getAPIEndpoint();\r\n\t\tthis._chatBase = getBaseURL();\r\n\t\tthis._controller = null;\r\n\t}\r\n\r\n\tgetMessages() {\r\n\t\tconst session = this._config.get('session');\r\n\t\tconst lastMessageId = getLast(this.messages, { id: 0 }).id;\r\n\t\tconst endpoint = `${this._endpoint}/sessions/${session}/messages/${lastMessageId}`;\r\n\r\n\t\treturn this._http.get(endpoint).then(newMessages => {\r\n\t\t\t// EDGE CASE: Remove messages, which were already polled by the Polling Service, while sending a message\r\n\t\t\tnewMessages = this._removePollingDuplicates(newMessages);\r\n\r\n\t\t\tthis.messages = [\r\n\t\t\t\t...this.messages,\r\n\t\t\t\t...newMessages.map(this._getMessageData)\r\n\t\t\t];\r\n\r\n\t\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\t\tif (lastMessageId !== 0) {\r\n\t\t\t\tthis._notify(newMessages);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.messages;\r\n\t\t});\r\n\t}\r\n\r\n\tsend(content, type = MESSAGE_TYPE.TEXT) {\r\n\t\tconst session = this._config.get('session');\r\n\t\tconst nickName = this._config.get('nickName');\r\n\t\tconst endpoint = `${this._endpoint}/sessions/${session}/messages`;\r\n\r\n\t\tconst payload = {\r\n\t\t\ttype,\r\n\t\t\tcontent\r\n\t\t};\r\n\r\n\t\tif (nickName) {\r\n\t\t\tpayload.nickName = nickName;\r\n\t\t}\r\n\r\n\t\treturn this._http.post(endpoint, payload).then(() => {\r\n\t\t\treturn this.getMessages();\r\n\t\t});\r\n\t}\r\n\r\n\tattach(file, controller) {\r\n\t\tconst session = this._config.get('session');\r\n\t\tconst chatConfigId = this._config.get('configId');\r\n\t\tconst nickName = this._config.get('nickName');\r\n\t\tconst languageCode = this._config.get('languageCode');\r\n\t\tconst endpoint = `${this._endpoint}/sessions/${session}/attachment`;\r\n\t\tthis._controller = controller;\r\n\r\n\t\tconst payload = {\r\n\t\t\tfile,\r\n\t\t\tchatConfigId\r\n\t\t};\r\n\r\n\t\tif (nickName) {\r\n\t\t\tpayload.nickName = nickName;\r\n\t\t}\r\n\r\n\t\tif (languageCode) {\r\n\t\t\tpayload.languageCode = languageCode;\r\n\t\t}\r\n\r\n\t\treturn this._http.postMultipartFormData(endpoint, payload, this._controller).then(() => {\r\n\t\t\treturn this.getMessages();\r\n\t\t});\r\n\t}\r\n\r\n\tabort() {\r\n\t\tthis._controller.abort();\r\n\t}\r\n\r\n\t// TODO: Maybe better to implement session map and return the messages only for the corresponding session?\r\n\tremoveMessageData() {\r\n\t\tthis.messages = [];\r\n\t}\r\n\r\n\t_notify(newMessages) {\r\n\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\tconst hasNewMessages = newMessages.filter(({ type, role }) => type === MESSAGE_TYPE.TEXT && role === ROLE.AGENT).length > 0;\r\n\r\n\t\tconst {\r\n\t\t\tmsgNotificationText,\r\n\t\t\tnotifyChatterOnNewMessage\r\n\t\t} = this._config.pick([\r\n\t\t\t'msgNotificationText',\r\n\t\t\t'notifyChatterOnNewMessage'\r\n\t\t]);\r\n\r\n\t\tif (!hasNewMessages || !notifyChatterOnNewMessage) return;\r\n\r\n\t\tconst title = msgNotificationText || tr('chat.newMessage');\r\n\t\tconst icon = `${this._chatBase}/assets/new-message-icon.png`;\r\n\r\n\t\tthis._notifications.notify(title, {\r\n\t\t\tid: 'new-message-notification',\r\n\t\t\toptions: {\r\n\t\t\t\ticon\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_removePollingDuplicates(messages) {\r\n\t\treturn messages.filter(message => {\r\n\t\t\treturn !this.messages.some(existing => existing.id === message.id);\r\n\t\t});\r\n\t}\r\n\r\n\t_getMessageData(message) {\r\n\t\treturn {\r\n\t\t\tid: message.id,\r\n\t\t\tsent: message.sent,\r\n\t\t\tcontent: message.content,\r\n\t\t\ttype: message.type,\r\n\t\t\tuserId: message.userId,\r\n\t\t\trole: message.role,\r\n\t\t\tname: message.nickName,\r\n\t\t\targuments: message.arguments\r\n\t\t};\r\n\t}\r\n}\r\n\r\nconst instance = new MessageService(ConfigService, HttpClient, NotificationService);\r\n\r\nexport default instance;\r\n","import HttpClient from 'lib/http-client';\r\nimport { getAPIEndpoint } from 'lib/endpoints';\r\nimport { skipValues } from 'lib/helpers/object';\r\nimport { tr } from 'lib/translation';\r\nimport OIDC from '../oidc';\r\n\r\nimport MessageService from './message';\r\nimport NotificationService from './notification';\r\nimport ConfigService from './config';\r\n\r\nexport class ChatService {\r\n\tconstructor(config, messageService, notificationService, httpClient) {\r\n\t\tthis._config = config;\r\n\t\tthis._messageService = messageService;\r\n\t\tthis._notificationService = notificationService;\r\n\t\tthis._http = httpClient;\r\n\t\tthis._endpoint = getAPIEndpoint();\r\n\t}\r\n\r\n\tasync start(nickName, chatId, { captcha = {}, denyArchiving = false, subject = null, queueKey, startForm = {} } = {}) {\r\n\t\tconst endpoint = this._endpoint + '/sessions';\r\n\t\tconst {\r\n\t\t\tcustomerKey,\r\n\t\t\tqueueKey: configQueueKey,\r\n\t\t\tlanguageCode,\r\n\t\t\tshowAgentLoggedOnInIntro: showAgentLoggedOn,\r\n\t\t\tshowAgentActiveInIntro: showAgentActive,\r\n\t\t\tshowNumberInQueueInIntro: showNumberInQueue,\r\n\t\t\tshowIpAddressInIntro: showIpAddress,\r\n\t\t\tshowVariablesInIntro: showVariables,\r\n\t\t\tmsgWelcomeHeader,\r\n\t\t\tmsgWelcome,\r\n\t\t\tvariables,\r\n\t\t\tnotifyChatterOnNewMessage,\r\n\t\t\tauthCode,\r\n\t\t\tauthConnectionName,\r\n\t\t\tauthMapping\r\n\t\t} = this._config.pick([\r\n\t\t\t'customerKey',\r\n\t\t\t'queueKey',\r\n\t\t\t'languageCode',\r\n\t\t\t'showAgentLoggedOnInIntro',\r\n\t\t\t'showAgentActiveInIntro',\r\n\t\t\t'showNumberInQueueInIntro',\r\n\t\t\t'showIpAddressInIntro',\r\n\t\t\t'showVariablesInIntro',\r\n\t\t\t'msgWelcomeHeader',\r\n\t\t\t'msgWelcome',\r\n\t\t\t'variables',\r\n\t\t\t'notifyChatterOnNewMessage',\r\n\t\t\t'authCode',\r\n\t\t\t'authConnectionName',\r\n\t\t\t'authMapping'\r\n\t\t]);\r\n\r\n\t\tconst initialQueueKey = queueKey || configQueueKey;\r\n\r\n\t\tconst payload = {\r\n\t\t\tcustomerKey,\r\n\t\t\tqueueKey: initialQueueKey,\r\n\t\t\tlanguageCode,\r\n\t\t\tdenyArchiving,\r\n\t\t\tintro: {\r\n\t\t\t\tmsgWelcomeHeader,\r\n\t\t\t\tmsgWelcome,\r\n\t\t\t\tshowIpAddress,\r\n\t\t\t\tshowNumberInQueue,\r\n\t\t\t\tshowAgentLoggedOn,\r\n\t\t\t\tshowAgentActive,\r\n\t\t\t\tshowVariables,\r\n\t\t\t\tvariables: {\r\n\t\t\t\t\t...variables,\r\n\t\t\t\t\t...startForm\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tif (captcha.key && captcha.ticket) {\r\n\t\t\tpayload.captcha = {\r\n\t\t\t\tticket: captcha.ticket,\r\n\t\t\t\tkey: captcha.key\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (nickName) {\r\n\t\t\tpayload.nickName = nickName;\r\n\t\t}\r\n\r\n\t\tif (chatId) {\r\n\t\t\tpayload.chatId = chatId;\r\n\t\t}\r\n\r\n\t\tif (subject) {\r\n\t\t\tpayload.chatIssue = subject;\r\n\t\t}\r\n\r\n\t\tif (authCode) {\r\n\t\t\tpayload.auth = {\r\n\t\t\t\tcode: authCode,\r\n\t\t\t\tconnectionName: authConnectionName,\r\n\t\t\t\tmapping: authMapping\r\n\t\t\t};\r\n\r\n\t\t\tpayload.oidcRedirectUrl = OIDC.getRedirectUrl();\r\n\t\t}\r\n\r\n\t\t// Make sure that we don't have leftovers from previous chat. Possible scenarios:\r\n\t\t// 1. Polling occurred, while ending an old chat\r\n\t\t// 2. The user closed the page, before the chat was ended\r\n\t\tthis.removeChatData();\r\n\r\n\t\tconst messages = await this._http.post(endpoint, payload).then(({ iqSessionId, requestId, nickName: ssoNickName, chatId: ssoChatId }) => {\r\n\t\t\tthis._config.update({\r\n\t\t\t\tsession: `${this._config.get('customerKey')}-${iqSessionId}`,\r\n\t\t\t\tsessionId: iqSessionId,\r\n\t\t\t\tlastQueuePositionTime: new Date(),\r\n\t\t\t\tnickName: nickName || ssoNickName || null,\r\n\t\t\t\tchatId: chatId || ssoChatId || null,\r\n\t\t\t\tstartFormVariables: startForm,\r\n\t\t\t\tsubject,\r\n\t\t\t\trequestId,\r\n\t\t\t\tdenyArchiving,\r\n\t\t\t\tinitialQueueKey\r\n\t\t\t}, /* persistentStorage */ true);\r\n\r\n\t\t\tif (notifyChatterOnNewMessage) {\r\n\t\t\t\tthis._notificationService.requestPermissions();\r\n\t\t\t}\r\n\r\n\t\t\treturn this._messageService.getMessages();\r\n\t\t});\r\n\r\n\t\t// TODO [CSP-6891] Refactor the handling of the custom variables and remove the unnecessary storage.\r\n\t\t// Delete all custom variables after the start of the chat. This will not be necessary if CSP-6891 is implemented properly.\r\n\t\tthis._config.delete('startFormVariables');\r\n\r\n\t\treturn messages;\r\n\t}\r\n\r\n\tend(keepMessages = false) {\r\n\t\tconst session = this._config.get('session');\r\n\t\tconst requestId = this._config.get('requestId');\r\n\t\tconst nickName = this._config.get('nickName');\r\n\r\n\t\tconst nickNameParam = nickName ? '?nickName=' + nickName : '';\r\n\t\tconst endpoint = `${this._endpoint}/sessions/${session}/${requestId}${nickNameParam}`;\r\n\r\n\t\t// eslint-disable-next-line consistent-return\r\n\t\treturn this._http.delete(endpoint).then(() => {\r\n\t\t\tif (!keepMessages) {\r\n\t\t\t\treturn this.removeChatData();\r\n\t\t\t}\r\n\t\t}).catch(() => {\r\n\t\t\treturn this.removeChatData();\r\n\t\t});\r\n\t}\r\n\r\n\tstartSurvey(queueKey, { userId }) {\r\n\t\tconst baseSurveyData = this._getBaseSurveyData();\r\n\t\tconst session = this._config.get('session');\r\n\t\tconst endpoint = `${this._endpoint}/sessions/${session}/survey`;\r\n\r\n\t\treturn this._http.post(endpoint, {\r\n\t\t\t...baseSurveyData,\r\n\t\t\tofferSurvey: true,\r\n\t\t\tqueueKey,\r\n\t\t\tuserId\r\n\t\t}).then((result) => {\r\n\t\t\tthis._surveyQueueKey = queueKey;\r\n\t\t\treturn result;\r\n\t\t}).catch(() => {\r\n\t\t\tthis._surveyQueueKey = null;\r\n\t\t});\r\n\t}\r\n\r\n\tregisterSurvey(surveyId, { rating, comment, userId }) {\r\n\t\tconst baseSurveyData = this._getBaseSurveyData();\r\n\t\tconst session = this._config.get('session');\r\n\t\tconst endpoint = `${this._endpoint}/sessions/${session}/survey`;\r\n\r\n\t\treturn this._http.post(endpoint, {\r\n\t\t\t...baseSurveyData,\r\n\t\t\tparentSessionId: surveyId,\r\n\t\t\tsurveyComment: comment,\r\n\t\t\tsurveyResult: rating,\r\n\t\t\tqueueKey: this._surveyQueueKey,\r\n\t\t\tuserId\r\n\t\t});\r\n\t}\r\n\r\n\tsendTranscript(recipient) {\r\n\t\tconst {\r\n\t\t\tsession,\r\n\t\t\temailSubject,\r\n\t\t\tfromEmailDisplayName,\r\n\t\t\temailPreText: preText,\r\n\t\t\temailPostText: postText,\r\n\t\t\temailLogoUrl,\r\n\t\t\temailLogoLink,\r\n\t\t\temailLogoAlt,\r\n\t\t\temailTopBackgroundColor: topBackgroundColor,\r\n\t\t\temailTopLineColor: topLineColor,\r\n\t\t\temailBottomLineColor: bottomLineColor,\r\n\t\t\temailTextStyle: textStyle\r\n\t\t} = this._config.pick([\r\n\t\t\t'session',\r\n\t\t\t'emailSubject',\r\n\t\t\t'fromEmailDisplayName',\r\n\t\t\t'emailPreText',\r\n\t\t\t'emailPostText',\r\n\t\t\t'emailLogoUrl',\r\n\t\t\t'emailLogoLink',\r\n\t\t\t'emailLogoAlt',\r\n\t\t\t'emailTopBackgroundColor',\r\n\t\t\t'emailTopLineColor',\r\n\t\t\t'emailBottomLineColor',\r\n\t\t\t'emailTextStyle'\r\n\t\t]);\r\n\r\n\t\t// Matches the timezone id of a Date string:\r\n\t\t// Tue Jul 13 2037 11:00:00 GMT+0300 (<>)\r\n\t\tconst [, timeZoneId] = (new Date()).toString().match(/^.*\\((.*)\\)$/);\r\n\r\n\t\tconst endpoint = `${this._endpoint}/sessions/${session}/email`;\r\n\t\tconst payload = {\r\n\t\t\ttoEmailAddress: recipient,\r\n\t\t\temailSubject,\r\n\t\t\tfromEmailDisplayName,\r\n\t\t\tpreText,\r\n\t\t\tpostText,\r\n\t\t\ttimeZoneId,\r\n\t\t\tlogo: {\r\n\t\t\t\turl: emailLogoUrl,\r\n\t\t\t\tlink: emailLogoLink,\r\n\t\t\t\talt: emailLogoAlt\r\n\t\t\t},\r\n\t\t\tlayout: {\r\n\t\t\t\ttopBackgroundColor,\r\n\t\t\t\ttopLineColor,\r\n\t\t\t\tbottomLineColor,\r\n\t\t\t\ttextStyle\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn this._http.post(endpoint, skipValues(payload, [null]));\r\n\t}\r\n\r\n\tupdateVariables(variables) {\r\n\t\tconst {\r\n\t\t\tsession,\r\n\t\t\trequestId\r\n\t\t} = this._config.pick([\r\n\t\t\t'session',\r\n\t\t\t'requestId'\r\n\t\t]);\r\n\t\tconst endpoint = `${this._endpoint}/sessions/${session}/variables?requestId=${requestId}`;\r\n\r\n\t\treturn this._http.post(endpoint, variables);\r\n\t}\r\n\r\n\tremoveChatData() {\r\n\t\tconst obsoleteData = [\r\n\t\t\t'session',\r\n\t\t\t'sessionId',\r\n\t\t\t'requestId',\r\n\t\t\t'subject',\r\n\t\t\t'nickName',\r\n\t\t\t'chatId',\r\n\t\t\t'denyArchiving',\r\n\t\t\t'lastQueuePositionTime',\r\n\t\t\t'windowRect',\r\n\t\t\t'startFormVariables',\r\n\t\t\t'initialQueueKey',\r\n\t\t\t'authCode'\r\n\t\t];\r\n\r\n\t\tthis._config.delete(...obsoleteData);\r\n\t\tthis._config.set('authCode', null);\r\n\t\tthis._messageService.removeMessageData();\r\n\t}\r\n\r\n\t_getBaseSurveyData() {\r\n\t\tconst {\r\n\t\t\tmsgSurveyQuestion: surveyQuestion,\r\n\t\t\tsurveyMinScore,\r\n\t\t\tsurveyMaxScore,\r\n\t\t\tnickName\r\n\t\t} = this._config.pick([\r\n\t\t\t'surveyMaxScore',\r\n\t\t\t'surveyMinScore',\r\n\t\t\t'msgSurveyQuestion',\r\n\t\t\t'nickName'\r\n\t\t]);\r\n\r\n\t\treturn {\r\n\t\t\tnickName,\r\n\t\t\tsurveyQuestion: tr(surveyQuestion),\r\n\t\t\tsurveyMinScore,\r\n\t\t\tsurveyMaxScore,\r\n\t\t\tofferSurvey: false\r\n\t\t};\r\n\t}\r\n}\r\n\r\nconst instance = new ChatService(ConfigService, MessageService, NotificationService, HttpClient);\r\n\r\nexport default instance;\r\n","export function secondsToMinutes(seconds) {\r\n\treturn Math.floor(seconds / 60); // eslint-disable-line no-magic-numbers\r\n}\r\n","import HttpClient from 'lib/http-client';\r\nimport { getAPIEndpoint } from 'lib/endpoints';\r\nimport { secondsToMinutes } from 'lib/helpers/time';\r\nimport ConfigService from './config';\r\n\r\nexport class QueueService {\r\n\tconstructor(config, httpClient) {\r\n\t\tthis._config = config;\r\n\t\tthis._http = httpClient;\r\n\t\tthis._endpoint = getAPIEndpoint();\r\n\t}\r\n\r\n\tgetQueueDetails() {\r\n\t\tconst {\r\n\t\t\tcustomerKey,\r\n\t\t\tvisualQueueId\r\n\t\t} = this._config.pick([\r\n\t\t\t'customerKey',\r\n\t\t\t'visualQueueId'\r\n\t\t]);\r\n\r\n\t\treturn this._http.get(`${this._endpoint}/queue/${customerKey}/status/${visualQueueId}`).\r\n\t\t\tthen(this._transformQueueDetails.bind(this));\r\n\t}\r\n\r\n\tgetQueuePosition() {\r\n\t\tconst {\r\n\t\t\tsession,\r\n\t\t\trequestId\r\n\t\t} = this._config.pick([\r\n\t\t\t'session',\r\n\t\t\t'requestId'\r\n\t\t]);\r\n\r\n\t\treturn this._http.get(`${this._endpoint}/sessions/${session}/queueposition/${requestId}`);\r\n\t}\r\n\r\n\tgetTimeModule(timeId) {\r\n\t\tconst customerKey = this._config.get('customerKey');\r\n\t\t\r\n\t\treturn this._http.get(`${this._endpoint}/time/${customerKey}/${timeId}`);\r\n\t}\r\n\t\r\n\t_transformQueueDetails({ waitTimeAverage, waitTimeMax, ...rest }) {\r\n\t\treturn {\r\n\t\t\t...rest,\r\n\t\t\twaitTimeAverage: secondsToMinutes(waitTimeAverage),\r\n\t\t\twaitTimeMax: secondsToMinutes(waitTimeMax)\r\n\t\t};\r\n\t}\r\n}\r\n\r\nconst instance = new QueueService(ConfigService, HttpClient);\r\n\r\nexport default instance;\r\n","import {\r\n\tEVENTS,\r\n\tMESSAGE_TYPE,\r\n\tDEFAULT_TYPING_TIME,\r\n\tUSER_TYPE\r\n} from 'defs/message';\r\nimport { getLast } from 'lib/helpers/array';\r\n\r\nexport const isEvent = (message, type = null) => {\r\n\treturn message.type === MESSAGE_TYPE.EVENT && (type === null || message.content === type);\r\n};\r\n\r\nexport const getConnectedAgents = state => {\r\n\tconst joinedAgents = state.messages.filter(message => isEvent(message, EVENTS.USER_CONNECTED));\r\n\tconst disconnectedAgents = state.messages.filter(message => isEvent(message, EVENTS.USER_DISCONNECTED));\r\n\tconst userInfo = getUserInfo(state);\r\n\r\n\treturn joinedAgents.reduce((connectedAgents, agent) => {\r\n\t\tif (!disconnectedAgents.some(({ userId }) => userId === agent.userId)) {\r\n\t\t\tconnectedAgents.push({\r\n\t\t\t\t...agent,\r\n\t\t\t\t...(userInfo[agent.userId] || {})\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn connectedAgents;\r\n\t}, []);\r\n};\r\n\r\nexport const getUserInfo = state => {\r\n\treturn state.messages.filter(message => message.type === MESSAGE_TYPE.USER_INFO).reduce((output, message) => ({\r\n\t\t...output,\r\n\t\t[message.userId]: message.content\r\n\t}), {});\r\n};\r\n\r\nexport const isConnectedToAgent = state => {\r\n\tif (state.isConnected) {\r\n\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\treturn getConnectedAgents(state).length > 0;\r\n\t}\r\n\r\n\treturn false;\r\n};\r\n\r\nexport const isConnected = state => {\r\n\tif (state.isConnected) {\r\n\t\tconst hasDisconnection = state.messages.some(message => isEvent(message, EVENTS.USER_DISCONNECTED));\r\n\r\n\t\treturn !hasDisconnection || isConnectedToAgent(state) || isTransferring(state);\r\n\t}\r\n\r\n\treturn false;\r\n};\r\n\r\nexport const wasConnected = state => {\r\n\tif (state.isConnected) {\r\n\t\treturn state.messages.some(message => isEvent(message, EVENTS.USER_CONNECTED));\r\n\t}\r\n\r\n\treturn false;\r\n};\r\n\r\n// Calculates if the request is currently being transferred to another queue\r\nexport const isTransferring = state => {\r\n\tconst { messages } = state;\r\n\r\n\t// Search for the last EVENTS.REQUEST_PUT_IN_QUEUE message index\r\n\tconst lastTransferIndex = messages.reduce((lastTransferIndex, { type, content }, index) => {\r\n\t\tif (type === MESSAGE_TYPE.EVENT && content.indexOf(EVENTS.REQUEST_PUT_IN_QUEUE) === 0) { // eslint-disable-line no-magic-numbers\r\n\t\t\treturn index;\r\n\t\t}\r\n\r\n\t\treturn lastTransferIndex;\r\n\t}, -1); // eslint-disable-line no-magic-numbers\r\n\r\n\t// If there's no transfers, simply return false\r\n\tif (lastTransferIndex === -1) { // eslint-disable-line no-magic-numbers\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// Get the messages after the transfer message\r\n\tconst postTransferMessages = messages.slice(lastTransferIndex);\r\n\r\n\treturn postTransferMessages.reduce((isWaitingForTransfer, message) => {\r\n\t\t// If we find EVENTS.USER_CONNECTED, then we can consider that the request has already been transferred\r\n\t\tif (isEvent(message, EVENTS.USER_CONNECTED)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn isWaitingForTransfer;\r\n\t}, true); // true, by default\r\n};\r\n\r\nexport const getTransferData = transferContent => {\r\n\tconst [, queueKey, queueDescription] = transferContent.match(/^REQUEST_PUTINQUEUE: QueueKey:\\s+(.*)\\s+QueueDescript:\\s+(.*)$/);\r\n\r\n\treturn { queueKey, queueDescription };\r\n};\r\n\r\nexport const isEnded = state => {\r\n\tif (state.isConnected) {\r\n\t\treturn !isConnected(state);\r\n\t}\r\n\r\n\treturn false;\r\n};\r\n\r\nexport const lastConnectedAgent = state => {\r\n\tconst connectedAgents = state.messages.filter(message => isEvent(message, EVENTS.USER_CONNECTED));\r\n\tconst lastConnectedAgent = getLast(connectedAgents, {});\r\n\tconst lastConnectedAgentId = lastConnectedAgent.userId || null;\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tisConnectedToAgent: true,\r\n\t\tlastConnectedAgentId\r\n\t};\r\n};\r\n\r\nexport const agentsConnected = state => {\r\n\tconst connectedAgents = getConnectedAgents(state).map(({ userId, name, userType }) => ({ userId, name, userType }));\r\n\r\n\tlet hasBeenInConference = state.hasBeenInConference;\r\n\r\n\t// eslint-disable-next-line no-magic-numbers\r\n\tif (!state.hasBeenInConference && connectedAgents.length > 1) {\r\n\t\thasBeenInConference = true;\r\n\t}\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tconnectedAgents,\r\n\t\thasBeenInConference\r\n\t};\r\n};\r\n\r\nexport const agentEventTyping = messages => {\r\n\tconst lastMessage = getLast(messages);\r\n\tconst timesUp = Date.now() - Date.parse(lastMessage.sent);\r\n\tconst isEventMessage = isEvent(lastMessage, EVENTS.AGENTS_TYPING);\r\n\r\n\t// Make it concrete for an agent\r\n\treturn isEventMessage && lastMessage?.userId !== null && timesUp <= DEFAULT_TYPING_TIME;\r\n};\r\n\r\nexport const chatterTyping = state => ({ ...state, chatterIsTyping: true });\r\nexport const chatterIdle = state => ({ ...state, chatterIsTyping: false });\r\n\r\nexport const agentTyping = state => ({ ...state, agentIsTyping: true });\r\nexport const agentIdle = state => ({ ...state, agentIsTyping: false });\r\n\r\nexport const hasBeenConnectedWithHuman = state => {\r\n\tconst userInfo = getUserInfo(state);\r\n\r\n\treturn Object.keys(userInfo).reduce((wasConnectedWithHuman, userId) => {\r\n\t\treturn wasConnectedWithHuman || userInfo[userId].userType === USER_TYPE.HUMAN;\r\n\t}, false);\r\n};\r\n","export const chatInputHeightLock = state => ({ ...state, resetChatInput: true });\r\nexport const chatInputHeightUnlock = state => ({ ...state, resetChatInput: false });\r\n","import { attachFilesModeOff } from './file';\r\nimport { enableChatArea } from './chat.helpers';\r\nimport { AttachFileEffect, EmojiMatchHeightEffect, RemoveNodeChildrenEffect } from '../effects';\r\n\r\nexport const resetAttachedFileName = state => {\r\n\tlet patch = attachFilesModeOff(state);\r\n\tpatch = enableChatArea(patch);\r\n\r\n\treturn [\r\n\t\tpatch,\r\n\t\tEmojiMatchHeightEffect({ elementSelector: '.emojis-container' }),\r\n\t\tRemoveNodeChildrenEffect({ state: patch, elementId: 'attachment_preview' })\r\n\t];\r\n};\r\n\r\nexport const setAttachedFileName = (state, event) => ([\r\n\tstate,\r\n\tAttachFileEffect({ state, value: event.target, elementId: 'attachment_preview' })\r\n]);\r\n","import {\r\n\tEVENTS,\r\n\tMESSAGE_TYPE,\r\n\tMESSAGE_INFO_ENDED,\r\n\tMESSAGE_SCROLLING_SETTINGS,\r\n\tMESSAGE_WRAPPER_ELEMENT,\r\n\tMESSAGE_FREEZE_TIME,\r\n\tMESSAGE_QUEUE_ELEMENT\r\n} from 'defs/message';\r\nimport {\r\n\tCHAT_STARTS,\r\n\tCHAT_ENDED,\r\n\tCHAT_WINDOW_SHOWN,\r\n\tCONTACT_CENTRE_CLOSED,\r\n\tCHATTER_IS_TYPING,\r\n\tCHATTER_NOT_TYPING\r\n} from 'defs/events';\r\nimport { OIDC_CONNECTION_NAME } from 'defs/defaults';\r\nimport { EDITOR_INPUT_ID } from 'defs/input';\r\n\r\nimport {\r\n\tAsyncEffect,\r\n\tScrollIntoViewEffect,\r\n\tDelayActionEffect,\r\n\tFocusElementEffect,\r\n\tScrollToBottomEffect,\r\n\tToggleClassNameEffect,\r\n\tEmojiMatchHeightEffect\r\n} from 'effects';\r\n\r\nimport CaptchaService from 'services/captcha';\r\nimport ChatService from 'services/chat';\r\nimport ConfigService from 'services/config';\r\nimport MessageService from 'services/message';\r\nimport QueueService from 'services/queue';\r\n\r\nimport { contains, getLast } from 'lib/helpers/array';\r\nimport { mergeActions, noop } from 'lib/helpers/framework';\r\nimport { trim, lowercase, isNullOrEmpty } from 'lib/helpers/string';\r\nimport { tr } from 'lib/translation';\r\nimport { publishEvent } from 'lib/bridge';\r\nimport { isIOS15 } from '../lib/helpers/browser';\r\n\r\nimport {\r\n\tmarkAsStarted,\r\n\taddChatMessages,\r\n\tmarkAsEnded,\r\n\tmarkAsEndedByUser,\r\n\tmarkAsEndedByAgent,\r\n\tenableChatArea,\r\n\tdisableChatArea,\r\n\tmarkTranscriptAsSent,\r\n\tmarkTranscriptSendError,\r\n\tputOffQueue,\r\n\tputOnQueue,\r\n\tsetInitialConfig,\r\n\tgetTracker,\r\n\tmarkSSORedirection,\r\n\tgetDisplayedMessages,\r\n\tenableCustomerInsightSurvey\r\n} from './chat.helpers';\r\nimport {\r\n\tagentEventTyping,\r\n\tagentIdle,\r\n\twasConnected,\r\n\tisConnectedToAgent,\r\n\thasBeenConnectedWithHuman,\r\n\tisEnded,\r\n\tisTransferring,\r\n\tgetTransferData,\r\n\tchatterTyping,\r\n\tchatterIdle\r\n} from './events.helpers';\r\nimport { chatInputHeightLock } from './textarea.helpers';\r\n\r\nimport {\r\n\tgetStartFormEmail,\r\n\tgetStartFormName,\r\n\tgetStartFormSubject,\r\n\tgetStartFormQueue,\r\n\tgetStartFormTimeId,\r\n\tgetStartFormVariables,\r\n\tgetDenyArchiving,\r\n\tgetNewMessage,\r\n\tsetSurveyId\r\n} from './input';\r\nimport {\r\n\tresetAttachedFileName\r\n} from './file.helpers';\r\nimport {\r\n\tshowStartScreen,\r\n\tshowCaptchaScreen,\r\n\tshowChatScreen,\r\n\tshowEndScreen,\r\n\tshowBubble,\r\n\tshowSurveyScreen,\r\n\tshowRejectScreen\r\n} from './view';\r\n\r\nimport { showNotificationFactory, hideNotification } from './notification';\r\n\r\nimport OIDC from 'oidc';\r\n\r\nexport const startChat = (state, moduleLoader) => [\r\n\tstate,\r\n\tAsyncEffect({\r\n\t\taction: (state, { modules, captchaConfig }) => {\r\n\t\t\tconst patch = setInitialConfig(state, { modules, captchaConfig });\r\n\t\t\tconst {\r\n\t\t\t\tshowForm,\r\n\t\t\t\tauthConnectionName\r\n\t\t\t} = ConfigService.pick([\r\n\t\t\t\t'showForm',\r\n\t\t\t\t'authConnectionName'\r\n\t\t\t]);\r\n\r\n\t\t\t// Prevents double clicking, while redirecting to the SSO provider\r\n\t\t\tif (patch.isRedirectingToSSO) {\r\n\t\t\t\treturn patch;\r\n\t\t\t}\r\n\r\n\t\t\t// SSO with OIDC, when authCode is missing and authConnectionName is OIDC_CONNECTION_NAME\r\n\t\t\tif (lowercase(authConnectionName) === OIDC_CONNECTION_NAME && !OIDC.hasAuthCode()) {\r\n\t\t\t\treturn tryLoginWithOIDC(patch);\r\n\t\t\t}\r\n\r\n\t\t\tpublishEvent(state, CHAT_WINDOW_SHOWN);\r\n\r\n\t\t\tif (showForm) {\r\n\t\t\t\treturn showStartScreen(patch);\r\n\t\t\t} else if (!showForm && captchaConfig.isEnabled) {\r\n\t\t\t\treturn showCaptchaScreen(patch);\r\n\t\t\t}\r\n\r\n\t\t\treturn initiateChat(patch);\r\n\t\t},\r\n\t\trequest: () => loadInitialConfig(moduleLoader),\r\n\t\tloading: 'modules'\r\n\t})\r\n];\r\n\r\nexport const loadInitialConfig = moduleLoader => {\r\n\treturn moduleLoader().then(modules => {\r\n\t\treturn CaptchaService.getConfig().then(captchaConfig => ({\r\n\t\t\tcaptchaConfig,\r\n\t\t\tmodules\r\n\t\t}));\r\n\t});\r\n};\r\n\r\nexport const initiateChat = state => [\r\n\tstate,\r\n\tAsyncEffect({\r\n\t\taction: (state, messages) => {\r\n\t\t\treturn mergeActions(state, [\r\n\t\t\t\tpatch => markAsStarted(patch, messages),\r\n\t\t\t\tpatch => putOnQueue(patch),\r\n\t\t\t\tsendTrackerData,\r\n\t\t\t\tshowChatScreen\r\n\t\t\t]);\r\n\t\t},\r\n\t\tcatch: showRejectScreen,\r\n\t\trequest: dispatch => {\r\n\t\t\tconst name = getStartFormName(state);\r\n\t\t\tconst email = getStartFormEmail(state);\r\n\t\t\tconst subject = getStartFormSubject(state);\r\n\t\t\tconst queueKey = getStartFormQueue(state);\r\n\t\t\tconst denyArchiving = getDenyArchiving(state);\r\n\t\t\tconst startForm = getStartFormVariables(state);\r\n\t\t\tconst captcha = state.captchaConfig;\r\n\r\n\t\t\tconst _startChat = queueKey => {\r\n\t\t\t\tpublishEvent(state, CHAT_STARTS);\r\n\r\n\t\t\t\treturn ChatService.start(name, email, {\r\n\t\t\t\t\tcaptcha,\r\n\t\t\t\t\tdenyArchiving,\r\n\t\t\t\t\tsubject,\r\n\t\t\t\t\tqueueKey,\r\n\t\t\t\t\tstartForm\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\tconst selectedTimeId = getStartFormTimeId(state);\r\n\t\t\tconst {\r\n\t\t\t\ttimeOpenExits,\r\n\t\t\t\ttimeId2Map: configTimeId2Map,\r\n\t\t\t\ttimeId: configTimeId\r\n\t\t\t} = ConfigService.pick([\r\n\t\t\t\t'timeOpenExits',\r\n\t\t\t\t'timeId2Map',\r\n\t\t\t\t'timeId'\r\n\t\t\t]);\r\n\t\t\tconst isMappedQueueKey = !!(selectedTimeId || configTimeId2Map);\r\n\t\t\tconst timeId = selectedTimeId || configTimeId2Map || configTimeId;\r\n\r\n\t\t\tdispatch([state => ({ ...state, isContactcentreClosed: false })]);\r\n\r\n\t\t\tif (!timeId) {\r\n\t\t\t\treturn _startChat(queueKey);\r\n\t\t\t}\r\n\r\n\t\t\treturn QueueService.getTimeModule(timeId).then(exit => {\r\n\t\t\t\t// Set default queue key\r\n\t\t\t\tlet startQueueKey = queueKey;\r\n\r\n\t\t\t\t// Helper for rejecting the chat start\r\n\t\t\t\tconst _contactCentreClosed = errorMessage => {\r\n\t\t\t\t\tpublishEvent(state, CONTACT_CENTRE_CLOSED);\r\n\t\t\t\t\tdispatch([state => ({ ...state, isContactcentreClosed: true })]);\r\n\t\t\t\t\treturn Promise.reject(new Error(errorMessage));\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// There are 2 types of time id checks - multiple (mapped) and single\r\n\t\t\t\tif (isMappedQueueKey) {\r\n\t\t\t\t\t// Try to get the mapped queue key\r\n\t\t\t\t\tconst mappedQueueKey = getMappedQueueKey(timeId, exit);\r\n\r\n\t\t\t\t\t// Reject with error and raise contact centre closed event\r\n\t\t\t\t\tif (mappedQueueKey === null) {\r\n\t\t\t\t\t\treturn _contactCentreClosed(`[ChatStart] Couldn't find exit mapping for time id - ${timeId}.`);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Set the start queue key to the mapped queue key\r\n\t\t\t\t\tstartQueueKey = mappedQueueKey;\r\n\t\t\t\t} else if (!contains(timeOpenExits, exit, /* caseInsensitive */ true)) { // Check for single timeId\r\n\t\t\t\t\treturn _contactCentreClosed(`[ChatStart] Time module returned not opened exit - ${exit}`);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn _startChat(startQueueKey);\r\n\t\t\t});\r\n\t\t},\r\n\t\tloading: 'initiating'\r\n\t})\r\n];\r\n\r\nexport const getMappedQueueKey = (timeId, exit) => {\r\n\tconst timeId2QueueKeyMapping = ConfigService.get('timeId2QueueKeyMapping') || {};\r\n\tconst timeModule = timeId2QueueKeyMapping[timeId] || {};\r\n\tconst mappedQueueKey = Object.keys(timeModule).filter(key => lowercase(key) === lowercase(exit));\r\n\r\n\treturn timeModule[mappedQueueKey[0]] || null;\r\n};\r\n\r\nexport const endChatByAgent = (state, lastMessage) => {\r\n\tconst endMessage = {\r\n\t\t...MESSAGE_INFO_ENDED,\r\n\t\tsent: lastMessage.sent,\r\n\t\tcontent: tr('chat.messages.ended')\r\n\t};\r\n\r\n\tconst patch = chatInputHeightLock(state);\r\n\r\n\treturn [\r\n\t\tmarkAsEndedByAgent(patch, endMessage),\r\n\t\tAsyncEffect({\r\n\t\t\taction: state => state,\r\n\t\t\trequest: () => ChatService.end(true)\r\n\t\t}),\r\n\t\tScrollIntoViewEffect(endMessage.id, MESSAGE_WRAPPER_ELEMENT, MESSAGE_SCROLLING_SETTINGS.SCROLL_INTO_VIEW_INTERVAL, state)\r\n\t];\r\n};\r\n\r\nexport const sendOnEnterKey = (state, event) => {\r\n\tif (event.key === 'Enter' && !event.shiftKey) {\r\n\t\t// Prevent adding a new line to the textarea\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif (!state.chatAreaDisabled) {\r\n\t\t\treturn sendMessage(state);\r\n\t\t}\r\n\t}\r\n\r\n\treturn state;\r\n};\r\n\r\nexport const inputInteractionEvent = (state, event) => ([\r\n\tstate,\r\n\tToggleClassNameEffect(\r\n\t\tisIOS15,\r\n\t\t'div[data-puzzel-chat]',\r\n\t\t'iso-15-safari-keyboard-open',\r\n\t\tevent.type\r\n\t)\r\n]);\r\n\r\nexport const sendMessage = state => {\r\n\tconst messageContent = trim(getNewMessage(state));\r\n\r\n\tif (messageContent && messageContent.length) {\r\n\t\treturn sendMessageFactory(state, messageContent);\r\n\t}\r\n\r\n\treturn state;\r\n};\r\n\r\nexport const sendFile = (state, event) => {\r\n\tconst fileInput = event.target.querySelector('input[type=file]');\r\n\r\n\tconst patch = disableChatArea(state);\r\n\r\n\tconst queueMessages = dispatch => {\r\n\t\treturn MessageService.\r\n\t\t\tattach(fileInput.files[0], new AbortController()).\r\n\t\t\tcatch(error => dispatch(showNotificationFactory(error.message)));\r\n\t};\r\n\r\n\treturn [\r\n\t\tpatch,\r\n\t\tAsyncEffect({\r\n\t\t\taction: patch => enableChatArea(patch),\r\n\t\t\trequest: queueMessages,\r\n\t\t\tfinally: resetAttachedFileName,\r\n\t\t\tloading: 'sendingFile'\r\n\t\t}),\r\n\t\tScrollToBottomEffect({ elementId: MESSAGE_WRAPPER_ELEMENT })\r\n\t];\r\n};\r\n\r\nexport const abort = state => {\r\n\tMessageService.abort();\r\n\r\n\treturn state;\r\n};\r\n\r\nexport const sendOption = (state, options, optionType = MESSAGE_TYPE.OPTION_RESULT) => {\r\n\treturn sendMessageFactory(state, options, {\r\n\t\ttype: optionType,\r\n\t\tloading: 'sendingOption'\r\n\t});\r\n};\r\n\r\nexport const sendEvent = (state, type) => {\r\n\tif (!isConnectedToAgent(state)) {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tif (type === CHATTER_IS_TYPING) {\r\n\t\tMessageService.send(EVENTS.CHATTER_TYPING, MESSAGE_TYPE.EVENT);\r\n\r\n\t\treturn chatterTyping(state);\r\n\t} else if (type === CHATTER_NOT_TYPING) {\r\n\t\treturn chatterIdle(state);\r\n\t}\r\n\r\n\treturn state;\r\n};\r\n\r\nexport const sendMessageFactory = (state, message, { type = MESSAGE_TYPE.TEXT, loading = 'sendingMessage', preserveUserInput = false } = {}) => {\r\n\tconst queueMessages = () => {\r\n\t\tif (!Array.isArray(message)) {\r\n\t\t\treturn MessageService.send(message, type);\r\n\t\t}\r\n\r\n\t\treturn message.reduce((queue, content) => {\r\n\t\t\treturn queue.then(() => MessageService.send(content, type));\r\n\t\t}, Promise.resolve());\r\n\t};\r\n\r\n\tconst patch = mergeActions(state, [\r\n\t\tstate => sendEvent(state, CHATTER_NOT_TYPING),\r\n\t\thideNotification\r\n\t]);\r\n\r\n\treturn [\r\n\t\tdisableChatArea(patch),\r\n\t\tAsyncEffect({\r\n\t\t\taction: (state, messages) => addChatMessages(state, messages, preserveUserInput),\r\n\t\t\trequest: queueMessages,\r\n\t\t\tfinally: chatInputHeightLock,\r\n\t\t\tloading\r\n\t\t}),\r\n\t\tDelayActionEffect({ action: enableChatArea, timeout: MESSAGE_FREEZE_TIME }),\r\n\t\tFocusElementEffect({ elementId: EDITOR_INPUT_ID }),\r\n\t\tScrollToBottomEffect({ elementId: MESSAGE_WRAPPER_ELEMENT }),\r\n\t\tEmojiMatchHeightEffect({})\r\n\t];\r\n};\r\n\r\nexport const terminateChat = state => {\r\n\t// eslint-disable-next-line no-alert\r\n\tif (confirm(tr('chat.endConfirmation'))) {\r\n\t\tconst isSurveyEnabled = ConfigService.get('enableSurvey');\r\n\t\tconst surveyOnConnected = ConfigService.get('surveyOnlyWhenConnected');\r\n\t\tconst wasActive = wasConnected(state) || state.isEndedByAgent;\r\n\t\tconst wasConnectedWithHuman = hasBeenConnectedWithHuman(state);\r\n\t\tconst isEligibleForSurvey = (surveyOnConnected && wasActive && wasConnectedWithHuman) || !surveyOnConnected;\r\n\r\n\t\tif (isSurveyEnabled && isEligibleForSurvey) {\r\n\t\t\tconst [, ...loadSurvey] = startSurvey(state);\r\n\t\t\treturn disconnectChat(state, noop, loadSurvey);\r\n\t\t}\r\n\r\n\t\treturn disconnectChat(state, finalizeChat);\r\n\t}\r\n\r\n\treturn state;\r\n};\r\n\r\nexport const disconnectChat = (state, view, effects = []) => [\r\n\tmarkAsEndedByUser(state),\r\n\tAsyncEffect({\r\n\t\taction: state => {\r\n\t\t\tpublishEvent(state, CHAT_ENDED);\r\n\r\n\t\t\treturn view(markAsEnded(state));\r\n\t\t},\r\n\t\trequest: () => ChatService.end()\r\n\t}),\r\n\t...effects\r\n];\r\n\r\nexport const finalizeChat = state => {\r\n\tconst {\r\n\t\tchatId,\r\n\t\tdenyArchiving,\r\n\t\tsendEmailAutomatically,\r\n\t\tshowEndPage\r\n\t} = ConfigService.pick([\r\n\t\t'chatId',\r\n\t\t'denyArchiving',\r\n\t\t'sendEmailAutomatically',\r\n\t\t'showEndPage'\r\n\t]);\r\n\r\n\tconst finalize = showEndPage ? showEndScreen : showBubble;\r\n\r\n\tif (sendEmailAutomatically && !denyArchiving && !isNullOrEmpty(chatId)) {\r\n\t\treturn mergeActions(state, [\r\n\t\t\t(patch) => sendTranscript(patch, chatId),\r\n\t\t\tfinalize\r\n\t\t]);\r\n\t}\r\n\r\n\treturn finalize(state);\r\n};\r\n\r\nexport const updateChatMessages = (state, messages) => {\r\n\tconst {\r\n\t\tqueuePosition,\r\n\t\tisEndedByUser\r\n\t} = state;\r\n\r\n\tconst humanMessages = getDisplayedMessages(messages);\r\n\tconst patch = addChatMessages(state, messages, /* preserveUserInput */ true);\r\n\tconst isChatEnded = isEnded(patch);\r\n\tconst isWaitingForTransfer = isTransferring(patch);\r\n\tconst isInQueue = queuePosition > 0 || isWaitingForTransfer; // eslint-disable-line no-magic-numbers\r\n\tconst elementToScroll = isInQueue ? MESSAGE_QUEUE_ELEMENT : getLast(humanMessages).id;\r\n\r\n\tif (isChatEnded && !isEndedByUser && !isInQueue) {\r\n\t\treturn endChatByAgent({ ...patch, isInQueue, isEnded: isChatEnded }, getLast(humanMessages));\r\n\t}\r\n\r\n\tif (agentEventTyping(messages)) {\r\n\t\treturn { ...patch, isInQueue, isEnded: isChatEnded };\r\n\t}\r\n\r\n\treturn [\r\n\t\t{ ...patch, isInQueue, isEnded: isChatEnded },\r\n\t\tDelayActionEffect({ action: agentIdle, timeout: 0 }),\r\n\t\tScrollIntoViewEffect(elementToScroll, MESSAGE_WRAPPER_ELEMENT, MESSAGE_SCROLLING_SETTINGS.SCROLL_INTO_VIEW_INTERVAL, patch)\r\n\t];\r\n};\r\n\r\nexport const startSurvey = state => {\r\n\tconst customerInsightSurveyId = ConfigService.get('customerInsightSurveyId');\r\n\tconst isCustomerInsight = !!customerInsightSurveyId;\r\n\tconst queueKey = getSurveyQueueKey(state);\r\n\tconst userId = state.lastConnectedUserId;\r\n\r\n\treturn [\r\n\t\tstate,\r\n\t\tAsyncEffect({\r\n\t\t\taction: (state, surveyId) => {\r\n\t\t\t\tconst patch = isCustomerInsight ? enableCustomerInsightSurvey(state) : state;\r\n\t\t\t\treturn showSurveyScreen(setSurveyId(patch, surveyId));\r\n\t\t\t},\r\n\t\t\tcatch: finalizeChat,\r\n\t\t\trequest: () => {\r\n\t\t\t\treturn isCustomerInsight\r\n\t\t\t\t\t? Promise.resolve(customerInsightSurveyId)\r\n\t\t\t\t\t: ChatService.startSurvey(queueKey, { userId });\r\n\t\t\t}\r\n\t\t})\r\n\t];\r\n};\r\n\r\nexport const getSurveyQueueKey = state => {\r\n\tconst initialQueueKey = ConfigService.get('initialQueueKey');\r\n\tconst lastTransfer = state.messages.reduce((lastTransfer, { type, content }) => {\r\n\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\tif (type === MESSAGE_TYPE.EVENT && content.indexOf(EVENTS.REQUEST_PUT_IN_QUEUE) === 0) {\r\n\t\t\treturn content;\r\n\t\t}\r\n\r\n\t\treturn lastTransfer;\r\n\t}, null);\r\n\r\n\tif (lastTransfer === null) {\r\n\t\treturn initialQueueKey;\r\n\t}\r\n\r\n\treturn getTransferData(lastTransfer).queueKey;\r\n};\r\n\r\n\r\nexport const registerSurvey = (state, { surveyId, rating, comment, userId } = {}) => [\r\n\tstate,\r\n\tAsyncEffect({\r\n\t\taction: finalizeChat,\r\n\t\tcatch: finalizeChat,\r\n\t\trequest: () => ChatService.registerSurvey(surveyId, { rating, comment, userId })\r\n\t})\r\n];\r\n\r\nexport const sendTranscript = (state, recipient) => [\r\n\tstate,\r\n\tAsyncEffect({\r\n\t\taction: markTranscriptAsSent,\r\n\t\tcatch: markTranscriptSendError,\r\n\t\trequest: () => ChatService.sendTranscript(recipient),\r\n\t\tloading: 'sendingTranscript'\r\n\t})\r\n];\r\n\r\nexport const setQueueDetails = (state, queuePosition) => {\r\n\tconst queuePositionTime = ConfigService.get('lastQueuePositionTime');\r\n\r\n\tif (state.queuePosition !== queuePosition) {\r\n\t\tConfigService.set('lastQueuePositionTime', new Date(), true);\r\n\t}\r\n\r\n\tconst isConnected = isConnectedToAgent(state) || state.isEndedByAgent;\r\n\r\n\tif (isConnected) {\r\n\t\treturn putOffQueue({\r\n\t\t\t...state,\r\n\t\t\tqueuePosition: null\r\n\t\t});\r\n\t}\r\n\r\n\treturn putOnQueue({ ...state, queuePosition, queuePositionTime });\r\n};\r\n\r\nexport const sendTrackerData = state => {\r\n\tconst tracker = getTracker(state);\r\n\r\n\tif (!tracker) {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tconst tracks = tracker.getTrackerData();\r\n\r\n\tif (tracks.length === 0) { // eslint-disable-line no-magic-numbers\r\n\t\treturn state;\r\n\t}\r\n\r\n\treturn [\r\n\t\tstate,\r\n\t\tAsyncEffect({\r\n\t\t\taction: state => {\r\n\t\t\t\ttracker.clearTrackerData();\r\n\t\t\t\treturn state;\r\n\t\t\t},\r\n\t\t\trequest: () => MessageService.send(tracks, MESSAGE_TYPE.TRACKS),\r\n\t\t\tloading: 'sendingTracks'\r\n\t\t})\r\n\t];\r\n};\r\n\r\nexport const tryLoginWithOIDC = state => {\r\n\tOIDC.redirectToSSO();\r\n\r\n\treturn markSSORedirection(state);\r\n};\r\n","import { finalizeChat } from 'actions/chat';\r\n\r\nexport const SurveySubmitEffect = () => [\r\n\t(dispatch) => {\r\n\t\tconst queryTolerance = 300;\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst survey = document.querySelector('consumer-survey-app');\r\n\r\n\t\t\tif (!survey) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tsurvey.addEventListener('onComplete', () => dispatch(finalizeChat));\r\n\t\t}, queryTolerance);\r\n\t},\r\n\t{}\r\n];\r\n","export const markAsMinimized = (state, previousView) => ({\r\n\t...state,\r\n\tisMinimized: true,\r\n\tpreviousView\r\n});\r\n\r\nexport const markAsMaximized = state => ({\r\n\t...state,\r\n\tisMinimized: false,\r\n\tpreviousView: null\r\n});\r\n\r\nexport const getCurrentView = state => state.view;\r\nexport const getPreviousView = state => state.previousView;\r\n\r\nexport const showDelayedStarter = state => ({\r\n\t...state,\r\n\tisDelayedStarterShown: true\r\n});\r\n","import { CHAT_SELECTOR, CHAT_DRAG_HANDLE, CHAT_MIN_WIDTH, CHAT_MIN_HEIGHT } from 'defs/defaults';\r\nimport { CHAT_WINDOW_SHOWN, CHAT_WINDOW_MINIMIZED } from 'defs/events';\r\n\r\nimport { mergeActions } from 'lib/helpers/framework';\r\nimport { isMobile } from 'lib/helpers/browser';\r\nimport { publishEvent } from 'lib/bridge';\r\n\r\nimport ConfigService from 'services/config';\r\nimport { DraggableEffect, ResizableEffect, SwitchViewEffect, SizableEffect } from 'effects';\r\nimport { SurveySubmitEffect } from 'effects/survey-submit-effect';\r\nimport {\r\n\tmarkAsMinimized,\r\n\tmarkAsMaximized,\r\n\tgetPreviousView,\r\n\tgetCurrentView\r\n} from './view.helpers';\r\n\r\nimport { hideNotification } from 'actions/notification';\r\n\r\nexport const showBubble = state => switchView('bubble', state, /* lockScrollMobile */ false);\r\nexport const showStartScreen = state => switchView('start', state);\r\nexport const showCaptchaScreen = state => switchView('captcha', state);\r\nexport const showChatScreen = state => switchView('chat', state);\r\nexport const showSurveyScreen = state => {\r\n\tconst [patch, ...actions] = switchView('survey', state);\r\n\tconst surveyEffects = [patch, ...actions];\r\n\r\n\tif (patch.isCustomerInsightSurvey) {\r\n\t\tsurveyEffects.push(SurveySubmitEffect());\r\n\t}\r\n\r\n\treturn surveyEffects;\r\n};\r\n\r\nexport const showEndScreen = state => switchView('end', state);\r\nexport const showRejectScreen = state => switchView('reject', state);\r\n\r\nexport const switchView = (view, state, lockScrollMobile = true) => {\r\n\tconst scrollAction = lockScrollMobile ? disableScrollOnMobile : enableScrollOnMobile;\r\n\r\n\treturn mergeActions(state, [\r\n\t\t(patch) => showView(view, patch),\r\n\t\tscrollAction,\r\n\t\tenableSizing,\r\n\t\tenableDragging(view),\r\n\t\tenableResizing(view),\r\n\t\thideNotification\r\n\t]);\r\n};\r\n\r\nexport const enableDragging = view => state => {\r\n\tconst isDraggable = ConfigService.get('draggable') && !isMobile();\r\n\r\n\tif (!isDraggable) {\r\n\t\treturn state;\r\n\t}\r\n\r\n\treturn [\r\n\t\tstate,\r\n\t\tDraggableEffect({\r\n\t\t\telement: CHAT_SELECTOR,\r\n\t\t\thandle: CHAT_DRAG_HANDLE,\r\n\t\t\tpreserve: preserveChatWindowRect,\r\n\t\t\tview\r\n\t\t})\r\n\t];\r\n};\r\n\r\nexport const enableResizing = view => state => {\r\n\tconst isResizable = ConfigService.get('resizable') && !isMobile();\r\n\r\n\tif (!isResizable) {\r\n\t\treturn state;\r\n\t}\r\n\r\n\treturn [\r\n\t\tstate,\r\n\t\tResizableEffect({\r\n\t\t\telement: CHAT_SELECTOR,\r\n\t\t\tminWidth: CHAT_MIN_WIDTH,\r\n\t\t\tminHeight: CHAT_MIN_HEIGHT,\r\n\t\t\tpreserve: preserveChatWindowRect,\r\n\t\t\tview\r\n\t\t})\r\n\t];\r\n};\r\n\r\nexport const enableSizing = state => {\r\n\tif (isMobile()) {\r\n\t\treturn state;\r\n\t}\r\n\r\n\treturn [\r\n\t\tstate,\r\n\t\tSizableEffect(CHAT_SELECTOR, state)\r\n\t];\r\n};\r\n\r\nexport const showView = (view, state) => [\r\n\tstate,\r\n\tSwitchViewEffect(view)\r\n];\r\n\r\nexport const minimize = state => {\r\n\tconst currentView = getCurrentView(state);\r\n\r\n\tpublishEvent(state, CHAT_WINDOW_MINIMIZED);\r\n\r\n\treturn mergeActions(state, [\r\n\t\t(patch) => markAsMinimized(patch, currentView),\r\n\t\tshowBubble\r\n\t]);\r\n};\r\n\r\nexport const maximize = state => {\r\n\tconst previousView = getPreviousView(state);\r\n\r\n\tpublishEvent(state, CHAT_WINDOW_SHOWN);\r\n\r\n\tif (!previousView) {\r\n\t\treturn mergeActions(state, [\r\n\t\t\tmarkAsMaximized,\r\n\t\t\tshowStartScreen\r\n\t\t]);\r\n\t}\r\n\r\n\treturn mergeActions(state, [\r\n\t\tmarkAsMaximized,\r\n\t\t(patch) => switchView(previousView, patch)\r\n\t]);\r\n};\r\n\r\nexport const disableScrollOnMobile = state => {\r\n\tif (!isMobile()) {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tdocument.body.classList.add('mobile-lock-scroll');\r\n\r\n\treturn state;\r\n};\r\n\r\nexport const enableScrollOnMobile = state => {\r\n\tif (!isMobile()) {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tdocument.body.classList.remove('mobile-lock-scroll');\r\n\r\n\treturn state;\r\n};\r\n\r\nexport const preserveChatWindowRect = ({ left, top, width, height }) => {\r\n\tConfigService.set('windowRect', { left, top, width, height }, /* persistentStorage */ true);\r\n};\r\n","const timeFx = fx => {\r\n\treturn props => {\r\n\t\treturn [fx, {\r\n\t\t\taction: props.action,\r\n\t\t\trequest: props.request,\r\n\t\t\ttimeout: props.timeout\r\n\t\t}];\r\n\t};\r\n};\r\n\r\nexport const polling = timeFx((dispatch, props) => {\r\n\tlet stopped = false;\r\n\tlet timeoutId;\r\n\r\n\tconst invokeAction = () => {\r\n\t\ttimeoutId = setTimeout(() => {\r\n\t\t\tprops.request().then(result => {\r\n\t\t\t\tdispatch(props.action, result);\r\n\t\t\t}).finally(() => {\r\n\t\t\t\t// Check if the polling was stopped, while invoking a request\r\n\t\t\t\t!stopped && invokeAction();\r\n\t\t\t});\r\n\t\t}, props.timeout);\r\n\t};\r\n\r\n\tinvokeAction();\r\n\r\n\treturn () => {\r\n\t\tstopped = true;\r\n\t\tclearTimeout(timeoutId);\r\n\t};\r\n});\r\n","import {\r\n\tMESSAGE_SCROLLING_SETTINGS,\r\n\tMESSAGE_WRAPPER_ELEMENT,\r\n\tDEFAULT_TYPING_TIME,\r\n\tTYPING_INDICATION_ELEMENT\r\n} from 'defs/message';\r\n\r\nimport { ScrollIntoViewEffect, DelayActionEffect } from 'effects';\r\nimport { mergeActions } from 'lib/helpers/framework';\r\n\r\nimport {\r\n\tisConnected,\r\n\tagentEventTyping,\r\n\tagentIdle,\r\n\tagentTyping,\r\n\tlastConnectedAgent,\r\n\tagentsConnected\r\n} from './events.helpers';\r\n\r\nexport const updateChatEvents = state => {\r\n\treturn mergeActions(state, [\r\n\t\tonAgentIsTyping,\r\n\t\tonAgentConnected\r\n\t]);\r\n};\r\n\r\nexport const onAgentIsTyping = state => {\r\n\tconst isTypingEvent = agentEventTyping(state.messages);\r\n\r\n\tif (isTypingEvent) {\r\n\t\tconst patch = agentTyping(state);\r\n\r\n\t\treturn [\r\n\t\t\tpatch,\r\n\t\t\tDelayActionEffect({ action: agentIdle, timeout: DEFAULT_TYPING_TIME }),\r\n\t\t\tScrollIntoViewEffect(\r\n\t\t\t\tTYPING_INDICATION_ELEMENT,\r\n\t\t\t\tMESSAGE_WRAPPER_ELEMENT,\r\n\t\t\t\tMESSAGE_SCROLLING_SETTINGS.SCROLL_INTO_VIEW_INTERVAL,\r\n\t\t\t\tpatch\r\n\t\t\t)\r\n\t\t];\r\n\t}\r\n\r\n\treturn [\r\n\t\tstate,\r\n\t\tDelayActionEffect({ action: agentIdle, timeout: 0 })\r\n\t];\r\n};\r\n\r\nexport const onAgentConnected = state => {\r\n\tconst isAgentConnected = isConnected(state);\r\n\r\n\tif (isAgentConnected) {\r\n\t\treturn [\r\n\t\t\tmergeActions(state, [\r\n\t\t\t\tlastConnectedAgent,\r\n\t\t\t\tagentsConnected\r\n\t\t\t])\r\n\t\t];\r\n\t}\r\n\r\n\treturn [state];\r\n};\r\n","import { DEFAULT_POLLING_FREQUENCY } from 'defs/defaults';\r\nimport { DEFAULT_TYPING_CHECK_TIME } from 'defs/message';\r\n\r\nimport { polling } from 'subscriptions/polling';\r\n\r\nimport { setQueueDetails, updateChatMessages } from 'actions/chat';\r\nimport { updateChatEvents } from 'actions/events';\r\nimport MessageService from './message';\r\nimport QueueService from './queue';\r\n\r\nexport class PollingService {\r\n\t_subscriptions = new Map();\r\n\r\n\t_suspendedSubscriptions = new Map();\r\n\r\n\tconstructor(messageService, queueService) {\r\n\t\tthis._messageService = messageService;\r\n\t\tthis._queueService = queueService;\r\n\r\n\t\tthis._registerProvider('messages', {\r\n\t\t\taction: (state, messages) => updateChatMessages(state, messages),\r\n\t\t\trequest: () => this._messageService.getMessages(),\r\n\t\t\ttimeout: DEFAULT_POLLING_FREQUENCY\r\n\t\t});\r\n\r\n\t\tthis._registerProvider('events', {\r\n\t\t\taction: updateChatEvents,\r\n\t\t\trequest: () => Promise.resolve(),\r\n\t\t\ttimeout: DEFAULT_TYPING_CHECK_TIME\r\n\t\t});\r\n\r\n\t\tthis._registerProvider('queue', {\r\n\t\t\taction: setQueueDetails,\r\n\t\t\trequest: () => this._queueService.getQueuePosition(),\r\n\t\t\ttimeout: DEFAULT_POLLING_FREQUENCY\r\n\t\t});\r\n\t}\r\n\r\n\t_registerProvider(key, props) {\r\n\t\tthis._subscriptions.set(key, polling(props));\r\n\t}\r\n\r\n\tget subscriptions() {\r\n\t\treturn [...this._subscriptions.values()];\r\n\t}\r\n\r\n\tdelete(subscription) {\r\n\t\tif (this._subscriptions.has(subscription)) {\r\n\t\t\treturn this._subscriptions.delete(subscription);\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\tsuspend(subscription) {\r\n\t\tif (this._subscriptions.has(subscription)) {\r\n\t\t\tthis._suspendedSubscriptions.set(subscription, this._subscriptions.get(subscription));\r\n\t\t\treturn this._subscriptions.delete(subscription);\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\trestore(subscription) {\r\n\t\tif (this._suspendedSubscriptions.has(subscription)) {\r\n\t\t\tthis._subscriptions.set(subscription, this._suspendedSubscriptions.get(subscription));\r\n\t\t}\r\n\r\n\t\treturn this._subscriptions;\r\n\t}\r\n}\r\n\r\nconst instance = new PollingService(MessageService, QueueService);\r\n\r\nexport default instance;\r\n","import { CHAT_WINDOW_CLOSED } from 'defs/events';\r\n\r\nimport { publishEvent } from 'lib/bridge';\r\n\r\nimport { terminateChat, finalizeChat } from 'actions/chat';\r\nimport { showBubble } from 'actions/view';\r\nimport { ChatService } from '../../services';\r\n\r\nexport const nextViewAction = state => {\r\n\tconst {\r\n\t\tview,\r\n\t\tisConnected,\r\n\t\tisEndedByAgent\r\n\t} = state;\r\n\r\n\t// If the user is in the chat view and have not terminated the chat from his side,\r\n\t// invoke the terminateChat action to handle the next action - termination API call, survey, etc\r\n\tif (view === 'chat' && (isConnected || isEndedByAgent)) {\r\n\t\treturn terminateChat;\r\n\t}\r\n\r\n\tif (view === 'survey') {\r\n\t\treturn finalizeChat;\r\n\t}\r\n\r\n\tpublishEvent(state, CHAT_WINDOW_CLOSED);\r\n\r\n\t// Remove the data stored in the local storage\r\n\tChatService.removeChatData();\r\n\r\n\treturn showBubble;\r\n};\r\n","import { STYLES_PREFIX } from '../../defs/defaults';\r\n\r\nexport const CloseIcon = () => (\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport const MinimizeIcon = () => (\r\n\t\r\n\t\t\r\n\t\r\n);\r\n","export default (styleVariables) => {\r\n\tconst {\r\n\t\talertBorderRadius,\r\n\t\talertSuccessBackground,\r\n\t\talertSuccessBorderColor,\r\n\t\talertSuccessColor,\r\n\t\talertErrorBackground,\r\n\t\talertErrorBorderColor,\r\n\t\talertErrorColor\r\n\t} = styleVariables;\r\n\r\n\treturn {\r\n\t\talerts: {\r\n\t\t\t'border-radius': alertBorderRadius,\r\n\t\t\t'border': '1px solid transparent',\r\n\t\t\t'margin-top': 20,\r\n\t\t\tpadding: 8,\r\n\t\t\t'break-word': 'break-word',\r\n\r\n\t\t\t'&.success': {\r\n\t\t\t\t'background-color': alertSuccessBackground,\r\n\t\t\t\t'border-color': alertSuccessBorderColor,\r\n\t\t\t\tcolor: alertSuccessColor\r\n\t\t\t},\r\n\r\n\t\t\t'&.error': {\r\n\t\t\t\t'background-color': alertErrorBackground,\r\n\t\t\t\t'border-color': alertErrorBorderColor,\r\n\t\t\t\tcolor: alertErrorColor\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n","/* eslint-disable no-magic-numbers */\r\nimport { adjust } from 'styles/color-helpers';\r\nimport { toArrayOf } from '../../lib/helpers/string';\r\n\r\nexport default (variables) => {\r\n\tconst {\r\n\t\tbuttonHeight,\r\n\t\tbuttonPrimaryTextSize,\r\n\t\tbuttonPrimaryTextTransform,\r\n\t\tbuttonDisabledBackgroundColor,\r\n\t\tbuttonDisabledColor,\r\n\t\tbuttonPrimaryWidth,\r\n\t\tbuttonPrimaryBorderRadius,\r\n\t\tbuttonPrimaryBorder,\r\n\t\tbuttonPrimaryTextColor,\r\n\t\tbuttonPrimaryNormal,\r\n\t\tbuttonPrimaryFocus,\r\n\t\tbuttonPrimaryHover\r\n\t} = variables;\r\n\r\n\tconst buttonBorder = toArrayOf(buttonPrimaryBorder, false);\r\n\tconst buttonBorderFocus = adjust(buttonPrimaryFocus, 95, 'darken');\r\n\tconst buttonBorderHover = adjust(buttonPrimaryHover, 95, 'darken');\r\n\r\n\treturn {\r\n\t\tbutton: {\r\n\t\t\t'background-color': buttonPrimaryNormal,\r\n\t\t\t'border-radius': buttonPrimaryBorderRadius,\r\n\t\t\tborder: buttonBorder,\r\n\t\t\t'min-height': buttonHeight,\r\n\t\t\tcolor: buttonPrimaryTextColor,\r\n\t\t\tpadding: '10px 15px',\r\n\t\t\t'text-transform': buttonPrimaryTextTransform,\r\n\t\t\t'font-weight': 600,\r\n\t\t\t'font-size': buttonPrimaryTextSize,\r\n\t\t\tcursor: 'pointer',\r\n\t\t\t'&:hover': {\r\n\t\t\t\t'background-color': buttonPrimaryHover,\r\n\t\t\t\t'border-color': buttonBorderHover\r\n\t\t\t},\r\n\t\t\t'&:focus': {\r\n\t\t\t\t'background-color': buttonPrimaryFocus,\r\n\t\t\t\t'border-color': buttonBorderFocus\r\n\t\t\t},\r\n\t\t\t'&:not(.is-icon)': {\r\n\t\t\t\t'min-width': buttonPrimaryWidth\r\n\t\t\t},\r\n\t\t\t'&.is-outline-focused:focus': {\r\n\t\t\t\t'background-color': buttonPrimaryFocus,\r\n\t\t\t\t'border-color': buttonBorderFocus,\r\n\t\t\t\toutline: 'none'\r\n\t\t\t},\r\n\t\t\t'&:disabled': {\r\n\t\t\t\tborder: 'none'\r\n\t\t\t},\r\n\t\t\t'&.is-centered': {\r\n\t\t\t\tdisplay: 'block',\r\n\t\t\t\tmargin: 'auto'\r\n\t\t\t},\r\n\t\t\t'&.is-icon': {\r\n\t\t\t\tborder: 0,\r\n\t\t\t\t'border-radius': 0,\r\n\t\t\t\t'background-color': 'transparent',\r\n\t\t\t\tpadding: 0,\r\n\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t'align-items': 'center',\r\n\t\t\t\t'justify-content': 'center',\r\n\t\t\t\t'&:focus': {\r\n\t\t\t\t\t'background-color': buttonPrimaryFocus,\r\n\t\t\t\t\t'border-color': buttonBorderFocus,\r\n\t\t\t\t\toutline: 0\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'&:not(.is-icon):disabled, &[disabled]:not(.is-icon)': {\r\n\t\t\t\t'background-color': buttonDisabledBackgroundColor,\r\n\t\t\t\tcolor: buttonDisabledColor\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n","import { STYLES_PREFIX } from '../../defs/defaults';\r\n\r\nexport default {\r\n\tform: {\r\n\t\t'& label': {\r\n\t\t\tdisplay: 'block',\r\n\t\t\tmargin: '10px 0 5px',\r\n\t\t\t'font-size': '0.825em',\r\n\t\t\t'font-weight': 600\r\n\t\t},\r\n\t\t[`& .${STYLES_PREFIX}field`]: {\r\n\t\t\t'margin-bottom': '10px',\r\n\r\n\t\t\t'&:last-child': {\r\n\t\t\t\t'margin-bottom': 0\r\n\t\t\t},\r\n\r\n\t\t\t[`&.${STYLES_PREFIX}checkbox`]: {\r\n\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t'margin-top': 10,\r\n\r\n\t\t\t\t'& > input': {\r\n\t\t\t\t\tflex: '0 0 13px',\r\n\t\t\t\t\tmargin: '1px 10px 0 0'\r\n\t\t\t\t},\r\n\r\n\t\t\t\t'& > label': {\r\n\t\t\t\t\tflex: 1,\r\n\t\t\t\t\tmargin: 0\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n","/* eslint-disable no-magic-numbers */\r\nimport { adjust } from './color-helpers';\r\nimport variables from './variables';\r\n\r\nconst { chatFocusBorderColor, editorInputBorderColor } = variables();\r\n\r\nconst defaultFocus = (shadowColor, hasBorder, borderColor = chatFocusBorderColor) => ({\r\n\t'box-shadow': defaultFocusBoxShadow(shadowColor),\r\n\t'border-color': hasBorder ? borderColor : 'none',\r\n\toutline: 0\r\n});\r\n\r\nconst defaultFocusBoxShadow = (shadowColor = '#222') =>\r\n\t`1px 1px 3px ${editorInputBorderColor}, inset 0px 0px 2px ${adjust(shadowColor, 100, 'lighten')}`;\r\n\r\n/**\r\n * A mixin, helping to set a container flex properties. Part of the CSS flexbox\r\n * @param {Object} props - a shortcut for properties flex-warp and flex-direction. flex-direction + flex-wrap\r\n * @param {Array} props.shortcut - a shortcut for properties flex-warp and flex-direction. flex-direction + flex-wrap\r\n * @param {String} props.[justify = center] - default property for justify-content *\r\n * @param {String} props.[alignContent = center] - default property for align-content\r\n * @param {String} props.[alignItems = center] - default property for align-items\r\n * @param {String} props.[type = flex] - the type of the flex. \"flex\" | \"inline-flex\"\r\n * @returns {Object} - an object containing the display properties.\r\n */\r\n\r\nexport const flex = ({\r\n\tshortcut = ['row', 'no-wrap'],\r\n\tjustify = 'center',\r\n\talignContent = 'center',\r\n\talignItems = 'center',\r\n\ttype = 'flex'\r\n} = {}) => ({\r\n\tdisplay: type,\r\n\t'flex-flow': shortcut.join(' '),\r\n\t'align-content': alignContent,\r\n\t'align-items': alignItems,\r\n\t'justify-content': justify\r\n});\r\n\r\n/**\r\n * A mixin, helping to set an inner border through the inset box-shadow\r\n * @param {Object} props - props\r\n * @param {String} props.[color = '#ffffff'] - the color of the border\r\n * @param {Number} props.[thickness = 1] - the thickness of the border\r\n * @param {Object} props.[saturation = { amount: 60, direction: 'darken'}] - default property for the color saturation\r\n * @returns {Object} - an object containing the border properties.\r\n */\r\n\r\nconst innerBorder = ({\r\n\tcolor = '#ffffff',\r\n\tthickness = 0,\r\n\tsaturation = { }\r\n}) => {\r\n\tif (thickness === 0) {\r\n\t\treturn {\r\n\t\t\t'border-color': 'transparent'\r\n\t\t};\r\n\t}\r\n\r\n\tif (saturation?.direction && saturation?.amount) {\r\n\t\treturn {\r\n\t\t\tborder: `${thickness + 1}px solid ${adjust(color, saturation.amount, saturation.direction)};`\r\n\t\t};\r\n\t}\r\n\r\n\treturn {\r\n\t\tborder: `${thickness + 1}px solid ${color};` // Trick to avoid jagged outline glitch\r\n\t};\r\n};\r\n\r\n/**\r\n * A mixin to produce circular mask using CSS clip-path property\r\n * @param {Number} size - the width and height of the shape\r\n * @param {String} shape - the shape of the mask to be applied\r\n * @return {Object} - the object containing the properties.\r\n */\r\nconst clipMask = (shape= 'circle', size = 40) => ({\r\n\t'width': size,\r\n\t'height': size,\r\n\t'clip-path': `${shape}(${size / 2}px at center)`\r\n});\r\n\r\nexport { defaultFocus, defaultFocusBoxShadow, innerBorder, clipMask };\r\n","/* eslint-disable no-magic-numbers */\r\nimport { defaultFocus } from '../mixins';\r\nimport { pSBC } from '../third-party/psbc';\r\n\r\nexport default (variables) => {\r\n\tconst {\r\n\t\tinputBorderRadius,\r\n\t\tchatFocusBorderColor,\r\n\t\tinputHeight,\r\n\t\tinputBackgroundColor,\r\n\t\tinputDisabledBackgroundColor,\r\n\t\tinputBorderColor,\r\n\t\tinputColor\r\n\t} = variables;\r\n\tconst darken = pSBC(-40, inputBorderColor);\r\n\r\n\treturn {\r\n\t\tinput: {\r\n\t\t\t'background-color': inputBackgroundColor,\r\n\t\t\tborder: `1px solid ${inputBorderColor}`,\r\n\t\t\t'border-radius': inputBorderRadius,\r\n\t\t\theight: inputHeight,\r\n\t\t\tcolor: inputColor,\r\n\t\t\twidth: '100%',\r\n\t\t\t'font-size': '0.9em',\r\n\t\t\tpadding: [[5, 8]],\r\n\t\t\t'box-sizing': 'border-box',\r\n\t\t\t'&:hover': {\r\n\t\t\t\t'border-color': darken\r\n\t\t\t},\r\n\t\t\t'&:active': {\r\n\t\t\t\t'border-color': darken\r\n\t\t\t},\r\n\t\t\t'&:focus': defaultFocus(chatFocusBorderColor, true, chatFocusBorderColor),\r\n\t\t\t'&[type=\"date\"]': {\r\n\t\t\t\tdisplay: 'block',\r\n\t\t\t\t'-webkit-appearance': 'textfield',\r\n\t\t\t\t'-moz-appearance': 'textfield'\r\n\t\t\t},\r\n\t\t\t'&[type=\"checkbox\"]': {\r\n\t\t\t\twidth: 'initial',\r\n\t\t\t\theight: 'initial'\r\n\t\t\t},\r\n\t\t\t'&[disabled], &:disabled': {\r\n\t\t\t\t'background-color': inputDisabledBackgroundColor\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n","import { DEFAULT_EDITOR } from 'defs/defaults';\r\n\r\nexport const textarea = theme => {\r\n\tconst {\r\n\t\teditorInputBorderFocusColor,\r\n\t\teditorInputBorderColor,\r\n\t\teditorBorderRadius,\r\n\t\teditorBackgroundDisabledColor,\r\n\t\teditorBorderDisabledColor,\r\n\t\teditorPlaceholderTextColor,\r\n\t\teditorTextColor,\r\n\t\tfontSize\r\n\t} = theme;\r\n\r\n\treturn {\r\n\t\ttextarea: {\r\n\t\t\tcolor: editorTextColor,\r\n\t\t\tborder: `1px solid ${editorInputBorderColor}`,\r\n\t\t\t'border-radius': editorBorderRadius,\r\n\t\t\t'font-size': `${fontSize}px`,\r\n\t\t\t'word-wrap': 'break-word',\r\n\t\t\t'line-height': '18px',\r\n\t\t\tpadding: '10px 15px',\r\n\t\t\theight: DEFAULT_EDITOR.INITIAL_HEIGHT,\r\n\t\t\t'min-height': `${DEFAULT_EDITOR.INITIAL_HEIGHT}px !important`,\r\n\t\t\t'box-sizing': 'border-box',\r\n\t\t\tresize: 'none',\r\n\t\t\tflex: 1,\r\n\t\t\toutline: 'none',\r\n\t\t\tmargin: 0,\r\n\t\t\t'&:focus': {\r\n\t\t\t\tborder: `1px solid ${editorInputBorderFocusColor}`\r\n\t\t\t},\r\n\t\t\t'&:disabled': {\r\n\t\t\t\t'background-color': editorBackgroundDisabledColor,\r\n\t\t\t\t'border-color': editorBorderDisabledColor\r\n\t\t\t},\r\n\t\t\t'&::-webkit-input-placeholder': {\r\n\t\t\t\tcolor: editorPlaceholderTextColor\r\n\t\t\t},\r\n\t\t\t'&:-moz-placeholder': {\r\n\t\t\t\tcolor: editorPlaceholderTextColor\r\n\t\t\t},\r\n\t\t\t'&::-moz-placeholder': {\r\n\t\t\t\tcolor: editorPlaceholderTextColor\r\n\t\t\t},\r\n\t\t\t'&:-ms-input-placeholder': {\r\n\t\t\t\tcolor: editorPlaceholderTextColor\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport default textarea;\r\n","import { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nimport { button } from 'styles/shared';\r\nimport variables from 'styles/variables';\r\n\r\nconst align = {\r\n\tdisplay: 'flex',\r\n\tflex: 1,\r\n\t'flex-direction': 'row',\r\n\t'align-items': 'center'\r\n};\r\n\r\nconst controls = (...args) => {\r\n\tconst [{\r\n\t\theaderTextColor,\r\n\t\theaderHeight,\r\n\t\theaderTextSize\r\n\t}] = args;\r\n\r\n\treturn {\r\n\t\tcontrols: {\r\n\t\t\tcolor: headerTextColor,\r\n\t\t\theight: `${headerHeight}px`,\r\n\t\t\tdisplay: 'flex',\r\n\t\t\t'flex-direction': 'row',\r\n\t\t\t'align-items': 'center',\r\n\t\t\tpadding: '0 5px 0 10px',\r\n\r\n\t\t\t'&.is-draggable': {\r\n\t\t\t\tcursor: 'move'\r\n\t\t\t},\r\n\r\n\t\t\t[`& .${STYLES_PREFIX}left`]: {\r\n\t\t\t\t...align,\r\n\t\t\t\t'font-size': headerTextSize,\r\n\t\t\t\t'font-weight': 'normal'\r\n\t\t\t},\r\n\t\t\t[`& .${STYLES_PREFIX}right`]: {\r\n\t\t\t\t...align,\r\n\t\t\t\t'justify-content': 'flex-end',\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}button`]: {\r\n\t\t\t\t\tcolor: headerTextColor,\r\n\t\t\t\t\twidth: 34,\r\n\t\t\t\t\theight: 34,\r\n\t\t\t\t\t'text-align': 'center',\r\n\r\n\t\t\t\t\t[`& .${STYLES_PREFIX}icon`]: {\r\n\t\t\t\t\t\twidth: 20,\r\n\t\t\t\t\t\theight: 20,\r\n\t\t\t\t\t\tstroke: headerTextColor\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t...button(variables())\r\n\t};\r\n};\r\n\r\nexport default controls;\r\n","import { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nimport { isMobile } from 'lib/helpers/browser';\r\nimport classNames from 'lib/helpers/class-names';\r\n\r\nimport { minimize } from 'actions/view';\r\nimport { ConfigService } from 'services';\r\nimport { nextViewAction } from './handlers';\r\nimport { CloseIcon, MinimizeIcon } from './icons';\r\nimport controls from './styles';\r\n\r\nexport const Controls = () => ({ withStyles, tr }) => {\r\n\tconst { controlsSheet, buttonSheet } = withStyles(controls);\r\n\tconst isDraggable = ConfigService.get('draggable') && !isMobile();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t

\r\n\t\t\t\t{tr('common.chat')}\r\n\t\t\t

\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n","const notificationStyles = (...args) => {\r\n\tconst [{\r\n\t\theaderHeight,\r\n\t\tnotificationBorderColor,\r\n\t\tnotificationBorderThickness,\r\n\t\tnotificationColor,\r\n\t\tnotificationShadowThickness,\r\n\t\tnotificationTextColor,\r\n\t\tnotificationTextStyle\r\n\t}] = args;\r\n\r\n\treturn {\r\n\t\tnotification: {\r\n\t\t\t'overflow-x': 'hidden',\r\n\t\t\t'padding-bottom': notificationShadowThickness,\r\n\t\t\t'position': 'absolute',\r\n\t\t\t'top': headerHeight,\r\n\t\t\t'width': '100%',\r\n\t\t\t'z-index': 1000,\r\n\r\n\t\t\t'& > :first-child': {\r\n\t\t\t\t'background-color': notificationColor,\r\n\t\t\t\t'border': `${notificationBorderThickness}px solid ${notificationBorderColor}`,\r\n\t\t\t\t'box-shadow': `0 0 ${notificationShadowThickness}px`,\r\n\t\t\t\t'box-sizing': 'border-box',\r\n\t\t\t\t'color': notificationTextColor,\r\n\t\t\t\t'display': 'flex',\r\n\t\t\t\t'font': notificationTextStyle,\r\n\t\t\t\t'justify-content': 'center',\r\n\t\t\t\t'max-height': '18em',\r\n\t\t\t\t'overflow': 'auto',\r\n\t\t\t\t'padding': '0.5em 1em'\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport default notificationStyles;\r\n","import notificationStyles from './styles';\r\n\r\nexport const Notification = () => ({ state, withStyles }) => {\r\n\tconst { notificationSheet } = withStyles(notificationStyles);\r\n\r\n\tconst view = (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{state.notification}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n\r\n\treturn state.notification ? view :
;\r\n};\r\n","const chatContainer = (...args) => {\r\n\tconst [{\r\n\t\tprimaryColor,\r\n\t\tsupportColorThree,\r\n\t\tcontrolsHeight,\r\n\t\tchatContainerShadowColor,\r\n\t\tchatContainerBorderColor\r\n\t}] = args;\r\n\r\n\treturn {\r\n\t\tchatContainer: {\r\n\t\t\t'background-color': supportColorThree,\r\n\t\t\t'border-top': 0,\r\n\t\t\twidth: '100%',\r\n\t\t\theight: '100%',\r\n\t\t\tdisplay: 'flex !important',\r\n\t\t\t'flex-direction': 'column',\r\n\t\t\t'box-shadow': `0 3px 6px ${chatContainerShadowColor}`,\r\n\r\n\t\t\t'& > header': {\r\n\t\t\t\t'background-color': primaryColor,\r\n\t\t\t\tflex: `0 1 ${controlsHeight}`\r\n\t\t\t}\r\n\t\t},\r\n\t\tchatContent: {\r\n\t\t\tdisplay: 'flex',\r\n\t\t\t'flex-direction': 'column',\r\n\t\t\tflex: 1,\r\n\t\t\t'overflow-y': 'auto',\r\n\t\t\t'border': `1px solid ${chatContainerBorderColor}`,\r\n\t\t\t'border-top': 0\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport default chatContainer;\r\n","import { Controls } from 'components/controls';\r\nimport { Notification } from 'components/notification';\r\nimport chatContainer from './styles';\r\n\r\nexport const ChatContainer = (props, children) => ({ withStyles }) => {\r\n\tconst { chatContainerSheet, chatContentSheet } = withStyles(chatContainer);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t
{children}
\r\n\t\t
\r\n\t);\r\n};\r\n","import { CAPTCHA_INPUT } from 'defs/scope';\r\nimport { CAPTCHA_CODE_INPUT } from 'defs/input';\r\n\r\nimport { mergeActions } from 'lib/helpers/framework';\r\n\r\nimport { markCaptchaAsCorrect, markCaptchaAsWrong } from 'actions/chat.helpers';\r\nimport { initiateChat } from 'actions/chat';\r\nimport { getInputValue } from 'actions/input';\r\n\r\nexport const validateCaptchaCode = state => {\r\n\tconst expectedCode = state.captchaConfig.key;\r\n\tconst enteredCode = getInputValue(state, CAPTCHA_INPUT, CAPTCHA_CODE_INPUT);\r\n\r\n\tif (expectedCode !== enteredCode) {\r\n\t\treturn markCaptchaAsWrong(state);\r\n\t}\r\n\r\n\treturn mergeActions(state, [\r\n\t\tmarkCaptchaAsCorrect,\r\n\t\tinitiateChat\r\n\t]);\r\n};\r\n","import { STYLES_PREFIX } from '../../defs/defaults';\r\n\r\nimport { button, form, input } from 'styles/shared';\r\n\r\nexport const captchaScreen = (styleVariables) => {\r\n\tconst {\r\n\t\tcaptchaCodeColor,\r\n\t\tcaptchaErrorColor\r\n\t} = styleVariables;\r\n\r\n\treturn {\r\n\t\tcaptchaScreen: {\r\n\t\t\tdisplay: 'flex',\r\n\t\t\t'flex-direction': 'column',\r\n\t\t\t'align-items': 'stretch',\r\n\t\t\tpadding: 30,\r\n\r\n\t\t\t'& h2': {\r\n\t\t\t\t'text-align': 'center',\r\n\t\t\t\tmargin: 0\r\n\t\t\t},\r\n\r\n\t\t\t'& p': {\r\n\t\t\t\t'text-align': 'center',\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}code`]: {\r\n\t\t\t\t\tcolor: captchaCodeColor,\r\n\t\t\t\t\t'user-select': 'none'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t'& form': {\r\n\t\t\t\t'margin-top': 20,\r\n\t\t\t\t'& div + div': {\r\n\t\t\t\t\t'margin-top': '2.5em'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t'& input.error': {\r\n\t\t\t\t'border-color': captchaErrorColor\r\n\t\t\t}\r\n\t\t},\r\n\t\t...input(styleVariables),\r\n\t\t...button(styleVariables),\r\n\t\t...form\r\n\t};\r\n};\r\n\r\nexport default captchaScreen;\r\n","import { CAPTCHA_INPUT } from 'defs/scope';\r\nimport { CAPTCHA_CODE_INPUT } from 'defs/input';\r\nimport { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nimport { targetValue, preventDefault } from 'lib/helpers/events';\r\n\r\nimport { ChatContainer } from 'components/chat-container';\r\nimport { setInputValue } from 'actions/input';\r\n\r\nimport { validateCaptchaCode } from './handlers';\r\nimport captchaScreen from './styles';\r\n\r\nexport const CaptchaScreen = () => ({ withStyles, state, tr }) => {\r\n\tconst {\r\n\t\tcaptchaConfig,\r\n\t\tisCaptchaWrong,\r\n\t\tloading: {\r\n\t\t\tinitiating: isInitiating\r\n\t\t}\r\n\t} = state;\r\n\r\n\tconst {\r\n\t\tcaptchaScreenSheet,\r\n\t\tformSheet,\r\n\t\tinputSheet,\r\n\t\tbuttonSheet\r\n\t} = withStyles(captchaScreen);\r\n\r\n\tconst codeInputHandler = setInputValue(CAPTCHA_INPUT, CAPTCHA_CODE_INPUT);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t

{tr('captcha.title')}

\r\n\t\t\t\t

\r\n\t\t\t\t\t{tr('captcha.subtitle')} {captchaConfig.key}\r\n\t\t\t\t

\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{tr('captcha.send')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nfunction getDefaultWhiteList () {\n // 白名单值说明:\n // true: 允许该属性\n // Function: function (val) { } 返回true表示允许该属性,其他值均表示不允许\n // RegExp: regexp.test(val) 返回true表示允许该属性,其他值均表示不允许\n // 除上面列出的值外均表示不允许\n var whiteList = {};\n\n whiteList['align-content'] = false; // default: auto\n whiteList['align-items'] = false; // default: auto\n whiteList['align-self'] = false; // default: auto\n whiteList['alignment-adjust'] = false; // default: auto\n whiteList['alignment-baseline'] = false; // default: baseline\n whiteList['all'] = false; // default: depending on individual properties\n whiteList['anchor-point'] = false; // default: none\n whiteList['animation'] = false; // default: depending on individual properties\n whiteList['animation-delay'] = false; // default: 0\n whiteList['animation-direction'] = false; // default: normal\n whiteList['animation-duration'] = false; // default: 0\n whiteList['animation-fill-mode'] = false; // default: none\n whiteList['animation-iteration-count'] = false; // default: 1\n whiteList['animation-name'] = false; // default: none\n whiteList['animation-play-state'] = false; // default: running\n whiteList['animation-timing-function'] = false; // default: ease\n whiteList['azimuth'] = false; // default: center\n whiteList['backface-visibility'] = false; // default: visible\n whiteList['background'] = true; // default: depending on individual properties\n whiteList['background-attachment'] = true; // default: scroll\n whiteList['background-clip'] = true; // default: border-box\n whiteList['background-color'] = true; // default: transparent\n whiteList['background-image'] = true; // default: none\n whiteList['background-origin'] = true; // default: padding-box\n whiteList['background-position'] = true; // default: 0% 0%\n whiteList['background-repeat'] = true; // default: repeat\n whiteList['background-size'] = true; // default: auto\n whiteList['baseline-shift'] = false; // default: baseline\n whiteList['binding'] = false; // default: none\n whiteList['bleed'] = false; // default: 6pt\n whiteList['bookmark-label'] = false; // default: content()\n whiteList['bookmark-level'] = false; // default: none\n whiteList['bookmark-state'] = false; // default: open\n whiteList['border'] = true; // default: depending on individual properties\n whiteList['border-bottom'] = true; // default: depending on individual properties\n whiteList['border-bottom-color'] = true; // default: current color\n whiteList['border-bottom-left-radius'] = true; // default: 0\n whiteList['border-bottom-right-radius'] = true; // default: 0\n whiteList['border-bottom-style'] = true; // default: none\n whiteList['border-bottom-width'] = true; // default: medium\n whiteList['border-collapse'] = true; // default: separate\n whiteList['border-color'] = true; // default: depending on individual properties\n whiteList['border-image'] = true; // default: none\n whiteList['border-image-outset'] = true; // default: 0\n whiteList['border-image-repeat'] = true; // default: stretch\n whiteList['border-image-slice'] = true; // default: 100%\n whiteList['border-image-source'] = true; // default: none\n whiteList['border-image-width'] = true; // default: 1\n whiteList['border-left'] = true; // default: depending on individual properties\n whiteList['border-left-color'] = true; // default: current color\n whiteList['border-left-style'] = true; // default: none\n whiteList['border-left-width'] = true; // default: medium\n whiteList['border-radius'] = true; // default: 0\n whiteList['border-right'] = true; // default: depending on individual properties\n whiteList['border-right-color'] = true; // default: current color\n whiteList['border-right-style'] = true; // default: none\n whiteList['border-right-width'] = true; // default: medium\n whiteList['border-spacing'] = true; // default: 0\n whiteList['border-style'] = true; // default: depending on individual properties\n whiteList['border-top'] = true; // default: depending on individual properties\n whiteList['border-top-color'] = true; // default: current color\n whiteList['border-top-left-radius'] = true; // default: 0\n whiteList['border-top-right-radius'] = true; // default: 0\n whiteList['border-top-style'] = true; // default: none\n whiteList['border-top-width'] = true; // default: medium\n whiteList['border-width'] = true; // default: depending on individual properties\n whiteList['bottom'] = false; // default: auto\n whiteList['box-decoration-break'] = true; // default: slice\n whiteList['box-shadow'] = true; // default: none\n whiteList['box-sizing'] = true; // default: content-box\n whiteList['box-snap'] = true; // default: none\n whiteList['box-suppress'] = true; // default: show\n whiteList['break-after'] = true; // default: auto\n whiteList['break-before'] = true; // default: auto\n whiteList['break-inside'] = true; // default: auto\n whiteList['caption-side'] = false; // default: top\n whiteList['chains'] = false; // default: none\n whiteList['clear'] = true; // default: none\n whiteList['clip'] = false; // default: auto\n whiteList['clip-path'] = false; // default: none\n whiteList['clip-rule'] = false; // default: nonzero\n whiteList['color'] = true; // default: implementation dependent\n whiteList['color-interpolation-filters'] = true; // default: auto\n whiteList['column-count'] = false; // default: auto\n whiteList['column-fill'] = false; // default: balance\n whiteList['column-gap'] = false; // default: normal\n whiteList['column-rule'] = false; // default: depending on individual properties\n whiteList['column-rule-color'] = false; // default: current color\n whiteList['column-rule-style'] = false; // default: medium\n whiteList['column-rule-width'] = false; // default: medium\n whiteList['column-span'] = false; // default: none\n whiteList['column-width'] = false; // default: auto\n whiteList['columns'] = false; // default: depending on individual properties\n whiteList['contain'] = false; // default: none\n whiteList['content'] = false; // default: normal\n whiteList['counter-increment'] = false; // default: none\n whiteList['counter-reset'] = false; // default: none\n whiteList['counter-set'] = false; // default: none\n whiteList['crop'] = false; // default: auto\n whiteList['cue'] = false; // default: depending on individual properties\n whiteList['cue-after'] = false; // default: none\n whiteList['cue-before'] = false; // default: none\n whiteList['cursor'] = false; // default: auto\n whiteList['direction'] = false; // default: ltr\n whiteList['display'] = true; // default: depending on individual properties\n whiteList['display-inside'] = true; // default: auto\n whiteList['display-list'] = true; // default: none\n whiteList['display-outside'] = true; // default: inline-level\n whiteList['dominant-baseline'] = false; // default: auto\n whiteList['elevation'] = false; // default: level\n whiteList['empty-cells'] = false; // default: show\n whiteList['filter'] = false; // default: none\n whiteList['flex'] = false; // default: depending on individual properties\n whiteList['flex-basis'] = false; // default: auto\n whiteList['flex-direction'] = false; // default: row\n whiteList['flex-flow'] = false; // default: depending on individual properties\n whiteList['flex-grow'] = false; // default: 0\n whiteList['flex-shrink'] = false; // default: 1\n whiteList['flex-wrap'] = false; // default: nowrap\n whiteList['float'] = false; // default: none\n whiteList['float-offset'] = false; // default: 0 0\n whiteList['flood-color'] = false; // default: black\n whiteList['flood-opacity'] = false; // default: 1\n whiteList['flow-from'] = false; // default: none\n whiteList['flow-into'] = false; // default: none\n whiteList['font'] = true; // default: depending on individual properties\n whiteList['font-family'] = true; // default: implementation dependent\n whiteList['font-feature-settings'] = true; // default: normal\n whiteList['font-kerning'] = true; // default: auto\n whiteList['font-language-override'] = true; // default: normal\n whiteList['font-size'] = true; // default: medium\n whiteList['font-size-adjust'] = true; // default: none\n whiteList['font-stretch'] = true; // default: normal\n whiteList['font-style'] = true; // default: normal\n whiteList['font-synthesis'] = true; // default: weight style\n whiteList['font-variant'] = true; // default: normal\n whiteList['font-variant-alternates'] = true; // default: normal\n whiteList['font-variant-caps'] = true; // default: normal\n whiteList['font-variant-east-asian'] = true; // default: normal\n whiteList['font-variant-ligatures'] = true; // default: normal\n whiteList['font-variant-numeric'] = true; // default: normal\n whiteList['font-variant-position'] = true; // default: normal\n whiteList['font-weight'] = true; // default: normal\n whiteList['grid'] = false; // default: depending on individual properties\n whiteList['grid-area'] = false; // default: depending on individual properties\n whiteList['grid-auto-columns'] = false; // default: auto\n whiteList['grid-auto-flow'] = false; // default: none\n whiteList['grid-auto-rows'] = false; // default: auto\n whiteList['grid-column'] = false; // default: depending on individual properties\n whiteList['grid-column-end'] = false; // default: auto\n whiteList['grid-column-start'] = false; // default: auto\n whiteList['grid-row'] = false; // default: depending on individual properties\n whiteList['grid-row-end'] = false; // default: auto\n whiteList['grid-row-start'] = false; // default: auto\n whiteList['grid-template'] = false; // default: depending on individual properties\n whiteList['grid-template-areas'] = false; // default: none\n whiteList['grid-template-columns'] = false; // default: none\n whiteList['grid-template-rows'] = false; // default: none\n whiteList['hanging-punctuation'] = false; // default: none\n whiteList['height'] = true; // default: auto\n whiteList['hyphens'] = false; // default: manual\n whiteList['icon'] = false; // default: auto\n whiteList['image-orientation'] = false; // default: auto\n whiteList['image-resolution'] = false; // default: normal\n whiteList['ime-mode'] = false; // default: auto\n whiteList['initial-letters'] = false; // default: normal\n whiteList['inline-box-align'] = false; // default: last\n whiteList['justify-content'] = false; // default: auto\n whiteList['justify-items'] = false; // default: auto\n whiteList['justify-self'] = false; // default: auto\n whiteList['left'] = false; // default: auto\n whiteList['letter-spacing'] = true; // default: normal\n whiteList['lighting-color'] = true; // default: white\n whiteList['line-box-contain'] = false; // default: block inline replaced\n whiteList['line-break'] = false; // default: auto\n whiteList['line-grid'] = false; // default: match-parent\n whiteList['line-height'] = false; // default: normal\n whiteList['line-snap'] = false; // default: none\n whiteList['line-stacking'] = false; // default: depending on individual properties\n whiteList['line-stacking-ruby'] = false; // default: exclude-ruby\n whiteList['line-stacking-shift'] = false; // default: consider-shifts\n whiteList['line-stacking-strategy'] = false; // default: inline-line-height\n whiteList['list-style'] = true; // default: depending on individual properties\n whiteList['list-style-image'] = true; // default: none\n whiteList['list-style-position'] = true; // default: outside\n whiteList['list-style-type'] = true; // default: disc\n whiteList['margin'] = true; // default: depending on individual properties\n whiteList['margin-bottom'] = true; // default: 0\n whiteList['margin-left'] = true; // default: 0\n whiteList['margin-right'] = true; // default: 0\n whiteList['margin-top'] = true; // default: 0\n whiteList['marker-offset'] = false; // default: auto\n whiteList['marker-side'] = false; // default: list-item\n whiteList['marks'] = false; // default: none\n whiteList['mask'] = false; // default: border-box\n whiteList['mask-box'] = false; // default: see individual properties\n whiteList['mask-box-outset'] = false; // default: 0\n whiteList['mask-box-repeat'] = false; // default: stretch\n whiteList['mask-box-slice'] = false; // default: 0 fill\n whiteList['mask-box-source'] = false; // default: none\n whiteList['mask-box-width'] = false; // default: auto\n whiteList['mask-clip'] = false; // default: border-box\n whiteList['mask-image'] = false; // default: none\n whiteList['mask-origin'] = false; // default: border-box\n whiteList['mask-position'] = false; // default: center\n whiteList['mask-repeat'] = false; // default: no-repeat\n whiteList['mask-size'] = false; // default: border-box\n whiteList['mask-source-type'] = false; // default: auto\n whiteList['mask-type'] = false; // default: luminance\n whiteList['max-height'] = true; // default: none\n whiteList['max-lines'] = false; // default: none\n whiteList['max-width'] = true; // default: none\n whiteList['min-height'] = true; // default: 0\n whiteList['min-width'] = true; // default: 0\n whiteList['move-to'] = false; // default: normal\n whiteList['nav-down'] = false; // default: auto\n whiteList['nav-index'] = false; // default: auto\n whiteList['nav-left'] = false; // default: auto\n whiteList['nav-right'] = false; // default: auto\n whiteList['nav-up'] = false; // default: auto\n whiteList['object-fit'] = false; // default: fill\n whiteList['object-position'] = false; // default: 50% 50%\n whiteList['opacity'] = false; // default: 1\n whiteList['order'] = false; // default: 0\n whiteList['orphans'] = false; // default: 2\n whiteList['outline'] = false; // default: depending on individual properties\n whiteList['outline-color'] = false; // default: invert\n whiteList['outline-offset'] = false; // default: 0\n whiteList['outline-style'] = false; // default: none\n whiteList['outline-width'] = false; // default: medium\n whiteList['overflow'] = false; // default: depending on individual properties\n whiteList['overflow-wrap'] = false; // default: normal\n whiteList['overflow-x'] = false; // default: visible\n whiteList['overflow-y'] = false; // default: visible\n whiteList['padding'] = true; // default: depending on individual properties\n whiteList['padding-bottom'] = true; // default: 0\n whiteList['padding-left'] = true; // default: 0\n whiteList['padding-right'] = true; // default: 0\n whiteList['padding-top'] = true; // default: 0\n whiteList['page'] = false; // default: auto\n whiteList['page-break-after'] = false; // default: auto\n whiteList['page-break-before'] = false; // default: auto\n whiteList['page-break-inside'] = false; // default: auto\n whiteList['page-policy'] = false; // default: start\n whiteList['pause'] = false; // default: implementation dependent\n whiteList['pause-after'] = false; // default: implementation dependent\n whiteList['pause-before'] = false; // default: implementation dependent\n whiteList['perspective'] = false; // default: none\n whiteList['perspective-origin'] = false; // default: 50% 50%\n whiteList['pitch'] = false; // default: medium\n whiteList['pitch-range'] = false; // default: 50\n whiteList['play-during'] = false; // default: auto\n whiteList['position'] = false; // default: static\n whiteList['presentation-level'] = false; // default: 0\n whiteList['quotes'] = false; // default: text\n whiteList['region-fragment'] = false; // default: auto\n whiteList['resize'] = false; // default: none\n whiteList['rest'] = false; // default: depending on individual properties\n whiteList['rest-after'] = false; // default: none\n whiteList['rest-before'] = false; // default: none\n whiteList['richness'] = false; // default: 50\n whiteList['right'] = false; // default: auto\n whiteList['rotation'] = false; // default: 0\n whiteList['rotation-point'] = false; // default: 50% 50%\n whiteList['ruby-align'] = false; // default: auto\n whiteList['ruby-merge'] = false; // default: separate\n whiteList['ruby-position'] = false; // default: before\n whiteList['shape-image-threshold'] = false; // default: 0.0\n whiteList['shape-outside'] = false; // default: none\n whiteList['shape-margin'] = false; // default: 0\n whiteList['size'] = false; // default: auto\n whiteList['speak'] = false; // default: auto\n whiteList['speak-as'] = false; // default: normal\n whiteList['speak-header'] = false; // default: once\n whiteList['speak-numeral'] = false; // default: continuous\n whiteList['speak-punctuation'] = false; // default: none\n whiteList['speech-rate'] = false; // default: medium\n whiteList['stress'] = false; // default: 50\n whiteList['string-set'] = false; // default: none\n whiteList['tab-size'] = false; // default: 8\n whiteList['table-layout'] = false; // default: auto\n whiteList['text-align'] = true; // default: start\n whiteList['text-align-last'] = true; // default: auto\n whiteList['text-combine-upright'] = true; // default: none\n whiteList['text-decoration'] = true; // default: none\n whiteList['text-decoration-color'] = true; // default: currentColor\n whiteList['text-decoration-line'] = true; // default: none\n whiteList['text-decoration-skip'] = true; // default: objects\n whiteList['text-decoration-style'] = true; // default: solid\n whiteList['text-emphasis'] = true; // default: depending on individual properties\n whiteList['text-emphasis-color'] = true; // default: currentColor\n whiteList['text-emphasis-position'] = true; // default: over right\n whiteList['text-emphasis-style'] = true; // default: none\n whiteList['text-height'] = true; // default: auto\n whiteList['text-indent'] = true; // default: 0\n whiteList['text-justify'] = true; // default: auto\n whiteList['text-orientation'] = true; // default: mixed\n whiteList['text-overflow'] = true; // default: clip\n whiteList['text-shadow'] = true; // default: none\n whiteList['text-space-collapse'] = true; // default: collapse\n whiteList['text-transform'] = true; // default: none\n whiteList['text-underline-position'] = true; // default: auto\n whiteList['text-wrap'] = true; // default: normal\n whiteList['top'] = false; // default: auto\n whiteList['transform'] = false; // default: none\n whiteList['transform-origin'] = false; // default: 50% 50% 0\n whiteList['transform-style'] = false; // default: flat\n whiteList['transition'] = false; // default: depending on individual properties\n whiteList['transition-delay'] = false; // default: 0s\n whiteList['transition-duration'] = false; // default: 0s\n whiteList['transition-property'] = false; // default: all\n whiteList['transition-timing-function'] = false; // default: ease\n whiteList['unicode-bidi'] = false; // default: normal\n whiteList['vertical-align'] = false; // default: baseline\n whiteList['visibility'] = false; // default: visible\n whiteList['voice-balance'] = false; // default: center\n whiteList['voice-duration'] = false; // default: auto\n whiteList['voice-family'] = false; // default: implementation dependent\n whiteList['voice-pitch'] = false; // default: medium\n whiteList['voice-range'] = false; // default: medium\n whiteList['voice-rate'] = false; // default: normal\n whiteList['voice-stress'] = false; // default: normal\n whiteList['voice-volume'] = false; // default: medium\n whiteList['volume'] = false; // default: medium\n whiteList['white-space'] = false; // default: normal\n whiteList['widows'] = false; // default: 2\n whiteList['width'] = true; // default: auto\n whiteList['will-change'] = false; // default: auto\n whiteList['word-break'] = true; // default: normal\n whiteList['word-spacing'] = true; // default: normal\n whiteList['word-wrap'] = true; // default: normal\n whiteList['wrap-flow'] = false; // default: auto\n whiteList['wrap-through'] = false; // default: wrap\n whiteList['writing-mode'] = false; // default: horizontal-tb\n whiteList['z-index'] = false; // default: auto\n\n return whiteList;\n}\n\n\n/**\n * 匹配到白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onAttr (name, value, options) {\n // do nothing\n}\n\n/**\n * 匹配到不在白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreAttr (name, value, options) {\n // do nothing\n}\n\nvar REGEXP_URL_JAVASCRIPT = /javascript\\s*\\:/img;\n\n/**\n * 过滤属性值\n *\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction safeAttrValue(name, value) {\n if (REGEXP_URL_JAVASCRIPT.test(value)) return '';\n return value;\n}\n\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onAttr = onAttr;\nexports.onIgnoreAttr = onIgnoreAttr;\nexports.safeAttrValue = safeAttrValue;\n","module.exports = {\n indexOf: function (arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function (arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function (str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, '');\n },\n trimRight: function (str) {\n if (String.prototype.trimRight) {\n return str.trimRight();\n }\n return str.replace(/(\\s*$)/g, '');\n }\n};\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar _ = require('./util');\n\n\n/**\n * 解析style\n *\n * @param {String} css\n * @param {Function} onAttr 处理属性的函数\n * 参数格式: function (sourcePosition, position, name, value, source)\n * @return {String}\n */\nfunction parseStyle (css, onAttr) {\n css = _.trimRight(css);\n if (css[css.length - 1] !== ';') css += ';';\n var cssLength = css.length;\n var isParenthesisOpen = false;\n var lastPos = 0;\n var i = 0;\n var retCSS = '';\n\n function addNewAttr () {\n // 如果没有正常的闭合圆括号,则直接忽略当前属性\n if (!isParenthesisOpen) {\n var source = _.trim(css.slice(lastPos, i));\n var j = source.indexOf(':');\n if (j !== -1) {\n var name = _.trim(source.slice(0, j));\n var value = _.trim(source.slice(j + 1));\n // 必须有属性名称\n if (name) {\n var ret = onAttr(lastPos, retCSS.length, name, value, source);\n if (ret) retCSS += ret + '; ';\n }\n }\n }\n lastPos = i + 1;\n }\n\n for (; i < cssLength; i++) {\n var c = css[i];\n if (c === '/' && css[i + 1] === '*') {\n // 备注开始\n var j = css.indexOf('*/', i + 2);\n // 如果没有正常的备注结束,则后面的部分全部跳过\n if (j === -1) break;\n // 直接将当前位置调到备注结尾,并且初始化状态\n i = j + 1;\n lastPos = i + 1;\n isParenthesisOpen = false;\n } else if (c === '(') {\n isParenthesisOpen = true;\n } else if (c === ')') {\n isParenthesisOpen = false;\n } else if (c === ';') {\n if (isParenthesisOpen) {\n // 在圆括号里面,忽略\n } else {\n addNewAttr();\n }\n } else if (c === '\\n') {\n addNewAttr();\n }\n }\n\n return _.trim(retCSS);\n}\n\nmodule.exports = parseStyle;\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar DEFAULT = require('./default');\nvar parseStyle = require('./parser');\nvar _ = require('./util');\n\n\n/**\n * 返回值是否为空\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull (obj) {\n return (obj === undefined || obj === null);\n}\n\n/**\n * 浅拷贝对象\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject (obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * 创建CSS过滤器\n *\n * @param {Object} options\n * - {Object} whiteList\n * - {Function} onAttr\n * - {Function} onIgnoreAttr\n * - {Function} safeAttrValue\n */\nfunction FilterCSS (options) {\n options = shallowCopyObject(options || {});\n options.whiteList = options.whiteList || DEFAULT.whiteList;\n options.onAttr = options.onAttr || DEFAULT.onAttr;\n options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT.onIgnoreAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n this.options = options;\n}\n\nFilterCSS.prototype.process = function (css) {\n // 兼容各种奇葩输入\n css = css || '';\n css = css.toString();\n if (!css) return '';\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onAttr = options.onAttr;\n var onIgnoreAttr = options.onIgnoreAttr;\n var safeAttrValue = options.safeAttrValue;\n\n var retCSS = parseStyle(css, function (sourcePosition, position, name, value, source) {\n\n var check = whiteList[name];\n var isWhite = false;\n if (check === true) isWhite = check;\n else if (typeof check === 'function') isWhite = check(value);\n else if (check instanceof RegExp) isWhite = check.test(value);\n if (isWhite !== true) isWhite = false;\n\n // 如果过滤后 value 为空则直接忽略\n value = safeAttrValue(name, value);\n if (!value) return;\n\n var opts = {\n position: position,\n sourcePosition: sourcePosition,\n source: source,\n isWhite: isWhite\n };\n\n if (isWhite) {\n\n var ret = onAttr(name, value, opts);\n if (isNull(ret)) {\n return name + ':' + value;\n } else {\n return ret;\n }\n\n } else {\n\n var ret = onIgnoreAttr(name, value, opts);\n if (!isNull(ret)) {\n return ret;\n }\n\n }\n });\n\n return retCSS;\n};\n\n\nmodule.exports = FilterCSS;\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar DEFAULT = require('./default');\nvar FilterCSS = require('./css');\n\n\n/**\n * XSS过滤\n *\n * @param {String} css 要过滤的CSS代码\n * @param {Object} options 选项:whiteList, onAttr, onIgnoreAttr\n * @return {String}\n */\nfunction filterCSS (html, options) {\n var xss = new FilterCSS(options);\n return xss.process(html);\n}\n\n\n// 输出\nexports = module.exports = filterCSS;\nexports.FilterCSS = FilterCSS;\nfor (var i in DEFAULT) exports[i] = DEFAULT[i];\n\n// 在浏览器端使用\nif (typeof window !== 'undefined') {\n window.filterCSS = module.exports;\n}\n","module.exports = {\n indexOf: function (arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function (arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function (str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, \"\");\n },\n spaceIndex: function (str) {\n var reg = /\\s|\\n|\\t/;\n var match = reg.exec(str);\n return match ? match.index : -1;\n },\n};\n","/**\n * default settings\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar getDefaultCSSWhiteList = require(\"cssfilter\").getDefaultWhiteList;\nvar _ = require(\"./util\");\n\nfunction getDefaultWhiteList() {\n return {\n a: [\"target\", \"href\", \"title\"],\n abbr: [\"title\"],\n address: [],\n area: [\"shape\", \"coords\", \"href\", \"alt\"],\n article: [],\n aside: [],\n audio: [\n \"autoplay\",\n \"controls\",\n \"crossorigin\",\n \"loop\",\n \"muted\",\n \"preload\",\n \"src\",\n ],\n b: [],\n bdi: [\"dir\"],\n bdo: [\"dir\"],\n big: [],\n blockquote: [\"cite\"],\n br: [],\n caption: [],\n center: [],\n cite: [],\n code: [],\n col: [\"align\", \"valign\", \"span\", \"width\"],\n colgroup: [\"align\", \"valign\", \"span\", \"width\"],\n dd: [],\n del: [\"datetime\"],\n details: [\"open\"],\n div: [],\n dl: [],\n dt: [],\n em: [],\n figcaption: [],\n figure: [],\n font: [\"color\", \"size\", \"face\"],\n footer: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n header: [],\n hr: [],\n i: [],\n img: [\"src\", \"alt\", \"title\", \"width\", \"height\"],\n ins: [\"datetime\"],\n li: [],\n mark: [],\n nav: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n section: [],\n small: [],\n span: [],\n sub: [],\n summary: [],\n sup: [],\n strong: [],\n strike: [],\n table: [\"width\", \"border\", \"align\", \"valign\"],\n tbody: [\"align\", \"valign\"],\n td: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n tfoot: [\"align\", \"valign\"],\n th: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n thead: [\"align\", \"valign\"],\n tr: [\"rowspan\", \"align\", \"valign\"],\n tt: [],\n u: [],\n ul: [],\n video: [\n \"autoplay\",\n \"controls\",\n \"crossorigin\",\n \"loop\",\n \"muted\",\n \"playsinline\",\n \"poster\",\n \"preload\",\n \"src\",\n \"height\",\n \"width\",\n ],\n };\n}\n\nvar defaultCSSFilter = new FilterCSS();\n\n/**\n * default onTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onIgnoreTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default onIgnoreTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onIgnoreTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default escapeHtml function\n *\n * @param {String} html\n */\nfunction escapeHtml(html) {\n return html.replace(REGEXP_LT, \"<\").replace(REGEXP_GT, \">\");\n}\n\n/**\n * default safeAttrValue function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @param {Object} cssFilter\n * @return {String}\n */\nfunction safeAttrValue(tag, name, value, cssFilter) {\n // unescape attribute value firstly\n value = friendlyAttrValue(value);\n\n if (name === \"href\" || name === \"src\") {\n // filter `href` and `src` attribute\n // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`\n value = _.trim(value);\n if (value === \"#\") return \"#\";\n if (\n !(\n value.substr(0, 7) === \"http://\" ||\n value.substr(0, 8) === \"https://\" ||\n value.substr(0, 7) === \"mailto:\" ||\n value.substr(0, 4) === \"tel:\" ||\n value.substr(0, 11) === \"data:image/\" ||\n value.substr(0, 6) === \"ftp://\" ||\n value.substr(0, 2) === \"./\" ||\n value.substr(0, 3) === \"../\" ||\n value[0] === \"#\" ||\n value[0] === \"/\"\n )\n ) {\n return \"\";\n }\n } else if (name === \"background\") {\n // filter `background` attribute (maybe no use)\n // `javascript:`\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n } else if (name === \"style\") {\n // `expression()`\n REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {\n return \"\";\n }\n // `url()`\n REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n }\n if (cssFilter !== false) {\n cssFilter = cssFilter || defaultCSSFilter;\n value = cssFilter.process(value);\n }\n }\n\n // escape `<>\"` before returns\n value = escapeAttrValue(value);\n return value;\n}\n\n// RegExp list\nvar REGEXP_LT = //g;\nvar REGEXP_QUOTE = /\"/g;\nvar REGEXP_QUOTE_2 = /"/g;\nvar REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;\nvar REGEXP_ATTR_VALUE_COLON = /:?/gim;\nvar REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\\/\\*|\\*\\//gm;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_4 =\n /((j\\s*a\\s*v\\s*a|v\\s*b|l\\s*i\\s*v\\s*e)\\s*s\\s*c\\s*r\\s*i\\s*p\\s*t\\s*|m\\s*o\\s*c\\s*h\\s*a)\\:/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:\\s*image\\//gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_7 =\n /e\\s*x\\s*p\\s*r\\s*e\\s*s\\s*s\\s*i\\s*o\\s*n\\s*\\(.*/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\\s*r\\s*l\\s*\\(.*/gi;\n\n/**\n * escape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction escapeQuote(str) {\n return str.replace(REGEXP_QUOTE, \""\");\n}\n\n/**\n * unescape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction unescapeQuote(str) {\n return str.replace(REGEXP_QUOTE_2, '\"');\n}\n\n/**\n * escape html entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeHtmlEntities(str) {\n return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {\n return code[0] === \"x\" || code[0] === \"X\"\n ? String.fromCharCode(parseInt(code.substr(1), 16))\n : String.fromCharCode(parseInt(code, 10));\n });\n}\n\n/**\n * escape html5 new danger entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeDangerHtml5Entities(str) {\n return str\n .replace(REGEXP_ATTR_VALUE_COLON, \":\")\n .replace(REGEXP_ATTR_VALUE_NEWLINE, \" \");\n}\n\n/**\n * clear nonprintable characters\n *\n * @param {String} str\n * @return {String}\n */\nfunction clearNonPrintableCharacter(str) {\n var str2 = \"\";\n for (var i = 0, len = str.length; i < len; i++) {\n str2 += str.charCodeAt(i) < 32 ? \" \" : str.charAt(i);\n }\n return _.trim(str2);\n}\n\n/**\n * get friendly attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction friendlyAttrValue(str) {\n str = unescapeQuote(str);\n str = escapeHtmlEntities(str);\n str = escapeDangerHtml5Entities(str);\n str = clearNonPrintableCharacter(str);\n return str;\n}\n\n/**\n * unescape attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeAttrValue(str) {\n str = escapeQuote(str);\n str = escapeHtml(str);\n return str;\n}\n\n/**\n * `onIgnoreTag` function for removing all the tags that are not in whitelist\n */\nfunction onIgnoreTagStripAll() {\n return \"\";\n}\n\n/**\n * remove tag body\n * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)\n *\n * @param {array} tags\n * @param {function} next\n */\nfunction StripTagBody(tags, next) {\n if (typeof next !== \"function\") {\n next = function () {};\n }\n\n var isRemoveAllTag = !Array.isArray(tags);\n function isRemoveTag(tag) {\n if (isRemoveAllTag) return true;\n return _.indexOf(tags, tag) !== -1;\n }\n\n var removeList = [];\n var posStart = false;\n\n return {\n onIgnoreTag: function (tag, html, options) {\n if (isRemoveTag(tag)) {\n if (options.isClosing) {\n var ret = \"[/removed]\";\n var end = options.position + ret.length;\n removeList.push([\n posStart !== false ? posStart : options.position,\n end,\n ]);\n posStart = false;\n return ret;\n } else {\n if (!posStart) {\n posStart = options.position;\n }\n return \"[removed]\";\n }\n } else {\n return next(tag, html, options);\n }\n },\n remove: function (html) {\n var rethtml = \"\";\n var lastPos = 0;\n _.forEach(removeList, function (pos) {\n rethtml += html.slice(lastPos, pos[0]);\n lastPos = pos[1];\n });\n rethtml += html.slice(lastPos);\n return rethtml;\n },\n };\n}\n\n/**\n * remove html comments\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripCommentTag(html) {\n var retHtml = \"\";\n var lastPos = 0;\n while (lastPos < html.length) {\n var i = html.indexOf(\"\", i);\n if (j === -1) {\n break;\n }\n lastPos = j + 3;\n }\n return retHtml;\n}\n\n/**\n * remove invisible characters\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripBlankChar(html) {\n var chars = html.split(\"\");\n chars = chars.filter(function (char) {\n var c = char.charCodeAt(0);\n if (c === 127) return false;\n if (c <= 31) {\n if (c === 10 || c === 13) return true;\n return false;\n }\n return true;\n });\n return chars.join(\"\");\n}\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onTag = onTag;\nexports.onIgnoreTag = onIgnoreTag;\nexports.onTagAttr = onTagAttr;\nexports.onIgnoreTagAttr = onIgnoreTagAttr;\nexports.safeAttrValue = safeAttrValue;\nexports.escapeHtml = escapeHtml;\nexports.escapeQuote = escapeQuote;\nexports.unescapeQuote = unescapeQuote;\nexports.escapeHtmlEntities = escapeHtmlEntities;\nexports.escapeDangerHtml5Entities = escapeDangerHtml5Entities;\nexports.clearNonPrintableCharacter = clearNonPrintableCharacter;\nexports.friendlyAttrValue = friendlyAttrValue;\nexports.escapeAttrValue = escapeAttrValue;\nexports.onIgnoreTagStripAll = onIgnoreTagStripAll;\nexports.StripTagBody = StripTagBody;\nexports.stripCommentTag = stripCommentTag;\nexports.stripBlankChar = stripBlankChar;\nexports.cssFilter = defaultCSSFilter;\nexports.getDefaultCSSWhiteList = getDefaultCSSWhiteList;\n","/**\n * Simple HTML Parser\n *\n * @author Zongmin Lei\n */\n\nvar _ = require(\"./util\");\n\n/**\n * get tag name\n *\n * @param {String} html e.g. ''\n * @return {String}\n */\nfunction getTagName(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n var tagName = html.slice(1, -1);\n } else {\n var tagName = html.slice(1, i + 1);\n }\n tagName = _.trim(tagName).toLowerCase();\n if (tagName.slice(0, 1) === \"/\") tagName = tagName.slice(1);\n if (tagName.slice(-1) === \"/\") tagName = tagName.slice(0, -1);\n return tagName;\n}\n\n/**\n * is close tag?\n *\n * @param {String} html 如:''\n * @return {Boolean}\n */\nfunction isClosing(html) {\n return html.slice(0, 2) === \"\") {\n rethtml += escapeHtml(html.slice(lastPos, tagStart));\n currentHtml = html.slice(tagStart, currentPos + 1);\n currentTagName = getTagName(currentHtml);\n rethtml += onTag(\n tagStart,\n rethtml.length,\n currentTagName,\n currentHtml,\n isClosing(currentHtml)\n );\n lastPos = currentPos + 1;\n tagStart = false;\n continue;\n }\n if (c === '\"' || c === \"'\") {\n var i = 1;\n var ic = html.charAt(currentPos - i);\n\n while (ic.trim() === \"\" || ic === \"=\") {\n if (ic === \"=\") {\n quoteStart = c;\n continue chariterator;\n }\n ic = html.charAt(currentPos - ++i);\n }\n }\n } else {\n if (c === quoteStart) {\n quoteStart = false;\n continue;\n }\n }\n }\n }\n if (lastPos < html.length) {\n rethtml += escapeHtml(html.substr(lastPos));\n }\n\n return rethtml;\n}\n\nvar REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9_:\\.\\-]/gim;\n\n/**\n * parse input attributes and returns processed attributes\n *\n * @param {String} html e.g. `href=\"#\" target=\"_blank\"`\n * @param {Function} onAttr e.g. `function (name, value)`\n * @return {String}\n */\nfunction parseAttr(html, onAttr) {\n \"use strict\";\n\n var lastPos = 0;\n var retAttrs = [];\n var tmpName = false;\n var len = html.length;\n\n function addAttr(name, value) {\n name = _.trim(name);\n name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, \"\").toLowerCase();\n if (name.length < 1) return;\n var ret = onAttr(name, value || \"\");\n if (ret) retAttrs.push(ret);\n }\n\n // 逐个分析字符\n for (var i = 0; i < len; i++) {\n var c = html.charAt(i);\n var v, j;\n if (tmpName === false && c === \"=\") {\n tmpName = html.slice(lastPos, i);\n lastPos = i + 1;\n continue;\n }\n if (tmpName !== false) {\n if (\n i === lastPos &&\n (c === '\"' || c === \"'\") &&\n html.charAt(i - 1) === \"=\"\n ) {\n j = html.indexOf(c, i + 1);\n if (j === -1) {\n break;\n } else {\n v = _.trim(html.slice(lastPos + 1, j));\n addAttr(tmpName, v);\n tmpName = false;\n i = j;\n lastPos = i + 1;\n continue;\n }\n }\n }\n if (/\\s|\\n|\\t/.test(c)) {\n html = html.replace(/\\s|\\n|\\t/g, \" \");\n if (tmpName === false) {\n j = findNextEqual(html, i);\n if (j === -1) {\n v = _.trim(html.slice(lastPos, i));\n addAttr(v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n i = j - 1;\n continue;\n }\n } else {\n j = findBeforeEqual(html, i - 1);\n if (j === -1) {\n v = _.trim(html.slice(lastPos, i));\n v = stripQuoteWrap(v);\n addAttr(tmpName, v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n continue;\n }\n }\n }\n }\n\n if (lastPos < html.length) {\n if (tmpName === false) {\n addAttr(html.slice(lastPos));\n } else {\n addAttr(tmpName, stripQuoteWrap(_.trim(html.slice(lastPos))));\n }\n }\n\n return _.trim(retAttrs.join(\" \"));\n}\n\nfunction findNextEqual(str, i) {\n for (; i < str.length; i++) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction findBeforeEqual(str, i) {\n for (; i > 0; i--) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction isQuoteWrapString(text) {\n if (\n (text[0] === '\"' && text[text.length - 1] === '\"') ||\n (text[0] === \"'\" && text[text.length - 1] === \"'\")\n ) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction stripQuoteWrap(text) {\n if (isQuoteWrapString(text)) {\n return text.substr(1, text.length - 2);\n } else {\n return text;\n }\n}\n\nexports.parseTag = parseTag;\nexports.parseAttr = parseAttr;\n","/**\n * filter xss\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar DEFAULT = require(\"./default\");\nvar parser = require(\"./parser\");\nvar parseTag = parser.parseTag;\nvar parseAttr = parser.parseAttr;\nvar _ = require(\"./util\");\n\n/**\n * returns `true` if the input value is `undefined` or `null`\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull(obj) {\n return obj === undefined || obj === null;\n}\n\n/**\n * get attributes for a tag\n *\n * @param {String} html\n * @return {Object}\n * - {String} html\n * - {Boolean} closing\n */\nfunction getAttrs(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n return {\n html: \"\",\n closing: html[html.length - 2] === \"/\",\n };\n }\n html = _.trim(html.slice(i + 1, -1));\n var isClosing = html[html.length - 1] === \"/\";\n if (isClosing) html = _.trim(html.slice(0, -1));\n return {\n html: html,\n closing: isClosing,\n };\n}\n\n/**\n * shallow copy\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject(obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * FilterXSS class\n *\n * @param {Object} options\n * whiteList (or allowList), onTag, onTagAttr, onIgnoreTag,\n * onIgnoreTagAttr, safeAttrValue, escapeHtml\n * stripIgnoreTagBody, allowCommentTag, stripBlankChar\n * css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter`\n */\nfunction FilterXSS(options) {\n options = shallowCopyObject(options || {});\n\n if (options.stripIgnoreTag) {\n if (options.onIgnoreTag) {\n console.error(\n 'Notes: cannot use these two options \"stripIgnoreTag\" and \"onIgnoreTag\" at the same time'\n );\n }\n options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll;\n }\n\n options.whiteList = options.whiteList || options.allowList || DEFAULT.whiteList;\n options.onTag = options.onTag || DEFAULT.onTag;\n options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr;\n options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag;\n options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml;\n this.options = options;\n\n if (options.css === false) {\n this.cssFilter = false;\n } else {\n options.css = options.css || {};\n this.cssFilter = new FilterCSS(options.css);\n }\n}\n\n/**\n * start process and returns result\n *\n * @param {String} html\n * @return {String}\n */\nFilterXSS.prototype.process = function (html) {\n // compatible with the input\n html = html || \"\";\n html = html.toString();\n if (!html) return \"\";\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onTag = options.onTag;\n var onIgnoreTag = options.onIgnoreTag;\n var onTagAttr = options.onTagAttr;\n var onIgnoreTagAttr = options.onIgnoreTagAttr;\n var safeAttrValue = options.safeAttrValue;\n var escapeHtml = options.escapeHtml;\n var cssFilter = me.cssFilter;\n\n // remove invisible characters\n if (options.stripBlankChar) {\n html = DEFAULT.stripBlankChar(html);\n }\n\n // remove html comments\n if (!options.allowCommentTag) {\n html = DEFAULT.stripCommentTag(html);\n }\n\n // if enable stripIgnoreTagBody\n var stripIgnoreTagBody = false;\n if (options.stripIgnoreTagBody) {\n var stripIgnoreTagBody = DEFAULT.StripTagBody(\n options.stripIgnoreTagBody,\n onIgnoreTag\n );\n onIgnoreTag = stripIgnoreTagBody.onIgnoreTag;\n }\n\n var retHtml = parseTag(\n html,\n function (sourcePosition, position, tag, html, isClosing) {\n var info = {\n sourcePosition: sourcePosition,\n position: position,\n isClosing: isClosing,\n isWhite: whiteList.hasOwnProperty(tag),\n };\n\n // call `onTag()`\n var ret = onTag(tag, html, info);\n if (!isNull(ret)) return ret;\n\n if (info.isWhite) {\n if (info.isClosing) {\n return \"\";\n }\n\n var attrs = getAttrs(html);\n var whiteAttrList = whiteList[tag];\n var attrsHtml = parseAttr(attrs.html, function (name, value) {\n // call `onTagAttr()`\n var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1;\n var ret = onTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n\n if (isWhiteAttr) {\n // call `safeAttrValue()`\n value = safeAttrValue(tag, name, value, cssFilter);\n if (value) {\n return name + '=\"' + value + '\"';\n } else {\n return name;\n }\n } else {\n // call `onIgnoreTagAttr()`\n var ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n return;\n }\n });\n\n // build new tag html\n var html = \"<\" + tag;\n if (attrsHtml) html += \" \" + attrsHtml;\n if (attrs.closing) html += \" /\";\n html += \">\";\n return html;\n } else {\n // call `onIgnoreTag()`\n var ret = onIgnoreTag(tag, html, info);\n if (!isNull(ret)) return ret;\n return escapeHtml(html);\n }\n },\n escapeHtml\n );\n\n // if enable stripIgnoreTagBody\n if (stripIgnoreTagBody) {\n retHtml = stripIgnoreTagBody.remove(retHtml);\n }\n\n return retHtml;\n};\n\nmodule.exports = FilterXSS;\n","/**\n * xss\n *\n * @author Zongmin Lei\n */\n\nvar DEFAULT = require(\"./default\");\nvar parser = require(\"./parser\");\nvar FilterXSS = require(\"./xss\");\n\n/**\n * filter xss function\n *\n * @param {String} html\n * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }\n * @return {String}\n */\nfunction filterXSS(html, options) {\n var xss = new FilterXSS(options);\n return xss.process(html);\n}\n\nexports = module.exports = filterXSS;\nexports.filterXSS = filterXSS;\nexports.FilterXSS = FilterXSS;\nfor (var i in DEFAULT) exports[i] = DEFAULT[i];\nfor (var i in parser) exports[i] = parser[i];\n\n// using `xss` on the browser, output `filterXSS` to the globals\nif (typeof window !== \"undefined\") {\n window.filterXSS = module.exports;\n}\n\n// using `xss` on the WebWorker, output `filterXSS` to the globals\nfunction isWorkerEnv() {\n return (\n typeof self !== \"undefined\" &&\n typeof DedicatedWorkerGlobalScope !== \"undefined\" &&\n self instanceof DedicatedWorkerGlobalScope\n );\n}\nif (isWorkerEnv()) {\n self.filterXSS = module.exports;\n}\n","/**\n * Finite State Machine generation utilities\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n * @param {string|class} token to emit\n */\nfunction State(token) {\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n\n this.jr = [];\n this.jd = null;\n this.t = token;\n}\n/**\n * Take the transition from this state to the next one on the given input.\n * If this state does not exist deterministically, will create it.\n *\n * @param {string} input character or token to transition on\n * @param {string|class} [token] token or multi-token to emit when reaching\n * this state\n */\n\nState.prototype = {\n /**\n * @param {State} state\n */\n accepts: function accepts() {\n return !!this.t;\n },\n\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * @param {string} input character or token to transition on\n * @param {Token|State} tokenOrState transition to a matching state\n * @returns State taken after the given input\n */\n tt: function tt(input, tokenOrState) {\n if (tokenOrState && tokenOrState.j) {\n // State, default a basic transition\n this.j[input] = tokenOrState;\n return tokenOrState;\n } // See if there's a direct state transition (not regex or default)\n\n\n var token = tokenOrState;\n var nextState = this.j[input];\n\n if (nextState) {\n if (token) {\n nextState.t = token;\n } // overrwites previous token\n\n\n return nextState;\n } // Create a new state for this input\n\n\n nextState = makeState(); // Take the transition using the usual default mechanisms\n\n var templateState = takeT(this, input);\n\n if (templateState) {\n // Some default state transition, make a prime state based on this one\n Object.assign(nextState.j, templateState.j);\n nextState.jr.append(templateState.jr);\n nextState.jr = templateState.jd;\n nextState.t = token || templateState.t;\n } else {\n nextState.t = token;\n }\n\n this.j[input] = nextState;\n return nextState;\n }\n};\n/**\n * Utility function to create state without using new keyword (reduced file size\n * when minified)\n */\n\nvar makeState = function makeState() {\n return new State();\n};\n/**\n * Similar to previous except it is an accepting state that emits a token\n * @param {Token} token\n */\n\nvar makeAcceptingState = function makeAcceptingState(token) {\n return new State(token);\n};\n/**\n * Create a transition from startState to nextState via the given character\n * @param {State} startState transition from thie starting state\n * @param {Token} input via this input character or other concrete token type\n * @param {State} nextState to this next state\n */\n\nvar makeT = function makeT(startState, input, nextState) {\n // IMPLEMENTATION 1: Add to object (fast)\n if (!startState.j[input]) {\n startState.j[input] = nextState;\n } // IMPLEMENTATION 2: Add to array (slower)\n // startState.j.push([input, nextState]);\n\n};\n/**\n *\n * @param {State} startState stransition from this starting state\n * @param {RegExp} regex Regular expression to match on input\n * @param {State} nextState transition to this next state if there's are regex match\n */\n\nvar makeRegexT = function makeRegexT(startState, regex, nextState) {\n startState.jr.push([regex, nextState]);\n};\n/**\n * Follow the transition from the given character to the next state\n * @param {State} state\n * @param {Token} input character or other concrete token type to transition\n * @returns {?State} the next state, if any\n */\n\nvar takeT = function takeT(state, input) {\n // IMPLEMENTATION 1: Object key lookup (faster)\n var nextState = state.j[input];\n\n if (nextState) {\n return nextState;\n } // IMPLEMENTATION 2: List lookup (slower)\n // Loop through all the state transitions and see if there's a match\n // for (let i = 0; i < state.j.length; i++) {\n //\tconst val = state.j[i][0];\n //\tconst nextState = state.j[i][1];\n // \tif (input === val) { return nextState; }\n // }\n\n\n for (var i = 0; i < state.jr.length; i++) {\n var regex = state.jr[i][0];\n var _nextState = state.jr[i][1];\n\n if (regex.test(input)) {\n return _nextState;\n }\n } // Nowhere left to jump! Return default, if any\n\n\n return state.jd;\n};\n/**\n * Similar to makeT, but takes a list of characters that all transition to the\n * same nextState startState\n * @param {State} startState\n * @param {Array} chars\n * @param {State} nextState\n */\n\nvar makeMultiT = function makeMultiT(startState, chars, nextState) {\n for (var i = 0; i < chars.length; i++) {\n makeT(startState, chars[i], nextState);\n }\n};\n/**\n * Set up a list of multiple transitions at once. transitions is a list of\n * tuples, where the first element is the transitions character and the second\n * is the state to transition to\n * @param {State} startState\n * @param {Array} transitions\n */\n\nvar makeBatchT = function makeBatchT(startState, transitions) {\n for (var i = 0; i < transitions.length; i++) {\n var input = transitions[i][0];\n var nextState = transitions[i][1];\n makeT(startState, input, nextState);\n }\n};\n/**\n * For state machines that transition on characters only; given a non-empty\n * target string, generates states (if required) for each consecutive substring\n * of characters starting from the beginning of the string. The final state will\n * have a special value, as specified in options. All other \"in between\"\n * substrings will have a default end state.\n *\n * This turns the state machine into a Trie-like data structure (rather than a\n * intelligently-designed DFA).\n * @param {State} state\n * @param {string} str\n * @param {Token} endStateFactory\n * @param {Token} defaultStateFactory\n */\n\nvar makeChainT = function makeChainT(state, str, endState, defaultStateFactory) {\n var i = 0,\n len = str.length,\n nextState; // Find the next state without a jump to the next character\n\n while (i < len && (nextState = state.j[str[i]])) {\n state = nextState;\n i++;\n }\n\n if (i >= len) {\n return [];\n } // no new tokens were added\n\n\n while (i < len - 1) {\n nextState = defaultStateFactory();\n makeT(state, str[i], nextState);\n state = nextState;\n i++;\n }\n\n makeT(state, str[len - 1], endState);\n};\n\n/******************************************************************************\n\tText Tokens\n\tTokens composed of strings\n******************************************************************************/\n// A valid web domain token\nvar DOMAIN = 'DOMAIN';\nvar LOCALHOST = 'LOCALHOST'; // special case of domain\n// Valid top-level domain (see tlds.js)\n\nvar TLD = 'TLD'; // Any sequence of digits 0-9\n\nvar NUM = 'NUM'; // A web URL protocol. Supported types include\n// - `http:`\n// - `https:`\n// - `ftp:`\n// - `ftps:`\n// - user-defined custom protocols\n\nvar PROTOCOL = 'PROTOCOL'; // Start of the email URI protocol\n\nvar MAILTO = 'MAILTO'; // mailto:\n// Any number of consecutive whitespace characters that are not newline\n\nvar WS = 'WS'; // New line (unix style)\n\nvar NL = 'NL'; // \\n\n// Opening/closing bracket classes\n\nvar OPENBRACE = 'OPENBRACE'; // {\n\nvar OPENBRACKET = 'OPENBRACKET'; // [\n\nvar OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\n\nvar OPENPAREN = 'OPENPAREN'; // (\n\nvar CLOSEBRACE = 'CLOSEBRACE'; // }\n\nvar CLOSEBRACKET = 'CLOSEBRACKET'; // ]\n\nvar CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\n\nvar CLOSEPAREN = 'CLOSEPAREN'; // )\n// Various symbols\n\nvar AMPERSAND = 'AMPERSAND'; // &\n\nvar APOSTROPHE = 'APOSTROPHE'; // '\n\nvar ASTERISK = 'ASTERISK'; // *\n\nvar AT = 'AT'; // @\n\nvar BACKSLASH = 'BACKSLASH'; // \\\n\nvar BACKTICK = 'BACKTICK'; // `\n\nvar CARET = 'CARET'; // ^\n\nvar COLON = 'COLON'; // :\n\nvar COMMA = 'COMMA'; // ,\n\nvar DOLLAR = 'DOLLAR'; // $\n\nvar DOT = 'DOT'; // .\n\nvar EQUALS = 'EQUALS'; // =\n\nvar EXCLAMATION = 'EXCLAMATION'; // !\n\nvar HYPHEN = 'HYPHEN'; // -\n\nvar PERCENT = 'PERCENT'; // %\n\nvar PIPE = 'PIPE'; // |\n\nvar PLUS = 'PLUS'; // +\n\nvar POUND = 'POUND'; // #\n\nvar QUERY = 'QUERY'; // ?\n\nvar QUOTE = 'QUOTE'; // \"\n\nvar SEMI = 'SEMI'; // ;\n\nvar SLASH = 'SLASH'; // /\n\nvar TILDE = 'TILDE'; // ~\n\nvar UNDERSCORE = 'UNDERSCORE'; // _\n// Default token - anything that is not one of the above\n\nvar SYM = 'SYM';\n\nvar text = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tDOMAIN: DOMAIN,\n\tLOCALHOST: LOCALHOST,\n\tTLD: TLD,\n\tNUM: NUM,\n\tPROTOCOL: PROTOCOL,\n\tMAILTO: MAILTO,\n\tWS: WS,\n\tNL: NL,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tHYPHEN: HYPHEN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tTILDE: TILDE,\n\tUNDERSCORE: UNDERSCORE,\n\tSYM: SYM\n});\n\n// NOTE: punycode versions of IDNs are not included here because these will not\n// be as commonly used without the http prefix anyway and linkify will already\n// force-encode those.\n// To be updated with the values in this list\n// http://data.iana.org/TLD/tlds-alpha-by-domain.txt\n// Version 2021022800, Last Updated Sun Feb 28 07:07:01 2021 UTC\nvar tlds = 'aaa \\\naarp \\\nabarth \\\nabb \\\nabbott \\\nabbvie \\\nabc \\\nable \\\nabogado \\\nabudhabi \\\nac \\\nacademy \\\naccenture \\\naccountant \\\naccountants \\\naco \\\nactor \\\nad \\\nadac \\\nads \\\nadult \\\nae \\\naeg \\\naero \\\naetna \\\naf \\\nafamilycompany \\\nafl \\\nafrica \\\nag \\\nagakhan \\\nagency \\\nai \\\naig \\\nairbus \\\nairforce \\\nairtel \\\nakdn \\\nal \\\nalfaromeo \\\nalibaba \\\nalipay \\\nallfinanz \\\nallstate \\\nally \\\nalsace \\\nalstom \\\nam \\\namazon \\\namericanexpress \\\namericanfamily \\\namex \\\namfam \\\namica \\\namsterdam \\\nanalytics \\\nandroid \\\nanquan \\\nanz \\\nao \\\naol \\\napartments \\\napp \\\napple \\\naq \\\naquarelle \\\nar \\\narab \\\naramco \\\narchi \\\narmy \\\narpa \\\nart \\\narte \\\nas \\\nasda \\\nasia \\\nassociates \\\nat \\\nathleta \\\nattorney \\\nau \\\nauction \\\naudi \\\naudible \\\naudio \\\nauspost \\\nauthor \\\nauto \\\nautos \\\navianca \\\naw \\\naws \\\nax \\\naxa \\\naz \\\nazure \\\nba \\\nbaby \\\nbaidu \\\nbanamex \\\nbananarepublic \\\nband \\\nbank \\\nbar \\\nbarcelona \\\nbarclaycard \\\nbarclays \\\nbarefoot \\\nbargains \\\nbaseball \\\nbasketball \\\nbauhaus \\\nbayern \\\nbb \\\nbbc \\\nbbt \\\nbbva \\\nbcg \\\nbcn \\\nbd \\\nbe \\\nbeats \\\nbeauty \\\nbeer \\\nbentley \\\nberlin \\\nbest \\\nbestbuy \\\nbet \\\nbf \\\nbg \\\nbh \\\nbharti \\\nbi \\\nbible \\\nbid \\\nbike \\\nbing \\\nbingo \\\nbio \\\nbiz \\\nbj \\\nblack \\\nblackfriday \\\nblockbuster \\\nblog \\\nbloomberg \\\nblue \\\nbm \\\nbms \\\nbmw \\\nbn \\\nbnpparibas \\\nbo \\\nboats \\\nboehringer \\\nbofa \\\nbom \\\nbond \\\nboo \\\nbook \\\nbooking \\\nbosch \\\nbostik \\\nboston \\\nbot \\\nboutique \\\nbox \\\nbr \\\nbradesco \\\nbridgestone \\\nbroadway \\\nbroker \\\nbrother \\\nbrussels \\\nbs \\\nbt \\\nbudapest \\\nbugatti \\\nbuild \\\nbuilders \\\nbusiness \\\nbuy \\\nbuzz \\\nbv \\\nbw \\\nby \\\nbz \\\nbzh \\\nca \\\ncab \\\ncafe \\\ncal \\\ncall \\\ncalvinklein \\\ncam \\\ncamera \\\ncamp \\\ncancerresearch \\\ncanon \\\ncapetown \\\ncapital \\\ncapitalone \\\ncar \\\ncaravan \\\ncards \\\ncare \\\ncareer \\\ncareers \\\ncars \\\ncasa \\\ncase \\\ncash \\\ncasino \\\ncat \\\ncatering \\\ncatholic \\\ncba \\\ncbn \\\ncbre \\\ncbs \\\ncc \\\ncd \\\ncenter \\\nceo \\\ncern \\\ncf \\\ncfa \\\ncfd \\\ncg \\\nch \\\nchanel \\\nchannel \\\ncharity \\\nchase \\\nchat \\\ncheap \\\nchintai \\\nchristmas \\\nchrome \\\nchurch \\\nci \\\ncipriani \\\ncircle \\\ncisco \\\ncitadel \\\nciti \\\ncitic \\\ncity \\\ncityeats \\\nck \\\ncl \\\nclaims \\\ncleaning \\\nclick \\\nclinic \\\nclinique \\\nclothing \\\ncloud \\\nclub \\\nclubmed \\\ncm \\\ncn \\\nco \\\ncoach \\\ncodes \\\ncoffee \\\ncollege \\\ncologne \\\ncom \\\ncomcast \\\ncommbank \\\ncommunity \\\ncompany \\\ncompare \\\ncomputer \\\ncomsec \\\ncondos \\\nconstruction \\\nconsulting \\\ncontact \\\ncontractors \\\ncooking \\\ncookingchannel \\\ncool \\\ncoop \\\ncorsica \\\ncountry \\\ncoupon \\\ncoupons \\\ncourses \\\ncpa \\\ncr \\\ncredit \\\ncreditcard \\\ncreditunion \\\ncricket \\\ncrown \\\ncrs \\\ncruise \\\ncruises \\\ncsc \\\ncu \\\ncuisinella \\\ncv \\\ncw \\\ncx \\\ncy \\\ncymru \\\ncyou \\\ncz \\\ndabur \\\ndad \\\ndance \\\ndata \\\ndate \\\ndating \\\ndatsun \\\nday \\\ndclk \\\ndds \\\nde \\\ndeal \\\ndealer \\\ndeals \\\ndegree \\\ndelivery \\\ndell \\\ndeloitte \\\ndelta \\\ndemocrat \\\ndental \\\ndentist \\\ndesi \\\ndesign \\\ndev \\\ndhl \\\ndiamonds \\\ndiet \\\ndigital \\\ndirect \\\ndirectory \\\ndiscount \\\ndiscover \\\ndish \\\ndiy \\\ndj \\\ndk \\\ndm \\\ndnp \\\ndo \\\ndocs \\\ndoctor \\\ndog \\\ndomains \\\ndot \\\ndownload \\\ndrive \\\ndtv \\\ndubai \\\nduck \\\ndunlop \\\ndupont \\\ndurban \\\ndvag \\\ndvr \\\ndz \\\nearth \\\neat \\\nec \\\neco \\\nedeka \\\nedu \\\neducation \\\nee \\\neg \\\nemail \\\nemerck \\\nenergy \\\nengineer \\\nengineering \\\nenterprises \\\nepson \\\nequipment \\\ner \\\nericsson \\\nerni \\\nes \\\nesq \\\nestate \\\net \\\netisalat \\\neu \\\neurovision \\\neus \\\nevents \\\nexchange \\\nexpert \\\nexposed \\\nexpress \\\nextraspace \\\nfage \\\nfail \\\nfairwinds \\\nfaith \\\nfamily \\\nfan \\\nfans \\\nfarm \\\nfarmers \\\nfashion \\\nfast \\\nfedex \\\nfeedback \\\nferrari \\\nferrero \\\nfi \\\nfiat \\\nfidelity \\\nfido \\\nfilm \\\nfinal \\\nfinance \\\nfinancial \\\nfire \\\nfirestone \\\nfirmdale \\\nfish \\\nfishing \\\nfit \\\nfitness \\\nfj \\\nfk \\\nflickr \\\nflights \\\nflir \\\nflorist \\\nflowers \\\nfly \\\nfm \\\nfo \\\nfoo \\\nfood \\\nfoodnetwork \\\nfootball \\\nford \\\nforex \\\nforsale \\\nforum \\\nfoundation \\\nfox \\\nfr \\\nfree \\\nfresenius \\\nfrl \\\nfrogans \\\nfrontdoor \\\nfrontier \\\nftr \\\nfujitsu \\\nfujixerox \\\nfun \\\nfund \\\nfurniture \\\nfutbol \\\nfyi \\\nga \\\ngal \\\ngallery \\\ngallo \\\ngallup \\\ngame \\\ngames \\\ngap \\\ngarden \\\ngay \\\ngb \\\ngbiz \\\ngd \\\ngdn \\\nge \\\ngea \\\ngent \\\ngenting \\\ngeorge \\\ngf \\\ngg \\\nggee \\\ngh \\\ngi \\\ngift \\\ngifts \\\ngives \\\ngiving \\\ngl \\\nglade \\\nglass \\\ngle \\\nglobal \\\nglobo \\\ngm \\\ngmail \\\ngmbh \\\ngmo \\\ngmx \\\ngn \\\ngodaddy \\\ngold \\\ngoldpoint \\\ngolf \\\ngoo \\\ngoodyear \\\ngoog \\\ngoogle \\\ngop \\\ngot \\\ngov \\\ngp \\\ngq \\\ngr \\\ngrainger \\\ngraphics \\\ngratis \\\ngreen \\\ngripe \\\ngrocery \\\ngroup \\\ngs \\\ngt \\\ngu \\\nguardian \\\ngucci \\\nguge \\\nguide \\\nguitars \\\nguru \\\ngw \\\ngy \\\nhair \\\nhamburg \\\nhangout \\\nhaus \\\nhbo \\\nhdfc \\\nhdfcbank \\\nhealth \\\nhealthcare \\\nhelp \\\nhelsinki \\\nhere \\\nhermes \\\nhgtv \\\nhiphop \\\nhisamitsu \\\nhitachi \\\nhiv \\\nhk \\\nhkt \\\nhm \\\nhn \\\nhockey \\\nholdings \\\nholiday \\\nhomedepot \\\nhomegoods \\\nhomes \\\nhomesense \\\nhonda \\\nhorse \\\nhospital \\\nhost \\\nhosting \\\nhot \\\nhoteles \\\nhotels \\\nhotmail \\\nhouse \\\nhow \\\nhr \\\nhsbc \\\nht \\\nhu \\\nhughes \\\nhyatt \\\nhyundai \\\nibm \\\nicbc \\\nice \\\nicu \\\nid \\\nie \\\nieee \\\nifm \\\nikano \\\nil \\\nim \\\nimamat \\\nimdb \\\nimmo \\\nimmobilien \\\nin \\\ninc \\\nindustries \\\ninfiniti \\\ninfo \\\ning \\\nink \\\ninstitute \\\ninsurance \\\ninsure \\\nint \\\ninternational \\\nintuit \\\ninvestments \\\nio \\\nipiranga \\\niq \\\nir \\\nirish \\\nis \\\nismaili \\\nist \\\nistanbul \\\nit \\\nitau \\\nitv \\\niveco \\\njaguar \\\njava \\\njcb \\\nje \\\njeep \\\njetzt \\\njewelry \\\njio \\\njll \\\njm \\\njmp \\\njnj \\\njo \\\njobs \\\njoburg \\\njot \\\njoy \\\njp \\\njpmorgan \\\njprs \\\njuegos \\\njuniper \\\nkaufen \\\nkddi \\\nke \\\nkerryhotels \\\nkerrylogistics \\\nkerryproperties \\\nkfh \\\nkg \\\nkh \\\nki \\\nkia \\\nkim \\\nkinder \\\nkindle \\\nkitchen \\\nkiwi \\\nkm \\\nkn \\\nkoeln \\\nkomatsu \\\nkosher \\\nkp \\\nkpmg \\\nkpn \\\nkr \\\nkrd \\\nkred \\\nkuokgroup \\\nkw \\\nky \\\nkyoto \\\nkz \\\nla \\\nlacaixa \\\nlamborghini \\\nlamer \\\nlancaster \\\nlancia \\\nland \\\nlandrover \\\nlanxess \\\nlasalle \\\nlat \\\nlatino \\\nlatrobe \\\nlaw \\\nlawyer \\\nlb \\\nlc \\\nlds \\\nlease \\\nleclerc \\\nlefrak \\\nlegal \\\nlego \\\nlexus \\\nlgbt \\\nli \\\nlidl \\\nlife \\\nlifeinsurance \\\nlifestyle \\\nlighting \\\nlike \\\nlilly \\\nlimited \\\nlimo \\\nlincoln \\\nlinde \\\nlink \\\nlipsy \\\nlive \\\nliving \\\nlixil \\\nlk \\\nllc \\\nllp \\\nloan \\\nloans \\\nlocker \\\nlocus \\\nloft \\\nlol \\\nlondon \\\nlotte \\\nlotto \\\nlove \\\nlpl \\\nlplfinancial \\\nlr \\\nls \\\nlt \\\nltd \\\nltda \\\nlu \\\nlundbeck \\\nluxe \\\nluxury \\\nlv \\\nly \\\nma \\\nmacys \\\nmadrid \\\nmaif \\\nmaison \\\nmakeup \\\nman \\\nmanagement \\\nmango \\\nmap \\\nmarket \\\nmarketing \\\nmarkets \\\nmarriott \\\nmarshalls \\\nmaserati \\\nmattel \\\nmba \\\nmc \\\nmckinsey \\\nmd \\\nme \\\nmed \\\nmedia \\\nmeet \\\nmelbourne \\\nmeme \\\nmemorial \\\nmen \\\nmenu \\\nmerckmsd \\\nmg \\\nmh \\\nmiami \\\nmicrosoft \\\nmil \\\nmini \\\nmint \\\nmit \\\nmitsubishi \\\nmk \\\nml \\\nmlb \\\nmls \\\nmm \\\nmma \\\nmn \\\nmo \\\nmobi \\\nmobile \\\nmoda \\\nmoe \\\nmoi \\\nmom \\\nmonash \\\nmoney \\\nmonster \\\nmormon \\\nmortgage \\\nmoscow \\\nmoto \\\nmotorcycles \\\nmov \\\nmovie \\\nmp \\\nmq \\\nmr \\\nms \\\nmsd \\\nmt \\\nmtn \\\nmtr \\\nmu \\\nmuseum \\\nmutual \\\nmv \\\nmw \\\nmx \\\nmy \\\nmz \\\nna \\\nnab \\\nnagoya \\\nname \\\nnationwide \\\nnatura \\\nnavy \\\nnba \\\nnc \\\nne \\\nnec \\\nnet \\\nnetbank \\\nnetflix \\\nnetwork \\\nneustar \\\nnew \\\nnews \\\nnext \\\nnextdirect \\\nnexus \\\nnf \\\nnfl \\\nng \\\nngo \\\nnhk \\\nni \\\nnico \\\nnike \\\nnikon \\\nninja \\\nnissan \\\nnissay \\\nnl \\\nno \\\nnokia \\\nnorthwesternmutual \\\nnorton \\\nnow \\\nnowruz \\\nnowtv \\\nnp \\\nnr \\\nnra \\\nnrw \\\nntt \\\nnu \\\nnyc \\\nnz \\\nobi \\\nobserver \\\noff \\\noffice \\\nokinawa \\\nolayan \\\nolayangroup \\\noldnavy \\\nollo \\\nom \\\nomega \\\none \\\nong \\\nonl \\\nonline \\\nonyourside \\\nooo \\\nopen \\\noracle \\\norange \\\norg \\\norganic \\\norigins \\\nosaka \\\notsuka \\\nott \\\novh \\\npa \\\npage \\\npanasonic \\\nparis \\\npars \\\npartners \\\nparts \\\nparty \\\npassagens \\\npay \\\npccw \\\npe \\\npet \\\npf \\\npfizer \\\npg \\\nph \\\npharmacy \\\nphd \\\nphilips \\\nphone \\\nphoto \\\nphotography \\\nphotos \\\nphysio \\\npics \\\npictet \\\npictures \\\npid \\\npin \\\nping \\\npink \\\npioneer \\\npizza \\\npk \\\npl \\\nplace \\\nplay \\\nplaystation \\\nplumbing \\\nplus \\\npm \\\npn \\\npnc \\\npohl \\\npoker \\\npolitie \\\nporn \\\npost \\\npr \\\npramerica \\\npraxi \\\npress \\\nprime \\\npro \\\nprod \\\nproductions \\\nprof \\\nprogressive \\\npromo \\\nproperties \\\nproperty \\\nprotection \\\npru \\\nprudential \\\nps \\\npt \\\npub \\\npw \\\npwc \\\npy \\\nqa \\\nqpon \\\nquebec \\\nquest \\\nqvc \\\nracing \\\nradio \\\nraid \\\nre \\\nread \\\nrealestate \\\nrealtor \\\nrealty \\\nrecipes \\\nred \\\nredstone \\\nredumbrella \\\nrehab \\\nreise \\\nreisen \\\nreit \\\nreliance \\\nren \\\nrent \\\nrentals \\\nrepair \\\nreport \\\nrepublican \\\nrest \\\nrestaurant \\\nreview \\\nreviews \\\nrexroth \\\nrich \\\nrichardli \\\nricoh \\\nril \\\nrio \\\nrip \\\nrmit \\\nro \\\nrocher \\\nrocks \\\nrodeo \\\nrogers \\\nroom \\\nrs \\\nrsvp \\\nru \\\nrugby \\\nruhr \\\nrun \\\nrw \\\nrwe \\\nryukyu \\\nsa \\\nsaarland \\\nsafe \\\nsafety \\\nsakura \\\nsale \\\nsalon \\\nsamsclub \\\nsamsung \\\nsandvik \\\nsandvikcoromant \\\nsanofi \\\nsap \\\nsarl \\\nsas \\\nsave \\\nsaxo \\\nsb \\\nsbi \\\nsbs \\\nsc \\\nsca \\\nscb \\\nschaeffler \\\nschmidt \\\nscholarships \\\nschool \\\nschule \\\nschwarz \\\nscience \\\nscjohnson \\\nscot \\\nsd \\\nse \\\nsearch \\\nseat \\\nsecure \\\nsecurity \\\nseek \\\nselect \\\nsener \\\nservices \\\nses \\\nseven \\\nsew \\\nsex \\\nsexy \\\nsfr \\\nsg \\\nsh \\\nshangrila \\\nsharp \\\nshaw \\\nshell \\\nshia \\\nshiksha \\\nshoes \\\nshop \\\nshopping \\\nshouji \\\nshow \\\nshowtime \\\nsi \\\nsilk \\\nsina \\\nsingles \\\nsite \\\nsj \\\nsk \\\nski \\\nskin \\\nsky \\\nskype \\\nsl \\\nsling \\\nsm \\\nsmart \\\nsmile \\\nsn \\\nsncf \\\nso \\\nsoccer \\\nsocial \\\nsoftbank \\\nsoftware \\\nsohu \\\nsolar \\\nsolutions \\\nsong \\\nsony \\\nsoy \\\nspa \\\nspace \\\nsport \\\nspot \\\nspreadbetting \\\nsr \\\nsrl \\\nss \\\nst \\\nstada \\\nstaples \\\nstar \\\nstatebank \\\nstatefarm \\\nstc \\\nstcgroup \\\nstockholm \\\nstorage \\\nstore \\\nstream \\\nstudio \\\nstudy \\\nstyle \\\nsu \\\nsucks \\\nsupplies \\\nsupply \\\nsupport \\\nsurf \\\nsurgery \\\nsuzuki \\\nsv \\\nswatch \\\nswiftcover \\\nswiss \\\nsx \\\nsy \\\nsydney \\\nsystems \\\nsz \\\ntab \\\ntaipei \\\ntalk \\\ntaobao \\\ntarget \\\ntatamotors \\\ntatar \\\ntattoo \\\ntax \\\ntaxi \\\ntc \\\ntci \\\ntd \\\ntdk \\\nteam \\\ntech \\\ntechnology \\\ntel \\\ntemasek \\\ntennis \\\nteva \\\ntf \\\ntg \\\nth \\\nthd \\\ntheater \\\ntheatre \\\ntiaa \\\ntickets \\\ntienda \\\ntiffany \\\ntips \\\ntires \\\ntirol \\\ntj \\\ntjmaxx \\\ntjx \\\ntk \\\ntkmaxx \\\ntl \\\ntm \\\ntmall \\\ntn \\\nto \\\ntoday \\\ntokyo \\\ntools \\\ntop \\\ntoray \\\ntoshiba \\\ntotal \\\ntours \\\ntown \\\ntoyota \\\ntoys \\\ntr \\\ntrade \\\ntrading \\\ntraining \\\ntravel \\\ntravelchannel \\\ntravelers \\\ntravelersinsurance \\\ntrust \\\ntrv \\\ntt \\\ntube \\\ntui \\\ntunes \\\ntushu \\\ntv \\\ntvs \\\ntw \\\ntz \\\nua \\\nubank \\\nubs \\\nug \\\nuk \\\nunicom \\\nuniversity \\\nuno \\\nuol \\\nups \\\nus \\\nuy \\\nuz \\\nva \\\nvacations \\\nvana \\\nvanguard \\\nvc \\\nve \\\nvegas \\\nventures \\\nverisign \\\nversicherung \\\nvet \\\nvg \\\nvi \\\nviajes \\\nvideo \\\nvig \\\nviking \\\nvillas \\\nvin \\\nvip \\\nvirgin \\\nvisa \\\nvision \\\nviva \\\nvivo \\\nvlaanderen \\\nvn \\\nvodka \\\nvolkswagen \\\nvolvo \\\nvote \\\nvoting \\\nvoto \\\nvoyage \\\nvu \\\nvuelos \\\nwales \\\nwalmart \\\nwalter \\\nwang \\\nwanggou \\\nwatch \\\nwatches \\\nweather \\\nweatherchannel \\\nwebcam \\\nweber \\\nwebsite \\\nwed \\\nwedding \\\nweibo \\\nweir \\\nwf \\\nwhoswho \\\nwien \\\nwiki \\\nwilliamhill \\\nwin \\\nwindows \\\nwine \\\nwinners \\\nwme \\\nwolterskluwer \\\nwoodside \\\nwork \\\nworks \\\nworld \\\nwow \\\nws \\\nwtc \\\nwtf \\\nxbox \\\nxerox \\\nxfinity \\\nxihuan \\\nxin \\\nxxx \\\nxyz \\\nyachts \\\nyahoo \\\nyamaxun \\\nyandex \\\nye \\\nyodobashi \\\nyoga \\\nyokohama \\\nyou \\\nyoutube \\\nyt \\\nyun \\\nza \\\nzappos \\\nzara \\\nzero \\\nzip \\\nzm \\\nzone \\\nzuerich \\\nzw \\\nvermögensberater-ctb \\\nvermögensberatung-pwb \\\nελ \\\nευ \\\nбг \\\nбел \\\nдети \\\nею \\\nкатолик \\\nком \\\nқаз \\\nмкд \\\nмон \\\nмосква \\\nонлайн \\\nорг \\\nрус \\\nрф \\\nсайт \\\nсрб \\\nукр \\\nგე \\\nհայ \\\nישראל \\\nקום \\\nابوظبي \\\nاتصالات \\\nارامكو \\\nالاردن \\\nالبحرين \\\nالجزائر \\\nالسعودية \\\nالعليان \\\nالمغرب \\\nامارات \\\nایران \\\nبارت \\\nبازار \\\nبھارت \\\nبيتك \\\nپاکستان \\\nڀارت \\\nتونس \\\nسودان \\\nسورية \\\nشبكة \\\nعراق \\\nعرب \\\nعمان \\\nفلسطين \\\nقطر \\\nكاثوليك \\\nكوم \\\nمصر \\\nمليسيا \\\nموريتانيا \\\nموقع \\\nهمراه \\\nकॉम \\\nनेट \\\nभारत \\\nभारतम् \\\nभारोत \\\nसंगठन \\\nবাংলা \\\nভারত \\\nভাৰত \\\nਭਾਰਤ \\\nભારત \\\nଭାରତ \\\nஇந்தியா \\\nஇலங்கை \\\nசிங்கப்பூர் \\\nభారత్ \\\nಭಾರತ \\\nഭാരതം \\\nලංකා \\\nคอม \\\nไทย \\\nລາວ \\\n닷넷 \\\n닷컴 \\\n삼성 \\\n한국 \\\nアマゾン \\\nグーグル \\\nクラウド \\\nコム \\\nストア \\\nセール \\\nファッション \\\nポイント \\\nみんな \\\n世界 \\\n中信 \\\n中国 \\\n中國 \\\n中文网 \\\n亚马逊 \\\n企业 \\\n佛山 \\\n信息 \\\n健康 \\\n八卦 \\\n公司 \\\n公益 \\\n台湾 \\\n台灣 \\\n商城 \\\n商店 \\\n商标 \\\n嘉里 \\\n嘉里大酒店 \\\n在线 \\\n大众汽车 \\\n大拿 \\\n天主教 \\\n娱乐 \\\n家電 \\\n广东 \\\n微博 \\\n慈善 \\\n我爱你 \\\n手机 \\\n招聘 \\\n政务 \\\n政府 \\\n新加坡 \\\n新闻 \\\n时尚 \\\n書籍 \\\n机构 \\\n淡马锡 \\\n游戏 \\\n澳門 \\\n点看 \\\n移动 \\\n组织机构 \\\n网址 \\\n网店 \\\n网站 \\\n网络 \\\n联通 \\\n诺基亚 \\\n谷歌 \\\n购物 \\\n通販 \\\n集团 \\\n電訊盈科 \\\n飞利浦 \\\n食品 \\\n餐厅 \\\n香格里拉 \\\n香港'.split(' ');\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n\n\t@module linkify\n\t@submodule scanner\n\t@main scanner\n*/\n\nvar LETTER = /(?:[A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/; // Any Unicode character with letter data type\n\nvar EMOJI = /(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEDD-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7C\\uDE80-\\uDE86\\uDE90-\\uDEAC\\uDEB0-\\uDEBA\\uDEC0-\\uDEC5\\uDED0-\\uDED9\\uDEE0-\\uDEE7\\uDEF0-\\uDEF6])/; // Any Unicode emoji character\n\nvar EMOJI_VARIATION = /\\uFE0F/; // Variation selector, follows heart and others\n\nvar DIGIT = /\\d/;\nvar SPACE = /\\s/;\n/**\n * Initialize the scanner character-based state machine for the given start state\n * @return {State} scanner starting state\n */\n\nfunction init$2() {\n var customProtocols = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // Frequently used states\n var S_START = makeState();\n var S_NUM = makeAcceptingState(NUM);\n var S_DOMAIN = makeAcceptingState(DOMAIN);\n var S_DOMAIN_HYPHEN = makeState(); // domain followed by 1 or more hyphen characters\n\n var S_WS = makeAcceptingState(WS);\n var DOMAIN_REGEX_TRANSITIONS = [[DIGIT, S_DOMAIN], [LETTER, S_DOMAIN], [EMOJI, S_DOMAIN], [EMOJI_VARIATION, S_DOMAIN]]; // Create a state which emits a domain token\n\n var makeDomainState = function makeDomainState() {\n var state = makeAcceptingState(DOMAIN);\n state.j = {\n '-': S_DOMAIN_HYPHEN\n };\n state.jr = [].concat(DOMAIN_REGEX_TRANSITIONS);\n return state;\n }; // Create a state which does not emit a domain state but the usual alphanumeric\n // transitions are domains\n\n\n var makeNearDomainState = function makeNearDomainState(token) {\n var state = makeDomainState();\n state.t = token;\n return state;\n }; // States for special URL symbols that accept immediately after start\n\n\n makeBatchT(S_START, [[\"'\", makeAcceptingState(APOSTROPHE)], ['{', makeAcceptingState(OPENBRACE)], ['[', makeAcceptingState(OPENBRACKET)], ['<', makeAcceptingState(OPENANGLEBRACKET)], ['(', makeAcceptingState(OPENPAREN)], ['}', makeAcceptingState(CLOSEBRACE)], [']', makeAcceptingState(CLOSEBRACKET)], ['>', makeAcceptingState(CLOSEANGLEBRACKET)], [')', makeAcceptingState(CLOSEPAREN)], ['&', makeAcceptingState(AMPERSAND)], ['*', makeAcceptingState(ASTERISK)], ['@', makeAcceptingState(AT)], ['`', makeAcceptingState(BACKTICK)], ['^', makeAcceptingState(CARET)], [':', makeAcceptingState(COLON)], [',', makeAcceptingState(COMMA)], ['$', makeAcceptingState(DOLLAR)], ['.', makeAcceptingState(DOT)], ['=', makeAcceptingState(EQUALS)], ['!', makeAcceptingState(EXCLAMATION)], ['-', makeAcceptingState(HYPHEN)], ['%', makeAcceptingState(PERCENT)], ['|', makeAcceptingState(PIPE)], ['+', makeAcceptingState(PLUS)], ['#', makeAcceptingState(POUND)], ['?', makeAcceptingState(QUERY)], ['\"', makeAcceptingState(QUOTE)], ['/', makeAcceptingState(SLASH)], [';', makeAcceptingState(SEMI)], ['~', makeAcceptingState(TILDE)], ['_', makeAcceptingState(UNDERSCORE)], ['\\\\', makeAcceptingState(BACKSLASH)]]); // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n\n makeT(S_START, '\\n', makeAcceptingState(NL));\n makeRegexT(S_START, SPACE, S_WS); // If any whitespace except newline, more whitespace!\n\n makeT(S_WS, '\\n', makeState()); // non-accepting state\n\n makeRegexT(S_WS, SPACE, S_WS); // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n\n for (var i = 0; i < tlds.length; i++) {\n makeChainT(S_START, tlds[i], makeNearDomainState(TLD), makeDomainState);\n } // Collect the states generated by different protocls\n\n\n var S_PROTOCOL_FILE = makeDomainState();\n var S_PROTOCOL_FTP = makeDomainState();\n var S_PROTOCOL_HTTP = makeDomainState();\n var S_MAILTO = makeDomainState();\n makeChainT(S_START, 'file', S_PROTOCOL_FILE, makeDomainState);\n makeChainT(S_START, 'ftp', S_PROTOCOL_FTP, makeDomainState);\n makeChainT(S_START, 'http', S_PROTOCOL_HTTP, makeDomainState);\n makeChainT(S_START, 'mailto', S_MAILTO, makeDomainState); // Protocol states\n\n var S_PROTOCOL_SECURE = makeDomainState();\n var S_FULL_PROTOCOL = makeAcceptingState(PROTOCOL); // Full protocol ends with COLON\n\n var S_FULL_MAILTO = makeAcceptingState(MAILTO); // Mailto ends with COLON\n // Secure protocols (end with 's')\n\n makeT(S_PROTOCOL_FTP, 's', S_PROTOCOL_SECURE);\n makeT(S_PROTOCOL_FTP, ':', S_FULL_PROTOCOL);\n makeT(S_PROTOCOL_HTTP, 's', S_PROTOCOL_SECURE);\n makeT(S_PROTOCOL_HTTP, ':', S_FULL_PROTOCOL); // Become protocol tokens after a COLON\n\n makeT(S_PROTOCOL_FILE, ':', S_FULL_PROTOCOL);\n makeT(S_PROTOCOL_SECURE, ':', S_FULL_PROTOCOL);\n makeT(S_MAILTO, ':', S_FULL_MAILTO); // Register custom protocols\n\n var S_CUSTOM_PROTOCOL = makeDomainState();\n\n for (var _i = 0; _i < customProtocols.length; _i++) {\n makeChainT(S_START, customProtocols[_i], S_CUSTOM_PROTOCOL, makeDomainState);\n }\n\n makeT(S_CUSTOM_PROTOCOL, ':', S_FULL_PROTOCOL); // Localhost\n\n makeChainT(S_START, 'localhost', makeNearDomainState(LOCALHOST), makeDomainState); // Everything else\n // DOMAINs make more DOMAINs\n // Number and character transitions\n\n makeRegexT(S_START, DIGIT, S_NUM);\n makeRegexT(S_START, LETTER, S_DOMAIN);\n makeRegexT(S_START, EMOJI, S_DOMAIN);\n makeRegexT(S_START, EMOJI_VARIATION, S_DOMAIN);\n makeRegexT(S_NUM, DIGIT, S_NUM);\n makeRegexT(S_NUM, LETTER, S_DOMAIN); // number becomes DOMAIN\n\n makeRegexT(S_NUM, EMOJI, S_DOMAIN); // number becomes DOMAIN\n\n makeRegexT(S_NUM, EMOJI_VARIATION, S_DOMAIN); // number becomes DOMAIN\n\n makeT(S_NUM, '-', S_DOMAIN_HYPHEN); // Default domain transitions\n\n makeT(S_DOMAIN, '-', S_DOMAIN_HYPHEN);\n makeT(S_DOMAIN_HYPHEN, '-', S_DOMAIN_HYPHEN);\n makeRegexT(S_DOMAIN, DIGIT, S_DOMAIN);\n makeRegexT(S_DOMAIN, LETTER, S_DOMAIN);\n makeRegexT(S_DOMAIN, EMOJI, S_DOMAIN);\n makeRegexT(S_DOMAIN, EMOJI_VARIATION, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, DIGIT, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, LETTER, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, EMOJI, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, EMOJI_VARIATION, S_DOMAIN); // Set default transition for start state (some symbol)\n\n S_START.jd = makeAcceptingState(SYM);\n return S_START;\n}\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {{t: string, v: string, s: number, l: number}[]} list of tokens, each with a type and value\n*/\n\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns the regular case though) Uses selective `toLowerCase`\n // is used because lowercasing the entire string causes the length and\n // character position to vary in some non-English strings with V8-based\n // runtimes.\n var iterable = stringToArray(str.replace(/[A-Z]/g, function (c) {\n return c.toLowerCase();\n }));\n var charCount = iterable.length; // <= len if there are emojis, etc\n\n var tokens = []; // return value\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n\n var cursor = 0; // Cursor through the array-representation of the string\n\n var charCursor = 0; // Tokenize the string\n\n while (charCursor < charCount) {\n var state = start;\n var nextState = null;\n var tokenLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n var charsSinceAccepts = -1;\n\n while (charCursor < charCount && (nextState = takeT(state, iterable[charCursor]))) {\n state = nextState; // Keep track of the latest accepting state\n\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n } // Roll back to the latest accepting state\n\n\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts; // No more jumps, just make a new token from the last accepting one\n // TODO: If possible, don't output v, instead output range where values ocur\n\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.substr(cursor - tokenLength, tokenLength),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n\n });\n }\n\n return tokens;\n}\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\n\nfunction stringToArray(str) {\n var result = [];\n var len = str.length;\n var index = 0;\n\n while (index < len) {\n var first = str.charCodeAt(index);\n var second = void 0;\n var char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n\n result.push(char);\n index += char.length;\n }\n\n return result;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\n/**\n * @property {string} defaultProtocol\n * @property {{[string]: (event) => void}]} [events]\n */\nvar defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: 0,\n className: null,\n attributes: null,\n ignoreTags: []\n};\n/**\n * @class Options\n * @param {Object} [opts] Set option properties besides the defaults\n */\n\nfunction Options(opts) {\n opts = opts || {};\n this.defaultProtocol = 'defaultProtocol' in opts ? opts.defaultProtocol : defaults.defaultProtocol;\n this.events = 'events' in opts ? opts.events : defaults.events;\n this.format = 'format' in opts ? opts.format : defaults.format;\n this.formatHref = 'formatHref' in opts ? opts.formatHref : defaults.formatHref;\n this.nl2br = 'nl2br' in opts ? opts.nl2br : defaults.nl2br;\n this.tagName = 'tagName' in opts ? opts.tagName : defaults.tagName;\n this.target = 'target' in opts ? opts.target : defaults.target;\n this.rel = 'rel' in opts ? opts.rel : defaults.rel;\n this.validate = 'validate' in opts ? opts.validate : defaults.validate;\n this.truncate = 'truncate' in opts ? opts.truncate : defaults.truncate;\n this.className = 'className' in opts ? opts.className : defaults.className;\n this.attributes = opts.attributes || defaults.attributes;\n this.ignoreTags = []; // Make all tags names upper case\n\n var ignoredTags = 'ignoreTags' in opts ? opts.ignoreTags : defaults.ignoreTags;\n\n for (var i = 0; i < ignoredTags.length; i++) {\n this.ignoreTags.push(ignoredTags[i].toUpperCase());\n }\n}\nOptions.prototype = {\n /**\n * Given the token, return all options for how it should be displayed\n */\n resolve: function resolve(token) {\n var href = token.toHref(this.defaultProtocol);\n return {\n formatted: this.get('format', token.toString(), token),\n formattedHref: this.get('formatHref', href, token),\n tagName: this.get('tagName', href, token),\n className: this.get('className', href, token),\n target: this.get('target', href, token),\n rel: this.get('rel', href, token),\n events: this.getObject('events', href, token),\n attributes: this.getObject('attributes', href, token),\n truncate: this.get('truncate', href, token)\n };\n },\n\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options. By default,\n */\n check: function check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params.\n * @param {string} key Name of option to use\n * @param operator will be passed to the target option if it's method\n * @param {MultiToken} token The token from linkify.tokenize\n */\n get: function get(key, operator, token) {\n var option = this[key];\n\n if (!option) {\n return option;\n }\n\n var optionValue;\n\n switch (_typeof(option)) {\n case 'function':\n return option(operator, token.t);\n\n case 'object':\n optionValue = token.t in option ? option[token.t] : defaults[key];\n return typeof optionValue === 'function' ? optionValue(operator, token.t) : optionValue;\n }\n\n return option;\n },\n getObject: function getObject(key, operator, token) {\n var option = this[key];\n return typeof option === 'function' ? option(operator, token.t) : option;\n }\n};\n\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tdefaults: defaults,\n\tOptions: Options\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\nfunction inherits(parent, child) {\n var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var extended = Object.create(parent.prototype);\n\n for (var p in props) {\n extended[p] = props[p];\n }\n\n extended.constructor = child;\n child.prototype = extended;\n return child;\n}\n/**\n\tAbstract class used for manufacturing tokens of text tokens. That is rather\n\tthan the value for a token being a small string of text, it's value an array\n\tof text tokens.\n\n\tUsed for grouping together URLs, emails, hashtags, and other potential\n\tcreations.\n\n\t@class MultiToken\n\t@param {string} value\n\t@param {{t: string, v: string, s: number, e: number}[]} tokens\n\t@abstract\n*/\n\n\nfunction MultiToken() {}\nMultiToken.prototype = {\n /**\n \tString representing the type for this token\n \t@property t\n \t@default 'token'\n */\n t: 'token',\n\n /**\n \tIs this multitoken a link?\n \t@property isLink\n \t@default false\n */\n isLink: false,\n\n /**\n \tReturn the string this token represents.\n \t@method toString\n \t@return {string}\n */\n toString: function toString() {\n return this.v;\n },\n\n /**\n \tWhat should the value for this token be in the `href` HTML attribute?\n \tReturns the `.toString` value by default.\n \t\t@method toHref\n \t@return {string}\n */\n toHref: function toHref() {\n return this.toString();\n },\n\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex: function startIndex() {\n return this.tk[0].s;\n },\n\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex: function endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n\n /**\n \tReturns a hash of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject: function toObject() {\n var protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults.defaultProtocol;\n return {\n type: this.t,\n value: this.v,\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n }\n}; // Base token\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {(value: string, tokens: {t: string, v: string, s: number, e: number}) => MultiToken} new token class\n */\n\nfunction createTokenClass(type, props) {\n function Token(value, tokens) {\n this.t = type;\n this.v = value;\n this.tk = tokens;\n }\n\n inherits(MultiToken, Token, props);\n return Token;\n}\n/**\n\tRepresents an arbitrarily mailto email address with the prefix included\n\t@class MailtoEmail\n\t@extends MultiToken\n*/\n\nvar MailtoEmail = createTokenClass('email', {\n isLink: true\n});\n/**\n\tRepresents a list of tokens making up a valid email address\n\t@class Email\n\t@extends MultiToken\n*/\n\nvar Email = createTokenClass('email', {\n isLink: true,\n toHref: function toHref() {\n return 'mailto:' + this.toString();\n }\n});\n/**\n\tRepresents some plain text\n\t@class Text\n\t@extends MultiToken\n*/\n\nvar Text = createTokenClass('text');\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n\t@extends MultiToken\n*/\n\nvar Nl = createTokenClass('nl');\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n\t@extends MultiToken\n*/\n\nvar Url = createTokenClass('url', {\n isLink: true,\n\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@method href\n \t@param {string} protocol\n \t@return {string}\n */\n toHref: function toHref() {\n var protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults.defaultProtocol;\n var tokens = this.tk;\n var hasProtocol = false;\n var hasSlashSlash = false;\n var result = [];\n var i = 0; // Make the first part of the domain lowercase\n // Lowercase protocol\n\n while (tokens[i].t === PROTOCOL) {\n hasProtocol = true;\n result.push(tokens[i].v);\n i++;\n } // Skip slash-slash\n\n\n while (tokens[i].t === SLASH) {\n hasSlashSlash = true;\n result.push(tokens[i].v);\n i++;\n } // Continue pushing characters\n\n\n for (; i < tokens.length; i++) {\n result.push(tokens[i].v);\n }\n\n result = result.join('');\n\n if (!(hasProtocol || hasSlashSlash)) {\n result = \"\".concat(protocol, \"://\").concat(result);\n }\n\n return result;\n },\n hasProtocol: function hasProtocol() {\n return this.tk[0].t === PROTOCOL;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tMultiToken: MultiToken,\n\tBase: MultiToken,\n\tcreateTokenClass: createTokenClass,\n\tMailtoEmail: MailtoEmail,\n\tEmail: Email,\n\tText: Text,\n\tNl: Nl,\n\tUrl: Url\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/Email_address (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n/**\n * Generate the parser multi token-based state machine\n * @returns {State} the starting state\n */\n\nfunction init$1() {\n // The universal starting state.\n var S_START = makeState(); // Intermediate states for URLs. Note that domains that begin with a protocol\n // are treated slighly differently from those that don't.\n\n var S_PROTOCOL = makeState(); // e.g., 'http:'\n\n var S_MAILTO = makeState(); // 'mailto:'\n\n var S_PROTOCOL_SLASH = makeState(); // e.g., 'http:/''\n\n var S_PROTOCOL_SLASH_SLASH = makeState(); // e.g.,'http://'\n\n var S_DOMAIN = makeState(); // parsed string ends with a potential domain name (A)\n\n var S_DOMAIN_DOT = makeState(); // (A) domain followed by DOT\n\n var S_TLD = makeAcceptingState(Url); // (A) Simplest possible URL with no query string\n\n var S_TLD_COLON = makeState(); // (A) URL followed by colon (potential port number here)\n\n var S_TLD_PORT = makeAcceptingState(Url); // TLD followed by a port number\n\n var S_URL = makeAcceptingState(Url); // Long URL with optional port and maybe query string\n\n var S_URL_NON_ACCEPTING = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n var S_URL_OPENBRACE = makeState(); // URL followed by {\n\n var S_URL_OPENBRACKET = makeState(); // URL followed by [\n\n var S_URL_OPENANGLEBRACKET = makeState(); // URL followed by <\n\n var S_URL_OPENPAREN = makeState(); // URL followed by (\n\n var S_URL_OPENBRACE_Q = makeAcceptingState(Url); // URL followed by { and some symbols that the URL can end it\n\n var S_URL_OPENBRACKET_Q = makeAcceptingState(Url); // URL followed by [ and some symbols that the URL can end it\n\n var S_URL_OPENANGLEBRACKET_Q = makeAcceptingState(Url); // URL followed by < and some symbols that the URL can end it\n\n var S_URL_OPENPAREN_Q = makeAcceptingState(Url); // URL followed by ( and some symbols that the URL can end it\n\n var S_URL_OPENBRACE_SYMS = makeState(); // S_URL_OPENBRACE_Q followed by some symbols it cannot end it\n\n var S_URL_OPENBRACKET_SYMS = makeState(); // S_URL_OPENBRACKET_Q followed by some symbols it cannot end it\n\n var S_URL_OPENANGLEBRACKET_SYMS = makeState(); // S_URL_OPENANGLEBRACKET_Q followed by some symbols it cannot end it\n\n var S_URL_OPENPAREN_SYMS = makeState(); // S_URL_OPENPAREN_Q followed by some symbols it cannot end it\n\n var S_EMAIL_DOMAIN = makeState(); // parsed string starts with local email info + @ with a potential domain name (C)\n\n var S_EMAIL_DOMAIN_DOT = makeState(); // (C) domain followed by DOT\n\n var S_EMAIL = makeAcceptingState(Email); // (C) Possible email address (could have more tlds)\n\n var S_EMAIL_COLON = makeState(); // (C) URL followed by colon (potential port number here)\n\n var S_EMAIL_PORT = makeAcceptingState(Email); // (C) Email address with a port\n\n var S_MAILTO_EMAIL = makeAcceptingState(MailtoEmail); // Email that begins with the mailto prefix (D)\n\n var S_MAILTO_EMAIL_NON_ACCEPTING = makeState(); // (D) Followed by some non-query string chars\n\n var S_LOCALPART = makeState(); // Local part of the email address\n\n var S_LOCALPART_AT = makeState(); // Local part of the email address plus @\n\n var S_LOCALPART_DOT = makeState(); // Local part of the email address plus '.' (localpart cannot end in .)\n\n var S_NL = makeAcceptingState(Nl); // single new line\n // Make path from start to protocol (with '//')\n\n makeT(S_START, NL, S_NL);\n makeT(S_START, PROTOCOL, S_PROTOCOL);\n makeT(S_START, MAILTO, S_MAILTO);\n makeT(S_PROTOCOL, SLASH, S_PROTOCOL_SLASH);\n makeT(S_PROTOCOL_SLASH, SLASH, S_PROTOCOL_SLASH_SLASH); // The very first potential domain name\n\n makeT(S_START, TLD, S_DOMAIN);\n makeT(S_START, DOMAIN, S_DOMAIN);\n makeT(S_START, LOCALHOST, S_TLD);\n makeT(S_START, NUM, S_DOMAIN); // Force URL for protocol followed by anything sane\n\n makeT(S_PROTOCOL_SLASH_SLASH, TLD, S_URL);\n makeT(S_PROTOCOL_SLASH_SLASH, DOMAIN, S_URL);\n makeT(S_PROTOCOL_SLASH_SLASH, NUM, S_URL);\n makeT(S_PROTOCOL_SLASH_SLASH, LOCALHOST, S_URL); // Account for dots and hyphens\n // hyphens are usually parts of domain names\n\n makeT(S_DOMAIN, DOT, S_DOMAIN_DOT);\n makeT(S_EMAIL_DOMAIN, DOT, S_EMAIL_DOMAIN_DOT); // Hyphen can jump back to a domain name\n // After the first domain and a dot, we can find either a URL or another domain\n\n makeT(S_DOMAIN_DOT, TLD, S_TLD);\n makeT(S_DOMAIN_DOT, DOMAIN, S_DOMAIN);\n makeT(S_DOMAIN_DOT, NUM, S_DOMAIN);\n makeT(S_DOMAIN_DOT, LOCALHOST, S_DOMAIN);\n makeT(S_EMAIL_DOMAIN_DOT, TLD, S_EMAIL);\n makeT(S_EMAIL_DOMAIN_DOT, DOMAIN, S_EMAIL_DOMAIN);\n makeT(S_EMAIL_DOMAIN_DOT, NUM, S_EMAIL_DOMAIN);\n makeT(S_EMAIL_DOMAIN_DOT, LOCALHOST, S_EMAIL_DOMAIN); // S_TLD accepts! But the URL could be longer, try to find a match greedily\n // The `run` function should be able to \"rollback\" to the accepting state\n\n makeT(S_TLD, DOT, S_DOMAIN_DOT);\n makeT(S_EMAIL, DOT, S_EMAIL_DOMAIN_DOT); // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here PSS and non-PSS converge\n\n makeT(S_TLD, COLON, S_TLD_COLON);\n makeT(S_TLD, SLASH, S_URL);\n makeT(S_TLD_COLON, NUM, S_TLD_PORT);\n makeT(S_TLD_PORT, SLASH, S_URL);\n makeT(S_EMAIL, COLON, S_EMAIL_COLON);\n makeT(S_EMAIL_COLON, NUM, S_EMAIL_PORT); // Types of characters the URL can definitely end in\n\n var qsAccepting = [AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, DOMAIN, EQUALS, HYPHEN, LOCALHOST, NUM, PERCENT, PIPE, PLUS, POUND, PROTOCOL, SLASH, SYM, TILDE, TLD, UNDERSCORE]; // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n\n var qsNonAccepting = [APOSTROPHE, CLOSEANGLEBRACKET, CLOSEBRACE, CLOSEBRACKET, CLOSEPAREN, COLON, COMMA, DOT, EXCLAMATION, OPENANGLEBRACKET, OPENBRACE, OPENBRACKET, OPENPAREN, QUERY, QUOTE, SEMI]; // These states are responsible primarily for determining whether or not to\n // include the final round bracket.\n // URL, followed by an opening bracket\n\n makeT(S_URL, OPENBRACE, S_URL_OPENBRACE);\n makeT(S_URL, OPENBRACKET, S_URL_OPENBRACKET);\n makeT(S_URL, OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET);\n makeT(S_URL, OPENPAREN, S_URL_OPENPAREN); // URL with extra symbols at the end, followed by an opening bracket\n\n makeT(S_URL_NON_ACCEPTING, OPENBRACE, S_URL_OPENBRACE);\n makeT(S_URL_NON_ACCEPTING, OPENBRACKET, S_URL_OPENBRACKET);\n makeT(S_URL_NON_ACCEPTING, OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET);\n makeT(S_URL_NON_ACCEPTING, OPENPAREN, S_URL_OPENPAREN); // Closing bracket component. This character WILL be included in the URL\n\n makeT(S_URL_OPENBRACE, CLOSEBRACE, S_URL);\n makeT(S_URL_OPENBRACKET, CLOSEBRACKET, S_URL);\n makeT(S_URL_OPENANGLEBRACKET, CLOSEANGLEBRACKET, S_URL);\n makeT(S_URL_OPENPAREN, CLOSEPAREN, S_URL);\n makeT(S_URL_OPENBRACE_Q, CLOSEBRACE, S_URL);\n makeT(S_URL_OPENBRACKET_Q, CLOSEBRACKET, S_URL);\n makeT(S_URL_OPENANGLEBRACKET_Q, CLOSEANGLEBRACKET, S_URL);\n makeT(S_URL_OPENPAREN_Q, CLOSEPAREN, S_URL);\n makeT(S_URL_OPENBRACE_SYMS, CLOSEBRACE, S_URL);\n makeT(S_URL_OPENBRACKET_SYMS, CLOSEBRACKET, S_URL);\n makeT(S_URL_OPENANGLEBRACKET_SYMS, CLOSEANGLEBRACKET, S_URL);\n makeT(S_URL_OPENPAREN_SYMS, CLOSEPAREN, S_URL); // URL that beings with an opening bracket, followed by a symbols.\n // Note that the final state can still be `S_URL_OPENBRACE_Q` (if the URL only\n // has a single opening bracket for some reason).\n\n makeMultiT(S_URL_OPENBRACE, qsAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET, qsAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET, qsAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN, qsAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE, qsNonAccepting, S_URL_OPENBRACE_SYMS);\n makeMultiT(S_URL_OPENBRACKET, qsNonAccepting, S_URL_OPENBRACKET_SYMS);\n makeMultiT(S_URL_OPENANGLEBRACKET, qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\n makeMultiT(S_URL_OPENPAREN, qsNonAccepting, S_URL_OPENPAREN_SYMS); // URL that begins with an opening bracket, followed by some symbols\n\n makeMultiT(S_URL_OPENBRACE_Q, qsAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET_Q, qsAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET_Q, qsAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN_Q, qsAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE_Q, qsNonAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET_Q, qsNonAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET_Q, qsNonAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN_Q, qsNonAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE_SYMS, qsAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET_SYMS, qsAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET_SYMS, qsAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN_SYMS, qsAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE_SYMS, qsNonAccepting, S_URL_OPENBRACE_SYMS);\n makeMultiT(S_URL_OPENBRACKET_SYMS, qsNonAccepting, S_URL_OPENBRACKET_SYMS);\n makeMultiT(S_URL_OPENANGLEBRACKET_SYMS, qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\n makeMultiT(S_URL_OPENPAREN_SYMS, qsNonAccepting, S_URL_OPENPAREN_SYMS); // Account for the query string\n\n makeMultiT(S_URL, qsAccepting, S_URL);\n makeMultiT(S_URL_NON_ACCEPTING, qsAccepting, S_URL);\n makeMultiT(S_URL, qsNonAccepting, S_URL_NON_ACCEPTING);\n makeMultiT(S_URL_NON_ACCEPTING, qsNonAccepting, S_URL_NON_ACCEPTING); // Email address-specific state definitions\n // Note: We are not allowing '/' in email addresses since this would interfere\n // with real URLs\n // For addresses with the mailto prefix\n // 'mailto:' followed by anything sane is a valid email\n\n makeT(S_MAILTO, TLD, S_MAILTO_EMAIL);\n makeT(S_MAILTO, DOMAIN, S_MAILTO_EMAIL);\n makeT(S_MAILTO, NUM, S_MAILTO_EMAIL);\n makeT(S_MAILTO, LOCALHOST, S_MAILTO_EMAIL); // Greedily get more potential valid email values\n\n makeMultiT(S_MAILTO_EMAIL, qsAccepting, S_MAILTO_EMAIL);\n makeMultiT(S_MAILTO_EMAIL, qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\n makeMultiT(S_MAILTO_EMAIL_NON_ACCEPTING, qsAccepting, S_MAILTO_EMAIL);\n makeMultiT(S_MAILTO_EMAIL_NON_ACCEPTING, qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING); // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n\n var localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, CLOSEBRACE, DOLLAR, DOMAIN, EQUALS, HYPHEN, NUM, OPENBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, TLD, UNDERSCORE]; // Some of the tokens in `localpartAccepting` are already accounted for here and\n // will not be overwritten (don't worry)\n\n makeMultiT(S_DOMAIN, localpartAccepting, S_LOCALPART);\n makeT(S_DOMAIN, AT, S_LOCALPART_AT);\n makeMultiT(S_TLD, localpartAccepting, S_LOCALPART);\n makeT(S_TLD, AT, S_LOCALPART_AT);\n makeMultiT(S_DOMAIN_DOT, localpartAccepting, S_LOCALPART); // Now in localpart of address\n // TODO: IP addresses and what if the email starts with numbers?\n\n makeMultiT(S_LOCALPART, localpartAccepting, S_LOCALPART);\n makeT(S_LOCALPART, AT, S_LOCALPART_AT); // close to an email address now\n\n makeT(S_LOCALPART, DOT, S_LOCALPART_DOT);\n makeMultiT(S_LOCALPART_DOT, localpartAccepting, S_LOCALPART);\n makeT(S_LOCALPART_AT, TLD, S_EMAIL_DOMAIN);\n makeT(S_LOCALPART_AT, DOMAIN, S_EMAIL_DOMAIN);\n makeT(S_LOCALPART_AT, NUM, S_EMAIL_DOMAIN);\n makeT(S_LOCALPART_AT, LOCALHOST, S_EMAIL); // States following `@` defined above\n\n return S_START;\n}\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {{t: string, v: string, s: number, e: number}[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\n\nfunction run(start, input, tokens) {\n var len = tokens.length;\n var cursor = 0;\n var multis = [];\n var textTokens = [];\n\n while (cursor < len) {\n var state = start;\n var secondState = null;\n var nextState = null;\n var multiLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n\n while (cursor < len && !(secondState = takeT(state, tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n\n while (cursor < len && (nextState = secondState || takeT(state, tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState; // Keep track of the latest accepting state\n\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n\n cursor++;\n multiLength++;\n }\n\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token\n // Add all the tokens we looked at to the text tokens array\n for (var i = cursor - multiLength; i < cursor; i++) {\n textTokens.push(tokens[i]);\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(parserCreateMultiToken(Text, input, textTokens));\n textTokens = [];\n } // Roll back to the latest accepting state\n\n\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts; // Create a new multitoken\n\n var Multi = latestAccepting.t;\n var subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(parserCreateMultiToken(Multi, input, subtokens));\n }\n } // Finally close off the textTokens (if available)\n\n\n if (textTokens.length > 0) {\n multis.push(parserCreateMultiToken(Text, input, textTokens));\n }\n\n return multis;\n}\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {Class} Multi class to instantiate\n * @param {string} input original input string\n * @param {{t: string, v: string, s: number, e: number}[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\n\nfunction parserCreateMultiToken(Multi, input, tokens) {\n var startIdx = tokens[0].s;\n var endIdx = tokens[tokens.length - 1].e;\n var value = input.substr(startIdx, endIdx - startIdx);\n return new Multi(value, tokens);\n}\n\nvar warn = typeof console !== 'undefined' && console && console.warn || function () {}; // Side-effect initialization state\n\n\nvar INIT = {\n scanner: null,\n parser: null,\n pluginQueue: [],\n customProtocols: [],\n initialized: false\n};\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\n\nfunction reset() {\n INIT.scanner = null;\n INIT.parser = null;\n INIT.pluginQueue = [];\n INIT.customProtocols = [];\n INIT.initialized = false;\n}\n/**\n * Register a linkify extension plugin\n * @param {string} name of plugin to register\n * @param {Function} plugin function that accepts mutable linkify state\n */\n\nfunction registerPlugin(name, plugin) {\n for (var i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(\"linkifyjs: plugin \\\"\".concat(name, \"\\\" already registered - will be overwritten\"));\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n\n INIT.pluginQueue.push([name, plugin]);\n\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register plugin \\\"\".concat(name, \"\\\" until you manually call linkify.init(). To avoid this warning, please register all plugins before invoking linkify the first time.\"));\n }\n}\n/**\n * Detect URLs with the following additional protocol. Anything following\n * \"protocol:\" will be considered a link.\n * @param {string} protocol\n */\n\nfunction registerCustomProtocol(protocol) {\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register custom protocol \\\"\".concat(protocol, \"\\\" until you manually call linkify.init(). To avoid this warning, please register all custom protocols before invoking linkify the first time.\"));\n }\n\n if (!/^[a-z-]+$/.test(protocol)) {\n throw Error('linkifyjs: protocols containing characters other than a-z or - (hyphen) are not supported');\n }\n\n INIT.customProtocols.push(protocol);\n}\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\n\nfunction init() {\n // Initialize state machines\n INIT.scanner = {\n start: init$2(INIT.customProtocols),\n tokens: text\n };\n INIT.parser = {\n start: init$1(),\n tokens: multi\n };\n var utils = {\n createTokenClass: createTokenClass\n }; // Initialize plugins\n\n for (var i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser,\n utils: utils\n });\n }\n\n INIT.initialized = true;\n}\n/**\n\tParse a string into tokens that represent linkable and non-linkable sub-components\n\t@param {string} str\n\t@return {MultiToken[]} tokens\n*/\n\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\n/**\n\tFind a list of linkable items in the given string.\n\t@param {string} str string to find links in\n\t@param {string} [type] (optional) only find links of a specific type, e.g.,\n\t'url' or 'email'\n*/\n\nfunction find(str) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var tokens = tokenize(str);\n var filtered = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.isLink && (!type || token.t === type)) {\n filtered.push(token.toObject());\n }\n }\n\n return filtered;\n}\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\n\nfunction test(str) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { Options, find, init, options, registerCustomProtocol, registerPlugin, reset, test, tokenize };\n","import * as linkify from 'linkifyjs';\n\n/**\n * generated from https://raw.githubusercontent.com/w3c/html/26b5126f96f736f796b9e29718138919dd513744/entities.json\n * do not edit\n */\nvar HTML5NamedCharRefs = {\n // We don't need the complete named character reference because linkifyHtml\n // does not modify the escape sequences. We do need   so that\n // whitespace is parsed properly. Other types of whitespace should already\n // be accounted for\n nbsp: \" \"\n};\nvar HEXCHARCODE = /^#[xX]([A-Fa-f0-9]+)$/;\nvar CHARCODE = /^#([0-9]+)$/;\nvar NAMED = /^([A-Za-z0-9]+)$/;\n\nvar EntityParser =\n/** @class */\nfunction () {\n function EntityParser(named) {\n this.named = named;\n }\n\n EntityParser.prototype.parse = function (entity) {\n if (!entity) {\n return;\n }\n\n var matches = entity.match(HEXCHARCODE);\n\n if (matches) {\n return \"&#x\" + matches[1] + \";\";\n }\n\n matches = entity.match(CHARCODE);\n\n if (matches) {\n return \"&#\" + matches[1] + \";\";\n }\n\n matches = entity.match(NAMED);\n\n if (matches) {\n return this.named[matches[1]] || \"&\" + matches[1] + \";\";\n }\n };\n\n return EntityParser;\n}();\n\nvar WSP = /[\\t\\n\\f ]/;\nvar ALPHA = /[A-Za-z]/;\nvar CRLF = /\\r\\n?/g;\n\nfunction isSpace(char) {\n return WSP.test(char);\n}\n\nfunction isAlpha(char) {\n return ALPHA.test(char);\n}\n\nfunction preprocessInput(input) {\n return input.replace(CRLF, '\\n');\n}\n\nvar EventedTokenizer =\n/** @class */\nfunction () {\n function EventedTokenizer(delegate, entityParser, mode) {\n if (mode === void 0) {\n mode = 'precompile';\n }\n\n this.delegate = delegate;\n this.entityParser = entityParser;\n this.mode = mode;\n this.state = \"beforeData\"\n /* beforeData */\n ;\n this.line = -1;\n this.column = -1;\n this.input = '';\n this.index = -1;\n this.tagNameBuffer = '';\n this.states = {\n beforeData: function beforeData() {\n var char = this.peek();\n\n if (char === '<' && !this.isIgnoredEndTag()) {\n this.transitionTo(\"tagOpen\"\n /* tagOpen */\n );\n this.markTagStart();\n this.consume();\n } else {\n if (this.mode === 'precompile' && char === '\\n') {\n var tag = this.tagNameBuffer.toLowerCase();\n\n if (tag === 'pre' || tag === 'textarea') {\n this.consume();\n }\n }\n\n this.transitionTo(\"data\"\n /* data */\n );\n this.delegate.beginData();\n }\n },\n data: function data() {\n var char = this.peek();\n var tag = this.tagNameBuffer;\n\n if (char === '<' && !this.isIgnoredEndTag()) {\n this.delegate.finishData();\n this.transitionTo(\"tagOpen\"\n /* tagOpen */\n );\n this.markTagStart();\n this.consume();\n } else if (char === '&' && tag !== 'script' && tag !== 'style') {\n this.consume();\n this.delegate.appendToData(this.consumeCharRef() || '&');\n } else {\n this.consume();\n this.delegate.appendToData(char);\n }\n },\n tagOpen: function tagOpen() {\n var char = this.consume();\n\n if (char === '!') {\n this.transitionTo(\"markupDeclarationOpen\"\n /* markupDeclarationOpen */\n );\n } else if (char === '/') {\n this.transitionTo(\"endTagOpen\"\n /* endTagOpen */\n );\n } else if (char === '@' || char === ':' || isAlpha(char)) {\n this.transitionTo(\"tagName\"\n /* tagName */\n );\n this.tagNameBuffer = '';\n this.delegate.beginStartTag();\n this.appendToTagName(char);\n }\n },\n markupDeclarationOpen: function markupDeclarationOpen() {\n var char = this.consume();\n\n if (char === '-' && this.peek() === '-') {\n this.consume();\n this.transitionTo(\"commentStart\"\n /* commentStart */\n );\n this.delegate.beginComment();\n } else {\n var maybeDoctype = char.toUpperCase() + this.input.substring(this.index, this.index + 6).toUpperCase();\n\n if (maybeDoctype === 'DOCTYPE') {\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.transitionTo(\"doctype\"\n /* doctype */\n );\n if (this.delegate.beginDoctype) this.delegate.beginDoctype();\n }\n }\n },\n doctype: function doctype() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeDoctypeName\"\n /* beforeDoctypeName */\n );\n }\n },\n beforeDoctypeName: function beforeDoctypeName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else {\n this.transitionTo(\"doctypeName\"\n /* doctypeName */\n );\n if (this.delegate.appendToDoctypeName) this.delegate.appendToDoctypeName(char.toLowerCase());\n }\n },\n doctypeName: function doctypeName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"afterDoctypeName\"\n /* afterDoctypeName */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypeName) this.delegate.appendToDoctypeName(char.toLowerCase());\n }\n },\n afterDoctypeName: function afterDoctypeName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n var nextSixChars = char.toUpperCase() + this.input.substring(this.index, this.index + 5).toUpperCase();\n var isPublic = nextSixChars.toUpperCase() === 'PUBLIC';\n var isSystem = nextSixChars.toUpperCase() === 'SYSTEM';\n\n if (isPublic || isSystem) {\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n }\n\n if (isPublic) {\n this.transitionTo(\"afterDoctypePublicKeyword\"\n /* afterDoctypePublicKeyword */\n );\n } else if (isSystem) {\n this.transitionTo(\"afterDoctypeSystemKeyword\"\n /* afterDoctypeSystemKeyword */\n );\n }\n }\n },\n afterDoctypePublicKeyword: function afterDoctypePublicKeyword() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeDoctypePublicIdentifier\"\n /* beforeDoctypePublicIdentifier */\n );\n this.consume();\n } else if (char === '\"') {\n this.transitionTo(\"doctypePublicIdentifierDoubleQuoted\"\n /* doctypePublicIdentifierDoubleQuoted */\n );\n this.consume();\n } else if (char === \"'\") {\n this.transitionTo(\"doctypePublicIdentifierSingleQuoted\"\n /* doctypePublicIdentifierSingleQuoted */\n );\n this.consume();\n } else if (char === '>') {\n this.consume();\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n }\n },\n doctypePublicIdentifierDoubleQuoted: function doctypePublicIdentifierDoubleQuoted() {\n var char = this.consume();\n\n if (char === '\"') {\n this.transitionTo(\"afterDoctypePublicIdentifier\"\n /* afterDoctypePublicIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypePublicIdentifier) this.delegate.appendToDoctypePublicIdentifier(char);\n }\n },\n doctypePublicIdentifierSingleQuoted: function doctypePublicIdentifierSingleQuoted() {\n var char = this.consume();\n\n if (char === \"'\") {\n this.transitionTo(\"afterDoctypePublicIdentifier\"\n /* afterDoctypePublicIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypePublicIdentifier) this.delegate.appendToDoctypePublicIdentifier(char);\n }\n },\n afterDoctypePublicIdentifier: function afterDoctypePublicIdentifier() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"betweenDoctypePublicAndSystemIdentifiers\"\n /* betweenDoctypePublicAndSystemIdentifiers */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '\"') {\n this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\"\n /* doctypeSystemIdentifierDoubleQuoted */\n );\n } else if (char === \"'\") {\n this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\"\n /* doctypeSystemIdentifierSingleQuoted */\n );\n }\n },\n betweenDoctypePublicAndSystemIdentifiers: function betweenDoctypePublicAndSystemIdentifiers() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '\"') {\n this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\"\n /* doctypeSystemIdentifierDoubleQuoted */\n );\n } else if (char === \"'\") {\n this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\"\n /* doctypeSystemIdentifierSingleQuoted */\n );\n }\n },\n doctypeSystemIdentifierDoubleQuoted: function doctypeSystemIdentifierDoubleQuoted() {\n var char = this.consume();\n\n if (char === '\"') {\n this.transitionTo(\"afterDoctypeSystemIdentifier\"\n /* afterDoctypeSystemIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypeSystemIdentifier) this.delegate.appendToDoctypeSystemIdentifier(char);\n }\n },\n doctypeSystemIdentifierSingleQuoted: function doctypeSystemIdentifierSingleQuoted() {\n var char = this.consume();\n\n if (char === \"'\") {\n this.transitionTo(\"afterDoctypeSystemIdentifier\"\n /* afterDoctypeSystemIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypeSystemIdentifier) this.delegate.appendToDoctypeSystemIdentifier(char);\n }\n },\n afterDoctypeSystemIdentifier: function afterDoctypeSystemIdentifier() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n }\n },\n commentStart: function commentStart() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentStartDash\"\n /* commentStartDash */\n );\n } else if (char === '>') {\n this.delegate.finishComment();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.appendToCommentData(char);\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n commentStartDash: function commentStartDash() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentEnd\"\n /* commentEnd */\n );\n } else if (char === '>') {\n this.delegate.finishComment();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.appendToCommentData('-');\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n comment: function comment() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentEndDash\"\n /* commentEndDash */\n );\n } else {\n this.delegate.appendToCommentData(char);\n }\n },\n commentEndDash: function commentEndDash() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentEnd\"\n /* commentEnd */\n );\n } else {\n this.delegate.appendToCommentData('-' + char);\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n commentEnd: function commentEnd() {\n var char = this.consume();\n\n if (char === '>') {\n this.delegate.finishComment();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.appendToCommentData('--' + char);\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n tagName: function tagName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n } else if (char === '/') {\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '>') {\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.appendToTagName(char);\n }\n },\n endTagName: function endTagName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n this.tagNameBuffer = '';\n } else if (char === '/') {\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n this.tagNameBuffer = '';\n } else if (char === '>') {\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n this.tagNameBuffer = '';\n } else {\n this.appendToTagName(char);\n }\n },\n beforeAttributeName: function beforeAttributeName() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n return;\n } else if (char === '/') {\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n this.consume();\n } else if (char === '>') {\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '=') {\n this.delegate.reportSyntaxError('attribute name cannot start with equals sign');\n this.transitionTo(\"attributeName\"\n /* attributeName */\n );\n this.delegate.beginAttribute();\n this.consume();\n this.delegate.appendToAttributeName(char);\n } else {\n this.transitionTo(\"attributeName\"\n /* attributeName */\n );\n this.delegate.beginAttribute();\n }\n },\n attributeName: function attributeName() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.transitionTo(\"afterAttributeName\"\n /* afterAttributeName */\n );\n this.consume();\n } else if (char === '/') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '=') {\n this.transitionTo(\"beforeAttributeValue\"\n /* beforeAttributeValue */\n );\n this.consume();\n } else if (char === '>') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '\"' || char === \"'\" || char === '<') {\n this.delegate.reportSyntaxError(char + ' is not a valid character within attribute names');\n this.consume();\n this.delegate.appendToAttributeName(char);\n } else {\n this.consume();\n this.delegate.appendToAttributeName(char);\n }\n },\n afterAttributeName: function afterAttributeName() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n return;\n } else if (char === '/') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '=') {\n this.consume();\n this.transitionTo(\"beforeAttributeValue\"\n /* beforeAttributeValue */\n );\n } else if (char === '>') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.transitionTo(\"attributeName\"\n /* attributeName */\n );\n this.delegate.beginAttribute();\n this.consume();\n this.delegate.appendToAttributeName(char);\n }\n },\n beforeAttributeValue: function beforeAttributeValue() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n } else if (char === '\"') {\n this.transitionTo(\"attributeValueDoubleQuoted\"\n /* attributeValueDoubleQuoted */\n );\n this.delegate.beginAttributeValue(true);\n this.consume();\n } else if (char === \"'\") {\n this.transitionTo(\"attributeValueSingleQuoted\"\n /* attributeValueSingleQuoted */\n );\n this.delegate.beginAttributeValue(true);\n this.consume();\n } else if (char === '>') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.transitionTo(\"attributeValueUnquoted\"\n /* attributeValueUnquoted */\n );\n this.delegate.beginAttributeValue(false);\n this.consume();\n this.delegate.appendToAttributeValue(char);\n }\n },\n attributeValueDoubleQuoted: function attributeValueDoubleQuoted() {\n var char = this.consume();\n\n if (char === '\"') {\n this.delegate.finishAttributeValue();\n this.transitionTo(\"afterAttributeValueQuoted\"\n /* afterAttributeValueQuoted */\n );\n } else if (char === '&') {\n this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n } else {\n this.delegate.appendToAttributeValue(char);\n }\n },\n attributeValueSingleQuoted: function attributeValueSingleQuoted() {\n var char = this.consume();\n\n if (char === \"'\") {\n this.delegate.finishAttributeValue();\n this.transitionTo(\"afterAttributeValueQuoted\"\n /* afterAttributeValueQuoted */\n );\n } else if (char === '&') {\n this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n } else {\n this.delegate.appendToAttributeValue(char);\n }\n },\n attributeValueUnquoted: function attributeValueUnquoted() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n } else if (char === '/') {\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '&') {\n this.consume();\n this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n } else if (char === '>') {\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.consume();\n this.delegate.appendToAttributeValue(char);\n }\n },\n afterAttributeValueQuoted: function afterAttributeValueQuoted() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n } else if (char === '/') {\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '>') {\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n }\n },\n selfClosingStartTag: function selfClosingStartTag() {\n var char = this.peek();\n\n if (char === '>') {\n this.consume();\n this.delegate.markTagAsSelfClosing();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n }\n },\n endTagOpen: function endTagOpen() {\n var char = this.consume();\n\n if (char === '@' || char === ':' || isAlpha(char)) {\n this.transitionTo(\"endTagName\"\n /* endTagName */\n );\n this.tagNameBuffer = '';\n this.delegate.beginEndTag();\n this.appendToTagName(char);\n }\n }\n };\n this.reset();\n }\n\n EventedTokenizer.prototype.reset = function () {\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n this.input = '';\n this.tagNameBuffer = '';\n this.index = 0;\n this.line = 1;\n this.column = 0;\n this.delegate.reset();\n };\n\n EventedTokenizer.prototype.transitionTo = function (state) {\n this.state = state;\n };\n\n EventedTokenizer.prototype.tokenize = function (input) {\n this.reset();\n this.tokenizePart(input);\n this.tokenizeEOF();\n };\n\n EventedTokenizer.prototype.tokenizePart = function (input) {\n this.input += preprocessInput(input);\n\n while (this.index < this.input.length) {\n var handler = this.states[this.state];\n\n if (handler !== undefined) {\n handler.call(this);\n } else {\n throw new Error(\"unhandled state \" + this.state);\n }\n }\n };\n\n EventedTokenizer.prototype.tokenizeEOF = function () {\n this.flushData();\n };\n\n EventedTokenizer.prototype.flushData = function () {\n if (this.state === 'data') {\n this.delegate.finishData();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n }\n };\n\n EventedTokenizer.prototype.peek = function () {\n return this.input.charAt(this.index);\n };\n\n EventedTokenizer.prototype.consume = function () {\n var char = this.peek();\n this.index++;\n\n if (char === '\\n') {\n this.line++;\n this.column = 0;\n } else {\n this.column++;\n }\n\n return char;\n };\n\n EventedTokenizer.prototype.consumeCharRef = function () {\n var endIndex = this.input.indexOf(';', this.index);\n\n if (endIndex === -1) {\n return;\n }\n\n var entity = this.input.slice(this.index, endIndex);\n var chars = this.entityParser.parse(entity);\n\n if (chars) {\n var count = entity.length; // consume the entity chars\n\n while (count) {\n this.consume();\n count--;\n } // consume the `;`\n\n\n this.consume();\n return chars;\n }\n };\n\n EventedTokenizer.prototype.markTagStart = function () {\n this.delegate.tagOpen();\n };\n\n EventedTokenizer.prototype.appendToTagName = function (char) {\n this.tagNameBuffer += char;\n this.delegate.appendToTagName(char);\n };\n\n EventedTokenizer.prototype.isIgnoredEndTag = function () {\n var tag = this.tagNameBuffer;\n return tag === 'title' && this.input.substring(this.index, this.index + 8) !== '' || tag === 'style' && this.input.substring(this.index, this.index + 8) !== '' || tag === 'script' && this.input.substring(this.index, this.index + 9) !== '';\n };\n\n return EventedTokenizer;\n}();\n\nvar Tokenizer =\n/** @class */\nfunction () {\n function Tokenizer(entityParser, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.options = options;\n this.token = null;\n this.startLine = 1;\n this.startColumn = 0;\n this.tokens = [];\n this.tokenizer = new EventedTokenizer(this, entityParser, options.mode);\n this._currentAttribute = undefined;\n }\n\n Tokenizer.prototype.tokenize = function (input) {\n this.tokens = [];\n this.tokenizer.tokenize(input);\n return this.tokens;\n };\n\n Tokenizer.prototype.tokenizePart = function (input) {\n this.tokens = [];\n this.tokenizer.tokenizePart(input);\n return this.tokens;\n };\n\n Tokenizer.prototype.tokenizeEOF = function () {\n this.tokens = [];\n this.tokenizer.tokenizeEOF();\n return this.tokens[0];\n };\n\n Tokenizer.prototype.reset = function () {\n this.token = null;\n this.startLine = 1;\n this.startColumn = 0;\n };\n\n Tokenizer.prototype.current = function () {\n var token = this.token;\n\n if (token === null) {\n throw new Error('token was unexpectedly null');\n }\n\n if (arguments.length === 0) {\n return token;\n }\n\n for (var i = 0; i < arguments.length; i++) {\n if (token.type === arguments[i]) {\n return token;\n }\n }\n\n throw new Error(\"token type was unexpectedly \" + token.type);\n };\n\n Tokenizer.prototype.push = function (token) {\n this.token = token;\n this.tokens.push(token);\n };\n\n Tokenizer.prototype.currentAttribute = function () {\n return this._currentAttribute;\n };\n\n Tokenizer.prototype.addLocInfo = function () {\n if (this.options.loc) {\n this.current().loc = {\n start: {\n line: this.startLine,\n column: this.startColumn\n },\n end: {\n line: this.tokenizer.line,\n column: this.tokenizer.column\n }\n };\n }\n\n this.startLine = this.tokenizer.line;\n this.startColumn = this.tokenizer.column;\n }; // Data\n\n\n Tokenizer.prototype.beginDoctype = function () {\n this.push({\n type: \"Doctype\"\n /* Doctype */\n ,\n name: ''\n });\n };\n\n Tokenizer.prototype.appendToDoctypeName = function (char) {\n this.current(\"Doctype\"\n /* Doctype */\n ).name += char;\n };\n\n Tokenizer.prototype.appendToDoctypePublicIdentifier = function (char) {\n var doctype = this.current(\"Doctype\"\n /* Doctype */\n );\n\n if (doctype.publicIdentifier === undefined) {\n doctype.publicIdentifier = char;\n } else {\n doctype.publicIdentifier += char;\n }\n };\n\n Tokenizer.prototype.appendToDoctypeSystemIdentifier = function (char) {\n var doctype = this.current(\"Doctype\"\n /* Doctype */\n );\n\n if (doctype.systemIdentifier === undefined) {\n doctype.systemIdentifier = char;\n } else {\n doctype.systemIdentifier += char;\n }\n };\n\n Tokenizer.prototype.endDoctype = function () {\n this.addLocInfo();\n };\n\n Tokenizer.prototype.beginData = function () {\n this.push({\n type: \"Chars\"\n /* Chars */\n ,\n chars: ''\n });\n };\n\n Tokenizer.prototype.appendToData = function (char) {\n this.current(\"Chars\"\n /* Chars */\n ).chars += char;\n };\n\n Tokenizer.prototype.finishData = function () {\n this.addLocInfo();\n }; // Comment\n\n\n Tokenizer.prototype.beginComment = function () {\n this.push({\n type: \"Comment\"\n /* Comment */\n ,\n chars: ''\n });\n };\n\n Tokenizer.prototype.appendToCommentData = function (char) {\n this.current(\"Comment\"\n /* Comment */\n ).chars += char;\n };\n\n Tokenizer.prototype.finishComment = function () {\n this.addLocInfo();\n }; // Tags - basic\n\n\n Tokenizer.prototype.tagOpen = function () {};\n\n Tokenizer.prototype.beginStartTag = function () {\n this.push({\n type: \"StartTag\"\n /* StartTag */\n ,\n tagName: '',\n attributes: [],\n selfClosing: false\n });\n };\n\n Tokenizer.prototype.beginEndTag = function () {\n this.push({\n type: \"EndTag\"\n /* EndTag */\n ,\n tagName: ''\n });\n };\n\n Tokenizer.prototype.finishTag = function () {\n this.addLocInfo();\n };\n\n Tokenizer.prototype.markTagAsSelfClosing = function () {\n this.current(\"StartTag\"\n /* StartTag */\n ).selfClosing = true;\n }; // Tags - name\n\n\n Tokenizer.prototype.appendToTagName = function (char) {\n this.current(\"StartTag\"\n /* StartTag */\n , \"EndTag\"\n /* EndTag */\n ).tagName += char;\n }; // Tags - attributes\n\n\n Tokenizer.prototype.beginAttribute = function () {\n this._currentAttribute = ['', '', false];\n };\n\n Tokenizer.prototype.appendToAttributeName = function (char) {\n this.currentAttribute()[0] += char;\n };\n\n Tokenizer.prototype.beginAttributeValue = function (isQuoted) {\n this.currentAttribute()[2] = isQuoted;\n };\n\n Tokenizer.prototype.appendToAttributeValue = function (char) {\n this.currentAttribute()[1] += char;\n };\n\n Tokenizer.prototype.finishAttributeValue = function () {\n this.current(\"StartTag\"\n /* StartTag */\n ).attributes.push(this._currentAttribute);\n };\n\n Tokenizer.prototype.reportSyntaxError = function (message) {\n this.current().syntaxError = message;\n };\n\n return Tokenizer;\n}();\n\nfunction tokenize(input, options) {\n var tokenizer = new Tokenizer(new EntityParser(HTML5NamedCharRefs), options);\n return tokenizer.tokenize(input);\n}\n\nvar Options = linkify.Options;\nvar StartTag = 'StartTag';\nvar EndTag = 'EndTag';\nvar Chars = 'Chars';\nvar Comment = 'Comment';\nvar Doctype = 'Doctype';\n/**\n * @param {string} str html string to link\n * @param {object} [opts] linkify options\n * @returns {string} resulting string\n */\n\nfunction linkifyHtml(str) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // `tokens` and `token` in this section refer to tokens generated by the\n // HTML parser, not linkify's parser\n var tokens = tokenize(str);\n var linkifiedTokens = [];\n var linkified = [];\n opts = new Options(opts); // Linkify the tokens given by the parser\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.type === StartTag) {\n linkifiedTokens.push(token); // Ignore all the contents of ignored tags\n\n var tagName = token.tagName.toUpperCase();\n var isIgnored = tagName === 'A' || opts.ignoreTags.indexOf(tagName) >= 0;\n\n if (!isIgnored) {\n continue;\n }\n\n var preskipLen = linkifiedTokens.length;\n skipTagTokens(tagName, tokens, ++i, linkifiedTokens);\n i += linkifiedTokens.length - preskipLen - 1;\n continue;\n } else if (token.type !== Chars) {\n // Skip this token, it's not important\n linkifiedTokens.push(token);\n continue;\n } // Valid text token, linkify it!\n\n\n var linkifedChars = linkifyChars(token.chars, opts);\n linkifiedTokens.push.apply(linkifiedTokens, linkifedChars);\n } // Convert the tokens back into a string\n\n\n for (var _i = 0; _i < linkifiedTokens.length; _i++) {\n var _token = linkifiedTokens[_i];\n\n switch (_token.type) {\n case StartTag:\n {\n var link = '<' + _token.tagName;\n\n if (_token.attributes.length > 0) {\n var attrs = attrsToStrings(_token.attributes);\n link += ' ' + attrs.join(' ');\n }\n\n link += '>';\n linkified.push(link);\n break;\n }\n\n case EndTag:\n linkified.push(\"\"));\n break;\n\n case Chars:\n linkified.push(escapeText(_token.chars));\n break;\n\n case Comment:\n linkified.push(\"\"));\n break;\n\n case Doctype:\n {\n var doctype = \"';\n linkified.push(doctype);\n break;\n }\n }\n }\n\n return linkified.join('');\n}\n/**\n\t`tokens` and `token` in this section referes to tokens returned by\n\t`linkify.tokenize`. `linkified` will contain HTML Parser-style tokens\n*/\n\nfunction linkifyChars(str, opts) {\n var tokens = linkify.tokenize(str);\n var result = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.t === 'nl' && opts.nl2br) {\n result.push({\n type: StartTag,\n tagName: 'br',\n attributes: [],\n selfClosing: true\n });\n continue;\n } else if (!token.isLink || !opts.check(token)) {\n result.push({\n type: Chars,\n chars: token.toString()\n });\n continue;\n }\n\n var _opts$resolve = opts.resolve(token),\n formatted = _opts$resolve.formatted,\n formattedHref = _opts$resolve.formattedHref,\n tagName = _opts$resolve.tagName,\n className = _opts$resolve.className,\n target = _opts$resolve.target,\n rel = _opts$resolve.rel,\n attributes = _opts$resolve.attributes,\n truncate = _opts$resolve.truncate; // Build up attributes\n\n\n var attributeArray = [['href', formattedHref]];\n\n if (className) {\n attributeArray.push(['class', className]);\n }\n\n if (target) {\n attributeArray.push(['target', target]);\n }\n\n if (rel) {\n attributeArray.push(['rel', rel]);\n }\n\n if (truncate && formatted.length > truncate) {\n formatted = formatted.substring(0, truncate) + '…';\n }\n\n for (var attr in attributes) {\n attributeArray.push([attr, attributes[attr]]);\n } // Add the required tokens\n\n\n result.push({\n type: StartTag,\n tagName: tagName,\n attributes: attributeArray,\n selfClosing: false\n });\n result.push({\n type: Chars,\n chars: formatted\n });\n result.push({\n type: EndTag,\n tagName: tagName\n });\n }\n\n return result;\n}\n/**\n\tReturns a list of tokens skipped until the closing tag of tagName.\n\n\t* `tagName` is the closing tag which will prompt us to stop skipping\n\t* `tokens` is the array of tokens generated by HTML5Tokenizer which\n\t* `i` is the index immediately after the opening tag to skip\n\t* `skippedTokens` is an array which skipped tokens are being pushed into\n\n\tCaveats\n\n\t* Assumes that i is the first token after the given opening tagName\n\t* The closing tag will be skipped, but nothing after it\n\t* Will track whether there is a nested tag of the same type\n*/\n\n\nfunction skipTagTokens(tagName, tokens, i, skippedTokens) {\n // number of tokens of this type on the [fictional] stack\n var stackCount = 1;\n\n while (i < tokens.length && stackCount > 0) {\n var token = tokens[i];\n\n if (token.type === StartTag && token.tagName.toUpperCase() === tagName) {\n // Nested tag of the same type, \"add to stack\"\n stackCount++;\n } else if (token.type === EndTag && token.tagName.toUpperCase() === tagName) {\n // Closing tag\n stackCount--;\n }\n\n skippedTokens.push(token);\n i++;\n } // Note that if stackCount > 0 here, the HTML is probably invalid\n\n\n return skippedTokens;\n}\n\nfunction escapeText(text) {\n // Not required, HTML tokenizer ensures this occurs properly\n return text;\n}\n\nfunction escapeAttr(attr) {\n return attr.replace(/\"/g, '"');\n}\n\nfunction attrsToStrings(attrs) {\n var attrStrs = [];\n\n for (var i = 0; i < attrs.length; i++) {\n var name = attrs[i][0];\n var value = attrs[i][1];\n attrStrs.push(\"\".concat(name, \"=\\\"\").concat(escapeAttr(value), \"\\\"\"));\n }\n\n return attrStrs;\n}\n\nexport { linkifyHtml as default };\n","import {\r\n\tDEFAULT_ELEMENTS_WHITELIST as whiteList,\r\n\tDEFAULT_HYPERLINKS_ATTRIBUTES as attributes\r\n} from 'defs/defaults';\r\n\r\nimport xss from 'xss';\r\nimport linkifyHtml from 'linkify-html';\r\n\r\nimport { mergeActions } from './helpers/framework';\r\n\r\nexport const sanitizeHTML = html => {\r\n\treturn xss(html, {\r\n\t\twhiteList\r\n\t});\r\n};\r\n\r\nexport const createHyperlinks = html => {\r\n\t// Refactored from 'anchorme'\r\n\treturn linkifyHtml(html, {\r\n\t\tattributes\r\n\t});\r\n};\r\n\r\nexport const convertNewLines = html => {\r\n\treturn html.replace(/ /g, '
');\r\n};\r\n\r\nexport const displayHTML = html => {\r\n\treturn mergeActions(html, [\r\n\t\tconvertNewLines,\r\n\t\tcreateHyperlinks,\r\n\t\tsanitizeHTML\r\n\t]);\r\n};\r\n","import { USER_TYPE, MESSAGE_TYPE } from 'defs/message';\r\nimport { getUserInfo } from './events.helpers';\r\n\r\nexport const isConnectedToBot = state => {\r\n\treturn state.connectedAgents.some(agent => agent.userType === USER_TYPE.BOT);\r\n};\r\n\r\nexport const isBotMessage = (state, messageId) => {\r\n\tconst [ message ] = state.messages.filter(({ id }) => id === messageId);\r\n\r\n\tif (!message) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\treturn getUserInfo(state)[message.userId]?.userType === USER_TYPE.BOT;\r\n};\r\n\r\nexport const getBotArguments = state => {\r\n\treturn state.messages.reduce((botArguments, message) => {\r\n\t\tif (message.arguments) {\r\n\t\t\treturn message.arguments;\r\n\t\t}\r\n\r\n\t\treturn botArguments;\r\n\t}, {});\r\n};\r\n\r\nexport const getMessageReaction = (state, messageId) => {\r\n\treturn state.messages.reduce((reaction, { content, type }) => {\r\n\t\tif (content.messageId && content.messageId === messageId && type === MESSAGE_TYPE.REACTION) {\r\n\t\t\treturn content.reaction;\r\n\t\t}\r\n\r\n\t\treturn reaction;\r\n\t}, null);\r\n};\r\n\r\nexport const isReactionEnabled = (state, messageId) => {\r\n\tconst [ message ] = state.messages.filter(({ id }) => id === messageId);\r\n\r\n\tif (!message) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\treturn !!(message.arguments?.reaction);\t\r\n};\r\n\r\nexport const getMaxChars = state => {\r\n\treturn state.messages.reduce((maxchars, message) => {\r\n\t\tif (message.arguments && !maxchars) {\r\n\t\t\treturn message.arguments.maxchars;\r\n\t\t}\r\n\r\n\t\treturn maxchars;\r\n\t}, null);\r\n};\r\n","import { getUserInfo } from '../../actions/events.helpers';\r\nimport { STYLES_PREFIX } from '../../defs/defaults';\r\nimport { URLValidator } from '../../lib/helpers/string';\r\n\r\nexport const AgentAvatarIcon = () => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const BotAvatarIcon = ({ userId }) => ({ state }) => {\r\n\tconst user = getUserInfo(state);\r\n\tconst avatarUrl = user[userId]?.avatarUrl || '';\r\n\r\n\t// eslint-disable-next-line no-magic-numbers\r\n\tconst isAvatarValid = avatarUrl !== '' && (URLValidator(avatarUrl) || avatarUrl.indexOf('//') === 0);\r\n\r\n\tif (isAvatarValid) {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import { getUserInfo } from 'actions/events.helpers';\r\nimport { AgentAvatarIcon } from '../message-meta/icons';\r\nimport { URLValidator } from '../../lib/helpers/string';\r\n\r\nimport { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nexport const AgentAvatar = ({ userId }) => ({ state }) => {\r\n\tconst user = getUserInfo(state);\r\n\tconst avatarUrl = user[userId]?.avatarUrl || '';\r\n\r\n\t// eslint-disable-next-line no-magic-numbers\r\n\tconst isAvatarValid = avatarUrl !== '' && (URLValidator(avatarUrl) || avatarUrl.indexOf('//') === 0);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{\r\n\t\t\t\tisAvatarValid\r\n\t\t\t\t\t?\r\n\t\t\t\t\t\r\n\t\t\t\t\t:\r\n\t\t\t\t\t\r\n\t\t\t}\r\n\t\t
\r\n\t);\r\n};\r\n\r\n","import { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nconst messageMetaStyles = (...args) => {\r\n\tconst [{\r\n\t\tmessageMetaTextColor,\r\n\t\tchatBubbleMetaTextSize\r\n\t}] = args;\r\n\r\n\tconst metaStyles = (color, size) => ({\r\n\t\tcolor: color,\r\n\t\t'font-size': size + 'px'\r\n\t});\r\n\r\n\treturn {\r\n\t\tmeta: {\r\n\t\t\t[`& .${STYLES_PREFIX}meta-time`]: {\r\n\t\t\t\t'display': 'inline-block',\r\n\t\t\t\t'margin-top': '-19px',\r\n\t\t\t\t'padding-left': 3,\r\n\t\t\t\t'padding-right': 3,\r\n\t\t\t\t[`&.${STYLES_PREFIX}chat-agent`]: {\r\n\t\t\t\t\t'text-align': 'right',\r\n\t\t\t\t\t'padding-right': '6px'\r\n\t\t\t\t},\r\n\t\t\t\t[`&.${STYLES_PREFIX}chat-user`]: {\r\n\t\t\t\t\t'padding-left': '6px'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t[`& .${STYLES_PREFIX}meta-time > span`]: {\r\n\t\t\t\t...metaStyles(messageMetaTextColor, chatBubbleMetaTextSize)\r\n\t\t\t},\r\n\t\t\t[`& .${STYLES_PREFIX}meta`]: {\r\n\t\t\t\t'display': 'flex',\r\n\t\t\t\t'flex-flow': 'row nowrap',\r\n\t\t\t\t'justify-content': 'space-between'\r\n\t\t\t},\r\n\t\t\t[`& .${STYLES_PREFIX}meta-text`]: {\r\n\t\t\t\t...metaStyles(messageMetaTextColor, chatBubbleMetaTextSize),\r\n\t\t\t\t'display': 'inline-block',\r\n\t\t\t\t'margin-top': '-14px',\r\n\t\t\t\t'padding-right': '6px',\r\n\t\t\t\t[`&.${STYLES_PREFIX}chat-user`]: {\r\n\t\t\t\t\t'text-align': 'right',\r\n\t\t\t\t\t'padding-left': '6px'\r\n\t\t\t\t},\r\n\t\t\t\t[`&.${STYLES_PREFIX}chat-agent`]: {\r\n\t\t\t\t\t'text-align': 'left'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport default messageMetaStyles;\r\n","import { USER_TYPE } from 'defs/message';\r\n\r\nimport classNames from 'lib/helpers/class-names';\r\nimport { tr } from 'lib/translation';\r\nimport { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nimport { BotAvatarIcon } from './icons';\r\nimport { AgentAvatar } from '../avatar-agent';\r\nimport messageMetaStyles from './styles';\r\nimport { getUserInfo } from 'actions/events.helpers';\r\n\r\nexport const MetaDataTime = (userId, sent) => {\r\n\tconst timeStamp = new Date(sent);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{timeStamp.toLocaleTimeString(undefined, {\r\n\t\t\t\t\thour: '2-digit',\r\n\t\t\t\t\tminute: '2-digit'\r\n\t\t\t\t})}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const MetaDataText = (userId, name) => {\r\n\tconst defaultName = userId ? tr('common.agent') : tr('common.you');\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{userId && name ? name : defaultName}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const MessageMeta = ({ userId, sent, name }) => ({ withStyles }) => {\r\n\tconst { metaSheet } = withStyles(messageMetaStyles);\r\n\tconst result = [\r\n\t\tMetaDataText(userId, name),\r\n\t\tMetaDataTime(userId, sent)\r\n\t];\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
{userId ? result : result.reverse()}
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport const Avatar = ({ userId }) => ({ state }) => {\r\n\tconst EmptyAvatar = () => ;\r\n\r\n\tif (!userId) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\tconst userInfo = getUserInfo(state);\r\n\r\n\tif (!userInfo[userId]) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\treturn userInfo[userId].userType === USER_TYPE.HUMAN ? : ;\r\n};\r\n","import { STYLES_PREFIX } from '../../defs/defaults';\r\n\r\nconst mediaCard = () => {\r\n\treturn {\r\n\t\tmediaCard: {\r\n\t\t\tdisplay: 'flex',\r\n\t\t\t'flex-direction': 'column',\r\n\r\n\t\t\t[`& .${STYLES_PREFIX}image-content img`]: {\r\n\t\t\t\t'max-width': '100%'\r\n\t\t\t},\r\n\r\n\t\t\t[`& .${STYLES_PREFIX}text-content`]: {\r\n\t\t\t\t'& h1': {\r\n\t\t\t\t\tmargin: '5px 0 0'\r\n\t\t\t\t},\r\n\r\n\t\t\t\t'& p': {\r\n\t\t\t\t\tmargin: '5px 0'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t'&.image-left': {\r\n\t\t\t\t'flex-direction': 'row',\r\n\r\n\t\t\t\t'& .image-content': {\r\n\t\t\t\t\tflex: '0 0 100px',\r\n\t\t\t\t\t'margin-right': 5\r\n\t\t\t\t},\r\n\r\n\t\t\t\t'& .text-content': {\r\n\t\t\t\t\t'& h1': {\r\n\t\t\t\t\t\tmargin: 0\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t'& p': {\r\n\t\t\t\t\t\tmargin: 0\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport default mediaCard;\r\n","import { STYLES_PREFIX } from '../../defs/defaults';\r\n\r\nimport classNames from 'lib/helpers/class-names';\r\nimport mediaCardStyles from './styles';\r\n\r\nexport const MessageMediaCard = ({ message }) => ({ withStyles }) => {\r\n\tconst {\r\n\t\timage,\r\n\t\theading,\r\n\t\tbody,\r\n\t\tlink\r\n\t} = message.content;\r\n\r\n\tconst { mediaCardSheet } = withStyles(mediaCardStyles);\r\n\tconst positionClass = image ? `image-${image.position}` : '';\r\n\r\n\t// eslint-disable-next-line no-magic-numbers, no-script-url\r\n\tconst validateUrl = url => String(url).toLowerCase().indexOf('javascript:') === -1;\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{\r\n\t\t\t\timage && validateUrl(image.url) &&\r\n\t\t\t\t
\r\n\t\t\t\t\t{image.alt}\r\n\t\t\t\t
\r\n\t\t\t}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n","import { MESSAGE_TYPE } from 'defs/message';\r\nimport { sendMessageFactory } from './chat';\r\n\r\nexport const sendReaction = ({ messageId, reaction }) => state => {\r\n\treturn sendMessageFactory(\r\n\t\tstate,\r\n\t\t{ messageId, reaction },\r\n\t\t{ type: MESSAGE_TYPE.REACTION, preserveUserInput: true }\r\n\t);\r\n};\r\n","import { REACTIONS } from 'defs/message';\r\nimport { sendReaction } from 'actions/bot';\r\n\r\nexport const cancelOrReact = (messageId, { currentReaction, reaction }) => {\r\n\tif (reaction === currentReaction) {\r\n\t\treturn sendReaction({ messageId, reaction: REACTIONS.CANCEL });\r\n\t}\r\n\r\n\treturn sendReaction({ messageId, reaction });\r\n};\r\n","import { STYLES_PREFIX } from 'defs/defaults';\r\nimport classNames from 'lib/helpers/class-names';\r\n\r\nexport const ThumbsUp = ({ selected }) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const ThumbsDown = ({ selected }) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nconst reactionStyles = variables => {\r\n\tconst {\r\n\t\tfontColor,\r\n\t\tmessageListBackgroundColor\r\n\t} = variables;\r\n\r\n\treturn {\r\n\t\treactions: {\r\n\t\t\tdisplay: 'flex',\r\n\t\t\t'justify-content': 'flex-end',\r\n\t\t\t'margin-top': 5,\r\n\r\n\t\t\t[`& .${STYLES_PREFIX}reaction`]: {\r\n\t\t\t\tbackground: 'transparent',\r\n\t\t\t\tcursor: 'pointer',\r\n\t\t\t\tpadding: 0,\r\n\t\t\t\tborder: 0,\r\n\r\n\t\t\t\t'&:first-child': {\r\n\t\t\t\t\t'margin-right': 5\r\n\t\t\t\t},\r\n\r\n\t\t\t\t'& svg': {\r\n\t\t\t\t\t'& .background': {\r\n\t\t\t\t\t\tfill: messageListBackgroundColor\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t'& .border': {\r\n\t\t\t\t\t\tfill: fontColor\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t'&:hover, &.selected': {\r\n\t\t\t\t\t\t'& .background': {\r\n\t\t\t\t\t\t\tfill: fontColor\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t'&.option-reaction': {\r\n\t\t\t\twidth: 250,\t\t\t\t\r\n\t\t\t\t'margin-right': 'auto',\r\n\t\t\t\t'margin-left': 'auto',\r\n\t\t\t\t'margin-bottom': 10\t\t\t\t \r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport default reactionStyles;\r\n","import { REACTIONS } from 'defs/message';\r\nimport { STYLES_PREFIX } from 'defs/defaults';\r\nimport { tr } from 'lib/translation';\r\nimport { getMessageReaction } from 'actions/bot.helpers';\r\nimport classNames from 'lib/helpers/class-names';\r\n\r\nimport { cancelOrReact } from './handlers';\r\nimport { ThumbsUp, ThumbsDown } from './icons';\r\nimport reactionStyles from './styles';\r\n\r\nexport const MessageReaction = ({ messageId, isOption }) => ({ withStyles, state }) => {\r\n\tconst { reactionsSheet } = withStyles(reactionStyles);\r\n\tconst currentReaction = getMessageReaction(state, messageId);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n","import { defaultFocusBoxShadow, clipMask } from 'styles/mixins';\r\nimport { STYLES_PREFIX } from 'defs/defaults';\r\nimport { toArrayOf } from 'lib/helpers/string';\r\n\r\nconst messageStyles = (...args) => {\r\n\tconst [{\r\n\t\tchatFocusOutlineColor,\r\n\t\tfontSize,\r\n\t\tmessageDefaultBackground,\r\n\t\tlinkNormalColor,\r\n\t\tmessageUserBackground,\r\n\t\tmessageAgentBackground,\r\n\t\tagentBubbleBorderRadius,\r\n\t\tchatterBubbleBorderRadius\r\n\t}] = args;\r\n\r\n\tconst agentBubbleShape = toArrayOf(agentBubbleBorderRadius);\r\n\tconst chatterBubbleShape = toArrayOf(chatterBubbleBorderRadius);\r\n\r\n\treturn {\r\n\t\tmessage: {\r\n\t\t\tisolate: true,\r\n\t\t\tdisplay: 'inline-flex',\r\n\t\t\t'align-items': 'flex-start',\r\n\t\t\t'flex-flow': 'row wrap',\r\n\t\t\t'min-width': '93%',\r\n\t\t\tmargin: '16px 10px 0 10px',\r\n\t\t\t'padding-bottom': 10,\r\n\t\t\theight: 'fit-content',\r\n\r\n\t\t\t[`&.${STYLES_PREFIX}user`]: {\r\n\t\t\t\t'justify-content': 'flex-end'\r\n\t\t\t},\r\n\r\n\t\t\t[`&.${STYLES_PREFIX}agent`]: {\r\n\t\t\t\t'justify-content': 'flex-start',\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}message-text`]: {\r\n\t\t\t\t\t'max-width': '80%'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t[`& .${STYLES_PREFIX}avatar`]: {\r\n\t\t\t\t'margin-right': '8px',\r\n\r\n\t\t\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\t\t\t'& img': clipMask('circle', 40)\r\n\t\t\t},\r\n\r\n\t\t\t'&:focus': {\r\n\t\t\t\toutline: 0,\r\n\t\t\t\t'.text': defaultFocusBoxShadow(chatFocusOutlineColor)\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tmessageContent: {\r\n\t\t\t'background-color': messageDefaultBackground,\r\n\t\t\t'min-width': '35%',\r\n\t\t\t'padding': '6px 10px 6px 10px',\r\n\t\t\t'font-size': fontSize,\r\n\t\t\t'word-break': 'break-word',\r\n\r\n\t\t\t'& a': {\r\n\t\t\t\tcolor: linkNormalColor\r\n\t\t\t},\r\n\r\n\t\t\t'& h1': {\r\n\t\t\t\t'font-size': fontSize + 6 // eslint-disable-line no-magic-numbers\r\n\t\t\t},\r\n\r\n\t\t\t'& h2': {\r\n\t\t\t\t'font-size': fontSize + 4 // eslint-disable-line no-magic-numbers\r\n\t\t\t},\r\n\r\n\t\t\t'& h3': {\r\n\t\t\t\t'font-size': fontSize + 2 // eslint-disable-line no-magic-numbers\r\n\t\t\t},\r\n\r\n\t\t\t'& h4, & h5, & h6': {\r\n\t\t\t\t'font-size': fontSize\r\n\t\t\t},\r\n\r\n\t\t\t'& h1, & h2, & h3, & h4, & h5, & h6': {\r\n\t\t\t\tmargin: '0 0 5px',\r\n\r\n\t\t\t\t'& + br': {\r\n\t\t\t\t\tdisplay: 'none'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t[`&.${STYLES_PREFIX}user`]: {\r\n\t\t\t\t'justify-content': 'flex-end',\r\n\t\t\t\t'background-color': messageUserBackground,\r\n\t\t\t\t'border-radius': chatterBubbleShape,\r\n\t\t\t\t'border-bottom-right-radius': 0\r\n\r\n\t\t\t},\r\n\t\t\t[`&.${STYLES_PREFIX}agent`]: {\r\n\t\t\t\t'justify-content': 'flex-start',\r\n\t\t\t\t'background-color': messageAgentBackground,\r\n\t\t\t\t'border-radius': agentBubbleShape\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport default messageStyles;\r\n","import { MESSAGE_TYPE } from 'defs/message';\r\n\r\nimport classNames from 'lib/helpers/class-names';\r\nimport { displayHTML } from 'lib/html';\r\nimport { trim } from 'lib/helpers/string';\r\nimport { isBotMessage, isReactionEnabled } from 'actions/bot.helpers';\r\n\r\nimport { Avatar, MessageMeta } from 'components/message-meta';\r\nimport { MessageMediaCard } from 'components/message-media-card';\r\nimport { MessageReaction } from 'components/message-reaction';\r\nimport { STYLES_PREFIX } from 'defs/defaults';\r\nimport messageStyles from './styles';\r\n\r\nexport const Message = ({ message }) => ({ withStyles, state, tr }) => {\r\n\tconst { id, content, userId, sent, name, type } = message;\r\n\tconst { messageSheet, messageContentSheet } = withStyles(messageStyles);\r\n\tconst isReactionShown = isReactionEnabled(state, id) && isBotMessage(state, id);\r\n\tconst agentName = (userId !== null && trim(name) === '') ? tr('common.agent') : name;\r\n\tconst agentStyles = `${STYLES_PREFIX}agent`;\r\n\tconst userStyles = `${STYLES_PREFIX}user`;\r\n\tconst messageTextStyles = `${STYLES_PREFIX}message-text`;\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t{\r\n\t\t\t\t\ttype === MESSAGE_TYPE.TEXT ? (\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t\t{isReactionShown && }\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n","import { JSON_OPTION_PREFIX } from 'defs/message';\r\n\r\nexport const parseOption = option => {\r\n\tif (!option) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tif (option.indexOf(JSON_OPTION_PREFIX) !== 0) {\r\n\t\treturn option;\r\n\t}\r\n\r\n\ttry {\r\n\t\treturn JSON.parse(option.replace(JSON_OPTION_PREFIX, ''));\r\n\t} catch (error) {\r\n\t\treturn null;\r\n\t}\r\n};\r\n","import { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nconst messageInfoStyles = (...args) => {\r\n\tconst [{\r\n\t\tchatInfoMessageTextColor,\r\n\t\tchatInfoMessageTextSize,\r\n\t\tchatInfoTimestampTextSize\r\n\t}] = args;\r\n\r\n\treturn {\r\n\t\tmessageInfo: {\r\n\t\t\tdisplay: 'inline-flex',\r\n\t\t\t'flex-flow': 'row wrap',\r\n\t\t\t'min-width': '100%',\r\n\t\t\tmargin: '5px 0px 6px 0px',\r\n\t\t\t'padding-bottom': 5,\r\n\t\t\t'justify-content': 'center',\r\n\r\n\t\t\t'& h2': {\r\n\t\t\t\t'font-size': chatInfoMessageTextSize,\r\n\t\t\t\t'font-weight': 'normal',\r\n\t\t\t\tmargin: 0\r\n\t\t\t},\r\n\r\n\t\t\t[`& .${STYLES_PREFIX}message-info-text`]: {\r\n\t\t\t\t'background-color': 'transparent',\r\n\t\t\t\t'border-radius': 0,\r\n\t\t\t\t'min-width': '10%',\r\n\t\t\t\t'text-align': 'center',\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}message-info-content`]: {\r\n\t\t\t\t\t'padding': 0,\r\n\t\t\t\t\t'text-align': 'center',\r\n\t\t\t\t\tcolor: chatInfoMessageTextColor,\r\n\t\t\t\t\t'font-size': chatInfoMessageTextSize,\r\n\t\t\t\t\t'word-break': 'break-word'\r\n\t\t\t\t},\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}meta-time`]: {\r\n\t\t\t\t\t'font-size': chatInfoTimestampTextSize\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport default messageInfoStyles;\r\n\r\n","import { MetaDataTime } from 'components/message-meta';\r\nimport messageInfoStyles from './styles';\r\nimport { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nexport const MessageInfo = (props) => ({ withStyles }) => {\r\n\tconst { content, userId, sent, id } = props.message;\r\n\tconst { messageInfoSheet } = withStyles(messageInfoStyles);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{props.title &&

{props.title}

}\r\n\t\t\t\t
\r\n\t\t\t\t\t{String(content.replace(/ /gi, '
'))}\r\n\t\t\t\t
\r\n\t\t\t\t{MetaDataTime(userId, sent)}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n","import { OPTION_TYPE, JSON_OPTION_PREFIX } from 'defs/message';\r\nimport { sendOption } from 'actions/chat';\r\n\r\nexport const clickHandler = (selectedOption, messageId, optionChoice) => state => {\r\n\t// Handle link buttons.\r\n\tif (optionChoice?.type === OPTION_TYPE.LINK_BUTTON) {\r\n\t\treturn _openExternalLink(state, messageId, optionChoice);\r\n\t}\r\n\r\n\t// Handle action buttons. Buttons without a type or simple buttos are action buttons too.\r\n\tif (typeof optionChoice === 'string' || optionChoice?.type === OPTION_TYPE.ACTION_BUTTON || !optionChoice?.type) {\r\n\t\treturn _toggleActionButton(state, messageId, optionChoice, selectedOption);\r\n\t}\r\n\r\n\t// All other types are unsupported.\r\n\tthrow new Error('Unsupported option type', optionChoice);\r\n};\r\n\r\n// TODO: CSP-5760 Move the functions that process option data in the helper class.\r\nconst _jsonEncode = option => {\r\n\tif (typeof option === 'string' || typeof option === 'undefined') {\r\n\t\treturn option;\r\n\t}\r\n\r\n\treturn JSON_OPTION_PREFIX + JSON.stringify(option);\r\n};\r\n\r\n// TODO: CSP-5760 Move the functions that process option data in the helper class.\r\nconst _nameOfOption = option => option?.name ?? option;\r\n\r\nconst _toggleActionButton = (state, messageId, optionChoice, selectedOption) => {\r\n\tconst cancelOldOption = {\r\n\t\tmessageId,\r\n\t\toptionChoice: _jsonEncode(selectedOption),\r\n\t\tcancelled: true\r\n\t};\r\n\r\n\tconst selectNewOption = {\r\n\t\tmessageId,\r\n\t\toptionChoice: _jsonEncode(optionChoice),\r\n\t\tcancelled: false\r\n\t};\r\n\r\n\tconst isCancelled = !!selectedOption;\r\n\tconst isNewOption = _nameOfOption(selectedOption) !== _nameOfOption(optionChoice);\r\n\r\n\tif (isCancelled && isNewOption) {\r\n\t\treturn sendOption(state, [\r\n\t\t\tcancelOldOption,\r\n\t\t\tselectNewOption\r\n\t\t]);\r\n\t}\r\n\r\n\tif (isCancelled) {\r\n\t\treturn sendOption(state, [cancelOldOption]);\r\n\t}\r\n\r\n\treturn sendOption(state, [selectNewOption]);\r\n};\r\n\r\nconst _openExternalLink = (state, messageId, option) => {\r\n\tconst { url, target } = option.content;\r\n\twindow.open(url, target);\r\n\tconst payload = {\r\n\t\tmessageId,\r\n\t\toptionChoice: _jsonEncode(option)\r\n\t};\r\n\r\n\treturn sendOption(state, payload);\r\n};\r\n\r\nexport const submitHandler = (options, selectedOption, messageId) => (state, event) => {\r\n\tconst formData = new FormData(event.target);\r\n\tconst option = Array.from(formData.entries())[0];\r\n\r\n\tif (!option) {\r\n\t\t// No option has been chosen\r\n\t\treturn state;\r\n\t}\r\n\r\n\tconst [, optionIndex] = option;\r\n\tconst optionChoice = options[optionIndex];\r\n\r\n\tif (!optionChoice) {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tconst handler = clickHandler(selectedOption, messageId, optionChoice);\r\n\r\n\treturn handler(state);\r\n};\r\n","/* eslint-disable no-magic-numbers*/\r\nimport { STYLES_PREFIX } from 'defs/defaults';\r\nimport { toArrayOf } from 'lib/helpers/string';\r\nimport { adjust } from '../../styles/helpers';\r\n\r\nconst messageOptionStyles = (...args) => {\r\n\tconst [{\r\n\t\tprimaryColor,\r\n\t\tsupportColorThree,\r\n\t\tmessageOptionBackground,\r\n\t\tbuttonTertiaryBorder,\r\n\t\tbuttonTertiaryNormal,\r\n\t\tmessageOptionBorderRadius,\r\n\t\tmessageOptionHeight,\r\n\t\tmessageOptionWidth,\r\n\t\tmessageOptionHoverBackground,\r\n\t\tmessageOptionFocusBackground,\r\n\t\tmessageOptionHoverColor,\r\n\t\tmessageOptionSeparatorColor,\r\n\t\tbuttonTertiaryTextColor,\r\n\t\tbuttonTertiaryTextSize,\r\n\t\tbuttonTertiaryTextTransform,\r\n\t\tmessageOptionFocusColor,\r\n\t\tchatInfoMessageTextSize\r\n\t}] = args;\r\n\r\n\tconst optionFocus = () => ({\r\n\t\t'border-color': buttonTertiaryNormal,\r\n\t\t'box-shadow': adjust(messageOptionFocusBackground, 60, 'darken'),\r\n\t\tbackground: messageOptionFocusBackground,\r\n\t\tcolor: messageOptionFocusColor\r\n\t});\r\n\r\n\tconst optionHover = () => ({\r\n\t\t'border-color': buttonTertiaryNormal,\r\n\t\tbackground: messageOptionHoverBackground,\r\n\t\tcolor: messageOptionHoverColor\r\n\t});\r\n\r\n\tconst disabledOption = () => ({\r\n\t\topacity: 0.3\r\n\t});\r\n\r\n\tconst selectedOption = () => ({\r\n\t\tcolor: messageOptionFocusColor,\r\n\t\t'border-color': buttonTertiaryNormal,\r\n\t\tbackground: adjust(messageOptionHoverBackground, 50, 'lighten')\r\n\t});\r\n\r\n\tconst selectedOptionHover = () => ({\r\n\t\topacity: 1\r\n\t});\r\n\r\n\tconst optionBorder = toArrayOf(buttonTertiaryBorder, false);\r\n\r\n\treturn {\r\n\t\tmessageOption: {\r\n\t\t\t'min-height': messageOptionHeight,\r\n\t\t\twidth: messageOptionWidth,\r\n\t\t\tmargin: '0 auto',\r\n\t\t\t'font-size': buttonTertiaryTextSize,\r\n\t\t\t'text-transform': buttonTertiaryTextTransform,\r\n\r\n\t\t\t[`& .${STYLES_PREFIX}option`]: {\r\n\t\t\t\tdisplay: 'flex',\r\n\t\t\t\tposition: 'relative',\r\n\t\t\t\t'margin-bottom': 15,\r\n\r\n\t\t\t\t'& input[type=\"radio\"]': {\r\n\t\t\t\t\topacity: 0,\r\n\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\ttop: 0,\r\n\t\t\t\t\tleft: 0\r\n\t\t\t\t},\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}option-content`]: {\r\n\t\t\t\t\tflex: 1,\r\n\t\t\t\t\tborder: optionBorder,\r\n\t\t\t\t\tcolor: buttonTertiaryTextColor,\r\n\t\t\t\t\t'background-color': messageOptionBackground,\r\n\t\t\t\t\t'border-radius': `${messageOptionBorderRadius}px`,\r\n\t\t\t\t\t'text-align': 'center',\r\n\t\t\t\t\tcursor: 'pointer',\r\n\t\t\t\t\tpadding: 10,\r\n\t\t\t\t\t'word-break': 'break-word',\r\n\r\n\t\t\t\t\t'&.selected': {\r\n\t\t\t\t\t\t...selectedOption(),\r\n\r\n\t\t\t\t\t\t'&:hover': {\r\n\t\t\t\t\t\t\t...selectedOptionHover(),\r\n\t\t\t\t\t\t\t...optionHover()\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t'&:focus': {\r\n\t\t\t\t\t\t\t...selectedOptionHover()\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t'& svg': {\r\n\t\t\t\t\t\tfill: primaryColor,\r\n\t\t\t\t\t\t'max-height': 18\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t'&:hover svg': {\r\n\t\t\t\t\t\tfill: supportColorThree\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t[`&.${STYLES_PREFIX}link`]: {\r\n\t\t\t\t\t\tdisplay: 'flex',\r\n\r\n\t\t\t\t\t\t[`& .${STYLES_PREFIX}title`]: {\r\n\t\t\t\t\t\t\tflex: 1\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t[`& .${STYLES_PREFIX}icon.${STYLES_PREFIX}link`]: {\r\n\t\t\t\t\t\t\tflex: '0 1 16px'\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t[`& .${STYLES_PREFIX}option:only-child`]:{\r\n\t\t\t\t'margin-bottom': 22\r\n\t\t\t},\r\n\r\n\t\t\t[`&:not(.disabled) .${STYLES_PREFIX}option`]: {\r\n\t\t\t\t'& input[type=\"radio\"]': {\r\n\t\t\t\t\t'&:focus + .option-content': optionFocus(),\r\n\t\t\t\t\t'&:focus + .option-content.selected': selectedOption()\r\n\t\t\t\t},\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}option-content`]: {\r\n\t\t\t\t\t'&:hover': {\r\n\t\t\t\t\t\t...selectedOptionHover(),\r\n\t\t\t\t\t\t...optionHover()\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'&:focus': {\r\n\t\t\t\t\t\t...selectedOptionHover(),\r\n\t\t\t\t\t\t...optionFocus()\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t[`&.disabled .${STYLES_PREFIX}option`]: {\r\n\t\t\t\t[`& .${STYLES_PREFIX}option-content`]: {\r\n\t\t\t\t\tcursor: 'default',\r\n\r\n\t\t\t\t\t'&:not(.selected)': {\r\n\t\t\t\t\t\t...disabledOption()\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t'&.selected': {\r\n\t\t\t\t\t\t'&:hover': {\r\n\t\t\t\t\t\t\t...selectedOptionHover(),\r\n\t\t\t\t\t\t\t...optionHover()\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t'&:focus': {\r\n\t\t\t\t\t\t\t...selectedOptionHover(),\r\n\t\t\t\t\t\t\t...optionFocus()\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t[`& .${STYLES_PREFIX}submit`]: {\r\n\t\t\t\tdisplay: 'none'\r\n\t\t\t}\r\n\t\t},\r\n\t\tmessageOptionSeparator: {\r\n\t\t\tdisplay: 'flex',\r\n\t\t\t'align-items': 'center',\r\n\t\t\t'justify-content': 'center',\r\n\t\t\tmargin: '10px 0',\r\n\r\n\t\t\t[`& > .${STYLES_PREFIX}dot`]: {\r\n\t\t\t\tdisplay: 'block',\r\n\t\t\t\t'background-color': messageOptionSeparatorColor,\r\n\t\t\t\t'border-radius': '50%',\r\n\t\t\t\twidth: 5,\r\n\t\t\t\theight: 5,\r\n\t\t\t\tmargin: 1\r\n\t\t\t}\r\n\t\t},\r\n\t\tmessageOptionSection: {\r\n\t\t\twidth: '99%', // Causes horizontal scroll on Mac Chrome and Safari\r\n\r\n\t\t\t'& h2': {\r\n\t\t\t\t'font-size': chatInfoMessageTextSize,\r\n\t\t\t\t'font-weight': 600,\r\n\t\t\t\t'text-align': 'center',\r\n\t\t\t\t'margin-bottom': 10\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport default messageOptionStyles;\r\n\r\n","import { STYLES_PREFIX } from 'defs/defaults';\r\nimport messageOptionStyles from './styles';\r\n\r\nexport const ExternalLinkIcon = () => (\r\n\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport const MessageSeparator = () => ({ withStyles }) => {\r\n\tconst { messageOptionSeparatorSheet } = withStyles(messageOptionStyles);\r\n\treturn (\r\n\t\t
\r\n\t\t\t \r\n\t\t\t \r\n\t\t\t \r\n\t\t
\r\n\t);\r\n};\r\n","import { STYLES_PREFIX } from 'defs/defaults';\r\nimport classNames from 'lib/helpers/class-names';\r\n\r\nexport const TextOption = ({ index, messageId, option, isChecked, onClick }) => {\r\n\tconst id = `${messageId}-id-${index}`;\r\n\tconst contentClassNames = classNames(`${STYLES_PREFIX}option-content`, isChecked ? 'selected' : '');\r\n\r\n\treturn [\r\n\t\t,\r\n\t\t\r\n\t];\r\n};\r\n","import { OPTION_TYPE } from 'defs/message';\r\nimport { STYLES_PREFIX } from 'defs/defaults';\r\nimport { ExternalLinkIcon } from './icons';\r\nimport classNames from 'lib/helpers/class-names';\r\n\r\nexport const JSONOption = ({ index, messageId, option, isChecked, onClick }) => {\r\n\tconst id = `${messageId}-id-${index}`;\r\n\tconst title = option?.content?.title || option?.name;\r\n\r\n\t// Do not render an option without a label.\r\n\tif (!title) {\r\n\t\treturn '';\r\n\t}\r\n\r\n\tif (option?.type === OPTION_TYPE.LINK_BUTTON) {\r\n\t\treturn [\r\n\t\t\t,\r\n\t\t\t\r\n\t\t];\r\n\t}\r\n\r\n\t// Options without a type, or having the 'action-button' type are rendered as toggle buttons.\r\n\tif (option?.type === OPTION_TYPE.ACTION_BUTTON || !option?.type) {\r\n\t\tconst contentClassNames = classNames(`${STYLES_PREFIX}option-content`, isChecked ? 'selected' : '');\r\n\r\n\t\treturn [\r\n\t\t\t,\r\n\t\t\t\r\n\t\t];\r\n\t}\r\n\r\n\t// Do not render options that have an unsupported type.\r\n\treturn '';\r\n};\r\n","import {\r\n\tMESSAGE_OPTION_CAN_CANCEL,\r\n\tMESSAGE_OPTION_SHOW_HEADER,\r\n\tMESSAGE_OPTION_HEADER_LABEL,\r\n\tMESSAGE_OPTION_HEADER_CONFIRMED_LABEL,\r\n\tMESSAGE_OPTION_SHOW_CONFIRMATION,\r\n\tSTYLES_PREFIX\r\n} from 'defs/defaults';\r\n\r\nimport { OPTION_TYPE } from 'defs/message';\r\n\r\nimport { preventDefault } from 'lib/helpers/events';\r\nimport { parseOption } from 'lib/helpers/options';\r\nimport { getOptionResult } from 'actions/chat.helpers';\r\nimport { isBotMessage, isReactionEnabled } from 'actions/bot.helpers';\r\nimport { ConfigService } from 'services';\r\n\r\nimport { MessageInfo } from 'components/message-info';\r\nimport { MessageReaction } from 'components/message-reaction';\r\n\r\nimport { clickHandler, submitHandler } from './handlers';\r\nimport { MessageSeparator } from './icons';\r\nimport { TextOption } from './text-option';\r\nimport { JSONOption } from './json-option';\r\nimport messageOptionStyles from './styles';\r\n\r\n/** Locates the selected option and the previously selected option, and returns them with the message data in an object. */\r\nconst findSelectedOptions = optionResults => {\r\n\tlet selectedOption, previouslySelectedOption, messageData;\r\n\r\n\toptionResults = optionResults.slice();\r\n\r\n\t// Find the first non-link option and its message data.\r\n\twhile (selectedOption === undefined) {\r\n\t\tconst result = optionResults.pop();\r\n\r\n\t\tif (!result) {\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tconst option = parseOption(result.content.optionChoice);\r\n\r\n\t\tif (option?.type !== OPTION_TYPE.LINK_BUTTON) {\r\n\t\t\tselectedOption = option;\r\n\t\t\tmessageData = result;\r\n\t\t}\r\n\t}\r\n\r\n\t// If the selected option is cancelled, find the previously selected non-link option.\r\n\tif (messageData?.content.cancelled) {\r\n\t\twhile (!previouslySelectedOption) {\r\n\t\t\tconst result = optionResults.pop();\r\n\r\n\t\t\tif (!result) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tconst option = parseOption(result.content.optionChoice);\r\n\r\n\t\t\tif (option?.type !== OPTION_TYPE.LINK_BUTTON && !result.content.cancelled) {\r\n\t\t\t\tpreviouslySelectedOption = option;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn { selectedOption, previouslySelectedOption, messageData };\r\n};\r\n\r\nexport const MessageOption = ({ message }) => ({ withStyles, state, tr }) => {\r\n\tconst {\r\n\t\tmessageOptionSheet,\r\n\t\tmessageOptionSectionSheet\r\n\t} = withStyles(messageOptionStyles);\r\n\r\n\tconst messageId = message.id;\r\n\r\n\t// TODO: CSP-5760\r\n\tconst optionResult = getOptionResult(state, messageId);\r\n\tconst { selectedOption, previouslySelectedOption, messageData } = findSelectedOptions(optionResult);\r\n\tconst selectedOptionName = selectedOption?.name ?? selectedOption;\r\n\tconst selectedOptionTitle = selectedOption?.content?.title ?? selectedOptionName;\r\n\tconst previouslySelectedOptionTitle = previouslySelectedOption?.content?.title ?? previouslySelectedOption?.name ?? previouslySelectedOption;\r\n\r\n\tconst {\r\n\t\tmsgOptionHeader,\r\n\t\tmsgOptionHeaderConfirmed\r\n\t} = ConfigService.pick([\r\n\t\t'msgOptionHeader',\r\n\t\t'msgOptionHeaderConfirmed'\r\n\t]);\r\n\r\n\tconst {\r\n\t\tshowCancel: canCancel = MESSAGE_OPTION_CAN_CANCEL,\r\n\t\tshowHeader = MESSAGE_OPTION_SHOW_HEADER,\r\n\t\tshowConfirmedMsg = MESSAGE_OPTION_SHOW_CONFIRMATION,\r\n\t\theaderIntro,\r\n\t\theaderConfirmed\r\n\t} = message.arguments?.option ?? {};\r\n\r\n\tconst headerText = headerIntro ?? msgOptionHeader ?? tr(MESSAGE_OPTION_HEADER_LABEL);\r\n\tconst headerConfirmedText = headerConfirmed ?? msgOptionHeaderConfirmed ?? tr(MESSAGE_OPTION_HEADER_CONFIRMED_LABEL);\r\n\r\n\tconst { sendingOption } = state.loading;\r\n\tconst canSubmit = !sendingOption && (canCancel || !selectedOption);\r\n\r\n\t// Parse the given options and skip the null ones\r\n\t// TODO: CSP-5761 Remove a potential performance issue\r\n\tconst options = message.content.flatMap(parseOption).filter(option => option !== null);\r\n\r\n\tconst isReactionShown = isReactionEnabled(state, messageId) && isBotMessage(state, messageId);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{\r\n\t\t\t\tshowHeader &&\r\n\t\t\t\t

{selectedOption ? headerConfirmedText : headerText}

\r\n\t\t\t}\r\n\t\t\t
\r\n\t\t\t\t{\r\n\t\t\t\t\toptions.map((option, index) => {\r\n\t\t\t\t\t\t// TODO: CSP-5760\r\n\t\t\t\t\t\tconst optionName = option?.name ?? option;\r\n\t\t\t\t\t\tconst isChecked = selectedOptionName && selectedOptionName === optionName;\r\n\r\n\t\t\t\t\t\tconst onClick = canSubmit && clickHandler(selectedOption, messageId, option);\r\n\r\n\t\t\t\t\t\tlet OptionElement = null;\r\n\r\n\t\t\t\t\t\tif (typeof option === 'string') {\r\n\t\t\t\t\t\t\tOptionElement = ;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tOptionElement = ;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn
{OptionElement}
;\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{\r\n\t\t\t\tshowConfirmedMsg && selectedOption &&\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t{\r\n\t\t\t\tshowConfirmedMsg && previouslySelectedOption &&\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t{\r\n\t\t\t\t!showConfirmedMsg &&\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t{\r\n\t\t\t\tshowConfirmedMsg && !selectedOption && !previouslySelectedOption &&\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t{isReactionShown && }\r\n\t\t
\r\n\t);\r\n};\r\n","import ConfigService from 'services/config';\r\n\r\nexport const getChatVariables = message => {\r\n\tconst { variables: introVariables } = message.content;\r\n\tconst showVariables = ConfigService.get('showVariablesInIntro');\r\n\r\n\treturn showVariables ? introVariables : [];\r\n};\r\n\r\nexport const getCustomFields = () => {\r\n\treturn ConfigService.get('inputFields');\r\n};\r\n","/* eslint-disable no-magic-numbers */\r\nimport { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nconst messageIntroStyles = (...args) => {\r\n\tconst [{\r\n\t\tintroBorder,\r\n\t\tintroBorderRadius,\r\n\t\tchatInfoMessageTextColor,\r\n\t\tchatInfoHeadingTextSize,\r\n\t\tchatInfoMessageTextSize,\r\n\t\tchatInfoTimestampTextSize\r\n\t}] = args;\r\n\r\n\treturn {\r\n\t\tmessageIntro: {\r\n\t\t\t'box-sizing': 'border-box',\r\n\t\t\tdisplay: 'flex',\r\n\t\t\t'flex-flow': 'row wrap',\r\n\t\t\t'flex-direction': 'column',\r\n\t\t\t'justify-content': 'start',\r\n\t\t\t'min-width': '93%',\r\n\t\t\t'padding': '0 10px 16px 10px',\r\n\r\n\t\t\t'& h2': {\r\n\t\t\t\t'font-size': chatInfoHeadingTextSize,\r\n\t\t\t\t'text-align': 'center',\r\n\t\t\t\tmargin: 0\r\n\t\t\t},\r\n\r\n\t\t\t'& p': {\r\n\t\t\t\t'font-size': chatInfoMessageTextSize\r\n\t\t\t},\r\n\r\n\t\t\t[`& .${STYLES_PREFIX}message-intro-text`]: {\r\n\t\t\t\t'background-color': 'transparent',\r\n\t\t\t\t'border-radius': introBorderRadius,\r\n\t\t\t\t'border': introBorder,\r\n\t\t\t\t'min-width': '10%',\r\n\t\t\t\t'text-align': 'center',\r\n\t\t\t\t'padding': [[10, 20, 10, 20]],\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}message-intro-content`]: {\r\n\t\t\t\t\t'padding': 0,\r\n\t\t\t\t\t'margin-top': 10,\r\n\t\t\t\t\tcolor: chatInfoMessageTextColor,\r\n\t\t\t\t\t'font-size': chatInfoMessageTextSize,\r\n\r\n\t\t\t\t\t'& table': {\r\n\t\t\t\t\t\twidth: '100%',\r\n\r\n\t\t\t\t\t\t'& td, & th': {\r\n\t\t\t\t\t\t\t'text-align': 'left',\r\n\t\t\t\t\t\t\t'font-weight': 'normal',\r\n\t\t\t\t\t\t\t'vertical-align': 'top',\r\n\t\t\t\t\t\t\t'word-break': 'break-word',\r\n\t\t\t\t\t\t\twidth: '50%'\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\t'& .meta-time': {\r\n\t\t\t\t\t'font-size': chatInfoTimestampTextSize\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport default messageIntroStyles;\r\n\r\n","import { SKIP_INTRO_VARIABLES, STYLES_PREFIX } from 'defs/defaults';\r\n\r\nimport { isEmpty } from 'lib/helpers/array';\r\nimport { displayHTML } from 'lib/html';\r\n\r\nimport { getChatVariables } from './helpers';\r\nimport messageIntroStyles from './styles';\r\n\r\nexport const MessageIntro = ({ message }) => ({ withStyles }) => {\r\n\tconst { messageIntroSheet } = withStyles(messageIntroStyles);\r\n\tconst { welcomeHeader, welcomeBody } = message.content;\r\n\tconst variables = getChatVariables(message);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{welcomeHeader &&

{welcomeHeader}

}\r\n\t\t\t\t{welcomeBody &&

}\r\n\t\t\t\t{\r\n\t\t\t\t\t!isEmpty(variables) &&\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvariables.\r\n\t\t\t\t\t\t\t\t\tfilter(({ name }) => SKIP_INTRO_VARIABLES.indexOf(name) === -1).\r\n\t\t\t\t\t\t\t\t\tmap((variable, index) => {\r\n\t\t\t\t\t\t\t\t\t\tconst { name, value } = variable;\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t
{name}{value}
\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n","import { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nconst messageQueueStyles = (...args) => {\r\n\tconst [{\r\n\t\tchatInfoMessageTextColor,\r\n\t\tchatInfoMessageTextSize,\r\n\t\tchatInfoTimestampTextSize\r\n\t}] = args;\r\n\r\n\treturn {\r\n\t\tmessageQueue: {\r\n\t\t\tdisplay: 'inline-flex',\r\n\t\t\t'flex-flow': 'row wrap',\r\n\t\t\t'min-width': '93%',\r\n\t\t\tmargin: '16px 10px 0 10px',\r\n\t\t\t'padding-bottom': 10,\r\n\t\t\t'justify-content': 'center',\r\n\r\n\t\t\t'& h2': {\r\n\t\t\t\t'font-size': chatInfoMessageTextSize,\r\n\t\t\t\t'font-weight': 'normal',\r\n\t\t\t\tmargin: 0\r\n\t\t\t},\r\n\r\n\t\t\t[`& .${STYLES_PREFIX}message-queue-text`]: {\r\n\t\t\t\t'background-color': 'transparent',\r\n\t\t\t\t'border-radius': 0,\r\n\t\t\t\t'min-width': '10%',\r\n\t\t\t\t'text-align': 'center',\r\n\t\t\t\t'align-self': 'flex-end',\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}message-queue-content`]: {\r\n\t\t\t\t\t'padding': 0,\r\n\t\t\t\t\t'text-align': 'center',\r\n\t\t\t\t\tcolor: chatInfoMessageTextColor,\r\n\t\t\t\t\t'font-size': chatInfoMessageTextSize\r\n\t\t\t\t},\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}meta-time`]: {\r\n\t\t\t\t\t'font-size': chatInfoTimestampTextSize\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport default messageQueueStyles;\r\n\r\n","/* eslint-disable no-magic-numbers */\r\nimport { MESSAGE_QUEUE_ELEMENT } from 'defs/message';\r\nimport { STYLES_PREFIX } from 'defs/defaults';\r\nimport { MetaDataTime } from 'components/message-meta';\r\nimport classNames from 'lib/helpers/class-names';\r\nimport messageQueueStyles from './styles';\r\n\r\nexport const MessageQueue = (props) => ({ state, withStyles, tr }) => {\r\n\tconst { userId } = props.message;\r\n\tconst { queuePosition, queuePositionTime } = state;\r\n\tconst { messageQueueSheet } = withStyles(messageQueueStyles);\r\n\tconst { classList } = props?.attributes ?? '';\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{props.title &&

{props.title}

}\r\n\t\t\t\t
\r\n\t\t\t\t\t{tr('chat.inQueue', {\r\n\t\t\t\t\t\tqueuePosition: queuePosition\r\n\t\t\t\t\t})}\r\n\t\t\t\t
\r\n\t\t\t\t{MetaDataTime(userId, queuePositionTime)}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n","import { STYLES_PREFIX } from '../../defs/defaults';\r\nimport { clipMask } from 'styles/mixins';\r\n\r\nconst typingIndicationStyles = () => ({\r\n\t'@keyframes scaleUp': {\r\n\t\t'0%': {\r\n\t\t\ttransform: 'scale(1)',\r\n\t\t\topacity: '0.7'\r\n\t\t},\r\n\t\t'33%': {\r\n\t\t\ttransform: 'scale(1)',\r\n\t\t\topacity: '1'\r\n\t\t},\r\n\t\t'50%': {\r\n\t\t\ttransform: 'scale(1.4)'\r\n\t\t},\r\n\t\t'100%': {\r\n\t\t\ttransform: 'scale(1)',\r\n\t\t\topacity: '0.7'\r\n\t\t}\r\n\t},\r\n\ttyping: {\r\n\t\tdisplay: 'flex',\r\n\t\t'align-items': 'center',\r\n\t\t'align-self': 'end',\r\n\t\t'justify-content': 'start',\r\n\t\t'justify-self': 'start',\r\n\t\t'padding-left': 10,\r\n\t\t'padding-bottom': 6,\r\n\t\t[`& .${STYLES_PREFIX}avatar`]: {\r\n\t\t\t'padding-right': 6,\r\n\t\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\t\t'& img': clipMask('circle', 40)\r\n\t\t}\r\n\t},\r\n\tcircle: {\r\n\t\tdisplay: 'block',\r\n\t\theight: '5px',\r\n\t\twidth: '5px',\r\n\t\t'border-radius': '50%',\r\n\t\t'background-color': '#757575',\r\n\t\tmargin: '1px',\r\n\t\tanimationName: '$scaleUp',\r\n\t\tanimationDuration: '1000ms',\r\n\t\tanimationTimingFunction: 'ease-in-out',\r\n\t\tanimationIterationCount: 'infinite',\r\n\t\tanimationDelay: '3600ms',\r\n\t\t'&:nth-child(1)': {\r\n\t\t\tanimationDelay: '10ms'\r\n\t\t},\r\n\t\t'&:nth-child(2)': {\r\n\t\t\tanimationDelay: '333ms'\r\n\t\t},\r\n\t\t'&:nth-child(3)': {\r\n\t\t\tanimationDelay: '666ms'\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport default typingIndicationStyles;\r\n","import { EVENTS } from 'defs/message';\r\n\r\nimport { getLast } from 'lib/helpers/array';\r\nimport { Avatar } from 'components/message-meta';\r\n\r\nimport typingIndicationStyles from './styles';\r\n\r\nexport const TypingIndication = () => ({ withStyles, state: { messages }, tr }) => {\r\n\tconst { typingSheet, circleSheet } = withStyles(typingIndicationStyles);\r\n\tconst typingEvents = messages.filter(({ content }) => content === EVENTS.AGENTS_TYPING);\r\n\tconst lastTypingEvent = getLast(typingEvents, /* fallback */ { userId: null });\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n","import { trim } from 'lib/helpers/string';\r\nimport { tr } from 'lib/translation';\r\n\r\nexport const setStatusText = (message, status, statusNoName) => {\r\n\treturn replaceContent(message, getStatusText(message.name, status, statusNoName));\r\n};\r\n\r\nexport const getStatusText = (agentName, status, statusNoName) => {\r\n\tlet statusKey = status;\r\n\r\n\tif (agentName === null || trim(agentName) === '') {\r\n\t\tstatusKey = statusNoName;\r\n\t}\r\n\r\n\treturn tr(statusKey, { agent: agentName });\r\n};\r\n\r\nexport const replaceContent = (message, content) => ({\r\n\t...message,\r\n\tcontent\r\n});\r\n","const messageList = (...args) => {\r\n\tconst [{ messageListBackgroundColor }] = args;\r\n\r\n\treturn {\r\n\t\tmessageList: {\r\n\t\t\t'background-color': messageListBackgroundColor,\r\n\t\t\t'overflow-y': 'auto',\r\n\t\t\t'padding-top': 8,\r\n\t\t\tflex: 1,\r\n\t\t\tdisplay: 'grid',\r\n\t\t\t'grid-template-rows': 'repeat(3, min-content) fit-content(10em)',\r\n\t\t\t'grid-auto-rows': 'auto',\r\n\t\t\t'grid-auto-flow': 'row'\r\n\t\t},\r\n\t\tmessageInfo: {\r\n\t\t\t'grid-row-start': 1\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport default messageList;\r\n","/* eslint-disable no-magic-numbers */\r\nimport { MESSAGE_TYPE, EVENTS } from 'defs/message';\r\n\r\nimport { Message } from 'components/message';\r\nimport { MessageOption } from 'components/message-option';\r\nimport { MessageIntro } from 'components/message-intro';\r\nimport { MessageInfo } from 'components/message-info';\r\nimport { MessageQueue } from 'components/message-queue';\r\nimport { TypingIndication } from 'components/typing-indication';\r\n\r\nimport { ConfigService } from 'services';\r\nimport { getDisplayedMessages } from 'actions/chat.helpers';\r\nimport { isEvent, isConnectedToAgent } from 'actions/events.helpers';\r\nimport { setStatusText } from 'lib/helpers/status';\r\n\r\nimport messageList from './styles';\r\n\r\nexport const MessageList = () => ({ state, withStyles }) => {\r\n\tconst {\r\n\t\tmessages,\r\n\t\tqueuePosition\r\n\t} = state;\r\n\r\n\tconst showIntro = ConfigService.get('showIntro');\r\n\tconst isChatting = isConnectedToAgent(state);\r\n\tconst isInQueue = queuePosition > 0;\r\n\r\n\tconst messageCount = getDisplayedMessages(messages).length;\r\n\r\n\tconst [{ messageListSheet, messageInfoSheet }, jssInstance] = withStyles(messageList, true);\r\n\r\n\tif (isInQueue && messageCount === 2) {\r\n\t\tjssInstance.getRule('messageList').prop('grid-template-rows', 'max-content');\r\n\t} else {\r\n\t\tconst gridRepeater = messageCount > 2 ? `${messageCount - 2}, min-content` : '1, auto';\r\n\t\tjssInstance.getRule('messageList').prop('grid-template-rows', `repeat(${gridRepeater}) fit-content(10em)`);\r\n\t}\r\n\r\n\tjssInstance.getRule('messageInfo').prop('grid-row-start', `${messageCount}`);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{\r\n\t\t\t\tmessages.map((message, index) => {\r\n\t\t\t\t\tif (message.type === MESSAGE_TYPE.TEXT || message.type === MESSAGE_TYPE.JSON_TEMPLATE)\r\n\t\t\t\t\t\treturn ;\r\n\r\n\t\t\t\t\tif (message.type === MESSAGE_TYPE.OPTION)\r\n\t\t\t\t\t\treturn ;\r\n\r\n\t\t\t\t\tif (message.type === MESSAGE_TYPE.SYSTEM)\r\n\t\t\t\t\t\treturn ;\r\n\r\n\t\t\t\t\tif (isEvent(message, EVENTS.USER_CONNECTED))\r\n\t\t\t\t\t\treturn ;\r\n\r\n\t\t\t\t\tif (isEvent(message, EVENTS.USER_DISCONNECTED))\r\n\t\t\t\t\t\treturn ;\r\n\r\n\t\t\t\t\tif (message.type === MESSAGE_TYPE.INTRO) {\r\n\t\t\t\t\t\tconst introMessages = \r\n\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\tshowIntro ? : '',\r\n\t\t\t\t\t\t\tisInQueue && !isChatting ? : ''\r\n\t\t\t\t\t\t];\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tif (isInQueue && !isChatting) {\r\n\t\t\t\t\t\t\tjssInstance.getRule('messageInfo').prop('grid-row-start', `${messageCount + 1}`);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tjssInstance.getRule('messageList').prop('grid-template-rows', `repeat(${messageCount}, min-content) fit-content(10em)`);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\treturn introMessages;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\t{state.agentIsTyping && }\r\n\t\t
\r\n\t);\r\n};\r\n","import {\r\n\tCHAT_INPUT_SELECTOR,\r\n\tEMOJI_WINDOW_SELECTOR,\r\n\tDEFAULT_EDITOR\r\n} from 'defs/defaults';\r\nimport { EDITOR_INPUT_ID } from 'defs/input';\r\n\r\nimport {\r\n\tAutoSizeEffect,\r\n\tFocusTextAreaEffect,\r\n\tFocusElementEffect\r\n} from 'effects';\r\n\r\nimport { editNewMessage, getNewMessage } from './input';\r\n\r\nexport const toggleEmojiWindow = state => {\r\n\tconst {\r\n\t\tisEmojiWindowShown,\r\n\t\temojiWindowClosedByBlur\r\n\t} = state;\r\n\r\n\tif (emojiWindowClosedByBlur) {\r\n\t\treturn setEmojiWindowClosedByBlur(state, false);\r\n\t}\r\n\r\n\treturn [\r\n\t\tsetEmojiWindowVisibility(state, !isEmojiWindowShown),\r\n\t\tFocusElementEffect({\r\n\t\t\tgetElement: () => document.querySelector(EMOJI_WINDOW_SELECTOR)?.children[0], // eslint-disable-line no-magic-numbers\r\n\t\t\ttimeout: 10\r\n\t\t})\r\n\t];\r\n};\r\n\r\nexport const setEmojiWindowVisibility = (state, isEmojiWindowShown) => ({\r\n\t...state,\r\n\tisEmojiWindowShown\r\n});\r\n\r\nexport const addEmoji = emoji => state => {\r\n\tconst {\r\n\t\tselectionStart: start,\r\n\t\tselectionEnd: end\r\n\t} = document.querySelector(CHAT_INPUT_SELECTOR);\r\n\r\n\tlet selectionEnd = end;\r\n\r\n\tif (start === end) {\r\n\t\t// Emojis take 2 spaces\r\n\t\tselectionEnd += 2; // eslint-disable-line no-magic-numbers\r\n\t}\r\n\r\n\tconst patch = editNewMessage(state, emoji, { start, end });\r\n\r\n\treturn [\r\n\t\tpatch,\r\n\t\tFocusTextAreaEffect({\r\n\t\t\tselector: CHAT_INPUT_SELECTOR,\r\n\t\t\tselectionEnd\r\n\t\t}),\r\n\t\tAutoSizeEffect(\r\n\t\t\tEDITOR_INPUT_ID,\r\n\t\t\t{ old: getNewMessage(state), current: getNewMessage(patch) },\r\n\t\t\tDEFAULT_EDITOR.MAX_HEIGHT,\r\n\t\t\tDEFAULT_EDITOR.INITIAL_HEIGHT_OFFSET\r\n\t\t)\r\n\t];\r\n};\r\n\r\nexport const setCurrentEmojiIndex = (state, currentEmojiIndex) => ({\r\n\t...state,\r\n\tcurrentEmojiIndex\r\n});\r\n\r\nexport const setEmojiWindowClosedByBlur = (state, emojiWindowClosedByBlur) => ({\r\n\t...state,\r\n\temojiWindowClosedByBlur\r\n});\r\n","import { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nexport const EmojisIcon = () => (\r\n\t\r\n\t\t\r\n\t\r\n);\r\n","import {\r\n\tKEYBOARD,\r\n\tCHAT_INPUT_SELECTOR,\r\n\tEMOJI_WINDOW_SELECTOR,\r\n\tEMOJIS_PER_ROW\r\n} from 'defs/defaults';\r\n\r\nimport {\r\n\tFocusTextAreaEffect,\r\n\tFocusElementEffect,\r\n\tDelayActionEffect\r\n} from 'effects';\r\n\r\nimport {\r\n\taddEmoji,\r\n\tsetEmojiWindowClosedByBlur,\r\n\tsetEmojiWindowVisibility,\r\n\tsetCurrentEmojiIndex\r\n} from 'actions/emojis';\r\nimport { mergeActions } from 'lib/helpers/framework';\r\n\r\nexport const navigate = (emoji, currentIndex) => (state, event) => {\r\n\tconst { keyCode } = event;\r\n\r\n\tconst emojis = document.querySelector(EMOJI_WINDOW_SELECTOR).children;\r\n\tconst actions = [];\r\n\r\n\tconst hideEmojisWindowEffect = patch => setEmojiWindowVisibility(patch, false);\r\n\r\n\tconst setCurrentEmojiIndexAction = index => patch => setCurrentEmojiIndex(patch, index);\r\n\r\n\tconst focusEmojiEffect = index => patch => [\r\n\t\tpatch,\r\n\t\tFocusElementEffect({ getElement: () => emojis[index] })\r\n\t];\r\n\r\n\tconst focusInputEffect = patch => [\r\n\t\tpatch,\r\n\t\tFocusTextAreaEffect({ selector: CHAT_INPUT_SELECTOR })\r\n\t];\r\n\r\n\tlet nextIndex = currentIndex;\r\n\r\n\tswitch (keyCode) {\r\n\t\tcase KEYBOARD.ESC:\r\n\t\t\tactions.push(hideEmojisWindowEffect, focusInputEffect);\r\n\t\t\tnextIndex = null;\r\n\t\t\tbreak;\r\n\t\tcase KEYBOARD.ENTER:\r\n\t\tcase KEYBOARD.SPACE:\r\n\t\t\tevent.preventDefault?.();\r\n\t\t\tactions.push(hideEmojisWindowEffect, addEmoji(emoji), focusInputEffect);\r\n\t\t\tnextIndex = null;\r\n\t\t\tbreak;\r\n\t\tcase KEYBOARD.ARROW_DOWN:\r\n\t\t\tnextIndex = currentIndex + EMOJIS_PER_ROW;\r\n\t\t\tbreak;\r\n\t\tcase KEYBOARD.ARROW_LEFT:\r\n\t\t\tnextIndex = currentIndex - 1; // eslint-disable-line no-magic-numbers\r\n\t\t\tbreak;\r\n\t\tcase KEYBOARD.ARROW_RIGHT:\r\n\t\t\tnextIndex = currentIndex + 1; // eslint-disable-line no-magic-numbers\r\n\t\t\tbreak;\r\n\t\tcase KEYBOARD.ARROW_UP:\r\n\t\t\tnextIndex = currentIndex - EMOJIS_PER_ROW;\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n\r\n\tif (nextIndex !== null && emojis[nextIndex]) {\r\n\t\tactions.push(focusEmojiEffect(nextIndex), setCurrentEmojiIndexAction(nextIndex));\r\n\t}\r\n\r\n\treturn mergeActions(state, actions);\r\n};\r\n\r\nexport const emojiBlur = state => [\r\n\tstate,\r\n\tDelayActionEffect({\r\n\t\taction: state => {\r\n\t\t\tconst emojiWindow = document.querySelector(EMOJI_WINDOW_SELECTOR);\r\n\t\t\tconst isEmojisButton = document.activeElement.classList.contains('show-emojis');\r\n\r\n\t\t\tif (emojiWindow === null || emojiWindow.contains(document.activeElement) || isEmojisButton) {\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\treturn mergeActions(state, [\r\n\t\t\t\tpatch => setEmojiWindowClosedByBlur(patch, true),\r\n\t\t\t\tpatch => setEmojiWindowVisibility(patch, false),\r\n\t\t\t\tpatch => setCurrentEmojiIndex(patch, 0), // eslint-disable-line no-magic-numbers\r\n\t\t\t\tpatch => [\r\n\t\t\t\t\tpatch,\r\n\t\t\t\t\tDelayActionEffect({\r\n\t\t\t\t\t\taction: state => setEmojiWindowClosedByBlur(state, false),\r\n\t\t\t\t\t\ttimeout: 50\r\n\t\t\t\t\t})\r\n\t\t\t\t]\r\n\t\t\t]);\r\n\t\t},\r\n\t\ttimeout: 10\r\n\t})\r\n];\r\n","import { EMOJIS_PER_ROW } from 'defs/defaults';\r\nimport { STYLES_PREFIX } from '../../defs/defaults';\r\nimport { transparentize } from 'styles/color-helpers';\r\n\r\n/* eslint-disable no-magic-numbers */\r\nconst emojis = theme => {\r\n\tconst {\r\n\t\tsupportColorThree,\r\n\t\tchatContainerShadowColor,\r\n\t\teditorInputBorderColor,\r\n\t\teditorBorderRadius,\r\n\t\teditorBackgroundDisabledColor,\r\n\t\teditorBorderDisabledColor,\r\n\t\tlinkNormalColor\r\n\t} = theme;\r\n\r\n\tconst emojiSize = 30;\r\n\tconst emojiWindowWidth = (EMOJIS_PER_ROW * emojiSize) + ((EMOJIS_PER_ROW - 1) * 2); // 2 = 2px margin-right\r\n\r\n\treturn {\r\n\t\temojis: {\r\n\t\t\t'box-sizing': 'border-box',\r\n\t\t\tdisplay: 'flex',\r\n\t\t\theight: '100%',\r\n\t\t\t'flex-direction': 'column',\r\n\t\t\t'justify-content': 'flex-end',\r\n\t\t\tborder: `1px solid ${editorInputBorderColor}`,\r\n\t\t\t'border-radius': editorBorderRadius,\r\n\t\t\t'border-bottom-left-radius': 0,\r\n\t\t\t'border-top-left-radius': 0,\r\n\t\t\t'border-left': 0,\r\n\r\n\t\t\t'&.disabled': {\r\n\t\t\t\t'background-color': editorBackgroundDisabledColor,\r\n\t\t\t\t'border-color': editorBorderDisabledColor\r\n\t\t\t},\r\n\r\n\t\t\t'& button.show-emojis': {\r\n\t\t\t\tposition: 'relative',\r\n\t\t\t\tbackground: 'transparent',\r\n\t\t\t\t'border-radius': '100%',\r\n\t\t\t\t'& > svg': {\r\n\t\t\t\t\tcursor: 'pointer'\r\n\t\t\t\t},\r\n\t\t\t\tborder: 0,\r\n\t\t\t\tpadding: 0,\r\n\t\t\t\tmargin: 8,\r\n\t\t\t\theight: 23,\r\n\t\t\t\twidth: 23,\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}emoji-window`]: {\r\n\t\t\t\t\t'box-shadow': `0 3px 6px ${chatContainerShadowColor}`,\r\n\t\t\t\t\tbackground: supportColorThree,\r\n\t\t\t\t\tborder: `1px solid ${transparentize(editorInputBorderColor, 10)}`,\r\n\t\t\t\t\t'box-sizing': 'content-box',\r\n\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\ttransform: 'translate(0, -100%)',\r\n\t\t\t\t\ttop: -10,\r\n\t\t\t\t\tright: 0,\r\n\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t'flex-wrap': 'wrap',\r\n\t\t\t\t\twidth: emojiWindowWidth,\r\n\t\t\t\t\tpadding: 10,\r\n\r\n\t\t\t\t\t[`& .${STYLES_PREFIX}emoji`]: {\r\n\t\t\t\t\t\tflex: `0 1 ${emojiSize}px`,\r\n\t\t\t\t\t\t'font-size': 20,\r\n\t\t\t\t\t\tcursor: 'pointer',\r\n\t\t\t\t\t\twidth: emojiSize,\r\n\t\t\t\t\t\theight: emojiSize,\r\n\t\t\t\t\t\t'border-radius': '100%',\r\n\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\t'justify-content': 'center',\r\n\t\t\t\t\t\t'align-items': 'center',\r\n\t\t\t\t\t\t'margin-right': 2,\r\n\r\n\t\t\t\t\t\t[`&:nth-child(${EMOJIS_PER_ROW}n)`]: {\r\n\t\t\t\t\t\t\t'margin-right': 0\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t'&:focus': {\r\n\t\t\t\t\t\t\toutline: 0,\r\n\t\t\t\t\t\t\tbackground: transparentize(linkNormalColor, 20)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\t'&:focus': {\r\n\t\t\t\t\tbackground: transparentize(linkNormalColor, 20),\r\n\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t'align-items': 'center',\r\n\t\t\t\t\t'justify-content': 'center',\r\n\t\t\t\t\twidth: 27,\r\n\t\t\t\t\theight: 27,\r\n\t\t\t\t\toutline: 0,\r\n\t\t\t\t\tmargin: 6,\r\n\r\n\t\t\t\t\t[`& .${STYLES_PREFIX}emoji-window`]: {\r\n\t\t\t\t\t\t// Compensates for the button's focus state\r\n\t\t\t\t\t\ttop: -8, right: 2\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\t[`&:disabled .${STYLES_PREFIX}icon.${STYLES_PREFIX}emojis`]: {\r\n\t\t\t\t\tcolor: editorBorderDisabledColor\r\n\t\t\t\t},\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}icon.${STYLES_PREFIX}emojis`]: {\r\n\t\t\t\t\t'&:hover': {\r\n\t\t\t\t\t\t'& path': {\r\n\t\t\t\t\t\t\tfill: '#5872f0'\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t[`& .${STYLES_PREFIX}icon.${STYLES_PREFIX}emojis`]: {\r\n\t\t\t\tcolor: linkNormalColor,\r\n\t\t\t\theight: 23,\r\n\t\t\t\twidth: 23,\r\n\t\t\t\tmargin: 0\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n/* eslint-enable no-magic-numbers */\r\n\r\nexport default emojis;\r\n","import { EMOJIS } from 'defs/defaults';\r\nimport { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nimport classNames from 'lib/helpers/class-names';\r\nimport { noop } from 'lib/helpers/framework';\r\nimport { stopPropagation } from 'lib/helpers/events';\r\nimport { addEmoji, toggleEmojiWindow } from 'actions/emojis';\r\n\r\nimport { EmojisIcon } from './icons';\r\nimport { navigate, emojiBlur } from './handlers';\r\nimport emojis from './styles';\r\n\r\nexport const Emojis = () => ({ withStyles, state, tr }) => {\r\n\tconst {\r\n\t\tisEnded,\r\n\t\tisEmojiWindowShown,\r\n\t\tcurrentEmojiIndex\r\n\t} = state;\r\n\tconst { emojisSheet } = withStyles(emojis);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{\r\n\t\t\t\t\tisEmojiWindowShown &&\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tEMOJIS.map((emoji, index) => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{emoji}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n","/**\r\n * A helper to turn an interval into a promise\r\n * @param {Function} callback - A function providing the true / false based on the condition\r\n * @param {Number} ms - the time for the interval\r\n * @param {Object} callbackArgs - the given height from app configuration\r\n * @return {Promise} promise - a promise that resolves after the time argument\r\n */\r\n\r\nexport const asyncInterval = async (callback, ms, callbackArgs) => {\r\n\treturn new Promise((resolve, reject) => {\r\n\t\tconst interval = setInterval( async () => {\r\n\t\t\tif (callback(callbackArgs)) {\r\n\t\t\t\tresolve(callbackArgs);\r\n\t\t\t\tclearInterval(interval);\r\n\t\t\t} else {\r\n\t\t\t\treject(callbackArgs);\r\n\t\t\t\tclearInterval(interval);\r\n\t\t\t}\r\n\t\t}, ms);\r\n\t});\r\n};\r\n\r\n/**\r\n * A wrapper for async timers. Helper function.\r\n * @param {{ asyncTimer: function,\tms: number,\tcondition: function\t}} callbacks - an object with\r\n * callbacks and time interval\r\n * @param {Object} callbackArgs - an array with arguments for the condition callback\r\n * @returns { Promise } an async promise - the callback to perform the actions\r\n */\r\n\r\nexport const timerWrapper = async (callbacks, callbackArgs) => {\r\n\tconst { asyncTimer, ms, condition } = callbacks;\r\n\r\n\ttry {\r\n\t\tawait asyncTimer(condition, ms, callbackArgs);\r\n\t} catch {\r\n\t\tnew Error('async Interval has failed...');\r\n\t}\r\n\r\n\treturn await asyncTimer(condition, ms, callbackArgs);\r\n};\r\n\r\n/**\r\n * Simple throttle function to 'cool down' user events and reduce them to a certain interval\r\n * frequency\r\n * @param {Function} fn - a function to be executed\r\n * @param {Number} delay - time interval\r\n * @param {Array[]} args - rest. Using state and event here as a placeholder.\r\n * */\r\n\r\nlet wait;\r\n\r\n// Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds.\r\nexport const throttle = (fn, delay, ...args) => {\r\n\tconst [state, event] = args;\r\n\r\n\tif (wait) {\r\n\t\treturn state;\r\n\t}\r\n\r\n\t// Execute the logic here\r\n\tfn(state, event);\r\n\r\n\t// Add waiting time\r\n\twait = true;\r\n\r\n\t// Schedule the wait variable to FALSE after delay seconds\r\n\tsetTimeout(() => {\r\n\t\t// Wait until given time interval\r\n\t\twait = false;\r\n\t}, delay);\r\n\r\n\treturn state;\r\n};\r\n\r\n","import { DEFAULT_EDITOR } from 'defs/defaults';\r\nimport { MESSAGE_WRAPPER_ELEMENT } from 'defs/message';\r\nimport { CHATTER_IS_TYPING } from 'defs/events';\r\nimport { TYPING_TTL } from 'defs/defaults';\r\nimport { EDITOR_INPUT_ID } from 'defs/input';\r\nimport { mergeActions } from 'lib/helpers/framework';\r\n\r\nimport { AutoSizeEffect, RemoveAttributeEffect, ScrollToBottomEffect } from 'effects';\r\nimport { chatInputHeightUnlock } from 'actions/textarea.helpers';\r\nimport { setNewMessage, getNewMessage } from 'actions/input';\r\nimport { hideNotification } from 'actions/notification';\r\n\r\nimport { sendEvent } from 'actions/chat';\r\nimport { throttle } from '../lib/helpers/timers';\r\nimport { chatterTyping } from './events.helpers';\r\n\r\nexport const typeMessage = (state, event) => {\r\n\tconst value = event.target.value;\r\n\tconst patch = mergeActions(state, [\r\n\t\t(state) => throttle(sendEvent, TYPING_TTL, state, CHATTER_IS_TYPING),\r\n\t\tchatterTyping,\r\n\t\tchatInputHeightUnlock,\r\n\t\thideNotification\r\n\t]);\r\n\r\n\treturn [\r\n\t\tsetNewMessage(patch, value),\r\n\t\tAutoSizeEffect(\r\n\t\t\tEDITOR_INPUT_ID,\r\n\t\t\t{ old: getNewMessage(state), current: value },\r\n\t\t\tDEFAULT_EDITOR.MAX_HEIGHT,\r\n\t\t\tDEFAULT_EDITOR.INITIAL_HEIGHT_OFFSET\r\n\t\t),\r\n\t\tScrollToBottomEffect({ elementId: MESSAGE_WRAPPER_ELEMENT }),\r\n\t\tRemoveAttributeEffect({ selector: '.emojis-container', attribute: 'style' })\r\n\t];\r\n};\r\n","export const PaperClipIcon = props => (\r\n\t\r\n\t\t\r\n\t\r\n);\r\n\r\n// By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL\r\nexport const ChatLoadingIcon = props => (\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n);\r\n","/* eslint-disable no-magic-numbers */\r\nimport { button, form, textarea } from 'styles/shared';\r\nimport { getBaseURL } from '../../lib/endpoints';\r\n\r\nconst editor = (variables) => {\r\n\tconst {\r\n\t\teditorSendButtonFillColor,\r\n\t\teditorSendButtonHoverColor,\r\n\t\teditorInputBorderFocusColor,\r\n\t\teditorInputBorderColor,\r\n\t\teditorBorderRadius,\r\n\t\teditorBackgroundDisabledColor,\r\n\t\teditorBorderDisabledColor,\r\n\t\teditorTextColor,\r\n\t\tfontSize,\r\n\t\tfontColor,\r\n\t\teditorSendButtonStrokeColor\r\n\t} = variables;\r\n\r\n\treturn {\r\n\t\teditor: {\r\n\t\t\tpadding: '11px',\r\n\r\n\t\t\t'& > form': {\r\n\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t'align-items': 'end',\r\n\t\t\t\t'& #paper_clip_icon': {\r\n\t\t\t\t\tpadding: '4px 0 4px 4px',\r\n\t\t\t\t\tcursor: 'pointer',\r\n\t\t\t\t\t'box-sizing': 'content-box',\r\n\t\t\t\t\t'&:hover': {\r\n\t\t\t\t\t\t'& path': {\r\n\t\t\t\t\t\t\tfill: '#5872f0'\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t'& #paper_clip_icon.pz_file-attachment-control-disabled': {\r\n\t\t\t\t\tcursor: 'default',\r\n\t\t\t\t\t'& path': {\r\n\t\t\t\t\t\tfill: '#d3d3d4'\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'&:hover > path': {\r\n\t\t\t\t\t\tfill: '#d3d3d4'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t'& > button': {\r\n\t\t\t\t\t'position': 'relative',\r\n\t\t\t\t\t'margin-bottom': '2px',\r\n\t\t\t\t\t'align-self': 'flex-end',\r\n\t\t\t\t\t'border-radius': '100% !important',\r\n\r\n\t\t\t\t\t'& svg': {\r\n\t\t\t\t\t\tfill: editorSendButtonFillColor,\r\n\t\t\t\t\t\tstroke: 'none',\r\n\t\t\t\t\t\t'stroke-width': 2,\r\n\t\t\t\t\t\theight: '30px',\r\n\t\t\t\t\t\twidth: '36px',\r\n\t\t\t\t\t\t'margin-left': 5\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t'&:disabled > svg': {\r\n\t\t\t\t\t\tfill: 'transparent',\r\n\t\t\t\t\t\tstroke: editorSendButtonStrokeColor,\r\n\t\t\t\t\t\t'stroke-width': 2\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t'&:not([disabled]):hover > svg': {\r\n\t\t\t\t\t\tfill: editorSendButtonHoverColor,\r\n\t\t\t\t\t\theight: '30px',\r\n\t\t\t\t\t\twidth: '36px',\r\n\t\t\t\t\t\t'margin-left': 5\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t'&:disabled:hover > svg': {\r\n\t\t\t\t\t\tfill: 'transparent',\r\n\t\t\t\t\t\tcursor: 'default'\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t'&[type=\"submit\"]:focus': {\r\n\t\t\t\t\t\t'background-color': 'rgba(88,114,240,0.2)'\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t'& .message-length': {\r\n\t\t\t\t\t\tcolor: fontColor,\r\n\t\t\t\t\t\t'font-size': Math.floor(fontSize * 0.8),\r\n\t\t\t\t\t\t'font-weight': 'normal',\r\n\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\tright: 0,\r\n\t\t\t\t\t\tbottom: 0,\r\n\r\n\t\t\t\t\t\t'&.warning:not(.max-length)': {\r\n\t\t\t\t\t\t\tcolor: '#ff9900'\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t'&.max-length': {\r\n\t\t\t\t\t\t\tcolor: '#bb1818'\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t'& #attachment_wrapper': {\r\n\t\t\t\t\tflex: 1,\r\n\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\toverflow: 'auto',\r\n\t\t\t\t\t'align-items': 'center',\r\n\t\t\t\t\tpadding: [[8, 12, 2, 12]],\r\n\t\t\t\t\t'border-radius': editorBorderRadius,\r\n\t\t\t\t\tborder: `1px solid ${editorInputBorderColor}`,\r\n\t\t\t\t\t'min-width': 'calc(100% - 82px)',\r\n\t\t\t\t\t'flex-flow': 'row wrap',\r\n\t\t\t\t\t'box-sizing': 'content-box',\r\n\t\t\t\t\t'& span, & b': {\r\n\t\t\t\t\t\t'font-size': '80%'\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'$:hover': {\r\n\t\t\t\t\t\t'border-color': editorInputBorderFocusColor\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t'& #attachment_preview': {\r\n\t\t\t\t\tposition: 'relative',\r\n\t\t\t\t\t'margin-right': 16,\r\n\t\t\t\t\t'& > #reset_attachment': {\r\n\t\t\t\t\t\t'border-radius': '50%',\r\n\t\t\t\t\t\t'background-color': '#fff',\r\n\t\t\t\t\t\t'border': 'none',\r\n\t\t\t\t\t\t'background-image': `url(\"${getBaseURL()}/assets/times-circle.svg\"), url(\"${getBaseURL()}/assets/times-circle-active.svg\")`,\r\n\t\t\t\t\t\t'background-size': 'cover',\r\n\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\twidth: 24,\r\n\t\t\t\t\t\theight: 24,\r\n\t\t\t\t\t\ttop: -5,\r\n\t\t\t\t\t\tright: -12,\r\n\t\t\t\t\t\tcursor: 'pointer',\r\n\t\t\t\t\t\t'&:hover': {\r\n\t\t\t\t\t\t\t'background-image': `url(\"${getBaseURL()}/assets/times-circle-active.svg\")`\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'& picture': {\r\n\t\t\t\t\t\toverflow: 'hidden',\r\n\t\t\t\t\t\t'& img': {\r\n\t\t\t\t\t\t\t'max-width': '97%'\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'& + span': {\r\n\t\t\t\t\t\tdisplay: 'inline-block',\r\n\t\t\t\t\t\t'margin-right': 4\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'& .icon.loading': {\r\n\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\tright: 'calc(0px - 11px)',\r\n\t\t\t\t\t\ttop: 'calc(7px - 11px)',\r\n\t\t\t\t\t\twidth: 22,\r\n\t\t\t\t\t\theight: 22,\r\n\t\t\t\t\t\tstroke: '#fff'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t'& #attachment_trigger': {\r\n\t\t\t\t\t'align-self': 'flex-end',\r\n\t\t\t\t\t'min-width': 32,\r\n\t\t\t\t\t'margin-left': -8,\r\n\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t'flex-direction': 'column-reverse',\r\n\t\t\t\t\t'max-height': 34,\r\n\t\t\t\t\toverflow: 'hidden',\r\n\t\t\t\t\t'& label': {\r\n\t\t\t\t\t\twidth: 28,\r\n\t\t\t\t\t\theight: 28,\r\n\t\t\t\t\t\t'margin-left': 3,\r\n\t\t\t\t\t\t'border-radius': '100%'\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'& input:focus + label': {\r\n\t\t\t\t\t\t'background-color': 'rgba(88,114,240,0.2)'\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'& [type=\"file\"]': {\r\n\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\tleft: -10999,\r\n\t\t\t\t\t\twidth: 1,\r\n\t\t\t\t\t\theight: 1,\r\n\t\t\t\t\t\toverflow: 'hidden'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\t'& textarea': {\r\n\t\t\t\t\t'min-width': 181\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t'&.has-emojis': {\r\n\t\t\t\t'& textarea': {\r\n\t\t\t\t\t'border-bottom-right-radius': 0,\r\n\t\t\t\t\t'border-top-right-radius': 0,\r\n\t\t\t\t\t'border-right': 0,\r\n\t\t\t\t\t'padding-right': 0,\r\n\r\n\t\t\t\t\t'&:focus + .emojis-container': {\r\n\t\t\t\t\t\t'border-color': editorInputBorderFocusColor\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t...form,\r\n\t\t...textarea({\r\n\t\t\teditorInputBorderFocusColor,\r\n\t\t\teditorInputBorderColor,\r\n\t\t\teditorBorderRadius,\r\n\t\t\teditorBackgroundDisabledColor,\r\n\t\t\teditorBorderDisabledColor,\r\n\t\t\teditorTextColor,\r\n\t\t\tfontSize\r\n\t\t}),\r\n\t\t...button(variables)\r\n\t};\r\n};\r\n\r\nexport default editor;\r\n","import { preventDefault } from 'lib/helpers/events';\r\nimport { DEFAULT_EDITOR } from 'defs/defaults';\r\nimport { FILE_TYPES } from 'defs/file';\r\n\r\nimport ConfigService from 'services/config';\r\nimport { Emojis } from 'components/emojis';\r\n\r\nimport classNames from 'lib/helpers/class-names';\r\nimport { isMobile, isIOS15 } from 'lib/helpers/browser';\r\nimport { getMaxChars, isConnectedToBot } from 'actions/bot.helpers';\r\nimport { typeMessage } from 'actions/textarea';\r\nimport { sendMessage, sendFile, sendOnEnterKey, inputInteractionEvent, abort } from 'actions/chat';\r\nimport { resetAttachedFileName, setAttachedFileName } from '../../actions/file.helpers';\r\n\r\nimport { ChatLoadingIcon, PaperClipIcon } from './icons';\r\n\r\nimport editor from './styles';\r\nimport { objectValuesToString } from '../../lib/helpers/object';\r\n\r\nexport const Editor = ({ value }) => ({ state, withStyles, tr }) => {\r\n\tconst {\r\n\t\tbuttonSheet,\r\n\t\teditorSheet,\r\n\t\tformSheet,\r\n\t\ttextareaSheet\r\n\t} = withStyles(editor);\r\n\r\n\tconst maxchars = getMaxChars(state);\r\n\tconst {\r\n\t\tfileAttachmentsEnabled,\r\n\t\tisAttachingFile,\r\n\t\tfileCount,\r\n\t\tresetChatInput,\r\n\t\tisConnected,\r\n\t\tloading: {\r\n\t\t\tsendingFile: isLoading\r\n\t\t}\r\n\t} = state;\r\n\r\n\tconst attachmentsEnabled = ConfigService.get('fileAttachments') ?? fileAttachmentsEnabled;\r\n\tconst messageLength = (value || '').length;\r\n\tconst isChattingWithBot = isConnectedToBot(state);\r\n\tconst isMessageLengthShown = isChattingWithBot && maxchars > 0 && messageLength > 0; // eslint-disable-line no-magic-numbers\r\n\tconst areEmojisEnabled = !isMobile() && ConfigService.get('showEmojis');\r\n\tconst defaultHeightTypingStyle = resetChatInput ? { height: DEFAULT_EDITOR.INITIAL_HEIGHT + 'px' } : {};\r\n\tconst defaultHeightAttachmentStyle = { height: 'auto' };\r\n\tconst attachmentMode = isAttachingFile ? { display: 'none' } : { display: 'block' };\r\n\tconst fileTypes = objectValuesToString(FILE_TYPES);\r\n\tconst isAttachmentsEnabled = !isAttachingFile && isConnected && !fileCount;\r\n\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{\r\n\t\t\t\t\tattachmentsEnabled &&\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{isLoading && }\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{areEmojisEnabled && !isAttachingFile && }\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t/* eslint-disable no-magic-numbers */\r\n\t\t\t\t\t\tisMessageLengthShown &&\r\n\t\t\t\t\t\t
= (Math.ceil(maxchars * 0.8 / 10) * 10) , 'max-length': messageLength === maxchars })}>\r\n\t\t\t\t\t\t\t{messageLength}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n","import { ChatContainer } from 'components/chat-container';\r\nimport { MessageList } from 'components/message-list';\r\nimport { Editor } from 'components/editor';\r\n\r\nimport { getNewMessage } from 'actions/input';\r\n\r\nexport const ChatView = () => ({ state }) => (\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n);\r\n","import { targetValue, targetChecked } from 'lib/helpers/events';\r\nimport { isNullOrEmpty } from 'lib/helpers/string';\r\nimport { tr } from 'lib/translation';\r\n\r\nexport const createInput = (config, value, callback, style) => {\r\n\tconst {\r\n\t\tinputType,\r\n\t\tinputRequired,\r\n\t\tinputPlaceholder,\r\n\t\tinputVariableName,\r\n\t\tinputMaxlength\r\n\t} = config;\r\n\r\n\tconst attributes = { };\r\n\r\n\tif (inputMaxlength) {\r\n\t\tconst maxLength = Number(inputMaxlength);\r\n\r\n\t\tif (inputType === 'number') {\r\n\t\t\tattributes.max = '9'.repeat(maxLength);\r\n\t\t\tattributes.min = 0;\r\n\t\t} else {\r\n\t\t\tattributes.maxlength = maxLength;\r\n\t\t}\r\n\t}\r\n\r\n\tconst valueExtractor = inputType === 'checkbox' ? targetChecked : targetValue;\r\n\r\n\treturn ;\r\n};\r\n\r\nexport const createSelect = (config, value, callback, style) => {\r\n\tconst {\r\n\t\tinputItems,\r\n\t\tinputRequired,\r\n\t\tinputPlaceholder,\r\n\t\tinputVariableName\r\n\t} = config;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{inputPlaceholder && }\r\n\t\t\t{inputItems.map((option, index) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t\r\n\t);\r\n};\r\n","import { input as inputStyle } from 'styles/shared';\r\nimport { createInput, createSelect } from './helpers';\r\n\r\nexport const Input = ({ config, callback, value }) => ({ withStyles }) => {\r\n\tconst { inputSheet } = withStyles(inputStyle);\r\n\r\n\tif (config.inputType === 'select') {\r\n\t\treturn createSelect(config, value, callback, inputSheet);\r\n\t}\r\n\r\n\treturn createInput(config, value, callback, inputSheet);\r\n};\r\n","import { START_SCREEN_INPUT } from 'defs/scope';\r\n\r\nimport { isNullOrEmpty } from 'lib/helpers/string';\r\n\r\nimport { getInputValue, setInputValue } from 'actions/input';\r\nimport { showCaptchaScreen } from 'actions/view';\r\nimport { initiateChat } from 'actions/chat';\r\n\r\nexport const submitHandler = (inputs) => (state) => {\r\n\tconst patchedFormState = inputs.reduce((state, { inputVariableName, inputValue, inputType, inputItems, inputPlaceholder }) => {\r\n\t\tlet defaultValue = inputValue;\r\n\r\n\t\t// Handle select's default value. The first item should be considered as default, when selection and placeholder are missing\r\n\t\tif (isNullOrEmpty(defaultValue) && isNullOrEmpty(inputPlaceholder) && inputType === 'select') {\r\n\t\t\tdefaultValue = inputItems[0]?.value || null;\r\n\t\t}\r\n\r\n\t\t// Handler checkboxes' default value. False by default, true - when selected.\r\n\t\tif (inputType === 'checkbox' && !defaultValue) {\r\n\t\t\tdefaultValue = false;\r\n\t\t}\r\n\r\n\t\tconst value = getInputValue(state, START_SCREEN_INPUT, inputVariableName, defaultValue);\r\n\t\tconst setNewValue = setInputValue(START_SCREEN_INPUT, inputVariableName);\r\n\t\treturn setNewValue(state, value);\r\n\t}, state);\r\n\r\n\tif (state.captchaConfig.isEnabled) {\r\n\t\treturn showCaptchaScreen(patchedFormState);\r\n\t}\r\n\r\n\treturn initiateChat(patchedFormState);\r\n};\r\n","import { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nimport { button, form, input } from 'styles/shared';\r\n\r\nexport default (variables) => {\r\n\tconst {\r\n\t\theadingsTextTransform,\r\n\t\theadingsFontSize,\r\n\t\theadingsTextColor\r\n\t} = variables;\r\n\r\n\treturn {\r\n\t\tstartScreen: {\r\n\t\t\tdisplay: 'flex',\r\n\t\t\t'flex-direction': 'column',\r\n\t\t\t'align-items': 'stretch',\r\n\t\t\tpadding: 30,\r\n\r\n\t\t\t'& h2': {\r\n\t\t\t\t'text-align': 'center',\r\n\t\t\t\t'font-size': headingsFontSize,\r\n\t\t\t\t'text-transform': headingsTextTransform,\r\n\t\t\t\tcolor: headingsTextColor,\r\n\t\t\t\tmargin: 0\r\n\t\t\t},\r\n\r\n\t\t\t'& p': {\r\n\t\t\t\t'text-align': 'center'\r\n\t\t\t},\r\n\r\n\t\t\t'& input:not([type=\"checkbox\"])': {\r\n\t\t\t\twidth: '100%'\r\n\t\t\t},\r\n\r\n\t\t\t[`& .${STYLES_PREFIX}start-input`]: {\r\n\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t'flex-direction': 'column',\r\n\r\n\t\t\t\t[`&.${STYLES_PREFIX}checkbox`]: {\r\n\t\t\t\t\t'flex-direction': 'row-reverse',\r\n\t\t\t\t\t'justify-content': 'start',\r\n\t\t\t\t\t'align-items': 'center',\r\n\t\t\t\t\t'margin-top': 10,\r\n\t\t\t\t\t'> label': {\r\n\t\t\t\t\t\t'margin-top': 5\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t[`& > .${STYLES_PREFIX}field > button`]: {\r\n\t\t\t\t'margin-top': 20,\r\n\t\t\t\twidth: 120\r\n\t\t\t},\r\n\r\n\t\t\t[`& > .${STYLES_PREFIX}field:last-of-type`]: {\r\n\t\t\t\t'padding-bottom': 'calc(env(safe-area-inset-bottom) * 2)'\r\n\t\t\t},\r\n\r\n\t\t\t[`& .${STYLES_PREFIX}field-group`]: {\r\n\t\t\t\t'margin-top': 12,\r\n\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t'justify-items': 'center',\r\n\t\t\t\t'justify-content': 'center',\r\n\t\t\t\t'& > label': {\r\n\t\t\t\t\tmargin: 2\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t...input(variables),\r\n\t\t...button(variables),\r\n\t\t...form\r\n\t};\r\n};\r\n","import { START_SCREEN_INPUT } from 'defs/scope';\r\nimport { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nimport { preventDefault, targetChecked } from 'lib/helpers/events';\r\nimport classNames from 'lib/helpers/class-names';\r\nimport { displayHTML } from 'lib/html';\r\n\r\nimport { ChatContainer } from 'components/chat-container';\r\nimport { Input } from 'components/input';\r\n\r\nimport { getInputValue, setInputValue, setDenyArchiving } from 'actions/input';\r\nimport ConfigService from 'services/config';\r\n\r\nimport { submitHandler } from './handlers';\r\nimport startScreen from './styles';\r\n\r\nexport const StartScreen = () => ({ state, withStyles, tr }) => {\r\n\tconst {\r\n\t\tformSheet,\r\n\t\tstartScreenSheet,\r\n\t\tbuttonSheet\r\n\t} = withStyles(startScreen);\r\n\r\n\tconst {\r\n\t\tinitiating: isInitiating\r\n\t} = state.loading;\r\n\r\n\tconst {\r\n\t\tinputFields: inputs,\r\n\t\tmsgFormHeader: header,\r\n\t\tmsgFormIngress: description,\r\n\t\tshowDenyArchiving\r\n\t} = ConfigService.pick([\r\n\t\t'inputFields',\r\n\t\t'msgFormHeader',\r\n\t\t'msgFormIngress',\r\n\t\t'showDenyArchiving'\r\n\t]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{header &&

{tr(header)}

}\r\n\t\t\t\t{description &&

}\r\n\t\t\t\t{\r\n\t\t\t\t\tinputs.map((input, index) => {\r\n\t\t\t\t\t\tconst { inputType, inputLabel, inputValue, inputVariableName } = input;\r\n\t\t\t\t\t\tconst defaultValue = inputType === 'checkbox' ? false : inputValue;\r\n\t\t\t\t\t\tconst value = getInputValue(state, START_SCREEN_INPUT, inputVariableName, defaultValue);\r\n\t\t\t\t\t\tconst callback = setInputValue(START_SCREEN_INPUT, inputVariableName);\r\n\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\t{\r\n\t\t\t\t\tshowDenyArchiving &&\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{tr('chat.start')}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n","import { STYLES_PREFIX } from 'defs/defaults';\r\n\r\nexport const Star = (props) => (\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n);\r\n","export const getRatings = (min, max) => {\r\n\tconst ratings = [];\r\n\r\n\tfor (let rating = min; rating <= max; rating++) {\r\n\t\tratings.push(rating);\r\n\t}\r\n\r\n\treturn ratings;\r\n};\r\n","import { registerSurvey } from 'actions/chat';\r\nimport { getSurveyId, getSurveyRating, getSurveyComment } from 'actions/input';\r\n\r\nexport const surveySubmit = state => {\r\n\tconst rating = getSurveyRating(state);\r\n\tconst comment = getSurveyComment(state);\r\n\tconst surveyId = getSurveyId(state);\r\n\tconst userId = state.lastConnectedAgentId;\r\n\r\n\treturn registerSurvey(state, {\r\n\t\tsurveyId,\r\n\t\trating,\r\n\t\tcomment,\r\n\t\tuserId\r\n\t});\r\n};\r\n","import { STYLES_PREFIX } from '../../defs/defaults';\r\nimport { button, textarea } from 'styles/shared';\r\nimport variables from 'styles/variables';\r\n\r\nconst starPathStroke = (color, { important = false, prefix = '&' } = {}) => ({\r\n\t[`${prefix} .${STYLES_PREFIX}star path`]: {\r\n\t\tstroke: `${color} ${important ? '!important' : ''}`\r\n\t}\r\n});\r\n\r\nconst starPathFill = (color, { important = false, prefix = '&' } = {}) => ({\r\n\t[`${prefix} .${STYLES_PREFIX}star path`]: {\r\n\t\tfill: `${color} ${important ? '!important' : ''}`\r\n\t}\r\n});\r\n\r\nconst radioDefault = (borderColor) => ({\r\n\tborder: `1px solid ${borderColor}`,\r\n\t'border-radius': '100%',\r\n\t'line-height': '17px',\r\n\t'text-align': 'center',\r\n\t'font-size': '10px',\r\n\t'box-sizing': 'content-box',\r\n\theight: 17,\r\n\twidth: 17\r\n});\r\n\r\nconst radioFocus = (backgroundColor, textColor) => ({\r\n\t'background-color': backgroundColor,\r\n\t'border-color': backgroundColor,\r\n\t'color': textColor,\r\n\t'box-sizing': 'content-box'\r\n});\r\n\r\nexport default (...args) => {\r\n\tconst [{\r\n\t\tprimaryColor,\r\n\t\tsupportColorThree,\r\n\t\tfontColor,\r\n\t\tborderRadius,\r\n\t\teditorInputBorderFocusColor,\r\n\t\tinputBorderColor,\r\n\t\teditorBorderRadius,\r\n\t\teditorBackgroundDisabledColor,\r\n\t\teditorBorderDisabledColor,\r\n\t\teditorTextColor,\r\n\t\tfontSize,\r\n\t\theadingsTextTransform,\r\n\t\theadingsFontSize,\r\n\t\theadingsTextColor\r\n\t}] = args;\r\n\r\n\treturn {\r\n\t\tsurveyForm: {\r\n\t\t\tdisplay: 'flex',\r\n\t\t\t'flex-direction': 'column',\r\n\t\t\t'align-items': 'stretch',\r\n\t\t\tpadding: 30,\r\n\r\n\t\t\t'& h2': {\r\n\t\t\t\t'text-align': 'center',\r\n\t\t\t\t'font-size': headingsFontSize,\r\n\t\t\t\t'text-transform': headingsTextTransform,\r\n\t\t\t\tcolor: headingsTextColor,\r\n\t\t\t\tmargin: 0\r\n\t\t\t},\r\n\r\n\t\t\t'& p': {\r\n\t\t\t\t'text-align': 'center'\r\n\t\t\t},\r\n\r\n\t\t\t'& textarea': {\r\n\t\t\t\t'border-radius': borderRadius,\r\n\t\t\t\tmargin: 0\r\n\t\t\t},\r\n\r\n\t\t\t'& button': {\r\n\t\t\t\t'margin-top': '30px !important',\r\n\t\t\t\twidth: 120\r\n\t\t\t},\r\n\r\n\t\t\t'& .ratings': {\r\n\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t'justify-content': 'space-between',\r\n\t\t\t\t'position': 'relative',\r\n\t\t\t\tdirection: 'rtl',\r\n\t\t\t\tmargin: '30px 0',\r\n\r\n\t\t\t\t// should be off the interaction area as they are hidden\r\n\t\t\t\t'& input': {\r\n\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\topacity: 0,\r\n\t\t\t\t\tleft: '-12px',\r\n\t\t\t\t\ttop: '-12px',\r\n\r\n\t\t\t\t\t[`&:checked + label .${STYLES_PREFIX}radio`]: radioFocus(primaryColor, '#fff')\r\n\t\t\t\t},\r\n\r\n\t\t\t\t'& label': {\r\n\t\t\t\t\t'text-align': 'center',\r\n\t\t\t\t\t'padding-right': 5,\r\n\r\n\t\t\t\t\t...starPathStroke(primaryColor),\r\n\t\t\t\t\t...starPathFill(primaryColor, {\r\n\t\t\t\t\t\tprefix: '&.checked'\r\n\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t[`& .${STYLES_PREFIX}radio`]: radioDefault(fontColor),\r\n\r\n\t\t\t\t\t'&:hover': {\r\n\t\t\t\t\t\t...starPathFill(primaryColor, { important: true }),\r\n\t\t\t\t\t\t...starPathFill(primaryColor, {\r\n\t\t\t\t\t\t\tprefix: '& ~ label',\r\n\t\t\t\t\t\t\timportant: true\r\n\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t[`& .${STYLES_PREFIX}radio`]: radioFocus(primaryColor, '#fff')\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t'&:first-of-type': {\r\n\t\t\t\t\t\t'padding-right': 0\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}radio`]: {\r\n\t\t\t\t\tdisplay: 'none'\r\n\t\t\t\t},\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}star`]: {\r\n\t\t\t\t\twidth: '98%'\r\n\t\t\t\t},\r\n\r\n\t\t\t\t[`&.${STYLES_PREFIX}star .${STYLES_PREFIX}star`]: {\r\n\t\t\t\t\tdisplay: 'block'\r\n\t\t\t\t},\r\n\r\n\t\t\t\t[`&.${STYLES_PREFIX}radio .${STYLES_PREFIX}radio`]: {\r\n\t\t\t\t\tdisplay: 'block'\r\n\t\t\t\t},\r\n\r\n\t\t\t\t'&:hover': {\r\n\t\t\t\t\t...starPathFill(supportColorThree, {\r\n\t\t\t\t\t\timportant: true\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t...textarea(\r\n\t\t\t{\r\n\t\t\t\teditorInputBorderFocusColor,\r\n\t\t\t\teditorInputBorderColor: inputBorderColor,\r\n\t\t\t\teditorBorderRadius,\r\n\t\t\t\teditorBackgroundDisabledColor,\r\n\t\t\t\teditorBorderDisabledColor,\r\n\t\t\t\teditorTextColor,\r\n\t\t\t\tfontSize\r\n\t\t\t}\r\n\t\t),\r\n\t\t...button(variables()),\r\n\t\tcustomerInsight: {\r\n\t\t\tdisplay: 'flex',\r\n\t\t\twidth: '100%',\r\n\t\t\theight: '100%'\r\n\t\t}\r\n\t};\r\n};\r\n","import { SURVEY_INPUT } from 'defs/scope';\r\nimport { SURVEY_RATING_INPUT, SURVEY_COMMENT } from 'defs/input';\r\nimport { STYLES_PREFIX } from '../../defs/defaults';\r\n\r\nimport { targetValue, preventDefault } from 'lib/helpers/events';\r\nimport { targetValueInteger } from 'lib/helpers/events';\r\nimport { displayHTML } from 'lib/html';\r\n\r\nimport { Star } from 'components/star';\r\nimport { getInputValue, setInputValue } from 'actions/input';\r\nimport { ConfigService } from 'services';\r\n\r\n\r\nimport { getRatings } from './helpers';\r\nimport { surveySubmit } from './handlers';\r\nimport surveyStyles from './styles';\r\n\r\nexport const SurveyForm = ({ state, withStyles, tr }) => {\r\n\tconst {\r\n\t\tsurveyFormSheet,\r\n\t\ttextareaSheet,\r\n\t\tbuttonSheet\r\n\t} = withStyles(surveyStyles);\r\n\r\n\tconst {\r\n\t\tmsgSurveyHeader,\r\n\t\tmsgSurveyQuestion,\r\n\t\tsurveyMinScore,\r\n\t\tsurveyMaxScore,\r\n\t\tsurveyType\r\n\t} = ConfigService.pick([\r\n\t\t'surveyMaxScore',\r\n\t\t'surveyMinScore',\r\n\t\t'surveyType',\r\n\t\t'msgSurveyHeader',\r\n\t\t'msgSurveyQuestion'\r\n\t]);\r\n\r\n\tconst ratings = getRatings(surveyMinScore, surveyMaxScore).reverse(); // CSS property: direction: rtr\r\n\tconst checkedValue = getInputValue(state, SURVEY_INPUT, SURVEY_RATING_INPUT);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{msgSurveyHeader &&

{tr(msgSurveyHeader)}

}\r\n\t\t\t{msgSurveyQuestion &&

}\r\n\t\t\t
\r\n\t\t\t\t{\r\n\t\t\t\t\tratings.map((rating, index) => {\r\n\t\t\t\t\t\tconst ratingId = `survey-rating-${rating}`;\r\n\t\t\t\t\t\tconst checkedClass = rating <= checkedValue ? 'checked' : '';\r\n\t\t\t\t\t\tconst checkedHandler = [setInputValue(SURVEY_INPUT, SURVEY_RATING_INPUT), targetValueInteger];\r\n\t\t\t\t\t\tconst label = surveyType === 'star' ?\r\n\t\t\t\t\t\t\trating > 1 ? tr('survey.rating.stars', { rating }) : tr('survey.rating.star') // eslint-disable-line no-magic-numbers\r\n\t\t\t\t\t\t\t: tr('survey.rating.score', { rating, max: surveyMaxScore });\r\n\r\n\t\t\t\t\t\treturn [\r\n\t\t\t\t\t\t\t,\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t];\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t
\r\n\t\t\t {/* eslint-disable-line react/jsx-closing-tag-location */}\r\n\t\t\t\r\n\t\t\t\t{tr('survey.send')}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import { ChatContainer } from 'components/chat-container';\r\n\r\nimport ConfigService from 'services/config';\r\nimport { getSurveyEndpoint } from 'lib/endpoints';\r\nimport { getSurveyId } from 'actions/input';\r\n\r\nimport { SurveyForm } from './form';\r\nimport surveyStyles from './styles';\r\n\r\nexport const Survey = () => ({ state, withStyles, tr }) => {\r\n\tconst { isCustomerInsightSurvey, lastConnectedAgentId } = state;\r\n\tconst { customerInsightSheet } = withStyles(surveyStyles);\r\n\r\n\tconst options = {\r\n\t\tsurveyId: getSurveyId(state),\r\n\t\tsolutionId: ConfigService.get('customerKey'),\r\n\t\tapiUrl: getSurveyEndpoint(),\r\n\t\tembedded: true,\r\n\t\tvariables: {\r\n\t\t\tqueueKey: ConfigService.get('queueKey'),\r\n\t\t\tagentId: lastConnectedAgentId,\r\n\t\t\tconsumerEmail: ConfigService.get('chatId'),\r\n\t\t\tlanguageCode: ConfigService.get('languageCode'),\r\n\t\t\tname: ConfigService.get('nickName'),\r\n\t\t\tconsumerSession: ConfigService.get('sessionId'),\r\n\t\t\tclientReference: ConfigService.get('sessionId')\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{!isCustomerInsightSurvey\r\n\t\t\t\t? \r\n\t\t\t\t: }\r\n\t\t\r\n\t);\r\n};\r\n","import { GOODBYE_INPUT } from 'defs/scope';\r\nimport { GOODBYE_EMAIL } from 'defs/input';\r\n\r\nimport { ConfigService } from 'services';\r\nimport { sendTranscript } from 'actions/chat';\r\nimport { getInputValue } from 'actions/input';\r\n\r\nexport const transcriptSubmit = state => {\r\n\tconst chatId = ConfigService.get('chatId');\r\n\tconst recipient = getInputValue(state, GOODBYE_INPUT, GOODBYE_EMAIL, chatId);\r\n\t\r\n\treturn sendTranscript(state, recipient);\r\n};\r\n","import { STYLES_PREFIX } from '../../defs/defaults';\r\n\r\nimport { alerts, button, form, input } from 'styles/shared';\r\n\r\nexport const endScreen = (styleVariables) => {\r\n\tconst {\r\n\t\theadingsTextTransform,\r\n\t\theadingsFontSize,\r\n\t\theadingsTextColor\r\n\t} = styleVariables;\r\n\r\n\treturn {\r\n\t\tendScreen: {\r\n\t\t\tdisplay: 'flex',\r\n\t\t\t'flex-direction': 'column',\r\n\t\t\t'align-items': 'stretch',\r\n\t\t\tpadding: 30,\r\n\r\n\t\t\t'& h2': {\r\n\t\t\t\t'text-align': 'center',\r\n\t\t\t\t'font-size': headingsFontSize,\r\n\t\t\t\t'text-transform': headingsTextTransform,\r\n\t\t\t\tcolor: headingsTextColor,\r\n\t\t\t\tmargin: 0\r\n\t\t\t},\r\n\r\n\t\t\t'& p': {\r\n\t\t\t\t'text-align': 'center'\r\n\t\t\t},\r\n\r\n\t\t\t'& form': {\r\n\t\t\t\t'margin-top': 20,\r\n\r\n\t\t\t\t[`& .${STYLES_PREFIX}field.${STYLES_PREFIX}email`]: {\r\n\t\t\t\t\tmargin: '20px 0'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t...input(styleVariables),\r\n\t\t...alerts(styleVariables),\r\n\t\t...button(styleVariables),\r\n\t\t...form\r\n\t};\r\n};\r\n\r\nexport default endScreen;\r\n","import { GOODBYE_INPUT } from 'defs/scope';\r\nimport { GOODBYE_EMAIL } from 'defs/input';\r\nimport { STYLES_PREFIX } from '../../defs/defaults';\r\n\r\nimport { targetValue, preventDefault } from 'lib/helpers/events';\r\nimport { isNullOrEmpty } from 'lib/helpers/string';\r\nimport { displayHTML } from 'lib/html';\r\n\r\nimport { ChatContainer } from 'components/chat-container';\r\nimport { getInputValue, setInputValue } from 'actions/input';\r\nimport { ConfigService } from 'services';\r\n\r\nimport { transcriptSubmit } from './handlers';\r\nimport endScreen from './styles';\r\n\r\nexport const EndChat = () => ({ withStyles, tr, state }) => {\r\n\tconst {\r\n\t\tendScreenSheet,\r\n\t\tformSheet,\r\n\t\tinputSheet,\r\n\t\tbuttonSheet,\r\n\t\talertsSheet\r\n\t} = withStyles(endScreen);\r\n\r\n\tconst {\r\n\t\tmsgGoodbyeHeader,\r\n\t\tmsgGoodbye,\r\n\t\tshowSendEmail,\r\n\t\tdenyArchiving: isArchivingDenied,\r\n\t\tchatId\r\n\t} = ConfigService.pick([\r\n\t\t'msgGoodbyeHeader',\r\n\t\t'msgGoodbye',\r\n\t\t'showSendEmail',\r\n\t\t'denyArchiving',\r\n\t\t'chatId'\r\n\t]);\r\n\r\n\tconst {\r\n\t\tloading: {\r\n\t\t\tsendingTranscript: isSendingTranscript\r\n\t\t},\r\n\t\tisTranscriptSent,\r\n\t\ttranscriptSendError,\r\n\t\ttranscriptTimeout\r\n\t} = state;\r\n\r\n\tconst emailInputHandler = setInputValue(GOODBYE_INPUT, GOODBYE_EMAIL);\r\n\tconst emailValue = getInputValue(state, GOODBYE_INPUT, GOODBYE_EMAIL, chatId);\r\n\tconst isInputDisabled = isTranscriptSent || isSendingTranscript || transcriptTimeout;\r\n\tconst isSubmitDisabled = isInputDisabled || isNullOrEmpty(emailValue);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t

{tr(msgGoodbyeHeader)}

\r\n\t\t\t\t

\r\n\t\t\t\t{\r\n\t\t\t\t\tshowSendEmail && !isArchivingDenied &&\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t

{tr('goodbye.copy')}

\r\n\t\t\t\t\t\t

{tr('goodbye.copyText')}

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{tr('goodbye.send')}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\t\t\t\t{\r\n\t\t\t\t\ttranscriptSendError &&\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttranscriptTimeout ?\r\n\t\t\t\t\t\t\t\ttr('goodbye.errors.timeout')\r\n\t\t\t\t\t\t\t\t: tr('goodbye.errors.generic', { error: transcriptSendError })\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\t\t\t\t{\r\n\t\t\t\t\tisTranscriptSent &&\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{tr('goodbye.sent', { email: emailValue })}\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n","export const rejectScreen = (chatStyleVariables) => {\r\n\tconst {\r\n\t\theadingsTextTransform,\r\n\t\theadingsFontSize,\r\n\t\theadingsTextColor\r\n\t} = chatStyleVariables;\r\n\r\n\treturn {\r\n\t\trejectScreen: {\r\n\t\t\tdisplay: 'flex',\r\n\t\t\t'flex-direction': 'column',\r\n\t\t\t'align-items': 'stretch',\r\n\t\t\tpadding: 30,\r\n\r\n\t\t\t'& h2': {\r\n\t\t\t\t'text-align': 'center',\r\n\t\t\t\t'font-size': headingsFontSize,\r\n\t\t\t\t'text-transform': headingsTextTransform,\r\n\t\t\t\tcolor: headingsTextColor,\r\n\t\t\t\tmargin: 0\r\n\t\t\t},\r\n\r\n\t\t\t'& p': {\r\n\t\t\t\t'text-align': 'center'\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n\r\nexport default rejectScreen;\r\n","import { ChatContainer } from 'components/chat-container';\r\nimport { ConfigService } from 'services';\r\n\r\nimport rejectScreen from './styles';\r\n\r\nexport const RejectScreen = () => ({ withStyles, tr, state }) => {\r\n\tconst { rejectScreenSheet } = withStyles(rejectScreen);\r\n\tconst { msgReject, msgTimeClosed } = ConfigService.pick(['msgReject', 'msgTimeClosed']);\r\n\tconst showTimeClosed = state.isContactcentreClosed && msgTimeClosed;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t

{showTimeClosed ? msgTimeClosed : tr(msgReject)}

\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n","import jss from 'styles/jss';\r\nimport variables from 'styles/variables';\r\nimport { withStyles as withStylesFactory } from 'styles/helpers';\r\n\r\nimport { tr } from 'lib/translation';\r\n\r\nexport const StateProvider = view => state => {\r\n\tconst { theme } = state;\r\n\tconst withStyles = withStylesFactory.bind(null, theme);\r\n\tconst chatStyleVariables = variables();\r\n\tconst providers = {\r\n\t\tchatStyleVariables,\r\n\t\twithStyles,\r\n\t\tstate,\r\n\t\tjss,\r\n\t\ttr\r\n\t};\r\n\r\n\treturn (function provide(target) {\r\n\t\tif (typeof target === 'function') {\r\n\t\t\treturn provide(target(providers));\r\n\t\t}\r\n\r\n\t\tif (typeof target.name === 'function') {\r\n\t\t\treturn provide(target.name(providers));\r\n\t\t}\r\n\r\n\t\tif (target.children) {\r\n\t\t\ttarget.children = target.children.map(child => provide(child));\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t})(view(state));\r\n};\r\n","import { noop } from './framework';\r\nimport { trim } from './string';\r\n\r\nexport function parseConditions(visualQueueConditions, transformField = noop) {\r\n\tconst conditions = visualQueueConditions.split('&&').\r\n\t\tmap(trim).\r\n\t\tmap(condition => {\r\n\t\t\tconst [, field, operator, expected] = condition.match(/(\\w+(?:-\\w+)?)(<=|>=|==)(\\d+)/);\r\n\r\n\t\t\tlet transformedField = transformField(field),\r\n\t\t\t\tfieldOperator = null;\r\n\r\n\t\t\tif (field.match(/-/) !== null) {\r\n\t\t\t\ttransformedField = field.split('-').map(transformField);\r\n\t\t\t\tfieldOperator = '-';\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tfield: transformedField,\r\n\t\t\t\tfieldOperator,\r\n\t\t\t\toperator,\r\n\t\t\t\texpected: Number(expected)\r\n\t\t\t};\r\n\t\t});\r\n\r\n\treturn conditions;\r\n}\r\n\r\nexport function evaluateConditions(conditions, data) {\r\n\treturn conditions.reduce((isValid, { field, fieldOperator, operator, expected }) => {\r\n\t\tlet fieldValue = data[field];\r\n\r\n\t\tif (Array.isArray(field) && fieldOperator === '-') {\r\n\t\t\tfieldValue = subtractFields(field, data);\r\n\t\t}\r\n\r\n\t\tif (!isValid || typeof fieldValue === 'undefined') {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn evaluateCondition(operator, fieldValue, expected);\r\n\t}, true);\r\n}\r\n\r\nexport function subtractFields(fields, data) {\r\n\tconst [minuend, ...subtrahends] = fields;\r\n\r\n\treturn subtrahends.reduce((result, field) => {\r\n\t\treturn result - data[field];\r\n\t}, data[minuend]);\r\n}\r\n\r\nexport function evaluateCondition(operator, actual, expected) {\r\n\tif (operator === '<=') {\r\n\t\treturn actual <= expected;\r\n\t} else if (operator === '==') {\r\n\t\treturn actual === expected;\r\n\t}\r\n\r\n\treturn actual >= expected;\r\n}\r\n","import { tr } from 'lib/translation';\r\nimport ConfigService from 'services/config';\r\n\r\nexport class PageTracker {\r\n\tconstructor() {\r\n\t\tthis._trackPage();\r\n\t}\r\n\r\n\tgetTrackerData() {\r\n\t\treturn ConfigService.get('pageTracker') || [];\r\n\t}\r\n\r\n\tclearTrackerData() {\r\n\t\tthis._setTrackerData([]);\r\n\t}\r\n\r\n\t_setTrackerData(data) {\r\n\t\tConfigService.set('pageTracker', data, /* persistentStorage */ true);\r\n\t}\r\n\r\n\t_trackPage() {\r\n\t\tconst maxTracks = ConfigService.get('trackerMaxTracks');\r\n\r\n\t\tlet pages = this.getTrackerData();\r\n\r\n\t\tpages.push({\r\n\t\t\ttime: (new Date()).toJSON(),\r\n\t\t\turl: window.location.href,\r\n\t\t\tdescription: document.title || tr('pageTracker.noTitle')\r\n\t\t});\r\n\r\n\t\tif (pages.length > maxTracks) {\r\n\t\t\tconst startIndex = pages.length - maxTracks;\r\n\t\t\tpages = pages.splice(startIndex);\r\n\t\t}\r\n\r\n\t\tthis._setTrackerData(pages);\r\n\t}\r\n}\r\n","import { DEFAULT_STATE, DEFAULT_THEME } from 'defs/defaults';\r\nimport { CHAT_INIT, CHAT_CONTINUE, CONTACT_CENTRE_CLOSED } from 'defs/events';\r\n\r\nimport { mergeActions } from 'lib/helpers/framework';\r\nimport { setupDictionary } from 'lib/translation';\r\nimport { mergeDeep } from 'lib/helpers/object';\r\nimport { contains } from 'lib/helpers/array';\r\nimport { lowerCaseFirst } from 'lib/helpers/string';\r\nimport { parseConditions, evaluateConditions } from 'lib/helpers/conditions';\r\nimport { NotAvailableError } from 'lib/errors';\r\nimport { transformPosition, sizeApplicationFrame } from 'lib/helpers/layout';\r\nimport { publishEvent } from 'lib/bridge';\r\nimport { PageTracker } from 'lib/page-tracker';\r\n\r\nimport { ChatService, ConfigService, MessageService, QueueService, LoggingService } from 'services';\r\nimport { DelayActionEffect } from 'effects/delay-action-effect';\r\nimport { markAsStarted, setIsTouchedByTheUser } from 'actions/chat.helpers';\r\nimport { showDelayedStarter } from 'actions/view.helpers';\r\nimport { showBubble, showChatScreen } from 'actions/view';\r\nimport { updateChatEvents } from 'actions/events';\r\nimport { sendTrackerData } from 'actions/chat';\r\n\r\nimport OIDC from './oidc';\r\n\r\nexport class Bootstrapper {\r\n\tconstructor(settings, methods = {}) {\r\n\t\tthis._settings = settings;\r\n\t\tthis._methods = methods;\r\n\t\tthis._hasSession = ConfigService.get('session') !== null;\r\n\t}\r\n\r\n\tstart() {\r\n\t\tconst sequence = [\r\n\t\t\tthis._configureClient,\r\n\t\t\tthis._setupErrorHandling,\r\n\t\t\tthis._trySSOLogin,\r\n\t\t\tthis._checkOpenningHours,\r\n\t\t\tthis._checkQueueStatusConditions,\r\n\t\t\tthis._setupTranslations,\r\n\t\t\tthis._setupPageTracker,\r\n\t\t\tthis._getState,\r\n\t\t\tthis._getWindowRect,\r\n\t\t\tthis._delayStartButtonShow,\r\n\t\t\tthis._publishInitEvents\r\n\t\t];\r\n\r\n\t\tconst execute = (step, result) => step.call(this, result);\r\n\r\n\t\treturn sequence.reduce((queue, step) => {\r\n\t\t\treturn queue.then(result => {\r\n\t\t\t\treturn execute(step, result).then(output => ({\r\n\t\t\t\t\t...result,\r\n\t\t\t\t\t...(output || {})\r\n\t\t\t\t}));\r\n\t\t\t});\r\n\t\t}, Promise.resolve({}));\r\n\t}\r\n\r\n\t_configureClient() {\r\n\t\treturn new Promise(resolve => {\r\n\t\t\tConfigService.update(this._settings);\r\n\t\t\tresolve();\r\n\t\t});\r\n\t}\r\n\r\n\t_setupErrorHandling() {\r\n\t\treturn new Promise(resolve => {\r\n\t\t\twindow.addEventListener('error', e => {\r\n\t\t\t\tLoggingService.error(e);\r\n\t\t\t\treturn false;\r\n\t\t\t}, true);\r\n\r\n\t\t\tresolve();\r\n\t\t});\r\n\t}\r\n\r\n\t_trySSOLogin() {\r\n\t\tif (OIDC.hasAuthCodeParam()) {\r\n\t\t\tOIDC.preserveAuthCode();\r\n\r\n\t\t\treturn Promise.resolve({ ssoLoggedIn: true });\r\n\t\t}\r\n\r\n\t\treturn Promise.resolve({ ssoLoggedIn: false });\r\n\t}\r\n\r\n\t_checkOpenningHours() {\r\n\t\tconst {\r\n\t\t\ttimeId,\r\n\t\t\ttimeOpenExits\r\n\t\t} = ConfigService.pick([\r\n\t\t\t'timeId',\r\n\t\t\t'timeOpenExits'\r\n\t\t]);\r\n\r\n\t\t// Consider the chat as available, if timeId is not available or there's an active session\r\n\t\tif (!timeId || this._hasSession) {\r\n\t\t\treturn Promise.resolve();\r\n\t\t}\r\n\r\n\t\treturn QueueService.getTimeModule(timeId).then(exit => {\r\n\t\t\tif (!contains(timeOpenExits, exit, /* caseInsensitive */ true)) {\r\n\t\t\t\tpublishEvent(DEFAULT_STATE, CONTACT_CENTRE_CLOSED);\r\n\t\t\t\tthrow new NotAvailableError(`[Bootstrapper] Time module returned not opened exit - ${exit}`);\r\n\t\t\t}\r\n\t\t}).catch(error => {\r\n\t\t\tif (error.name === 'HttpError') {\r\n\t\t\t\tLoggingService.error('[Boostrapper] Couldn\\'t retrieve time module data.\\n\\n', error);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthrow error;\r\n\t\t});\r\n\t}\r\n\r\n\t_checkQueueStatusConditions() {\r\n\t\tconst {\r\n\t\t\tvisualQueueId,\r\n\t\t\tvisualQueueConditions\r\n\t\t} = ConfigService.pick([\r\n\t\t\t'visualQueueId',\r\n\t\t\t'visualQueueConditions'\r\n\t\t]);\r\n\r\n\t\t// Consider the chat as available, if visualQueueId is not available or there's an active session\r\n\t\tif (!visualQueueId || this._hasSession) {\r\n\t\t\treturn Promise.resolve();\r\n\t\t}\r\n\r\n\t\tconst conditions = parseConditions(visualQueueConditions, lowerCaseFirst);\r\n\r\n\t\treturn QueueService.getQueueDetails().then(queueDetails => {\r\n\t\t\tconst isQueueAvailable = evaluateConditions(conditions, queueDetails);\r\n\r\n\t\t\tif (!isQueueAvailable) {\r\n\t\t\t\tthrow new NotAvailableError('[Bootstrapper] Availability conditions are not met.');\r\n\t\t\t}\r\n\t\t}).catch(error => {\r\n\t\t\tif (error.name === 'HttpError') {\r\n\t\t\t\tLoggingService.error('[Boostrapper] Couldn\\'t retrieve visual queue data.\\n\\n', error);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthrow error;\r\n\t\t});\r\n\t}\r\n\r\n\t_setupTranslations() {\r\n\t\tconst {\r\n\t\t\tcustomLanguageUrl,\r\n\t\t\tlanguageCode\r\n\t\t} = ConfigService.pick([\r\n\t\t\t'customLanguageUrl',\r\n\t\t\t'languageCode'\r\n\t\t]);\r\n\r\n\t\treturn setupDictionary(languageCode, customLanguageUrl);\r\n\t}\r\n\r\n\t_setupPageTracker() {\r\n\t\tif (!ConfigService.get('useTracker')) {\r\n\t\t\treturn Promise.resolve({ tracker: null });\r\n\t\t}\r\n\r\n\t\treturn Promise.resolve({\r\n\t\t\ttracker: new PageTracker()\r\n\t\t});\r\n\t}\r\n\r\n\t_getState({ tracker, ssoLoggedIn }) {\r\n\t\tconst theme = this._applyTheme();\r\n\t\tconst state = {\r\n\t\t\t...DEFAULT_STATE,\r\n\t\t\ttheme,\r\n\t\t\ttracker\r\n\t\t};\r\n\r\n\t\tconst defaultStartUp = () => {\r\n\t\t\tif (ConfigService.get('startChatImmediately') || ssoLoggedIn) {\r\n\t\t\t\treturn this._methods.startChat(state);\r\n\t\t\t}\r\n\r\n\t\t\treturn showBubble(state);\r\n\t\t};\r\n\r\n\t\tif (!this._hasSession) {\r\n\t\t\treturn Promise.resolve({ state: defaultStartUp() });\r\n\t\t}\r\n\r\n\t\treturn MessageService.getMessages().then(messages => {\r\n\t\t\tconst initialState = mergeActions(state, [\r\n\t\t\t\t(patch) => markAsStarted(patch, messages),\r\n\t\t\t\tsetIsTouchedByTheUser,\r\n\t\t\t\tupdateChatEvents,\r\n\t\t\t\tshowChatScreen,\r\n\t\t\t\tsendTrackerData\r\n\t\t\t]);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tstate: initialState,\r\n\t\t\t\tisContinued: true\r\n\t\t\t};\r\n\t\t}).catch(error => {\r\n\t\t\t// The HttpClient is throwing HttpErrors, if other error occurs, it's most probably browser error:\r\n\t\t\t// The request has been cancelled by the browser - quick refresh, network error, etc.\r\n\t\t\t// Only delete the session, when the error is coming from the API.\r\n\t\t\tif (error.name === 'HttpError') {\r\n\t\t\t\tChatService.removeChatData();\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tstate: defaultStartUp()\r\n\t\t\t};\r\n\t\t});\r\n\t}\r\n\r\n\t_applyTheme() {\r\n\t\tconst { theme: clientTheme } = this._settings;\r\n\t\tconst { theme: defaultTheme } = DEFAULT_THEME;\r\n\r\n\t\tconst {\r\n\t\t\thorizontalStarterPosition,\r\n\t\t\tverticalStarterPosition,\r\n\t\t\thorizontalChatPosition,\r\n\t\t\tverticalChatPosition,\r\n\t\t\tframeHeight,\r\n\t\t\tframeWidth,\r\n\t\t\tstarterRotation,\r\n\t\t\tstarterIconRotation,\r\n\t\t\tstarterOffset,\r\n\t\t\tchatOffset\r\n\t\t} = ConfigService.pick([\r\n\t\t\t'horizontalStarterPosition',\r\n\t\t\t'verticalStarterPosition',\r\n\t\t\t'horizontalChatPosition',\r\n\t\t\t'verticalChatPosition',\r\n\t\t\t'frameHeight',\r\n\t\t\t'frameWidth',\r\n\t\t\t'starterRotation',\r\n\t\t\t'starterIconRotation',\r\n\t\t\t'starterOffset',\r\n\t\t\t'chatOffset'\r\n\t\t]);\r\n\t\tconst starterPosition = transformPosition(horizontalStarterPosition, verticalStarterPosition);\r\n\t\tconst chatPosition = transformPosition(horizontalChatPosition, verticalChatPosition);\r\n\t\tconst chatFrameSize = sizeApplicationFrame(frameWidth, frameHeight);\r\n\r\n\t\treturn mergeDeep(defaultTheme, clientTheme, {\r\n\t\t\tstarterPosition,\r\n\t\t\tchatPosition,\r\n\t\t\tchatFrameSize,\r\n\t\t\tstarterRotation,\r\n\t\t\tstarterIconRotation,\r\n\t\t\tstarterOffset,\r\n\t\t\tchatOffset,\r\n\t\t\thorizontalChatPosition,\r\n\t\t\tverticalChatPosition\r\n\t\t});\r\n\t}\r\n\r\n\t_getWindowRect() {\r\n\t\treturn Promise.resolve({\r\n\t\t\tdimensions: ConfigService.get('windowRect')\r\n\t\t});\r\n\t}\r\n\r\n\t_delayStartButtonShow({ state }) {\r\n\t\tconst {\r\n\t\t\tdelayStarterSeconds: delaySeconds,\r\n\t\t\tstartChatImmediately\r\n\t\t} = ConfigService.pick([\r\n\t\t\t'delayStarterSeconds',\r\n\t\t\t'startChatImmediately'\r\n\t\t]);\r\n\r\n\t\t// eslint-disable-next-line no-magic-numbers\r\n\t\tif (delaySeconds > 0 && !this._hasSession && !startChatImmediately) {\r\n\t\t\tstate.push(\r\n\t\t\t\tDelayActionEffect({\r\n\t\t\t\t\taction: showDelayedStarter,\r\n\t\t\t\t\ttimeout: (delaySeconds * 1000) // eslint-disable-line no-magic-numbers\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tstate[0] = showDelayedStarter(state[0]);\r\n\t\t}\r\n\r\n\t\treturn Promise.resolve();\r\n\t}\r\n\r\n\t_publishInitEvents({ state, isContinued }) {\r\n\t\tpublishEvent(state, CHAT_INIT);\r\n\r\n\t\tif (isContinued) {\r\n\t\t\tpublishEvent(state, CHAT_CONTINUE);\r\n\t\t}\r\n\r\n\t\treturn Promise.resolve();\r\n\t}\r\n}\r\n","import { START_SCREEN_INPUT } from 'defs/scope';\r\nimport {\r\n\tSTART_FORM_NAME_INPUT,\r\n\tSTART_FORM_EMAIL_INPUT,\r\n\tSTART_FORM_SUBJECT_INPUT,\r\n\tSTART_FORM_QUEUE_INPUT,\r\n\tSTART_FORM_TIME_ID_INPUT\r\n} from 'defs/input';\r\n\r\nimport { mergeActions } from 'lib/helpers/framework';\r\n\r\nimport { ConfigService, ChatService } from 'services';\r\nimport { minimize, maximize } from './actions/view';\r\nimport { setInputValue } from './actions/input';\r\n\r\nexport class ChatBridge {\r\n\tconstructor({ getState, setState }, { startChat }) {\r\n\t\tthis._getState = getState;\r\n\t\tthis._setState = setState;\r\n\r\n\t\tthis._startChat = startChat;\r\n\t}\r\n\r\n\tget actions() {\r\n\t\treturn this._withInternalMiddleware({\r\n\t\t\tstartChat(state) {\r\n\t\t\t\treturn this._startChat(state);\r\n\t\t\t},\r\n\t\t\tminimize(state) {\r\n\t\t\t\treturn minimize(state);\r\n\t\t\t},\r\n\t\t\tmaximize(state) {\r\n\t\t\t\treturn maximize(state);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tget services() {\r\n\t\treturn {\r\n\t\t\tconfig: {\r\n\t\t\t\tget: this._expose(ConfigService, 'get'),\r\n\t\t\t\tpick: this._expose(ConfigService, 'pick')\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tget api() {\r\n\t\treturn this._withExternalMiddleware({\r\n\t\t\t...this.actions,\r\n\r\n\t\t\tupdateVariables(state, variables) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\tvariables: oldVariables,\r\n\t\t\t\t\tsession\r\n\t\t\t\t} = ConfigService.pick([\r\n\t\t\t\t\t'variables',\r\n\t\t\t\t\t'session'\r\n\t\t\t\t]);\r\n\r\n\t\t\t\tconst updateConfig = () => {\r\n\t\t\t\t\tConfigService.update({\r\n\t\t\t\t\t\tvariables: {\r\n\t\t\t\t\t\t\t...oldVariables,\r\n\t\t\t\t\t\t\t...variables\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (session) {\r\n\t\t\t\t\tChatService.updateVariables(variables);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// TODO [CSP-6891] Refactor the handling of the custom variables and remove the unnecessary storage.\r\n\t\t\t\t\tupdateConfig();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst actions = Object.keys(variables).map(name => {\r\n\t\t\t\t\tconst value = variables[name];\r\n\t\t\t\t\tconst setter = setInputValue(START_SCREEN_INPUT, name);\r\n\t\t\t\t\treturn state => setter(state, value);\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn mergeActions(state, actions);\r\n\t\t\t},\r\n\t\t\tupdateSystemVariables(state, { enteredFormName, enteredChatId, enteredFormIssue, selectedQueueKey, timeId2Map } = {}) {\r\n\t\t\t\tconst actions = [];\r\n\t\t\t\tconst patchStartFormInput = (name, value) => state => {\r\n\t\t\t\t\tconst setter = setInputValue(START_SCREEN_INPUT, name);\r\n\t\t\t\t\treturn setter(state, value);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (typeof enteredFormName !== 'undefined') {\r\n\t\t\t\t\tactions.push(patchStartFormInput(START_FORM_NAME_INPUT, enteredFormName));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (typeof enteredChatId !== 'undefined') {\r\n\t\t\t\t\tactions.push(patchStartFormInput(START_FORM_EMAIL_INPUT, enteredChatId));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (typeof enteredFormIssue !== 'undefined') {\r\n\t\t\t\t\tactions.push(patchStartFormInput(START_FORM_SUBJECT_INPUT, enteredFormIssue));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (typeof selectedQueueKey !== 'undefined') {\r\n\t\t\t\t\tactions.push(patchStartFormInput(START_FORM_QUEUE_INPUT, selectedQueueKey));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (typeof timeId2Map !== 'undefined') {\r\n\t\t\t\t\tactions.push(patchStartFormInput(START_FORM_TIME_ID_INPUT, timeId2Map));\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn mergeActions(state, actions);\r\n\t\t\t},\r\n\t\t\tgetState(state) {\r\n\t\t\t\treturn this._plainReturn({\r\n\t\t\t\t\tisConnected: state.isConnected,\r\n\t\t\t\t\tisEnded: state.isEnded,\r\n\t\t\t\t\tisMinimized: state.isMinimized\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_expose(service, method) {\r\n\t\treturn service[method].bind(service);\r\n\t}\r\n\r\n\t_withInternalMiddleware(middleware) {\r\n\t\tconst methods = Object.keys(middleware);\r\n\r\n\t\treturn methods.reduce((api, method) => {\r\n\t\t\treturn {\r\n\t\t\t\t...api,\r\n\t\t\t\t[method]: (...args) => {\r\n\t\t\t\t\treturn middleware[method].call(this, ...args);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}, {});\r\n\t}\r\n\r\n\t_withExternalMiddleware(middleware) {\r\n\t\tconst methods = Object.keys(middleware);\r\n\r\n\t\treturn methods.reduce((api, method) => {\r\n\t\t\treturn {\r\n\t\t\t\t...api,\r\n\t\t\t\t[method]: (...args) => {\r\n\t\t\t\t\tconst state = this._getState();\r\n\t\t\t\t\tconst output = middleware[method].call(this, state, ...args);\r\n\r\n\t\t\t\t\tif (!output || !output.plain) {\r\n\t\t\t\t\t\tthis._triggerRendering(output);\r\n\t\t\t\t\t\treturn output || null;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn (output && output.data) || null;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}, {});\r\n\t}\r\n\r\n\t_plainReturn(data) {\r\n\t\treturn {\r\n\t\t\tplain: true,\r\n\t\t\tdata\r\n\t\t};\r\n\t}\r\n\r\n\t_triggerRendering(patch) {\r\n\t\tconst state = patch || { ...this._getState() };\r\n\t\tthis._setState(state);\r\n\t}\r\n}\r\n","import { SELECTOR_IS_DRAGGED } from 'defs/defaults';\r\n\r\nimport { app } from 'hyperapp';\r\n\r\nimport base from 'styles/base';\r\nimport jss from 'styles/jss';\r\n\r\nimport { CaptchaScreen } from 'views/captcha';\r\nimport { ChatView } from 'views/chat';\r\nimport { StartScreen } from 'views/start-screen';\r\nimport { Survey } from 'views/survey';\r\nimport { EndChat } from 'views/end-screen';\r\nimport { RejectScreen } from 'views/reject-screen';\r\n\r\nimport { skipValues } from 'lib/helpers/object';\r\nimport { isMobile } from 'lib/helpers/browser';\r\nimport { StateProvider } from 'lib/state-provider';\r\nimport { $registerBridge } from 'lib/bridge';\r\n\r\nimport { PollingService, LoggingService } from 'services';\r\nimport { startChat } from 'actions/chat';\r\n\r\nimport { Bootstrapper } from './bootstrapper';\r\nimport { ChatBridge } from './api';\r\n\r\nexport default class PuzzelChatClient {\r\n\tviews = {\r\n\t\tcaptcha: CaptchaScreen,\r\n\t\tchat: ChatView,\r\n\t\tstart: StartScreen,\r\n\t\tbubble: () => this.starter({ api: this._chatBridge.actions, services: this._chatBridge.services }),\r\n\t\tsurvey: Survey,\r\n\t\tend: EndChat,\r\n\t\treject: RejectScreen\r\n\t};\r\n\r\n\tconstructor(settings, modules, bridge) {\r\n\t\t// Skip null and empty values, received from the back-end.\r\n\t\tthis._settings = skipValues(settings, [null, '']);\r\n\t\tthis._modules = modules;\r\n\t\tthis._bridge = bridge;\r\n\r\n\t\t$registerBridge(this._bridge);\r\n\t}\r\n\r\n\tload() {\r\n\t\tthis._prepareBoundMethods();\r\n\r\n\t\tthis._bootstrap = new Bootstrapper(this._settings, {\r\n\t\t\tstartChat: this._startChat\r\n\t\t});\r\n\r\n\t\treturn this._bootstrap.start().\r\n\t\t\tthen(this._attach.bind(this)).\r\n\t\t\tthen(this._registerBridgeInterface.bind(this)).\r\n\t\t\tcatch(error => {\r\n\t\t\t\tLoggingService.error(error);\r\n\t\t\t});\r\n\t}\r\n\r\n\t_attach({ state, dimensions }) {\r\n\t\tconst modules = [\r\n\t\t\tthis._loadStarter(),\r\n\t\t\tthis._loadSurvey()\r\n\t\t];\r\n\r\n\t\treturn Promise.all(modules).then(() => {\r\n\t\t\tthis._attachStyleSheet(state[0]);\r\n\r\n\t\t\treturn this._attachApplication(state, dimensions);\r\n\t\t});\r\n\t}\r\n\r\n\t_loadSurvey() {\r\n\t\tif (!this._modules.Survey) {\r\n\t\t\treturn Promise.resolve();\r\n\t\t}\r\n\r\n\t\treturn this._modules.Survey.load();\r\n\t}\r\n\r\n\t_loadStarter() {\r\n\t\treturn this._modules.Starter.load().then(module => {\r\n\t\t\tthis.starter = module;\r\n\t\t});\r\n\t}\r\n\r\n\t_attachStyleSheet(state) {\r\n\t\tjss.createStyleSheet(base(state.theme)).attach();\r\n\t}\r\n\r\n\t_prepareBoundMethods() {\r\n\t\tthis._startChat = state => startChat(state, this._modules.all.load);\r\n\t}\r\n\r\n\t_attachApplication(initialState, dimensions) {\r\n\t\tlet state = initialState[0];\r\n\r\n\t\tconst getState = () => state;\r\n\t\tconst setState = state => this._dispatch(state);\r\n\r\n\t\tapp({\r\n\t\t\tinit: initialState,\r\n\t\t\tnode: this._getChatContainer(dimensions),\r\n\t\t\tview: StateProvider(this._getCurrentView.bind(this)),\r\n\t\t\tsubscriptions: state => {\r\n\t\t\t\tif (!state.isInQueue) {\r\n\t\t\t\t\tPollingService.suspend('queue');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tPollingService.restore('queue');\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn [\r\n\t\t\t\t\tstate.isConnected && !state.isEnded && PollingService.subscriptions\r\n\t\t\t\t];\r\n\t\t\t},\r\n\t\t\tmiddleware: dispatch => {\r\n\t\t\t\tthis._dispatch = (...args) => {\r\n\t\t\t\t\tif (typeof args[0] !== 'function' && !Array.isArray(args[0])) {\r\n\t\t\t\t\t\t[state] = args;\r\n\t\t\t\t\t} else if (Array.isArray(args[0])) {\r\n\t\t\t\t\t\t[state] = args[0];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Set current view as attribute, so we can target it in JSS\r\n\t\t\t\t\tthis._rootNode.setAttribute('data-view', state.view);\r\n\r\n\t\t\t\t\tdispatch(...args);\r\n\t\t\t\t};\r\n\r\n\t\t\t\treturn this._dispatch;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn { getState, setState };\r\n\t}\r\n\r\n\t_registerBridgeInterface({ getState, setState }) {\r\n\t\tthis._chatBridge = new ChatBridge({ getState, setState }, {\r\n\t\t\tstartChat: this._startChat\r\n\t\t});\r\n\r\n\t\tthis._bridge.$registerInterface(this._chatBridge.api);\r\n\t}\r\n\r\n\t_getCurrentView(state) {\r\n\t\tconst name = state.view;\r\n\t\tconst view = this.views[name];\r\n\r\n\t\tif (!view) {\r\n\t\t\tthrow new Error(`Cannot find view <${name}>`);\r\n\t\t}\r\n\r\n\t\tif (typeof view !== 'function') {\r\n\t\t\tthrow new Error(`The declared view <${name}> must be a function.`);\r\n\t\t}\r\n\r\n\t\treturn view;\r\n\t}\r\n\r\n\t_getChatContainer(dimensions) {\r\n\t\t// Create root node and append it to the DOM\r\n\t\tthis._rootNode = document.createElement('div');\r\n\t\tthis._rootNode.setAttribute('data-puzzel-chat', '');\r\n\t\tdocument.body.appendChild(this._rootNode);\r\n\r\n\t\t// Add device type as a class\r\n\t\tconst deviceType = isMobile() ? 'mobile' : 'web';\r\n\t\tthis._rootNode.classList.add(deviceType);\r\n\r\n\t\t// Restore window rect, if available\r\n\t\tif (dimensions !== null) {\r\n\t\t\tconst { left, top, width, height } = dimensions;\r\n\t\t\tconst px = size => `${size}px`;\r\n\r\n\t\t\tthis._rootNode.style.left = px(left);\r\n\t\t\tthis._rootNode.style.top = px(top);\r\n\t\t\tthis._rootNode.style.width = px(width);\r\n\t\t\tthis._rootNode.style.height = px(height);\r\n\t\t\tthis._rootNode.classList.add(SELECTOR_IS_DRAGGED);\r\n\t\t}\r\n\r\n\t\t// Create render node, so that the root node is preserved as a parent\r\n\t\tconst renderNode = document.createElement('div');\r\n\t\tthis._rootNode.appendChild(renderNode);\r\n\r\n\t\treturn renderNode;\r\n\t}\r\n}\r\n"],"names":["trim","target","isNullOrEmpty","lowerCaseFirst","charAt","toLowerCase","substring","lowercase","String","contains","value","needle","indexOf","isString","toArrayOf","numbers","nestedArray","push","Array","from","split","i","toNumberFromIndex","index","returnValue","Number","isNaN","replaceDotsWithDashes","string","replace","URLValidator","url","pattern","matcher","RegExp","test","DEFAULT_STATE","view","isConnected","isEnded","isEndedByUser","isEndedByAgent","isInQueue","isRedirectingToSSO","hasBeenInConference","isMinimized","queuePosition","queuePositionTime","agentIsTyping","chatterIsTyping","chatAreaDisabled","resetChatInput","captchaConfig","loading","messages","connectedAgents","lastConnectedAgentId","isScrolling","isDelayedStarterShown","isUntouched","viewportWidth","viewportHeight","isEmojiWindowShown","currentEmojiIndex","emojiWindowClosedByBlur","fileAttachmentsEnabled","isAttachingFile","fileCount","notification","DEFAULT_EDITOR","INITIAL_HEIGHT","DEFAULT_FILE_ATTACHMENT_HEIGHT","INITIAL_HEIGHT_OFFSET","MAX_HEIGHT","DEFAULT_THEME","theme","primaryColor","secondaryColor","tertiaryColor","supportColorOne","supportColorTwo","supportColorThree","buttonTertiaryNormal","buttonSecondaryNormal","buttonPrimaryNormal","buttonPrimaryHover","buttonSecondaryHover","buttonTertiaryHover","buttonPrimaryFocus","buttonSecondaryFocus","buttonTertiaryFocus","buttonPrimaryBorder","buttonSecondaryBorder","buttonTertiaryBorder","alertSuccessColor","alertErrorColor","editorInputBorderColor","editorSendButtonFillColor","inputBorderColor","startChatBubbleBorderColor","startChatBubbleShadowColor","startChatBubbleBoxShadow","typography","fontColor","fontSize","fontFace","headerTextColor","headingsTextColor","headingsFontSize","headingsTextTransform","lineHeight","textTransform","headerTextSize","editorTextColor","buttonPrimaryTextColor","buttonSecondaryTextColor","buttonTertiaryTextColor","chatBubbleMetaTextSize","buttonPrimaryTextSize","buttonSecondaryTextSize","buttonTertiaryTextSize","buttonPrimaryTextTransform","buttonSecondaryTextTransform","buttonTertiaryTextTransform","startChatBubbleFontStyle","startChatBubbleFontSize","startChatBubbleTextColor","startChatBubbleIconColor","shapes","borderRadius","inputBorderRadius","startChatBubbleBorderRadius","startChatBubbleSize","startChatBubbleBorderThickness","agentBubbleBorderRadius","chatterBubbleBorderRadius","buttonPrimaryBorderRadius","buttonSecondaryBorderRadius","buttonTertiaryBorderRadius","buttonPrimaryHeight","buttonSecondaryHeight","buttonTertiaryHeight","buttonPrimaryWidth","buttonSecondaryWidth","buttonTertiaryWidth","inputHeight","headerHeight","buttonHeight","editorBorderRadius","DEFAULT_POLLING_FREQUENCY","DEFAULT_LANGUAGE_CODE","DEFAULT_ELEMENTS_WHITELIST","br","h1","h2","h3","h4","h5","h6","p","a","u","s","b","strong","em","sub","sup","DEFAULT_HYPERLINKS_ATTRIBUTES","tabindex","SELECTOR_IS_DRAGGED","RESIZE_TRIGGER_SIZE","CHAT_SELECTOR","CHAT_INPUT_SELECTOR","CHAT_DRAG_HANDLE","CHAT_MIN_WIDTH","CHAT_MIN_HEIGHT","NOTIFICATIONS_TTL","TYPING_TTL","OIDC_CONNECTION_NAME","EMOJI_WINDOW_SELECTOR","EMOJIS_PER_ROW","EMOJIS","KEYBOARD","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","ARROW_UP","ENTER","ESC","SPACE","MESSAGE_OPTION_CAN_CANCEL","MESSAGE_OPTION_SHOW_HEADER","MESSAGE_OPTION_SHOW_CONFIRMATION","MESSAGE_OPTION_HEADER_LABEL","MESSAGE_OPTION_HEADER_CONFIRMED_LABEL","SKIP_INTRO_VARIABLES","STYLES_PREFIX","version","RECYCLED_NODE","LAZY_NODE","TEXT_NODE","EMPTY_OBJ","EMPTY_ARR","map","isArray","defer","requestAnimationFrame","setTimeout","createClass","obj","out","length","k","tmp","merge","batch","list","reduce","item","concat","isSameAction","shouldRestart","patchSubs","oldSubs","newSubs","dispatch","oldSub","newSub","subs","patchProperty","node","key","oldValue","newValue","listener","isSvg","setProperty","actions","slice","removeEventListener","addEventListener","removeAttribute","setAttribute","createNode","vdom","ns","props","type","document","createTextNode","name","createElementNS","is","createElement","len","children","appendChild","getVNode","getKey","patch","parent","oldVNode","newVNode","nodeValue","insertBefore","removeChild","tmpVKid","oldVKid","oldKey","newKey","oldVProps","newVProps","oldVKids","newVKids","oldHead","newHead","oldTail","newTail","keyed","newKeyed","propsChanged","getTextVNode","createTextVNode","lazy","createVNode","undefined","recycleNode","nodeType","nodeName","call","childNodes","h","rest","arguments","pop","app","state","lock","subscriptions","event","setState","newState","render","middleware","action","fx","parentNode","init","_extends","Object","assign","source","prototype","hasOwnProperty","apply","_typeof","Symbol","iterator","constructor","isBrowser","window","warning","condition","message","text","console","warn","Error","x","_defineProperties","descriptor","enumerable","configurable","writable","defineProperty","_createClass","Constructor","protoProps","staticProps","_inheritsLoose","subClass","superClass","create","__proto__","_assertThisInitialized","self","ReferenceError","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","plainObjectConstrurctor","cloneStyle","style","newStyle","createRule","decl","options","jss","declCopy","rule","plugins","onCreateRule","join","by","result","toCssValue","ignoreImportant","cssValue","indentStr","str","indent","toCss","selector","_options","_options$indent","fallbacks","fallback","prop","_prop","_value","_prop2","_value2","allowEmpty","escapeRegex","nativeEscape","CSS","escape","BaseStyleRule","isProcessed","renderer","renderable","sheet","Renderer","_proto","force","process","onChangeValue","isEmpty","isDefined","remove","removeProperty","attached","StyleRule","_BaseStyleRule","_this","selectorText","id","scoped","generateId","_proto2","applyTo","json","toJSON","toString","link","opts","set","hasChanged","setSelector","replaceRule","get","pluginStyleRule","defaultToStringOptions","atRegExp","ConditionalRule","styles","at","query","rules","atMatch","match","RuleList","add","getRule","addRule","onProcessRule","keyRegExp","pluginConditionalRule","defaultToStringOptions$1","nameRegExp","KeyframesRule","frames","nameMatch","keyRegExp$1","refRegExp","findReferencedKeyframe","val","keyframes","replaceRef","refKeyframe","plugin","onProcessStyle","KeyframeRule","_len","args","_key","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","pluginSimpleRule","defaultUpdateOptions","forceUpdateOptions","raw","counter","classes","ruleOptions","_this$options","register","splice","unregister","forEach","update","data","updateOne","_this$options2","styleRule","onUpdate","nextValue","prevValue","_nextValue","_prevValue","css","StyleSheet","deployed","queue","attach","deploy","detach","insertRule","addRules","added","deleteRule","_this$rules","PluginsRegistry","internal","external","registry","onProcessSheet","processedValue","use","newPlugin","SheetsRegistry","reset","_temp","_ref","sheets","globalThis","Math","Function","moduleId","maxRules","createGenerateId","ruleCounter","jssId","prefix","classNamePrefix","minify","memoize","fn","getPropertyValue","cssRule","attributeStyleMap","err","delete","getHead","querySelector","findHigherSheet","insertionPoint","findHighestSheet","findCommentNode","head","findPrevNode","element","nextSibling","comment","insertStyle","nextNode","insertionPointElement","getNonce","getAttribute","_insertRule","container","maxIndex","cssRules","c","_c","appendRule","createStyle","el","textContent","DomRenderer","hasInsertedRules","media","meta","nonce","Boolean","insertRules","nativeParent","latestNativeParent","parentStyleSheet","ruleStr","nativeRule","getRules","instanceCounter","Jss","isInBrowser","setup","createStyleSheet","removeStyleSheet","createRule$1","SheetsManager","WeakMap","entry","has","refs","manage","unmanage","hasCSSTOMSupport","now","Date","fnValuesNs","fnRuleNs","functionPlugin","fnValues","fnRule","symbolObservablePonyfill","root","observable","global","module","ponyfill","isObservable","$$observable","observablePlugin","updateOptions","style$","subscribe","_loop","next","_ret","semiWithNl","parse","cssText","colonIndex","substr","templatePlugin","atPrefix","GlobalContainerRule","GlobalPrefixedRule","separatorRegExp","addScope","scope","parts","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","jssGlobal","isObject","valueNs","mergeExtend","extendType","extend","refRule","originalStyle","singleExtend","singleStyle","mergeRest","jssExtend","parentRegExp","jssNested","getReplaceRef","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","j","nested","getOptions","prevOptions","nestingLevel","isNested","isNestedConditional","registerClass","className","isSetted","jssCompose","composes","uppercasePattern","msPattern","cache","toHyphenLower","hyphenateStyleName","hName","convertCase","converted","hyphenate","camelCase","hyphenatedProp","px","ms","percent","defaultUnits","border","margin","padding","height","width","bottom","left","top","right","motion","outline","perspective","size","grid","addCamelCasedVersion","regExp","toUpperCase","newObj","units","iterate","innerProp","_innerProp","unit","defaultUnit","camelCasedOptions","propArray","flex","transform","transition","propArrayInObj","position","propObj","background","attachment","color","image","repeat","property","duration","timingFunction","delay","animation","iterationCount","direction","fillMode","playState","y","blur","spread","inset","customPropObj","radius","font","variant","weight","stretch","family","grow","basis","wrap","flow","shrink","align","items","content","templateColumns","templateRows","templateAreas","template","autoColumns","autoRows","autoFlow","row","column","rowStart","rowEnd","columnStart","columnEnd","area","gap","rowGap","columnGap","mapValuesByProp","objectToArray","processArray","scheme","isFallback","isInArray","customPropsToStyle","baseProp","customProps","propName","_styleDetector","appendedValue","styleDetector","jssExpand","_arrayLikeToArray","arr","arr2","_arrayWithoutHoles","arrayLikeToArray","_iterableToArray","iter","_unsupportedIterableToArray","o","minLen","n","_nonIterableSpread","TypeError","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","js","vendor","browser","isTouch","documentElement","jsCssMap","Moz","O","Webkit","_document$createEleme","testProp","supportedKeyframes","appearence","noPrefill","supportedProperty","colorAdjust","toUpper","camelize","pascalize","mask","longhand","textOrientation","writingMode","userSelect","breakPropsOld","jsProp","_jsProp","inlineLogicalOld","newProp","unprefixed","prefixed","pascalized","scrollSnap","overscrollBehavior","propMap","order","flex2012","propMap$1","propKeys","prefixCss","flex2009","multiple","propertyDetectors","filter","computed","getComputedStyle","key$1","cache$1","transitionProperties","transPropsRegExp","el$1","prefixTransitionCallback","p1","p2","prefixedValue","supportedValue","parseInt","cacheKey","jssVendorPrefixer","atRule","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$1","jssPropsSort","sort","prop0","prop1","functions","compose","expand","vendorPrefixer","propsSort","preset","jssPluginSyntaxNested","jssPluginSyntaxGlobal","transparentize","opacity","output","startsWith","hex","r","g","adjust","amount","_amount","min","max","pSBC","c0","c1","l","P","f","t","m","round","pSBCr","d","parseFloat","variables","editorSendButtonStrokeColor","messageMetaTextColor","chatFocusOutlineColor","chatFocusOutlineColorButton","chatFocusBorderColor","buttonIconFocusBackground","buttonDisabledBackgroundColor","buttonDisabledColor","inputBackgroundColor","inputDisabledBackgroundColor","inputColor","chatContainerBorderColor","chatContainerShadowColor","editorInputBorderFocusColor","editorSendButtonHoverColor","editorPlaceholderTextColor","editorBackgroundDisabledColor","editorBorderDisabledColor","messageListBackgroundColor","messageDefaultBackground","messageAgentBackground","messageUserBackground","linkNormalColor","messageOptionBorderRadius","messageOptionColor","messageOptionHeight","messageOptionWidth","messageOptionBackground","messageOptionHoverBackground","messageOptionFocusBackground","messageOptionHoverColor","messageOptionFocusColor","messageOptionSeparatorColor","secondaryTextColor","chatInfoMessageTextColor","chatInfoHeadingTextSize","chatInfoMessageTextSize","chatInfoTimestampTextSize","alertBorderRadius","alertSuccessBackground","alertSuccessBorderColor","alertErrorBackground","alertErrorBorderColor","introBorder","introBorderRadius","captchaCodeColor","captchaErrorColor","notificationBorderColor","notificationBorderThickness","notificationColor","notificationShadowThickness","notificationTextColor","notificationTextStyle","mergeDeep","sources","shift","skipValues","values","flatten","objectValuesToString","stack","stylesAttached","Map","withStyles","flat","suffix","aliases","component","themeProps","melted","isLive","jssStyles","positionMap","positionOffset","sequence","acc","offset","positionTransformMap","middle","transformPosition","horizontal","vertical","offsets","translateY","translateX","computedOffset","offsetX","offsetY","sizeApplicationFrame","sizeApp","frameWidth","frameHeight","clientHeight","clientWidth","frameHeightScoped","frameWidthScoped","computedHeight","computedWidth","defaultFontColor","defaultFontSize","defaultFontFace","defaultLineHeight","defaultTextTransform","base","starterPosition","chatPosition","starterOffset","horizontalChatPosition","verticalChatPosition","chatOffset","chatFrameSize","chatBubbleHeight","chatBubbleWidth","offsetTop","offsetRight","offsetBottom","offsetLeft","windowOffset","offSets","setOffsets","overflow","START_SCREEN_INPUT","CAPTCHA_INPUT","EDITOR_INPUT","SURVEY_INPUT","GOODBYE_INPUT","CONFIG_STORE","START_FORM_EMAIL_INPUT","START_FORM_NAME_INPUT","START_FORM_SUBJECT_INPUT","START_FORM_QUEUE_INPUT","START_FORM_TIME_ID_INPUT","DENY_ARCHIVING","CAPTCHA_CODE_INPUT","NEW_MESSAGE_INPUT","EDITOR_INPUT_ID","SURVEY_COMMENT","SURVEY_ID","SURVEY_RATING_INPUT","GOODBYE_EMAIL","effect","eventOptions","preventDefault","stopPropagation","targetValue","targetChecked","checked","targetValueInteger","isMobile","navigator","userAgent","opera","isIOS15","includes","classNames","classList","CHAT_INIT","CHAT_STARTS","CHAT_CONTINUE","CHAT_ENDED","CHAT_WINDOW_SHOWN","CHAT_WINDOW_CLOSED","CHAT_WINDOW_MINIMIZED","CONTACT_CENTRE_CLOSED","CHATTER_IS_TYPING","CHATTER_NOT_TYPING","RENDER_TOLERANCE","noop","mergeActions","input","patched","effects","queueViewAction","languageCode","startChatImmediately","msgFormHeader","msgFormIngress","inputFields","inputLabel","inputPlaceholder","inputRequired","inputType","inputVariableName","msgSurveyHeader","msgSurveyQuestion","enableSurvey","surveyOnlyWhenConnected","surveyMaxScore","surveyMinScore","surveyType","showSendEmail","emailTopBackgroundColor","emailTopLineColor","emailBottomLineColor","msgGoodbyeHeader","msgGoodbye","showEndPage","showVariablesInIntro","msgReject","visualQueueConditions","timeOpenExits","horizontalStarterPosition","verticalStarterPosition","showStarter","showStarterWhenMinimized","draggable","resizable","delayStarterSeconds","notifyChatterOnNewMessage","useTracker","trackerMaxTracks","showEmojis","chatScope","isChatScope","removeChatScope","ConfigService","store","_store","_sync","DEFAULT_SETTINGS","persistentStorage","_settings","_saveToStore","_getFromStore","_castValue","_removeFromStore","settings","pick","getItem","_encodeValue","setItem","removeItem","JSON","stringify","instance","localStorage","getStartFormEmail","getInputValue","getStartFormName","getStartFormSubject","getStartFormQueue","getStartFormTimeId","getStartFormVariables","includeSystemVariables","systemVariables","getNewMessage","setNewMessage","setMessage","setInputValue","editNewMessage","start","end","getSurveyId","getSurveyRating","getSurveyComment","setSurveyId","getDenyArchiving","setDenyArchiving","scopeValues","defaultValue","loaderBridge","$registerBridge","bridge","getBridge","getEventdata","subject","nickName","chatId","email","sessionId","requestId","queueKey","startFormVariables","activeUsers","hasBeenConnected","chat","chatter","survey","device","publishEvent","unshift","publish","LoggingService","config","_config","error","markAsLoading","markAsLoaded","catch","finally","request","then","AsyncEffect","switchView","SwitchViewEffect","MESSAGE_TYPE","EVENT","INTRO","JSON_TEMPLATE","OPTION","OPTION_RESULT","OPTION_RESULT_EXTENDED","REACTION","SYSTEM","TEXT","TRACKS","USER_INFO","JSON_OPTION_PREFIX","OPTION_TYPE","LINK_BUTTON","ACTION_BUTTON","USER_TYPE","BOT","HUMAN","ROLE","AGENT","USER","EVENTS","AGENTS_TYPING","CHATTER_TYPING","REQUEST_PUT_IN_QUEUE","USER_CONNECTED","USER_DISCONNECTED","REACTIONS","LIKE","CANCEL","DISLIKE","UNKNOWN","MESSAGE_INFO_ENDED","sent","MESSAGE_SCROLLING_SETTINGS","SCROLL_INTO_VIEW_INTERVAL","SCROLL_TO_BOTTOM_INTERVAL","OFFSET","SCROLL_TOLERANCE","MESSAGE_WRAPPER_ELEMENT","TYPING_INDICATION_ELEMENT","MESSAGE_QUEUE_ELEMENT","MESSAGE_FREEZE_TIME","DEFAULT_TYPING_CHECK_TIME","DEFAULT_TYPING_TIME","getLast","lastIndex","arrayFilterByCriteria","array","criteria","matches","criterion","criterionKeys","matchedKeys","caseInsensitive","addChatMessages","preserveUserInput","markAsStarted","isTranscriptSent","transcriptSendError","transcriptTimeout","isCaptchaWrong","markAsEnded","markAsEndedByUser","markAsEndedByAgent","endMessage","disableChatArea","enableChatArea","getOptionResults","getOptionResult","optionId","results","messageId","markTranscriptAsSent","markTranscriptSendError","statusCode","putOnQueue","putOffQueue","setInitialConfig","modules","setCaptchaConfig","setModulesConfig","setIsTouchedByTheUser","markCaptchaAsWrong","markCaptchaAsCorrect","setScrollingOn","setScrollingOff","getTracker","tracker","setViewportSize","markSSORedirection","getDisplayedMessages","enableCustomerInsightSurvey","isCustomerInsightSurvey","effectFn","wrapper","getElementById","wrapperId","scrollToleranceMeter","scrollHeight","offsetHeight","scrollTop","elementId","scrollIntoView","behavior","block","inline","interval","ScrollIntoViewEffect","DelayActionEffect","timeout","FocusElementEffect","getElement","elementToFocus","focus","FocusTextAreaEffect","_","selectionEnd","maxHeight","oldHeight","getBoundingClientRect","targetStyleOverflow","parentElement","old","current","newHeight","paddingBottom","AutoSizeEffect","ScrollToBottomEffect","factory","exports","getSize","getStyleSize","num","isValid","logError","measurements","measurementsLength","getZeroSize","innerWidth","innerHeight","outerWidth","outerHeight","measurement","getStyle","elem","isSetup","isBoxSizeOuter","div","borderStyle","borderWidth","boxSizing","body","display","offsetWidth","isBorderBox","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderHeight","borderTopWidth","borderBottomWidth","isBorderBoxSizeOuter","styleWidth","styleHeight","EvEmitter","this","proto","on","eventName","events","_events","listeners","once","onceEvents","_onceEvents","onceListeners","off","emitEvent","isOnce","allOff","require","Unipointer","bindStartEvent","_bindStartEvent","unbindStartEvent","isAdd","bindMethod","startEvent","PointerEvent","handleEvent","method","getTouch","touches","touch","identifier","pointerIdentifier","onmousedown","button","_pointerDown","ontouchstart","changedTouches","onpointerdown","pointer","isPointerDown","pointerId","pointerDown","_bindPostStartEvents","postStartEvents","mousedown","touchstart","pointerdown","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","ontouchmove","pointerMove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerUp","_pointerReset","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","getPointerPoint","pageX","pageY","Unidragger","bindHandles","_bindHandles","unbindHandles","touchAction","_touchActionValue","handles","handle","isOkay","okayPointerDown","pointerDownPointer","pointerDownBlur","cursorNodes","TEXTAREA","INPUT","SELECT","clickTypes","radio","checkbox","submit","file","isCursorNode","isClickType","focused","activeElement","canBlur","moveVector","_dragPointerMove","_dragMove","isDragging","hasDragStarted","_dragStart","abs","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","dragStart","dragMove","bind","dragEnd","onclick","isIgnoringMouseUp","staticClick","Draggabilly","jQuery","$element","defaults","option","_create","positionValues","relative","absolute","fixed","_getPosition","startPoint","dragPoint","startPosition","onPointerMove","onPointerUp","enable","setHandles","querySelectorAll","dispatchEvent","emitArgs","dispatchJQueryEvent","jquery","$event","Event","trigger","_getPositionCoord","_addTransformPosition","styleSide","measure","parentSize","matrixValues","xIndex","onPointerDown","isEnabled","measureContainment","setLeftTop","animate","getContainer","elemSize","containerSize","elemRect","containerRect","borderSizeX","borderSizeY","relativeStartPosition","containSize","containment","isElement","HTMLElement","dragX","dragY","gridX","gridY","applyGrid","containDrag","axis","drag","rel","positionDrag","animateFrame","setPosition","disable","destroy","removeData","_init","bridget","isDragged","addIsDraggedClass","removeIsDraggedClass","minLeft","minTop","maxLeft","maxTop","preserve","dimensions","DraggableEffect","RESIZE_EXPAND_POSITIVE","RESIZE_EXPAND_NEGATIVE","RESIZE_OFFSET","Resizable","_element","_createResizeTriggers","_attachHandlers","_edges","edge","append","_createResizeTrigger","cursor","dataset","resizeTrigger","_currentMousePosition","expandDirX","expandDirY","_drag","_initialDimensions","_initialCoordinates","ΔX","ΔY","_translateMouseMove","minWidth","minHeight","projectedWidth","projectedLeft","projectedHeight","projectedTop","isMinWidthReached","isMinHeightReached","isMaxWidthReached","isMaxHeightReached","ResizableEffect","MapShim","getIndex","some","class_1","__entries__","entries","clear","callback","ctx","_i","_a","global$1","requestAnimationFrame$1","trailingTimeout","throttle","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","REFRESH_DELAY","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","addObserver","observer","connect_","removeObserver","observers","disconnect_","changesDetected","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","observe","attributes","childList","characterData","subtree","disconnect","_b","propertyName","isReflowProperty","getInstance","instance_","defineConfigurable","getWindowOf","ownerGlobal","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","getBordersSize","positions","getPaddings","paddings","positions_1","getSVGContentRect","bbox","getBBox","getHTMLElementContentRect","horizPad","vertPad","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getContentRect","createReadOnlyRect","Constr","DOMRectReadOnly","rect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","ResizeObserverEntry","rectInit","contentRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","observation","ResizeObserver","widthFromConfig","heightFromConfig","elementToSize","appHeightPatched","appWidthPatched","memLeft","memTop","heightApplied","widthApplied","appPositionTop","appPositionLeft","appSizeHeight","appSizeWidth","SizableEffect","conditionFn","eventType","targetElement","ToggleClassNameEffect","attachFilesModeOn","attachFilesModeOff","attachedFilesCount","HOST","LOCAL","DEV","TEST","STAGE","getAPIEndpoint","host","location","PUZZEL_EUWA_CHAT_ENDPOINT","getBaseURL","PUZZEL_EUWA_BASE","getSurveyEndpoint","PUZZEL_CUSTOMER_INSIGHT_BASE","fileAttachment","elementWrapper","iconThumbnail","picture","src","URL","createObjectURL","nBytes","sOutput","aMultiples","nMultiple","nApprox","toFixed","onload","revokeObjectURL","filename","filesize","prepend","innerHTML","clearAttachedFiles","imgThumbnail","RemoveNodeChildrenEffect","FILE_TYPES","IMAGE_JPEG","IMAGE_PNG","IMAGE_GIF","IMAGE_SVG","IMAGE_AVIF","IMAGE_WEBP","PLAIN_TEXT","PDF","MAX_FILE_SIZE_IN_BYTES","MAX_FILE_SIZE_IN_MB","showNotificationFactory","hideNotification","HttpError","NotAvailableError","HttpClient","post","endpoint","payload","_request","postMultipartFormData","formData","FormData","signal","fetch","_parseJSON","params","createQueryString","encodeURIComponent","headers","response","ok","status","statusText","dictionary","translations","defaultDictionary","setupDictionary","customLanguageUrl","loadDictionary","tr","path","translation","currentDictionary","currentKey","externalDictionaryLoader","defaultDictionaryLoader","defaultDictionaryResolve","translationsEndpoint","getTranslationsEndpoint","Promise","resolve","AttachFileEffect","attachmentPreview","files","maxFileSize","EmojiMatchHeightEffect","editor","RemoveAttributeEffect","attribute","CaptchaService","httpClient","_http","_endpoint","getConfig","getCode","customerKey","OIDC","redirectToSSO","currentUrl","href","authState","authUrl","_createAuthUrl","preserveAuthCode","urlParams","URLSearchParams","search","authCode","currentUrlNoAuthCode","history","pushState","title","hasAuthCode","hasAuthCodeParam","getRedirectUrl","endpointAuthorize","_createUrlParams","clientId","client_id","acrValues","acr_values","redirect_uri","response_type","NotificationService","_window","_document","_Notification","Notification","_permissionRequested","notify","showWhenFocused","visibilityState","requestPermissions","permission","_hasSavedNotification","_resetTimeout","_createNotification","requestPermission","_createTimeout","_close","timeoutId","_notifications","clearTimeout","_saveNotification","_click","close","MessageService","notifications","_chatBase","_controller","getMessages","session","lastMessageId","newMessages","_removePollingDuplicates","_getMessageData","_notify","send","chatConfigId","abort","removeMessageData","hasNewMessages","role","msgNotificationText","icon","existing","userId","ChatService","messageService","notificationService","_messageService","_notificationService","captcha","denyArchiving","startForm","configQueueKey","showAgentLoggedOnInIntro","showAgentLoggedOn","showAgentActiveInIntro","showAgentActive","showNumberInQueueInIntro","showNumberInQueue","showIpAddressInIntro","showIpAddress","showVariables","msgWelcomeHeader","msgWelcome","authConnectionName","authMapping","initialQueueKey","intro","ticket","chatIssue","auth","code","connectionName","mapping","oidcRedirectUrl","removeChatData","iqSessionId","ssoNickName","ssoChatId","lastQueuePositionTime","keepMessages","nickNameParam","startSurvey","baseSurveyData","_getBaseSurveyData","offerSurvey","_surveyQueueKey","registerSurvey","surveyId","rating","parentSessionId","surveyComment","surveyResult","sendTranscript","recipient","emailSubject","fromEmailDisplayName","emailPreText","preText","emailPostText","postText","emailLogoUrl","emailLogoLink","emailLogoAlt","topBackgroundColor","topLineColor","bottomLineColor","emailTextStyle","textStyle","timeZoneId","toEmailAddress","logo","alt","layout","updateVariables","obsoleteData","surveyQuestion","secondsToMinutes","seconds","floor","QueueService","getQueueDetails","visualQueueId","_transformQueueDetails","getQueuePosition","getTimeModule","timeId","waitTimeAverage","waitTimeMax","isEvent","getConnectedAgents","joinedAgents","disconnectedAgents","userInfo","getUserInfo","agent","isConnectedToAgent","hasDisconnection","isTransferring","wasConnected","lastTransferIndex","postTransferMessages","isWaitingForTransfer","getTransferData","transferContent","queueDescription","lastConnectedAgent","agentsConnected","userType","agentEventTyping","lastMessage","timesUp","isEventMessage","chatterTyping","chatterIdle","agentTyping","agentIdle","hasBeenConnectedWithHuman","wasConnectedWithHuman","chatInputHeightLock","chatInputHeightUnlock","resetAttachedFileName","elementSelector","setAttachedFileName","startChat","moduleLoader","showForm","tryLoginWithOIDC","showStartScreen","showCaptchaScreen","initiateChat","loadInitialConfig","sendTrackerData","showChatScreen","showRejectScreen","_startChat","selectedTimeId","timeId2Map","configTimeId2Map","configTimeId","isMappedQueueKey","isContactcentreClosed","exit","startQueueKey","_contactCentreClosed","errorMessage","reject","mappedQueueKey","getMappedQueueKey","timeId2QueueKeyMapping","timeModule","endChatByAgent","sendOnEnterKey","shiftKey","sendMessage","inputInteractionEvent","messageContent","sendMessageFactory","sendFile","fileInput","queueMessages","AbortController","sendOption","optionType","sendEvent","terminateChat","confirm","isSurveyEnabled","surveyOnConnected","wasActive","isEligibleForSurvey","loadSurvey","disconnectChat","finalizeChat","sendEmailAutomatically","finalize","showEndScreen","showBubble","updateChatMessages","humanMessages","isChatEnded","elementToScroll","customerInsightSurveyId","isCustomerInsight","getSurveyQueueKey","lastConnectedUserId","showSurveyScreen","lastTransfer","setQueueDetails","tracks","getTrackerData","clearTrackerData","SurveySubmitEffect","queryTolerance","markAsMinimized","previousView","markAsMaximized","getCurrentView","getPreviousView","showDelayedStarter","surveyEffects","lockScrollMobile","scrollAction","disableScrollOnMobile","enableScrollOnMobile","showView","enableSizing","enableDragging","enableResizing","isDraggable","preserveChatWindowRect","isResizable","minimize","currentView","maximize","timeFx","polling","stopped","invokeAction","updateChatEvents","onAgentIsTyping","onAgentConnected","isTypingEvent","isAgentConnected","PollingService","queueService","_queueService","_registerProvider","_subscriptions","subscription","suspend","_suspendedSubscriptions","restore","nextViewAction","CloseIcon","MinimizeIcon","styleVariables","alerts","buttonBorder","buttonBorderFocus","buttonBorderHover","form","defaultFocus","shadowColor","hasBorder","borderColor","defaultFocusBoxShadow","clipMask","shape","darken","textarea","resize","controls","stroke","Controls","controlsSheet","buttonSheet","notificationStyles","notificationSheet","chatContainer","controlsHeight","chatContent","ChatContainer","chatContainerSheet","chatContentSheet","validateCaptchaCode","expectedCode","enteredCode","captchaScreen","CaptchaScreen","initiating","isInitiating","captchaScreenSheet","formSheet","inputSheet","codeInputHandler","getDefaultWhiteList","whiteList","onAttr","onIgnoreAttr","REGEXP_URL_JAVASCRIPT","safeAttrValue","trimRight","parseStyle","cssLength","isParenthesisOpen","lastPos","retCSS","addNewAttr","ret","isNull","shallowCopyObject","FilterCSS","DEFAULT","me","sourcePosition","check","isWhite","filterCSS","html","xss","spaceIndex","reg","exec","getDefaultCSSWhiteList","abbr","address","article","aside","audio","bdi","bdo","big","blockquote","caption","center","cite","col","colgroup","dd","del","details","dl","dt","figcaption","figure","footer","header","hr","img","ins","li","mark","nav","ol","pre","section","small","span","summary","strike","table","tbody","td","tfoot","th","thead","tt","ul","video","defaultCSSFilter","onTag","tag","onIgnoreTag","onTagAttr","onIgnoreTagAttr","escapeHtml","REGEXP_LT","REGEXP_GT","cssFilter","friendlyAttrValue","REGEXP_DEFAULT_ON_TAG_ATTR_4","REGEXP_DEFAULT_ON_TAG_ATTR_7","REGEXP_DEFAULT_ON_TAG_ATTR_8","escapeAttrValue","REGEXP_QUOTE","REGEXP_QUOTE_2","REGEXP_ATTR_VALUE_1","REGEXP_ATTR_VALUE_COLON","REGEXP_ATTR_VALUE_NEWLINE","escapeQuote","unescapeQuote","escapeHtmlEntities","replaceUnicode","fromCharCode","escapeDangerHtml5Entities","clearNonPrintableCharacter","str2","charCodeAt","onIgnoreTagStripAll","StripTagBody","tags","isRemoveAllTag","isRemoveTag","removeList","posStart","isClosing","rethtml","pos","stripCommentTag","retHtml","stripBlankChar","chars","char","getTagName","tagName","parseTag","tagStart","quoteStart","currentPos","currentTagName","currentHtml","chariterator","ic","REGEXP_ILLEGAL_ATTR_NAME","parseAttr","retAttrs","tmpName","addAttr","v","findNextEqual","findBeforeEqual","stripQuoteWrap","isQuoteWrapString","parser","getAttrs","closing","FilterXSS","stripIgnoreTag","allowList","allowCommentTag","stripIgnoreTagBody","info","attrs","whiteAttrList","attrsHtml","isWhiteAttr","filterXSS","isWorkerEnv","DedicatedWorkerGlobalScope","State","token","jr","jd","accepts","tokenOrState","nextState","makeState","templateState","takeT","makeAcceptingState","makeT","startState","makeRegexT","regex","_nextState","makeMultiT","makeBatchT","transitions","makeChainT","endState","defaultStateFactory","DOMAIN","LOCALHOST","TLD","NUM","PROTOCOL","MAILTO","WS","NL","OPENBRACE","OPENBRACKET","OPENANGLEBRACKET","OPENPAREN","CLOSEBRACE","CLOSEBRACKET","CLOSEANGLEBRACKET","CLOSEPAREN","AMPERSAND","APOSTROPHE","ASTERISK","AT","BACKSLASH","BACKTICK","CARET","COLON","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","SEMI","SLASH","TILDE","UNDERSCORE","SYM","freeze","tlds","LETTER","EMOJI","EMOJI_VARIATION","DIGIT","init$2","customProtocols","S_START","S_NUM","S_DOMAIN","S_DOMAIN_HYPHEN","S_WS","DOMAIN_REGEX_TRANSITIONS","makeDomainState","makeNearDomainState","S_PROTOCOL_FILE","S_PROTOCOL_FTP","S_PROTOCOL_HTTP","S_MAILTO","S_PROTOCOL_SECURE","S_FULL_PROTOCOL","S_FULL_MAILTO","S_CUSTOM_PROTOCOL","run$1","iterable","stringToArray","charCount","tokens","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","e","first","second","defaultProtocol","format","formatHref","nl2br","validate","truncate","ignoreTags","Options","ignoredTags","toHref","formatted","formattedHref","getObject","operator","optionValue","inherits","child","extended","MultiToken","isLink","startIndex","tk","endIndex","toObject","protocol","createTokenClass","Token","MailtoEmail","Email","Text","Nl","Url","hasProtocol","hasSlashSlash","multi","Base","init$1","S_PROTOCOL","S_PROTOCOL_SLASH","S_PROTOCOL_SLASH_SLASH","S_DOMAIN_DOT","S_TLD","S_TLD_COLON","S_TLD_PORT","S_URL","S_URL_NON_ACCEPTING","S_URL_OPENBRACE","S_URL_OPENBRACKET","S_URL_OPENANGLEBRACKET","S_URL_OPENPAREN","S_URL_OPENBRACE_Q","S_URL_OPENBRACKET_Q","S_URL_OPENANGLEBRACKET_Q","S_URL_OPENPAREN_Q","S_URL_OPENBRACE_SYMS","S_URL_OPENBRACKET_SYMS","S_URL_OPENANGLEBRACKET_SYMS","S_URL_OPENPAREN_SYMS","S_EMAIL_DOMAIN","S_EMAIL_DOMAIN_DOT","S_EMAIL","S_EMAIL_COLON","S_EMAIL_PORT","S_MAILTO_EMAIL","S_MAILTO_EMAIL_NON_ACCEPTING","S_LOCALPART","S_LOCALPART_AT","S_LOCALPART_DOT","S_NL","qsAccepting","qsNonAccepting","localpartAccepting","run","multis","textTokens","secondState","multiLength","parserCreateMultiToken","Multi","subtokens","startIdx","endIdx","INIT","scanner","pluginQueue","initialized","utils","tokenize","HTML5NamedCharRefs","nbsp","HEXCHARCODE","CHARCODE","NAMED","EntityParser","named","entity","WSP","ALPHA","CRLF","isSpace","isAlpha","preprocessInput","EventedTokenizer","delegate","entityParser","mode","line","tagNameBuffer","states","beforeData","peek","isIgnoredEndTag","transitionTo","markTagStart","consume","beginData","finishData","appendToData","consumeCharRef","tagOpen","beginStartTag","appendToTagName","markupDeclarationOpen","beginComment","maybeDoctype","beginDoctype","doctype","beforeDoctypeName","appendToDoctypeName","doctypeName","endDoctype","afterDoctypeName","nextSixChars","isPublic","isSystem","afterDoctypePublicKeyword","doctypePublicIdentifierDoubleQuoted","appendToDoctypePublicIdentifier","doctypePublicIdentifierSingleQuoted","afterDoctypePublicIdentifier","betweenDoctypePublicAndSystemIdentifiers","doctypeSystemIdentifierDoubleQuoted","appendToDoctypeSystemIdentifier","doctypeSystemIdentifierSingleQuoted","afterDoctypeSystemIdentifier","commentStart","finishComment","appendToCommentData","commentStartDash","commentEndDash","commentEnd","finishTag","endTagName","beforeAttributeName","reportSyntaxError","beginAttribute","appendToAttributeName","attributeName","beginAttributeValue","finishAttributeValue","afterAttributeName","beforeAttributeValue","appendToAttributeValue","attributeValueDoubleQuoted","attributeValueSingleQuoted","attributeValueUnquoted","afterAttributeValueQuoted","selfClosingStartTag","markTagAsSelfClosing","endTagOpen","beginEndTag","tokenizePart","tokenizeEOF","handler","flushData","count","Tokenizer","startLine","startColumn","tokenizer","_currentAttribute","currentAttribute","addLocInfo","loc","publicIdentifier","systemIdentifier","selfClosing","isQuoted","syntaxError","linkify","StartTag","EndTag","Chars","Comment","Doctype","linkifyHtml","linkifiedTokens","linkified","isIgnored","preskipLen","skipTagTokens","linkifedChars","linkifyChars","_token","attrsToStrings","escapeText","_opts$resolve","attributeArray","attr","skippedTokens","stackCount","escapeAttr","attrStrs","sanitizeHTML","createHyperlinks","convertNewLines","displayHTML","isConnectedToBot","isBotMessage","getMessageReaction","reaction","isReactionEnabled","getMaxChars","maxchars","AgentAvatarIcon","BotAvatarIcon","user","avatarUrl","isAvatarValid","AgentAvatar","messageMetaStyles","metaStyles","MetaDataTime","toLocaleTimeString","hour","minute","MetaDataText","defaultName","MessageMeta","metaSheet","reverse","Avatar","EmptyAvatar","mediaCard","MessageMediaCard","heading","mediaCardSheet","mediaCardStyles","positionClass","validateUrl","sendReaction","cancelOrReact","currentReaction","ThumbsUp","selected","ThumbsDown","reactionStyles","reactions","fill","MessageReaction","isOption","reactionsSheet","messageStyles","agentBubbleShape","chatterBubbleShape","isolate","Message","messageSheet","messageContentSheet","isReactionShown","agentName","agentStyles","userStyles","messageTextStyles","parseOption","messageInfoStyles","messageInfo","MessageInfo","messageInfoSheet","clickHandler","selectedOption","optionChoice","_openExternalLink","_toggleActionButton","_jsonEncode","_nameOfOption","cancelOldOption","cancelled","selectNewOption","isCancelled","isNewOption","open","submitHandler","optionIndex","messageOptionStyles","optionFocus","optionHover","disabledOption","selectedOptionHover","optionBorder","messageOption","messageOptionSeparator","messageOptionSection","ExternalLinkIcon","MessageSeparator","messageOptionSeparatorSheet","TextOption","isChecked","onClick","contentClassNames","JSONOption","findSelectedOptions","optionResults","previouslySelectedOption","messageData","MessageOption","messageOptionSheet","messageOptionSectionSheet","optionResult","selectedOptionName","selectedOptionTitle","previouslySelectedOptionTitle","msgOptionHeader","msgOptionHeaderConfirmed","showCancel","canCancel","showHeader","showConfirmedMsg","headerIntro","headerConfirmed","headerText","headerConfirmedText","sendingOption","canSubmit","flatMap","optionName","OptionElement","getChatVariables","introVariables","messageIntroStyles","messageIntro","MessageIntro","messageIntroSheet","welcomeHeader","welcomeBody","variable","messageQueueStyles","messageQueue","MessageQueue","messageQueueSheet","typingIndicationStyles","typing","circle","animationName","animationDuration","animationTimingFunction","animationIterationCount","animationDelay","TypingIndication","typingSheet","circleSheet","typingEvents","lastTypingEvent","setStatusText","statusNoName","replaceContent","getStatusText","statusKey","messageList","MessageList","showIntro","isChatting","messageCount","messageListSheet","jssInstance","gridRepeater","introMessages","toggleEmojiWindow","setEmojiWindowClosedByBlur","setEmojiWindowVisibility","addEmoji","emoji","selectionStart","setCurrentEmojiIndex","EmojisIcon","navigate","currentIndex","keyCode","emojis","hideEmojisWindowEffect","setCurrentEmojiIndexAction","focusEmojiEffect","focusInputEffect","nextIndex","emojiBlur","emojiWindow","isEmojisButton","emojiSize","emojiWindowWidth","Emojis","emojisSheet","disabled","wait","typeMessage","PaperClipIcon","ChatLoadingIcon","Editor","editorSheet","textareaSheet","sendingFile","isLoading","attachmentsEnabled","messageLength","isChattingWithBot","isMessageLengthShown","areEmojisEnabled","defaultHeightTypingStyle","defaultHeightAttachmentStyle","attachmentMode","fileTypes","isAttachmentsEnabled","ceil","ChatView","createInput","inputMaxlength","maxLength","maxlength","valueExtractor","createSelect","inputItems","Input","inputStyle","inputs","patchedFormState","inputValue","setNewValue","startScreen","StartScreen","startScreenSheet","description","showDenyArchiving","Star","getRatings","ratings","surveySubmit","starPathStroke","important","starPathFill","radioDefault","radioFocus","backgroundColor","textColor","surveyForm","customerInsight","SurveyForm","surveyFormSheet","surveyStyles","checkedValue","ratingId","checkedClass","checkedHandler","label","Survey","customerInsightSheet","solutionId","apiUrl","embedded","agentId","consumerEmail","consumerSession","clientReference","transcriptSubmit","endScreen","EndChat","endScreenSheet","alertsSheet","isArchivingDenied","sendingTranscript","isSendingTranscript","emailInputHandler","emailValue","isInputDisabled","isSubmitDisabled","rejectScreen","chatStyleVariables","RejectScreen","rejectScreenSheet","msgTimeClosed","showTimeClosed","StateProvider","withStylesFactory","providers","provide","parseConditions","transformField","conditions","field","expected","transformedField","fieldOperator","evaluateConditions","fieldValue","subtractFields","evaluateCondition","fields","minuend","subtrahends","actual","PageTracker","_trackPage","_setTrackerData","maxTracks","pages","time","Bootstrapper","methods","_methods","_hasSession","_configureClient","_setupErrorHandling","_trySSOLogin","_checkOpenningHours","_checkQueueStatusConditions","_setupTranslations","_setupPageTracker","_getState","_getWindowRect","_delayStartButtonShow","_publishInitEvents","execute","step","ssoLoggedIn","queueDetails","isQueueAvailable","_applyTheme","defaultStartUp","initialState","isContinued","clientTheme","defaultTheme","starterRotation","starterIconRotation","delaySeconds","ChatBridge","getState","_setState","_withInternalMiddleware","services","_expose","api","_withExternalMiddleware","oldVariables","updateConfig","setter","updateSystemVariables","enteredFormName","enteredChatId","enteredFormIssue","selectedQueueKey","patchStartFormInput","_plainReturn","service","plain","_triggerRendering","PuzzelChatClient","bubble","starter","_chatBridge","_modules","_bridge","load","_prepareBoundMethods","_bootstrap","_attach","_registerBridgeInterface","_loadStarter","_loadSurvey","all","_attachStyleSheet","_attachApplication","Starter","_dispatch","_getChatContainer","_getCurrentView","_rootNode","$registerInterface","views","deviceType","renderNode"],"mappings":"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AA,KAAK,EAAEA,KAzB8B;EA0BrCC,EAAAA,KAAK,EAAEA,KA1B8B;EA2BrCC,EAAAA,MAAM,EAAEA,MA3B6B;EA4BrCC,EAAAA,GAAG,EAAEA,GA5BgC;EA6BrCC,EAAAA,MAAM,EAAEA,MA7B6B;EA8BrCC,EAAAA,WAAW,EAAEA,WA9BwB;EA+BrCC,EAAAA,MAAM,EAAEA,MA/B6B;EAgCrCC,EAAAA,OAAO,EAAEA,OAhC4B;EAiCrCC,EAAAA,IAAI,EAAEA,IAjC+B;EAkCrCC,EAAAA,IAAI,EAAEA,IAlC+B;EAmCrCC,EAAAA,KAAK,EAAEA,KAnC8B;EAoCrCC,EAAAA,KAAK,EAAEA,KApC8B;EAqCrCC,EAAAA,KAAK,EAAEA,KArC8B;EAsCrCC,EAAAA,IAAI,EAAEA,IAtC+B;EAuCrCC,EAAAA,KAAK,EAAEA,KAvC8B;EAwCrCC,EAAAA,KAAK,EAAEA,KAxC8B;EAyCrCC,EAAAA,UAAU,EAAEA,UAzCyB;EA0CrCC,EAAAA,GAAG,EAAEA;EA1CgC,CAAd,CAAxB;EA8CA;EACA;EACA;EACA;EACA;;EACA,IAAIE,IAAI,GAAG;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GA99CW,CA89CPjzE,KA99CO,CA89CD,GA99CC,CAAX;EAg+CA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;;EAEA,IAAIkzE,MAAM,GAAG,6qPAAb;;EAEA,IAAIC,KAAK,GAAG,o9CAAZ;;EAEA,IAAIC,eAAe,GAAG,QAAtB;;EAEA,IAAIC,KAAK,GAAG,IAAZ;EACA,IAAI3oE,KAAK,GAAG,IAAZ;EACA;EACA;EACA;EACA;;EAEA,SAAS4oE,MAAT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"}