{"version":3,"file":"publicTranscribe.861ddb8f8bab1b853f93.js","mappings":"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","sources":["webpack://epiphan/webpack/runtime/chunk loaded","webpack://epiphan/webpack/runtime/create fake namespace object","webpack://epiphan/./src/constants/index.ts","webpack://epiphan/./src/util/isNil.ts","webpack://epiphan/./assets/img/streaming-service-icons/facebook.svg","webpack://epiphan/./assets/img/streaming-service-icons/facebook-small.svg","webpack://epiphan/./assets/img/streaming-service-icons/youtube.svg","webpack://epiphan/./assets/img/streaming-service-icons/youtube-small.svg","webpack://epiphan/./assets/img/streaming-service-icons/twitch.svg","webpack://epiphan/./assets/img/streaming-service-icons/twitch-small.svg","webpack://epiphan/./assets/img/streaming-service-icons/rtmp.svg","webpack://epiphan/./assets/img/streaming-service-icons/rtmp-small.svg","webpack://epiphan/./assets/img/upgrade-to-pro-icons/batch-for-streaming.svg","webpack://epiphan/./assets/img/upgrade-to-pro-icons/device-grouping.svg","webpack://epiphan/./assets/img/upgrade-to-pro-icons/high-definition-video.svg","webpack://epiphan/./assets/img/device-preset-sections/afu.svg","webpack://epiphan/./assets/img/device-preset-sections/epiphan_cloud.svg","webpack://epiphan/./assets/img/device-preset-sections/channels.svg","webpack://epiphan/./assets/img/device-preset-sections/cms.svg","webpack://epiphan/./assets/img/device-preset-sections/displays.svg","webpack://epiphan/./assets/img/device-preset-sections/edid.svg","webpack://epiphan/./assets/img/device-preset-sections/frontscreen.svg","webpack://epiphan/./assets/img/device-preset-sections/network.svg","webpack://epiphan/./assets/img/device-preset-sections/sources.svg","webpack://epiphan/./assets/img/device-preset-sections/system.svg","webpack://epiphan/./assets/img/team-presets-free-plan-placeholder/file.svg","webpack://epiphan/./assets/img/virtual-device-icons/guide-icon.svg","webpack://epiphan/./assets/img/virtual-device-icons/virtual-device-icon.svg","webpack://epiphan/./src/util/icons.ts","webpack://epiphan/./src/components/DeviceDetails/TranscriberDevice/Text/TranscribingText.tsx","webpack://epiphan/./src/data/Status.ts","webpack://epiphan/./src/util/noop.ts","webpack://epiphan/./src/util/LongPoll.ts","webpack://epiphan/./src/api/util/Url.ts","webpack://epiphan/./src/api/util/queryStringSorted.ts","webpack://epiphan/./src/api/constants.ts","webpack://epiphan/./src/util/typeGuards.ts","webpack://epiphan/./src/api/Chain.ts","webpack://epiphan/./src/api/Service.ts","webpack://epiphan/./src/util/timeConverter.ts","webpack://epiphan/./src/util/Cache.ts","webpack://epiphan/./src/api/Api.ts","webpack://epiphan/./src/data/Dispatcher.ts","webpack://epiphan/./src/api/CirrusApi.ts","webpack://epiphan/./src/components/DeviceDetails/TranscriberDevice/Model/TranscribingLP.ts","webpack://epiphan/./src/api/CirrusPublicTranscribeApi.ts","webpack://epiphan/./src/components/Root/publicTranscribe.tsx","webpack://epiphan/./src/util/parseLocationSearchParamsToJSON.ts","webpack://epiphan/./src/publicTranscribe.ts","webpack://epiphan/webpack/bootstrap","webpack://epiphan/webpack/runtime/compat get default export","webpack://epiphan/webpack/runtime/define property getters","webpack://epiphan/webpack/runtime/ensure chunk","webpack://epiphan/webpack/runtime/global","webpack://epiphan/webpack/runtime/hasOwnProperty shorthand","webpack://epiphan/webpack/runtime/make namespace object","webpack://epiphan/webpack/runtime/node module decorator","webpack://epiphan/webpack/runtime/runtimeId","webpack://epiphan/webpack/runtime/jsonp chunk loading","webpack://epiphan/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","const DEFAULT_ASPECT_RATIO = {\n w: 16,\n h: 9,\n};\n\n/**\n * @readonly\n * @enum {string}\n */\nenum THEME {\n DEFAULT = 'default',\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n SUCCESS = 'success',\n INFO = 'info',\n WARNING = 'warning',\n DANGER = 'danger',\n WHITE = 'white',\n}\n\n/**\n * @readonly\n * @enum {string}\n */\nenum VARIANT {\n SOLID = 'solid',\n OUTLINE = 'outline',\n LINK = 'link',\n LINK_UNDERLINE = 'link-underline',\n TEXT = 'text',\n}\n\n/**\n * @readonly\n * @enum {string}\n */\nenum SIZE {\n XS = 'xs',\n S = 's',\n M = 'm',\n L = 'l',\n XL = 'xl',\n XXL = 'xxl',\n}\n\n/**\n * @readonly\n * @enum {string}\n */\nenum SORT_DIRECTION {\n /**\n * Sort items in ascending order.\n * This means arranging from the lowest value to the highest (e.g. a-z, 0-9).\n */\n ASC = 'ASC',\n\n /**\n * Sort items in descending order.\n * This means arranging from the highest value to the lowest (e.g. z-a, 9-0).\n */\n DESC = 'DESC',\n}\n\nenum UserRole {\n Master = 'master',\n Owner = 'owner',\n Operator = 'operator',\n Editor = 'editor',\n}\n\n/**\n * @readonly\n * @enum {string}\n */\nconst USER_ROLE_NAME_BY_TYPE = {\n [UserRole.Master]: 'Owner',\n [UserRole.Owner]: 'Admin',\n [UserRole.Operator]: 'Operator',\n [UserRole.Editor]: 'Editor',\n};\n\nenum UserLoginType {\n Facebook = 'fb',\n Google = 'google',\n Cognito = 'cognito',\n // Pending login type appears when you invite a new team member\n Pending = '',\n}\n\n/**\n * @readonly\n * @enum {string}\n */\nconst NODE_NAME = {\n INPUT: 'INPUT',\n};\n\n/**\n * KeyboardEvent.code\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code}\n */\nconst enum KeyboardCode {\n Enter = 'Enter',\n NumpadEnter = 'NumpadEnter',\n Tab = 'Tab',\n Escape = 'Escape',\n Space = 'Space',\n KeyA = 'KeyA',\n}\n\nexport {\n DEFAULT_ASPECT_RATIO,\n THEME,\n VARIANT,\n SIZE,\n SORT_DIRECTION,\n UserRole,\n USER_ROLE_NAME_BY_TYPE,\n UserLoginType,\n NODE_NAME,\n KeyboardCode,\n};\n","type Nullish = undefined | null;\n\n/**\n * Value is `undefined` or `null`\n *\n * ```typescript\n * isNil(undefined); //=> true\n * isNil(null); //=> true\n * isNil(false); //=> false\n * isNil(0); //=> false\n * isNil(''); //=> false\n * ```\n */\nfunction isNil(value?: any): value is Nullish {\n return typeof value === 'undefined' || value === null;\n}\n\nexport {isNil};\n","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"facebook\",\n \"use\": \"facebook-usage\",\n \"viewBox\": \"0 0 76 76\",\n \"content\": \"\\n \\n\\n \\n \\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"facebook-small\",\n \"use\": \"facebook-small-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"youtube\",\n \"use\": \"youtube-usage\",\n \"viewBox\": \"0 0 22 22\",\n \"content\": \"\\n \\n\\n \\n \\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"youtube-small\",\n \"use\": \"youtube-small-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"twitch\",\n \"use\": \"twitch-usage\",\n \"viewBox\": \"0 0 144 144\",\n \"content\": \"\\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"twitch-small\",\n \"use\": \"twitch-small-usage\",\n \"viewBox\": \"0 0 172 172\",\n \"content\": \"\\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"rtmp\",\n \"use\": \"rtmp-usage\",\n \"viewBox\": \"0 0 32 32\",\n \"content\": \"\\n \\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"rtmp-small\",\n \"use\": \"rtmp-small-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\\n \\n \\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"batch-for-streaming\",\n \"use\": \"batch-for-streaming-usage\",\n \"viewBox\": \"0 0 29 29\",\n \"content\": \"\\n \\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"device-grouping\",\n \"use\": \"device-grouping-usage\",\n \"viewBox\": \"0 0 29 29\",\n \"content\": \"\\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"high-definition-video\",\n \"use\": \"high-definition-video-usage\",\n \"viewBox\": \"0 0 29 29\",\n \"content\": \"\\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"afu\",\n \"use\": \"afu-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"epiphan_cloud\",\n \"use\": \"epiphan_cloud-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"channels\",\n \"use\": \"channels-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\\n \\n \\n \\n \\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cms\",\n \"use\": \"cms-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\\n \\n \\n \\n \\n \\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"displays\",\n \"use\": \"displays-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"edid\",\n \"use\": \"edid-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\\n \\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"frontscreen\",\n \"use\": \"frontscreen-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"network\",\n \"use\": \"network-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"sources\",\n \"use\": \"sources-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"system\",\n \"use\": \"system-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\\n \\n \\n \\n \\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"file\",\n \"use\": \"file-usage\",\n \"viewBox\": \"0 0 49 56\",\n \"content\": \"\\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"guide-icon\",\n \"use\": \"guide-icon-usage\",\n \"viewBox\": \"0 0 22 22\",\n \"content\": \"\\n \\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"virtual-device-icon\",\n \"use\": \"virtual-device-icon-usage\",\n \"viewBox\": \"0 0 80 77\",\n \"content\": \"\\n \\n \\n \\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","/* eslint-disable max-classes-per-file */\nimport React from 'react';\nimport {SIZE, THEME} from 'app/constants';\nimport {isNil} from 'app/util/isNil';\nimport {Callback} from 'app/types/common';\nimport accountBoxIcon from '../../assets/img/svg-icons/svg-account-box.svg';\nimport addPaymentMethodIcon from '../../assets/img/svg-icons/svg-add-payment-method.svg';\nimport archiveIcon from '../../assets/img/svg-icons/svg-archive.svg';\nimport arrowDownIcon from '../../assets/img/svg-icons/svg-arrow-down.svg';\nimport arrowLeftIcon from '../../assets/img/svg-icons/svg-arrow-left.svg';\nimport arrowLightRight from '../../assets/img/svg-icons/svg-arrow-light-right.svg';\nimport arrowRightIcon from '../../assets/img/svg-icons/svg-arrow-right.svg';\nimport arrowTwoWayIcon from '../../assets/img/svg-icons/svg-arrow-two-way.svg';\nimport arrowUpIcon from '../../assets/img/svg-icons/svg-arrow-up.svg';\nimport attention from '../../assets/img/svg-icons/svg-attention.svg';\nimport audioControlIcon from '../../assets/img/svg-icons/svg-audio-control.svg';\nimport backIcon from '../../assets/img/svg-icons/svg-back.svg';\nimport backwardIcon from '../../assets/img/svg-icons/svg-arrow-fat-left.svg';\nimport bellIcon from '../../assets/img/svg-icons/svg-bell.svg';\nimport bracketLeftIcon from '../../assets/img/svg-icons/svg-bracket-left.svg';\nimport bracketRightIcon from '../../assets/img/svg-icons/svg-bracket-right.svg';\nimport calendarIcon from '../../assets/img/svg-icons/svg-calendar.svg';\nimport caretThinIcon from '../../assets/img/svg-icons/svg-caret-thin.svg';\nimport caretTriangleIcon from '../../assets/img/svg-icons/svg-caret-triangle.svg';\nimport chainIcon from '../../assets/img/svg-icons/svg-chain.svg';\nimport checkCircleIcon from '../../assets/img/svg-icons/svg-check-circle.svg';\nimport checkboxCheckedIcon from '../../assets/img/svg-icons/svg-checkbox-checked.svg';\nimport checkboxUncheckedIcon from '../../assets/img/svg-icons/svg-checkbox-unchecked.svg';\nimport checkmarkIcon from '../../assets/img/svg-icons/svg-checkmark.svg';\nimport closeIcon from '../../assets/img/svg-icons/svg-close.svg';\nimport creditCard from '../../assets/img/svg-icons/svg-credit-card.svg';\nimport coupon from '../../assets/img/svg-icons/svg-coupon.svg';\nimport copyIcon from '../../assets/img/svg-icons/svg-copy.svg';\nimport deviceCircuitIcon from '../../assets/img/svg-icons/svg-device-circuit.svg';\nimport devicePresetLastAppliedIcon from '../../assets/img/svg-icons/svg-device-preset-last-applied.svg';\nimport devicesIcon from '../../assets/img/svg-icons/svg-devices.svg';\nimport downIcon from '../../assets/img/svg-icons/svg-arrow-fat-down.svg';\nimport downloadIcon from '../../assets/img/svg-icons/svg-download.svg';\nimport downloadSimpleIcon from '../../assets/img/svg-icons/svg-download-simple.svg';\nimport editIcon from '../../assets/img/svg-icons/svg-edit.svg';\nimport effectsIcon from '../../assets/img/svg-icons/svg-effects.svg';\nimport ellipsisIcon from '../../assets/img/svg-icons/svg-ellipsis.svg';\nimport exclamationIcon from '../../assets/img/svg-icons/svg-exclamation.svg';\nimport fairIcon from '../../assets/img/svg-icons/svg-fair.svg';\nimport facebookIcon from '../../assets/img/svg-icons/svg-facebook.svg';\nimport filterIcon from '../../assets/img/svg-icons/svg-filter.svg';\nimport fleetIcon from '../../assets/img/svg-icons/svg-fleet.svg';\nimport forwardIcon from '../../assets/img/svg-icons/svg-arrow-fat-right.svg';\nimport fullscreenIcon from '../../assets/img/svg-icons/svg-fullscreen.svg';\nimport gridViewIcon from '../../assets/img/svg-icons/svg-grid-view.svg';\nimport groupFolderIcon from '../../assets/img/svg-icons/svg-group-folder.svg';\nimport groupFolderStrokeIcon from '../../assets/img/svg-icons/svg-group-folder-stroke.svg';\nimport groupMoveIcon from '../../assets/img/svg-icons/svg-group-move.svg';\nimport groupRemoveIcon from '../../assets/img/svg-icons/svg-group-remove.svg';\nimport helpCircleIcon from '../../assets/img/svg-icons/svg-help-circle.svg';\nimport homeIcon from '../../assets/img/svg-icons/svg-home.svg';\nimport infinityIcon from '../../assets/img/svg-icons/svg-infinity.svg';\nimport infoIcon from '../../assets/img/svg-icons/svg-info.svg';\nimport inviteIcon from '../../assets/img/svg-icons/svg-invite.svg';\nimport keyframeIcon from '../../assets/img/svg-icons/svg-keyframe.svg';\nimport layoutIcon from '../../assets/img/svg-icons/svg-layout.svg';\nimport lightningIcon from '../../assets/img/svg-icons/svg-lightning.svg';\nimport linkIcon from '../../assets/img/svg-icons/svg-link.svg';\nimport listViewIcon from '../../assets/img/svg-icons/svg-list-view.svg';\nimport liveScryptIcon from '../../assets/img/svg-icons/svg-livescrypt.svg';\nimport loadingDotsIcon from '../../assets/img/svg-icons/svg-loading-dots.svg';\nimport lockIcon from '../../assets/img/svg-icons/svg-lock.svg';\nimport logoutIcon from '../../assets/img/svg-icons/svg-logout.svg';\nimport moneyIcon from '../../assets/img/svg-icons/svg-money.svg';\nimport movieIcon from '../../assets/img/svg-icons/svg-movie.svg';\nimport notificationsIcon from '../../assets/img/svg-icons/svg-notifications.svg';\nimport pauseIcon from '../../assets/img/svg-icons/svg-pause.svg';\nimport playIcon from '../../assets/img/svg-icons/svg-play.svg';\nimport plusCircleIcon from '../../assets/img/svg-icons/svg-plus-circle.svg';\nimport plusIcon from '../../assets/img/svg-icons/svg-plus.svg';\nimport postIcon from '../../assets/img/svg-icons/svg-post.svg';\nimport powerOffIcon from '../../assets/img/svg-icons/svg-power-off.svg';\nimport preferencesIcon from '../../assets/img/svg-icons/svg-preferences.svg';\nimport prepostrollIcon from '../../assets/img/svg-icons/svg-prepostroll.svg';\nimport presetIcon from '../../assets/img/svg-icons/svg-preset.svg';\nimport recordIcon from '../../assets/img/svg-icons/svg-record.svg';\nimport recordEventIcon from '../../assets/img/svg-icons/svg-event-record.svg';\nimport removeIcon from '../../assets/img/svg-icons/svg-remove.svg';\nimport renderIcon from '../../assets/img/svg-icons/svg-render.svg';\nimport requiredIcon from '../../assets/img/svg-icons/svg-required.svg';\nimport resizerIcon from '../../assets/img/svg-icons/svg-resizer.svg';\nimport retryIcon from '../../assets/img/svg-icons/svg-retry.svg';\nimport saveIcon from '../../assets/img/svg-icons/svg-save.svg';\nimport searchIcon from '../../assets/img/svg-icons/svg-search.svg';\nimport searchMinusIcon from '../../assets/img/svg-icons/svg-search-minus.svg';\nimport searchPlusIcon from '../../assets/img/svg-icons/svg-search-plus.svg';\nimport selectPresetIcon from '../../assets/img/svg-icons/svg-select-preset.svg';\nimport sendIcon from '../../assets/img/svg-icons/svg-send.svg';\nimport settingsIcon from '../../assets/img/svg-icons/svg-settings.svg';\nimport shareIcon from '../../assets/img/svg-icons/svg-share.svg';\nimport slidersIcon from '../../assets/img/svg-icons/svg-sliders.svg';\nimport spinnerIcon from '../../assets/img/svg-icons/svg-spinner.svg';\nimport starActiveIcon from '../../assets/img/svg-icons/svg-star-active.svg';\nimport srtIcon from '../../assets/img/svg-icons/svg-srt.svg';\nimport starIcon from '../../assets/img/svg-icons/svg-star.svg';\nimport stopIcon from '../../assets/img/svg-icons/svg-stop.svg';\nimport streamingIcon from '../../assets/img/svg-icons/svg-streaming.svg';\nimport streamingEventIcon from '../../assets/img/svg-icons/svg-event-streaming.svg';\nimport subscriptionsIcon from '../../assets/img/svg-icons/svg-subscriptions.svg';\nimport switchOffIcon from '../../assets/img/svg-icons/svg-switch-off.svg';\nimport switchOnIcon from '../../assets/img/svg-icons/svg-switch-on.svg';\nimport teamsIcon from '../../assets/img/svg-icons/svg-teams.svg';\nimport timerIcon from '../../assets/img/svg-icons/svg-timer.svg';\nimport trashIcon from '../../assets/img/svg-icons/svg-trash.svg';\nimport twitterIcon from '../../assets/img/svg-icons/svg-twitter.svg';\nimport unlinkIcon from '../../assets/img/svg-icons/svg-unlink.svg';\nimport updateFirmwareIcon from '../../assets/img/svg-icons/svg-update-firmware.svg';\nimport uploadIcon from '../../assets/img/svg-icons/svg-upload.svg';\nimport urlGoArrowIcon from '../../assets/img/svg-icons/svg-url-go-arrow.svg';\nimport userIcon from '../../assets/img/svg-icons/svg-user.svg';\nimport videocameraIcon from '../../assets/img/svg-icons/svg-videocamera.svg';\nimport volumeIcon from '../../assets/img/svg-icons/svg-volume.svg';\nimport videoFileIcon from '../../assets/img/svg-icons/svg-video-file.svg';\nimport warningIcon from '../../assets/img/svg-icons/svg-warning.svg';\nimport youtubeIcon from '../../assets/img/svg-icons/svg-youtube.svg';\nimport facebookStreamingServiceIcon from '../../assets/img/streaming-service-icons/facebook.svg';\nimport facebookStreamingServiceSmallIcon from '../../assets/img/streaming-service-icons/facebook-small.svg';\nimport youtubeStreamingServiceIcon from '../../assets/img/streaming-service-icons/youtube.svg';\nimport youtubeStreamingServiceSmallIcon from '../../assets/img/streaming-service-icons/youtube-small.svg';\nimport twitchStreamingServiceIcon from '../../assets/img/streaming-service-icons/twitch.svg';\nimport twitchStreamingServiceSmallIcon from '../../assets/img/streaming-service-icons/twitch-small.svg';\nimport rtmpStreamingServiceIcon from '../../assets/img/streaming-service-icons/rtmp.svg';\nimport rtmpStreamingServiceSmallIcon from '../../assets/img/streaming-service-icons/rtmp-small.svg';\nimport batchForStreamingUpgradeToProIcon from '../../assets/img/upgrade-to-pro-icons/batch-for-streaming.svg';\nimport deviceGroupingUpgradeToProIcon from '../../assets/img/upgrade-to-pro-icons/device-grouping.svg';\nimport highDefinitionVideoUpgradeToProIcon from '../../assets/img/upgrade-to-pro-icons/high-definition-video.svg';\nimport devicePresetAfuIcon from '../../assets/img/device-preset-sections/afu.svg';\nimport devicePresetEpiphanCloudIcon from '../../assets/img/device-preset-sections/epiphan_cloud.svg';\nimport devicePresetChannelsIcon from '../../assets/img/device-preset-sections/channels.svg';\nimport devicePresetCmsIcon from '../../assets/img/device-preset-sections/cms.svg';\nimport devicePresetDisplaysIcon from '../../assets/img/device-preset-sections/displays.svg';\nimport devicePresetEdidIcon from '../../assets/img/device-preset-sections/edid.svg';\nimport devicePresetFrontScreenIcon from '../../assets/img/device-preset-sections/frontscreen.svg';\nimport devicePresetNetworkIcon from '../../assets/img/device-preset-sections/network.svg';\nimport devicePresetSourcesIcon from '../../assets/img/device-preset-sections/sources.svg';\nimport devicePresetSystemIcon from '../../assets/img/device-preset-sections/system.svg';\nimport teamPresetsFreePlanPlaceholderFileIcon from '../../assets/img/team-presets-free-plan-placeholder/file.svg';\nimport eventIcon from '../../assets/img/svg-icons/svg-device-event.svg';\nimport eventNavIcon from '../../assets/img/svg-icons/svg-event-nav.svg';\nimport eventFreePlanIcon from '../../assets/img/svg-icons/svg-event-card-free-plan.svg';\nimport eventCMSTurnedOffIcon from '../../assets/img/svg-icons/svg-events-card-cms-is-off.svg';\nimport eventNoDevices from '../../assets/img/svg-icons/svg-events-card-no-devices.svg';\nimport virtualDevice from '../../assets/img/svg-icons/svg-virtual-device.svg';\nimport guideIcon from '../../assets/img/virtual-device-icons/guide-icon.svg';\nimport virtualDeviceIcon from '../../assets/img/virtual-device-icons/virtual-device-icon.svg';\nimport projectIconColored from '../../assets/img/svg-icons/svg-project-icon-colored.svg';\nimport msTeamsIcon from '../../assets/img/svg-icons/svg-ms-teams.svg';\nimport videoOnIcon from '../../assets/img/svg-icons/svg-video-on.svg';\nimport videoOffIcon from '../../assets/img/svg-icons/svg-video-off.svg';\nimport microOnIcon from '../../assets/img/svg-icons/svg-microphone-on.svg';\nimport microOffIcon from '../../assets/img/svg-icons/svg-microphone-off.svg';\nimport optionsIcon from '../../assets/img/svg-icons/svg-options.svg';\nimport disconnectedSourceIcon from '../../assets/img/svg-icons/svg-disconnected-source.svg';\nimport zoomIcon from '../../assets/img/svg-icons/svg-zoom.svg';\nimport accountIcon from '../../assets/img/svg-icons/account.svg';\nimport savingsIcon from '../../assets/img/svg-icons/savings.svg';\nimport edgeIcon from '../../assets/img/svg-icons/edge-icon.svg';\nimport unifyIcon from '../../assets/img/svg-icons/unify-icon.svg';\nimport connectIcon from '../../assets/img/svg-icons/connect-icon.svg';\n\nexport type TextPlacement = 'left' | 'right';\n\nclass Icon {\n className: string;\n labelText = '';\n testAttr?: string;\n labelPlacement: TextPlacement = 'right';\n cb?: Callback;\n\n constructor(className) {\n this.className = className;\n\n if (this.className === undefined) {\n throw new Error('Class name is required');\n }\n\n this.className = `cr-icon ${this.className}`;\n }\n\n class(arg: string | string[]) {\n const names = Array.isArray(arg) ? arg : [arg];\n\n for (const name of names) {\n this.className = `${this.className} ${name}`.trim();\n }\n\n return this;\n }\n\n dataId(value: string) {\n this.testAttr = value;\n }\n\n onclick(cb) {\n this.cb = cb;\n\n return this;\n }\n\n /**\n * @param {string} [text]\n * @return {Icon}\n */\n label(text: string, placement: TextPlacement = 'right') {\n if (isNil(text) === false) {\n if (placement === 'left') {\n this.class('cr-icon-left-labeled');\n } else {\n this.class('cr-icon-labeled');\n }\n\n this.labelText = text;\n this.labelPlacement = placement;\n }\n\n return this;\n }\n\n reactComponent() {\n if (this.labelText === '') {\n return React.createElement('i', {\n className: this.className,\n 'data-id': this.testAttr,\n onClick: this.cb,\n });\n }\n\n return React.createElement('span', null, [\n React.createElement('i', {\n className: this.className,\n 'data-id': this.testAttr,\n onClick: this.cb,\n }),\n React.createElement('span', {className: 'cr-icon-label'}, this.labelText),\n ]);\n }\n\n size(size?: SIZE) {\n switch (size) {\n case SIZE.XS:\n return this.class('cr-icon--size-xs');\n case SIZE.S:\n return this.class('cr-icon--size-s');\n case SIZE.M:\n return this.class('cr-icon--size-m');\n case SIZE.L:\n return this.class('cr-icon--size-l');\n case SIZE.XL:\n return this.class('cr-icon--size-xl');\n case SIZE.XXL:\n return this.class('cr-icon--size-xxl');\n default:\n return this;\n }\n }\n\n theme(theme: THEME) {\n switch (theme) {\n case THEME.PRIMARY:\n return this.class('cr-icon--primary');\n case THEME.SUCCESS:\n return this.class('cr-icon--success');\n case THEME.WARNING:\n return this.class('cr-icon--warning');\n case THEME.DANGER:\n return this.class('cr-icon--danger');\n case THEME.SECONDARY:\n return this.class('cr-icon--secondary');\n default:\n return this;\n }\n }\n}\n\ninterface Svg {\n id: string;\n}\n\nexport class SvgIcon extends Icon {\n svg: Svg;\n\n constructor(className: string, svg) {\n super(className);\n\n this.svg = svg;\n this.className = `cr-icon svg-icon ${className}`;\n }\n\n reactComponent() {\n const icon = React.createElement(\n 'div',\n {className: this.className, onClick: this.cb},\n React.createElement(\n 'svg',\n {className: 'svg-icon__cnt', 'data-id': this.testAttr},\n React.createElement('use', {xlinkHref: `#${this.svg.id}`}),\n ),\n );\n\n if (this.labelText === '') {\n return icon;\n }\n\n if (this.labelPlacement === 'left') {\n return React.createElement('span', {className: 'cr-icon__wrapper'}, [\n React.createElement(\n 'span',\n {className: 'cr-icon-label', key: 'icon-label'},\n this.labelText,\n ),\n React.cloneElement(icon, {key: 'icon'}),\n ]);\n }\n\n return React.createElement('span', {className: 'cr-icon__wrapper'}, [\n React.cloneElement(icon, {key: 'icon'}),\n React.createElement('span', {className: 'cr-icon-label', key: 'icon-label'}, this.labelText),\n ]);\n }\n}\n\nconst Icons = {\n // Not unused\n accountBox() {\n return new SvgIcon('', accountBoxIcon);\n },\n\n addPaymentMethod() {\n return new SvgIcon('', addPaymentMethodIcon);\n },\n\n archive() {\n return new SvgIcon('', archiveIcon);\n },\n\n arrowDown() {\n return new SvgIcon('', arrowDownIcon);\n },\n\n arrowLeft() {\n return new SvgIcon('', arrowLeftIcon);\n },\n\n arrowLightRight() {\n return new SvgIcon('', arrowLightRight);\n },\n\n arrowRight() {\n return new SvgIcon('', arrowRightIcon);\n },\n\n arrowTwoWay() {\n return new SvgIcon('', arrowTwoWayIcon);\n },\n\n arrowUp() {\n return new SvgIcon('', arrowUpIcon);\n },\n\n attention() {\n return new SvgIcon('', attention);\n },\n\n audioControl() {\n return new SvgIcon('', audioControlIcon);\n },\n\n backward() {\n return new SvgIcon('', backwardIcon);\n },\n\n backLeft() {\n return new SvgIcon('', backIcon);\n },\n\n bell() {\n return new SvgIcon('', bellIcon);\n },\n\n bracketLeft() {\n return new SvgIcon('', bracketLeftIcon);\n },\n\n bracketRight() {\n return new SvgIcon('', bracketRightIcon);\n },\n\n calendar() {\n return new SvgIcon('', calendarIcon);\n },\n\n caretThin() {\n return new SvgIcon('', caretThinIcon);\n },\n\n caretTriangle() {\n return new SvgIcon('', caretTriangleIcon);\n },\n\n chain() {\n return new SvgIcon('', chainIcon);\n },\n\n check() {\n return new SvgIcon('', checkmarkIcon);\n },\n\n checkCircle() {\n return new SvgIcon('', checkCircleIcon);\n },\n\n checkboxChecked() {\n return new SvgIcon('', checkboxCheckedIcon);\n },\n\n checkboxUnchecked() {\n return new SvgIcon('', checkboxUncheckedIcon);\n },\n\n checkmark() {\n return new SvgIcon('', checkmarkIcon);\n },\n\n close() {\n return new SvgIcon('', closeIcon);\n },\n\n creditCard() {\n return new SvgIcon('', creditCard);\n },\n\n cross() {\n return new SvgIcon('', removeIcon);\n },\n\n coupon() {\n return new SvgIcon('', coupon);\n },\n\n copy() {\n return new SvgIcon('', copyIcon);\n },\n\n deviceCircuit() {\n return new SvgIcon('', deviceCircuitIcon);\n },\n\n devicePresetLastApplied() {\n return new SvgIcon('', devicePresetLastAppliedIcon);\n },\n\n devices() {\n return new SvgIcon('', devicesIcon);\n },\n\n down() {\n return new SvgIcon('', downIcon);\n },\n\n download() {\n return new SvgIcon('', downloadIcon);\n },\n\n downloadSimple() {\n return new SvgIcon('', downloadSimpleIcon);\n },\n\n edit() {\n return new SvgIcon('', editIcon);\n },\n\n effects() {\n return new SvgIcon('', effectsIcon);\n },\n\n ellipsis() {\n return new SvgIcon('', ellipsisIcon);\n },\n\n exclamation() {\n return new SvgIcon('', exclamationIcon);\n },\n\n fair() {\n return new SvgIcon('', fairIcon);\n },\n\n // Not unused\n facebook() {\n return new SvgIcon('', facebookIcon);\n },\n\n // Not unused\n filter() {\n return new SvgIcon('', filterIcon);\n },\n\n fleet() {\n return new SvgIcon('', fleetIcon);\n },\n\n forward() {\n return new SvgIcon('', forwardIcon);\n },\n\n fullscreen() {\n return new SvgIcon('', fullscreenIcon);\n },\n\n gridView() {\n return new SvgIcon('', gridViewIcon);\n },\n\n groupFolder() {\n return new SvgIcon('', groupFolderIcon);\n },\n\n groupFolderStroke() {\n return new SvgIcon('', groupFolderStrokeIcon);\n },\n\n groupMove() {\n return new SvgIcon('', groupMoveIcon);\n },\n\n groupRemove() {\n return new SvgIcon('', groupRemoveIcon);\n },\n\n helpCircle() {\n return new SvgIcon('', helpCircleIcon);\n },\n\n infinity() {\n return new SvgIcon('', infinityIcon);\n },\n\n home() {\n return new SvgIcon('', homeIcon);\n },\n\n info() {\n return new SvgIcon('', infoIcon);\n },\n\n invite() {\n return new SvgIcon('', inviteIcon);\n },\n\n keyframe() {\n return new SvgIcon('', keyframeIcon);\n },\n\n layout() {\n return new SvgIcon('', layoutIcon);\n },\n\n lightning() {\n return new SvgIcon('', lightningIcon);\n },\n\n link() {\n return new SvgIcon('', linkIcon);\n },\n\n listView() {\n return new SvgIcon('', listViewIcon);\n },\n\n liveScrypt() {\n return new SvgIcon('', liveScryptIcon);\n },\n\n loadingDots() {\n return new SvgIcon('', loadingDotsIcon);\n },\n\n lock() {\n return new SvgIcon('', lockIcon);\n },\n\n logout() {\n return new SvgIcon('', logoutIcon);\n },\n\n money() {\n return new SvgIcon('', moneyIcon);\n },\n\n movie() {\n return new SvgIcon('', movieIcon);\n },\n\n notifications() {\n return new SvgIcon('', notificationsIcon);\n },\n\n pause() {\n return new SvgIcon('', pauseIcon);\n },\n\n play() {\n return new SvgIcon('', playIcon);\n },\n\n // Not unused\n plus() {\n return new SvgIcon('', plusIcon);\n },\n\n plusCircle() {\n return new SvgIcon('', plusCircleIcon);\n },\n\n post() {\n return new SvgIcon('', postIcon);\n },\n\n powerOff() {\n return new SvgIcon('', powerOffIcon);\n },\n\n preferences() {\n return new SvgIcon('', preferencesIcon);\n },\n\n prepostroll() {\n return new SvgIcon('', prepostrollIcon);\n },\n\n preset() {\n return new SvgIcon('', presetIcon);\n },\n\n record() {\n return new SvgIcon('', recordIcon);\n },\n\n recordEvent() {\n return new SvgIcon('', recordEventIcon);\n },\n\n remove() {\n return new SvgIcon('', removeIcon);\n },\n\n render() {\n return new SvgIcon('', renderIcon);\n },\n\n // Not unused\n required() {\n return new SvgIcon('', requiredIcon);\n },\n\n // Not unused\n resizer() {\n return new SvgIcon('', resizerIcon);\n },\n\n retry() {\n return new SvgIcon('', retryIcon);\n },\n\n save() {\n return new SvgIcon('', saveIcon);\n },\n\n search() {\n return new SvgIcon('', searchIcon);\n },\n\n searchMinus() {\n return new SvgIcon('', searchMinusIcon);\n },\n\n searchPlus() {\n return new SvgIcon('', searchPlusIcon);\n },\n\n selectPreset() {\n return new SvgIcon('', selectPresetIcon);\n },\n\n // Not unused\n send() {\n return new SvgIcon('', sendIcon);\n },\n\n // Not unused\n settings() {\n return new SvgIcon('', settingsIcon);\n },\n\n // Not unused\n share() {\n return new SvgIcon('', shareIcon);\n },\n\n // Not unused\n sliders() {\n return new SvgIcon('', slidersIcon);\n },\n\n spinner() {\n return new SvgIcon('cr-animation-rotate', spinnerIcon);\n },\n\n srt() {\n return new SvgIcon('', srtIcon);\n },\n\n // Not unused\n star() {\n return new SvgIcon('', starIcon);\n },\n\n // Not unused\n starActive() {\n return new SvgIcon('', starActiveIcon);\n },\n\n stop() {\n return new SvgIcon('', stopIcon);\n },\n\n streaming() {\n return new SvgIcon('', streamingIcon);\n },\n\n streamingEvent() {\n return new SvgIcon('', streamingEventIcon);\n },\n\n subscriptions() {\n return new SvgIcon('', subscriptionsIcon);\n },\n\n // Not unused\n switchOff() {\n return new SvgIcon('svg-icon--wide', switchOffIcon);\n },\n\n // Not unused\n switchOn() {\n return new SvgIcon('svg-icon--wide', switchOnIcon);\n },\n\n teams() {\n return new SvgIcon('', teamsIcon);\n },\n\n timer() {\n return new SvgIcon('', timerIcon);\n },\n\n trash() {\n return new SvgIcon('', trashIcon);\n },\n\n // Not unused\n twitter() {\n return new SvgIcon('', twitterIcon);\n },\n\n unlink() {\n return new SvgIcon('', unlinkIcon);\n },\n\n updateFirmware() {\n return new SvgIcon('', updateFirmwareIcon);\n },\n\n upload() {\n return new SvgIcon('', uploadIcon);\n },\n\n urlGoArrow() {\n return new SvgIcon('', urlGoArrowIcon);\n },\n\n urlGoBackArrow() {\n return new SvgIcon('cr-icon--reflected-horizontal', urlGoArrowIcon);\n },\n\n // Not unused\n user() {\n return new SvgIcon('', userIcon);\n },\n\n users() {\n return new SvgIcon('', userIcon);\n },\n\n videocamera() {\n return new SvgIcon('', videocameraIcon);\n },\n\n volume() {\n return new SvgIcon('', volumeIcon);\n },\n\n // Not unused\n videoFile() {\n return new SvgIcon('', videoFileIcon);\n },\n\n warning() {\n return new SvgIcon('', warningIcon);\n },\n\n // Not unused\n youtube() {\n return new SvgIcon('', youtubeIcon);\n },\n\n // Not unused\n facebookStreamingService() {\n return new SvgIcon('', facebookStreamingServiceIcon);\n },\n\n facebookStreamingServiceSmall() {\n return new SvgIcon('', facebookStreamingServiceSmallIcon);\n },\n\n // Not unused\n youtubeStreamingService() {\n return new SvgIcon('', youtubeStreamingServiceIcon);\n },\n\n youtubeStreamingServiceSmall() {\n return new SvgIcon('', youtubeStreamingServiceSmallIcon);\n },\n\n // Not unused\n twitchStreamingService() {\n return new SvgIcon('', twitchStreamingServiceIcon);\n },\n\n twitchStreamingServiceSmall() {\n return new SvgIcon('', twitchStreamingServiceSmallIcon);\n },\n\n // Not unused\n rtmpStreamingService() {\n return new SvgIcon('', rtmpStreamingServiceIcon);\n },\n\n rtmpStreamingServiceSmall() {\n return new SvgIcon('', rtmpStreamingServiceSmallIcon);\n },\n\n batchForStreamingUpgradeToPro() {\n return new SvgIcon('', batchForStreamingUpgradeToProIcon);\n },\n\n deviceGroupingUpgradeToPro() {\n return new SvgIcon('', deviceGroupingUpgradeToProIcon);\n },\n\n highDefinitionVideoUpgradeToPro() {\n return new SvgIcon('', highDefinitionVideoUpgradeToProIcon);\n },\n\n devicePresetAfu() {\n return new SvgIcon('', devicePresetAfuIcon);\n },\n\n devicePresetEpiphanCloud() {\n return new SvgIcon('', devicePresetEpiphanCloudIcon);\n },\n\n devicePresetChannels() {\n return new SvgIcon('', devicePresetChannelsIcon);\n },\n\n devicePresetCms() {\n return new SvgIcon('', devicePresetCmsIcon);\n },\n\n devicePresetDisplays() {\n return new SvgIcon('', devicePresetDisplaysIcon);\n },\n\n devicePresetEdid() {\n return new SvgIcon('', devicePresetEdidIcon);\n },\n\n devicePresetFrontScreen() {\n return new SvgIcon('', devicePresetFrontScreenIcon);\n },\n\n devicePresetNetwork() {\n return new SvgIcon('', devicePresetNetworkIcon);\n },\n\n devicePresetSources() {\n return new SvgIcon('', devicePresetSourcesIcon);\n },\n\n devicePresetSystem() {\n return new SvgIcon('', devicePresetSystemIcon);\n },\n\n teamPresetsFreePlanPlaceholderFile() {\n return new SvgIcon('', teamPresetsFreePlanPlaceholderFileIcon);\n },\n cms() {\n return new SvgIcon('', eventNavIcon);\n },\n events() {\n return new SvgIcon('', eventIcon);\n },\n eventFreePlan() {\n return new SvgIcon('', eventFreePlanIcon);\n },\n eventCMSIsTurnedOff() {\n return new SvgIcon('', eventCMSTurnedOffIcon);\n },\n eventNoDevices() {\n return new SvgIcon('', eventNoDevices);\n },\n virtualDevice() {\n return new SvgIcon('', virtualDevice);\n },\n guideIcon() {\n return new SvgIcon('', guideIcon);\n },\n virtualDeviceIcon() {\n return new SvgIcon('', virtualDeviceIcon);\n },\n\n projectIconColored() {\n return new SvgIcon('', projectIconColored);\n },\n microsoftTeams() {\n return new SvgIcon('', msTeamsIcon);\n },\n videoOn() {\n return new SvgIcon('', videoOnIcon);\n },\n videoOff() {\n return new SvgIcon('', videoOffIcon);\n },\n microOn() {\n return new SvgIcon('', microOnIcon);\n },\n microOff() {\n return new SvgIcon('', microOffIcon);\n },\n options() {\n return new SvgIcon('', optionsIcon);\n },\n disconnectedSource() {\n return new SvgIcon('', disconnectedSourceIcon);\n },\n zoom() {\n return new SvgIcon('', zoomIcon);\n },\n account() {\n return new SvgIcon('', accountIcon);\n },\n\n savings() {\n return new SvgIcon('', savingsIcon);\n },\n edge() {\n return new SvgIcon('', edgeIcon);\n },\n connect() {\n return new SvgIcon('', connectIcon);\n },\n unify() {\n return new SvgIcon('', unifyIcon);\n },\n};\n\nexport {Icons};\n","/* eslint-disable react/default-props-match-prop-types */\nimport React, {Component} from 'react';\nimport classNames from 'classnames';\nimport {Icons} from 'app/util/icons';\nimport {SIZE} from 'app/constants';\nimport {ClassName} from 'app/types/common';\n\nfunction trimTranscript(transcript: Transcription[], itemsCount: number): Transcription[] {\n if (itemsCount > 0) {\n return transcript.slice(-(itemsCount));\n }\n\n return transcript;\n}\n\nconst SHOW_MESSAGES_COUNT = 5;\n\ninterface Props extends ClassName {\n transcript: Transcription[];\n itemsCount: number;\n paused: boolean;\n disabled: boolean;\n placeholder: string;\n}\n\ninterface State {\n transcript: any[];\n}\n\n// move to service\ninterface Transcription {\n // rework indexed\n [key: string]: any;\n id: string | number;\n value: string;\n timestamp: string;\n partial: boolean;\n}\n\nexport class TranscribingText extends Component {\n static defaultProps = {\n transcript: [],\n placeholder: 'Your transcription will show up here',\n itemsCount: SHOW_MESSAGES_COUNT,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n transcript: trimTranscript(props.transcript, props.itemsCount),\n };\n }\n\n componentDidUpdate(prevProps) {\n let {\n transcript,\n itemsCount,\n } = this.props;\n\n if (transcript === prevProps.transcript) {\n return;\n }\n\n const prevIds = prevProps.transcript.reduce((acc, b) => {\n if (!b.partial) {\n acc.add(b.id);\n }\n\n return acc;\n }, new Set());\n\n transcript = trimTranscript(transcript, itemsCount);\n\n transcript.forEach((item): any => {\n item.new = !prevIds.has(item.id);\n });\n\n this.setState({transcript});\n }\n\n render() {\n const {\n className,\n paused,\n disabled,\n placeholder,\n transcript: transcriptProps,\n itemsCount,\n ...rest\n } = this.props;\n const {\n transcript,\n } = this.state;\n\n if (disabled) {\n return null;\n }\n\n return (\n \n {transcript.length > 0 ? (\n
\n {transcript.map(item => (\n \n {item.value}\n\n {(item.partial && !paused) && (\n \n {Icons.loadingDots().size(SIZE.XL).reactComponent()}\n \n )}\n
\n ))}\n \n ) : (\n
\n {placeholder}\n
\n )}\n \n );\n }\n}\n","const enum ApiResponseStatus {\n Ok = 'ok',\n Error = 'error',\n}\n\n/**\n * {@link https://developer.mozilla.org/en-US/docs/Web/HTTP/Status}\n */\nconst enum ApiResponseNumeralStatus {\n Ok = 200,\n NoContent = 204,\n Unauthorized = 401,\n PaymentRequired = 402,\n Forbidden = 403,\n NotFound = 404,\n MethodNotAllowed = 405,\n Conflict = 409,\n PreconditionFailed = 412,\n}\n\nenum TeamMemberStatus {\n Pending = 'pending',\n Member = 'member',\n}\n\nexport {ApiResponseStatus, ApiResponseNumeralStatus, TeamMemberStatus};\n","// eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\nfunction noop(..._args: any[]): any {}\n\nexport {noop};\n","import {ApiResponseNumeralStatus, ApiResponseStatus} from 'app/data/Status';\nimport {noop} from 'app/util/noop';\nimport {Callback, TimeStampMilliseconds} from 'app/types/common';\nimport {AbortCallback, GetAbortCallback} from 'app/api/types';\n\nconst POLL_TIMEOUT = 1000;\nconst FAIL_POLL_TIMEOUT = 5000;\n\ntype LongPollCallType = ({getAbort}: {getAbort: GetAbortCallback}) => any;\n\ninterface LongPollOptions {\n call: LongPollCallType;\n pollTimeout?: TimeStampMilliseconds;\n failPollTimeout?: TimeStampMilliseconds;\n checkUpdated?: Callback;\n onUpdate?: Callback;\n onStart?: Callback;\n onStop?: Callback;\n}\n\nexport class LongPoll {\n protected call: LongPollCallType;\n protected pollTimeout: TimeStampMilliseconds;\n protected failPollTimeout: TimeStampMilliseconds;\n protected checkUpdatedCb: Callback;\n protected onUpdateCb: Callback;\n protected onStartCb: Callback;\n protected onStopCb: Callback;\n protected abortRequest: AbortCallback = noop;\n\n protected stopped = true;\n protected failed = false;\n protected timeout = -1;\n\n constructor({\n call,\n pollTimeout = POLL_TIMEOUT,\n failPollTimeout = FAIL_POLL_TIMEOUT,\n checkUpdated = noop,\n onUpdate = noop,\n onStart = noop,\n onStop = noop,\n }: LongPollOptions) {\n this.call = call;\n\n this.pollTimeout = pollTimeout;\n this.failPollTimeout = failPollTimeout;\n\n this.checkUpdatedCb = checkUpdated;\n this.onUpdateCb = onUpdate;\n this.onStartCb = onStart;\n this.onStopCb = onStop;\n }\n\n start() {\n if (this.stopped === false) {\n return;\n }\n\n this._onStart();\n\n this.stopped = false;\n this._run(true);\n }\n\n stop() {\n if (this.stopped === true) {\n return;\n }\n\n this.stopped = true;\n this.abortRequest();\n window.clearTimeout(this.timeout);\n\n this._onStop();\n }\n\n _checkUpdated(response) {\n return this.checkUpdatedCb(response);\n }\n\n _onUpdate(response) {\n this.onUpdateCb(response);\n }\n\n _onStart() {\n this.onStartCb();\n }\n\n _onStop() {\n this.onStopCb();\n }\n\n _run(immediately = false) {\n if (immediately) {\n this._fetch();\n } else {\n const timeout = this.failed ? this.failPollTimeout : this.pollTimeout;\n this.timeout = window.setTimeout(() => this._fetch(), timeout);\n }\n }\n\n _fetch() {\n this.call({\n getAbort: (abort) => {\n this.abortRequest = abort;\n },\n })\n .then(response => {\n this.failed = false;\n\n if (this.stopped) {\n return;\n }\n\n if (\n response.status === ApiResponseStatus.Ok ||\n response.status === ApiResponseNumeralStatus.Ok ||\n response.status === ApiResponseNumeralStatus.NoContent\n ) {\n if (this._checkUpdated(response)) {\n this._onUpdate(response);\n }\n } else {\n this.failed = true;\n }\n\n this._run();\n })\n .catch(() => {\n if (this.stopped) {\n return;\n }\n\n this.failed = true;\n\n this._run();\n });\n }\n}\n","import {isNil} from 'app/util/isNil';\n\nconst DIVIDER = '/';\n\nfunction isDivider(character?: string): boolean {\n return character === DIVIDER;\n}\n\nfunction trimEndSlash(string: string): string {\n if (!isDivider(string[string.length - 1])) {\n return string;\n }\n\n return string.slice(0, -1);\n}\n\nfunction trimStartSlash(string: string): string {\n if (!isDivider(string[0])) {\n return string;\n }\n\n return string.substr(1);\n}\n\nfunction trimAllSlashes(string: string): string {\n return trimEndSlash(trimStartSlash(string));\n}\n\nfunction joinTwo(url1: string, url2: string): string {\n if (url1 === '') {\n return url2;\n }\n\n return trimEndSlash(url1) + '/' + trimAllSlashes(url2);\n}\n\nexport const Url = {\n join(...urls: any[]): string {\n if (urls.length === 1) {\n return urls[0];\n }\n\n return urls.reduce((acc, url) => {\n if (!isNil(url)) {\n return joinTwo(acc, String(url));\n }\n\n return acc;\n }, '');\n },\n};\n","import {\n join,\n pipe,\n prop,\n reduce,\n sortBy,\n toPairs,\n} from 'ramda';\n\n// ie ?,=,&,/ etc\nfunction containsEncodedComponents(string: string) {\n return decodeURI(string) !== decodeURIComponent(string);\n}\n\nfunction processValue(value: string) {\n if (containsEncodedComponents(value)) {\n return value;\n }\n\n return encodeURIComponent(value);\n}\n\nexport function queryStringSorted(json?: Record): string {\n if (!json) {\n return '';\n }\n\n return pipe(\n toPairs,\n // @ts-expect-error\n sortBy(prop(0)),\n reduce((acc: string[], [key, value]) => {\n if (typeof value !== 'undefined') {\n acc.push(`${key}=${processValue(value)}`);\n }\n\n return acc;\n }, []),\n join('&'),\n )(json) as string;\n}\n","/**\n * {@link https://www.iana.org/assignments/media-types/media-types.xhtml}\n */\nenum MediaType {\n Json = 'application/json',\n FormData = 'multipart/form-data',\n XWwwFormUrlencoded = 'application/x-www-form-urlencoded',\n}\n\nexport {\n MediaType,\n};\n","function isString(value: any): value is string {\n return typeof value === 'string';\n}\n\nexport {\n isString\n};\n","/* eslint-disable max-classes-per-file */\n/* eslint-disable @typescript-eslint/member-ordering, @typescript-eslint/no-this-alias */\nimport axios from 'axios';\nimport {isEmpty, mergeRight, omit} from 'ramda';\nimport {Url} from 'app/api/util/Url';\nimport {queryStringSorted} from 'app/api/util/queryStringSorted';\nimport {MediaType} from 'app/api/constants';\nimport {Cache} from 'app/util/Cache';\nimport {Api} from 'app/api/Api';\nimport {AjaxErrorCallback, Endpoints, GetAbortCallback} from 'app/api/types';\nimport {isString} from 'app/util/typeGuards';\n\n/**\n * HTTP request methods\n * {@link https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods}\n */\nenum RequestMethod {\n Get = 'GET',\n Post = 'POST',\n Put = 'PUT',\n Patch = 'PATCH',\n Delete = 'DELETE',\n}\n\ntype ChainParams = {\n parent: Api | Chain;\n endpoints: Endpoints;\n cache?: Cache;\n onAjaxError?: AjaxErrorCallback;\n};\n\nexport class Chain {\n parent: Api | Chain | Endpoint;\n endpoints: Endpoints;\n cache?: Cache;\n protected readonly onAjaxError?: AjaxErrorCallback;\n\n constructor({parent, endpoints, cache, onAjaxError}: ChainParams) {\n this.parent = parent;\n this.endpoints = endpoints;\n this.cache = cache;\n this.onAjaxError = onAjaxError;\n\n this._generateEndpoints();\n }\n\n _generateEndpoints() {\n for (const [endpointName, endpointOptions] of Object.entries(this.endpoints)) {\n if (endpointName in this) {\n throw new Error(\n `Endpoint name \"${endpointName}\" conflicts with class method or property name`,\n );\n }\n\n this[endpointName] = (id, params) => {\n const childEndpoints = omit(['__url__'], endpointOptions);\n const customUrl = endpointOptions.__url__;\n const cache = endpointOptions.__nocache__ ? undefined : this.cache;\n const noTeam = endpointOptions.__noteam__ === true;\n const protocol = endpointOptions.__protocol__ as string;\n\n return new Endpoint({\n name: endpointName,\n id,\n params,\n endpoints: childEndpoints,\n parent: this,\n customUrl,\n cache,\n noTeam,\n protocol,\n onAjaxError: this.onAjaxError,\n });\n };\n }\n }\n\n traverseUp(fn) {\n let node: any = this;\n\n while (node) {\n fn(node);\n node = node.parent;\n }\n }\n}\n\ntype RequestData = Record | string;\n\ntype RequestOptions = {\n contentType?: string | false;\n headers?: Record;\n getAbort?: GetAbortCallback;\n};\n\ninterface EndpointParams {\n name: string;\n id: any;\n params: any;\n parent: any;\n endpoints: Endpoints;\n customUrl: any;\n cache?: Cache;\n noTeam?: boolean;\n protocol?: string;\n onAjaxError?: AjaxErrorCallback;\n}\n\nclass Endpoint extends Chain {\n name: string;\n customUrl: string;\n redrawAfterRequest: boolean;\n protocol?: string;\n noTeam?: boolean;\n\n _id: any;\n params: any;\n\n constructor({\n name,\n id,\n params,\n parent,\n endpoints,\n customUrl,\n cache,\n noTeam,\n protocol,\n onAjaxError,\n }: EndpointParams) {\n super({\n parent,\n endpoints,\n cache,\n onAjaxError,\n });\n\n this.name = name;\n this.customUrl = customUrl;\n this.noTeam = noTeam;\n this.protocol = protocol;\n\n if (id instanceof Object) {\n params = id;\n id = undefined;\n }\n\n this._id = id;\n this.params = params;\n\n this.redrawAfterRequest = true;\n\n this.get = this.get.bind(this);\n this.post = this.post.bind(this);\n this.put = this.put.bind(this);\n this.delete = this.delete.bind(this);\n }\n\n _getUrlPart(): string {\n return Url.join(this.customUrl || this.name, this._id);\n }\n\n url(): string {\n let url = '';\n let paramsAcc = {};\n\n this.traverseUp((node) => {\n url = Url.join(\n node._getUrlPart({\n noTeam: this.noTeam,\n protocol: this.protocol,\n }),\n url,\n );\n paramsAcc = mergeRight(paramsAcc, node.params || {});\n });\n\n if (!isEmpty(paramsAcc)) {\n const queryString = this.queryStringSorted(paramsAcc);\n if (queryString) {\n url += `?${queryString}`;\n }\n }\n\n return url;\n }\n\n private async fetchRequest(\n method: RequestMethod,\n data?: RequestData,\n options: RequestOptions = {},\n ): Promise {\n const {contentType = MediaType.Json, headers = {}, getAbort} = options;\n\n let abortController;\n\n if (getAbort) {\n abortController = new AbortController();\n getAbort(() => {\n abortController.abort();\n\n if (method === RequestMethod.Get && this.cache) {\n // To prevent cache cancelled request\n this.cache.unset(`${this.url()}?${data as string}`);\n }\n });\n }\n\n let body;\n let url = this.url();\n if (method === RequestMethod.Get) {\n if (isString(data) && data !== '') {\n const joinSymbol = url.includes('?') ? '&' : '?';\n url = `${url}${joinSymbol}${data}`;\n }\n } else {\n body = isString(data) ? data : JSON.stringify(data);\n }\n\n return new Promise((resolve, reject) => {\n axios({\n method,\n url,\n data: body,\n headers: {\n ...headers,\n 'Content-Type': contentType === false ? undefined : contentType,\n } as any,\n signal: getAbort ? abortController.signal : undefined,\n })\n .then((response) => {\n resolve(response.data);\n })\n .catch((error) => {\n if (axios.isCancel(error)) {\n return;\n }\n\n try {\n this.onAjaxError?.(error.response);\n } catch (err: unknown) {\n console.error('onAjaxError', err);\n }\n\n reject(error.response);\n });\n });\n }\n\n async get(data?: RequestData, options?: RequestOptions): Promise {\n const queryString = typeof data === 'string' ? data : this.queryStringSorted(data);\n\n const getResponse = async () => this.fetchRequest(RequestMethod.Get, queryString, options);\n\n if (this.cache) {\n return this.cache.getOrElse(`${this.url()}?${queryString}`, getResponse);\n }\n\n return getResponse();\n }\n\n async post(data?: RequestData, options?: RequestOptions): Promise {\n return this.fetchRequest(RequestMethod.Post, data, options);\n }\n\n async put(data?: RequestData, options?: RequestOptions): Promise {\n return this.fetchRequest(RequestMethod.Put, data, options);\n }\n\n async delete(data?: RequestData, options?: RequestOptions): Promise {\n return this.fetchRequest(RequestMethod.Delete, data, options);\n }\n\n async postForm(data: Record): Promise {\n return this.post(this.queryStringSorted(data), {\n contentType: MediaType.XWwwFormUrlencoded,\n });\n }\n\n queryStringSorted(data?: Record): string {\n return queryStringSorted(data);\n }\n}\n","import {Chain} from 'app/api/Chain';\nimport {Url} from 'app/api/util/Url';\nimport {Cache} from 'app/util/Cache';\nimport {Api} from 'app/api/Api';\nimport {AjaxErrorCallback} from 'app/api/types';\n\ninterface Params {\n name: string;\n version?: string;\n parent: Api;\n endpoints: Record;\n cache?: Cache;\n onAjaxError?: AjaxErrorCallback;\n}\n\nexport class Service extends Chain {\n name: string;\n version?: string;\n\n constructor({\n name,\n version,\n parent,\n endpoints,\n cache,\n onAjaxError,\n }: Params) {\n super({\n parent,\n endpoints,\n cache,\n onAjaxError,\n });\n\n this.name = name;\n this.version = version;\n }\n\n _getUrlPart({noTeam}: {noTeam?: boolean} = {}) {\n let url;\n\n if (this.version) {\n url = Url.join(this.name, 'api', `v${this.version}`);\n } else {\n url = Url.join(this.name);\n }\n\n if (!noTeam && (this.parent as Api).getCurrentTeamId()) {\n url = Url.join(url, 'team', (this.parent as Api).getCurrentTeamId());\n }\n\n return url;\n }\n}\n","const HOURS_IN_DAY = 24;\nconst MINUTES_IN_HOUR = 60;\nconst SECONDS_IN_MINUTE = 60;\nconst MILLISECONDS_IN_SECOND = 1000;\n\n// Days\nconst daysToHours = (days: number): number => days * HOURS_IN_DAY;\n\nconst daysToSeconds = (days: number): number => minutesToSeconds(hoursToMinutes(daysToHours(days)));\n\n// Hours\nconst hoursToMinutes = (hours: number): number => hours * MINUTES_IN_HOUR;\n\nconst hoursToSeconds = (hours: number) => hoursToMinutes(hours) * SECONDS_IN_MINUTE;\n\n// Minutes\nconst minutesToHours = (minutes: number): number => minutes / MINUTES_IN_HOUR;\n\nconst minutesToSeconds = (minutes: number): number => minutes * SECONDS_IN_MINUTE;\n\nconst minutesToMilliseconds = (minutes: number): number => secondsToMilliseconds(minutesToSeconds(minutes));\n\n// Seconds\nconst secondsToHours = (seconds: number): number => minutesToHours(secondsToMinutes(seconds));\n\nconst secondsToMinutes = (seconds: number): number => seconds / SECONDS_IN_MINUTE;\n\nconst secondsToMilliseconds = (seconds: number): number => seconds * MILLISECONDS_IN_SECOND;\n\n// Milliseconds\nconst millisecondsToSeconds = (milliseconds: number): number => milliseconds / MILLISECONDS_IN_SECOND;\n\nexport {\n daysToHours,\n daysToSeconds,\n\n hoursToMinutes,\n hoursToSeconds,\n\n minutesToHours,\n minutesToSeconds,\n minutesToMilliseconds,\n\n secondsToHours,\n secondsToMinutes,\n secondsToMilliseconds,\n\n millisecondsToSeconds,\n};\n","import {minutesToMilliseconds} from 'app/util/timeConverter';\nimport {TimeStampMilliseconds} from 'app/types/common';\n\nconst DEFAULT_GARBAGE_COLLECTION_TIMEOUT = minutesToMilliseconds(5);\n\nexport class Cache {\n protected expireMs: number;\n protected garbageCollectionTimeout: number;\n protected storage: Map = new Map();\n protected garbageCollectionTimeoutId: number;\n\n constructor(expireMs, garbageCollectionTimeout = DEFAULT_GARBAGE_COLLECTION_TIMEOUT) {\n this.expireMs = expireMs;\n this.garbageCollectionTimeout = garbageCollectionTimeout;\n\n this.garbageCollectionTimeoutId = window.setTimeout(() => {\n this.garbageCollection();\n }, this.garbageCollectionTimeout);\n }\n\n get(key: string): any {\n if (this.storage.get(key) && this.isExpired(Date.now(), key)) {\n this.unset(key);\n return undefined;\n }\n\n if (this.storage.get(key)) {\n return this.storage.get(key).value;\n }\n\n return undefined;\n }\n\n set(key: string, value: any) {\n this.storage.set(key, {\n time: Date.now(),\n value,\n });\n }\n\n unset(key: string) {\n this.storage.delete(key);\n }\n\n getOrElse(key: string, elseValue: () => any): any {\n if (!this.storage.has(key) || this.isExpired(Date.now(), key)) {\n this.set(key, elseValue());\n }\n\n return this.get(key);\n }\n\n length(): number {\n return this.storage.size;\n }\n\n destroy() {\n window.clearTimeout(this.garbageCollectionTimeoutId);\n }\n\n private isExpired(now: TimeStampMilliseconds, key: string): boolean {\n return (now - this.storage.get(key).time) > this.expireMs;\n }\n\n private removeOldValues() {\n const now = Date.now();\n\n for (const [key] of this.storage) {\n if (this.isExpired(now, key)) {\n this.unset(key);\n }\n }\n }\n\n private garbageCollection() {\n this.removeOldValues();\n this.garbageCollectionTimeoutId = window.setTimeout(() => {\n this.garbageCollection();\n }, this.garbageCollectionTimeout);\n }\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport EventEmitter from 'eventemitter3';\nimport {Service} from 'app/api/Service';\nimport {Cache} from 'app/util/Cache';\nimport {Url} from 'app/api/util/Url';\nimport {AjaxErrorCallback, Endpoints} from 'app/api/types';\n\ntype Params = {\n baseUrl: string;\n};\n\nexport class Api {\n baseUrl: string;\n _teamId: string;\n emitter: EventEmitter;\n\n private readonly ajaxErrorHandlers = new Set();\n\n constructor({baseUrl}: Params) {\n this.baseUrl = baseUrl;\n\n this._teamId = '';\n\n this.emitter = new EventEmitter();\n }\n\n /*\n * Adds new service configured as a js object. See CirrusApi.ts for example.\n * Each endpoint can be configured with following internal properties:\n * __url__ - use provided url part for endpoint instead of generating it from schema\n * __noteam__ - indicates that this endpoint doesn't need team id added to its url (see #setCurrentTeamId)\n */\n addService(name: string, version: string | undefined, endpoints: Endpoints) {\n this[name] = new Service({\n name,\n version,\n endpoints,\n parent: this,\n onAjaxError: (error) => {\n this.handleAjaxError(error);\n },\n });\n }\n\n /*\n * Same as #addService, but caches all queries results. Additional configuration:\n * __nocache__ - don't cache queries to this endpoint\n */\n addCachedService(\n name: string,\n version: string | undefined,\n endpoints: Endpoints,\n ) {\n this[name] = new Service({\n name,\n version,\n endpoints,\n parent: this,\n cache: new Cache(1000),\n onAjaxError: (error) => {\n this.handleAjaxError(error);\n },\n });\n }\n\n _getUrlPart({protocol}: {protocol?: string} = {}) {\n if (!protocol) {\n return Url.join(this.baseUrl);\n }\n\n if (this.baseUrl.includes('://')) {\n const [, host] = this.baseUrl.split('://');\n return Url.join(`${protocol}://${host}`);\n }\n\n if (this.baseUrl === '/') {\n return Url.join(`${protocol}://${window.location.host}${this.baseUrl}`);\n }\n\n // TODO: Throw error?\n return Url.join(this.baseUrl);\n }\n\n getCurrentTeamId() {\n return this._teamId;\n }\n\n /**\n * Cirrus API designed to have dynamic team id part in its url. Set\n * current team id here to make all queries contain this part.\n * @param {string} teamId\n */\n setCurrentTeamId(teamId: string) {\n this._teamId = teamId;\n }\n\n onAjaxError(listener: AjaxErrorCallback) {\n this.ajaxErrorHandlers.add(listener);\n }\n\n private handleAjaxError(error: any) {\n this.ajaxErrorHandlers.forEach((ajaxErrorHandler) =>\n ajaxErrorHandler(error),\n );\n }\n}\n","import EventEmitter from 'eventemitter3';\n\nclass DispatcherClass {\n private readonly _impl = new EventEmitter();\n private _currentMaxListeners = 64;\n\n _verifyListenersCount() {\n const eventsListeners = this._impl.eventNames()\n .map(name => ({\n count: this._impl.listenerCount(name),\n name,\n }))\n .sort((a, b) => b.count - a.count);\n\n const eventWithMaxListeners = eventsListeners.find(({count}) => count >= this._currentMaxListeners);\n\n if (eventWithMaxListeners) {\n this._currentMaxListeners *= 2;\n console.warn(`\"${eventWithMaxListeners.name as string}\" event listeners exceeded configured limit (${eventWithMaxListeners.count})`);\n console.warn('Overall events stats:');\n console.warn(JSON.stringify(eventsListeners, null, 2));\n }\n }\n\n on(eventName: string, listener: EventEmitter.ListenerFn) {\n this._verifyListenersCount();\n this._impl.on(eventName, listener);\n }\n\n removeListener(eventName: string, listener: EventEmitter.ListenerFn) {\n this._verifyListenersCount();\n this._impl.removeListener(eventName, listener);\n }\n\n emit(eventName: string, payload?: any) {\n this._impl.emit(eventName, payload);\n }\n}\n\nconst Dispatcher = new DispatcherClass();\n\nexport {Dispatcher};\n","import {Api} from 'app/api/Api';\nimport {ApiResponseNumeralStatus} from 'app/data/Status';\n// import {queryStringSorted} from 'app/api/util/queryStringSorted';\nimport {Dispatcher} from 'app/data/Dispatcher';\n\n/*\n * Workaround for tests to work because their code built not in webpack\n * and uses env variables directly\n */\nfunction getBaseUrl() {\n if (typeof CIRRUS_API_BASE_URL !== 'undefined') {\n return CIRRUS_API_BASE_URL;\n }\n\n return process.env.CIRRUS_API_BASE_URL!;\n}\n\nconst cirrusApi = new Api({\n baseUrl: getBaseUrl(),\n});\n\ncirrusApi.addCachedService('front', '1t', {\n billing: {\n plan: {},\n plans: {},\n v2: {\n econnect: {\n plans: {\n __noteam__: true,\n },\n },\n unify: {\n prices: {\n __noteam__: true,\n },\n },\n files: {\n __url__: 'file-management',\n prices: {\n __noteam__: true,\n },\n },\n },\n },\n devices: {\n alerts: {\n dictionary: {},\n },\n devicenumbers: {},\n task: {\n live: {\n start: {},\n },\n },\n batch_task: {},\n commands: {},\n preview: {},\n hls: {\n playlist: {},\n },\n snapshot: {\n __url__: 'state.jpg',\n },\n source: {\n __url__: '/',\n preview: {},\n snapshot: {\n __url__: 'state.jpg',\n },\n },\n sources: {},\n state: {},\n storage: {},\n afu: {},\n network: {},\n stream: {},\n unpair: {},\n streams: {\n start: {},\n stop: {},\n },\n transcribe: {\n configuration: {},\n id: {},\n start: {},\n stop: {},\n pause: {},\n resume: {},\n },\n request: {\n channel_previews: {},\n source_previews: {},\n audio_levels: {},\n },\n presets: {\n cloud: {},\n local: {\n push: {},\n remove: {\n __url__: 'delete',\n },\n },\n },\n rename: {},\n settings: {},\n remote_login: {},\n vpearls: {},\n vpearl: {\n resume: {},\n stop: {},\n },\n update: {\n status: {},\n },\n system: {\n status: {},\n },\n ssrt: {\n inputs: {},\n },\n firmware: {\n update: {\n status: {},\n },\n },\n cms: {},\n pairing_stick: {},\n },\n presets: {},\n groups: {\n device: {\n __url__: '/',\n },\n devices: {\n move: {},\n },\n batch: {\n remove: {\n __url__: 'delete',\n },\n ungroup: {\n __url__: 'remove',\n },\n },\n },\n streams: {\n attach: {},\n test: {},\n start: {},\n stop: {},\n destinations: {},\n },\n transcribing: {\n configuration: {},\n result: {},\n sessions: {\n clear: {},\n srt: {},\n txt: {},\n },\n },\n oauth: {\n logout: {\n __noteam__: true,\n },\n google: {\n __noteam__: true,\n },\n internal_cognito: {\n __noteam__: true,\n },\n },\n users: {\n me: {\n device_alerts: {},\n team: {},\n notifications: {\n accept: {},\n decline: {},\n },\n alerts: {},\n all_device_alerts: {},\n unread_device_alerts: {},\n acknowledge_device_alerts: {},\n },\n agreement: {},\n policy: {},\n subscriptions: {},\n },\n\n teams: {\n users: {\n master: {},\n },\n billing: {\n plan: {},\n invoice: {},\n payment_info: {},\n coupon: {\n validate: {},\n activate: {},\n },\n switch_to_ibb: {},\n cancel_switch_to_ibb: {},\n v2: {\n econnect: {\n plan: {\n resume: {},\n },\n invoice: {\n history: {},\n },\n coupon: {},\n },\n edge: {\n invoice: {\n history: {},\n },\n },\n invoice: {\n pdf: {},\n },\n unify: {\n plan: {},\n subscribe: {},\n unsubscribe: {},\n },\n files: {\n __url__: 'file-management',\n plan: {},\n invoice: {\n history: {},\n },\n },\n },\n },\n tokens: {\n new: {},\n },\n },\n versions: {\n __noteam__: true,\n },\n connections: {\n connect: {\n box: {\n storage: {},\n },\n dropbox: {\n storage: {},\n },\n google: {\n storage: {},\n stream: {},\n },\n facebook: {\n stream: {},\n },\n twitch: {\n stream: {},\n },\n },\n },\n\n storage: {\n test: {},\n },\n\n team: {\n devices: {\n __noteam__: true,\n devicenumbers: {\n __noteam__: true,\n },\n vpearl: {\n __noteam__: true,\n },\n },\n groups: {\n __noteam__: true,\n device: {\n __url__: '/',\n __noteam__: true,\n },\n },\n },\n\n econnect: {\n pair: {\n ms: {\n tenant: {},\n },\n zoom: {\n user: {},\n },\n },\n\n shareable_link: {},\n\n meetings: {\n connect: {},\n disconnect: {},\n participants: {\n stream: {\n settings: {\n mute: {},\n },\n status: {},\n start: {},\n stop: {},\n },\n },\n injection: {\n stream: {\n settings: {\n mute: {},\n },\n status: {},\n start: {},\n stop: {},\n },\n },\n password: {},\n account: {\n __url__: 'set-account',\n },\n permissions: {},\n },\n\n calls: {\n __url__: 'hosted-calls',\n teams: {\n __url__: 'ms-teams',\n },\n },\n\n ms_tenants: {\n __url__: 'ms-tenants',\n health: {},\n },\n zoomAccounts: {\n __url__: 'zoom-accounts',\n share: {},\n },\n },\n\n ws: {\n __protocol__: 'wss',\n },\n\n /* cms integration part */\n cms: {\n v2: {\n schedule: {\n refresh: {},\n\n events: {\n action: {\n start: {},\n stop: {},\n pause: {},\n resume: {},\n extend: {},\n confirm: {},\n },\n confirm: {\n devices: {},\n },\n },\n\n devices: {\n events: {},\n refresh: {},\n current_event: {},\n },\n\n current_events: {},\n },\n },\n devices: {\n events: {\n control: {\n start: {},\n stop: {},\n pause: {},\n resume: {},\n extend: {},\n },\n },\n schedule: {\n refresh: {},\n },\n },\n schedule: {\n refresh: {},\n current: {},\n },\n eventrules: {},\n },\n\n filemanager: {\n v1: {\n files: {\n remove: {\n __url__: 'delete',\n },\n download: {},\n },\n devices: {\n files: {},\n },\n events: {\n files: {},\n },\n },\n },\n /* eslint-enable camelcase */\n});\n\ncirrusApi.addCachedService('maintenance', '1', {\n windows: {\n __noteam__: true,\n },\n});\n\nconst {front} = cirrusApi as any;\nconst {maintenance} = cirrusApi as any;\n\ncirrusApi.onAjaxError((error) => {\n switch (error.status) {\n case ApiResponseNumeralStatus.Unauthorized: {\n const params = new URLSearchParams();\n params.append('next', window.location.pathname + window.location.hash);\n\n const url = new URL(window.location.origin);\n url.pathname = '/login.html';\n url.hash = `/login?${params.toString()}`;\n window.location.assign(url);\n break;\n }\n\n case ApiResponseNumeralStatus.MethodNotAllowed:\n // TODO: WCX-1176: assuming application is in the root\n if (error?.data?.ErrorData?.NewTeam) {\n window.location.href = `${window.location.origin}/${error.data.ErrorData.NewTeam}`;\n } else {\n Dispatcher.emit('logout');\n front\n .oauth()\n .logout()\n .get()\n .finally(() => {\n window.location.assign('/login.html');\n });\n }\n\n break;\n default:\n console.log('Unhandled err', error);\n break;\n }\n});\n\nexport {cirrusApi, front, maintenance};\n","import {LongPoll} from 'app/util/LongPoll';\nimport {front} from 'app/api/CirrusApi';\nimport {isNil} from 'app/util/isNil';\nimport {noop} from 'app/util/noop';\nimport {AbortCallback, GetAbortCallback} from 'app/api/types';\n\nfunction processResponseData(response) {\n response = isNil(response) ? {} : response;\n response.data = isNil(response.data) ? {} : response.data;\n response.data.transcript = isNil(response.data.transcript) ? [] : response.data.transcript;\n\n return response;\n}\n\nexport class TranscribingLP {\n public _version = 0;\n public _paused = false;\n public _deviceId: string;\n\n public _onUpdate: any;\n public _abortRequest: AbortCallback;\n public _call: ({getAbort}: {getAbort: GetAbortCallback}) => any;\n public _lp: any;\n\n constructor({\n deviceId,\n call,\n onUpdate,\n onStop,\n }: any) {\n this._deviceId = deviceId;\n this._onUpdate = onUpdate;\n\n this._abortRequest = noop;\n\n if (call) {\n this._call = ({getAbort}) => call({version: this._version}, {getAbort});\n } else {\n this._call = ({getAbort}) => front.transcribing(this._deviceId).result({version: this._version}).get(undefined, {getAbort});\n }\n\n this._lp = new LongPoll({\n call: this._call,\n onStart: () => {\n this._version = 0;\n },\n checkUpdated: (response) => {\n let version = 0;\n let paused = false;\n\n if (response.data) {\n version = response.data.version;\n paused = !isNil(response.data.stop_time);\n }\n\n if (\n (!isNil(version) && this._version !== version) ||\n paused !== this._paused\n ) {\n this._version = version;\n this._paused = paused;\n\n return true;\n }\n\n return false;\n },\n onUpdate: (response) => {\n this._onUpdate(processResponseData(response));\n },\n onStop,\n });\n }\n\n start() {\n this._lp.start();\n }\n\n stop() {\n this._lp.stop();\n this._abortRequest();\n }\n\n once() {\n this._call({getAbort: (abort) => {\n this._abortRequest = abort;\n }})\n .then((response) => {\n this._onUpdate(processResponseData(response));\n });\n }\n}\n","import {Api} from 'app/api/Api';\n\n/*\n * Workaround for tests to work because their code built not in webpack\n * and uses env variables directly\n */\nfunction getBaseUrl() {\n if (typeof CIRRUS_API_BASE_URL !== 'undefined') {\n return CIRRUS_API_BASE_URL;\n }\n\n return process.env.CIRRUS_API_BASE_URL!;\n}\n\nconst cirrusPublicTranscribeApi = new Api({\n baseUrl: getBaseUrl(),\n});\n\ncirrusPublicTranscribeApi.addCachedService('front', '2', {\n public: {\n transcribing: {\n changes: {\n __noteam__: true\n },\n result: {\n __noteam__: true\n },\n },\n },\n});\n\n// rework\nconst publicTranscribeApi = (cirrusPublicTranscribeApi as any).front;\n\nexport {\n publicTranscribeApi,\n};\n","import React, {\n Component,\n createRef,\n} from 'react';\nimport {TranscribingText} from 'app/components/DeviceDetails/TranscriberDevice/Text/TranscribingText';\nimport {TranscribingLP} from 'app/components/DeviceDetails/TranscriberDevice/Model/TranscribingLP';\nimport {isNil} from 'app/util/isNil';\nimport {parseLocationSearchParamsToJSON} from 'app/util/parseLocationSearchParamsToJSON';\nimport {publicTranscribeApi} from 'app/api/CirrusPublicTranscribeApi';\nimport {ApiResponseNumeralStatus} from 'app/data/Status';\n\nfunction TranscriptionStoppedScreen() {\n return (\n
\n \n This transcription session is not active.\n \n\n
\n \n\n \n
\n
\n );\n}\n\ntype Props = Record;\n\ntype State = {\n transcript: any[];\n paused: boolean;\n stopped: boolean;\n};\n\n// to reworkd and get rid of ctor\nexport class PublicTranscribeRoot extends Component {\n public scrolledToBottom = true;\n public scrollContainerRef = createRef();\n public containerEndRef = createRef();\n\n // add types\n public transcribedIds = {};\n public transcript: any[] = [];\n public id: any;\n public lp: any;\n\n constructor(props) {\n super(props);\n\n // rework\n const parsed = parseLocationSearchParamsToJSON(window.location.search);\n this.id = parsed?.id;\n\n this.state = {\n transcript: [],\n paused: false,\n stopped: true,\n };\n\n this.lp = new TranscribingLP({\n call: ({version}, {getAbort}) => {\n if (version === 0) {\n this.transcript = [];\n this.transcribedIds = {};\n this.scrolledToBottom = true;\n\n this.setState({\n transcript: [],\n });\n }\n\n return publicTranscribeApi.public().transcribing(parsed?.id).changes({version}).get(undefined, {getAbort});\n },\n onUpdate: response => {\n const stopped = response.status === ApiResponseNumeralStatus.NoContent;\n const paused = stopped ? false : !isNil(response.data.stop_time);\n\n let transcript: any[] = [];\n let partialTranscript = null;\n\n if (stopped) {\n this.transcript = [];\n this.transcribedIds = {};\n this.scrolledToBottom = true;\n } else {\n response.data.transcript.forEach(item => {\n if (item.partial) {\n partialTranscript = item;\n } else {\n const {id} = item;\n\n if (this.transcribedIds[id] !== true) {\n this.transcribedIds[id] = true;\n this.transcript.push(item);\n }\n }\n });\n\n if (partialTranscript === null) {\n transcript = this.transcript;\n } else {\n transcript = [...this.transcript, partialTranscript];\n }\n }\n\n this.setState({\n transcript,\n paused,\n stopped,\n });\n },\n });\n }\n\n componentDidMount() {\n if (!isNil(this.id)) {\n this.lp.start();\n }\n }\n\n getSnapshotBeforeUpdate() {\n const element = this.scrollContainerRef.current;\n\n if (element) {\n // allow 50px inaccuracy by adding 50\n this.scrolledToBottom = element.scrollHeight - element.clientHeight <= element.scrollTop + 50;\n }\n\n return null;\n }\n\n componentDidUpdate() {\n if (this.scrolledToBottom === true) {\n setTimeout(() => {\n if (!this.containerEndRef.current) {\n return;\n }\n\n this.containerEndRef.current.scrollIntoView({behavior: 'smooth'});\n // element.scrollTop = element.scrollHeight - element.clientHeight\n });\n }\n }\n\n render() {\n const {\n transcript,\n paused,\n stopped,\n } = this.state;\n\n return (\n
\n {stopped ? (\n \n ) : (\n \n \n\n
\n
\n )}\n
\n );\n }\n}\n","/**\n * ```typescript\n * parseLocationSearchParamsToJSON('a=1&b=2&c=3'); //=> {a: 1, b: 2, c: 3}\n * parseLocationSearchParamsToJSON('?a=1&b=2'); //=> {a: 1, b: 2}\n * parseLocationSearchParamsToJSON(''); //=> {}\n * ```\n */\nexport function parseLocationSearchParamsToJSON(paramsString?: string): Record {\n const result = {};\n\n if (!paramsString) {\n return result;\n }\n\n if (paramsString.startsWith('?')) {\n paramsString = paramsString.substr(1);\n }\n\n paramsString.split('&').forEach(param => {\n const [\n key = '',\n value = '',\n ] = param.split('=');\n result[key] = value;\n });\n\n return result;\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {PublicTranscribeRoot} from 'app/components/Root/publicTranscribe';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n ReactDOM.render(React.createElement(PublicTranscribeRoot), document.querySelector('#app'));\n});\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = function() { return Promise.resolve(); };","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 517;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t517: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkepiphan\"] = self[\"webpackChunkepiphan\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [736], function() { return __webpack_require__(13618); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","THEME","VARIANT","SIZE","SORT_DIRECTION","UserRole","Master","Owner","Operator","Editor","UserLoginType","KeyboardCode","isNil","value","symbol","Icon","constructor","className","this","undefined","Error","arg","names","Array","isArray","name","trim","dataId","testAttr","onclick","cb","label","text","placement","class","labelText","labelPlacement","reactComponent","onClick","size","XS","S","M","L","XL","XXL","theme","PRIMARY","SUCCESS","WARNING","DANGER","SECONDARY","SvgIcon","svg","super","icon","xlinkHref","id","key","Icons","accountBox","addPaymentMethod","archive","arrowDown","arrowLeft","arrowLightRight","arrowRight","arrowTwoWay","arrowUp","attention","audioControl","backward","backLeft","bell","bracketLeft","bracketRight","calendar","caretThin","caretTriangle","chain","check","checkCircle","checkboxChecked","checkboxUnchecked","checkmark","close","creditCard","cross","coupon","copy","deviceCircuit","devicePresetLastApplied","devices","down","download","downloadSimple","edit","effects","ellipsis","exclamation","fair","facebook","filter","fleet","forward","fullscreen","gridView","groupFolder","groupFolderStroke","groupMove","groupRemove","helpCircle","infinity","home","info","invite","keyframe","layout","lightning","link","listView","liveScrypt","loadingDots","lock","logout","money","movie","notifications","pause","play","plus","plusCircle","post","powerOff","preferences","prepostroll","preset","record","recordEvent","remove","render","required","resizer","retry","save","search","searchMinus","searchPlus","selectPreset","send","settings","share","sliders","spinner","srt","star","starActive","stop","streaming","streamingEvent","subscriptions","switchOff","switchOn","teams","timer","trash","twitter","unlink","updateFirmware","upload","urlGoArrow","urlGoBackArrow","user","users","videocamera","volume","videoFile","warning","youtube","facebookStreamingService","facebookStreamingServiceSmall","youtubeStreamingService","youtubeStreamingServiceSmall","twitchStreamingService","twitch","twitchStreamingServiceSmall","rtmpStreamingService","rtmp","rtmpStreamingServiceSmall","batchForStreamingUpgradeToPro","deviceGroupingUpgradeToPro","highDefinitionVideoUpgradeToPro","devicePresetAfu","devicePresetEpiphanCloud","devicePresetChannels","devicePresetCms","devicePresetDisplays","devicePresetEdid","devicePresetFrontScreen","devicePresetNetwork","devicePresetSources","devicePresetSystem","teamPresetsFreePlanPlaceholderFile","cms","events","eventFreePlan","eventCMSIsTurnedOff","eventNoDevices","virtualDevice","guideIcon","virtualDeviceIcon","projectIconColored","microsoftTeams","videoOn","videoOff","microOn","microOff","options","disconnectedSource","zoom","account","savings","edge","connect","unify","trimTranscript","transcript","itemsCount","slice","TranscribingText","Component","props","state","componentDidUpdate","prevProps","prevIds","reduce","acc","b","partial","add","Set","forEach","item","new","has","setState","paused","disabled","placeholder","transcriptProps","rest","length","map","ApiResponseStatus","ApiResponseNumeralStatus","TeamMemberStatus","noop","_args","LongPoll","call","pollTimeout","failPollTimeout","checkUpdated","onUpdate","onStart","onStop","checkUpdatedCb","onUpdateCb","onStartCb","onStopCb","start","stopped","_onStart","_run","abortRequest","window","clearTimeout","timeout","_onStop","_checkUpdated","response","_onUpdate","immediately","_fetch","failed","setTimeout","getAbort","abort","then","status","Ok","NoContent","catch","DIVIDER","isDivider","character","trimEndSlash","string","trimAllSlashes","substr","trimStartSlash","Url","join","urls","url","url1","url2","String","processValue","decodeURI","decodeURIComponent","encodeURIComponent","MediaType","isString","RequestMethod","Chain","parent","endpoints","cache","onAjaxError","_generateEndpoints","endpointName","endpointOptions","Object","entries","params","childEndpoints","customUrl","__url__","__nocache__","noTeam","__noteam__","protocol","__protocol__","Endpoint","traverseUp","fn","node","_id","redrawAfterRequest","get","bind","put","delete","_getUrlPart","paramsAcc","queryString","queryStringSorted","fetchRequest","method","data","contentType","Json","headers","abortController","body","AbortController","Get","unset","joinSymbol","includes","JSON","stringify","Promise","resolve","reject","signal","error","err","console","getResponse","getOrElse","Post","Put","Delete","postForm","XWwwFormUrlencoded","json","push","Service","version","getCurrentTeamId","minutesToSeconds","minutes","DEFAULT_GARBAGE_COLLECTION_TIMEOUT","seconds","secondsToMilliseconds","Cache","expireMs","garbageCollectionTimeout","Map","garbageCollectionTimeoutId","garbageCollection","storage","isExpired","Date","now","set","time","elseValue","destroy","removeOldValues","Api","baseUrl","_teamId","emitter","addService","handleAjaxError","addCachedService","host","split","location","setCurrentTeamId","teamId","listener","ajaxErrorHandlers","ajaxErrorHandler","Dispatcher","_verifyListenersCount","eventsListeners","_impl","eventNames","count","listenerCount","sort","a","eventWithMaxListeners","find","_currentMaxListeners","warn","on","eventName","removeListener","emit","payload","cirrusApi","billing","plan","plans","v2","econnect","prices","files","alerts","dictionary","devicenumbers","task","live","batch_task","commands","preview","hls","playlist","snapshot","source","sources","afu","network","stream","unpair","streams","transcribe","configuration","resume","request","channel_previews","source_previews","audio_levels","presets","cloud","local","rename","remote_login","vpearls","vpearl","update","system","ssrt","inputs","firmware","pairing_stick","groups","device","move","batch","ungroup","attach","test","destinations","transcribing","result","sessions","clear","txt","oauth","google","internal_cognito","me","device_alerts","team","accept","decline","all_device_alerts","unread_device_alerts","acknowledge_device_alerts","agreement","policy","master","invoice","payment_info","validate","activate","switch_to_ibb","cancel_switch_to_ibb","history","pdf","subscribe","unsubscribe","tokens","versions","connections","box","dropbox","pair","ms","tenant","shareable_link","meetings","disconnect","participants","mute","injection","password","permissions","calls","ms_tenants","health","zoomAccounts","ws","schedule","refresh","action","extend","confirm","current_event","current_events","control","current","eventrules","filemanager","v1","windows","front","maintenance","processResponseData","Unauthorized","URLSearchParams","append","pathname","hash","URL","origin","toString","assign","MethodNotAllowed","ErrorData","NewTeam","href","finally","log","TranscribingLP","deviceId","_deviceId","_abortRequest","_call","_version","_lp","stop_time","_paused","once","cirrusPublicTranscribeApi","public","changes","publicTranscribeApi","TranscriptionStoppedScreen","src","alt","width","height","PublicTranscribeRoot","createRef","parsed","paramsString","startsWith","param","parseLocationSearchParamsToJSON","lp","transcribedIds","scrolledToBottom","partialTranscript","componentDidMount","getSnapshotBeforeUpdate","element","scrollContainerRef","scrollHeight","clientHeight","scrollTop","containerEndRef","scrollIntoView","behavior","ref","document","addEventListener","querySelector","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","splice","r","n","getter","__esModule","d","getPrototypeOf","obj","__proto__","t","mode","ns","create","def","indexOf","getOwnPropertyNames","definition","o","defineProperty","enumerable","e","g","globalThis","Function","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}