{"version":3,"file":"js/application-d97c717e42e360c5220b.js","mappings":"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","sources":["webpack://app/./app/javascript/controllers/index.js","webpack://app/./app/javascript/application.js","webpack://app/./app/javascript/channels/consumer.js","webpack://app/./app/javascript/channels/hub_channel.js","webpack://app/./app/javascript/channels/index.js","webpack://app/./app/javascript/controllers/clipboard_controller.js","webpack://app/./app/javascript/controllers/custom_form_boolean_controller.js","webpack://app/./app/javascript/controllers/data_table_controller.js","webpack://app/./app/javascript/controllers/document_controller.js","webpack://app/./app/javascript/controllers/dropdown_controller.js","webpack://app/./app/javascript/controllers/dropdown_menu_controller.js","webpack://app/./app/javascript/controllers/example_fetch_controller.js","webpack://app/./app/javascript/controllers/flash_controller.js","webpack://app/./app/javascript/controllers/hello_controller.js","webpack://app/./app/javascript/controllers/hub_messages_controller.js","webpack://app/./app/javascript/controllers/input_controller.js","webpack://app/./app/javascript/controllers/invite_controller.js","webpack://app/./app/javascript/controllers/maps_controller.js","webpack://app/./app/javascript/controllers/menu_controller.js","webpack://app/./app/javascript/controllers/modal_controller.js","webpack://app/./app/javascript/controllers/multi_input_controller.js","webpack://app/./app/javascript/controllers/presence_controller.js","webpack://app/./app/javascript/controllers/provider_filters_controller.js","webpack://app/./app/javascript/controllers/quick_fill_controller.js","webpack://app/./app/javascript/controllers/search_multiselect_controller.js","webpack://app/./app/javascript/controllers/search_select_controller.js","webpack://app/./app/javascript/controllers/short_date_controller.js","webpack://app/./app/javascript/controllers/show_more_controller.js","webpack://app/./app/javascript/controllers/tabs_controller.js","webpack://app/./app/javascript/controllers/time_zone_controller.js","webpack://app/./app/javascript/controllers/tooltip_controller.js","webpack://app/./app/javascript/controllers/us_phone_controller.js","webpack://app/./app/javascript/lib/audio_wrapper.js","webpack://app/./app/javascript/lib/recordUtils.js","webpack://app/./app/javascript/lib/video_wrapper.js","webpack://app/./app/javascript/controllers/video_recorder_controller.js","webpack://app/./app/javascript/lib/events.js","webpack://app/./app/javascript/channels/ sync _channel\\.js$","webpack://app/./app/javascript/controllers/ sync _controller\\.js$","webpack://app/./app/javascript/images/ sync ^\\.\\/.*$"],"sourcesContent":["// Load all the controllers within this directory and all subdirectories.\n// Controller files must be named *_controller.js.\n\nimport { Application } from '@hotwired/stimulus'\nimport { definitionsFromContext } from '@hotwired/stimulus-webpack-helpers'\n\nwindow.Stimulus = Application.start()\nconst context = require.context('controllers', true, /_controller\\.js$/)\nwindow.Stimulus.load(definitionsFromContext(context))\n","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nimport 'css/application.css'\n\nimport 'channels'\nimport 'controllers'\n\nimport 'lib/events.js'\n\nimport { Turbo } from '@hotwired/turbo-rails'\n\nimport '@fortawesome/fontawesome-free/js/fontawesome'\nimport '@fortawesome/fontawesome-free/js/solid'\nimport '@fortawesome/fontawesome-free/js/regular'\nimport '@fortawesome/fontawesome-free/js/brands'\n\n// import menu from 'lib/menu'\n\nrequire('@rails/ujs').start()\nrequire('@rails/activestorage').start()\n// menu()\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\nconst images = require.context('./images', true)\nconst imagePath = (name) => images(name, true) // eslint-disable-line\n\n// Make accessible for Electron and Mobile adapters\nwindow.Turbo = Turbo\n\n// Something with the upgrade to webpack caused odd scrolling issue on reload\nif (window.history.scrollRestoration) {\n window.history.scrollRestoration = 'manual'\n} else {\n window.onbeforeunload = function () {\n window.scrollTo(0, 0)\n }\n}\n","// Action Cable provides the framework to deal with WebSockets in Rails.\n// You can generate new channels where WebSocket features live using the `bin/rails generate channel` command.\n\nimport { createConsumer } from '@rails/actioncable'\n\nexport default createConsumer()\n","import consumer from './consumer'\n\nif (document.querySelector(\"meta[name='current-user']\")) {\n window.hubChannel = consumer.subscriptions.create('HubChannel', {\n connected () {\n // Called when the subscription is ready for use on the server\n },\n\n disconnected () {\n // Called when the subscription has been terminated by the server\n },\n\n received (data) {\n // Called when there's incoming data on the websocket for this channel\n const el = document.querySelector(`#${data.id}`)\n\n if (el !== null) {\n const parent = el.parentNode\n const node = new window.DOMParser().parseFromString(data.html, 'text/html').body.firstElementChild\n if (node instanceof window.Node) {\n parent.replaceChild(node, el)\n }\n }\n },\n\n read (id) {\n this.perform('read', { id: id })\n },\n\n togglePresence () {\n this.perform('toggle_presence', {})\n }\n })\n}\n","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","import { Controller } from '@hotwired/stimulus'\nimport ClipboardJS from 'clipboard'\nimport tippy from 'tippy.js'\n\n/*\n * \n */\nexport default class extends Controller {\n static values = {\n successMessage: String,\n errorMessage: String\n }\n\n connect () {\n this.clipboard = new ClipboardJS(this.element)\n this.clipboard.on('success', (e) => this.tooltip(this.successMessage))\n this.clipboard.on('error', (e) => this.tooltip(this.errorMessage))\n }\n\n disconnect () {\n this.tippy.destroy()\n }\n\n tooltip (message) {\n tippy(this.element, {\n content: message,\n showOnCreate: true,\n onHidden: (instance) => {\n instance.destroy()\n }\n })\n }\n\n get successMessage () {\n return this.successMessageValue || 'Copied!'\n }\n\n get errorMessage () {\n return this.errorMessageValue || 'Failed!'\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['children']\n\n connect () {\n const inputs = this.element.querySelectorAll('input[type=\"radio\"]')\n inputs.forEach((i) => {\n if (i.checked && i.value === 'yes') {\n this.childrenTarget.classList.remove('hidden')\n }\n })\n }\n\n change (e) {\n if (e.target.value === 'yes') {\n this.childrenTarget.classList.remove('hidden')\n } else if (e.target.value === 'no') {\n this.childrenTarget.classList.add('hidden')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['collapseIcon']\n\n toggleRow (e) {\n e.target.closest('tr').nextSibling.classList.toggle('hidden')\n this.collapseIconTarget.querySelector('.fa-angle-right').classList.toggle('hidden')\n this.collapseIconTarget.querySelector('.fa-angle-down').classList.toggle('hidden')\n\n if (e.target.closest('tr').nextSibling.querySelector('.bulk_select')) {\n e.target.closest('tr').nextSibling.querySelector('.bulk_select').style.display = 'none'\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nlet newIndex\nlet index\nexport default class extends Controller {\n static targets = ['document', 'upload', 'clearButton', 'hubMessageFiles', 'documentMessage', 'showFiles', 'subText']\n\n static values = {\n type: String,\n images: Array,\n index: Number\n }\n\n connect () {\n }\n\n showDocument () {\n this.documentMessageTarget.classList.add('w-full')\n this.element.parentElement.previousSibling.classList.add('hidden')\n this.element.parentElement.querySelector('#audio-video-message').classList.add('hidden')\n this.documentTarget.classList.toggle('hidden')\n this.uploadTarget.classList.toggle('hidden')\n this.clearButtonTarget.classList.remove('hidden')\n this.hubMessageFilesTarget.click()\n }\n\n changeImage (e) {\n e.preventDefault()\n\n index = index === undefined ? this.indexValue : newIndex\n\n newIndex = this.typeValue === 'left' ? index - 1 : index + 1\n newIndex = this.updateImage(newIndex, this.element, this.typeValue)\n\n this.element.closest('.modal').querySelector('#preview').src = this.imagesValue[newIndex]\n index = newIndex\n }\n\n updateImage (newIndex, element, type) {\n if (newIndex === 0) {\n element.classList.add('hidden')\n if (this.typeValue === 'left') {\n element.nextSibling.classList.remove('hidden')\n }\n } else if (newIndex > 0 && newIndex < this.imagesValue.length - 1) {\n element.classList.remove('hidden')\n const sibling = type === 'left' ? element.nextSibling : element.previousElementSibling\n sibling.classList.remove('hidden')\n } else if (newIndex === this.imagesValue.length - 1) {\n element.classList.add('hidden')\n } else {\n index = this.indexValue\n newIndex = index\n element.classList.add('hidden')\n }\n return newIndex\n }\n\n showfiles (e) {\n const files = e.target.files\n if (files.length > 0) {\n e.target.parentElement.parentElement.classList.add('hidden')\n this.iterateFiles(e, files)\n } else {\n e.target.parentElement.parentElement.classList.remove('hidden')\n }\n this.subTextTarget.classList.remove('hidden')\n this.element.parentElement.lastChild.classList.add('hidden')\n }\n\n iterateFiles (e, files) {\n for (const file in files) {\n if (+file || +file === 0) {\n const imageSpan = document.createElement('span')\n imageSpan.classList.add('fa', 'fa-image', 'fa-3x')\n imageSpan.title = files[file].name\n e.target.parentElement.parentElement.nextSibling.appendChild(imageSpan)\n }\n }\n }\n\n backToForm () {\n this.element.parentElement.previousSibling.classList.remove('hidden')\n this.documentMessageTarget.classList.remove('w-full')\n this.uploadTarget.classList.remove('hidden')\n this.documentTarget.classList.add('hidden')\n this.element.nextElementSibling.querySelector('#audio-video-message').classList.remove('hidden')\n if (this.showFilesTarget.hasChildNodes()) {\n this.showFilesTarget.innerHTML = ''\n }\n this.subTextTarget.classList.add('hidden')\n this.element.parentElement.lastChild.classList.remove('hidden')\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['submenu']\n\n connect () {\n this.openMenu = false\n this.hide = this.hide.bind(this)\n this.closeMenu = this.closeMenu.bind(this)\n this.nevermind = this.nevermind.bind(this)\n this.hideMenus()\n }\n\n hideMenus () {\n this.submenuTarget.classList.add('hidden')\n }\n\n show (e) {\n e.preventDefault()\n\n this.submenuTarget.classList.remove('hidden')\n this.submenuTarget.addEventListener('mouseleave', this.closeMenu)\n this.submenuTarget.addEventListener('mouseenter', this.nevermind)\n\n this.openMenu = true\n this.closeMenu(null, 1000)\n }\n\n closeMenu (_e, timeout = 500) {\n this.closeTimeout = setTimeout(this.hide, timeout)\n }\n\n nevermind () {\n clearTimeout(this.closeTimeout)\n }\n\n hide (_e) {\n if (this.openMenu) {\n this.submenuTarget.classList.add('hidden')\n this.submenuTarget.removeEventListener('mouseleave', this.closeMenu)\n this.submenuTarget.removeEventListener('mouseenter', this.nevermind)\n this.openMenu = false\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['menu']\n\n initialize () {\n this.show = this.show.bind(this)\n this.hide = this.hide.bind(this)\n }\n\n connect () {\n this.element.addEventListener('mouseenter', this.show)\n this.element.addEventListener('mouseleave', this.hide)\n }\n\n disconnect () {\n this.element.removeEventListener('mouseenter', this.show)\n this.element.removeEventListener('mouseleave', this.hide)\n }\n\n show () {\n window.clearTimeout(this.hideTimeout)\n this.menuTarget.classList.remove('lg:hidden')\n window.setTimeout(() => {\n this.menuTarget.classList.remove('lg:opacity-0')\n this.menuTarget.classList.add('lg:opacity-100')\n }, 1)\n }\n\n hide () {\n this.menuTarget.classList.remove('lg:opacity-100')\n this.menuTarget.classList.add('lg:opacity-0')\n this.hideTimeout = window.setTimeout(() => {\n this.menuTarget.classList.add('lg:hidden')\n }, 500)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { get } from '@rails/request.js'\n\nexport default class extends Controller {\n static targets = ['action'];\n\n load (e) {\n const params = new URLSearchParams()\n const path = this.actionTarget.getAttribute('data-path')\n params.append('id', this.actionTarget.getAttribute('data-id'))\n\n get(`${path}?${params}`, { responseKind: 'turbo-stream' })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n connect () {\n this.timeout = window.setTimeout(() => {\n this.close()\n }, 6000)\n }\n\n close () {\n this.element.classList.add('opacity-0')\n\n window.setTimeout(() => {\n if (this.element.parentNode !== null) {\n this.element.parentNode.removeChild(this.element)\n }\n }, 1000)\n }\n\n disconnect () {\n if (this.timeout) {\n window.clearTimeout(this.timeout)\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n connect () {\n this.element.textContent = 'Hello World!'\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { get } from '@rails/request.js'\n\nlet page = 1\nexport default class extends Controller {\n static values = {\n restrict: String\n }\n\n static targets = ['restricted', 'message', 'date', 'messageDate']\n\n initialize () {\n this.observeViewed()\n this.readTimeouts = {}\n }\n\n connect () {\n this.scroll = this.scroll.bind(this)\n this.scrollToLast = this.scrollToLast.bind(this)\n this.markRead = this.markRead.bind(this)\n this.clearRead = this.clearRead.bind(this)\n\n this.scrollToLast()\n this.removeRestricted()\n\n const config = { childList: true }\n this.observer = new window.MutationObserver(this.scroll)\n this.observer.observe(this.element, config)\n }\n\n disconnect () {\n this.observer.disconnect()\n this.intersectionObserver.disconnect()\n\n for (const key in this.readTimeouts) {\n if (Object.prototype.hasOwnProperty.call(this.readTimeouts, key)) {\n window.clearTimeout(this.readTimeouts[key])\n delete this.readTimeouts[key]\n }\n }\n }\n\n scroll (mutationsList, _observer) {\n for (const mutation of mutationsList) {\n this.scrollToMessage(mutation)\n }\n }\n\n scrollToMessage (mutation) {\n if (mutation.type === 'childList') {\n if (mutation.addedNodes.length === 1 && !mutation.addedNodes[0].classList.contains('hidden')) {\n this.scrollToLast()\n }\n this.removeRestricted()\n }\n }\n\n scrollToLast () {\n const children = this.element.children\n if (children.length > 0) {\n children[children.length - 1].scrollIntoView()\n }\n }\n\n removeRestricted () {\n this.restrictedTargets.forEach((el) => {\n if (el.dataset.restrictedTo !== this.restrictValue) {\n el.remove()\n }\n })\n }\n\n messageTargetConnected (el) {\n if (el.dataset.isRead !== 'true') {\n console.log(`watching ${el.id} is unread`)\n this.intersectionObserver.observe(el)\n }\n }\n\n observeViewed () {\n this.intersectionObserver = new window.IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.intersectionRatio <= 0) {\n this.clearRead(entry)\n } else {\n this.markRead(entry)\n }\n })\n })\n }\n\n markRead (entry) {\n const targetId = entry.target.id\n const timeout = window.setTimeout(() => {\n this.intersectionObserver.unobserve(entry.target)\n entry.target.classList.remove('bg-gray-300')\n window.hubChannel.read(targetId)\n }, 3000)\n\n this.readTimeouts[targetId] = timeout\n }\n\n clearRead (entry) {\n const targetId = entry.target.id\n const timeout = this.readTimeouts[targetId]\n if (timeout !== null) {\n window.clearTimeout(timeout)\n delete this.readTimeouts[targetId]\n }\n }\n\n loadMessages (e) {\n if (e.target.scrollTop === 0 && page < parseInt(e.target.getAttribute('data-pages'))) {\n page += 1\n const params = new URLSearchParams()\n const path = e.target.getAttribute('data-path')\n params.append('page', page)\n\n if (!e.target.querySelector('#no_data')) {\n get(`${path}?${params}`, { responseKind: 'turbo-stream' })\n e.target.scrollTo(0, 10)\n }\n }\n }\n\n updateDate (e) {\n const topLabel = this.dateTarget\n const dateLabels = this.messageDateTargets\n let currentLabel = null\n dateLabels.forEach((dateLabel) => {\n dateLabel.classList.remove('hidden')\n const offsetTop = dateLabel.offsetTop\n dateLabel.classList.add('hidden')\n if (e.target.scrollTop >= offsetTop) {\n currentLabel = dateLabel\n }\n })\n if (currentLabel) {\n topLabel.value = currentLabel.innerText\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['input', 'label', 'wrapper']\n\n connect (e) {\n }\n\n focus (e) {\n }\n\n focusOnInput () {\n }\n\n blur (e) {\n }\n\n addValidationMessage () {\n }\n\n input (e) {\n if (e.target.value.length > 0) {\n this.checkValidity({ insertError: false }, e.target)\n } else {\n this.checkValidity({ insertError: true }, e.target)\n }\n }\n\n invalid (e) {\n e.preventDefault()\n this.checkValidity({ insertError: true }, e.target)\n }\n\n checkValidity (options, input) {\n const validationErrorClass = 'validation-error'\n const insertError = options.insertError\n const parent = input.parentNode\n const error = parent.getElementsByClassName(`${validationErrorClass}`)[0] || document.createElement('div')\n\n if (!input.validity.valid && input.validationMessage) {\n error.className = validationErrorClass\n error.textContent = input.validationMessage\n\n if (insertError) {\n this.insertInputError(input, parent, error)\n }\n } else {\n this.removeInputError(input, parent, error)\n }\n }\n\n insertInputError (input, parent, error) {\n if (input.getAttribute('type') === 'radio') {\n if (parent.parentNode.parentNode.getElementsByClassName('validation-error').length === 0) {\n parent.parentElement.parentElement.append(error)\n }\n } else {\n parent.appendChild(error)\n parent.classList.add('has-validation-error', 'mb-8')\n input.classList.add('error')\n }\n }\n\n removeInputError (input, parent, error) {\n if (input.getAttribute('type') === 'radio' && parent.parentNode.parentNode.getElementsByClassName('validation-error').length > 0) {\n parent.parentNode.parentNode.removeChild(parent.parentNode.parentNode.lastElementChild)\n } else {\n parent.classList.remove('has-validation-error', 'mb-8')\n input.classList.remove('error')\n error.remove()\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['emailDiv', 'phoneDiv']\n\n connect () {\n this.emailDivTarget.classList.add('hidden')\n this.phoneDivTarget.classList.add('hidden')\n }\n\n toggleInvitationVia (e) {\n let target, oppositeTarget\n\n if (e.target.value === 'email') {\n target = this.emailDivTarget\n oppositeTarget = this.phoneDivTarget\n } else if (e.target.value === 'sms') {\n target = this.phoneDivTarget\n oppositeTarget = this.emailDivTarget\n }\n\n target.classList.remove('hidden')\n target.querySelector('input').required = true\n oppositeTarget.classList.add('hidden')\n oppositeTarget.querySelector('input').required = false\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport 'leaflet/dist/leaflet.css'\nimport 'leaflet-defaulticon-compatibility/dist/leaflet-defaulticon-compatibility.webpack.css' // Re-uses images from ~leaflet package\nimport * as L from 'leaflet'\nimport 'leaflet-defaulticon-compatibility'\nimport { forIn } from 'lodash'\nimport { EventBus } from 'lib/events'\n\nexport default class extends Controller {\n static targets = ['map']\n static values = {\n centerLocation: Array,\n markers: Object,\n zoom: Number,\n inModal: Boolean\n }\n\n connect (e) {\n if (this.inModalValue) {\n EventBus.on('modal:show', (modalEl) => {\n if (modalEl.contains(this.element)) {\n this.initMap()\n }\n })\n } else {\n this.initMap()\n }\n }\n\n disconnect () {\n EventBus.removeAllListeners('modal:show')\n }\n\n initMap () {\n if (this.map) { return }\n\n const zoom = this.zoomValue\n\n this.map = L.map(this.element, {\n center: this.centerLocationValue,\n zoom: zoom,\n scrollWheelZoom: false\n })\n\n L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {\n attribution: '© OpenStreetMap contributors'\n }).addTo(this.map)\n\n forIn(this.markersValue, (providers, location) => {\n if (providers.length > 0) {\n L.marker(location.split(',')).addTo(this.map)\n .bindPopup(providers.join(', '))\n } else {\n L.marker(location.split(',')).addTo(this.map)\n }\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['menu']\n\n toggle (e) {\n this.menuTarget.classList.toggle('hidden')\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { EventBus } from 'lib/events'\n\nexport default class extends Controller {\n static targets = ['modal']\n\n show (e) {\n this.modalTarget.classList.remove('hidden')\n EventBus.emit('modal:show', this.modalTarget)\n }\n\n hide (e) {\n this.modalTarget.classList.add('hidden')\n EventBus.emit('modal:hide', this.modalTarget)\n }\n\n stopPropagation (e) {\n e.stopPropagation()\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['newTemplate', 'container']\n\n initialize () {\n this.newTemplate = this.newTemplateTarget.cloneNode(true)\n this.newTemplateTarget.parentNode.removeChild(this.newTemplateTarget)\n }\n\n add (e) {\n e.preventDefault()\n e.stopImmediatePropagation()\n this.containerTarget.appendChild(this.newTemplate.cloneNode(true))\n }\n\n remove (e) {\n e.preventDefault()\n e.stopImmediatePropagation()\n const el = e.currentTarget.closest('.multi-input')\n el.parentNode.removeChild(el)\n }\n\n // Might not need anymore\n // closest(el, selector) {\n // var retval = null;\n // while (el) {\n // if (el.matches(selector)) {\n // retval = el;\n // break\n // }\n // el = el.parentElement;\n // }\n // return retval;\n // }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['link']\n\n toggle (e) {\n e.preventDefault()\n\n console.log('presence', this.linkTarget)\n this.linkTarget.querySelector('#offline').classList.toggle('hidden')\n this.linkTarget.querySelector('#online').classList.toggle('hidden')\n\n window.hubChannel.togglePresence()\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n toggleFilters (e) {\n e.preventDefault()\n document.querySelector('#filter-form').classList.toggle('hidden')\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['input']\n\n fill (e) {\n e.preventDefault()\n e.stopImmediatePropagation()\n\n this.inputTarget.value = e.target.dataset.fill\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { get } from '@rails/request.js'\nimport { forEach } from 'lodash'\n\nexport default class extends Controller {\n static targets = ['query', 'results', 'selectedResult', 'inputField']\n static values = {\n searchAction: String,\n multiselect: Boolean,\n existing: String\n }\n\n connect () {\n this.selectedValues = {}\n this.timeout = null\n\n if (this.existingValue.length > 0) {\n const array = this.existingValue.split('***')\n array.forEach((a) => {\n const keyValue = a.split('||')\n this.selectedValues[keyValue[0]] = keyValue[1]\n })\n }\n this.updateChosenValues()\n }\n\n search (_e) {\n const params = new URLSearchParams()\n params.append('query', this.queryTarget.value)\n params.append('target', this.resultsTarget.getAttribute('id'))\n get(`${this.searchActionValue}?${params}`, { responseKind: 'turbo-stream' })\n }\n\n hideList () {\n setTimeout(() => {\n this.resultsTarget.classList.add('hidden')\n }, 200)\n }\n\n showList () {\n this.resultsTarget.classList.remove('hidden')\n }\n\n choose (e) {\n // Note: This is the condition which provide us facility to choose just one option or multiple options from the list.\n if (!this.multiselectValue && this.selectedValues.length === 1) {\n this.hideList() // This will close the options once we click on any option.\n return\n }\n\n this.selectedValues[e.target.dataset.id] = e.target.dataset.text\n e.target.classList.toggle('hidden')\n this.selectedResultTarget.classList.remove('hidden')\n\n this.updateChosenValues()\n this.hideList()\n }\n\n remove (e) {\n delete this.selectedValues[e.target.dataset.id]\n this.updateChosenValues()\n }\n\n updateChosenValues () {\n const values = []\n for (const [key, value] of Object.entries(this.selectedValues)) {\n values.push(key + '||' + value)\n }\n\n this.inputFieldTarget.value = values.join('***')\n\n this.selectedResultTarget.innerHTML = this.selectedOptionsDom()\n }\n\n selectedOptionsDom () {\n let html = ''\n forEach(this.selectedValues, (name, id) => {\n html += `\n
  • \n
    ${name}
    \n search-multiselect#remove\"> x\n
  • \n `\n })\n return html\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { get } from '@rails/request.js'\n\nexport default class extends Controller {\n static targets = ['query', 'results', 'inputField']\n static values = {\n searchAction: String\n }\n\n connect () {\n this.timeout = null\n\n if (this.inputFieldTarget.value) {\n this.queryTarget.value = this.inputFieldTarget.value\n }\n }\n\n search (_e) {\n const doSearch = function () {\n const params = new URLSearchParams()\n params.append('query', this.queryTarget.value)\n params.append('target', this.resultsTarget.getAttribute('id'))\n get(`${this.searchActionValue}?${params}`, { responseKind: 'turbo-stream' })\n this.showList()\n }.bind(this)\n\n clearTimeout(this.timeout)\n this.timeout = setTimeout(() => {\n doSearch()\n }, 300)\n }\n\n hideList () {\n setTimeout(() => {\n this.resultsTarget.classList.add('hidden')\n }, 200)\n }\n\n showList () {\n this.resultsTarget.classList.remove('hidden')\n }\n\n select (e) {\n // e.params will work w/ Stimuls 3+\n const value = e.target.dataset.searchSelectValueParam\n const label = e.target.dataset.searchSelectLabelParam\n this.updateChoosenValues(value, label)\n this.hideList()\n }\n\n updateChoosenValues (value, label) {\n this.inputFieldTarget.value = value\n this.queryTarget.value = label\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n input () {\n let value = ''\n value = this.element.value.replace(/[^\\d/]/g, '')\n\n const lastChar = value[value.length - 1]\n // console.log(`Short date format ${value}, ${value.length} length, ${lastChar}`)\n\n if (value.length !== 3 && value.length !== 6 && lastChar === '/') {\n value = value.substr(0, value.length - 1)\n }\n\n if (value.length >= 3 && value[2] !== '/') { value = value.substr(0, 2) + '/' + value.substr(2) }\n\n if (value.length >= 6 && value[5] !== '/') { value = value.substr(0, 5) + '/' + value.substr(5) }\n\n if (value.length > 10) { value = value.substr(0, 10) }\n\n this.element.value = value\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { EventBus } from 'lib/events'\n\nexport default class extends Controller {\n static targets = ['content', 'button']\n\n connect (e) {\n this.setShowMore()\n\n EventBus.on('modal:show', (modalEl) => {\n this.setShowMore()\n })\n }\n\n toggleContent () {\n this.contentTarget.classList.toggle('max-h-60')\n if (this.buttonTarget.innerHTML === 'Show More...') {\n this.buttonTarget.innerHTML = 'Less'\n } else {\n this.buttonTarget.innerHTML = 'Show More...'\n }\n }\n\n setShowMore () {\n if (this.contentTarget.clientHeight > 260) {\n this.contentTarget.classList.add('max-h-60')\n this.buttonTarget.classList.remove('hidden')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { get } from '@rails/request.js'\n\nexport default class extends Controller {\n static values = {\n common: Boolean\n }\n\n static targets = ['content', 'tabs']\n\n connect () {\n const tabTogglers = this.tabsTarget.children\n tabTogglers[0].click()\n }\n\n fetchContent (e) {\n const params = new URLSearchParams()\n const path = e.target.getAttribute('data-path')\n params.append('id', e.target.getAttribute('data-frame-id'))\n get(`${path}?${params}`, { responseKind: 'turbo-stream' })\n }\n\n activeTab (e) {\n e.preventDefault()\n\n const target = this.tabName(e.target)\n if (!this.commonValue) {\n const id = target.getAttribute('data-content-id')\n // Get current Tab element that is clicked\n const lastActiveTabContent = this.contentTarget.querySelector('.tab-content:not(.hidden)')\n if (lastActiveTabContent) { lastActiveTabContent.classList.add('hidden') }\n\n this.contentTarget.querySelector('#' + id).classList.remove('hidden')\n }\n\n const activeTab = this.tabsTarget.querySelector('.border-b-4')\n if (activeTab) { this.updateTabTogglers([activeTab], 0) }\n\n // Change classes of active tabs\n e.target.classList.remove('text-gray-500')\n e.target.classList.add('text-black', 'border-primary', 'border-b-4')\n this.toggleTextClass(e.target.firstChild.classList, 'add')\n // if (e.target.firstChild.classList !== undefined) {\n // e.target.firstChild.classList.add(\"text-primary\");\n // }\n }\n\n tabName (target) {\n if (target.nodeName === 'LI') {\n return target.firstChild\n } else if (target.nodeName === 'A') {\n return target\n }\n }\n\n updateTabTogglers (tabTogglers, i) {\n tabTogglers[i].classList.add('text-gray-500')\n tabTogglers[i].classList.remove('border-primary', 'text-black', 'border-b-4', 'text-primary')\n this.toggleTextClass(tabTogglers[i].firstChild.classList, 'remove')\n // if (tabTogglers[i].firstChild.classList !== undefined) {\n // tabTogglers[i].firstChild.classList.remove(\"text-primary\");\n // }\n tabTogglers[i].parentNode.classList.remove('border-primary', 'border-b-4')\n }\n\n toggleTextClass (eleClass, operation) {\n if (eleClass !== undefined) {\n if (operation === 'add') { return eleClass.add('text-primary') }\n\n eleClass.remove('text-primary')\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n connect () {\n this.element.value = Intl.DateTimeFormat().resolvedOptions().timeZone\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport tippy from 'tippy.js'\n\n/*\n * \n */\nexport default class extends Controller {\n connect () {\n this.tippy = tippy(this.element, { allowHTML: true })\n }\n\n disconnect () {\n this.tippy.destroy()\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n input () {\n let value = ''\n value = this.element.value.replace(/[^\\d]/g, '')\n\n const area = value.substr(0, 3)\n const zone = value.substr(3, 3)\n const last = value.substr(6, 4)\n\n console.log('value', value, value.length, area, zone, last)\n\n let display = ''\n if (area.length > 0) {\n display = '(' + area\n }\n if (zone !== '') {\n display += ') ' + zone\n }\n if (last !== '') {\n display += '-' + last\n }\n\n this.element.value = display\n }\n}\n","let mediaRecorder;\nexport class AudioWrapper {\n constructor({\n startCheckingCallback,\n stopCheckingCallback,\n readyCallback,\n errorCallback,\n finishRecordCallback,\n startRecordCallback\n })\n {\n startCheckingCallback();\n\n let audioCtx;\n let canvas = document.querySelector(\"canvas\");\n const canvasCtx = canvas.getContext(\"2d\");\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n const constraints = { audio: true };\n let chunks = [];\n \n let onSuccess = function(stream) {\n navigator.mediaDevices.enumerateDevices().then(function(devices) {\n setTimeout(() => {\n stopCheckingCallback();\n }, 1000);\n\n const microphones = devices.filter(d => d.kind === 'audioinput');\n\n if (microphones.length > 0) {\n microphones.forEach(function(device) {\n if (device.label == \"\") {\n errorCallback({\n name: \"Access to Microphone denied\",\n message: \"Please enable microphone access on your browser.\"\n });\n }\n else {\n readyCallback();\n\n mediaRecorder = new MediaRecorder(stream);\n\n if(!audioCtx) {\n audioCtx = new AudioContext();\n }\n const source = audioCtx.createMediaStreamSource(stream);\n const analyser = audioCtx.createAnalyser();\n analyser.fftSize = 2048;\n const bufferLength = analyser.frequencyBinCount;\n const dataArray = new Uint8Array(bufferLength);\n \n source.connect(analyser);\n\n const WIDTH = canvas.width\n const HEIGHT = canvas.height;\n analyser.getByteTimeDomainData(dataArray);\n\n canvasCtx.fillStyle = 'rgb(200, 200, 200)';\n canvasCtx.fillRect(0, 0, WIDTH, HEIGHT);\n canvasCtx.lineWidth = 2;\n canvasCtx.strokeStyle = 'rgb(0, 0, 0)';\n canvasCtx.beginPath();\n\n let sliceWidth = WIDTH * 1.0 / bufferLength;\n let x = 0;\n \n for(let i = 0; i < bufferLength; i++) {\n let v = dataArray[i] / 128.0;\n let y = v * HEIGHT/2;\n if(i === 0) {\n canvasCtx.moveTo(x, y);\n } else {\n canvasCtx.lineTo(x, y);\n }\n x += sliceWidth;\n }\n\n canvasCtx.lineTo(canvas.width, canvas.height/2);\n canvasCtx.stroke();\n\n mediaRecorder.onstart = function() {\n startRecordCallback(\"audio\");\n }\n \n mediaRecorder.onstop = function(e) {\n finishRecordCallback(chunks);\n chunks = [];\n }\n\n mediaRecorder.ondataavailable = function(e) {\n chunks.push(e.data);\n }\n }\n });\n }\n })\n .catch(function(err) {\n errorCallback({\n name: err.name,\n message: err.message\n });\n });\n }\n\n let onError = function(err) {\n errorCallback({\n name: \"The following error occured: \",\n message: err\n });\n }\n \n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n } else {\n errorCallback({\n name: \"The following error occured: \",\n message: \"getUserMedia not supported on your browser!\"\n });\n }\n }\n\n startRecording() {\n mediaRecorder.start();\n }\n\n stopRecording() {\n mediaRecorder.stop();\n }\n}\n","import {Decoder, Encoder, tools, Reader} from 'ts-ebml';\nimport {blobToArrayBuffer, addFileInfo} from 'videojs-record/src/js/utils/file-util';\n\nexport function convertVideoUsingTsEBML(data, resultCallback) {\n if (data.type === 'video/mp4') {\n return resultCallback(data);\n }\n const decoder = new Decoder();\n const reader = new Reader();\n reader.logging = false;\n reader.drop_default_duration = false;\n\n // save timestamp\n const timestamp = new Date();\n timestamp.setTime(data.lastModified);\n\n // load and convert blob\n blobToArrayBuffer(data).then((buffer) => {\n // decode\n const elms = decoder.decode(buffer);\n elms.forEach((elm) => {\n reader.read(elm);\n });\n reader.stop();\n\n // generate metadata\n let refinedMetadataBuf = tools.makeMetadataSeekable(reader.metadatas, reader.duration, reader.cues);\n let body = buffer.slice(reader.metadataSize);\n\n // create new blob\n let result = new Blob([refinedMetadataBuf, body], {type: data.type});\n\n // add existing file info\n addFileInfo(result, timestamp);\n\n resultCallback(result);\n });\n}\n","import videojs from \"video.js\";\nimport \"videojs-record/dist/videojs.record.js\";\nimport \"videojs-record/dist/plugins/videojs.record.ts-ebml.js\";\nimport \"recordrtc\";\nimport \"video.js/dist/video-js.css\";\nimport \"videojs-record/dist/css/videojs.record.css\";\nimport { convertVideoUsingTsEBML } from './recordUtils'\n\nexport class VideoWrapper {\n constructor({\n videoId,\n startCheckingCallback,\n stopCheckingCallback,\n readyCallback,\n errorCallback,\n finishRecordCallback,\n startRecordCallback\n })\n {\n this._player = videojs(videoId, {\n controls: false,\n loop: false,\n fluid: true,\n plugins: {\n record: {\n videoMimeType: \"video/mp4\",\n audio: true,\n maxLength: 18000,\n debug: true,\n video: {\n width: 600,\n height: 380\n }\n }\n }\n });\n\n startCheckingCallback();\n\n this._player.one(\"deviceReady\", () => {\n this._player.record().enumerateDevices();\n });\n\n // this._player.on(\"enumerateReady\", () => {\n // this._devices = Array.from(new Set(this._player.record().devices));\n // if (enumerateReadyCallback) {\n // enumerateReadyCallback();\n // }\n // });\n\n this._player.on(\"deviceReady\", () => {\n readyCallback();\n });\n\n this._player.on(\"deviceError\", () => {\n setTimeout(() => {\n stopCheckingCallback();\n }, 1000);\n\n if (this._player.deviceErrorCode.name === \"NotAllowedError\") {\n errorCallback({\n name: \"Access to camera and microphone denied\",\n message: \"Please enable camera and microphone access on your browser.\"\n });\n } else {\n errorCallback({\n name: \"Camera and microphone not found\",\n message:\n \"Please ensure camera and microphone are turned on and not used by other applications (Skype, Google Hangouts, etc.).\"\n });\n }\n });\n\n this._player.on(\"error\", (element, error) => {\n errorCallback({\n name: \"device or browser error\",\n message: error\n })\n });\n\n this._player.on(\"startRecord\", () => {\n if (startRecordCallback) {\n startRecordCallback(\"video\");\n }\n });\n\n this._player.on(\"finishRecord\", () => {\n const video = this._player.record();\n video.stopDevice();\n videojs.convertVideoUsingTsEBML = convertVideoUsingTsEBML;\n videojs.convertVideoUsingTsEBML(\n this._player.recordedData,\n convertedData => {\n if (finishRecordCallback) {\n finishRecordCallback(convertedData);\n }\n if (this.stopRecordingCallback) {\n this.stopRecordingCallback(convertedData);\n }\n }\n );\n });\n\n this._player.record().getDevice();\n }\n\n startRecording() {\n return new Promise(resolve => {\n this._player.record().start();\n resolve();\n });\n }\n\n stopRecording() {\n return new Promise(resolve => {\n this.stopRecordingCallback = resolve;\n this._player.record().stop();\n });\n }\n\n player() {\n return this._player;\n }\n\n devices() {\n return this._devices;\n }\n\n //\n // In case we want to allow user to choose Video device from available devices\n // setVideoInput(deviceId, afterSetCallback) {\n // try {\n // this._player.record().setVideoInput(deviceId);\n // if (afterSetCallback) {\n // afterSetCallback();\n // }\n // } catch (error) {\n // console.warn(error);\n // }\n // }\n //\n // In case we want to allow user to choose Audio device from available devices\n //\n // setAudioInput(deviceId, afterSetCallback) {\n // navigator.mediaDevices\n // .getUserMedia({\n // audio: {\n // deviceId: {\n // exact: deviceId\n // }\n // },\n // video: true\n // })\n // .then(stream => {\n // this._audio_stream = stream;\n // const audioContext = new AudioContext();\n // const analyser = audioContext.createAnalyser();\n // const microphone = audioContext.createMediaStreamSource(stream);\n // const javascriptNode = audioContext.createScriptProcessor(2048, 1, 1);\n // analyser.smoothingTimeConstant = 0.8;\n // analyser.fftSize = 1024;\n // microphone.connect(analyser);\n // analyser.connect(javascriptNode);\n // javascriptNode.connect(audioContext.destination);\n\n // this._player.record().setAudioInput(deviceId);\n\n // javascriptNode.onaudioprocess = () => {\n // const frequencyBinCounts = new Uint8Array(analyser.frequencyBinCount);\n // analyser.getByteFrequencyData(frequencyBinCounts);\n // if (afterSetCallback) {\n // afterSetCallback(\n // Math.round(\n // mean(frequencyBinCounts) / SETTINGS_VOLUME_INDICATOR_SIZE\n // )\n // );\n // }\n // };\n // })\n // .catch(error => {\n // console.warn(error);\n // });\n // }\n //\n\n getDeviceInfo(callback) {\n if (callback) {\n callback();\n }\n this._player.record().getDevice();\n }\n\n destroy() {\n if (this._audio_stream) {\n this._audio_stream.getTracks().forEach(track => {\n track.stop();\n });\n }\n this._player.dispose();\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport { post } from '@rails/request.js'\nimport { AudioWrapper } from '../lib/audio_wrapper'\nimport { VideoWrapper } from '../lib/video_wrapper'\n\nlet finalVideoStream\nlet startInterval\nlet totalSeconds\n\nfunction startTimer (id) {\n totalSeconds++\n const seconds = pad(totalSeconds % 60)\n const minutes = pad(parseInt(totalSeconds / 60))\n\n document.querySelector('#' + id).innerHTML = minutes + ':' + seconds\n}\n\nfunction pad (val) {\n return val > 9 ? val : '0' + val\n}\n\nexport default class extends Controller {\n static targets = [\n 'startAudio', 'stopAudio', 'destroyAudio', 'canvas', 'sendMessage', 'clearButton', 'videoRecorder', 'audioRecorder', 'videoContainer',\n 'videoPlayer', 'subText'\n ]\n\n connect () {\n }\n\n backToForm () {\n this.element.parentElement.previousSibling.classList.remove('hidden')\n this.element.parentElement.querySelector('#document-message').classList.remove('hidden')\n this.clearButtonTarget.classList.add('hidden')\n this.videoRecorderTarget.classList.add('hidden')\n this.audioRecorderTarget.classList.add('hidden')\n this.element.querySelector('#device_message').classList.add('hidden')\n this.element.classList.remove('w-full')\n this.subTextTarget.classList.add('hidden')\n this.element.nextElementSibling.classList.remove('hidden')\n }\n\n showVideoRecorder () {\n this.element.parentElement.previousSibling.classList.add('hidden')\n this.element.parentElement.querySelector('#document-message').classList.add('hidden')\n this.videoRecorderTarget.classList.remove('hidden')\n this.clearButtonTarget.classList.remove('hidden')\n this.subTextTarget.classList.remove('hidden')\n this.element.nextElementSibling.classList.add('hidden')\n\n this.element.classList.add('w-full')\n\n const video = document.createElement('video')\n video.className = 'video-js vjs-default-skin hidden'\n video.id = 'video_player'\n this.videoContainerTarget.prepend(video)\n\n this.videoWrapper = new VideoWrapper({\n videoId: 'video_player',\n startCheckingCallback: this.startChecking,\n stopCheckingCallback: this.stopChecking,\n readyCallback: this.videoDeviceReady,\n errorCallback: this.videoDeviceError,\n finishRecordCallback: this.finishedRecording,\n startRecordCallback: this.startedRecording\n })\n\n if (!this.canvasTarget.classList.contains('hidden')) {\n this.canvasTarget.classList.toggle('hidden')\n this.startAudioTarget.parentNode.classList.toggle('hidden')\n }\n }\n\n showAudioRecorder () {\n if (this.videoWrapper && this.videoWrapper._player.player_ != null) {\n this.videoWrapper.destroy()\n document.querySelector('#video_start_button').classList.add('hidden')\n }\n\n this.element.parentElement.previousSibling.classList.add('hidden')\n this.element.parentElement.querySelector('#document-message').classList.add('hidden')\n this.clearButtonTarget.classList.remove('hidden')\n\n this.audioRecorderTarget.classList.remove('hidden')\n this.videoRecorderTarget.classList.add('hidden')\n this.canvasTarget.classList.remove('hidden')\n this.element.classList.add('w-full')\n this.subTextTarget.classList.remove('hidden')\n this.element.nextElementSibling.classList.add('hidden')\n\n this.audioWrapper = new AudioWrapper({\n startCheckingCallback: this.startChecking,\n stopCheckingCallback: this.stopChecking,\n readyCallback: this.audioDeviceReady,\n errorCallback: this.videoDeviceError,\n finishRecordCallback: this.finishedAudioRecording,\n startRecordCallback: this.startedRecording\n })\n }\n\n startChecking () {\n // To show a message on UI device are being checked start video streaming.\n document.querySelector('#device_message').classList.remove('hidden')\n document.querySelector('#device_message').innerHTML = 'Device are being checked.'\n }\n\n stopChecking () {\n // To show a message that Device check is now Finished.\n document.querySelector('#device_message').innerHTML = 'Device check is now Finished.'\n }\n\n videoDeviceReady () {\n // To show a message that Device is ready.\n document.querySelector('#device_message').innerHTML = 'Device check is now Finished.'\n document.querySelector('#video_player').classList.remove('hidden')\n document.querySelector('#video_start_button').classList.remove('hidden')\n }\n\n videoDeviceError (error) {\n // To show error message in the UI, the error message will be received in argument.\n document.querySelector('#device_message').innerHTML = error.name + ': ' + error.message\n }\n\n finishedRecording (finalVideoStreamData) {\n // This will receive final video stream which then can be sent to backend to store with active storage.\n finalVideoStream = finalVideoStreamData\n\n document.querySelector('#video_player').classList.toggle('hidden')\n document.querySelector('#VideoPlayer').classList.toggle('hidden')\n\n const vsrc = window.URL.createObjectURL(finalVideoStreamData)\n const video = document.querySelector('#VideoPlayer')\n video.src = vsrc\n }\n\n startedRecording (type) {\n // Just to show the timer in HH:MM:SS format, To show this when the\n startInterval = null\n document.querySelector('#' + type + '_recording_time').classList.remove('hidden')\n totalSeconds = 0\n startInterval = setInterval(startTimer, 1000, type + '_recording_time')\n }\n\n startRecording () {\n // This will be called by user when user click on start recording button.\n this.videoWrapper.startRecording()\n document.querySelector('#video_stop_button').classList.toggle('hidden')\n document.querySelector('#video_start_button').classList.toggle('hidden')\n }\n\n stopRecording () {\n // This will be called by user when user click on stop recording button.\n this.videoWrapper.stopRecording()\n clearInterval(startInterval)\n document.querySelector('#video_stop_button').classList.toggle('hidden')\n document.querySelector('#send_destroy_video_button').classList.toggle('hidden')\n }\n\n sendMessage (e) {\n // This will be called by user when user click on send button.\n const path = this.sendMessageTarget.getAttribute('data-path')\n const type = this.sendMessageTarget.getAttribute('data-type')\n\n const filename = type === 'Audio' ? 'Audio' : 'Video'\n\n const data = new FormData()\n data.append('hub_message[file]', finalVideoStream, filename)\n data.append('hub_message[_type]', 'Hub::Message::AudioVideo')\n data.append('hub_message[payload][codec]', finalVideoStream.type.split('codecs=')[1] || '')\n post(`${path}`, { body: data, responseKind: 'turbo-stream' })\n\n if (this.videoWrapper && this.videoWrapper._player.player_ != null) {\n this.videoWrapper.destroy()\n this.element.querySelector('#video_start_button').classList.add('hidden')\n }\n }\n\n destroyVideo () {\n this.videoWrapper.destroy()\n this.hideShowElement('video', this.element)\n this.videoPlayerTarget.classList.toggle('hidden')\n\n const video = document.createElement('video')\n video.className = 'video-js vjs-default-skin hidden'\n video.id = 'video_player'\n this.videoContainerTarget.prepend(video)\n }\n\n startAudioRecording (e) {\n this.audioWrapper.startRecording()\n this.startAudioTarget.parentNode.classList.toggle('hidden')\n this.stopAudioTarget.parentNode.classList.toggle('hidden')\n }\n\n stopAudioRecording (e) {\n this.audioWrapper.stopRecording()\n clearInterval(startInterval)\n this.stopAudioTarget.parentNode.classList.toggle('hidden')\n this.canvasTarget.classList.toggle('hidden')\n this.element.querySelector('#send_destroy_audio_button').classList.toggle('hidden')\n }\n\n audioDeviceReady () {\n // To show a message that Device is ready.\n document.querySelector('#device_message').innerHTML = 'Device check is now Finished.'\n document.querySelector('#audio_start_button').classList.remove('hidden')\n }\n\n finishedAudioRecording (chunks) {\n const audio = document.createElement('audio')\n audio.setAttribute('controls', '')\n audio.setAttribute('style', 'width: 100%')\n audio.setAttribute('data-video-recorder-target', 'destroyAudio')\n document.querySelector('#audio-container').prepend(audio)\n\n audio.controls = true\n const blob = new Blob(chunks, { type: 'audio/ogg; codecs=opus' })\n const audioURL = window.URL.createObjectURL(blob)\n audio.src = audioURL\n finalVideoStream = blob\n }\n\n destroyAudio (e) {\n this.destroyAudioTarget.remove()\n\n this.hideShowElement('audio', this.element)\n }\n\n hideShowElement (id, element) {\n element.querySelector('#send_destroy_' + id + '_button').classList.toggle('hidden')\n element.querySelector('#device_message').classList.toggle('hidden')\n element.querySelector('#' + id + '_recording_time').classList.toggle('hidden')\n element.querySelector('#' + id + '_recording_time').innerHTML = ''\n element.classList.remove('w-full')\n }\n}\n","const EventEmitter = require('events')\nexport const EventBus = new EventEmitter();\nEventBus.setMaxListeners(150);\n","var map = {\n\t\"./hub_channel.js\": 313,\n\t\"channels/hub_channel.js\": 313\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6463;","var map = {\n\t\"./clipboard_controller.js\": 241,\n\t\"./custom_form_boolean_controller.js\": 8895,\n\t\"./data_table_controller.js\": 4087,\n\t\"./document_controller.js\": 9801,\n\t\"./dropdown_controller.js\": 7449,\n\t\"./dropdown_menu_controller.js\": 7652,\n\t\"./example_fetch_controller.js\": 102,\n\t\"./flash_controller.js\": 8402,\n\t\"./hello_controller.js\": 4880,\n\t\"./hub_messages_controller.js\": 5730,\n\t\"./input_controller.js\": 3886,\n\t\"./invite_controller.js\": 1925,\n\t\"./maps_controller.js\": 2427,\n\t\"./menu_controller.js\": 4550,\n\t\"./modal_controller.js\": 5065,\n\t\"./multi_input_controller.js\": 3002,\n\t\"./presence_controller.js\": 7465,\n\t\"./provider_filters_controller.js\": 7976,\n\t\"./quick_fill_controller.js\": 3210,\n\t\"./search_multiselect_controller.js\": 3399,\n\t\"./search_select_controller.js\": 2445,\n\t\"./short_date_controller.js\": 2122,\n\t\"./show_more_controller.js\": 4634,\n\t\"./tabs_controller.js\": 9290,\n\t\"./time_zone_controller.js\": 9925,\n\t\"./tooltip_controller.js\": 1395,\n\t\"./us_phone_controller.js\": 5588,\n\t\"./video_recorder_controller.js\": 6919,\n\t\"controllers/clipboard_controller.js\": 241,\n\t\"controllers/custom_form_boolean_controller.js\": 8895,\n\t\"controllers/data_table_controller.js\": 4087,\n\t\"controllers/document_controller.js\": 9801,\n\t\"controllers/dropdown_controller.js\": 7449,\n\t\"controllers/dropdown_menu_controller.js\": 7652,\n\t\"controllers/example_fetch_controller.js\": 102,\n\t\"controllers/flash_controller.js\": 8402,\n\t\"controllers/hello_controller.js\": 4880,\n\t\"controllers/hub_messages_controller.js\": 5730,\n\t\"controllers/input_controller.js\": 3886,\n\t\"controllers/invite_controller.js\": 1925,\n\t\"controllers/maps_controller.js\": 2427,\n\t\"controllers/menu_controller.js\": 4550,\n\t\"controllers/modal_controller.js\": 5065,\n\t\"controllers/multi_input_controller.js\": 3002,\n\t\"controllers/presence_controller.js\": 7465,\n\t\"controllers/provider_filters_controller.js\": 7976,\n\t\"controllers/quick_fill_controller.js\": 3210,\n\t\"controllers/search_multiselect_controller.js\": 3399,\n\t\"controllers/search_select_controller.js\": 2445,\n\t\"controllers/short_date_controller.js\": 2122,\n\t\"controllers/show_more_controller.js\": 4634,\n\t\"controllers/tabs_controller.js\": 9290,\n\t\"controllers/time_zone_controller.js\": 9925,\n\t\"controllers/tooltip_controller.js\": 1395,\n\t\"controllers/us_phone_controller.js\": 5588,\n\t\"controllers/video_recorder_controller.js\": 6919\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 7074;","var map = {\n\t\"./about/dr-hinds-er.png\": 7405,\n\t\"./about/dr-hinds-er@2x.png\": 7349,\n\t\"./about/dr-hinds-profile.png\": 6310,\n\t\"./about/dr-hinds-profile@2x.png\": 6397,\n\t\"./about/drhinds.png\": 395,\n\t\"./about/drhinds@2x.png\": 8929,\n\t\"./about/dusty.png\": 8766,\n\t\"./about/dusty@2x.png\": 2869,\n\t\"./about/explore-badge.svg\": 8806,\n\t\"./about/greg.png\": 5771,\n\t\"./about/greg@2x.png\": 2825,\n\t\"./about/hero-circle.png\": 8973,\n\t\"./about/hero-circle@2x.png\": 7356,\n\t\"./about/how-graph2.svg\": 973,\n\t\"./about/how-graphic-1.png\": 9691,\n\t\"./about/how-graphic-1@2x.png\": 6812,\n\t\"./about/idea-graphic.svg\": 8922,\n\t\"./about/jp.png\": 9727,\n\t\"./about/jp@2x.png\": 8114,\n\t\"./about/matt.png\": 9550,\n\t\"./about/matt@2x.png\": 737,\n\t\"./about/orb-1.svg\": 1522,\n\t\"./about/orb-2.svg\": 6579,\n\t\"./about/orb-3.svg\": 6915,\n\t\"./angle-right.svg\": 4316,\n\t\"./arrow-down.png\": 8553,\n\t\"./careers/careers-graphic-1.png\": 3048,\n\t\"./careers/careers-graphic-1@2x.png\": 9097,\n\t\"./careers/careers-graphic-2.png\": 3831,\n\t\"./careers/careers-graphic-2@2x.png\": 496,\n\t\"./careers/icon-1-solve.svg\": 2884,\n\t\"./careers/icon-2-remote.svg\": 9668,\n\t\"./careers/icon-3-vacation.svg\": 7250,\n\t\"./careers/icon-4-build.svg\": 3966,\n\t\"./careers/icon-5-choice.svg\": 7984,\n\t\"./careers/icon-6-stipend.svg\": 4478,\n\t\"./careers/orb-1.svg\": 1617,\n\t\"./careers/orb-2.svg\": 2298,\n\t\"./careers/orb-3.svg\": 1177,\n\t\"./careers/orb-4.png\": 3897,\n\t\"./careers/orb-4.svg\": 611,\n\t\"./careers/orb-6.svg\": 4958,\n\t\"./careers/orb-7.svg\": 9879,\n\t\"./check.svg\": 8917,\n\t\"./email.svg\": 1675,\n\t\"./facebook.svg\": 9233,\n\t\"./find-dr/finddr-icon-1of4.svg\": 2271,\n\t\"./find-dr/finddr-icon-2of4.svg\": 1545,\n\t\"./find-dr/finddr-icon-3of4.svg\": 2295,\n\t\"./find-dr/finddr-icon-4of4.svg\": 6150,\n\t\"./find-dr/finddr-prodshot-mobile.svg\": 8021,\n\t\"./find-dr/finddr-prodshot.svg\": 7370,\n\t\"./find-dr/finder-product.png\": 3587,\n\t\"./find-dr/hero-find-a-doctor.svg\": 3794,\n\t\"./find-dr/icon-choice.svg\": 3388,\n\t\"./find-dr/icon-confirm.svg\": 9360,\n\t\"./find-dr/icon-finddoctor.svg\": 6399,\n\t\"./find-dr/provider-hero.svg\": 1469,\n\t\"./hippa.svg\": 80,\n\t\"./home-frame.png\": 8621,\n\t\"./home-insurance.png\": 6831,\n\t\"./home-medical-history.png\": 3680,\n\t\"./home-medication.png\": 2015,\n\t\"./home/arrow-down.svg\": 8176,\n\t\"./home/arrow-up.svg\": 5452,\n\t\"./home/avatar-2.png\": 9417,\n\t\"./home/avatar.png\": 1708,\n\t\"./home/bg-why.svg\": 9738,\n\t\"./home/book.svg\": 6334,\n\t\"./home/checker.svg\": 2231,\n\t\"./home/customer-1.png\": 3097,\n\t\"./home/customer-2.png\": 5715,\n\t\"./home/customer-3.png\": 4270,\n\t\"./home/doc.png\": 9689,\n\t\"./home/green-dot.svg\": 8118,\n\t\"./home/hero.svg\": 492,\n\t\"./home/home-river-1.png\": 7731,\n\t\"./home/home-river-1@2x.png\": 6440,\n\t\"./home/home-river-2.png\": 2219,\n\t\"./home/home-river-2@2x.png\": 7312,\n\t\"./home/home-river-3.png\": 5218,\n\t\"./home/home-river-3@2x.png\": 4006,\n\t\"./home/home-river-4.png\": 9467,\n\t\"./home/home-river-4@2x.png\": 2444,\n\t\"./home/insurance.svg\": 4306,\n\t\"./home/marker.svg\": 5733,\n\t\"./home/medical.svg\": 4784,\n\t\"./home/person.svg\": 107,\n\t\"./home/prescription.svg\": 9838,\n\t\"./home/sign.svg\": 6086,\n\t\"./home/star.svg\": 9755,\n\t\"./home/switch.svg\": 4300,\n\t\"./home/teal-dot.svg\": 6357,\n\t\"./home/uni-1.png\": 2168,\n\t\"./home/uni-2.png\": 9127,\n\t\"./home/uni-3.png\": 7523,\n\t\"./icon_copy.svg\": 8181,\n\t\"./insurance/icon-cost.svg\": 3862,\n\t\"./insurance/icon-coverage.svg\": 4989,\n\t\"./insurance/icon-outofpocket.svg\": 2130,\n\t\"./insurance/insurance-hero.svg\": 3267,\n\t\"./insurance/insurance-icon-1of4.svg\": 3326,\n\t\"./insurance/insurance-icon-2of4.svg\": 4531,\n\t\"./insurance/insurance-icon-3of4.svg\": 1855,\n\t\"./insurance/insurance-icon-4of4.svg\": 5836,\n\t\"./insurance/insurance-prodshot.svg\": 5667,\n\t\"./insurance/insurance-product-hero.svg\": 670,\n\t\"./insurance/insurance-product-mobile.svg\": 2610,\n\t\"./insurance/insurance-product.png\": 350,\n\t\"./leaflet/images/layers-2x.png\": 6887,\n\t\"./leaflet/images/layers.png\": 3928,\n\t\"./leaflet/images/marker-icon-2x.png\": 4986,\n\t\"./leaflet/images/marker-icon.png\": 1626,\n\t\"./leaflet/images/marker-shadow.png\": 8614,\n\t\"./medical/icon-chronpain.svg\": 5666,\n\t\"./medical/icon-pregnancy.svg\": 2930,\n\t\"./medical/icon-stayhealthy.svg\": 4330,\n\t\"./medical/medical-records-hero.svg\": 8262,\n\t\"./medical/records-hero.svg\": 5993,\n\t\"./medical/records-icon-1of4.svg\": 4861,\n\t\"./medical/records-icon-2of4.svg\": 8481,\n\t\"./medical/records-icon-3of4.svg\": 9391,\n\t\"./medical/records-icon-4of4.svg\": 1199,\n\t\"./medical/records-prodshot-mobile.svg\": 7102,\n\t\"./medical/records-prodshot.svg\": 6622,\n\t\"./medical/records-product-mobile.svg\": 6735,\n\t\"./medical/records-product.png\": 3742,\n\t\"./member/50.svg\": 6908,\n\t\"./member/85.svg\": 7082,\n\t\"./member/hero-insurance.svg\": 1067,\n\t\"./member/hero-med-management.svg\": 3055,\n\t\"./member/hero-records.svg\": 9957,\n\t\"./member/hero-transfer-success.svg\": 1678,\n\t\"./member/icon-check-circle.svg\": 4720,\n\t\"./member/icon-info.svg\": 7571,\n\t\"./member/icon-insurance.svg\": 7026,\n\t\"./member/icon-medications.svg\": 4770,\n\t\"./member/icon-provider-search.svg\": 7817,\n\t\"./member/icon-records.svg\": 5015,\n\t\"./member/icon-uncheck-circle.svg\": 7987,\n\t\"./member/journal-image.svg\": 9214,\n\t\"./member/model-transfer-meds-success.svg\": 9785,\n\t\"./member/model-transfer-meds.svg\": 162,\n\t\"./member/provider-search-hero-overlay.svg\": 978,\n\t\"./member/records-working.gif\": 353,\n\t\"./member/sample-medical-records-phone.png\": 1321,\n\t\"./member/sample-medical-records.png\": 3749,\n\t\"./member/sample-medications-phone.png\": 5089,\n\t\"./member/sample-medications.png\": 2777,\n\t\"./owl.video.play.png\": 859,\n\t\"./pharmacy/arrow-down.svg\": 3657,\n\t\"./pharmacy/arrow-right-teal.svg\": 3683,\n\t\"./pharmacy/arrow-up.svg\": 6778,\n\t\"./pharmacy/avatar-2.png\": 6149,\n\t\"./pharmacy/avatar-3.png\": 4440,\n\t\"./pharmacy/avatar.png\": 1623,\n\t\"./pharmacy/bg-why.svg\": 6443,\n\t\"./pharmacy/bg.svg\": 6851,\n\t\"./pharmacy/book.svg\": 2076,\n\t\"./pharmacy/check.svg\": 8377,\n\t\"./pharmacy/checker.svg\": 5583,\n\t\"./pharmacy/customer-1.png\": 1175,\n\t\"./pharmacy/customer-2.png\": 3553,\n\t\"./pharmacy/customer-3.png\": 7228,\n\t\"./pharmacy/doc.png\": 5753,\n\t\"./pharmacy/dr_hinds_avatar.png\": 8170,\n\t\"./pharmacy/email.svg\": 3095,\n\t\"./pharmacy/green-dot.svg\": 3292,\n\t\"./pharmacy/hero.svg\": 1034,\n\t\"./pharmacy/insurance.svg\": 9677,\n\t\"./pharmacy/marker.svg\": 3943,\n\t\"./pharmacy/medical.svg\": 6233,\n\t\"./pharmacy/medication-hero.svg\": 3071,\n\t\"./pharmacy/medication-product.png\": 0,\n\t\"./pharmacy/person.svg\": 6591,\n\t\"./pharmacy/pharm-hero.png\": 3861,\n\t\"./pharmacy/pharm-hero@2x.png\": 9697,\n\t\"./pharmacy/pharm-prod-mobile.svg\": 5578,\n\t\"./pharmacy/phone-medical-records.png\": 7965,\n\t\"./pharmacy/phone.svg\": 509,\n\t\"./pharmacy/prescription.svg\": 54,\n\t\"./pharmacy/product-computer.svg\": 6416,\n\t\"./pharmacy/product-feature-1.svg\": 877,\n\t\"./pharmacy/product-feature-2.svg\": 9700,\n\t\"./pharmacy/product-feature-3.svg\": 9332,\n\t\"./pharmacy/product-feature-4.svg\": 5302,\n\t\"./pharmacy/product-hero-banner.png\": 6725,\n\t\"./pharmacy/product-hero-bg.svg\": 1902,\n\t\"./pharmacy/product-message-1.png\": 4641,\n\t\"./pharmacy/product-message-2.png\": 9961,\n\t\"./pharmacy/product.png\": 6760,\n\t\"./pharmacy/say.png\": 582,\n\t\"./pharmacy/screen-1.png\": 6588,\n\t\"./pharmacy/screen-2.png\": 9666,\n\t\"./pharmacy/screen-3.png\": 7714,\n\t\"./pharmacy/screen-4.png\": 2526,\n\t\"./pharmacy/sign.svg\": 3703,\n\t\"./pharmacy/star.svg\": 5878,\n\t\"./pharmacy/switch.svg\": 9159,\n\t\"./pharmacy/teal-dot.svg\": 1456,\n\t\"./pharmacy/uni-1.png\": 3676,\n\t\"./pharmacy/uni-2.png\": 2490,\n\t\"./pharmacy/uni-3.png\": 9291,\n\t\"./phone.svg\": 1252,\n\t\"./rc-icon.svg\": 1621,\n\t\"./rc_logo.svg\": 5137,\n\t\"./rc_logo_tag.png\": 2053,\n\t\"./rc_logo_tag.svg\": 1044,\n\t\"./rc_white_blue_logo.png\": 7689,\n\t\"./secure.svg\": 5544,\n\t\"./step-1-icon.png\": 1470,\n\t\"./step-2-icon-dark.png\": 6308,\n\t\"./step-2-icon-light.png\": 2574,\n\t\"./step-2.2-icon-dark.png\": 3333,\n\t\"./step-2.2-icon-light.png\": 214,\n\t\"./step-3-icon-dark.png\": 3821,\n\t\"./step-3-icon-light.png\": 2030,\n\t\"./testimonials/Randall.png\": 213,\n\t\"./testimonials/Randall@2x.png\": 5921,\n\t\"./testimonials/Tiffany.png\": 9678,\n\t\"./testimonials/Tiffany@2x.png\": 7151,\n\t\"./testimonials/background-testimonials.svg\": 1080,\n\t\"./testimonials/kelsey.png\": 2133,\n\t\"./testimonials/kelsey@2x.png\": 2971,\n\t\"./testimonials/preston.png\": 6183,\n\t\"./testimonials/preston@2x.png\": 5029,\n\t\"./twitter.svg\": 2456,\n\t\"./youtube.svg\": 4295\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 7647;"],"names":["window","Stimulus","Application","context","require","load","definitionsFromContext","Turbo","history","scrollRestoration","onbeforeunload","scrollTo","createConsumer","document","querySelector","hubChannel","consumer","subscriptions","create","connected","disconnected","received","data","el","id","parent","parentNode","node","DOMParser","parseFromString","html","body","firstElementChild","Node","replaceChild","read","this","perform","togglePresence","channels","keys","forEach","Controller","connect","clipboard","ClipboardJS","element","on","e","tooltip","successMessage","errorMessage","disconnect","tippy","destroy","message","content","showOnCreate","onHidden","instance","successMessageValue","errorMessageValue","values","String","querySelectorAll","i","checked","value","childrenTarget","classList","remove","change","target","add","targets","toggleRow","closest","nextSibling","toggle","collapseIconTarget","style","display","newIndex","index","showDocument","documentMessageTarget","parentElement","previousSibling","documentTarget","uploadTarget","clearButtonTarget","hubMessageFilesTarget","click","changeImage","preventDefault","undefined","indexValue","typeValue","updateImage","src","imagesValue","type","length","previousElementSibling","showfiles","files","iterateFiles","subTextTarget","lastChild","file","imageSpan","createElement","title","name","appendChild","backToForm","nextElementSibling","showFilesTarget","hasChildNodes","innerHTML","images","Array","Number","openMenu","hide","bind","closeMenu","nevermind","hideMenus","submenuTarget","show","addEventListener","_e","timeout","closeTimeout","setTimeout","clearTimeout","removeEventListener","initialize","hideTimeout","menuTarget","params","URLSearchParams","path","actionTarget","getAttribute","append","get","responseKind","close","removeChild","textContent","page","observeViewed","readTimeouts","scroll","scrollToLast","markRead","clearRead","removeRestricted","observer","MutationObserver","observe","childList","intersectionObserver","key","Object","prototype","hasOwnProperty","call","mutationsList","_observer","mutation","scrollToMessage","addedNodes","contains","children","scrollIntoView","restrictedTargets","dataset","restrictedTo","restrictValue","messageTargetConnected","isRead","console","log","IntersectionObserver","entries","entry","intersectionRatio","targetId","unobserve","loadMessages","scrollTop","parseInt","updateDate","topLabel","dateTarget","dateLabels","messageDateTargets","currentLabel","dateLabel","offsetTop","innerText","restrict","focus","focusOnInput","blur","addValidationMessage","input","checkValidity","insertError","invalid","options","validationErrorClass","error","getElementsByClassName","validity","valid","validationMessage","className","insertInputError","removeInputError","lastElementChild","emailDivTarget","phoneDivTarget","toggleInvitationVia","oppositeTarget","required","inModalValue","EventBus","modalEl","initMap","map","zoom","zoomValue","L","center","centerLocationValue","scrollWheelZoom","attribution","addTo","forIn","markersValue","providers","location","split","bindPopup","join","centerLocation","markers","inModal","Boolean","modalTarget","stopPropagation","newTemplate","newTemplateTarget","cloneNode","stopImmediatePropagation","containerTarget","currentTarget","linkTarget","toggleFilters","fill","inputTarget","selectedValues","existingValue","a","keyValue","updateChosenValues","search","queryTarget","resultsTarget","searchActionValue","hideList","showList","choose","multiselectValue","text","selectedResultTarget","push","inputFieldTarget","selectedOptionsDom","searchAction","multiselect","existing","doSearch","select","searchSelectValueParam","label","searchSelectLabelParam","updateChoosenValues","replace","lastChar","substr","setShowMore","toggleContent","contentTarget","buttonTarget","clientHeight","tabsTarget","fetchContent","activeTab","tabName","commonValue","lastActiveTabContent","updateTabTogglers","toggleTextClass","firstChild","nodeName","tabTogglers","eleClass","operation","common","Intl","DateTimeFormat","resolvedOptions","timeZone","allowHTML","area","zone","last","mediaRecorder","AudioWrapper","constructor","startCheckingCallback","stopCheckingCallback","readyCallback","errorCallback","finishRecordCallback","startRecordCallback","audioCtx","canvas","canvasCtx","getContext","navigator","mediaDevices","getUserMedia","constraints","audio","chunks","onSuccess","stream","enumerateDevices","then","devices","microphones","filter","d","kind","device","MediaRecorder","AudioContext","source","createMediaStreamSource","analyser","createAnalyser","fftSize","bufferLength","frequencyBinCount","dataArray","Uint8Array","WIDTH","width","HEIGHT","height","getByteTimeDomainData","fillStyle","fillRect","lineWidth","strokeStyle","beginPath","sliceWidth","x","y","moveTo","lineTo","stroke","onstart","onstop","ondataavailable","catch","err","onError","startRecording","start","stopRecording","stop","convertVideoUsingTsEBML","resultCallback","decoder","Decoder","reader","Reader","logging","drop_default_duration","timestamp","Date","setTime","lastModified","blobToArrayBuffer","buffer","decode","elm","refinedMetadataBuf","tools","metadatas","duration","cues","slice","metadataSize","result","Blob","addFileInfo","VideoWrapper","videoId","_player","videojs","controls","loop","fluid","plugins","record","videoMimeType","maxLength","debug","video","one","deviceErrorCode","stopDevice","recordedData","convertedData","stopRecordingCallback","getDevice","Promise","resolve","player","_devices","getDeviceInfo","callback","_audio_stream","getTracks","track","dispose","finalVideoStream","startInterval","totalSeconds","startTimer","seconds","pad","minutes","val","videoRecorderTarget","audioRecorderTarget","showVideoRecorder","videoContainerTarget","prepend","videoWrapper","startChecking","stopChecking","videoDeviceReady","videoDeviceError","finishedRecording","startedRecording","canvasTarget","startAudioTarget","showAudioRecorder","player_","audioWrapper","audioDeviceReady","finishedAudioRecording","finalVideoStreamData","vsrc","URL","createObjectURL","setInterval","clearInterval","sendMessage","sendMessageTarget","filename","FormData","post","destroyVideo","hideShowElement","videoPlayerTarget","startAudioRecording","stopAudioTarget","stopAudioRecording","setAttribute","blob","audioURL","destroyAudio","destroyAudioTarget","setMaxListeners","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","code","module","exports"],"sourceRoot":""}