{
  "version": 3,
  "sources": ["../../../node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js", "../../javascript/channels/consumer.js", "../../javascript/packs/telegram_notifications.js"],
  "sourcesContent": ["(function(global, factory) {\n  typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([ \"exports\" ], factory) : factory(global.ActionCable = {});\n})(this, function(exports) {\n  \"use strict\";\n  var adapters = {\n    logger: self.console,\n    WebSocket: self.WebSocket\n  };\n  var logger = {\n    log: function log() {\n      if (this.enabled) {\n        var _adapters$logger;\n        for (var _len = arguments.length, messages = Array(_len), _key = 0; _key < _len; _key++) {\n          messages[_key] = arguments[_key];\n        }\n        messages.push(Date.now());\n        (_adapters$logger = adapters.logger).log.apply(_adapters$logger, [ \"[ActionCable]\" ].concat(messages));\n      }\n    }\n  };\n  var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {\n    return typeof obj;\n  } : function(obj) {\n    return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  };\n  var classCallCheck = function(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  };\n  var createClass = function() {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if (\"value\" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n    return function(Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  }();\n  var now = function now() {\n    return new Date().getTime();\n  };\n  var secondsSince = function secondsSince(time) {\n    return (now() - time) / 1e3;\n  };\n  var clamp = function clamp(number, min, max) {\n    return Math.max(min, Math.min(max, number));\n  };\n  var ConnectionMonitor = function() {\n    function ConnectionMonitor(connection) {\n      classCallCheck(this, ConnectionMonitor);\n      this.visibilityDidChange = this.visibilityDidChange.bind(this);\n      this.connection = connection;\n      this.reconnectAttempts = 0;\n    }\n    ConnectionMonitor.prototype.start = function start() {\n      if (!this.isRunning()) {\n        this.startedAt = now();\n        delete this.stoppedAt;\n        this.startPolling();\n        addEventListener(\"visibilitychange\", this.visibilityDidChange);\n        logger.log(\"ConnectionMonitor started. pollInterval = \" + this.getPollInterval() + \" ms\");\n      }\n    };\n    ConnectionMonitor.prototype.stop = function stop() {\n      if (this.isRunning()) {\n        this.stoppedAt = now();\n        this.stopPolling();\n        removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n        logger.log(\"ConnectionMonitor stopped\");\n      }\n    };\n    ConnectionMonitor.prototype.isRunning = function isRunning() {\n      return this.startedAt && !this.stoppedAt;\n    };\n    ConnectionMonitor.prototype.recordPing = function recordPing() {\n      this.pingedAt = now();\n    };\n    ConnectionMonitor.prototype.recordConnect = function recordConnect() {\n      this.reconnectAttempts = 0;\n      this.recordPing();\n      delete this.disconnectedAt;\n      logger.log(\"ConnectionMonitor recorded connect\");\n    };\n    ConnectionMonitor.prototype.recordDisconnect = function recordDisconnect() {\n      this.disconnectedAt = now();\n      logger.log(\"ConnectionMonitor recorded disconnect\");\n    };\n    ConnectionMonitor.prototype.startPolling = function startPolling() {\n      this.stopPolling();\n      this.poll();\n    };\n    ConnectionMonitor.prototype.stopPolling = function stopPolling() {\n      clearTimeout(this.pollTimeout);\n    };\n    ConnectionMonitor.prototype.poll = function poll() {\n      var _this = this;\n      this.pollTimeout = setTimeout(function() {\n        _this.reconnectIfStale();\n        _this.poll();\n      }, this.getPollInterval());\n    };\n    ConnectionMonitor.prototype.getPollInterval = function getPollInterval() {\n      var _constructor$pollInte = this.constructor.pollInterval, min = _constructor$pollInte.min, max = _constructor$pollInte.max, multiplier = _constructor$pollInte.multiplier;\n      var interval = multiplier * Math.log(this.reconnectAttempts + 1);\n      return Math.round(clamp(interval, min, max) * 1e3);\n    };\n    ConnectionMonitor.prototype.reconnectIfStale = function reconnectIfStale() {\n      if (this.connectionIsStale()) {\n        logger.log(\"ConnectionMonitor detected stale connection. reconnectAttempts = \" + this.reconnectAttempts + \", pollInterval = \" + this.getPollInterval() + \" ms, time disconnected = \" + secondsSince(this.disconnectedAt) + \" s, stale threshold = \" + this.constructor.staleThreshold + \" s\");\n        this.reconnectAttempts++;\n        if (this.disconnectedRecently()) {\n          logger.log(\"ConnectionMonitor skipping reopening recent disconnect\");\n        } else {\n          logger.log(\"ConnectionMonitor reopening\");\n          this.connection.reopen();\n        }\n      }\n    };\n    ConnectionMonitor.prototype.connectionIsStale = function connectionIsStale() {\n      return secondsSince(this.pingedAt ? this.pingedAt : this.startedAt) > this.constructor.staleThreshold;\n    };\n    ConnectionMonitor.prototype.disconnectedRecently = function disconnectedRecently() {\n      return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n    };\n    ConnectionMonitor.prototype.visibilityDidChange = function visibilityDidChange() {\n      var _this2 = this;\n      if (document.visibilityState === \"visible\") {\n        setTimeout(function() {\n          if (_this2.connectionIsStale() || !_this2.connection.isOpen()) {\n            logger.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = \" + document.visibilityState);\n            _this2.connection.reopen();\n          }\n        }, 200);\n      }\n    };\n    return ConnectionMonitor;\n  }();\n  ConnectionMonitor.pollInterval = {\n    min: 3,\n    max: 30,\n    multiplier: 5\n  };\n  ConnectionMonitor.staleThreshold = 6;\n  var INTERNAL = {\n    message_types: {\n      welcome: \"welcome\",\n      disconnect: \"disconnect\",\n      ping: \"ping\",\n      confirmation: \"confirm_subscription\",\n      rejection: \"reject_subscription\"\n    },\n    disconnect_reasons: {\n      unauthorized: \"unauthorized\",\n      invalid_request: \"invalid_request\",\n      server_restart: \"server_restart\"\n    },\n    default_mount_path: \"/cable\",\n    protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n  };\n  var message_types = INTERNAL.message_types, protocols = INTERNAL.protocols;\n  var supportedProtocols = protocols.slice(0, protocols.length - 1);\n  var indexOf = [].indexOf;\n  var Connection = function() {\n    function Connection(consumer) {\n      classCallCheck(this, Connection);\n      this.open = this.open.bind(this);\n      this.consumer = consumer;\n      this.subscriptions = this.consumer.subscriptions;\n      this.monitor = new ConnectionMonitor(this);\n      this.disconnected = true;\n    }\n    Connection.prototype.send = function send(data) {\n      if (this.isOpen()) {\n        this.webSocket.send(JSON.stringify(data));\n        return true;\n      } else {\n        return false;\n      }\n    };\n    Connection.prototype.open = function open() {\n      if (this.isActive()) {\n        logger.log(\"Attempted to open WebSocket, but existing socket is \" + this.getState());\n        return false;\n      } else {\n        logger.log(\"Opening WebSocket, current state is \" + this.getState() + \", subprotocols: \" + protocols);\n        if (this.webSocket) {\n          this.uninstallEventHandlers();\n        }\n        this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n        this.installEventHandlers();\n        this.monitor.start();\n        return true;\n      }\n    };\n    Connection.prototype.close = function close() {\n      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n        allowReconnect: true\n      }, allowReconnect = _ref.allowReconnect;\n      if (!allowReconnect) {\n        this.monitor.stop();\n      }\n      if (this.isActive()) {\n        return this.webSocket.close();\n      }\n    };\n    Connection.prototype.reopen = function reopen() {\n      logger.log(\"Reopening WebSocket, current state is \" + this.getState());\n      if (this.isActive()) {\n        try {\n          return this.close();\n        } catch (error) {\n          logger.log(\"Failed to reopen WebSocket\", error);\n        } finally {\n          logger.log(\"Reopening WebSocket in \" + this.constructor.reopenDelay + \"ms\");\n          setTimeout(this.open, this.constructor.reopenDelay);\n        }\n      } else {\n        return this.open();\n      }\n    };\n    Connection.prototype.getProtocol = function getProtocol() {\n      if (this.webSocket) {\n        return this.webSocket.protocol;\n      }\n    };\n    Connection.prototype.isOpen = function isOpen() {\n      return this.isState(\"open\");\n    };\n    Connection.prototype.isActive = function isActive() {\n      return this.isState(\"open\", \"connecting\");\n    };\n    Connection.prototype.isProtocolSupported = function isProtocolSupported() {\n      return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n    };\n    Connection.prototype.isState = function isState() {\n      for (var _len = arguments.length, states = Array(_len), _key = 0; _key < _len; _key++) {\n        states[_key] = arguments[_key];\n      }\n      return indexOf.call(states, this.getState()) >= 0;\n    };\n    Connection.prototype.getState = function getState() {\n      if (this.webSocket) {\n        for (var state in adapters.WebSocket) {\n          if (adapters.WebSocket[state] === this.webSocket.readyState) {\n            return state.toLowerCase();\n          }\n        }\n      }\n      return null;\n    };\n    Connection.prototype.installEventHandlers = function installEventHandlers() {\n      for (var eventName in this.events) {\n        var handler = this.events[eventName].bind(this);\n        this.webSocket[\"on\" + eventName] = handler;\n      }\n    };\n    Connection.prototype.uninstallEventHandlers = function uninstallEventHandlers() {\n      for (var eventName in this.events) {\n        this.webSocket[\"on\" + eventName] = function() {};\n      }\n    };\n    return Connection;\n  }();\n  Connection.reopenDelay = 500;\n  Connection.prototype.events = {\n    message: function message(event) {\n      if (!this.isProtocolSupported()) {\n        return;\n      }\n      var _JSON$parse = JSON.parse(event.data), identifier = _JSON$parse.identifier, message = _JSON$parse.message, reason = _JSON$parse.reason, reconnect = _JSON$parse.reconnect, type = _JSON$parse.type;\n      switch (type) {\n       case message_types.welcome:\n        this.monitor.recordConnect();\n        return this.subscriptions.reload();\n\n       case message_types.disconnect:\n        logger.log(\"Disconnecting. Reason: \" + reason);\n        return this.close({\n          allowReconnect: reconnect\n        });\n\n       case message_types.ping:\n        return this.monitor.recordPing();\n\n       case message_types.confirmation:\n        return this.subscriptions.notify(identifier, \"connected\");\n\n       case message_types.rejection:\n        return this.subscriptions.reject(identifier);\n\n       default:\n        return this.subscriptions.notify(identifier, \"received\", message);\n      }\n    },\n    open: function open() {\n      logger.log(\"WebSocket onopen event, using '\" + this.getProtocol() + \"' subprotocol\");\n      this.disconnected = false;\n      if (!this.isProtocolSupported()) {\n        logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n        return this.close({\n          allowReconnect: false\n        });\n      }\n    },\n    close: function close(event) {\n      logger.log(\"WebSocket onclose event\");\n      if (this.disconnected) {\n        return;\n      }\n      this.disconnected = true;\n      this.monitor.recordDisconnect();\n      return this.subscriptions.notifyAll(\"disconnected\", {\n        willAttemptReconnect: this.monitor.isRunning()\n      });\n    },\n    error: function error() {\n      logger.log(\"WebSocket onerror event\");\n    }\n  };\n  var extend = function extend(object, properties) {\n    if (properties != null) {\n      for (var key in properties) {\n        var value = properties[key];\n        object[key] = value;\n      }\n    }\n    return object;\n  };\n  var Subscription = function() {\n    function Subscription(consumer) {\n      var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var mixin = arguments[2];\n      classCallCheck(this, Subscription);\n      this.consumer = consumer;\n      this.identifier = JSON.stringify(params);\n      extend(this, mixin);\n    }\n    Subscription.prototype.perform = function perform(action) {\n      var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      data.action = action;\n      return this.send(data);\n    };\n    Subscription.prototype.send = function send(data) {\n      return this.consumer.send({\n        command: \"message\",\n        identifier: this.identifier,\n        data: JSON.stringify(data)\n      });\n    };\n    Subscription.prototype.unsubscribe = function unsubscribe() {\n      return this.consumer.subscriptions.remove(this);\n    };\n    return Subscription;\n  }();\n  var Subscriptions = function() {\n    function Subscriptions(consumer) {\n      classCallCheck(this, Subscriptions);\n      this.consumer = consumer;\n      this.subscriptions = [];\n    }\n    Subscriptions.prototype.create = function create(channelName, mixin) {\n      var channel = channelName;\n      var params = (typeof channel === \"undefined\" ? \"undefined\" : _typeof(channel)) === \"object\" ? channel : {\n        channel: channel\n      };\n      var subscription = new Subscription(this.consumer, params, mixin);\n      return this.add(subscription);\n    };\n    Subscriptions.prototype.add = function add(subscription) {\n      this.subscriptions.push(subscription);\n      this.consumer.ensureActiveConnection();\n      this.notify(subscription, \"initialized\");\n      this.sendCommand(subscription, \"subscribe\");\n      return subscription;\n    };\n    Subscriptions.prototype.remove = function remove(subscription) {\n      this.forget(subscription);\n      if (!this.findAll(subscription.identifier).length) {\n        this.sendCommand(subscription, \"unsubscribe\");\n      }\n      return subscription;\n    };\n    Subscriptions.prototype.reject = function reject(identifier) {\n      var _this = this;\n      return this.findAll(identifier).map(function(subscription) {\n        _this.forget(subscription);\n        _this.notify(subscription, \"rejected\");\n        return subscription;\n      });\n    };\n    Subscriptions.prototype.forget = function forget(subscription) {\n      this.subscriptions = this.subscriptions.filter(function(s) {\n        return s !== subscription;\n      });\n      return subscription;\n    };\n    Subscriptions.prototype.findAll = function findAll(identifier) {\n      return this.subscriptions.filter(function(s) {\n        return s.identifier === identifier;\n      });\n    };\n    Subscriptions.prototype.reload = function reload() {\n      var _this2 = this;\n      return this.subscriptions.map(function(subscription) {\n        return _this2.sendCommand(subscription, \"subscribe\");\n      });\n    };\n    Subscriptions.prototype.notifyAll = function notifyAll(callbackName) {\n      var _this3 = this;\n      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n      return this.subscriptions.map(function(subscription) {\n        return _this3.notify.apply(_this3, [ subscription, callbackName ].concat(args));\n      });\n    };\n    Subscriptions.prototype.notify = function notify(subscription, callbackName) {\n      for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n        args[_key2 - 2] = arguments[_key2];\n      }\n      var subscriptions = void 0;\n      if (typeof subscription === \"string\") {\n        subscriptions = this.findAll(subscription);\n      } else {\n        subscriptions = [ subscription ];\n      }\n      return subscriptions.map(function(subscription) {\n        return typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : undefined;\n      });\n    };\n    Subscriptions.prototype.sendCommand = function sendCommand(subscription, command) {\n      var identifier = subscription.identifier;\n      return this.consumer.send({\n        command: command,\n        identifier: identifier\n      });\n    };\n    return Subscriptions;\n  }();\n  var Consumer = function() {\n    function Consumer(url) {\n      classCallCheck(this, Consumer);\n      this._url = url;\n      this.subscriptions = new Subscriptions(this);\n      this.connection = new Connection(this);\n    }\n    Consumer.prototype.send = function send(data) {\n      return this.connection.send(data);\n    };\n    Consumer.prototype.connect = function connect() {\n      return this.connection.open();\n    };\n    Consumer.prototype.disconnect = function disconnect() {\n      return this.connection.close({\n        allowReconnect: false\n      });\n    };\n    Consumer.prototype.ensureActiveConnection = function ensureActiveConnection() {\n      if (!this.connection.isActive()) {\n        return this.connection.open();\n      }\n    };\n    createClass(Consumer, [ {\n      key: \"url\",\n      get: function get$$1() {\n        return createWebSocketURL(this._url);\n      }\n    } ]);\n    return Consumer;\n  }();\n  function createWebSocketURL(url) {\n    if (typeof url === \"function\") {\n      url = url();\n    }\n    if (url && !/^wss?:/i.test(url)) {\n      var a = document.createElement(\"a\");\n      a.href = url;\n      a.href = a.href;\n      a.protocol = a.protocol.replace(\"http\", \"ws\");\n      return a.href;\n    } else {\n      return url;\n    }\n  }\n  function createConsumer() {\n    var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getConfig(\"url\") || INTERNAL.default_mount_path;\n    return new Consumer(url);\n  }\n  function getConfig(name) {\n    var element = document.head.querySelector(\"meta[name='action-cable-\" + name + \"']\");\n    if (element) {\n      return element.getAttribute(\"content\");\n    }\n  }\n  exports.Connection = Connection;\n  exports.ConnectionMonitor = ConnectionMonitor;\n  exports.Consumer = Consumer;\n  exports.INTERNAL = INTERNAL;\n  exports.Subscription = Subscription;\n  exports.Subscriptions = Subscriptions;\n  exports.adapters = adapters;\n  exports.createWebSocketURL = createWebSocketURL;\n  exports.logger = logger;\n  exports.createConsumer = createConsumer;\n  exports.getConfig = getConfig;\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\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 `rails generate channel` command.\n\nimport { createConsumer } from \"@rails/actioncable\"\n\nexport default createConsumer()\n", "import consumer from \"../channels/consumer\";\n\nfunction navBadgeUserKey() {\n  const body = document.body;\n  const raw = body && body.dataset && body.dataset.currentUserId;\n  return (raw && raw.length > 0) ? raw : 'guest';\n}\n\nfunction navBadgeStorageKey(prefix, key) {\n  return `${prefix}:${key}:${navBadgeUserKey()}`;\n}\n\nfunction navBadgeLoadValue(prefix, key) {\n  try {\n    const raw = window.localStorage.getItem(navBadgeStorageKey(prefix, key));\n    return raw ? parseInt(raw, 10) || 0 : 0;\n  } catch (error) {\n    return 0;\n  }\n}\n\nfunction navBadgeSaveValue(prefix, key, value) {\n  try {\n    window.localStorage.setItem(navBadgeStorageKey(prefix, key), String(value || 0));\n  } catch (error) {\n    // ignore storage issues\n  }\n}\n\nconst NavBadges = (() => {\n  const counts = {};\n  const totals = {};\n  const seenPrefix = 'navBadgeSeen';\n  const pendingPrefix = 'navBadgePending';\n  const loadedPending = {};\n\n  const getElements = (key) => {\n    return document.querySelectorAll(`.nav-badge[data-nav-badge=\"${key}\"]`);\n  };\n\n  const renderBadge = (badge, value) => {\n    const numeric = parseInt(value, 10) || 0;\n    if (numeric > 0) {\n      badge.classList.remove('nav-badge--hidden');\n      badge.textContent = numeric > 99 ? '99+' : numeric;\n    } else {\n      badge.classList.add('nav-badge--hidden');\n      badge.textContent = '';\n    }\n  };\n\n  const renderAll = (key) => {\n    getElements(key).forEach((badge) => renderBadge(badge, counts[key] || 0));\n  };\n\n  const loadSeen = (key) => navBadgeLoadValue(seenPrefix, key);\n  const saveSeen = (key, value) => navBadgeSaveValue(seenPrefix, key, value);\n  const loadPending = (key) => navBadgeLoadValue(pendingPrefix, key);\n  const savePending = (key, value) => navBadgeSaveValue(pendingPrefix, key, value);\n\n  const updateValue = (key, nextValue) => {\n    counts[key] = nextValue;\n    if (typeof totals[key] !== 'number') {\n      savePending(key, nextValue);\n    }\n    renderAll(key);\n  };\n\n  return {\n    scan() {\n      document.querySelectorAll('.nav-badge[data-nav-badge]').forEach((badge) => {\n        const key = badge.dataset.navBadge;\n        if (typeof counts[key] !== 'number') {\n          counts[key] = 0;\n        }\n        if (badge.dataset.navBadgeTotal !== undefined) {\n          const total = parseInt(badge.dataset.navBadgeTotal, 10);\n          if (!Number.isNaN(total)) {\n            totals[key] = total;\n            const seen = loadSeen(key);\n            counts[key] = Math.max(0, total - seen);\n          }\n        } else if (!loadedPending[key]) {\n          counts[key] = loadPending(key);\n          loadedPending[key] = true;\n        }\n        renderBadge(badge, counts[key] || 0);\n      });\n    },\n    increment(key, delta) {\n      if (typeof counts[key] !== 'number') {\n        counts[key] = 0;\n      }\n      const nextValue = Math.max(0, (counts[key] || 0) + (delta || 0));\n      updateValue(key, nextValue);\n    },\n    set(key, value) {\n      if (typeof counts[key] !== 'number') {\n        counts[key] = 0;\n      }\n      const nextValue = Math.max(0, parseInt(value, 10) || 0);\n      updateValue(key, nextValue);\n    },\n    value(key) {\n      if (typeof counts[key] !== 'number') {\n        return 0;\n      }\n      return counts[key] || 0;\n    },\n    reset(key) {\n      if (typeof counts[key] !== 'number') {\n        counts[key] = 0;\n      }\n      updateValue(key, 0);\n    },\n    acknowledge(key) {\n      if (typeof totals[key] === 'number') {\n        saveSeen(key, totals[key]);\n      } else {\n        savePending(key, 0);\n      }\n      this.reset(key);\n    }\n  };\n})();\n\nwindow.navBadges = NavBadges;\n\nconst TelegramBadgeTracker = (() => {\n  const storagePrefix = 'navBadgePendingConversations';\n  let pendingSet = null;\n\n  const storageKey = () => navBadgeStorageKey(storagePrefix, 'telegram');\n\n  const ensureLoaded = () => {\n    if (pendingSet !== null) return;\n    pendingSet = loadFromStorage();\n  };\n\n  const loadFromStorage = () => {\n    try {\n      const raw = window.localStorage.getItem(storageKey());\n      if (!raw) return new Set();\n      const parsed = JSON.parse(raw);\n      if (!Array.isArray(parsed)) return new Set();\n      const cleaned = parsed\n        .map((value) => parseInt(value, 10))\n        .filter((value) => !Number.isNaN(value));\n      return new Set(cleaned);\n    } catch (error) {\n      return new Set();\n    }\n  };\n\n  const persist = () => {\n    try {\n      if (!pendingSet || pendingSet.size === 0) {\n        window.localStorage.removeItem(storageKey());\n      } else {\n        window.localStorage.setItem(storageKey(), JSON.stringify(Array.from(pendingSet)));\n      }\n    } catch (error) {\n      // ignore storage issues\n    }\n  };\n\n  const syncBadge = () => {\n    if (window.navBadges && typeof window.navBadges.set === 'function' && pendingSet) {\n      window.navBadges.set('telegram', pendingSet.size);\n    }\n  };\n\n  return {\n    init() {\n      ensureLoaded();\n      syncBadge();\n    },\n    add(ids) {\n      if (!ids) return;\n      ensureLoaded();\n      const iterable = Array.isArray(ids) ? ids : Array.from(ids);\n      let changed = false;\n      iterable.forEach((value) => {\n        const numeric = parseInt(value, 10);\n        if (Number.isNaN(numeric)) return;\n        if (!pendingSet.has(numeric)) {\n          pendingSet.add(numeric);\n          changed = true;\n        }\n      });\n      if (changed) {\n        persist();\n        syncBadge();\n      }\n    },\n    clear() {\n      ensureLoaded();\n      if (!pendingSet || pendingSet.size === 0) return;\n      pendingSet.clear();\n      persist();\n      syncBadge();\n    }\n  };\n})();\n\nwindow.telegramBadgeTracker = TelegramBadgeTracker;\n\nfunction playBeep() {\n  try {\n    const ctx = new (window.AudioContext || window.webkitAudioContext)();\n    const o = ctx.createOscillator();\n    const g = ctx.createGain();\n    o.connect(g); g.connect(ctx.destination);\n    o.type = 'sine'; o.frequency.value = 880;\n    g.gain.value = 0.05;\n    o.start(0);\n    setTimeout(() => { o.stop(0); ctx.close(); }, 180);\n  } catch (e) { /* ignore */ }\n}\n\nfunction pulseOn() {\n  const btn = document.querySelector('.tg-fab');\n  if (btn) btn.classList.add('pulse');\n  navBlinkOn();\n}\n\nfunction pulseOff() {\n  const btn = document.querySelector('.tg-fab');\n  if (btn) btn.classList.remove('pulse');\n  navBlinkOff();\n}\n\nfunction navBlinkOn() {\n  document.querySelectorAll('.telegram-nav-link').forEach(link => {\n    link.classList.add('blink_me', 'telegram-nav-link--alert');\n  });\n}\n\nfunction navBlinkOff() {\n  document.querySelectorAll('.telegram-nav-link').forEach(link => {\n    link.classList.remove('blink_me', 'telegram-nav-link--alert');\n  });\n}\n\nfunction setupClick() {\n  const btn = document.querySelector('.tg-fab');\n  if (btn) btn.addEventListener('click', () => { pulseOff(); });\n  document.querySelectorAll('.telegram-nav-link').forEach(link => {\n    link.addEventListener('click', () => { pulseOff(); });\n  });\n  bindNavBadgeTargets();\n}\n\nfunction bindNavBadgeTargets() {\n  document.querySelectorAll('[data-nav-badge-target]').forEach((element) => {\n    if (element.dataset.navBadgeBound === 'true') return;\n    element.dataset.navBadgeBound = 'true';\n    element.addEventListener('click', () => {\n      if (!window.navBadges) return;\n      const key = element.dataset.navBadgeTarget;\n      if (!key) return;\n      if (element.dataset.navBadgeReset === 'ack') {\n        window.navBadges.acknowledge(key);\n      } else {\n        window.navBadges.reset(key);\n      }\n      if (key === 'telegram' && window.telegramBadgeTracker) {\n        window.telegramBadgeTracker.clear();\n      }\n    });\n  });\n}\n\nfunction pollPing() {\n  const btn = document.querySelector('.tg-fab');\n  if (!btn) return; // feature disabled for user\n\n  let last = Date.now();\n  const tick = () => {\n    const url = `/telegram/conversations/ping.json?since=${last/1000.0}`;\n    fetch(url, { headers: { 'Accept': 'application/json' } })\n      .then(r => r.ok ? r.json() : Promise.reject())\n      .then(j => {\n        last = Date.now();\n        const ev = (j && j.events) || {};\n        const collectedIds = new Set();\n        (ev.new_conversation_ids || []).forEach((id) => {\n          const numeric = parseInt(id, 10);\n          if (!Number.isNaN(numeric)) {\n            collectedIds.add(numeric);\n          }\n        });\n        (ev.new_message_conversation_ids || []).forEach((id) => {\n          const numeric = parseInt(id, 10);\n          if (!Number.isNaN(numeric)) {\n            collectedIds.add(numeric);\n          }\n        });\n        (ev.assigned_conversation_ids || []).forEach((id) => {\n          const numeric = parseInt(id, 10);\n          if (!Number.isNaN(numeric)) {\n            collectedIds.add(numeric);\n          }\n        });\n        if (collectedIds.size > 0 && window.telegramBadgeTracker) {\n          window.telegramBadgeTracker.add(Array.from(collectedIds));\n        }\n\n        const total = (ev.new_conversations || 0) + (ev.new_messages || 0) + (ev.assigned || 0);\n        if (total > 0) {\n          playBeep(); pulseOn();\n          try {\n            if (window.location.pathname.match(/^\\/telegram\\/conversations(\\/)?$/)) {\n              // \u0430\u0432\u0442\u043E\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0441\u043F\u0438\u0441\u043A\u0430 \u0431\u0435\u0441\u0435\u0434\n              window.location.reload();\n            }\n          } catch (e) { /* ignore */ }\n        }\n      })\n      .catch(() => { /* ignore */ })\n      .finally(() => setTimeout(tick, 15000));\n  };\n  setTimeout(tick, 5000);\n}\n\nlet previewClickHandler = null;\nfunction initPreviewToggles() {\n  const table = document.querySelector('table.conv');\n  if (!table) return;\n\n  if (previewClickHandler) {\n    document.removeEventListener('click', previewClickHandler);\n    previewClickHandler = null;\n  }\n\n  previewClickHandler = (event) => {\n    const closeBtn = event.target.closest('[data-preview-close]');\n    if (closeBtn) {\n      event.preventDefault();\n      const row = closeBtn.closest('tr');\n      restorePreviewRow(row);\n      return;\n    }\n    const button = event.target.closest('.js-toggle-preview');\n    if (!button || !table.contains(button)) return;\n    event.preventDefault();\n    togglePreviewRow(button);\n  };\n\n  document.addEventListener('click', previewClickHandler, true);\n}\n\nfunction restorePreviewRow(row) {\n  if (!row || !row.classList.contains('preview-mode')) return;\n  const original = row.dataset.originalHtml;\n  if (original) {\n    const wrapper = row.querySelector('.preview-wrapper');\n    if (wrapper) {\n      wrapper.classList.remove('ready');\n      setTimeout(() => {\n        row.innerHTML = original;\n        row.classList.remove('preview-mode');\n        delete row.dataset.originalHtml;\n        reinitializeConversationRow(row);\n      }, 220);\n      return;\n    }\n    row.innerHTML = original;\n    reinitializeConversationRow(row);\n  }\n  row.classList.remove('preview-mode');\n  delete row.dataset.originalHtml;\n}\n\nfunction closeAllPreviewRows() {\n  document.querySelectorAll('tr.preview-mode').forEach((row) => restorePreviewRow(row));\n}\n\nfunction togglePreviewRow(button) {\n  console.log('[PREVIEW] toggle clicked', button);\n  closeConversationActionsPanels();\n  const conversationId = button.dataset.conversationId;\n  const row = button.closest('tr');\n  if (!conversationId || !row) {\n    console.warn('[PREVIEW] missing id or row');\n    return;\n  }\n\n  if (row.classList.contains('preview-mode')) {\n    restorePreviewRow(row);\n    return;\n  }\n\n  closeAllPreviewRows();\n  row.dataset.originalHtml = row.innerHTML;\n  row.classList.add('preview-mode');\n  const colSpan = row.children.length || row.dataset.originalColspan || 1;\n  row.innerHTML = `<td colspan=\"${colSpan}\">\n    <div class=\"preview-wrapper\">\n      <div class=\"conversation-preview-loading\">${button.dataset.loadingText || '\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430...'}</div>\n    </div>\n  </td>`;\n  requestAnimationFrame(() => row.querySelector('.preview-wrapper')?.classList.add('ready'));\n\n  const url = button.dataset.previewUrl;\n  console.log('[PREVIEW] fetch', url);\n  fetch(url, { headers: { 'X-Requested-With': 'XMLHttpRequest' } })\n    .then((resp) => {\n      console.log('[PREVIEW] response status', resp.status);\n      if (!resp.ok) throw new Error('preview_failed');\n      return resp.text();\n    })\n    .then((html) => {\n      console.log('[PREVIEW] render html length', html.length);\n      row.innerHTML = `<td colspan=\"${colSpan}\">\n        <div class=\"preview-wrapper\">${html}</div>\n      </td>`;\n      requestAnimationFrame(() => row.querySelector('.preview-wrapper')?.classList.add('ready'));\n    })\n    .catch((err) => {\n      console.warn('[PREVIEW] fetch failed', err);\n      row.innerHTML = `<td colspan=\"${colSpan}\">\n        <div class=\"preview-wrapper conversation-preview-error\">${button.dataset.errorText || '\u041E\u0448\u0438\u0431\u043A\u0430'}</div>\n      </td>`;\n      requestAnimationFrame(() => row.querySelector('.preview-wrapper')?.classList.add('ready'));\n    });\n}\n\nlet activeActionsDropdown = null;\n\nfunction closeConversationActionsPanels() {\n  document.querySelectorAll('.js-conversation-actions.open').forEach((menu) => {\n    menu.classList.remove('open');\n    const toggle = menu.querySelector('.js-conversation-actions-toggle');\n    if (toggle) {\n      toggle.setAttribute('aria-expanded', 'false');\n    }\n  });\n  activeActionsDropdown = null;\n}\n\nfunction initConversationActionsDropdowns() {\n  const containers = document.querySelectorAll('.js-conversation-actions');\n  containers.forEach((container) => {\n    const toggle = container.querySelector('.js-conversation-actions-toggle');\n    if (!toggle || toggle.dataset.dropdownBound === 'true') return;\n    toggle.dataset.dropdownBound = 'true';\n    toggle.addEventListener('click', (event) => {\n      event.preventDefault();\n      event.stopPropagation();\n      const isOpen = container.classList.contains('open');\n      closeConversationActionsPanels();\n      if (!isOpen) {\n        container.classList.add('open');\n        activeActionsDropdown = container;\n        toggle.setAttribute('aria-expanded', 'true');\n      }\n    });\n  });\n\n  if (!window.tgConversationActionsDocHandler) {\n    window.tgConversationActionsDocHandler = (event) => {\n      if (!activeActionsDropdown) return;\n      if (event.target.closest('.js-conversation-actions') === activeActionsDropdown) return;\n      closeConversationActionsPanels();\n    };\n    document.addEventListener('click', window.tgConversationActionsDocHandler);\n  }\n}\n\nfunction initConversationSelects(scope) {\n  if (!window.M || !M.FormSelect) return;\n  const selects = (scope || document).querySelectorAll('select');\n  selects.forEach((select) => {\n    if (select.dataset.formSelectBound === 'true') return;\n    M.FormSelect.init(select);\n    select.dataset.formSelectBound = 'true';\n  });\n}\n\nfunction resetDatasetFlag(elements, attr) {\n  if (!elements) return;\n  const dataAttr = `data-${attr.replace(/([A-Z])/g, '-$1').toLowerCase()}`;\n  elements.forEach((el) => {\n    if (!el) return;\n    if (el.dataset && Object.prototype.hasOwnProperty.call(el.dataset, attr)) {\n      delete el.dataset[attr];\n    }\n    if (el.hasAttribute(dataAttr)) {\n      el.removeAttribute(dataAttr);\n    }\n  });\n}\n\nfunction reinitializeConversationRow(row) {\n  if (!row) return;\n  resetDatasetFlag(row.querySelectorAll('.js-conversation-actions-toggle'), 'dropdownBound');\n  resetDatasetFlag(row.querySelectorAll('form.js-conversation-action-form'), 'remoteBound');\n  resetDatasetFlag(row.querySelectorAll('select'), 'formSelectBound');\n  initConversationActionsDropdowns();\n  initConversationRemoteActions();\n  initConversationSelects(row);\n}\n\nfunction initConversationToggleHandlers() {\n  if (window.tgConversationToggleHandler) return;\n  window.tgConversationToggleHandler = (event) => {\n    const replyBtn = event.target.closest('.js-toggle-reply');\n    if (replyBtn) {\n      event.preventDefault();\n      closeConversationActionsPanels();\n      togglePanelVisibility(replyBtn.dataset.target);\n      return;\n    }\n    const assignBtn = event.target.closest('.js-toggle-assign');\n    if (assignBtn) {\n      event.preventDefault();\n      togglePanelVisibility(assignBtn.dataset.target, true);\n    }\n  };\n  document.addEventListener('click', window.tgConversationToggleHandler);\n}\n\nfunction togglePanelVisibility(targetId, initSelect = false) {\n  if (!targetId) return;\n  const el = document.getElementById(targetId);\n  if (!el) return;\n  const shouldShow = el.style.display === 'none' || el.style.display === '';\n  el.style.display = shouldShow ? 'block' : 'none';\n  if (shouldShow && initSelect) {\n    initConversationSelects(el);\n  }\n}\n\nfunction initConversationRemoteActions() {\n  const forms = document.querySelectorAll('form.js-conversation-action-form');\n  if (!forms.length) return;\n  forms.forEach((form) => {\n    if (form.dataset.remoteBound === 'true') return;\n    form.dataset.remoteBound = 'true';\n    form.addEventListener('submit', (event) => {\n      if (form.dataset.remoteDisabled === 'true') return;\n      event.preventDefault();\n      submitConversationAction(form);\n    });\n  });\n}\n\nfunction submitConversationAction(form) {\n  closeConversationActionsPanels();\n  if (form.dataset.remoteProcessing === 'true') return;\n  const confirmMessage = form.dataset.confirmMessage;\n  if (confirmMessage && !window.confirm(confirmMessage)) {\n    return;\n  }\n  form.dataset.remoteProcessing = 'true';\n  const button = form.querySelector('button[type=\"submit\"], input[type=\"submit\"]');\n  if (button) {\n    button.disabled = true;\n  }\n  const formData = new FormData(form);\n  const method = (form.getAttribute('method') || 'post').toUpperCase();\n  fetch(form.action, {\n    method: method,\n    body: formData,\n    credentials: 'same-origin',\n    headers: {\n      'Accept': 'application/json',\n      'X-Requested-With': 'XMLHttpRequest'\n    }\n  })\n    .then((response) => {\n      if (!response.ok) {\n        return response.json().catch(() => ({})).then((body) => {\n          const error = body && body.error ? body.error : '\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435';\n          throw new Error(error);\n        });\n      }\n      return response.json().catch(() => ({}));\n    })\n    .then((payload) => {\n      const row = form.closest('tr');\n      if (row) {\n        fadeOutConversationRow(row);\n      }\n      const message = payload && (payload.message || payload.notice);\n      if (message) {\n        showConversationToast(message, false);\n      }\n    })\n    .catch((error) => {\n      console.warn('[TG] remote action failed', error);\n      showConversationToast(error && error.message ? error.message : '\u041E\u0448\u0438\u0431\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F', true);\n    })\n    .finally(() => {\n      form.dataset.remoteProcessing = 'false';\n      if (button) {\n        button.disabled = false;\n      }\n    });\n}\n\nfunction fadeOutConversationRow(row) {\n  row.classList.add('conversation-removing');\n  setTimeout(() => {\n    row.remove();\n  }, 280);\n}\n\nfunction showConversationToast(message, isError) {\n  if (!message) return;\n  if (window.M && M.toast) {\n    const classes = isError ? 'red darken-2' : 'green darken-2';\n    M.toast({ html: message, classes: classes });\n  } else if (isError) {\n    alert(message);\n  } else {\n    console.log(message);\n  }\n}\n\ndocument.addEventListener('turbolinks:load', function () {\n  if (window.navBadges) {\n    window.navBadges.scan();\n  }\n  if (window.telegramBadgeTracker) {\n    window.telegramBadgeTracker.init();\n  }\n  setupClick();\n  pollPing();\n  if (window.location.pathname.match(/^\\/telegram\\/conversations/)) {\n    pulseOff();\n    if (window.navBadges) {\n      window.navBadges.reset('telegram');\n    }\n    if (window.telegramBadgeTracker) {\n      window.telegramBadgeTracker.clear();\n    }\n    initPreviewToggles();\n    initConversationRemoteActions();\n    initConversationActionsDropdowns();\n    initConversationToggleHandlers();\n    initConversationSelects(document);\n  }\n\n  if (window.navBadges && window.location.pathname.match(/^\\/part_prices(\\/shop)?/)) {\n    window.navBadges.acknowledge('store');\n  }\n\n  // Optional: ActionCable notifications (works if cable token configured)\n  try {\n    consumer.subscriptions.create({ channel: 'Telegram::NotificationsChannel' }, {\n      received(data) {\n        if (!data) return;\n        if (['conversation.created', 'message.new', 'conversation.assigned'].includes(data.type)) {\n          playBeep(); pulseOn();\n        }\n      }\n    });\n  } catch (e) { /* ignore cable errors */ }\n});\n"],
  "mappings": "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",
  "names": ["exports", "now", "secondsSince", "clamp", "ConnectionMonitor", "Connection", "message", "extend", "Subscription", "Subscriptions", "subscription", "Consumer", "createConsumer"]
}
