{
  "version": 3,
  "sources": ["../../../node_modules/@rails/actioncable/src/adapters.js", "../../../node_modules/@rails/actioncable/src/logger.js", "../../../node_modules/@rails/actioncable/src/connection_monitor.js", "../../../node_modules/@rails/actioncable/src/internal.js", "../../../node_modules/@rails/actioncable/src/connection.js", "../../../node_modules/@rails/actioncable/src/subscription.js", "../../../node_modules/@rails/actioncable/src/subscription_guarantor.js", "../../../node_modules/@rails/actioncable/src/subscriptions.js", "../../../node_modules/@rails/actioncable/src/consumer.js", "../../../node_modules/@rails/actioncable/src/index.js", "../../../node_modules/highcharts/highcharts.js", "../../../node_modules/@rails/ujs/app/assets/javascripts/rails-ujs.esm.js", "../../../node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/snakeize.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/fetch_requests.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/index.js", "../../../node_modules/@hotwired/stimulus/dist/stimulus.js", "../../../node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js", "../../../node_modules/tslib/tslib.es6.js", "../../../node_modules/@appsignal/javascript/src/error.ts", "../../../node_modules/@appsignal/javascript/src/hashmap.ts", "../../../node_modules/@appsignal/javascript/src/version.ts", "../../../node_modules/@appsignal/javascript/src/environment.ts", "../../../node_modules/@appsignal/javascript/src/transports/xdomain.ts", "../../../node_modules/@appsignal/javascript/src/transports/xhr.ts", "../../../node_modules/@appsignal/javascript/src/transports/fetch.ts", "../../../node_modules/@appsignal/javascript/src/transports/node.ts", "../../../node_modules/@appsignal/javascript/src/api.ts", "../../../node_modules/@appsignal/javascript/src/serializable.ts", "../../../node_modules/@appsignal/javascript/src/span.ts", "../../../node_modules/@appsignal/javascript/src/queue.ts", "../../../node_modules/@appsignal/javascript/src/dispatcher.ts", "../../../node_modules/@appsignal/javascript/src/index.ts", "../../../node_modules/@appsignal/stimulus/src/index.ts", "../../javascript/controllers/application.js", "../../../node_modules/tailwindcss-stimulus-components/dist/tailwindcss-stimulus-components.module.js", "../../../node_modules/@rails/activestorage/app/assets/javascripts/activestorage.esm.js", "../../javascript/direct_uploads.js", "../../javascript/controllers/admin/payment_searches_controller.js", "../../javascript/controllers/admin/stats_chart_controller.js", "../../javascript/controllers/admin/auth_controller.js", "../../javascript/controllers/admin/retailer_bank_exclusions.js", "../../javascript/controllers/immediate_input_submit_controller.js", "../../javascript/controllers/localtime_format_controller.js", "../../javascript/controllers/admin/bulk_controller.js", "../../javascript/controllers/admin/draggable_controller.js", "../../javascript/controllers/toggle_controller.js", "../../javascript/controllers/disable_controller.js", "../../javascript/controllers/admin/reorder_controller.js", "../../javascript/controllers/admin/combobox_controller.js", "../../javascript/controllers/clipboard_controller.js", "../../javascript/controllers/admin/color_preview_controller.js", "../../javascript/controllers/admin/cashback_percent_controller.js", "../../javascript/controllers/jump_controller.js", "../../javascript/controllers/popover_controller.js", "../../javascript/controllers/panzoom_controller.js", "../../javascript/admin.js"],
  "sourcesContent": ["export default {\n  logger: typeof console !== \"undefined\" ? console : undefined,\n  WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined,\n}\n", "import adapters from \"./adapters\"\n\n// The logger is disabled by default. You can enable it with:\n//\n//   ActionCable.logger.enabled = true\n//\n//   Example:\n//\n//   import * as ActionCable from '@rails/actioncable'\n//\n//   ActionCable.logger.enabled = true\n//   ActionCable.logger.log('Connection Established.')\n//\n\nexport default {\n  log(...messages) {\n    if (this.enabled) {\n      messages.push(Date.now())\n      adapters.logger.log(\"[ActionCable]\", ...messages)\n    }\n  },\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring the cable connection is in good health by validating the heartbeat pings sent from the server, and attempting\n// revival reconnections if things go astray. Internal class, not intended for direct user manipulation.\n\nconst now = () => new Date().getTime()\n\nconst secondsSince = time => (now() - time) / 1000\n\nclass ConnectionMonitor {\n  constructor(connection) {\n    this.visibilityDidChange = this.visibilityDidChange.bind(this)\n    this.connection = connection\n    this.reconnectAttempts = 0\n  }\n\n  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. stale threshold = ${this.constructor.staleThreshold} s`)\n    }\n  }\n\n  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\n  isRunning() {\n    return this.startedAt && !this.stoppedAt\n  }\n\n  recordMessage() {\n    this.pingedAt = now()\n  }\n\n  recordConnect() {\n    this.reconnectAttempts = 0\n    delete this.disconnectedAt\n    logger.log(\"ConnectionMonitor recorded connect\")\n  }\n\n  recordDisconnect() {\n    this.disconnectedAt = now()\n    logger.log(\"ConnectionMonitor recorded disconnect\")\n  }\n\n  // Private\n\n  startPolling() {\n    this.stopPolling()\n    this.poll()\n  }\n\n  stopPolling() {\n    clearTimeout(this.pollTimeout)\n  }\n\n  poll() {\n    this.pollTimeout = setTimeout(() => {\n      this.reconnectIfStale()\n      this.poll()\n    }\n    , this.getPollInterval())\n  }\n\n  getPollInterval() {\n    const { staleThreshold, reconnectionBackoffRate } = this.constructor\n    const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10))\n    const jitterMax = this.reconnectAttempts === 0 ? 1.0 : reconnectionBackoffRate\n    const jitter = jitterMax * Math.random()\n    return staleThreshold * 1000 * backoff * (1 + jitter)\n  }\n\n  reconnectIfStale() {\n    if (this.connectionIsStale()) {\n      logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`)\n      this.reconnectAttempts++\n      if (this.disconnectedRecently()) {\n        logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`)\n      } else {\n        logger.log(\"ConnectionMonitor reopening\")\n        this.connection.reopen()\n      }\n    }\n  }\n\n  get refreshedAt() {\n    return this.pingedAt ? this.pingedAt : this.startedAt\n  }\n\n  connectionIsStale() {\n    return secondsSince(this.refreshedAt) > this.constructor.staleThreshold\n  }\n\n  disconnectedRecently() {\n    return this.disconnectedAt && (secondsSince(this.disconnectedAt) < this.constructor.staleThreshold)\n  }\n\n  visibilityDidChange() {\n    if (document.visibilityState === \"visible\") {\n      setTimeout(() => {\n        if (this.connectionIsStale() || !this.connection.isOpen()) {\n          logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`)\n          this.connection.reopen()\n        }\n      }\n      , 200)\n    }\n  }\n\n}\n\nConnectionMonitor.staleThreshold = 6 // Server::Connections::BEAT_INTERVAL * 2 (missed two pings)\nConnectionMonitor.reconnectionBackoffRate = 0.15\n\nexport default ConnectionMonitor\n", "export default {\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    \"remote\": \"remote\"\n  },\n  \"default_mount_path\": \"/cable\",\n  \"protocols\": [\n    \"actioncable-v1-json\",\n    \"actioncable-unsupported\"\n  ]\n}\n", "import adapters from \"./adapters\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport INTERNAL from \"./internal\"\nimport logger from \"./logger\"\n\n// Encapsulate the cable connection held by the consumer. This is an internal class not intended for direct user manipulation.\n\nconst {message_types, protocols} = INTERNAL\nconst supportedProtocols = protocols.slice(0, protocols.length - 1)\n\nconst indexOf = [].indexOf\n\nclass Connection {\n  constructor(consumer) {\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\n  send(data) {\n    if (this.isOpen()) {\n      this.webSocket.send(JSON.stringify(data))\n      return true\n    } else {\n      return false\n    }\n  }\n\n  open() {\n    if (this.isActive()) {\n      logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`)\n      return false\n    } else {\n      const socketProtocols = [...protocols, ...this.consumer.subprotocols || []]\n      logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`)\n      if (this.webSocket) { this.uninstallEventHandlers() }\n      this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols)\n      this.installEventHandlers()\n      this.monitor.start()\n      return true\n    }\n  }\n\n  close({allowReconnect} = {allowReconnect: true}) {\n    if (!allowReconnect) { this.monitor.stop() }\n    // Avoid closing websockets in a \"connecting\" state due to Safari 15.1+ bug. See: https://github.com/rails/rails/issues/43835#issuecomment-1002288478\n    if (this.isOpen()) {\n      return this.webSocket.close()\n    }\n  }\n\n  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      }\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\n  getProtocol() {\n    if (this.webSocket) {\n      return this.webSocket.protocol\n    }\n  }\n\n  isOpen() {\n    return this.isState(\"open\")\n  }\n\n  isActive() {\n    return this.isState(\"open\", \"connecting\")\n  }\n\n  triedToReconnect() {\n    return this.monitor.reconnectAttempts > 0\n  }\n\n  // Private\n\n  isProtocolSupported() {\n    return indexOf.call(supportedProtocols, this.getProtocol()) >= 0\n  }\n\n  isState(...states) {\n    return indexOf.call(states, this.getState()) >= 0\n  }\n\n  getState() {\n    if (this.webSocket) {\n      for (let state in adapters.WebSocket) {\n        if (adapters.WebSocket[state] === this.webSocket.readyState) {\n          return state.toLowerCase()\n        }\n      }\n    }\n    return null\n  }\n\n  installEventHandlers() {\n    for (let eventName in this.events) {\n      const handler = this.events[eventName].bind(this)\n      this.webSocket[`on${eventName}`] = handler\n    }\n  }\n\n  uninstallEventHandlers() {\n    for (let eventName in this.events) {\n      this.webSocket[`on${eventName}`] = function() {}\n    }\n  }\n\n}\n\nConnection.reopenDelay = 500\n\nConnection.prototype.events = {\n  message(event) {\n    if (!this.isProtocolSupported()) { return }\n    const {identifier, message, reason, reconnect, type} = JSON.parse(event.data)\n    this.monitor.recordMessage()\n    switch (type) {\n      case message_types.welcome:\n        if (this.triedToReconnect()) {\n          this.reconnectAttempted = true\n        }\n        this.monitor.recordConnect()\n        return this.subscriptions.reload()\n      case message_types.disconnect:\n        logger.log(`Disconnecting. Reason: ${reason}`)\n        return this.close({allowReconnect: reconnect})\n      case message_types.ping:\n        return null\n      case message_types.confirmation:\n        this.subscriptions.confirmSubscription(identifier)\n        if (this.reconnectAttempted) {\n          this.reconnectAttempted = false\n          return this.subscriptions.notify(identifier, \"connected\", {reconnected: true})\n        } else {\n          return this.subscriptions.notify(identifier, \"connected\", {reconnected: false})\n        }\n      case message_types.rejection:\n        return this.subscriptions.reject(identifier)\n      default:\n        return this.subscriptions.notify(identifier, \"received\", message)\n    }\n  },\n\n  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({allowReconnect: false})\n    }\n  },\n\n  close(event) {\n    logger.log(\"WebSocket onclose event\")\n    if (this.disconnected) { return }\n    this.disconnected = true\n    this.monitor.recordDisconnect()\n    return this.subscriptions.notifyAll(\"disconnected\", {willAttemptReconnect: this.monitor.isRunning()})\n  },\n\n  error() {\n    logger.log(\"WebSocket onerror event\")\n  }\n}\n\nexport default Connection\n", "// A new subscription is created through the ActionCable.Subscriptions instance available on the consumer.\n// It provides a number of callbacks and a method for calling remote procedure calls on the corresponding\n// Channel instance on the server side.\n//\n// An example demonstrates the basic functionality:\n//\n//   App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\", {\n//     connected() {\n//       // Called once the subscription has been successfully completed\n//     },\n//\n//     disconnected({ willAttemptReconnect: boolean }) {\n//       // Called when the client has disconnected with the server.\n//       // The object will have an `willAttemptReconnect` property which\n//       // says whether the client has the intention of attempting\n//       // to reconnect.\n//     },\n//\n//     appear() {\n//       this.perform('appear', {appearing_on: this.appearingOn()})\n//     },\n//\n//     away() {\n//       this.perform('away')\n//     },\n//\n//     appearingOn() {\n//       $('main').data('appearing-on')\n//     }\n//   })\n//\n// The methods #appear and #away forward their intent to the remote AppearanceChannel instance on the server\n// by calling the `perform` method with the first parameter being the action (which maps to AppearanceChannel#appear/away).\n// The second parameter is a hash that'll get JSON encoded and made available on the server in the data parameter.\n//\n// This is how the server component would look:\n//\n//   class AppearanceChannel < ApplicationActionCable::Channel\n//     def subscribed\n//       current_user.appear\n//     end\n//\n//     def unsubscribed\n//       current_user.disappear\n//     end\n//\n//     def appear(data)\n//       current_user.appear on: data['appearing_on']\n//     end\n//\n//     def away\n//       current_user.away\n//     end\n//   end\n//\n// The \"AppearanceChannel\" name is automatically mapped between the client-side subscription creation and the server-side Ruby class name.\n// The AppearanceChannel#appear/away public methods are exposed automatically to client-side invocation through the perform method.\n\nconst extend = function(object, properties) {\n  if (properties != null) {\n    for (let key in properties) {\n      const value = properties[key]\n      object[key] = value\n    }\n  }\n  return object\n}\n\nexport default class Subscription {\n  constructor(consumer, params = {}, mixin) {\n    this.consumer = consumer\n    this.identifier = JSON.stringify(params)\n    extend(this, mixin)\n  }\n\n  // Perform a channel action with the optional data passed as an attribute\n  perform(action, data = {}) {\n    data.action = action\n    return this.send(data)\n  }\n\n  send(data) {\n    return this.consumer.send({command: \"message\", identifier: this.identifier, data: JSON.stringify(data)})\n  }\n\n  unsubscribe() {\n    return this.consumer.subscriptions.remove(this)\n  }\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring channel subscribe command is confirmed, retrying until confirmation is received.\n// Internal class, not intended for direct user manipulation.\n\nclass SubscriptionGuarantor {\n  constructor(subscriptions) {\n    this.subscriptions = subscriptions\n    this.pendingSubscriptions = []\n  }\n\n  guarantee(subscription) {\n    if(this.pendingSubscriptions.indexOf(subscription) == -1){ \n      logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`)\n      this.pendingSubscriptions.push(subscription) \n    }\n    else {\n      logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`)\n    }\n    this.startGuaranteeing()\n  }\n\n  forget(subscription) {\n    logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`)\n    this.pendingSubscriptions = (this.pendingSubscriptions.filter((s) => s !== subscription))\n  }\n\n  startGuaranteeing() {\n    this.stopGuaranteeing()\n    this.retrySubscribing()\n  }\n  \n  stopGuaranteeing() {\n    clearTimeout(this.retryTimeout)\n  }\n\n  retrySubscribing() {\n    this.retryTimeout = setTimeout(() => {\n      if (this.subscriptions && typeof(this.subscriptions.subscribe) === \"function\") {\n        this.pendingSubscriptions.map((subscription) => {\n          logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`)\n          this.subscriptions.subscribe(subscription)\n        })\n      }\n    }\n    , 500)\n  }\n}\n\nexport default SubscriptionGuarantor", "import Subscription from \"./subscription\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport logger from \"./logger\"\n\n// Collection class for creating (and internally managing) channel subscriptions.\n// The only method intended to be triggered by the user is ActionCable.Subscriptions#create,\n// and it should be called through the consumer like so:\n//\n//   App = {}\n//   App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n//   App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n\nexport default class Subscriptions {\n  constructor(consumer) {\n    this.consumer = consumer\n    this.guarantor = new SubscriptionGuarantor(this)\n    this.subscriptions = []\n  }\n\n  create(channelName, mixin) {\n    const channel = channelName\n    const params = typeof channel === \"object\" ? channel : {channel}\n    const subscription = new Subscription(this.consumer, params, mixin)\n    return this.add(subscription)\n  }\n\n  // Private\n\n  add(subscription) {\n    this.subscriptions.push(subscription)\n    this.consumer.ensureActiveConnection()\n    this.notify(subscription, \"initialized\")\n    this.subscribe(subscription)\n    return subscription\n  }\n\n  remove(subscription) {\n    this.forget(subscription)\n    if (!this.findAll(subscription.identifier).length) {\n      this.sendCommand(subscription, \"unsubscribe\")\n    }\n    return subscription\n  }\n\n  reject(identifier) {\n    return this.findAll(identifier).map((subscription) => {\n      this.forget(subscription)\n      this.notify(subscription, \"rejected\")\n      return subscription\n    })\n  }\n\n  forget(subscription) {\n    this.guarantor.forget(subscription)\n    this.subscriptions = (this.subscriptions.filter((s) => s !== subscription))\n    return subscription\n  }\n\n  findAll(identifier) {\n    return this.subscriptions.filter((s) => s.identifier === identifier)\n  }\n\n  reload() {\n    return this.subscriptions.map((subscription) =>\n      this.subscribe(subscription))\n  }\n\n  notifyAll(callbackName, ...args) {\n    return this.subscriptions.map((subscription) =>\n      this.notify(subscription, callbackName, ...args))\n  }\n\n  notify(subscription, callbackName, ...args) {\n    let subscriptions\n    if (typeof subscription === \"string\") {\n      subscriptions = this.findAll(subscription)\n    } else {\n      subscriptions = [subscription]\n    }\n\n    return subscriptions.map((subscription) =>\n      (typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined))\n  }\n\n  subscribe(subscription) {\n    if (this.sendCommand(subscription, \"subscribe\")) {\n      this.guarantor.guarantee(subscription)\n    }\n  }\n\n  confirmSubscription(identifier) {\n    logger.log(`Subscription confirmed ${identifier}`)\n    this.findAll(identifier).map((subscription) =>\n      this.guarantor.forget(subscription))\n  }\n\n  sendCommand(subscription, command) {\n    const {identifier} = subscription\n    return this.consumer.send({command, identifier})\n  }\n}\n", "import Connection from \"./connection\"\nimport Subscriptions from \"./subscriptions\"\n\n// The ActionCable.Consumer establishes the connection to a server-side Ruby Connection object. Once established,\n// the ActionCable.ConnectionMonitor will ensure that its properly maintained through heartbeats and checking for stale updates.\n// The Consumer instance is also the gateway to establishing subscriptions to desired channels through the #createSubscription\n// method.\n//\n// The following example shows how this can be set up:\n//\n//   App = {}\n//   App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n//   App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n//\n// When a consumer is created, it automatically connects with the server.\n//\n// To disconnect from the server, call\n//\n//   App.cable.disconnect()\n//\n// and to restart the connection:\n//\n//   App.cable.connect()\n//\n// Any channel subscriptions which existed prior to disconnecting will\n// automatically resubscribe.\n\nexport default class Consumer {\n  constructor(url) {\n    this._url = url\n    this.subscriptions = new Subscriptions(this)\n    this.connection = new Connection(this)\n    this.subprotocols = []\n  }\n\n  get url() {\n    return createWebSocketURL(this._url)\n  }\n\n  send(data) {\n    return this.connection.send(data)\n  }\n\n  connect() {\n    return this.connection.open()\n  }\n\n  disconnect() {\n    return this.connection.close({allowReconnect: false})\n  }\n\n  ensureActiveConnection() {\n    if (!this.connection.isActive()) {\n      return this.connection.open()\n    }\n  }\n\n  addSubProtocol(subprotocol) {\n    this.subprotocols = [...this.subprotocols, subprotocol]\n  }\n}\n\nexport function createWebSocketURL(url) {\n  if (typeof url === \"function\") {\n    url = url()\n  }\n\n  if (url && !/^wss?:/i.test(url)) {\n    const a = document.createElement(\"a\")\n    a.href = url\n    // Fix populating Location properties in IE. Otherwise, protocol will be blank.\n    a.href = a.href // eslint-disable-line\n    a.protocol = a.protocol.replace(\"http\", \"ws\")\n    return a.href\n  } else {\n    return url\n  }\n}\n", "import Connection from \"./connection\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport Consumer, { createWebSocketURL } from \"./consumer\"\nimport INTERNAL from \"./internal\"\nimport Subscription from \"./subscription\"\nimport Subscriptions from \"./subscriptions\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport adapters from \"./adapters\"\nimport logger from \"./logger\"\n\nexport {\n  Connection,\n  ConnectionMonitor,\n  Consumer,\n  INTERNAL,\n  Subscription,\n  Subscriptions,\n  SubscriptionGuarantor,\n  adapters,\n  createWebSocketURL,\n  logger,\n}\n\nexport function createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n  return new Consumer(url)\n}\n\nexport function getConfig(name) {\n  const element = document.head.querySelector(`meta[name='action-cable-${name}']`)\n  if (element) {\n    return element.getAttribute(\"content\")\n  }\n}\n", "!/**\n * Highcharts JS v12.4.0 (2025-09-04)\n * @module highcharts/highcharts\n *\n * (c) 2009-2025 Highsoft AS\n *\n * License: www.highcharts.com/license\n */function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?(t._Highcharts=e(),module.exports=t._Highcharts):\"function\"==typeof define&&define.amd?define(\"highcharts/highcharts\",[],e):\"object\"==typeof exports?(t._Highcharts=e(),exports.highcharts=t._Highcharts):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=e())}(\"undefined\"==typeof window?this:window,()=>(()=>{\"use strict\";let t,e;var i,s,o,r,a,n,h,l,d,c,p,g,u,f,m,x,y,b,v={};v.d=(t,e)=>{for(var i in e)v.o(e,i)&&!v.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},v.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var k={};v.d(k,{default:()=>lI}),function(t){t.SVG_NS=\"http://www.w3.org/2000/svg\",t.product=\"Highcharts\",t.version=\"12.4.0\",t.win=\"undefined\"!=typeof window?window:{},t.doc=t.win.document,t.svg=!!t.doc?.createElementNS?.(t.SVG_NS,\"svg\")?.createSVGRect,t.pageLang=t.doc?.documentElement?.closest(\"[lang]\")?.lang,t.userAgent=t.win.navigator?.userAgent||\"\",t.isChrome=t.win.chrome,t.isFirefox=-1!==t.userAgent.indexOf(\"Firefox\"),t.isMS=/(edge|msie|trident)/i.test(t.userAgent)&&!t.win.opera,t.isSafari=!t.isChrome&&-1!==t.userAgent.indexOf(\"Safari\"),t.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(t.userAgent),t.isWebKit=-1!==t.userAgent.indexOf(\"AppleWebKit\"),t.deg2rad=2*Math.PI/360,t.marginNames=[\"plotTop\",\"marginRight\",\"marginBottom\",\"plotLeft\"],t.noop=function(){},t.supportsPassiveEvents=function(){let e=!1;if(!t.isMS){let i=Object.defineProperty({},\"passive\",{get:function(){e=!0}});t.win.addEventListener&&t.win.removeEventListener&&(t.win.addEventListener(\"testPassive\",t.noop,i),t.win.removeEventListener(\"testPassive\",t.noop,i))}return e}(),t.charts=[],t.composed=[],t.dateFormats={},t.seriesTypes={},t.symbolSizes={},t.chartCount=0}(i||(i={}));let w=i,{charts:M,doc:S,win:T}=w;function C(t,e,i,s){let o=e?\"Highcharts error\":\"Highcharts warning\";32===t&&(t=`${o}: Deprecated member`);let r=D(t),a=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t=\"\";r&&(a+=\"?\"),j(s,function(e,i){t+=`\n - ${i}: ${e}`,r&&(a+=encodeURI(i)+\"=\"+encodeURI(e))}),a+=t}U(w,\"displayError\",{chart:i,code:t,message:a,params:s},function(){if(e)throw Error(a);T.console&&-1===C.messages.indexOf(a)&&console.warn(a)}),C.messages.push(a)}function A(t,e){return parseInt(t,e||10)}function P(t){return\"string\"==typeof t}function L(t){let e=Object.prototype.toString.call(t);return\"[object Array]\"===e||\"[object Array Iterator]\"===e}function O(t,e){return!!t&&\"object\"==typeof t&&(!e||!L(t))}function E(t){return O(t)&&\"number\"==typeof t.nodeType}function I(t){let e=t?.constructor;return!!(O(t,!0)&&!E(t)&&e?.name&&\"Object\"!==e.name)}function D(t){return\"number\"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function B(t){return null!=t}function N(t,e,i){let s,o=P(e)&&!B(i),r=(e,i)=>{B(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||\"class\"!==i||(s=t.getAttribute(i+\"Name\")):t.removeAttribute(i)};return P(e)?r(i,e):j(e,r),s}function z(t){return L(t)?t:[t]}function R(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function W(){let t=arguments,e=t.length;for(let i=0;i<e;i++){let e=t[i];if(null!=e)return e}}function H(t,e){R(t.style,e)}function X(t){return Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function F(t,e){return t>1e14?t:parseFloat(t.toPrecision(e||14))}(C||(C={})).messages=[],Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let G=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i,s=t.length;for(i=0;i<s;i++)if(e(t[i],i))return t[i]};function j(t,e,i){for(let s in t)Object.hasOwnProperty.call(t,s)&&e.call(i||t[s],t[s],s,t)}function Y(t,e,i){function s(e,i){let s=t.removeEventListener;s&&s.call(t,e,i,!1)}function o(i){let o,r;t.nodeName&&(e?(o={})[e]=!0:o=i,j(o,function(t,e){if(i[e])for(r=i[e].length;r--;)s(e,i[e][r].fn)}))}let r=\"function\"==typeof t&&t.prototype||t;if(Object.hasOwnProperty.call(r,\"hcEvents\")){let t=r.hcEvents;if(e){let r=t[e]||[];i?(t[e]=r.filter(function(t){return i!==t.fn}),s(e,i)):(o(t),t[e]=[])}else o(t),delete r.hcEvents}}function U(t,e,i,s){if(i=i||{},S?.createEvent&&(t.dispatchEvent||t.fireEvent&&t!==w)){let s=S.createEvent(\"Events\");s.initEvent(e,!0,!0),i=R(s,i),t.dispatchEvent?t.dispatchEvent(i):t.fireEvent(e,i)}else if(t.hcEvents){i.target||R(i,{preventDefault:function(){i.defaultPrevented=!0},target:t,type:e});let s=[],o=t,r=!1;for(;o.hcEvents;)Object.hasOwnProperty.call(o,\"hcEvents\")&&o.hcEvents[e]&&(s.length&&(r=!0),s.unshift.apply(s,o.hcEvents[e])),o=Object.getPrototypeOf(o);r&&s.sort((t,e)=>t.order-e.order),s.forEach(e=>{!1===e.fn.call(t,i)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let $=function(){let e=Math.random().toString(36).substring(2,9)+\"-\",i=0;return function(){return\"highcharts-\"+(t?\"\":e)+i++}}();T.jQuery&&(T.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new w[P(t[0])?t.shift():\"Chart\"](this[0],t[0],t[1]),this):M[N(this[0],\"data-highcharts-chart\")]});let V={addEvent:function(t,e,i,s={}){let o=\"function\"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,\"hcEvents\")||(o.hcEvents={});let r=o.hcEvents;w.Point&&t instanceof w.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,i,!!w.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf(\"touch\"):s.passive,capture:!1}),r[e]||(r[e]=[]);let n={fn:i,order:\"number\"==typeof s.order?s.order:1/0};return r[e].push(n),r[e].sort((t,e)=>t.order-e.order),function(){Y(t,e,i)}},arrayMax:function(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i},arrayMin:function(t){let e=t.length,i=t[0];for(;e--;)t[e]<i&&(i=t[e]);return i},attr:N,clamp:function(t,e,i){return t>e?t<i?t:i:e},clearTimeout:function(t){B(t)&&clearTimeout(t)},correctFloat:F,createElement:function(t,e,i,s,o){let r=S.createElement(t);return e&&R(r,e),o&&H(r,{padding:\"0\",border:\"none\",margin:\"0\"}),i&&H(r,i),s&&s.appendChild(r),r},crisp:function(t,e=0,i){let s=e%2/2,o=i?-1:1;return(Math.round(t*o-s)+s)*o},css:H,defined:B,destroyObjectProperties:function(t,e,i){j(t,function(s,o){s!==e&&s?.destroy&&s.destroy(),(s?.destroy||!i)&&delete t[o]})},diffObjects:function(t,e,i,s){let o={};return!function t(e,o,r,a){let n=i?o:e;j(e,function(i,h){if(!a&&s&&s.indexOf(h)>-1&&o[h]){i=z(i),r[h]=[];for(let e=0;e<Math.max(i.length,o[h].length);e++)o[h][e]&&(void 0===i[e]?r[h][e]=o[h][e]:(r[h][e]={},t(i[e],o[h][e],r[h][e],a+1)))}else O(i,!0)&&!i.nodeType?(r[h]=L(i)?[]:{},t(i,o[h]||{},r[h],a+1),0===Object.keys(r[h]).length&&(\"colorAxis\"!==h||0!==a)&&delete r[h]):(e[h]!==o[h]||h in e&&!(h in o))&&\"__proto__\"!==h&&\"constructor\"!==h&&(r[h]=n[h])})}(t,e,o,0),o},discardElement:function(t){t?.parentElement?.removeChild(t)},erase:function(t,e){let i=t.length;for(;i--;)if(t[i]===e){t.splice(i,1);break}},error:C,extend:R,extendClass:function(t,e){let i=function(){};return i.prototype=new t,R(i.prototype,e),i},find:G,fireEvent:U,getAlignFactor:(t=\"\")=>({center:.5,right:1,middle:.5,bottom:1})[t]||0,getClosestDistance:function(t,e){let i,s,o,r,a=!e;return t.forEach(t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!a?(e?.(),e=void 0):o&&(void 0===i||o<i)&&(i=o)}),i},getMagnitude:X,getNestedProperty:function(t,e){let i=t.split(\".\");for(;i.length&&B(e);){let t=i.shift();if(void 0===t||\"__proto__\"===t)return;if(\"this\"===t){let t;return O(e)&&(t=e[\"@this\"]),t??e}let s=e[t.replace(/[\\\\'\"]/g,\"\")];if(!B(s)||\"function\"==typeof s||\"number\"==typeof s.nodeType||s===T)return;e=s}return e},getStyle:function t(e,i,s){let o;if(\"width\"===i){let i=Math.min(e.offsetWidth,e.scrollWidth),s=e.getBoundingClientRect?.().width;return s<i&&s>=i-1&&(i=Math.floor(s)),Math.max(0,i-(t(e,\"padding-left\",!0)||0)-(t(e,\"padding-right\",!0)||0))}if(\"height\"===i)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(t(e,\"padding-top\",!0)||0)-(t(e,\"padding-bottom\",!0)||0));let r=T.getComputedStyle(e,void 0);return r&&(o=r.getPropertyValue(i),W(s,\"opacity\"!==i)&&(o=A(o))),o},insertItem:function(t,e){let i,s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i<o+1;i++)if(!e[i]||D(s)&&s<W(e[i].options.index,e[i]._i)||e[i].options.isInternal){e.splice(i,0,t);break}return i},isArray:L,isClass:I,isDOMElement:E,isFunction:function(t){return\"function\"==typeof t},isNumber:D,isObject:O,isString:P,merge:function(t,...e){let i,s=[t,...e],o={},r=function(t,e){return\"object\"!=typeof t&&(t={}),j(e,function(i,s){\"__proto__\"!==s&&\"constructor\"!==s&&(!O(i,!0)||I(i)||E(i)?t[s]=e[s]:t[s]=r(t[s]||{},i))}),t};!0===t&&(o=s[1],s=Array.prototype.slice.call(s,2));let a=s.length;for(i=0;i<a;i++)o=r(o,s[i]);return o},normalizeTickInterval:function(t,e,i,s,o){let r,a=t;i=W(i,X(t));let n=t/i;for(!e&&(e=o?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===s&&(1===i?e=e.filter(function(t){return t%1==0}):i<=.1&&(e=[1/i]))),r=0;r<e.length&&(a=e[r],(!o||!(a*i>=t))&&(o||!(n<=(e[r]+(e[r+1]||e[r]))/2)));r++);return F(a*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:j,offset:function(t){let e=S.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(T.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(T.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}},pad:function(t,e,i){return Array((e||2)+1-String(t).replace(\"-\",\"\").length).join(i||\"0\")+t},pick:W,pInt:A,pushUnique:function(t,e){return 0>t.indexOf(e)&&!!t.push(e)},relativeLength:function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},removeEvent:Y,replaceNested:function(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t},splat:z,stableSort:function(t,e){let i,s,o=t.length;for(s=0;s<o;s++)t[s].safeI=s;for(t.sort(function(t,s){return 0===(i=e(t,s))?t.safeI-s.safeI:i}),s=0;s<o;s++)delete t[s].safeI},syncTimeout:function(t,e,i){return e>0?setTimeout(t,e,i):(t.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(t){return P(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)},uniqueKey:$,useSerialIds:function(e){return t=W(e,t)},wrap:function(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}},{pageLang:Z,win:_}=w,{defined:q,error:K,extend:J,isNumber:Q,isObject:tt,isString:te,merge:ti,objectEach:ts,pad:to,splat:tr,timeUnits:ta,ucfirst:tn}=V,th=w.isSafari&&_.Intl&&!_.Intl.DateTimeFormat.prototype.formatRange,tl=t=>void 0===t.main,td=class{constructor(t,e){this.options={timezone:\"UTC\"},this.variableTimezone=!1,this.Date=_.Date,this.update(t),this.lang=e}update(t={}){this.dTLCache={},this.options=t=ti(!0,this.options,t);let{timezoneOffset:e,useUTC:i,locale:s}=t;this.Date=t.Date||_.Date||Date;let o=t.timezone;q(i)&&(o=i?\"UTC\":void 0),e&&e%60==0&&(o=\"Etc/GMT\"+(e>0?\"+\":\"\")+e/60),this.variableTimezone=\"UTC\"!==o&&o?.indexOf(\"Etc/GMT\")!==0,this.timezone=o,this.lang&&s&&(this.lang.locale=s),[\"months\",\"shortMonths\",\"weekdays\",\"shortWeekdays\"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:\"UTC\"};s[e?\"month\":\"weekday\"]=i?\"short\":\"long\",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*24*36e5*t))})}toParts(t){let[e,i,s,o,r,a,n]=this.dateTimeFormat({weekday:\"narrow\",day:\"numeric\",month:\"numeric\",year:\"numeric\",hour:\"numeric\",minute:\"numeric\",second:\"numeric\"},t,\"es\").split(/(?:, | |\\/|:)/g);return[o,s-1,i,r,a,n,Math.floor(Number(t)||0)%1e3,\"DLMXJVS\".indexOf(e)].map(Number)}dateTimeFormat(t,e,i=this.options.locale||Z){let s=JSON.stringify(t)+i;te(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(K(34),t.timeZone=\"UTC\",o=new Intl.DateTimeFormat(i,t)):K(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||\"\"}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:\"2-digit\"},M:{minute:\"numeric\"},H:{hour:\"2-digit\"},k:{hour:\"numeric\"},E:{weekday:\"narrow\"},a:{weekday:\"short\"},A:{weekday:\"long\"},d:{day:\"2-digit\"},e:{day:\"numeric\"},b:{month:\"short\"},B:{month:\"long\"},m:{month:\"2-digit\"},o:{month:\"numeric\"},y:{year:\"2-digit\"},Y:{year:\"numeric\"}};return Object.keys(i).forEach(s=>{-1!==t.indexOf(s)&&J(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,a){let n=this.Date.UTC(t,e,i,s,o||0,r||0,a||0);if(\"UTC\"!==this.timezone){let t=this.getTimezoneOffset(n);if(n+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(s<5||s>20)){let e=this.getTimezoneOffset(n);t!==e?n+=e-t:t-36e5!==this.getTimezoneOffset(n-36e5)||th||(n-=36e5)}}return n}parse(t){if(!te(t))return t??void 0;let e=(t=t.replace(/\\//g,\"-\").replace(/(GMT|UTC)/,\"\")).indexOf(\"Z\")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}(-[0-9]{2}|)$/.test(t);e||i||(t+=\"Z\");let s=Date.parse(t);if(Q(s))return s+(!e||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(t){if(\"UTC\"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:\"shortOffset\"},t,\"en\").split(/(GMT|:)/).map(Number),a=-(60*(s+r/60)*6e4);if(Q(a))return a}return 0}dateFormat(t,e,i){let s=this.lang;if(!q(e)||isNaN(e))return s?.invalidDate||\"\";if(te(t=t??\"%Y-%m-%d %H:%M:%S\")){let i,o=/%\\[([a-zA-Z]+)\\]/g;for(;i=o.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e,s?.locale))}if(te(t)&&-1!==t.indexOf(\"%\")){let i=this,[o,r,a,n,h,l,d,c]=this.toParts(e),p=s?.weekdays||this.weekdays,g=s?.shortWeekdays||this.shortWeekdays,u=s?.months||this.months,f=s?.shortMonths||this.shortMonths;ts(J({a:g?g[c]:p[c].substr(0,3),A:p[c],d:to(a),e:to(a,2,\" \"),w:c,v:s?.weekFrom??\"\",b:f[r],B:u[r],m:to(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:to(n),k:n,I:to(n%12||12),l:n%12||12,M:to(h),p:n<12?\"AM\":\"PM\",P:n<12?\"am\":\"pm\",S:to(l),L:to(d,3)},w.dateFormats),function(s,o){if(te(t))for(;-1!==t.indexOf(\"%\"+o);)t=t.replace(\"%\"+o,\"function\"==typeof s?s.call(i,e):s)})}else if(tt(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.timezone||\"Etc/GMT\"+(i>=0?\"+\":\"\")+i,{prefix:o=\"\",suffix:r=\"\"}=t;t=o+this.dateTimeFormat(J({timeZone:s},t),e)+r}return i?tn(t):t}resolveDTLFormat(t){return tt(t,!0)?tt(t,!0)&&tl(t)?{main:t}:t:{main:(t=tr(t))[0],from:t[1],to:t[2]}}getDateFormat(t,e,i,s){let o=this.dateFormat(\"%m-%d %H:%M:%S.%L\",e),r=\"01-01 00:00:00.000\",a={millisecond:15,second:12,minute:9,hour:6,day:3},n=\"millisecond\",h=n;for(n in ta){if(t&&t===ta.week&&+this.dateFormat(\"%w\",e)===i&&o.substr(6)===r.substr(6)){n=\"week\";break}if(t&&ta[n]>t){n=h;break}if(a[n]&&o.substr(a[n])!==r.substr(a[n]))break;\"week\"!==n&&(h=n)}return this.resolveDTLFormat(s[n]).main}},{defined:tc,extend:tp,timeUnits:tg}=V,tu=class extends td{getTimeTicks(t,e,i,s){let o=this,r=[],a={},{count:n=1,unitRange:h}=t,[l,d,c,p,g,u]=o.toParts(e),f=(e||0)%1e3,m;if(s??(s=1),tc(e)){if(f=h>=tg.second?0:n*Math.floor(f/n),h>=tg.second&&(u=h>=tg.minute?0:n*Math.floor(u/n)),h>=tg.minute&&(g=h>=tg.hour?0:n*Math.floor(g/n)),h>=tg.hour&&(p=h>=tg.day?0:n*Math.floor(p/n)),h>=tg.day&&(c=h>=tg.month?1:Math.max(1,n*Math.floor(c/n))),h>=tg.month&&(d=h>=tg.year?0:n*Math.floor(d/n)),h>=tg.year&&(l-=l%n),h===tg.week){n&&(e=o.makeTime(l,d,c,p,g,u,f));let t=this.dateTimeFormat({timeZone:this.timezone,weekday:\"narrow\"},e,\"es\"),i=\"DLMXJVS\".indexOf(t);c+=-i+s+(i<s?-7:0)}e=o.makeTime(l,d,c,p,g,u,f),o.variableTimezone&&tc(i)&&(m=i-e>4*tg.month||o.getTimezoneOffset(e)!==o.getTimezoneOffset(i));let t=e,x=1;for(;t<i;)r.push(t),h===tg.year?t=o.makeTime(l+x*n,0):h===tg.month?t=o.makeTime(l,d+x*n):m&&(h===tg.day||h===tg.week)?t=o.makeTime(l,d,c+x*n*(h===tg.day?1:7)):m&&h===tg.hour&&n>1?t=o.makeTime(l,d,c,p+x*n):t+=h*n,x++;r.push(t),h<=tg.hour&&r.length<1e4&&r.forEach(t=>{t%18e5==0&&\"000000000\"===o.dateFormat(\"%H%M%S%L\",t)&&(a[t]=\"day\")})}return r.info=tp(t,{higherRanks:a,totalRange:h*n}),r}},{isTouchDevice:tf}=w,{fireEvent:tm,merge:tx}=V,ty={colors:[\"#2caffe\",\"#544fc5\",\"#00e272\",\"#fe6a35\",\"#6b8abc\",\"#d568fb\",\"#2ee0ca\",\"#fa4b42\",\"#feb56a\",\"#91e8e1\"],symbols:[\"circle\",\"diamond\",\"square\",\"triangle\",\"triangle-down\"],lang:{weekFrom:\"week from\",chartTitle:\"Chart title\",locale:void 0,loading:\"Loading...\",months:void 0,seriesName:\"Series {add index 1}\",shortMonths:void 0,weekdays:void 0,numericSymbols:[\"k\",\"M\",\"G\",\"T\",\"P\",\"E\"],pieSliceName:\"Slice\",resetZoom:\"Reset zoom\",yAxisTitle:\"Values\",resetZoomTitle:\"Reset zoom level 1:1\"},global:{buttonTheme:{fill:\"#f7f7f7\",padding:8,r:2,stroke:\"#cccccc\",\"stroke-width\":1,style:{color:\"#333333\",cursor:\"pointer\",fontSize:\"0.8em\",fontWeight:\"normal\"},states:{hover:{fill:\"#e6e6e6\"},select:{fill:\"#e6e9ff\",style:{color:\"#000000\",fontWeight:\"bold\"}},disabled:{style:{color:\"#cccccc\"}}}}},time:{Date:void 0,timezone:\"UTC\",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:\"x\"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:\"line\",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:\"right\",x:-10,y:10}}},width:null,height:null,borderColor:\"#334eff\",backgroundColor:\"#ffffff\",plotBorderColor:\"#cccccc\"},title:{style:{color:\"#333333\",fontWeight:\"bold\"},text:\"Chart title\",margin:15,minScale:.67},subtitle:{style:{color:\"#666666\",fontSize:\"0.8em\"},text:\"\"},caption:{margin:15,style:{color:\"#666666\",fontSize:\"0.8em\"},text:\"\",align:\"left\",verticalAlign:\"bottom\"},plotOptions:{},legend:{enabled:!0,align:\"center\",alignColumns:!0,className:\"highcharts-no-tooltip\",events:{},layout:\"horizontal\",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:\"#999999\",borderRadius:0,navigation:{style:{fontSize:\"0.8em\"},activeColor:\"#0022ff\",inactiveColor:\"#cccccc\"},itemStyle:{color:\"#333333\",cursor:\"pointer\",fontSize:\"0.8em\",textDecoration:\"none\",textOverflow:\"ellipsis\"},itemHoverStyle:{color:\"#000000\"},itemHiddenStyle:{color:\"#666666\",textDecoration:\"line-through\"},shadow:!1,itemCheckboxStyle:{position:\"absolute\",width:\"13px\",height:\"13px\"},squareSymbol:!0,symbolPadding:5,verticalAlign:\"bottom\",x:0,y:0,title:{style:{color:\"#333333\",fontSize:\"0.8em\",fontWeight:\"bold\"}}},loading:{labelStyle:{fontWeight:\"bold\",position:\"relative\",top:\"45%\"},style:{position:\"absolute\",backgroundColor:\"#ffffff\",opacity:.5,textAlign:\"center\"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:\"%[AebHMSL]\",second:\"%[AebHMS]\",minute:\"%[AebHM]\",hour:\"%[AebHM]\",day:\"%[AebY]\",week:\"%v %[AebY]\",month:\"%[BY]\",year:\"%Y\"},footerFormat:\"\",headerShape:\"callout\",hideDelay:500,padding:8,position:{x:0,y:3},shared:!1,snap:tf?25:10,headerFormat:'<span style=\"font-size: 0.8em\">{ucfirst point.key}</span><br/>',pointFormat:'<span style=\"color:{point.color}\">\u25CF</span> {series.name}: <b>{point.y}</b><br/>',backgroundColor:\"#ffffff\",borderWidth:void 0,stickOnContact:!1,style:{color:\"#333333\",cursor:\"default\",fontSize:\"0.8em\"},useHTML:!1},credits:{enabled:!0,href:\"https://www.highcharts.com?credits\",position:{align:\"right\",x:-10,verticalAlign:\"bottom\",y:-5},style:{cursor:\"pointer\",color:\"#999999\",fontSize:\"0.6em\"},text:\"Highcharts.com\"}},tb=new tu(ty.time,ty.lang),tv={defaultOptions:ty,defaultTime:tb,getOptions:function(){return ty},setOptions:function(t){return tm(w,\"setOptions\",{options:t}),tx(!0,ty,t),t.time&&tb.update(ty.time),t.lang&&\"locale\"in t.lang&&tb.update({locale:t.lang.locale}),t.lang?.chartTitle&&(ty.title={...ty.title,text:t.lang.chartTitle}),ty}},{win:tk}=w,{isNumber:tw,isString:tM,merge:tS,pInt:tT,defined:tC}=V,tA=(t,e,i)=>`color-mix(in srgb,${t},${e} ${100*i}%)`,tP=t=>tM(t)&&!!t&&\"none\"!==t;class tL{static parse(t){return t?new tL(t):tL.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;let r=w.Color;if(r&&r!==tL)return new r(t);if(\"object\"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tL(t[1]));else if(\"string\"==typeof t)for(this.input=t=tL.names[t.toLowerCase()]||t,s=tL.parsers.length;s--&&!i;)(e=(o=tL.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if(this.output)return this.output;if(\"object\"==typeof e&&void 0!==this.stops){let i=tS(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return i&&tw(i[0])?\"rgb\"!==t&&(t||1!==i[3])?\"a\"===t?`${i[3]}`:\"rgba(\"+i.join(\",\")+\")\":\"rgb(\"+i[0]+\",\"+i[1]+\",\"+i[2]+\")\":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(tw(t)&&0!==t)if(tw(e[0]))for(let i=0;i<3;i++)e[i]+=tT(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);else tL.useColorMix&&tP(this.input)&&(this.output=tA(this.input,t>0?\"white\":\"black\",Math.abs(t)));return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!tw(i[0])||!tw(s[0]))return tL.useColorMix&&tP(this.input)&&tP(t.input)&&e<.99?tA(this.input,t.input,e):t.input||\"none\";let o=1!==s[3]||1!==i[3],r=(t,s)=>t+(i[s]-t)*(1-e),a=s.slice(0,3).map(r).map(Math.round);return o&&a.push(r(s[3],3)),(o?\"rgba(\":\"rgb(\")+a.join(\",\")+\")\"}}tL.names={white:\"#ffffff\",black:\"#000000\"},tL.parsers=[{regex:/rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d?(?:\\.\\d+)?)\\s*\\)/,parse:function(t){return[tT(t[1]),tT(t[2]),tT(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)/,parse:function(t){return[tT(t[1]),tT(t[2]),tT(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[tT(t[1]+t[1],16),tT(t[2]+t[2],16),tT(t[3]+t[3],16),tC(t[4])?tT(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[tT(t[1],16),tT(t[2],16),tT(t[3],16),tC(t[4])?tT(t[4],16)/255:1]}}],tL.useColorMix=tk.CSS?.supports(\"color\",\"color-mix(in srgb,red,blue 9%)\"),tL.None=new tL(\"\");let{parse:tO}=tL,{win:tE}=w,{isNumber:tI,objectEach:tD}=V;class tB{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t?.[0],i=t?.[1],s=this.now||0,o=[];if(1!==s&&e&&i)if(e.length===i.length&&s<1)for(let t=0;t<i.length;t++){let r=e[t],a=i[t],n=[];for(let t=0;t<a.length;t++){let e=r[t],i=a[t];tI(e)&&tI(i)&&(\"A\"!==a[0]||4!==t&&5!==t)?n[t]=e+s*(i-e):n[t]=i}o.push(n)}else o=i;else o=this.toD||[];this.elem.attr(\"d\",o,void 0,!0)}update(){let t=this.elem,e=this.prop,i=this.now,s=this.options.step;this[e+\"Setter\"]?this[e+\"Setter\"]():t.attr?t.element&&t.attr(e,i,null,!0):t.style[e]=i+this.unit,s&&s.call(t,i,this)}run(t,e,i){let s=this,o=s.options,r=function(t){return!r.stopped&&s.step(t)},a=tE.requestAnimationFrame||function(t){setTimeout(t,13)},n=function(){for(let t=0;t<tB.timers.length;t++)tB.timers[t]()||tB.timers.splice(t--,1);tB.timers.length&&a(n)};t!==e||this.elem[\"forceAnimate:\"+this.prop]?(this.startTime=+new Date,this.start=t,this.end=e,this.unit=i,this.now=this.start,this.pos=0,r.elem=this.elem,r.prop=this.prop,r()&&1===tB.timers.push(r)&&a(n)):(delete o.curAnim[this.prop],o.complete&&0===Object.keys(o.curAnim).length&&o.complete.call(this.elem))}step(t){let e,i,s=+new Date,o=this.options,r=this.elem,a=o.complete,n=o.duration,h=o.curAnim;return r.attr&&!r.element?e=!1:t||s>=n+this.startTime?(this.now=this.end,this.pos=1,this.update(),h[this.prop]=!0,i=!0,tD(h,function(t){!0!==t&&(i=!1)}),i&&a&&a.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/n),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,o=t.endX,r=i.slice(),a=t.isArea,n=a?2:1,h=e&&i.length>e.length&&i.hasStackedCliffs,l,d,c,p,g=e?.slice();if(!g||h)return[r,r];function u(t,e){for(;t.length<d;){let i=t[0],s=e[d-t.length];if(s&&\"M\"===i[0]&&(\"C\"===s[0]?t[0]=[\"C\",i[1],i[2],i[1],i[2],i[1],i[2]]:t[0]=[\"L\",i[1],i[2]]),t.unshift(i),a){let e=t.pop();t.push(t[t.length-1],e)}}}function f(t){for(;t.length<d;){let e=t[Math.floor(t.length/n)-1].slice();if(\"C\"===e[0]&&(e[1]=e[5],e[2]=e[6]),a){let i=t[Math.floor(t.length/n)].slice();t.splice(t.length/2,0,e,i)}else t.push(e)}}if(s&&o&&o.length){for(c=0;c<s.length;c++)if(s[c]===o[0]){l=c;break}else if(s[0]===o[o.length-s.length+c]){l=c,p=!0;break}else if(s[s.length-1]===o[o.length-s.length+c]){l=s.length-c;break}void 0===l&&(g=[])}return g.length&&tI(l)&&(d=r.length+l*n,p?(u(g,r),f(r)):(u(r,g),f(g))),[g,r]}fillSetter(){tB.prototype.strokeSetter.apply(this,arguments)}strokeSetter(){this.elem.attr(this.prop,tO(this.start).tweenTo(tO(this.end),this.pos),void 0,!0)}}tB.timers=[];let{defined:tN,getStyle:tz,isArray:tR,isNumber:tW,isObject:tH,merge:tX,objectEach:tF,pick:tG}=V;function tj(t){return tH(t)?tX({duration:500,defer:0},t):{duration:500*!!t,defer:0}}function tY(t,e){let i=tB.timers.length;for(;i--;)tB.timers[i].elem!==t||e&&e!==tB.timers[i].prop||(tB.timers[i].stopped=!0)}let tU={animate:function(t,e,i){let s,o=\"\",r,a,n;tH(i)||(n=arguments,i={duration:n[2],easing:n[3],complete:n[4]}),tW(i.duration)||(i.duration=400),i.easing=\"function\"==typeof i.easing?i.easing:Math[i.easing]||Math.easeInOutSine,i.curAnim=tX(e),tF(e,function(n,h){tY(t,h),a=new tB(t,i,h),r=void 0,\"d\"===h&&tR(e.d)?(a.paths=a.initPath(t,t.pathArray,e.d),a.toD=e.d,s=0,r=1):t.attr?s=t.attr(h):(s=parseFloat(tz(t,h))||0,\"opacity\"!==h&&(o=\"px\")),r||(r=n),\"string\"==typeof r&&r.match(\"px\")&&(r=r.replace(/px/g,\"\")),a.run(s,r,o)})},animObject:tj,getDeferredAnimation:function(t,e,i){let s=tj(e),o=i?[i]:t.series,r=0,a=0;return o.forEach(t=>{let i=tj(t.options.animation);r=tH(e)&&tN(e.defer)?s.defer:Math.max(r,i.duration+i.defer),a=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-a),duration:Math.min(r,a)}},setAnimation:function(t,e){e.renderer.globalAnimation=tG(t,e.options.chart.animation,!0)},stop:tY},{SVG_NS:t$,win:tV}=w,{attr:tZ,createElement:t_,css:tq,error:tK,isFunction:tJ,isString:tQ,objectEach:t0,splat:t1}=V,{trustedTypes:t2}=tV,t3=t2&&tJ(t2.createPolicy)&&t2.createPolicy(\"highcharts\",{createHTML:t=>t}),t5=t3?t3.createHTML(\"\"):\"\";class t6{static filterUserAttributes(t){return t0(t,(e,i)=>{let s=!0;-1===t6.allowedAttributes.indexOf(i)&&(s=!1),-1!==[\"background\",\"dynsrc\",\"href\",\"lowsrc\",\"src\"].indexOf(i)&&(s=tQ(e)&&t6.allowedReferences.some(t=>0===e.indexOf(t))),s||(tK(33,!1,void 0,{\"Invalid attribute in config\":`${i}`}),delete t[i]),tQ(e)&&t[i]&&(t[i]=e.replace(/</g,\"&lt;\"))}),t}static parseStyle(t){return t.split(\";\").reduce((t,e)=>{let i=e.split(\":\").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(\":\")),t},{})}static setElementHTML(t,e){t.innerHTML=t6.emptyHTML,e&&new t6(e).addToDOM(t)}constructor(t){this.nodes=\"string\"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return t1(e).forEach(function(e){let o,r=e.tagName,a=e.textContent?w.doc.createTextNode(e.textContent):void 0,n=t6.bypassHTMLFiltering;if(r)if(\"#text\"===r)o=a;else if(-1!==t6.allowedTags.indexOf(r)||n){let s=\"svg\"===r?t$:i.namespaceURI||t$,h=w.doc.createElementNS(s,r),l=e.attributes||{};t0(e,function(t,e){\"tagName\"!==e&&\"attributes\"!==e&&\"children\"!==e&&\"style\"!==e&&\"textContent\"!==e&&(l[e]=t)}),tZ(h,n?l:t6.filterUserAttributes(l)),e.style&&tq(h,e.style),a&&h.appendChild(a),t(e.children||[],h),o=h}else tK(33,!1,void 0,{\"Invalid tagName in config\":r});o&&i.appendChild(o),s=o}),s}(this.nodes,t)}parseMarkup(t){let e,i=[];t=t.trim().replace(/ style=([\"'])/g,\" data-style=$1\");try{e=new DOMParser().parseFromString(t3?t3.createHTML(t):t,\"text/html\")}catch{}if(!e){let i=t_(\"div\");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),o={tagName:i};\"#text\"===i&&(o.textContent=t.textContent||\"\");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{\"data-style\"===e.name?o.style=t6.parseStyle(e.value):t[e.name]=e.value}),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}t6.allowedAttributes=[\"alt\",\"aria-controls\",\"aria-describedby\",\"aria-expanded\",\"aria-haspopup\",\"aria-hidden\",\"aria-label\",\"aria-labelledby\",\"aria-live\",\"aria-pressed\",\"aria-readonly\",\"aria-roledescription\",\"aria-selected\",\"class\",\"clip-path\",\"color\",\"colspan\",\"cx\",\"cy\",\"d\",\"disabled\",\"dx\",\"dy\",\"fill\",\"filterUnits\",\"flood-color\",\"flood-opacity\",\"height\",\"href\",\"id\",\"in\",\"in2\",\"markerHeight\",\"markerWidth\",\"offset\",\"opacity\",\"operator\",\"orient\",\"padding\",\"paddingLeft\",\"paddingRight\",\"patternUnits\",\"r\",\"radius\",\"refX\",\"refY\",\"result\",\"role\",\"rowspan\",\"scope\",\"slope\",\"src\",\"startOffset\",\"stdDeviation\",\"stroke-linecap\",\"stroke-width\",\"stroke\",\"style\",\"summary\",\"tabindex\",\"tableValues\",\"target\",\"text-align\",\"text-anchor\",\"textAnchor\",\"textLength\",\"title\",\"type\",\"valign\",\"width\",\"x\",\"x1\",\"x2\",\"xlink:href\",\"y\",\"y1\",\"y2\",\"zIndex\"],t6.allowedReferences=[\"https://\",\"http://\",\"mailto:\",\"/\",\"../\",\"./\",\"#\"],t6.allowedTags=[\"#text\",\"a\",\"abbr\",\"b\",\"br\",\"button\",\"caption\",\"circle\",\"clipPath\",\"code\",\"dd\",\"defs\",\"div\",\"dl\",\"dt\",\"em\",\"feComponentTransfer\",\"feComposite\",\"feDropShadow\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feMerge\",\"feMergeNode\",\"feMorphology\",\"feOffset\",\"filter\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"hr\",\"i\",\"img\",\"li\",\"linearGradient\",\"marker\",\"ol\",\"p\",\"path\",\"pattern\",\"pre\",\"rect\",\"small\",\"span\",\"stop\",\"strong\",\"style\",\"sub\",\"sup\",\"svg\",\"table\",\"tbody\",\"td\",\"text\",\"textPath\",\"th\",\"thead\",\"title\",\"tr\",\"tspan\",\"u\",\"ul\"],t6.emptyHTML=t5,t6.bypassHTMLFiltering=!1;let{defaultOptions:t9,defaultTime:t4}=tv,{pageLang:t8}=w,{extend:t7,getNestedProperty:et,isArray:ee,isNumber:ei,isObject:es,isString:eo,pick:er,ucfirst:ea}=V,en={add:(t,e)=>t+e,divide:(t,e)=>0!==e?t/e:\"\",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!ee(t)&&t.map((i,s)=>ed(e.body,t7(es(i)?i:{\"@this\":i},{\"@index\":s,\"@first\":0===s,\"@last\":s===t.length-1}))).join(\"\")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>t<e,multiply:(t,e)=>t*e,ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:ea,unless:t=>!t},eh={},el=t=>/^[\"'].+[\"']$/.test(t);function ed(t=\"\",e,i){let s=/\\{([a-zA-Z\\u00C0-\\u017F\\d:\\.,;\\-\\/<>\\[\\]%_@+\"'\u2019= #\\(\\)]+)\\}/g,o=/\\(([a-zA-Z\\u00C0-\\u017F\\d:\\.,;\\-\\/<>\\[\\]%_@+\"'= ]+)\\)/g,r=[],a=/f$/,n=/\\.(\\d)/,h=i?.options?.lang||t9.lang,l=i?.time||t4,d=i?.numberFormatter||ec.bind(i),c=(t=\"\")=>{let i;return\"true\"===t||\"false\"!==t&&((i=Number(t)).toString()===t?i:el(t)?t.slice(1,-1):et(t,e))},p,g,u=0,f;for(;null!==(p=s.exec(t));){let i=p,s=o.exec(p[1]);s&&(p=s,f=!0),g?.isBlock||(g={ctx:e,expression:p[1],find:p[0],isBlock:\"#\"===p[1].charAt(0),start:p.index,startInner:p.index+p[0].length,length:p[0].length});let a=(g.isBlock?i:p)[1].split(\" \")[0].replace(\"#\",\"\");en[a]&&(g.isBlock&&a===g.fn&&u++,g.fn||(g.fn=a));let n=\"else\"===p[1];if(g.isBlock&&g.fn&&(p[1]===`/${g.fn}`||n))if(u)!n&&u--;else{let e=g.startInner,i=t.substr(e,p.index-e);void 0===g.body?(g.body=i,g.startInner=p.index+p[0].length):g.elseBody=i,g.find+=i+p[0],n||(r.push(g),g=void 0)}else g.isBlock||r.push(g);if(s&&!g?.isBlock)break}return r.forEach(s=>{let r,p,{body:g,elseBody:u,expression:f,fn:m}=s;if(m){let t=[s],o=[],a=f.length,n=0,h;for(p=0;p<=a;p++){let t=f.charAt(p);h||'\"'!==t&&\"'\"!==t?h===t&&(h=\"\"):h=t,h||\" \"!==t&&p!==a||(o.push(f.substr(n,p-n)),n=p+1)}for(p=en[m].length;p--;)t.unshift(c(o[p+1]));r=en[m].apply(e,t),s.isBlock&&\"boolean\"==typeof r&&(r=ed(r?g:u,e,i))}else{let t=el(f)?[f]:f.split(\":\"),e=(r=c(t.shift()||\"\"))%1!=0;if(\"number\"==typeof r&&(t.length||e)){let i=t.join(\":\");if(a.test(i)||e){let t=parseInt((i.match(n)||[\"\",\"-1\"])[1],10);null!==r&&(r=d(r,t,h.decimalPoint,i.indexOf(\",\")>-1?h.thousandsSep:\"\"))}else r=l.dateFormat(i,r)}o.lastIndex=0,o.test(s.find)&&eo(r)&&(r=`\"${r}\"`)}t=t.replace(s.find,er(r,\"\"))}),f?ed(t,e,i):t}function ec(t,e,i,s){e*=1;let o,r,[a,n]=(t=+t||0).toString().split(\"e\").map(Number),h=this?.options?.lang||t9.lang,l=(t.toString().split(\".\")[1]||\"\").split(\"e\")[0].length,d=e,c={};i??(i=h.decimalPoint),s??(s=h.thousandsSep),-1===e?e=Math.min(l,20):ei(e)?e&&n<0&&((r=e+n)>=0?(a=+a.toExponential(r).split(\"e\")[0],e=r):(a=Math.floor(a),t=e<20?+(a*Math.pow(10,n)).toFixed(e):0,n=0)):e=2,n&&(e??(e=2),t=a),ei(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),\"\"===s&&(c.useGrouping=!1);let p=s||i,g=p?\"en\":this?.locale||h.locale||t8,u=JSON.stringify(c)+g;return o=(eh[u]??(eh[u]=new Intl.NumberFormat(g,c))).format(t),p&&(o=o.replace(/([,\\.])/g,\"_$1\").replace(/_\\,/g,s??\",\").replace(\"_.\",i??\".\")),(e||0!=+o)&&(!(n<0)||d)||(o=\"0\"),n&&0!=+o&&(o+=\"e\"+(n<0?\"\":\"+\")+n),o}let ep={dateFormat:function(t,e,i){return t4.dateFormat(t,e,i)},format:ed,helpers:en,numberFormat:ec};!function(t){let e;t.rendererTypes={},t.getRendererType=function(i=e){return t.rendererTypes[i]||t.rendererTypes[e]},t.registerRendererType=function(i,s,o){t.rendererTypes[i]=s,(!e||o)&&(e=i,w.Renderer=s)}}(s||(s={}));let eg=s,{clamp:eu,pick:ef,pushUnique:em,stableSort:ex}=V;(o||(o={})).distribute=function t(e,i,s){let o=e,r=o.reducedLen||i,a=(t,e)=>t.target-e.target,n=[],h=e.length,l=[],d=n.push,c,p,g,u=!0,f,m,x=0,y;for(c=h;c--;)x+=e[c].size;if(x>r){for(ex(e,(t,e)=>(e.rank||0)-(t.rank||0)),g=(y=e[0].rank===e[e.length-1].rank)?h/2:-1,p=y?g:h-1;g&&x>r;)f=e[c=Math.floor(p)],em(l,c)&&(x-=f.size),p+=g,y&&p>=e.length&&(g/=2,p=g);l.sort((t,e)=>e-t).forEach(t=>d.apply(n,e.splice(t,1)))}for(ex(e,a),e=e.map(t=>({size:t.size,targets:[t.target],align:ef(t.align,.5)}));u;){for(c=e.length;c--;)f=e[c],m=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=eu(m-f.size*f.align,0,i-f.size);for(c=e.length,u=!1;c--;)c>0&&e[c-1].pos+e[c-1].size>e[c].pos&&(e[c-1].size+=e[c].size,e[c-1].targets=e[c-1].targets.concat(e[c].targets),e[c-1].align=.5,e[c-1].pos+e[c-1].size>i&&(e[c-1].pos=i-e[c-1].size),e.splice(c,1),u=!0)}return d.apply(o,n),c=0,e.some(e=>{let r=0;return(e.targets||[]).some(()=>(o[c].pos=e.pos+r,void 0!==s&&Math.abs(o[c].pos-o[c].target)>s)?(o.slice(0,c+1).forEach(t=>delete t.pos),o.reducedLen=(o.reducedLen||i)-.1*i,o.reducedLen>.1*i&&t(o,i,s),!0):(r+=o[c].size,c++,!1))}),ex(o,a),o};let ey=o,{animate:eb,animObject:ev,stop:ek}=tU,{deg2rad:ew,doc:eM,svg:eS,SVG_NS:eT,win:eC,isFirefox:eA}=w,{addEvent:eP,attr:eL,createElement:eO,crisp:eE,css:eI,defined:eD,erase:eB,extend:eN,fireEvent:ez,getAlignFactor:eR,isArray:eW,isFunction:eH,isNumber:eX,isObject:eF,isString:eG,merge:ej,objectEach:eY,pick:eU,pInt:e$,pushUnique:eV,replaceNested:eZ,syncTimeout:e_,uniqueKey:eq}=V;class eK{_defaultGetter(t){let e=eU(this[t+\"Value\"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\\d\\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e,i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&\"text\"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?\"\":this.attr(\"class\")||\"\";return(t=(t||\"\").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(\" \"))!==i&&this.attr(\"class\",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o=this.renderer,r=o.alignedObjects,a=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let n=!i||eG(i)?i||\"renderer\":void 0;n&&(a&&eV(r,this),i=void 0);let h=eU(i,o[n],o),l=(h.x||0)+(t.x||0)+((h.width||0)-(t.width||0))*eR(t.align),d=(h.y||0)+(t.y||0)+((h.height||0)-(t.height||0))*eR(t.verticalAlign),c={\"text-align\":t?.align};return c[e?\"translateX\":\"x\"]=Math.round(l),c[e?\"translateY\":\"y\"]=Math.round(d),s&&(this[this.placed?\"animate\":\"attr\"](c),this.placed=!0),this.alignAttr=c,this}alignSetter(t){let e={left:\"start\",center:\"middle\",right:\"end\"};e[t]&&(this.alignValue=t,this.element.setAttribute(\"text-anchor\",e[t]))}animate(t,e,i){let s=ev(eU(e,this.renderer.globalAnimation,!0)),o=s.defer;return eM.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),e_(()=>{this.element&&eb(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),eY(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf(\"contrast\")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.indexOf(\" \"),s=t.substring(i+1),o=t.substring(0,i);if(o&&\"none\"!==o&&w.svg){this.fakeTS=!0,o=o.replace(/(^[\\d\\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=eM.createElementNS(eT,\"tspan\");eL(t,{class:\"highcharts-text-outline\",fill:s,stroke:s,\"stroke-width\":o,\"stroke-linejoin\":\"round\"});let i=e.querySelector(\"textPath\")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&[\"fill\",\"stroke\",\"stroke-width\",\"stroke\"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let r=0;[].forEach.call(i.querySelectorAll(\"text tspan\"),t=>{r+=Number(t.getAttribute(\"dy\"))});let a=eM.createElementNS(eT,\"tspan\");a.textContent=\"\u200B\",eL(a,{x:Number(e.getAttribute(\"x\")),dy:-r}),t.appendChild(a),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=eK.symbolCustomAttribs,a,n,h=this,l;return\"string\"==typeof t&&void 0!==e&&(a=t,(t={})[a]=e),\"string\"==typeof t?h=(this[t+\"Getter\"]||this._defaultGetter).call(this,t,o):(eY(t,function(e,i){l=!1,s||ek(this,i),this.symbolName&&-1!==r.indexOf(i)&&(n||(this.symbolAttr(t),n=!0),l=!0),this.rotation&&(\"x\"===i||\"y\"===i)&&(this.doTransform=!0),l||(this[i+\"Setter\"]||this._defaultSetter).call(this,e,i,o)},this),this.afterSetters()),i&&i.call(this),h}clip(t){if(t&&!t.clipPath){let e=eq()+\"-\",i=this.renderer.createElement(\"clipPath\").attr({id:e}).add(this.renderer.defs);eN(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr(\"clip-path\",t?`url(${this.renderer.url}#${t.id})`:\"none\")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,a=eE(i,e),n=eE(s,e);return eN(t,{x:a,y:n,width:eE(o,e)-a,height:eE(r,e)-n}),eD(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,a,n,h,l,d,c,p,g,u=[],f;ez(this.renderer,\"complexColor\",{args:arguments},function(){if(t.radialGradient?r=\"radialGradient\":t.linearGradient&&(r=\"linearGradient\"),r){if(a=t[r],h=s.gradients,l=t.stops,p=i.radialReference,eW(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:\"userSpaceOnUse\"}),\"radialGradient\"===r&&p&&!eD(a.gradientUnits)&&(n=a,a=ej(a,s.getRadialAttr(p,n),{gradientUnits:\"userSpaceOnUse\"})),eY(a,function(t,e){\"id\"!==e&&u.push(e,t)}),eY(l,function(t){u.push(t)}),h[u=u.join(\",\")])g=h[u].attr(\"id\");else{a.id=g=eq();let t=h[u]=s.createElement(r).attr(a).add(s.defs);t.radAttr=n,t.stops=[],l.forEach(function(e){0===e[1].indexOf(\"rgba\")?(d=(o=tL.parse(e[1])).get(\"rgb\"),c=o.get(\"a\")):(d=e[1],c=1);let i=s.createElement(\"stop\").attr({offset:e[0],\"stop-color\":d,\"stop-opacity\":c}).add(t);t.stops.push(i)})}f=\"url(\"+s.url+\"#\"+g+\")\",i.setAttribute(e,f),i.gradient=u,t.toString=function(){return f}}})}css(t){let e=this.styles,i={},s=this.element,o,r=!e;if(e&&eY(t,function(t,s){e&&e[s]!==t&&(i[s]=t,r=!0)}),r){e&&(t=eN(e,i)),null===t.width||\"auto\"===t.width?delete this.textWidth:\"text\"===s.nodeName.toLowerCase()&&t.width&&(o=this.textWidth=e$(t.width)),eN(this.styles,t),o&&!eS&&this.renderer.forExport&&delete t.width;let r=eA&&t.fontSize||null;r&&(eX(r)||/^\\d+$/.test(r))&&(t.fontSize+=\"px\");let a=ej(t);s.namespaceURI===this.SVG_NS&&([\"textOutline\",\"textOverflow\",\"whiteSpace\",\"width\"].forEach(t=>a&&delete a[t]),a.color&&(a.fill=a.color,delete a.color)),eI(s,a)}return this.added&&(\"text\"===this.element.nodeName&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this[\"stroke-width\"];if(\"inherit\"===i&&(i=1),t){let s=(t=t.toLowerCase()).replace(\"shortdashdotdot\",\"3,1,1,1,1,1,\").replace(\"shortdashdot\",\"3,1,1,1\").replace(\"shortdot\",\"1,1,\").replace(\"shortdash\",\"3,1,\").replace(\"longdash\",\"8,3,\").replace(/dot/g,\"1,3,\").replace(\"dash\",\"4,3,\").replace(/,$/,\"\").split(\",\");for(e=s.length;e--;)s[e]=\"\"+e$(s[e])*eU(i,NaN);t=s.join(\",\").replace(/NaN/g,\"none\"),this.element.setAttribute(\"stroke-dasharray\",t)}}destroy(){let t=this,e=t.element||{},i=t.renderer,s=e.ownerSVGElement,o=\"SPAN\"===e.nodeName&&t.parentGroup||void 0,r,a;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,ek(t),t.clipPath&&s){let e=t.clipPath;[].forEach.call(s.querySelectorAll(\"[clip-path],[CLIP-PATH]\"),function(t){t.getAttribute(\"clip-path\").indexOf(e.element.id)>-1&&t.removeAttribute(\"clip-path\")}),t.clipPath=e.destroy()}if(t.stops){for(a=0;a<t.stops.length;a++)t.stops[a].destroy();t.stops.length=0,t.stops=void 0}for(t.safeRemoveChild(e);o?.div&&0===o.div.childNodes.length;)r=o.parentGroup,t.safeRemoveChild(o.div),delete o.div,o=r;t.alignOptions&&eB(i.alignedObjects,t),eY(t,(e,i)=>{(t[i]?.parentGroup===t||-1!==[\"connector\",\"foreignObject\"].indexOf(i))&&t[i]?.destroy?.(),delete t[i]})}dSetter(t,e,i){eW(t)&&(\"string\"==typeof t[0]&&(t=this.renderer.pathToSegments(t)),this.pathArray=t,t=t.reduce((t,e,i)=>e?.join?(i?t+\" \":\"\")+e.join(\" \"):(e||\"\").toString(),\"\")),/(NaN| {2}|^$)/.test(t)&&(t=\"M 0 0\"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){\"string\"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS(\"http://www.w3.org/1999/xlink\",e,t)}getBBox(t,e){let i,s,o,r,{alignValue:a,element:n,renderer:h,styles:l,textStr:d}=this,{cache:c,cacheKeys:p}=h,g=n.namespaceURI===this.SVG_NS,u=eU(e,this.rotation,0),f=h.styledMode?n&&eK.prototype.getStyle.call(n,\"font-size\"):l.fontSize;if(eD(d)&&(-1===(r=d.toString()).indexOf(\"<\")&&(r=r.replace(/\\d/g,\"0\")),r+=[\"\",h.rootFontSize,f,u,this.textWidth,a,l.lineClamp,l.textOverflow,l.fontWeight].join(\",\")),r&&!t&&(i=c[r]),!i||i.polygon){if(g||h.forExport){try{o=this.fakeTS&&function(t){let e=n.querySelector(\".highcharts-text-outline\");e&&eI(e,{display:t})},eH(o)&&o(\"none\"),i=n.getBBox?eN({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight,x:0,y:0},eH(o)&&o(\"\")}catch{}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,g&&(i.height=s=({\"11px,17\":14,\"13px,20\":16})[`${f||\"\"},${Math.round(s)}`]||s),u&&(i=this.getRotatedBox(i,u));let t={bBox:i};ez(this,\"afterGetBBox\",t),i=t.bBox}if(r&&(\"\"===d||i.height>0)){for(;p.length>250;)delete c[p.shift()];c[r]||p.push(r),c[r]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:a,translateY:n,rotationOriginX:h=0,rotationOriginY:l=0}=this,d=eR(a),c=Number(this.element.getAttribute(\"y\")||0)-(n?0:s),p=e*ew,g=(e-90)*ew,u=Math.cos(p),f=Math.sin(p),m=o*u,x=o*f,y=Math.cos(g),b=Math.sin(g),[[v,k],[w,M]]=[h,l].map(t=>[t-t*u,t*f]),S=i+d*(o-m)+v+M+c*y,T=S+m,C=T-r*y,A=C-m,P=s+c-d*x-k+w+c*b,L=P+x,O=L-r*b,E=O-x,I=Math.min(S,T,C,A),D=Math.min(P,L,O,E),B=Math.max(S,T,C,A)-I,N=Math.max(P,L,O,E)-D;return{x:I,y:D,width:B,height:N,polygon:[[S,P],[T,L],[C,O],[A,E]]}}getStyle(t){return eC.getComputedStyle(this.element||this,\"\").getPropertyValue(t)}hasClass(t){return -1!==(\"\"+this.attr(\"class\")).split(\" \").indexOf(t)}hide(){return this.attr({visibility:\"hidden\"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=eT,this.element=\"span\"===e||\"body\"===e?eO(e):eM.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},ez(this,\"afterInit\")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=eP(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&\"left\"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr(\"class\",(\"\"+this.attr(\"class\")).replace(eG(t)?RegExp(`(^| )${t}( |$)`):t,\" \").replace(/ +/g,\" \").trim())}removeTextOutline(){let t=this.element.querySelector(\"tspan.highcharts-text-outline\");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient]||void 0;return this.element.radialReference=t,e?.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=ej(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},eF(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:\"none\"})}show(t=!0){return this.attr({visibility:t?\"inherit\":\"visible\"})}\"stroke-widthSetter\"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this[\"stroke-width\"]||0;let t=this.getStyle(\"stroke-width\"),e=0,i;return/px$/.test(t)?e=e$(t):\"\"!==t&&(eL(i=eM.createElementNS(eT,\"rect\"),{width:t,\"stroke-width\":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;eK.symbolCustomAttribs.forEach(function(i){e[i]=eU(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName(\"title\")[0]||eM.createElementNS(this.SVG_NS,\"title\");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=eZ(eU(t,\"\"),[/<[^>]*>/g,\"\"]).replace(/&lt;/g,\"<\").replace(/&gt;/g,\">\")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t=\"transform\"){let{element:e,foreignObject:i,matrix:s,padding:o,rotation:r=0,rotationOriginX:a,rotationOriginY:n,scaleX:h,scaleY:l,text:d,translateX:c=0,translateY:p=0}=this,g=[\"translate(\"+c+\",\"+p+\")\"];eD(s)&&g.push(\"matrix(\"+s.join(\",\")+\")\"),r&&(g.push(\"rotate(\"+r+\" \"+(a??e.getAttribute(\"x\")??this.x??0)+\" \"+(n??e.getAttribute(\"y\")??this.y??0)+\")\"),d?.element.tagName!==\"SPAN\"||d?.foreignObject||d.attr({rotation:r,rotationOriginX:(a||0)-o,rotationOriginY:(n||0)-o})),(eD(h)||eD(l))&&g.push(\"scale(\"+eU(h,1)+\" \"+eU(l,1)+\")\"),g.length&&!(d||this).textPath&&(i?.element||e).setAttribute(t,g.join(\" \"))}visibilitySetter(t,e,i){\"inherit\"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return\"circle\"===this.element.nodeName&&(\"x\"===t?t=\"cx\":\"y\"===t&&(t=\"cy\")),this._defaultGetter(t)}zIndexSetter(t,e){let i=this.renderer,s=this.parentGroup,o=(s||i).element||i.box,r=this.element,a=o===i.box,n,h,l,d=!1,c,p=this.added,g;if(eD(t)?(r.setAttribute(\"data-z-index\",t),t*=1,this[e]===t&&(p=!1)):eD(this[e])&&r.removeAttribute(\"data-z-index\"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),g=(n=o.childNodes).length-1;g>=0&&!d;g--)c=!eD(l=(h=n[g]).getAttribute(\"data-z-index\")),h!==r&&(t<0&&c&&!a&&!g?(o.insertBefore(r,n[g]),d=!0):(e$(l)<=t||c&&(!eD(t)||t>=0))&&(o.insertBefore(r,n[g+1]),d=!0));d||(o.insertBefore(r,n[3*!!a]),d=!0)}return d}}eK.symbolCustomAttribs=[\"anchorX\",\"anchorY\",\"clockwise\",\"end\",\"height\",\"innerR\",\"r\",\"start\",\"width\",\"x\",\"y\"],eK.prototype.strokeSetter=eK.prototype.fillSetter,eK.prototype.yGetter=eK.prototype.xGetter,eK.prototype.matrixSetter=eK.prototype.rotationOriginXSetter=eK.prototype.rotationOriginYSetter=eK.prototype.rotationSetter=eK.prototype.scaleXSetter=eK.prototype.scaleYSetter=eK.prototype.translateXSetter=eK.prototype.translateYSetter=eK.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let eJ=eK,{defined:eQ,extend:e0,getAlignFactor:e1,isNumber:e2,merge:e3,pick:e5,removeEvent:e6}=V;class e9 extends eJ{constructor(t,e,i,s,o,r,a,n,h,l){let d;super(t,\"g\"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=a,this.baseline=h,this.className=l,this.addClass(\"button\"===l?\"highcharts-no-tooltip\":\"highcharts-label\"),l&&this.addClass(\"highcharts-\"+l),this.text=t.text(void 0,0,0,n).attr({zIndex:1}),\"string\"==typeof o&&((d=/^url\\((.*?)\\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=e9.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=e1(t);this.textAlign=t,e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&e2(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=e3(t),e9.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),\"fontSize\"in e||\"fontWeight\"in e?this.updateTextPadding():(\"width\"in e||\"textOverflow\"in e)&&this.updateBoxSize()}return eJ.prototype.css.call(this,t)}destroy(){e6(this.element,\"mouseenter\"),e6(this.element,\"mouseleave\"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),eJ.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:a=0}=this,n=e5(this.paddingLeft,i),h=e??(this.rotation||0),l={width:a,height:s,x:o+this.bBox.x-n,y:r+this.bBox.y-i+this.baselineOffset};return h&&(l=this.getRotatedBox(l,h)),l}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this[\"stroke-width\"]?parseInt(this[\"stroke-width\"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:e5(this.textStr,\"\"),x:this.x||0,y:this.y||0}),this.box&&eQ(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){e2(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}\"stroke-widthSetter\"(t,e){t&&(this.needsBox=!0),this[\"stroke-width\"]=t,this.boxAttr(e,t)}\"text-alignSetter\"(t){this.textAlign=this[\"text-align\"]=t,this.updateTextPadding()}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t,e=this.text,i={},s=this.padding,o=this.bBox=(!e2(this.widthSetting)||!e2(this.heightSetting)||this.textAlign)&&eQ(e.textStr)?e.getBBox(void 0,0):e9.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass((\"button\"===this.className?\"\":\"highcharts-label-box\")+(this.className?\" highcharts-\"+this.className+\"-box\":\"\")),t.add(this)}i.x=t=this.getCrispAdjust(),i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(e0(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text,e=t.styles.textAlign||this.textAlign;if(!t.textPath){this.updateBoxSize();let i=this.baseline?0:this.baselineOffset,s=(this.paddingLeft??this.padding)+e1(e)*(this.widthSetting??this.bBox.width);(s!==t.x||i!==t.y)&&(t.attr({align:e,x:s}),void 0!==i&&t.attr(\"y\",i)),t.x=s,t.y=i}}widthSetter(t){this.widthSetting=e2(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=e5(this.paddingLeft,t),i=e5(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this[\"forceAnimate:x\"]=!0),this.anchorX&&(this[\"forceAnimate:anchorX\"]=!0),this.xSetting=Math.round(t),this.attr(\"translateX\",this.xSetting)}ySetter(t){this.anchorY&&(this[\"forceAnimate:anchorY\"]=!0),this.ySetting=this.y=Math.round(t),this.attr(\"translateY\",this.ySetting)}}e9.emptyBBox={width:0,height:0,x:0,y:0},e9.textProps=[\"color\",\"direction\",\"fontFamily\",\"fontSize\",\"fontStyle\",\"fontWeight\",\"lineClamp\",\"lineHeight\",\"textAlign\",\"textDecoration\",\"textOutline\",\"textOverflow\",\"whiteSpace\",\"width\"];let{defined:e4,isNumber:e8,pick:e7}=V;function it(t,e,i,s,o){let r=[];if(o){let a=o.start||0,n=o.end||0,h=e7(o.r,i),l=e7(o.r,s||i),d=2e-4/(o.borderRadius?1:Math.max(h,1)),c=Math.abs(n-a-2*Math.PI)<d;c&&(a=Math.PI/2,n=2.5*Math.PI-d);let p=o.innerR,g=e7(o.open,c),u=Math.cos(a),f=Math.sin(a),m=Math.cos(n),x=Math.sin(n),y=e7(o.longArc,n-a-Math.PI<d?0:1),b=[\"A\",h,l,0,y,e7(o.clockwise,1),t+h*m,e+l*x];b.params={start:a,end:n,cx:t,cy:e},r.push([\"M\",t+h*u,e+l*f],b),e4(p)&&((b=[\"A\",p,p,0,y,e4(o.clockwise)?1-o.clockwise:0,t+p*u,e+p*f]).params={start:n,end:a,cx:t,cy:e},r.push(g?[\"M\",t+p*m,e+p*x]:[\"L\",t+p*m,e+p*x],b)),g||r.push([\"Z\"])}return r}function ie(t,e,i,s,o){return o?.r?ii(t,e,i,s,o):[[\"M\",t,e],[\"L\",t+i,e],[\"L\",t+i,e+s],[\"L\",t,e+s],[\"Z\"]]}function ii(t,e,i,s,o){let r=o?.r||0;return[[\"M\",t+r,e],[\"L\",t+i-r,e],[\"A\",r,r,0,0,1,t+i,e+r],[\"L\",t+i,e+s-r],[\"A\",r,r,0,0,1,t+i-r,e+s],[\"L\",t+r,e+s],[\"A\",r,r,0,0,1,t,e+s-r],[\"L\",t,e+r],[\"A\",r,r,0,0,1,t+r,e],[\"Z\"]]}let is={arc:it,callout:function(t,e,i,s,o){let r=Math.min(o?.r||0,i,s),a=r+6,n=o?.anchorX,h=o?.anchorY||0,l=ii(t,e,i,s,{r});if(!e8(n)||n<i&&n>0&&h<s&&h>0)return l;if(t+n>i-a)if(h>e+a&&h<e+s-a)l.splice(3,1,[\"L\",t+i,h-6],[\"L\",t+i+6,h],[\"L\",t+i,h+6],[\"L\",t+i,e+s-r]);else if(n<i){let o=h<e+a,d=o?e:e+s;l.splice(o?2:5,0,[\"L\",n,h],[\"L\",t+i-r,d])}else l.splice(3,1,[\"L\",t+i,s/2],[\"L\",n,h],[\"L\",t+i,s/2],[\"L\",t+i,e+s-r]);else if(t+n<a)if(h>e+a&&h<e+s-a)l.splice(7,1,[\"L\",t,h+6],[\"L\",t-6,h],[\"L\",t,h-6],[\"L\",t,e+r]);else if(n>0){let i=h<e+a,o=i?e:e+s;l.splice(i?1:6,0,[\"L\",n,h],[\"L\",t+r,o])}else l.splice(7,1,[\"L\",t,s/2],[\"L\",n,h],[\"L\",t,s/2],[\"L\",t,e+r]);else h>s&&n<i-a?l.splice(5,1,[\"L\",n+6,e+s],[\"L\",n,e+s+6],[\"L\",n-6,e+s],[\"L\",t+r,e+s]):h<0&&n>a&&l.splice(1,1,[\"L\",n-6,e],[\"L\",n,e-6],[\"L\",n+6,e],[\"L\",i-r,e]);return l},circle:function(t,e,i,s){return it(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[[\"M\",t+i/2,e],[\"L\",t+i,e+s/2],[\"L\",t+i/2,e+s],[\"L\",t,e+s/2],[\"Z\"]]},rect:ie,roundedRect:ii,square:ie,triangle:function(t,e,i,s){return[[\"M\",t+i/2,e],[\"L\",t+i,e+s],[\"L\",t,e+s],[\"Z\"]]},\"triangle-down\":function(t,e,i,s){return[[\"M\",t,e],[\"L\",t+i,e],[\"L\",t+i/2,e+s],[\"Z\"]]}},{doc:io,SVG_NS:ir,win:ia}=w,{attr:ih,extend:il,fireEvent:id,isString:ic,objectEach:ip,pick:ig}=V,iu=(t,e)=>t.substring(0,e)+\"\u2026\",im=class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e?.lineHeight,this.textOutline=e?.textOutline,this.ellipsis=e?.textOverflow===\"ellipsis\",this.lineClamp=e?.lineClamp,this.noWrap=e?.whiteSpace===\"nowrap\"}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=ig(t.textStr,\"\").toString(),o=-1!==s.indexOf(\"<\"),r=e.childNodes,a=!t.added&&i.box,n=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle(\"font-size\"),t.styles.lineClamp,this.width].join(\",\");if(n!==t.textCache){t.textCache=n,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(\" \")&&(!this.noWrap||/<br.*?>/g.test(s))){if(\"\"!==s){a&&a.appendChild(e);let i=new t6(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||\"\").indexOf(\"\u2026\")&&t.attr(\"title\",this.unescapeEntities(t.textStr||\"\",[\"&lt;\",\"&gt;\"])),a&&a.removeChild(e)}}else e.appendChild(io.createTextNode(this.unescapeEntities(s)));ic(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t,e=this.svgElement,i=ih(e.element,\"x\");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\\s\\u200B]*$/.test(t.textContent||\" \"))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll(\"tspan.highcharts-br\"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),ih(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||\"\",a=r.replace(/([^\\^])-/g,\"$1- \").split(\" \"),n=!this.noWrap&&(a.length>1||e.element.childNodes.length>1),h=this.getLineHeight(o),l=Math.max(0,s-.8*h),d=0,c=e.actualWidth;if(n){let r=[],n=[];for(;o.firstChild&&o.firstChild!==t;)n.push(o.firstChild),o.removeChild(o.firstChild);for(;a.length;)if(a.length&&!this.noWrap&&d>0&&(r.push(t.textContent||\"\"),t.textContent=a.join(\" \").replace(/- /g,\"-\")),this.truncate(t,void 0,a,0===d&&c||0,s,l,(t,e)=>a.slice(0,e).join(\" \").replace(/- /g,\"-\")),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){a.length&&(this.truncate(t,t.textContent||\"\",void 0,0,s,l,iu),t.textContent=t.textContent?.replace(\"\u2026\",\"\")+\"\u2026\");break}n.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(io.createTextNode(e),t);let s=io.createElementNS(ir,\"tspan\");s.textContent=\"\u200B\",ih(s,{dy:h,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,l,iu)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===ia.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf(\"highcharts-br\")&&(e.actualWidth=0),r(i))})};r(e.element)}getLineHeight(t){let e=t.nodeType===ia.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:a={},tagName:n}=i,h=this.renderer.styledMode;if(\"b\"===n||\"strong\"===n?h?o.class=\"highcharts-strong\":a.fontWeight=\"bold\":(\"i\"===n||\"em\"===n)&&(h?o.class=\"highcharts-emphasized\":a.fontStyle=\"italic\"),a?.color&&(a.fill=a.color),\"br\"===n){o.class=\"highcharts-br\",i.textContent=\"\u200B\";let e=t[s+1];e?.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,\"\"))}else\"a\"===n&&r&&r.some(t=>\"#text\"===t.tagName)&&(i.children=[{children:r,tagName:\"tspan\"}]);\"#text\"!==n&&\"a\"!==n&&(i.tagName=\"tspan\"),il(i,{attributes:o,style:a}),r&&r.filter(t=>\"#text\"!==t.tagName).forEach(e)};t.forEach(e),id(this.svgElement,\"afterModifyTree\",{nodes:t})}truncate(t,e,i,s,o,r,a){let n,h,l=this.svgElement,{rotation:d}=l,c=[],p=i&&!s?1:0,g=(e||i||\"\").length,u=g;i||(o=r);let f=function(e,o){let r=o||e,a=t.parentNode;if(a&&void 0===c[r]&&a.getSubStringLength)try{c[r]=s+a.getSubStringLength(0,i?r+1:r)}catch{}return c[r]};if(l.rotation=0,s+(h=f(t.textContent.length))>o){for(;p<=g;)u=Math.ceil((p+g)/2),i&&(n=a(i,u)),h=f(u,n&&n.length-1),p===g?p=g+1:h>o?g=u-1:p=u;0===g?t.textContent=\"\":e&&g===e.length-1||(t.textContent=n||a(e||i,u)),this.ellipsis&&h>o&&this.truncate(t,t.textContent||\"\",void 0,0,o,r,iu)}i&&i.splice(0,u),l.actualWidth=h,l.rotation=d}unescapeEntities(t,e){return ip(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,\"g\"),s))}),t}},{defaultOptions:ix}=tv,{charts:iy,deg2rad:ib,doc:iv,isFirefox:ik,isMS:iw,isWebKit:iM,noop:iS,SVG_NS:iT,symbolSizes:iC,win:iA}=w,{addEvent:iP,attr:iL,createElement:iO,crisp:iE,css:iI,defined:iD,destroyObjectProperties:iB,extend:iN,isArray:iz,isNumber:iR,isObject:iW,isString:iH,merge:iX,pick:iF,pInt:iG,replaceNested:ij,uniqueKey:iY}=V;class iU{constructor(t,e,i,s,o,r,a){let n,h;this.x=0,this.y=0;let l=this.createElement(\"svg\").attr({version:\"1.1\",class:\"highcharts-root\"}),d=l.element;a||l.css(this.getStyle(s||{})),t.appendChild(d),iL(t,\"dir\",\"ltr\"),-1===t.innerHTML.indexOf(\"xmlns\")&&iL(d,\"xmlns\",this.SVG_NS),this.box=d,this.boxWrapper=l,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement(\"desc\").add().element.appendChild(iv.createTextNode(\"Created with Highcharts 12.4.0\")),this.defs=this.createElement(\"defs\").add(),this.allowHTML=r,this.forExport=o,this.styledMode=a,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=l.getStyle(\"font-size\"),this.setSize(e,i,!1),ik&&t.getBoundingClientRect&&((n=function(){iI(t,{left:0,top:0}),h=t.getBoundingClientRect(),iI(t,{left:Math.ceil(h.left)-h.left+\"px\",top:Math.ceil(h.top)-h.top+\"px\"})})(),this.unSubPixelFix=iP(iA,\"resize\",n))}definition(t){return new t6([t]).addToDOM(this.defs.element)}getReferenceURL(){if((ik||iM)&&iv.getElementsByTagName(\"base\").length){if(!iD(e)){let t=iY(),i=new t6([{tagName:\"svg\",attributes:{width:8,height:8},children:[{tagName:\"defs\",children:[{tagName:\"clipPath\",attributes:{id:t},children:[{tagName:\"rect\",attributes:{width:4,height:4}}]}]},{tagName:\"rect\",attributes:{id:\"hitme\",width:8,height:8,\"clip-path\":`url(#${t})`,fill:\"rgba(0,0,0,0.001)\"}}]}]).addToDOM(iv.body);iI(i,{position:\"fixed\",top:0,left:0,zIndex:9e5});let s=iv.elementFromPoint(6,6);e=s?.id===\"hitme\",iv.body.removeChild(i)}if(e)return ij(iA.location.href.split(\"#\")[0],[/<[^>]*>/g,\"\"],[/([\\('\\)])/g,\"\\\\$1\"],[/ /g,\"%20\"])}return\"\"}getStyle(t){return this.style=iN({fontFamily:'-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", sans-serif',fontSize:\"1rem\"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),iB(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join(\"-\").toLowerCase().replace(/[^a-z\\d\\-]/g,\"\"),i=iX({color:\"#000000\",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:\"filter\",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:\"feDropShadow\",attributes:{dx:t.offsetX,dy:t.offsetY,\"flood-color\":t.color,\"flood-opacity\":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new im(t).buildSVG()}getContrast(t){if(\"transparent\"===t)return\"#000000\";let e=tL.parse(t).rgba,i=\" clamp(0,calc(9e9*(0.5 - (0.2126*r + 0.7152*g + 0.0722*b))),1)\";if(iR(e[0])||!tL.useColorMix){let t=e.map(t=>{let e=t/255;return e<=.04?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*t[0]+.7152*t[1]+.0722*t[2];return 1.05/(i+.05)>(i+.05)/.05?\"#FFFFFF\":\"#000000\"}return\"color(from \"+t+\" srgb\"+i+i+i+\")\"}button(t,e,i,s,o={},r,a,n,h,l){let d=this.label(t,e,i,h,void 0,void 0,l,void 0,\"button\"),c=this.styledMode,p=arguments,g=0;o=iX(ix.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o[\"stroke-width\"]);let u=o.states||{},f=o.style||{};delete o.states,delete o.style;let m=[t6.filterUserAttributes(o)],x=[f];return c||[\"hover\",\"select\",\"disabled\"].forEach((t,e)=>{m.push(iX(m[0],t6.filterUserAttributes(p[e+5]||u[t]||{}))),x.push(m[e+1].style),delete m[e+1].style}),iP(d.element,iw?\"mouseover\":\"mouseenter\",function(){3!==g&&d.setState(1)}),iP(d.element,iw?\"mouseout\":\"mouseleave\",function(){3!==g&&d.setState(g)}),d.setState=(t=0)=>{if(1!==t&&(d.state=g=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\"+[\"normal\",\"hover\",\"pressed\",\"disabled\"][t]),!c){d.attr(m[t]);let e=x[t];iW(e)&&d.css(e)}},d.attr(m[0]),!c&&(d.css(iN({cursor:\"default\"},f)),l&&d.text.css({pointerEvents:\"none\"})),d.on(\"touchstart\",t=>t.stopPropagation()).on(\"click\",function(t){3!==g&&s?.call(d,t)})}crispLine(t,e){let[i,s]=t;return iD(i[1])&&i[1]===s[1]&&(i[1]=s[1]=iE(i[1],e)),iD(i[2])&&i[2]===s[2]&&(i[2]=s[2]=iE(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:\"none\"};return iz(t)?e.d=t:iW(t)&&iN(e,t),this.createElement(\"path\").attr(e)}circle(t,e,i){let s=iW(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement(\"circle\");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute(\"c\"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let a;iW(t)?(e=(a=t).y,i=a.r,s=a.innerR,o=a.start,r=a.end,t=a.x):a={innerR:s,start:o,end:r};let n=this.symbol(\"arc\",t,e,i,i,a);return n.r=i,n}rect(t,e,i,s,o,r){let a=iW(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},n=this.createElement(\"rect\");return this.styledMode||(void 0!==r&&(a[\"stroke-width\"]=r,iN(a,n.crisp(a))),a.fill=\"none\"),n.rSetter=function(t,e,i){n.r=t,iL(i,{rx:t,ry:t})},n.rGetter=function(){return n.r||0},n.attr(a)}roundedRect(t){return this.symbol(\"roundedRect\").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:\"0 0 \"+this.attr(\"width\")+\" \"+this.attr(\"height\")})},duration:iF(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement(\"g\");return t?e.attr({class:\"highcharts-\"+t}):e}image(t,e,i,s,o,r){let a={preserveAspectRatio:\"none\"};iR(e)&&(a.x=e),iR(i)&&(a.y=i),iR(s)&&(a.width=s),iR(o)&&(a.height=o);let n=this.createElement(\"image\").attr(a),h=function(e){n.attr({href:t}),r.call(n,e)};if(r){n.attr({href:\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"});let e=new iA.Image;iP(e,\"load\",h),e.src=t,e.complete&&h({})}else n.attr({href:t});return n}symbol(t,e,i,s,o,r){let a,n,h,l,d=this,c=/^url\\((.*?)\\)$/,p=c.test(t),g=!p&&(this.symbols[t]?t:\"circle\"),u=g&&this.symbols[g];if(u)\"number\"==typeof e&&(n=u.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),d.styledMode||a.attr(\"fill\",\"none\"),iN(a,{symbolName:g||void 0,x:e,y:i,width:s,height:o}),r&&iN(a,r);else if(p){h=t.match(c)[1];let s=a=this.image(h);s.imgwidth=iF(r?.width,iC[h]?.width),s.imgheight=iF(r?.height,iC[h]?.height),l=t=>t.attr({width:t.width,height:t.height}),[\"width\",\"height\"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:a,imgwidth:n,imgheight:h}=this,l=\"width\"===e?n:h,d=1;r&&\"within\"===r.backgroundSize&&o&&a&&n&&h?(d=Math.min(o/n,a/h),iL(s,{width:Math.round(n*d),height:Math.round(h*d)})):s&&l&&s.setAttribute(e,l),!i&&n&&h&&this.translate(((o||0)-n*d)/2,((a||0)-h*d)/2)}}),iD(e)&&s.attr({x:e,y:i}),s.isImg=!0,s.symbolUrl=t,iD(s.imgwidth)&&iD(s.imgheight)?l(s):(s.attr({width:0,height:0}),iO(\"img\",{onload:function(){let t=iy[d.chartIndex];0===this.width&&(iI(this,{position:\"absolute\",top:\"-999em\"}),iv.body.appendChild(this)),iC[h]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&l(s),this.parentNode&&this.parentNode.removeChild(this),d.imgCount--,d.imgCount||!t||t.hasLoaded||t.onload()},src:h}),this.imgCount++)}return a}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),iD(t)&&(o.text=t);let r=this.createElement(\"text\").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName(\"tspan\"),o=i.getAttribute(e);for(let i=0,r;i<s.length;i++)(r=s[i]).getAttribute(e)===o&&r.setAttribute(e,t);i.setAttribute(e,t)}),r}fontMetrics(t){let e=iR(t)?t:iG(eJ.prototype.getStyle.call(t,\"font-size\")||0),i=e<24?e+3:Math.round(1.2*e),s=Math.round(.8*i);return{h:i,b:s,f:e}}rotCorr(t,e,i){let s=t;return e&&i&&(s=Math.max(s*Math.cos(e*ib),4)),{x:-t/3*Math.sin(e*ib),y:s}}pathToSegments(t){let e=[],i=[],s={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2};for(let o=0;o<t.length;o++)iH(i[0])&&iR(t[o])&&i.length===s[i[0].toUpperCase()]&&t.splice(o,0,i[0].replace(\"M\",\"L\").replace(\"m\",\"l\")),\"string\"==typeof t[o]&&(i.length&&e.push(i.slice(0)),i.length=0),i.push(t[o]);return e.push(i.slice(0)),e}label(t,e,i,s,o,r,a,n,h){return new e9(this,t,e,i,s,o,r,a,n,h)}alignElements(){this.alignedObjects.forEach(t=>t.align())}}iN(iU.prototype,{Element:eJ,SVG_NS:iT,escapes:{\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",\"'\":\"&#39;\",'\"':\"&quot;\"},symbols:is,draw:iS}),eg.registerRendererType(\"svg\",iU,!0);let{composed:i$,isFirefox:iV}=w,{attr:iZ,css:i_,createElement:iq,defined:iK,extend:iJ,getAlignFactor:iQ,isNumber:i0,pInt:i1,pushUnique:i2}=V;function i3(t,e,i){let s=this.div?.style;eJ.prototype[`${e}Setter`].call(this,t,e,i),s&&(i.style[e]=s[e]=t)}let i5=(t,e)=>{if(!t.div){let i=iZ(t.element,\"class\"),s=t.css,o=iq(\"div\",i?{className:i}:void 0,{position:\"absolute\",left:`${t.translateX||0}px`,top:`${t.translateY||0}px`,...t.styles,display:t.display,opacity:t.opacity,visibility:t.visibility},t.parentGroup?.div||e);t.classSetter=(t,e,i)=>{i.setAttribute(\"class\",t),o.className=t},t.translateXSetter=t.translateYSetter=(e,i)=>{t[i]=e,o.style[\"translateX\"===i?\"left\":\"top\"]=`${e}px`,t.doTransform=!0},t.scaleXSetter=t.scaleYSetter=(e,i)=>{t[i]=e,t.doTransform=!0},t.opacitySetter=t.visibilitySetter=i3,t.css=e=>(s.call(t,e),e.cursor&&(o.style.cursor=e.cursor),e.pointerEvents&&(o.style.pointerEvents=e.pointerEvents),t),t.on=function(){return eJ.prototype.on.apply({element:o,onEvents:t.onEvents},arguments),t},t.div=o}return t.div};class i6 extends eJ{static compose(t){i2(i$,this.compose)&&(t.prototype.html=function(t,e,i){return new i6(this,\"span\").attr({text:t,x:Math.round(e),y:Math.round(i)})})}constructor(t,e){super(t,e),i6.useForeignObject?this.foreignObject=t.createElement(\"foreignObject\").attr({zIndex:2}):this.css({position:\"absolute\",...t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize}}),this.element.style.whiteSpace=\"nowrap\"}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e,{element:i}=this,s=\"SPAN\"===i.tagName&&t&&\"width\"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=i1(o)||void 0,e=!0),t?.textOverflow===\"ellipsis\"&&(t.overflow=\"hidden\",t.whiteSpace=\"nowrap\"),t?.lineClamp&&(t.display=\"-webkit-box\",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient=\"vertical\",t.overflow=\"hidden\"),i0(Number(t?.fontSize))&&(t.fontSize+=\"px\"),iJ(this.styles,t),i_(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:t,foreignObject:e,oldTextWidth:i,renderer:s,rotation:o,rotationOriginX:r,rotationOriginY:a,scaleX:n,scaleY:h,styles:{display:l=\"inline-block\",whiteSpace:d},textAlign:c=\"left\",textWidth:p,translateX:g=0,translateY:u=0,x:f=0,y:m=0}=this;if(e||i_(t,{marginLeft:`${g}px`,marginTop:`${u}px`}),\"SPAN\"===t.tagName){let g,u=[o,c,t.innerHTML,p,this.textAlign].join(\",\"),x=-(this.parentGroup?.padding*1)||0;if(p!==i){let e=this.textPxLength?this.textPxLength:(i_(t,{width:\"\",whiteSpace:d||\"nowrap\"}),t.offsetWidth),r=p||0,a=!s.styledMode&&\"\"===t.style.textOverflow&&t.style.webkitLineClamp;(r>i||e>r||a)&&(/[\\-\\s\\u00AD]/.test(t.textContent||t.innerText)||\"ellipsis\"===t.style.textOverflow)&&(i_(t,{width:(o||n||e>r||a)&&i0(p)?p+\"px\":\"auto\",display:l,whiteSpace:d||\"normal\"}),this.oldTextWidth=p)}e&&(i_(t,{display:\"inline-block\",verticalAlign:\"top\"}),e.attr({width:s.width,height:s.height})),u!==this.cTT&&(g=s.fontMetrics(t).b,iK(o)&&!e&&(o!==(this.oldRotation||0)||c!==this.oldAlign)&&i_(t,{transform:`rotate(${o}deg)`,transformOrigin:`${x}% ${x}px`}),this.getSpanCorrection(!iK(o)&&!this.textWidth&&this.textPxLength||t.offsetWidth,g,iQ(c)));let{xCorr:y=0,yCorr:b=0}=this,v={left:`${f+y}px`,top:`${m+b}px`,textAlign:c,transformOrigin:`${(r??f)-y-f-x}px ${(a??m)-b-m-x}px`};(n||h)&&(v.transform=`scale(${n??1},${h??1})`),e?(super.updateTransform(),i0(f)&&i0(m)?(e.attr({x:f+y,y:m+b,width:t.offsetWidth+3,height:t.offsetHeight,\"transform-origin\":t.getAttribute(\"transform-origin\")||\"0 0\"}),i_(t,{display:l,textAlign:c})):iV&&e.attr({width:0,height:0})):i_(t,v),this.cTT=u,this.oldRotation=o,this.oldAlign=c}}add(t){let{foreignObject:e,renderer:i}=this,s=i.box.parentNode,o=[];if(e)e.add(t),super.add(i.createElement(\"body\").attr({xmlns:\"http://www.w3.org/1999/xhtml\"}).css({background:\"transparent\",margin:\"0 3px 0 0\"}).add(e));else{let e;if(this.parentGroup=t,t&&!(e=t.div)){let i=t;for(;i;)o.push(i),i=i.parentGroup;for(let t of o.reverse())e=i5(t,s)}(e||s).appendChild(this.element)}return this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,t6.setElementHTML(this.element,t??\"\"),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let i9=i6.prototype;i9.visibilitySetter=i9.opacitySetter=i3,i9.ySetter=i9.rotationSetter=i9.rotationOriginXSetter=i9.rotationOriginYSetter=i9.xSetter,!function(t){t.xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:\"%[HMSL]\",range:!1},second:{main:\"%[HMS]\",range:!1},minute:{main:\"%[HM]\",range:!1},hour:{main:\"%[HM]\",range:!1},day:{main:\"%[eb]\"},week:{main:\"%[eb]\"},month:{main:\"%[bY]\"},year:{main:\"%Y\"}},endOnTick:!1,gridLineDashStyle:\"Solid\",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:\"justify\",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:\"#333333\",cursor:\"default\",fontSize:\"0.8em\",textOverflow:\"ellipsis\"}},maxPadding:.01,minorGridLineDashStyle:\"Solid\",minorTickLength:2,minorTickPosition:\"outside\",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:\"between\",tickPosition:\"outside\",title:{align:\"middle\",useHTML:!1,x:0,y:0,style:{color:\"#666666\",fontSize:\"0.8em\"}},visible:!0,minorGridLineColor:\"#f2f2f2\",minorGridLineWidth:1,minorTickColor:\"#999999\",lineColor:\"#333333\",lineWidth:1,gridLineColor:\"#e6e6e6\",gridLineWidth:void 0,tickColor:\"#333333\"},t.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:\"justify\",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:\"#000000\",fontSize:\"0.7em\",fontWeight:\"bold\",textOutline:\"1px contrast\"}},gridLineWidth:1,lineWidth:0}}(r||(r={}));let i4=r,{addEvent:i8,isFunction:i7,objectEach:st,removeEvent:se}=V;(a||(a={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},st(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(se(t,i,t.eventOptions[i]),delete t.eventOptions[i]),i7(e)&&(t.eventOptions[i]=e,i8(t,i,e,{order:0})))})};let si=a,{deg2rad:ss}=w,{clamp:so,correctFloat:sr,defined:sa,destroyObjectProperties:sn,extend:sh,fireEvent:sl,getAlignFactor:sd,isNumber:sc,merge:sp,objectEach:sg,pick:su}=V,sf=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||\"\",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,sl(this,\"init\"),i||s||this.addLabel()}addLabel(){let t=this,e=t.axis,i=e.options,s=e.chart,o=e.categories,r=e.logarithmic,a=e.names,n=t.pos,h=su(t.options?.labels,i.labels),l=e.tickPositions,d=n===l[0],c=n===l[l.length-1],p=(!h.step||1===h.step)&&1===e.tickInterval,g=l.info,u=t.label,f,m,x,y=this.parameters.category||(o?su(o[n],a[n],n):n);r&&sc(y)&&(y=sr(r.lin2log(y))),e.dateTime&&(g?f=(m=s.time.resolveDTLFormat(i.dateTimeLabelFormats[!i.grid?.enabled&&g.higherRanks[n]||g.unitName])).main:sc(y)&&(f=e.dateTime.getXDateFormat(y,i.dateTimeLabelFormats||{}))),t.isFirst=d,t.isLast=c;let b={axis:e,chart:s,dateTimeLabelFormat:f,isFirst:d,isLast:c,pos:n,tick:t,tickPositionInfo:g,value:y};sl(this,\"labelFormat\",b);let v=t=>h.formatter?h.formatter.call(t,t):h.format?(t.text=e.defaultLabelFormatter.call(t),ep.format(h.format,t,s)):e.defaultLabelFormatter.call(t),k=v.call(b,b),w=m?.list;w?t.shortenLabel=function(){for(x=0;x<w.length;x++)if(sh(b,{dateTimeLabelFormat:w[x]}),u.attr({text:v.call(b,b)}),u.getBBox().width<e.getSlotWidth(t)-2*(h.padding||0))return;u.attr({text:\"\"})}:t.shortenLabel=void 0,p&&e._addedPlotLB&&t.moveLabel(k,h),sa(u)||t.movedLabel?u&&u.textStr!==k&&!p&&(!u.textWidth||h.style.width||u.styles.width||u.css({width:null}),u.attr({text:k}),u.textPxLength=u.getBBox().width):(t.label=u=t.createLabel(k,h),t.rotation=0)}createLabel(t,e,i){let s=this.axis,{renderer:o,styledMode:r}=s.chart,a=e.style.whiteSpace,n=sa(t)&&e.enabled?o.text(t,i?.x,i?.y,e.useHTML).add(s.labelGroup):void 0;return n&&(r||n.css(sp(e.style)),n.textPxLength=n.getBBox().width,!r&&a&&n.css({whiteSpace:a})),n}destroy(){sn(this,this.axis)}getPosition(t,e,i,s){let o=this.axis,r=o.chart,a=s&&r.oldChartHeight||r.chartHeight,n={x:t?sr(o.translate(e+i,void 0,void 0,s)+o.transB):o.left+o.offset+(o.opposite?(s&&r.oldChartWidth||r.chartWidth)-o.right-o.left:0),y:t?a-o.bottom+o.offset-(o.opposite?o.height:0):sr(a-o.translate(e+i,void 0,void 0,s)-o.transB)};return n.y=so(n.y,-1e9,1e9),sl(this,\"afterGetPosition\",{pos:n}),n}getLabelPosition(t,e,i,s,o,r,a,n){let h,l,d=this.axis,c=d.transA,p=d.isLinked&&d.linkedParent?d.linkedParent.reversed:d.reversed,g=d.staggerLines,u=d.tickRotCorr||{x:0,y:0},f=s||d.reserveSpaceDefault?0:-d.labelOffset*(\"center\"===d.labelAlign?.5:1),m=o.distance,x={};return h=0===d.side?i.rotation?-m:-i.getBBox().height:2===d.side?u.y+m:Math.cos(i.rotation*ss)*(u.y-i.getBBox(!1,0).height/2),sa(o.y)&&(h=0===d.side&&d.horiz?o.y+h:o.y),t=t+su(o.x,[0,1,0,-1][d.side]*m)+f+u.x-(r&&s?r*c*(p?-1:1):0),e=e+h-(r&&!s?r*c*(p?1:-1):0),g&&(l=a/(n||1)%g,d.opposite&&(l=g-l-1),e+=l*(d.labelOffset/g)),x.x=t,x.y=Math.round(e),sl(this,\"afterGetLabelPosition\",{pos:x,tickmarkOffset:r,index:a}),x}getLabelSize(){return this.label?this.label.getBBox()[this.axis.horiz?\"height\":\"width\"]:0}getMarkPath(t,e,i,s,o=!1,r){return r.crispLine([[\"M\",t,e],[\"L\",t+(o?0:-i),e+(o?i:0)]],s)}handleOverflow(t){let e=this.axis,i=e.options.labels,s=t.x,o=e.chart.chartWidth,r=e.chart.spacing,a=su(e.labelLeft,Math.min(e.pos,r[3])),n=su(e.labelRight,Math.max(e.isRadial?0:e.pos+e.len,o-r[1])),h=this.label,l=this.rotation,d=sd(e.labelAlign||h.attr(\"align\")),c=h.getBBox().width,p=e.getSlotWidth(this),g=p,u=1,f;l||\"justify\"!==i.overflow?l<0&&s-d*c<a?f=Math.round(s/Math.cos(l*ss)-a):l>0&&s+d*c>n&&(f=Math.round((o-s)/Math.cos(l*ss))):(s-d*c<a?g=t.x+g*(1-d)-a:s+(1-d)*c>n&&(g=n-t.x+g*d,u=-1),(g=Math.min(p,g))<p&&\"center\"===e.labelAlign&&(t.x+=u*(p-g-d*(p-Math.min(c,g)))),(c>g||e.autoRotation&&h?.styles?.width)&&(f=g)),f&&h&&(this.shortenLabel?this.shortenLabel():h.css(sh({},{width:Math.floor(f)+\"px\",lineClamp:+!e.isRadial})))}moveLabel(t,e){let i=this,s=i.label,o=i.axis,r=!1,a;s&&s.textStr===t?(i.movedLabel=s,r=!0,delete i.label):sg(o.ticks,function(e){r||e.isNew||e===i||!e.label||e.label.textStr!==t||(i.movedLabel=e.label,r=!0,e.labelPos=i.movedLabel.xy,delete e.label)}),!r&&(i.labelPos||s)&&(a=i.labelPos||s.xy,i.movedLabel=i.createLabel(t,e,a),i.movedLabel&&i.movedLabel.attr({opacity:0}))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,a=su(this.tickmarkOffset,s.tickmarkOffset),n=this.getPosition(o,r,a,e),h=n.x,l=n.y,d=s.pos,c=d+s.len,p=o?h:l,g=su(i,this.label?.newOpacity,1);!s.chart.polar&&(sr(p)<d||p>c)&&(i=0),i??(i=1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(n,i),this.renderLabel(n,e,g,t),this.isNew=!1,sl(this,\"afterRender\")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,a=this.type,n=su(this.tickmarkOffset,i.tickmarkOffset),h=i.chart.renderer,l=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,g=s.gridLineDashStyle;\"minor\"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,g=s.minorGridLineDashStyle),l||(i.chart.styledMode||(o.stroke=p,o[\"stroke-width\"]=c||0,o.dashstyle=g),a||(o.zIndex=1),t&&(e=0),this.gridLine=l=h.path().attr(o).addClass(\"highcharts-\"+(a?a+\"-\":\"\")+\"grid-line\").add(i.gridGroup)),l&&(d=i.getPlotLinePath({value:r+n,lineWidth:l.strokeWidth(),force:\"pass\",old:t,acrossPanes:!1}))&&l[t||this.isNew?\"attr\":\"animate\"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,a=i.tickSize(r?r+\"Tick\":\"tick\"),n=t.x,h=t.y,l=su(s[\"minor\"!==r?\"tickWidth\":\"minorTickWidth\"],!r&&i.isXAxis?1:0),d=s[\"minor\"!==r?\"tickColor\":\"minorTickColor\"],c=this.mark,p=!c;a&&(i.opposite&&(a[0]=-a[0]),!c&&(this.mark=c=o.path().addClass(\"highcharts-\"+(r?r+\"-\":\"\")+\"tick\").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,\"stroke-width\":l})),c[p?\"attr\":\"animate\"]({d:this.getMarkPath(n,h,a[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,a=o.options,n=this.label,h=a.labels,l=h.step,d=su(this.tickmarkOffset,o.tickmarkOffset),c=t.x,p=t.y,g=!0;n&&sc(c)&&(n.xy=t=this.getLabelPosition(c,p,n,r,h,d,s,l),(!this.isFirst||this.isLast||a.showFirstLabel)&&(!this.isLast||this.isFirst||a.showLastLabel)?!r||h.step||h.rotation||e||0===i||this.handleOverflow(t):g=!1,l&&s%l&&(g=!1),g&&sc(t.y)?(t.opacity=i,n[this.isNewLabel?\"attr\":\"animate\"](t).show(!0),this.isNewLabel=!1):(n.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let t=this.label,e=this.axis;t&&!this.isNew&&(t.animate({opacity:0},void 0,t.destroy),delete this.label),e.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}},{animObject:sm}=tU,{xAxis:sx,yAxis:sy}=i4,{defaultOptions:sb}=tv,{registerEventOptions:sv}=si,{deg2rad:sk}=w,{arrayMax:sw,arrayMin:sM,clamp:sS,correctFloat:sT,defined:sC,destroyObjectProperties:sA,erase:sP,error:sL,extend:sO,fireEvent:sE,getClosestDistance:sI,insertItem:sD,isArray:sB,isNumber:sN,isString:sz,merge:sR,normalizeTickInterval:sW,objectEach:sH,pick:sX,relativeLength:sF,removeEvent:sG,splat:sj,syncTimeout:sY}=V,sU=(t,e)=>sW(e,void 0,void 0,sX(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);sO(sb,{xAxis:sx,yAxis:sR(sx,sy)});class s${constructor(t,e,i){this.init(t,e,i)}init(t,e,i=this.coll){let s=\"xAxis\"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,sE(this,\"init\",{userOptions:e}),this.opposite=sX(e.opposite,this.opposite),this.side=sX(e.side,this.side,o?2*!this.opposite:this.opposite?1:3),this.setOptions(e);let r=this.options,a=r.labels;this.type??(this.type=r.type||\"linear\"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),sE(this,\"afterSetType\"),this.userOptions=e,this.minPixelPadding=0,this.reversed=sX(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames=\"category\"===this.type||!0===r.categories,this.categories=sB(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=sC(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.max=void 0,this.min=void 0;let n=sX(r.crosshair,sj(t.options.tooltip.crosshairs)[+!s]);this.crosshair=!0===n?{}:n,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),sD(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!sC(this.reversed)&&(this.reversed=!0),this.labelRotation=sN(a.rotation)?a.rotation:void 0,sv(this,r),sE(this,\"afterInit\")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=sR(e,\"yAxis\"===this.coll?{title:{text:this.chart.options.lang.yAxisTitle}}:{},sb[this.coll],t),sE(this,\"afterSetOptions\",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,{numberFormatter:e}=this.chart,i=sN(this.value)?this.value:NaN,s=t.chart.time,o=t.categories,r=this.dateTimeLabelFormat,a=sb.lang,n=a.numericSymbols,h=a.numericSymbolMagnitude||1e3,l=t.logarithmic?Math.abs(i):t.tickInterval,d=n?.length,c,p;if(o)p=`${this.value}`;else if(r)p=s.dateFormat(r,i,!0);else if(d&&n&&l>=1e3)for(;d--&&void 0===p;)l>=(c=Math.pow(h,d+1))&&10*i%c==0&&null!==n[d]&&0!==i&&(p=e(i/c,-1)+n[d]);return void 0===p&&(p=Math.abs(i)>=1e4?e(i,-1):e(i,-1,void 0,\"\")),p}getSeriesExtremes(){let t,e=this;sE(this,\"getSeriesExtremes\",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,o,r=s.threshold,a,n;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(r||0)&&(r=void 0),e.isXAxis)(o=i.getColumn(\"x\")).length&&(o=e.logarithmic?o.filter(t=>t>0):o,a=(t=i.getXExtremes(o)).min,n=t.max,sN(a)||a instanceof Date||(o=o.filter(sN),a=(t=i.getXExtremes(o)).min,n=t.max),o.length&&(e.dataMin=Math.min(sX(e.dataMin,a),a),e.dataMax=Math.max(sX(e.dataMax,n),n)));else{let t=i.applyExtremes();sN(t.dataMin)&&(a=t.dataMin,e.dataMin=Math.min(sX(e.dataMin,a),a)),sN(t.dataMax)&&(n=t.dataMax,e.dataMax=Math.max(sX(e.dataMax,n),n)),sC(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),sE(this,\"afterGetSeriesExtremes\")}translate(t,e,i,s,o,r){let a=this.linkedParent||this,n=s&&a.old?a.old.min:a.min;if(!sN(n))return NaN;let h=a.minPixelPadding,l=(a.isOrdinal||a.brokenAxis?.hasBreaks||a.logarithmic&&o)&&!!a.lin2val,d=1,c=0,p=s&&a.old?a.old.transA:a.transA,g=0;return p||(p=a.transA),i&&(d*=-1,c=a.len),a.reversed&&(d*=-1,c-=d*(a.sector||a.len)),e?(g=(t=t*d+c-h)/p+n,l&&(g=a.lin2val(g))):(l&&(t=a.val2lin(t)),g=d*(t-n)*p+c+d*h+(sN(r)?p*r:0),a.isRadial||(g=sT(g))),g}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,o=e.top,r=t.old,a=t.value,n=t.lineWidth,h=r&&i.oldChartHeight||i.chartHeight,l=r&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,g,u,f,m,x;function y(t,e,i){return\"pass\"!==p&&(t<e||t>i)&&(p?t=sS(t,e,i):x=!0),t}let b={value:a,lineWidth:n,old:r,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return sE(this,\"getPlotLinePath\",b,function(t){g=f=(c=sS(c=sX(c,e.translate(a,void 0,void 0,r)),-1e9,1e9))+d,u=m=h-c-d,sN(c)?e.horiz?(u=o,m=h-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),g=f=y(g,s,s+e.width)):(g=s,f=l-e.right+(i.scrollablePixelsX||0),u=m=y(u,o,o+e.height)):(x=!0,p=!1),t.path=x&&!p?void 0:i.renderer.crispLine([[\"M\",g,u],[\"L\",f,m]],n||1)}),b.path}getLinearTickPositions(t,e,i){let s,o,r,a=sT(Math.floor(e/t)*t),n=sT(Math.ceil(i/t)*t),h=[];if(sT(a+t)===a&&(r=20),this.single)return[e];for(s=a;s<=n&&(h.push(s),(s=sT(s+t,r))!==o);)o=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?sX(e,\"auto\"):!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,o=(this.min||0)-s,r=(this.max||0)+s,a=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:r-o,n=[],h;if(a&&a/i<this.len/3){let s=this.logarithmic;if(s)this.paddedTicks.forEach(function(t,e,o){e&&n.push.apply(n,s.getLogTickPositions(i,o[e-1],o[e],!0))});else if(this.dateTime&&\"auto\"===this.getMinorTickInterval())n=n.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(i),o,r,t.startOfWeek));else for(h=o+(e[0]-o)%i;h<=r&&h!==n[0];h+=i)n.push(h)}return 0!==n.length&&this.trimTicks(n),n}adjustForMinRange(){let t=this.options,e=this.logarithmic,i=this.chart.time,{max:s,min:o,minRange:r}=this,a,n,h,l;this.isXAxis&&void 0===r&&!e&&(r=sC(t.min)||sC(t.max)||sC(t.floor)||sC(t.ceiling)?null:Math.min(5*(sI(this.series.map(t=>{let e=t.getColumn(\"x\");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),sN(s)&&sN(o)&&sN(r)&&s-o<r&&(n=this.dataMax-this.dataMin>=r,a=(r-s+o)/2,h=[o-a,i.parse(t.min)??o-a],n&&(h[2]=e?e.log2lin(this.dataMin):this.dataMin),l=[(o=sw(h))+r,i.parse(t.max)??o+r],n&&(l[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=sM(l))-o<r&&(h[0]=s-r,h[1]=i.parse(t.min)??s-r,o=sw(h))),this.minRange=r,this.min=o,this.max=s}getClosest(){let t,e;if(this.categories)e=1;else{let i=[];this.series.forEach(function(t){let s=t.closestPointRange,o=t.getColumn(\"x\");1===o.length?i.push(o[0]):t.sorted&&sC(s)&&t.reserveSpace()&&(e=sC(e)?Math.min(e,s):s)}),i.length&&(i.sort((t,e)=>t-e),t=sI([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t){let e=sB(this.options.categories),i=e?this.categories:this.names,s=t.options.x,o;return t.series.requireSorting=!1,sC(s)||(s=this.uniqueNames&&i?e?i.indexOf(t.name):sX(i.keys[t.name],-1):t.series.autoIncrement()),-1===s?!e&&i&&(o=i.length):sN(s)&&(o=s),void 0!==o?(this.names[o]=t.name,this.names.keys[t.name]=o):t.x&&(o=t.x),o}updateNames(){let t=this,e=this.names;e.length>0&&(Object.keys(e.keys).forEach(function(t){delete e.keys[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{e.xIncrement=null,(!e.points||e.isDirtyData)&&(t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints());let i=e.getColumn(\"x\").slice();e.data.forEach((e,s)=>{let o=i[s];e?.options&&void 0!==e.name&&void 0!==(o=t.nameToX(e))&&o!==e.x&&(i[s]=e.x=o)}),e.dataTable.setColumn(\"x\",i)}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,o=t.isXAxis,r=t.axisPointRange||0,a,n=0,h=0,l,d=t.transA;(o||s||r)&&(a=t.getClosest(),i?(n=i.minPointOffset,h=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:o?sX(e.options.pointRange,a,0):t.axisPointRange||0,l=e.options.pointPlacement;if(r=Math.max(r,i),!t.single||s){let t=e.is(\"xrange\")?!o:o;n=Math.max(n,t&&sz(l)?0:i/2),h=Math.max(h,t&&\"on\"===l?0:i)}}),l=t.ordinal?.slope&&a?t.ordinal.slope/a:1,t.minPointOffset=n*=l,t.pointRangePadding=h*=l,t.pointRange=Math.min(r,t.single&&s?1:e),o&&(t.closestPointRange=a)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+h||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*n,sE(this,\"afterSetAxisTranslation\")}minFromRange(){let{max:t,min:e}=this;return sN(t)&&sN(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:o,dateTime:r,isXAxis:a,logarithmic:n,options:h,softThreshold:l}=this,d=i.time,c=sN(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:g,floor:u,linkedTo:f,softMax:m,softMin:x}=h,y=sN(f)&&i[this.coll]?.[f],b=h.tickPixelInterval,v=h.maxPadding,k=h.minPadding,w=0,M,S=sN(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,T,C,A,P;if(r||e||y||this.getTickAmount(),A=sX(this.userMin,d.parse(h.min)),P=sX(this.userMax,d.parse(h.max)),y?(this.linkedParent=y,M=y.getExtremes(),this.min=sX(M.min,M.dataMin),this.max=sX(M.max,M.dataMax),this.type!==y.type&&sL(11,!0,i)):(l&&sC(c)&&sN(s)&&sN(o)&&(o>=c?(T=c,k=0):s<=c&&(C=c,v=0)),this.min=sX(A,T,o),this.max=sX(P,C,s)),sN(this.max)&&sN(this.min)&&(n&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,sX(o,this.min))&&sL(10,!0,i),this.min=sT(n.log2lin(this.min),16),this.max=sT(n.log2lin(this.max),16)),this.range&&sN(o)&&(this.userMin=this.min=A=Math.max(o,this.minFromRange()||0),this.userMax=P=this.max,this.range=void 0)),sE(this,\"foundExtremes\"),this.adjustForMinRange(),sN(this.min)&&sN(this.max)){if(!sN(this.userMin)&&sN(x)&&x<this.min&&(this.min=A=x),!sN(this.userMax)&&sN(m)&&m>this.max&&(this.max=P=m),e||this.axisPointRange||this.stacking?.usePercentage||y||(w=this.max-this.min)&&(!sC(A)&&k&&(this.min-=w*k),!sC(P)&&v&&(this.max+=w*v)),!sN(this.userMin)&&sN(u)&&(this.min=Math.max(this.min,u)),!sN(this.userMax)&&sN(g)&&(this.max=Math.min(this.max,g)),l&&sN(o)&&sN(s)){let t=c||0;!sC(A)&&this.min<t&&o>=t?this.min=h.minRange?Math.min(t,this.max-p):t:!sC(P)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(sC(h.min)?this.max=this.min:sC(h.max)&&(this.min=this.max)),w=this.max-this.min}if(this.min!==this.max&&sN(this.min)&&sN(this.max)?y&&!S&&b===y.options.tickPixelInterval?this.tickInterval=S=y.tickInterval:this.tickInterval=sX(S,this.tickAmount?w/Math.max(this.tickAmount-1,1):void 0,e?1:w*b/Math.max(this.len,b)):this.tickInterval=1,a&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),sE(this,\"postProcessData\",{hasExtremesChanged:t})}this.setAxisTranslation(),sE(this,\"initialAxisTranslation\"),this.pointRange&&!S&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let L=sX(h.minTickInterval,r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!S&&L&&this.tickInterval<L&&(this.tickInterval=L),r||n||S||(this.tickInterval=sU(this,this.tickInterval)),this.tickAmount||(this.tickInterval=this.unsquish()),this.setTickPositions()}setTickPositions(){let t=this.options,e=t.tickPositions,i=t.tickPositioner,s=this.getMinorTickInterval(),o=!this.isPanning,r=o&&t.startOnTick,a=o&&t.endOnTick,n=[],h;if(this.tickmarkOffset=this.categories&&\"between\"===t.tickmarkPlacement&&1===this.tickInterval?.5:0,this.single=this.min===this.max&&sC(this.min)&&!this.tickAmount&&(this.min%1==0||!1!==t.allowDecimals),e)n=e.slice();else if(sN(this.min)&&sN(this.max)){if(!this.ordinal?.positions&&(this.max-this.min)/this.tickInterval>Math.max(2*this.len,200))n=[this.min,this.max],sL(19,!1,this.chart);else if(this.dateTime)n=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)n=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(n=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&n.length>this.tickAmount)this.tickInterval=sU(this,e*=1.1);else break}n.length>this.len&&(n=[n[0],n[n.length-1]])[0]===n[1]&&(n.length=1),i&&(this.tickPositions=n,(h=i.apply(this,[this.min,this.max]))&&(n=h))}this.tickPositions=n,this.minorTickInterval=\"auto\"===s&&this.tickInterval?this.tickInterval/t.minorTicksPerMajor:s,this.paddedTicks=n.slice(0),this.trimTicks(n,r,a),!this.isLinked&&sN(this.min)&&sN(this.max)&&(this.single&&n.length<2&&!this.categories&&!this.series.some(t=>t.is(\"heatmap\")&&\"between\"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||h||this.adjustTickAmount()),sE(this,\"afterSetTickPositions\")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(sE(this,\"trimTicks\"),!this.isLinked||!this.grid){if(e&&s!==-1/0)this.min=s;else for(;this.min-r>t[0];)t.shift();if(i)this.max=o;else for(;this.max+r<t[t.length-1];)t.pop();0===t.length&&sC(s)&&!this.options.tickPositions&&t.push((o+s)/2)}}alignToOthers(){let t,e=this,i=e.chart,s=[this],o=e.options,r=i.options.chart,a=\"yAxis\"===this.coll&&r.alignThresholds,n=[];if(e.thresholdAlignment=void 0,(!1!==r.alignTicks&&o.alignTicks||a)&&!1!==o.startOnTick&&!1!==o.endOnTick&&!e.logarithmic){let o=t=>{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(\",\")},r=o(this);i[this.coll].forEach(function(i){let{series:a}=i;a.length&&a.some(t=>t.visible)&&i!==e&&o(i)===r&&(t=!0,s.push(i))})}if(t&&a){s.forEach(t=>{let i=t.getThresholdAlignment(e);sN(i)&&n.push(i)});let t=n.length>1?n.reduce((t,e)=>t+=e,0)/n.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!sN(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData))&&this.getSeriesExtremes(),sN(this.threshold)){let t=sS((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;sC(t.tickInterval)||i||!(this.len<e)||this.isRadial||this.logarithmic||!t.startOnTick||!t.endOnTick||(i=2),!i&&this.alignToOthers()&&(i=Math.ceil(this.len/e)+1),i<4&&(this.finalTickAmt=i,i=5),this.tickAmount=i}adjustTickAmount(){let t=this,{finalTickAmt:e,max:i,min:s,options:o,tickPositions:r,tickAmount:a,thresholdAlignment:n}=t,h=r?.length,l=sX(t.threshold,t.softThreshold?0:null),d,c,p=t.tickInterval,g,u=()=>r.push(sT(r[r.length-1]+p)),f=()=>r.unshift(sT(r[0]-p));if(sN(n)&&(g=n<.5?Math.ceil(n*(a-1)):Math.floor(n*(a-1)),o.reversed&&(g=a-1-g)),t.hasData()&&sN(s)&&sN(i)){let n=()=>{t.transA*=(h-1)/(a-1),t.min=o.startOnTick?r[0]:Math.min(s,r[0]),t.max=o.endOnTick?r[r.length-1]:Math.max(i,r[r.length-1])};if(sN(g)&&sN(t.threshold)){for(;r[g]!==l||r.length!==a||r[0]>s||r[r.length-1]<i;){for(r.length=0,r.push(t.threshold);r.length<a;)void 0===r[g]||r[g]>t.threshold?f():u();if(p>8*t.tickInterval)break;p*=2}n()}else if(h<a){for(;r.length<a;)r.length%2||s===l?u():f();n()}if(sC(e)){for(c=d=r.length;c--;)(3===e&&c%2==1||e<=2&&c>0&&c<d-1)&&r.splice(c,1);t.finalTickAmt=void 0}}}setScale(){let{coll:t,stacking:e}=this,i=!1,s=!1;this.series.forEach(t=>{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis?.isDirty||!1}),this.setAxisSize();let o=this.len!==this.old?.len;o||i||s||this.isLinked||this.forceRedraw||this.userMin!==this.old?.userMin||this.userMax!==this.old?.userMax||this.alignToOthers()?(e&&\"yAxis\"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&\"xAxis\"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,sE(this,\"afterSetScale\")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach(t=>{delete t.kdTree}),t=r.time.parse(t),e=r.time.parse(e),sE(this,\"setExtremes\",o=sO(o,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(sF(sX(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),r=this.height=Math.round(sF(sX(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),a=this.top=Math.round(sF(sX(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),n=this.left=Math.round(sF(sX(e.left,t.plotLeft+i[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-a,this.right=t.chartWidth-o-n,this.len=Math.max(s?o:r,0),this.pos=s?n:a}getExtremes(){let t=this.logarithmic;return{min:t?sT(t.lin2log(this.min)):this.min,max:t?sT(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s<t&&(t=s),this.translate(t,0,1,0,1)}autoLabelAlign(t){let e=(sX(t,0)-90*this.side+720)%360,i={align:\"center\"};return sE(this,\"autoLabelAlign\",i,function(t){e>15&&e<165?t.align=\"right\":e>195&&e<345&&(t.align=\"left\")}),i.align}tickSize(t){let e=this.options,i=sX(e[\"tick\"===t?\"tickWidth\":\"minorTickWidth\"],\"tick\"===t&&this.isXAxis&&!this.categories?1:0),s=e[\"tick\"===t?\"tickLength\":\"minorTickLength\"],o;i&&s&&(\"inside\"===e[t+\"Position\"]&&(s=-s),o=[s,i]);let r={tickSize:o};return sE(this,\"afterTickSize\",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||i.movedLabel||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,o=this.len/((+!!this.categories+this.max-this.min)/s),r=t.rotation,a=sT(.8*this.labelMetrics().h),n=Math.max(this.max-this.min,0),h=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>n&&t!==1/0&&o!==1/0&&n&&(i=Math.ceil(n/s)),sT(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(sN(r)?p=[r]:o<t.autoRotationLimit&&(p=t.autoRotation)),p){let t,e;for(let i of p)(i===r||i&&i>=-90&&i<=90)&&(e=(t=h(Math.abs(a/Math.sin(sk*i))))+Math.abs(i/360))<c&&(c=e,d=i,l=t)}}else l=h(.75*a);return this.autoRotation=p,this.labelRotation=sX(d,sN(r)?r:0),t.step?s:l}getSlotWidth(t){let e=this.chart,i=this.horiz,s=this.options.labels,o=Math.max(this.tickPositions.length-!this.categories,1),r=e.margin[3];if(t&&sN(t.slotWidth))return t.slotWidth;if(i&&s.step<2&&!this.isRadial)return s.rotation?0:(this.staggerLines||1)*this.len/o;if(!i){let t=s.style.width;if(void 0!==t)return parseInt(String(t),10);if(!this.opposite&&r)return r-e.spacing[3]}return .33*e.chartWidth}renderUnsquish(){let t=this.chart,e=t.renderer,i=this.tickPositions,s=this.ticks,o=this.options.labels,r=o.style,a=this.horiz,n=this.getSlotWidth(),h=Math.max(1,Math.round(n-(a?2*(o.padding||0):o.distance||0))),l={},d=this.labelMetrics(),c=r.lineClamp,p,g=c??(Math.floor(this.len/(i.length*d.h))||1),u=0;sz(o.rotation)||(l.rotation=o.rotation||0),i.forEach(function(t){let e=s[t];e.movedLabel&&e.replaceMovedLabel();let i=e.label?.textPxLength||0;i>u&&(u=i)}),this.maxLabelLength=u,this.autoRotation?u>h&&u>d.h?l.rotation=this.labelRotation:this.labelRotation=0:n&&(p=h),l.rotation&&(p=u>.5*t.chartHeight?.33*t.chartHeight:u,c||(g=1)),this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(l.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e?.label,o=r.width,a={};i&&(i.attr(l),e.shortenLabel?e.shortenLabel():p&&!o&&\"nowrap\"!==r.whiteSpace&&(p<(i.textPxLength||0)||\"SPAN\"===i.element.tagName)?i.css(sO(a,{width:`${p}px`,lineClamp:g})):!i.styles.width||a.width||o||i.css({width:\"auto\"}),e.rotation=l.rotation)},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&sC(this.min)&&sC(this.max)}addTitle(t){let e,i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,a=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:\"left\",middle:\"center\",high:\"right\"}:{low:o?\"right\":\"left\",middle:\"center\",high:o?\"left\":\"right\"})[r.align]),this.axisTitle=i.text(r.text||\"\",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass(\"highcharts-axis-title\"),a||this.axisTitle.css(sR(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),a||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+\"px\"}),this.axisTitle[t?\"show\":\"hide\"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new sf(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,a)=>o.g(e).attr({zIndex:a}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:\"\")+(s.className||\"\")).add(t);this.axisGroup||(this.gridGroup=r(\"grid\",\"-grid\",s.gridZIndex),this.axisGroup=r(\"axis\",\"\",s.zIndex),this.labelGroup=r(\"axis-labels\",\"-labels\",s.labels.zIndex))}getOffset(){let t=this,{chart:e,horiz:i,options:s,side:o,ticks:r,tickPositions:a,coll:n}=t,h=e.inverted&&!t.isZAxis?[1,0,3,2][o]:o,l=t.hasData(),d=s.title,c=s.labels,p=sN(s.crossing),g=e.axisOffset,u=e.clipOffset,f=[-1,1,1,-1][o],m,x=0,y,b=0,v=0,k,w;if(t.showAxis=m=l||s.showEmpty,t.staggerLines=t.horiz&&c.staggerLines||void 0,t.createGroups(),l||t.isLinked?(a.forEach(function(e){t.generateTick(e)}),t.renderUnsquish(),t.reserveSpaceDefault=0===o||2===o||({1:\"left\",3:\"right\"})[o]===t.labelAlign,sX(c.reserveSpace,!p&&null,\"center\"===t.labelAlign||null,t.reserveSpaceDefault)&&a.forEach(function(t){v=Math.max(r[t].getLabelSize(),v)}),t.staggerLines&&(v*=t.staggerLines),t.labelOffset=v*(t.opposite?-1:1)):sH(r,function(t,e){t.destroy(),delete r[e]}),d?.text&&!1!==d.enabled&&(t.addTitle(m),m&&!p&&!1!==d.reserveSpace&&(t.titleOffset=x=t.axisTitle.getBBox()[i?\"height\":\"width\"],b=sC(y=d.offset)?0:sX(d.margin,i?5:10))),t.renderLine(),t.offset=f*sX(s.offset,g[o]?g[o]+(s.margin||0):0),t.tickRotCorr=t.tickRotCorr||{x:0,y:0},w=0===o?-t.labelMetrics().h:2===o?t.tickRotCorr.y:0,k=Math.abs(v)+b,v&&(k-=w,k+=f*(i?sX(c.y,t.tickRotCorr.y+f*c.distance):sX(c.x,f*c.distance))),t.axisTitleMargin=sX(y,k),t.getMaxLabelDimensions&&(t.maxLabelDimensions=t.getMaxLabelDimensions(r,a)),\"colorAxis\"!==n&&u){let e=this.tickSize(\"tick\");g[o]=Math.max(g[o],(t.axisTitleMargin||0)+x+f*t.offset,k,a?.length&&e?e[0]+f*t.offset:0);let i=!t.axisLine||s.offset?0:t.axisLine.strokeWidth()/2;u[h]=Math.max(u[h],i)}sE(this,\"afterGetOffset\")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,a=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([[\"M\",o?this.left:r,o?a:this.top],[\"L\",o?e.chartWidth-this.right:r,o?a:e.chartHeight-this.bottom]],t)}renderLine(){!this.axisLine&&(this.axisLine=this.chart.renderer.path().addClass(\"highcharts-axis-line\").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,\"stroke-width\":this.options.lineWidth,zIndex:7}))}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,a=e?i:s,n=this.opposite,h=this.offset,l=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,g={low:a+(e?0:o),middle:a+o/2,high:a+(e?o:0)}[r.align],u=(e?s+this.height:i)+(e?1:-1)*(n?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],f={x:e?g+l:u+(n?this.width:0)+h+l,y:e?u+d-(n?this.height:0)+h:g+d};return sE(this,\"afterGetTitlePosition\",{titlePosition:f}),f}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new sf(this,t,\"minor\")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid?.isColumn)&&(o[t]||(o[t]=new sf(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e,i=this,s=i.chart,o=i.logarithmic,r=s.renderer,a=i.options,n=i.isLinked,h=i.tickPositions,l=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,g=a.stackLabels,u=a.alternateGridColor,f=a.crossing,m=i.tickmarkOffset,x=i.axisLine,y=i.showAxis,b=sm(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[d,c,p].forEach(function(t){sH(t,function(t){t.isActive=!1})}),sN(f)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(f,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||n){let r=i.chart.hasRendered&&i.old&&sN(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),h.length&&(h.forEach(function(t,e){i.renderTick(t,e,r)}),m&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new sf(i,-1,null,!0)),d[-1].render(-1))),u&&h.forEach(function(r,a){e=void 0!==h[a+1]?h[a+1]+m:i.max-m,a%2==0&&r<i.max&&e<=i.max+(s.polar?-m:m)&&(p[r]||(p[r]=new w.PlotLineOrBand(i,{})),t=r+m,p[r].options={from:o?o.lin2log(t):t,to:o?o.lin2log(e):e,color:u,className:\"highcharts-alternate-grid\"},p[r].render(),p[r].isActive=!0)}),i._addedPlotLB||(i._addedPlotLB=!0,(a.plotLines||[]).concat(a.plotBands||[]).forEach(function(t){i.addPlotBandOrLine(t)}))}[d,c,p].forEach(function(t){let e=[],i=b.duration;sH(t,function(t,i){t.isActive||(t.render(i,!1,0),t.isActive=!1,e.push(i))}),sY(function(){let i=e.length;for(;i--;)t[e[i]]&&!t[e[i]].isActive&&(t[e[i]].destroy(),delete t[e[i]])},t!==p&&s.hasRendered&&i?i:0)}),x&&(x[x.isPlaced?\"animate\":\"attr\"]({d:this.getLinePath(x.strokeWidth())}),x.isPlaced=!0,x[y?\"show\":\"hide\"](y)),l&&y&&(l[l.isNew?\"attr\":\"animate\"](i.getTitlePosition(l)),l.isNew=!1),g?.enabled&&i.stacking&&i.stacking.renderStackTotals(),i.old={len:i.len,max:i.max,min:i.min,transA:i.transA,userMax:i.userMax,userMin:i.userMin},i.isDirty=!1,sE(this,\"afterRender\")}redraw(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(t){t.render()})),this.series.forEach(function(t){t.isDirty=!0})}getKeepProps(){return this.keepProps||s$.keepProps}destroy(t){let e=this,i=e.plotLinesAndBands,s=this.eventOptions;if(sE(this,\"destroy\",{keepEvents:t}),t||sG(e),[e.ticks,e.minorTicks,e.alternateBands].forEach(function(t){sA(t)}),i){let t=i.length;for(;t--;)i[t].destroy()}for(let t in[\"axisLine\",\"axisTitle\",\"axisGroup\",\"gridGroup\",\"labelGroup\",\"cross\",\"scrollbar\"].forEach(function(t){e[t]&&(e[t]=e[t].destroy())}),e.plotLinesAndBandsGroups)e.plotLinesAndBandsGroups[t]=e.plotLinesAndBandsGroups[t].destroy();sH(e,function(t,i){-1===e.getKeepProps().indexOf(i)&&delete e[i]}),this.eventOptions=s}drawCrosshair(t,e){let i=this.crosshair,s=i?.snap??!0,o=this.chart,r,a,n,h=this.cross,l;if(sE(this,\"drawCrosshair\",{e:t,point:e}),t||(t=this.cross?.e),i&&!1!==(sC(e)||!s)){if(s?sC(e)&&(a=sX(\"colorAxis\"!==this.coll?e.crosshairPos:null,this.isXAxis?e.plotX:this.len-e.plotY)):a=t&&(this.horiz?t.chartX-this.pos:this.len-t.chartY+this.pos),sC(a)&&(l={value:e&&(this.isXAxis?e.x:sX(e.stackY,e.y)),translatedValue:a},o.polar&&sO(l,{isCrosshair:!0,chartX:t?.chartX,chartY:t?.chartY,point:e}),r=this.getPlotLinePath(l)||null),!sC(r))return void this.hideCrosshair();n=this.categories&&!this.isRadial,h||(this.cross=h=o.renderer.path().addClass(\"highcharts-crosshair highcharts-crosshair-\"+(n?\"category \":\"thin \")+(i.className||\"\")).attr({zIndex:sX(i.zIndex,2)}).add(),!o.styledMode&&(h.attr({stroke:i.color||(n?tL.parse(\"#ccd3ff\").setOpacity(.25).get():\"#cccccc\"),\"stroke-width\":sX(i.width,1)}).css({\"pointer-events\":\"none\"}),i.dashStyle&&h.attr({dashstyle:i.dashStyle}))),h.show().attr({d:r}),n&&!i.width&&h.attr({\"stroke-width\":this.transA}),this.cross.e=t}else this.hideCrosshair();sE(this,\"afterDrawCrosshair\",{e:t,point:e})}hideCrosshair(){this.cross&&this.cross.hide(),sE(this,\"afterHideCrosshair\")}update(t,e){let i=this.chart;t=sR(this.userOptions,t),this.destroy(!0),this.init(i,t),i.isDirtyBox=!0,sX(e,!0)&&i.redraw()}remove(t){let e=this.chart,i=this.coll,s=this.series,o=s.length;for(;o--;)s[o]&&s[o].remove(!1);sP(e.axes,this),sP(e[i]||[],this),e.orderItems(i),this.destroy(),e.isDirtyBox=!0,sX(t,!0)&&e.redraw()}setTitle(t,e){this.update({title:t},e)}setCategories(t,e){this.update({categories:t},e)}}s$.keepProps=[\"coll\",\"extKey\",\"hcEvents\",\"len\",\"names\",\"series\",\"userMax\",\"userMin\"];let{addEvent:sV,getMagnitude:sZ,normalizeTickInterval:s_,timeUnits:sq}=V;!function(t){function e(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function i(){if(\"datetime\"!==this.type){this.dateTime=void 0;return}this.dateTime||(this.dateTime=new s(this))}t.compose=function(t){return t.keepProps.includes(\"dateTime\")||(t.keepProps.push(\"dateTime\"),t.prototype.getTimeTicks=e,sV(t,\"afterSetType\",i)),t};class s{constructor(t){this.axis=t}normalizeTimeTickInterval(t,e){let i=e||[[\"millisecond\",[1,2,5,10,20,25,50,100,200,500]],[\"second\",[1,2,5,10,15,30]],[\"minute\",[1,2,5,10,15,30]],[\"hour\",[1,2,3,4,6,8,12]],[\"day\",[1,2]],[\"week\",[1,2]],[\"month\",[1,2,3,4,6]],[\"year\",null]],s=i[i.length-1],o=sq[s[0]],r=s[1],a;for(a=0;a<i.length&&(o=sq[(s=i[a])[0]],r=s[1],!i[a+1]||!(t<=(o*r[r.length-1]+sq[i[a+1][0]])/2));a++);o===sq.year&&t<5*o&&(r=[1,2,5]);let n=s_(t/o,r,\"year\"===s[0]?Math.max(sZ(t/o),1):1);return{unitRange:o,count:n,unitName:s[0]}}getXDateFormat(t,e){let{axis:i}=this,s=i.chart.time;return i.closestPointRange?s.getDateFormat(i.closestPointRange,t,i.options.startOfWeek,e)||s.resolveDTLFormat(e.year).main:s.resolveDTLFormat(e.day).main}}t.Additions=s}(n||(n={}));let sK=n,{addEvent:sJ,normalizeTickInterval:sQ,pick:s0}=V;!function(t){function e(){\"logarithmic\"!==this.type?this.logarithmic=void 0:this.logarithmic??(this.logarithmic=new s(this))}function i(){let t=this.logarithmic;t&&(this.lin2val=function(e){return t.lin2log(e)},this.val2lin=function(e){return t.log2lin(e)})}t.compose=function(t){return t.keepProps.includes(\"logarithmic\")||(t.keepProps.push(\"logarithmic\"),sJ(t,\"afterSetType\",e),sJ(t,\"afterInit\",i)),t};class s{constructor(t){this.axis=t}getLogTickPositions(t,e,i,s){let o=this.axis,r=o.len,a=o.options,n=[];if(s||(this.minorAutoInterval=void 0),t>=.5)t=Math.round(t),n=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,a,h,l,d,c,p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;r<i+1&&!c;r++)for(a=0,h=o.length;a<h&&!c;a++)(l=this.log2lin(this.lin2log(r)*o[a]))>e&&(!s||d<=i)&&void 0!==d&&n.push(d),d>i&&(c=!0),d=l}else{let h=this.lin2log(e),l=this.lin2log(i),d=s?o.getMinorTickInterval():a.tickInterval,c=a.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=sQ(t=s0(\"auto\"===d?null:d,this.minorAutoInterval,(l-h)*c/(p||1))),n=o.getLinearTickPositions(t,h,l).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),n}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(h||(h={}));let s1=h,{erase:s2,extend:s3,isNumber:s5}=V;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,\"plotBands\")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,\"plotLines\")}function r(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,a=!s5(this.min)||!s5(this.max)||t<this.min&&e<this.min||t>this.max&&e>this.max,n=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),h,l=1,d;if(n&&s)for(a&&(d=n.toString()===s.toString(),l=0),h=0;h<n.length;h+=2){let t=n[h],e=n[h+1],i=s[h],a=s[h+1];(\"M\"===t[0]||\"L\"===t[0])&&(\"M\"===e[0]||\"L\"===e[0])&&(\"M\"===i[0]||\"L\"===i[0])&&(\"M\"===a[0]||\"L\"===a[0])&&(r&&i[1]===t[1]?(i[1]+=l,a[1]+=l):r||i[2]!==t[2]||(i[2]+=l,a[2]+=l),o.push([\"M\",t[1],t[2]],[\"L\",e[1],e[2]],[\"L\",a[1],a[2]],[\"L\",i[1],i[2]],[\"Z\"])),o.isFlat=d}return o}function a(t){this.removePlotBandOrLine(t)}function n(t){let e=this.plotLinesAndBands,i=this.options,s=this.userOptions;if(e){let o=e.length;for(;o--;)e[o].id===t&&e[o].destroy();[i.plotLines||[],s.plotLines||[],i.plotBands||[],s.plotBands||[]].forEach(function(e){for(o=e.length;o--;)e[o]?.id===t&&s2(e,e[o])})}}function h(t){this.removePlotBandOrLine(t)}t.compose=function(t,l){let d=l.prototype;return d.addPlotBand||(e=t,s3(d,{addPlotBand:i,addPlotLine:o,addPlotBandOrLine:s,getPlotBandPath:r,removePlotBand:a,removePlotLine:h,removePlotBandOrLine:n})),l}}(l||(l={}));let s6=l,{addEvent:s9,arrayMax:s4,arrayMin:s8,defined:s7,destroyObjectProperties:ot,erase:oe,fireEvent:oi,merge:os,objectEach:oo,pick:or}=V;class oa{static compose(t,e){return s9(t,\"afterInit\",function(){this.labelCollectors.push(()=>{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t})}),s6.compose(oa,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){oi(this,\"render\");let{axis:t,options:e}=this,{horiz:i,logarithmic:s}=t,{color:o,events:r,zIndex:a=0}=e,{renderer:n,time:h}=t.chart,l={},d=h.parse(e.to),c=h.parse(e.from),p=h.parse(e.value),g=e.borderWidth,u=e.label,{label:f,svgElem:m}=this,x=[],y,b=s7(c)&&s7(d),v=s7(p),k=!m,w={class:\"highcharts-plot-\"+(b?\"band \":\"line \")+(e.className||\"\")},M=b?\"bands\":\"lines\";if(!t.chart.styledMode&&(v?(w.stroke=o||\"#999999\",w[\"stroke-width\"]=or(e.width,1),e.dashStyle&&(w.dashstyle=e.dashStyle)):b&&(w.fill=o||\"#e6e9ff\",g&&(w.stroke=e.borderColor,w[\"stroke-width\"]=g))),l.zIndex=a,M+=\"-\"+a,(y=t.plotLinesAndBandsGroups[M])||(t.plotLinesAndBandsGroups[M]=y=n.g(\"plot-\"+M).attr(l).add()),m||(this.svgElem=m=n.path().attr(w).add(y)),s7(p))x=t.getPlotLinePath({value:s?.log2lin(p)??p,lineWidth:m.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(s7(c)&&s7(d)))return;x=t.getPlotBandPath(s?.log2lin(c)??c,s?.log2lin(d)??d,e)}return!this.eventsAdded&&r&&(oo(r,(t,e)=>{m?.on(e,t=>{r[e].apply(this,[t])})}),this.eventsAdded=!0),(k||!m.d)&&x?.length?m.attr({d:x}):m&&(x?(m.show(),m.animate({d:x})):m.d&&(m.hide(),f&&(this.label=f=f.destroy()))),u&&(s7(u.text)||s7(u.formatter))&&x?.length&&t.width>0&&t.height>0&&!x.isFlat?(u=os({align:i&&b?\"center\":void 0,x:i?!b&&4:10,verticalAlign:!i&&b?\"middle\":void 0,y:i?b?16:10:b?6:-4,rotation:i&&!b?90:0,...b?{inside:!0}:{}},u),this.renderLabel(u,x,b,a)):f&&f.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,a=t.inside,n=this.label;n||(this.label=n=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:\"highcharts-plot-\"+(i?\"band\":\"line\")+\"-label \"+(t.className||\"\"),zIndex:s}),o.chart.styledMode||n.css(os({color:o.chart.options.title?.style?.color,fontSize:\"0.8em\",textOverflow:i&&!a?\"\":\"ellipsis\"},t.style)),n.add());let h=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],l=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=s8(h),c=s8(l),p=s4(h)-d;n.align(t,!1,{x:d,y:c,width:p,height:s4(l)-c}),n.alignAttr.y-=r.fontMetrics(n).b,(!n.alignValue||\"left\"===n.alignValue||s7(a))&&n.css({width:(t.style?.width||(i&&a?p:90===n.rotation?o.height-(n.alignAttr.y-o.top):(t.clip?o.width:o.chart.chartWidth)-(n.alignAttr.x-o.left)))+\"px\"}),n.show(!0)}getLabelText(t){return s7(t.formatter)?t.formatter.call(this):t.text}destroy(){oe(this.axis.plotLinesAndBands,this),delete this.axis,ot(this)}}let{animObject:on}=tU,{format:oh}=ep,{composed:ol,dateFormats:od,doc:oc,isSafari:op}=w,{distribute:og}=ey,{addEvent:ou,clamp:of,css:om,discardElement:ox,extend:oy,fireEvent:ob,getAlignFactor:ov,isArray:ok,isNumber:ow,isObject:oM,isString:oS,merge:oT,pick:oC,pushUnique:oA,splat:oP,syncTimeout:oL}=V;class oO{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||\"point\";return(e[i+\"Formatter\"]||t.tooltipFormatter).call(t,e[i+\"Format\"]||\"\")})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e?.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e,i=this.points||oP(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),ox(this.container)),V.clearTimeout(this.hideTimer)}getAnchor(t,e){let i,{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if(t=oP(t),t[0].series?.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-n,e.chartY-a];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])}),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-n,o-a]}let h={point:t[0],ret:i};return ob(this,\"getAnchor\",h),h.ret.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,\"highcharts-label\",i&&\"highcharts-tooltip-header\",e?\"highcharts-tooltip-box\":\"highcharts-tooltip\",!i&&\"highcharts-color-\"+oC(t.colorIndex,o.colorIndex),r?.className].filter(oS).join(\" \")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,a=this.container,n=this.chart.renderer;if(this.label){let t=!this.label.hasClass(\"highcharts-label\");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style,i=eg.getRendererType();this.container=a=w.doc.createElement(\"div\"),a.className=\"highcharts-tooltip-container \"+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\\s?/gm)||\"\"),om(a,{position:\"absolute\",top:\"1px\",pointerEvents:\"none\",zIndex:Math.max(this.options.style.zIndex||0,(e?.zIndex||0)+3)}),this.renderer=n=new i(a,0,0,e,void 0,void 0,n.styledMode)}if(r?this.label=n.g(\"tooltip\"):(this.label=n.label(\"\",t,e,o.shape||\"callout\",void 0,void 0,o.useHTML,void 0,\"tooltip\").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,\"stroke-width\":o.borderWidth||0}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?\"auto\":\"none\")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach((e,s)=>{t[s?\"ySetter\":\"xSetter\"]=o=>{e.call(t,i.distance),t[s?\"y\":\"x\"]=o,a&&(a.style[s?\"top\":\"left\"]=`${o}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow??!o.fixed).add()}return a&&!a.parentElement&&w.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=oc,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:a}=this,{inverted:n,plotLeft:h,plotTop:l,polar:d}=o,{plotX:c=0,plotY:p=0}=i,g={},u=n&&i.h||0,{height:f,width:m}=this.getPlayingField(),x=a.getChartPosition(),y=t=>t*x.scaleX,b=t=>t*x.scaleY,v=i=>{let a=\"x\"===i;return[i,a?m:f,a?t:e].concat(r?[a?y(t):b(e),a?x.left-s+y(c+h):x.top-s+b(p+l),0,a?m:f]:[a?t:e,a?c+h:p+l,a?h:l,a?h+o.plotWidth:l+o.plotHeight])},k=v(\"y\"),w=v(\"x\"),M,S=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(S=!S);let T=!this.followPointer&&oC(i.ttBelow,!d&&!n===S),C=function(t,e,i,o,a,n,h){let l=r?\"y\"===t?b(s):y(s):s,d=(i-o)/2,c=o<a-s,p=a+s+o<e,f=a-l-i+d,m=a+l-d;if(T&&p)g[t]=m;else if(!T&&c)g[t]=f;else if(c)g[t]=Math.min(h-o,f-u<0?f:f-u);else{if(!p)return g[t]=0,!1;g[t]=Math.max(n,m+u+i>e?m:m+u)}},A=function(t,e,i,o,r){if(r<s||r>e-s)return!1;r<i/2?g[t]=1:r>e-o/2?g[t]=e-o-2:g[t]=r-i/2},P=function(t){[k,w]=[w,k],M=t},L=()=>{!1!==C.apply(0,k)?!1!==A.apply(0,w)||M||(P(!0),L()):M?g.x=g.y=0:(P(!0),L())};return(n&&!d||this.len>1)&&P(),L(),g}getFixedPosition(t,e,i){let s=i.series,{chart:o,options:r,split:a}=this,n=r.position,h=n.relativeTo,l=r.shared||s?.yAxis?.isRadial&&(\"pane\"===h||!h)?\"plotBox\":h,d=\"chart\"===l?o.renderer:o[l]||o.getClipBox(s,!0);return{x:d.x+(d.width-t)*ov(n.align)+n.x,y:d.y+(d.height-e)*ov(n.verticalAlign)+(!a&&n.y||0)}}hide(t){let e=this;V.clearTimeout(this.hideTimer),t=oC(t,this.options.hideDelay),this.isHidden||(this.hideTimer=oL(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=oC(e.outside,!!(t.scrollablePixelsX||t.scrollablePixelsY))}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,\"highcharts-tooltip\")))}move(t,e,i,s){let{followPointer:o,options:r}=this,a=on(!o&&!this.isHidden&&!r.fixed&&r.animation),n=o||(this.len||0)>1,h={x:t,y:e};n?h.anchorX=h.anchorY=NaN:(h.anchorX=i,h.anchorY=s),a.step=()=>this.drawTracker(),this.getLabel().animate(h,a)}refresh(t,e){let{chart:i,options:s,pointer:o,shared:r}=this,a=oP(t),n=a[0],h=s.format,l=s.formatter||this.defaultFormatter,d=i.styledMode,c=this.allowShared;if(!s.enabled||!n.series)return;V.clearTimeout(this.hideTimer),this.allowShared=!(!ok(t)&&t.series&&t.series.noSharedTooltip),c=c&&!this.allowShared,this.followPointer=!this.split&&n.series.tooltipOptions.followPointer;let p=this.getAnchor(t,e),g=p[0],u=p[1];r&&this.allowShared&&(o.applyInactiveState(a),a.forEach(t=>t.setState(\"hover\")),n.points=a),this.len=a.length;let f=oS(h)?oh(h,n,i):l.call(n,this);n.points=void 0;let m=n.series;if(this.distance=oC(m.tooltipOptions.distance,16),!1===f)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(f,a);else{let t=g,r=u;if(e&&o.isDirectTouch&&(t=e.chartX-i.plotLeft,r=e.chartY-i.plotTop),!(i.polar||!1===m.options.clip||a.some(e=>o.isDirectTouch||e.series.shouldShowTooltip(t,r))))return void this.hide();{let t=this.getLabel(c&&this.tt||{});(!s.style.width||d)&&t.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+\"px\"}),t.attr({class:this.getClassName(n),text:f&&f.join?f.join(\"\"):f}),this.outside&&t.attr({x:of(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),d||t.attr({stroke:s.borderColor||n.color||m.color||\"#666666\"}),this.updatePosition({plotX:g,plotY:u,negative:n.negative,ttBelow:n.ttBelow,series:m,h:p[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}ob(this,\"refresh\")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:a,plotLeft:n,plotTop:h,scrollablePixelsY:l=0,scrollablePixelsX:d,styledMode:c},distance:p,options:g,options:{fixed:u,position:f,positioner:m},pointer:x}=i,{scrollLeft:y=0,scrollTop:b=0}=s.scrollablePlotArea?.scrollingContainer||{},v=i.outside&&\"number\"!=typeof d?oc.documentElement.getBoundingClientRect():{left:y,right:y+o,top:b,bottom:b+r},k=i.getLabel(),w=this.renderer||s.renderer,M=!!s.xAxis[0]?.opposite,{left:S,top:T}=x.getChartPosition(),C=m||u,A=h+b,P=0,L=a-l,O=function(t,e,s,o=[0,0],r=!0){let a,n;if(s.isHeader)n=M?0:L,a=of(o[0]-t/2,v.left,v.right-t-(i.outside?S:0));else if(u&&s){let o=i.getFixedPosition(t,e,s);a=o.x,n=o.y-A}else n=o[1]-A,a=of(a=r?o[0]-t-p:o[0]+p,r?a:v.left,v.right);return{x:a,y:n}};oS(t)&&(t=[!1,t]);let E=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&\"\"!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:a,series:{}},l=r.isHeader,d=l?i:r.series,f=d.tt=function(t,e,s){let o=t,{isHeader:r,series:a}=e,n=a.tooltipOptions||g;if(!o){let t={padding:n.padding,r:n.borderRadius};c||(t.fill=n.backgroundColor,t[\"stroke-width\"]=n.borderWidth??(u&&!r?0:1)),o=w.label(\"\",0,0,n[r?\"headerShape\":\"shape\"]||(u&&!r?\"rect\":\"callout\"),void 0,void 0,n.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(k)}return o.isActive=!0,o.attr({text:s}),c||o.css(n.style).attr({stroke:n.borderColor||e.color||a.color||\"#333333\"}),o}(d.tt,r,s.toString()),x=f.getBBox(),y=x.width+f.strokeWidth();l&&(P=x.height,L+=P,M&&(A-=P));let{anchorX:b,anchorY:S}=function(t){let e,i,{isHeader:s,plotX:o=0,plotY:r=0,series:l}=t;if(s)e=Math.max(n+o,n),i=h+a/2;else{let{xAxis:t,yAxis:s}=l;e=t.pos+of(o,-p,t.len+p),l.shouldShowTooltip(0,s.pos-h+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=of(e,v.left-p,v.right+p),anchorY:i}}(r);if(\"number\"==typeof S){let e=x.height+1,s=(m||O).call(i,y,e,r,[b,S]);t.push({align:C?0:void 0,anchorX:b,anchorY:S,boxWidth:y,point:r,rank:oC(s.rank,+!!l),size:e,target:s.y,tt:f,x:s.x})}else f.isActive=!1}return t},[]);!C&&E.some(t=>{let{outside:e}=i,s=(e?S:0)+t.anchorX;return s<v.left&&s+t.boxWidth<v.right||s<S-v.left+t.boxWidth&&v.right-s>s})&&(E=E.map(t=>{let{x:e,y:i}=O.call(this,t.boxWidth,t.size,t.point,[t.anchorX,t.anchorY],!1);return oy(t,{target:i,x:e})})),i.cleanSplit(),og(E,L);let I={left:S,right:S};E.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&S+e<I.left&&(I.left=S+e),!o&&i.outside&&I.left+s>I.right&&(I.right=S+e))}),E.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:a}}=t,n={visibility:void 0===r?\"hidden\":\"inherit\",x:e,y:(r||0)+A+(u&&f.y||0),anchorX:s,anchorY:o};if(i.outside&&e<s){let t=S-I.left;t>0&&(a||(n.x=e+t,n.anchorX=s+t),a&&(n.x=(I.right-I.left)/2,n.anchorX=s+t))}t.tt.attr(n)});let{container:D,outside:B,renderer:N}=i;if(B&&D&&N){let{width:t,height:e,x:i,y:s}=k.getBBox();N.setSize(t+i,e+s,!1),D.style.left=I.left+\"px\",D.style.top=T+\"px\"}op&&k.attr({opacity:1===k.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},o=this.getAnchor(i),r=e.getBBox();o[0]+=t.plotLeft-(e.translateX||0),o[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,o[0]),s.y=Math.min(0,o[1]),s.width=o[0]<0?Math.max(Math.abs(o[0]),r.width-o[0]):Math.max(Math.abs(o[0]),r.width),s.height=o[1]<0?Math.max(Math.abs(o[1]),r.height-Math.abs(o[1])):Math.max(Math.abs(o[1]),r.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass(\"highcharts-tracker\").add(e),t.styledMode||this.tracker.attr({fill:\"rgba(0,0,0,0)\"}))}styledModeFormat(t){return t.replace('style=\"font-size: 0.8em\"','class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g,'class=\"highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}\"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o?.dateTime,a={isFooter:e,point:t},n=s.xDateFormat||\"\",h=s[e?\"footerFormat\":\"headerFormat\"];return ob(this,\"headerFormatter\",a,function(e){if(r&&!n&&ow(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(oM(n)){let t=n;od[0]=e=>i.chart.time.dateFormat(t,e),n=\"%0\"}(t.tooltipDateKeys||[\"key\"]).forEach(t=>{h=h.replace(RegExp(\"point\\\\.\"+t+\"([ \\\\)}])\"),`(point.${t}:${n})$1`)})}i.chart.styledMode&&(h=this.styledModeFormat(h)),e.text=oh(h,t,this.chart)}),a.text||\"\"}update(t){this.destroy(),this.init(this.chart,oT(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:n=0,width:h=0}=this.getLabel(),{fixed:l,positioner:d}=o,{left:c,top:p,scaleX:g,scaleY:u}=r.getChartPosition(),f=(d||l&&this.getFixedPosition||this.getPosition).call(this,h,n,t),m=w.doc,x=(t.plotX||0)+e.plotLeft,y=(t.plotY||0)+e.plotTop,b;if(a&&i){if(d||l){let{scrollLeft:t=0,scrollTop:i=0}=e.scrollablePlotArea?.scrollingContainer||{};f.x+=t+c-s,f.y+=i+p-s}b=(o.borderWidth||0)+2*s+2,a.setSize(of(h+b,0,m.documentElement.clientWidth)-1,n+b,!1),(1!==g||1!==u)&&(om(i,{transform:`scale(${g}, ${u})`}),x*=g,y*=u),x+=c-f.x,y+=p-f.y}this.move(Math.round(f.x),Math.round(f.y||0),x,y)}}!function(t){t.compose=function(e){oA(ol,\"Core.Tooltip\")&&ou(e,\"afterInit\",function(){let e=this.chart;e.options.tooltip&&(e.tooltip=new t(e,e.options.tooltip,this))})}}(oO||(oO={}));let oE=oO,{animObject:oI}=tU,{defaultOptions:oD}=tv,{format:oB}=ep,{addEvent:oN,crisp:oz,erase:oR,extend:oW,fireEvent:oH,getNestedProperty:oX,isArray:oF,isFunction:oG,isNumber:oj,isObject:oY,merge:oU,pick:o$,syncTimeout:oV,removeEvent:oZ,uniqueKey:o_}=V;class oq{animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach(function(i){t[i]=t[i].animate(\"dataLabel\"===i?{x:t[i].startXPos,y:t[i].startYPos,opacity:0}:e)}),i.plural.forEach(function(e){t[e].forEach(function(e){e.element&&e.animate(oW({x:t.startXPos},e.startYPos?{x:e.startXPos,y:e.startYPos}:{}))})})}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return oW(this,t=oq.prototype.optionsToObject.call(this,t)),this.options=this.options?oW(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=oq.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state=\"select\"),\"name\"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i?this.x=e??i.autoIncrement():oj(t.x)&&i.options.relativeXValue?this.x=i.autoIncrement(t.x):\"string\"==typeof this.x&&(e??(e=i.chart.time.parse(this.x)),oj(e)&&(this.x=e)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?\"null\":\"point\",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,o=i.hoverPoints,r=oI(t.series.chart.renderer.globalAnimation),a=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(oZ(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),o&&(t.setState(),oR(o,t),o.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s?.enabled?(this.animateBeforeDestroy(),oV(a,r.duration)):a(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach(function(t){e[t]=e[t].destroy()}),i.plural.forEach(function(t){e[t].forEach(function(t){t?.element&&t.destroy()}),delete e[t]})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),\"click\"===t&&o.allowPointSelect&&(i=function(t){!s.destroyed&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),oH(s,t,e,i)}getClassName(){return\"highcharts-point\"+(this.selected?\" highcharts-point-select\":\"\")+(this.negative?\" highcharts-negative\":\"\")+(this.isNull?\" highcharts-null-point\":\"\")+(void 0!==this.colorIndex?\" highcharts-color-\"+this.colorIndex:\"\")+(this.options.className?\" \"+this.options.className:\"\")+(this.zone?.className?\" \"+this.zone.className.replace(\"highcharts-negative\",\"\"):\"\")}getGraphicalProps(t){let e,i,s=this,o=[],r={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&o.push(\"graphic\",\"connector\"),t.dataLabel&&o.push(\"dataLabel\",\"dataLabelPath\",\"dataLabelUpper\"),i=o.length;i--;)s[e=o[i]]&&r.singular.push(e);return[\"graphic\",\"dataLabel\"].forEach(function(e){let i=e+\"s\";t[e]&&s[i]&&r.plural.push(i)}),r}getNestedProperty(t){if(t)return 0===t.indexOf(\"custom.\")?oX(t,this.options):this[t]}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||\"y\",s,o=0;for(s=e[0];this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s?.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix=\"point\",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=o_()),this.resolveColor(),this.dataLabelOnNull??(this.dataLabelOnNull=t.options.nullInteraction),t.chart.pointCount++,oH(this,\"afterInit\")}isValid(){return(oj(this.x)||this.x instanceof Date)&&oj(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||[\"y\"],o=s.length,r={},a,n=0,h=0;if(oj(t)||null===t)r[s[0]]=t;else if(oF(t))for(!i&&t.length>o&&(\"string\"==(a=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r.name=t[0]:\"number\"===a&&(r.x=t[0]),n++);h<o;)i&&void 0===t[n]||(s[h].indexOf(\".\")>0?oq.prototype.setNestedProperty(r,t[n],s[h]):r[s[h]]=t[n]),n++,h++;else\"object\"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return r}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:o,xAxis:r,yAxis:a}=s,n=0,h=0;if(oj(i)&&oj(e))return t&&(n=r?r.pos:o.plotLeft,h=a?a.pos:o.plotTop),o.inverted&&r&&a?[a.len-e+h,r.len-i+n]:[i+n,e+h]}}resolveColor(){let t=this.series,e=t.chart.options.chart,i=t.chart.styledMode,s,o,r=e.colorCount,a;delete this.nonZonedColor,t.options.colorByPoint?(i||(s=(o=t.options.colors||t.chart.options.colors)[t.colorCounter],r=o.length),a=t.colorCounter,t.colorCounter++,t.colorCounter===r&&(t.colorCounter=0)):(i||(s=t.color),a=t.colorIndex),this.colorIndex=o$(this.options.colorIndex,a),this.color=o$(this.options.color,s)}setNestedProperty(t,e,i){return i.split(\".\").reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:oY(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=[\"y\"],tooltipOptions:s}=this.series,{valueDecimals:o=\"\",valuePrefix:r=\"\",valueSuffix:a=\"\"}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e=\"{point.\"+e,(r||a)&&(t=t.replace(RegExp(e+\"}\",\"g\"),r+e+\"}\"+a)),t=t.replace(RegExp(e+\"}\",\"g\"),e+\":,.\"+o+\"f}\")}),oB(t,this,e)}update(t,e,i,s){let o,r=this,a=r.series,n=r.graphic,h=a.chart,l=a.options;function d(){r.applyOptions(t);let s=n&&r.hasMockGraphic,d=null===r.y?!s:s;n&&d&&(r.graphic=n.destroy(),delete r.hasMockGraphic),oY(t,!0)&&(n?.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=n.destroy()),t?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index;let c={};for(let t of a.dataColumnKeys())c[t]=r[t];a.dataTable.setRow(c,o),l.data[o]=oY(l.data[o],!0)||oY(t,!0)?r.options:o$(t,l.data[o]),a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(h.isDirtyBox=!0),\"point\"===l.legendType&&(h.isDirtyLegend=!0),e&&h.redraw(i)}e=o$(e,!0),!1===s?d():r.firePointEvent(\"update\",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=o$(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?\"select\":\"unselect\",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&\"select\"),e||o.getSelectedPoints().forEach(function(t){let e=t.series;t.selected&&t!==i&&(t.selected=t.options.selected=!1,e.options.data[e.data.indexOf(t)]=t.options,t.setState(o.hoverPoints&&e.options.inactiveOtherPoints?\"inactive\":\"\"),t.firePointEvent(\"unselect\"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent(\"mouseOut\"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=oU(this.series.options.point,this.options),i=e.events?.[t];oG(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=oN(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(oZ(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states[t||\"normal\"]||{},r=oD.plotOptions[i.type].marker&&i.options.marker,a=r&&!1===r.enabled,n=r?.states?.[t||\"normal\"]||{},h=!1===n.enabled,l=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,g,u,f,m=i.stateMarkerGraphic,x;if((t=t||\"\")===this.state&&!e||this.selected&&\"select\"!==t||!1===o.enabled||t&&(h||a&&!1===n.enabled)||t&&l.states&&l.states[t]&&!1===l.states[t].enabled)return;if(this.state=t,c&&(g=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass(\"highcharts-point-\"+s),t&&this.graphic.addClass(\"highcharts-point-\"+t),!d.styledMode){u=i.pointAttribs(this,t),f=o$(d.options.chart.animation,o.animation);let e=u.opacity;i.options.inactiveOtherPoints&&oj(e)&&(this.dataLabels||[]).forEach(function(t){t&&!t.hasClass(\"highcharts-data-label-hidden\")&&(t.animate({opacity:e},f),t.connector&&t.connector.animate({opacity:e},f))}),this.graphic.animate(u,f)}g&&this.graphic.animate(g,o$(d.options.chart.animation,n.animation,r.animation)),m&&m.hide()}else t&&n&&(x=l.symbol||i.symbol,m&&m.currentSymbol!==x&&(m=m.destroy()),g&&(m?m[e?\"animate\":\"attr\"]({x:g.x,y:g.y}):x&&(i.stateMarkerGraphic=m=d.renderer.symbol(x,g.x,g.y,g.width,g.height,oU(r,n)).add(i.markerGroup),m.currentSymbol=x)),!d.styledMode&&m&&\"inactive\"!==this.state&&m.attr(i.pointAttribs(this,t))),m&&(m[t&&this.isInside?\"show\":\"hide\"](),m.element.point=this,m.addClass(this.getClassName(),!0));let y=o.halo,b=this.graphic||m,v=b?.visibility||\"inherit\";y?.size&&b&&\"hidden\"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?\"animate\":\"attr\"]({d:this.haloPath(y.size)}),p.attr({class:\"highcharts-halo highcharts-color-\"+o$(this.colorIndex,i.colorIndex)+(this.className?\" \"+this.className:\"\"),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(oW({fill:this.color||i.color,\"fill-opacity\":y.opacity},t6.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),oH(this,\"afterSetState\",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(oz(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let oK=oq,{parse:oJ}=tL,{charts:oQ,composed:o0,isTouchDevice:o1}=w,{addEvent:o2,attr:o3,css:o5,extend:o6,find:o9,fireEvent:o4,isNumber:o8,isObject:o7,objectEach:rt,offset:re,pick:ri,pushUnique:rs,splat:ro}=V;class rr{applyInactiveState(t=[]){let e=[];for(let i of(t.forEach(t=>{let i=t.series;e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&e.push.apply(e,i.linkedSeries),i.navigatorSeries&&e.push(i.navigatorSeries),i.boosted&&i.markerGroup&&e.push.apply(e,this.chart.series.filter(t=>t.markerGroup===i.markerGroup))}),this.chart.series)){let t=i.options;t.states?.inactive?.enabled!==!1&&(-1===e.indexOf(i)?i.setState(\"inactive\",!0):t.inactiveOtherPoints&&i.setAllPointsToState(\"inactive\"))}}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!w.chartCount&&(rr.unbindDocumentMouseUp.forEach(t=>t.unbind()),rr.unbindDocumentMouseUp.length=0,rr.unbindDocumentTouchEnd&&(rr.unbindDocumentTouchEnd=rr.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),rt(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:\"rect\"};return o4(this,\"getSelectionMarkerAttrs\",i,i=>{let s,{chart:o,zoomHor:r,zoomVert:a}=this,{mouseDownX:n=0,mouseDownY:h=0}=o,l=i.attrs;l.x=o.plotLeft,l.y=o.plotTop,l.width=r?1:o.plotWidth,l.height=a?1:o.plotHeight,r&&(l.width=Math.max(1,Math.abs(s=t-n)),l.x=(s>0?0:s)+n),a&&(l.height=Math.max(1,Math.abs(s=e-h)),l.y=(s>0?0:s)+h)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:a}=e.options.chart,n=e.plotLeft,h=e.plotTop,l=e.plotWidth,d=e.plotHeight,c=o7(o)?o.enabled:o,p=r&&t[`${r}Key`],g=t.chartX,u=t.chartY,f,m=this.selectionMarker;if((!m||!m.touch)&&(g<n?g=n:g>n+l&&(g=n+l),u<h?u=h:u>h+d&&(u=h+d),this.hasDragged=Math.sqrt(Math.pow(i-g,2)+Math.pow(s-u,2)),this.hasDragged>10)){f=e.isInsidePlot(i-n,s-h,{visiblePlotOnly:!0});let{shapeType:r,attrs:l}=this.getSelectionMarkerAttrs(g,u);this.hasZoom&&f&&!p&&!m&&(this.selectionMarker=m=e.renderer[r](),m.attr({class:\"highcharts-selection-marker\",zIndex:7}).add(),e.styledMode||m.attr({fill:a||oJ(\"#334eff\").setOpacity(.25).get()})),m&&m.attr(l),f&&!m&&c&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return o4(this,\"getSelectionBox\",e),e.result}drop(t){let e,{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(\"xAxis\"===t.coll&&this.zoomX||\"yAxis\"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}o8(i.index)&&(this.selectionMarker=s.destroy())}i&&o8(i.index)&&(o5(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[],this.hasPinchMoved=!1)}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){let o=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf(\"y\"),r=t.searchPoint(i,o);o7(r,!0)&&r.series&&(!o7(s,!0)||function(t,i){let s,o=t.distX-i.distX,r=t.dist-i.dist,a=i.series.group?.zIndex-t.series.group?.zIndex;return 0!==o&&e?o:0!==r?r:0!==a?a:t.series.index>i.series.index?-1:1}(s,r)>0)&&(s=r)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,a=t.plotY||0;return t.isNode&&o&&o8(o.x)&&o8(o.y)&&(r=o.x,a=o.y),e?{chartX:s.len+s.pos-a,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:a+s.pos}}if(o?.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=re(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?\"xAxis\":\"yAxis\"].push({axis:i,value:i.toValue(t[i.horiz?\"chartX\":\"chartY\"])});return e}getHoverData(t,e,i,s,o,r){let a=[],n=function(t){return t.visible&&!(!o&&t.directTouch)&&ri(t.options.enableMouseTracking,!0)},h=e,l,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};o4(this,\"beforeGetHoverData\",d),l=h&&!h.stickyTracking?[h]:i.filter(t=>t.stickyTracking&&(d.filter||n)(t));let c=s&&t||!r?t:this.findNearestKDPoint(l,o,r);return h=c?.series,c&&(o&&!h.noSharedTooltip?(l=i.filter(function(t){return d.filter?d.filter(t):n(t)&&!t.noSharedTooltip})).forEach(function(t){let e=t.options?.nullInteraction,i=o9(t.points,function(t){return t.x===c.x&&(!t.isNull||!!e)});o7(i)&&(t.boosted&&t.boost&&(i=t.boost.getPoint(i)),a.push(i))}):a.push(c)),o4(this,\"afterGetHoverData\",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:h,hoverPoints:a}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,\"highcharts-tooltip\")||this.inClass(i,\"highcharts-series-\"+s.index)&&this.inClass(i,\"highcharts-tracker\")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=o3(i,\"class\")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf(\"highcharts-container\"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),o4(this,\"afterInit\")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):ri(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return o6(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,\"highcharts-tracker\")?(o4(i.series,\"click\",o6(s,{point:i})),e.hoverPoint&&i.firePointEvent(\"click\",s)):(o6(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&o4(e,\"click\",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),w.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=oQ[ri(rr.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,\"highcharts-tooltip\")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),(\"mousedown\"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.exporting?.openMenu&&(this.inClass(s.target,\"highcharts-tracker\")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!i?.shouldStickOnContact(s)&&(this.inClass(s.target,\"highcharts-no-tooltip\")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i?.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,\"highcharts-tracker\")||this.reset()}onDocumentMouseUp(t){t?.touches&&this.hasPinchMoved&&t?.preventDefault?.(),oQ[ri(rr.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],t=>e.normalize(t)),a=r.length,n=1===a&&(e.inClass(t.target,\"highcharts-tracker\")&&i.runTrackerClick||e.runChartClick),h=i.tooltip,l=1===a&&ri(h?.options.followTouchMove,!0);a>1?e.initiated=!0:l&&(e.initiated=!1),s&&e.initiated&&!n&&!1!==t.cancelable&&t.preventDefault(),\"touchstart\"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):l?this.runPointActions(e.normalize(t)):o&&(o4(i,\"touchpan\",{originalEvent:t,touches:r},()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:e(r),from:e(o),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,a=i.tooltip,n=a?.shared?r:o;t&&n&&ro(n).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?a&&n&&ro(n).length&&(a.refresh(n),a.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),a&&a.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip?.options.enabled?s.tooltip:void 0,a=!!r&&r.shared,n=e||s.hoverPoint,h=n?.series||s.hoverSeries,l=(!t||\"touchmove\"!==t.type)&&(!!e||h?.directTouch&&this.isDirectTouch),d=this.getHoverData(n,h,o,l,a,t);n=d.hoverPoint,h=d.hoverSeries;let c=d.hoverPoints,p=h?.tooltipOptions.followPointer&&!h.tooltipOptions.split,g=a&&h&&!h.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r?.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==h&&h.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState(\"hover\")}),s.hoverPoint&&s.hoverPoint.firePointEvent(\"mouseOut\"),!n.series)return;s.hoverPoints=c,s.hoverPoint=n,n.firePointEvent(\"mouseOver\",void 0,()=>{r&&n&&r.refresh(g?c:n,t)})}else if(p&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=o2(s.container.ownerDocument,\"mousemove\",t=>oQ[rr.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i,o=e.crosshair?.snap??!0;o&&((i=s.hoverPoint)&&i.series[e.coll]===e||(i=o9(c,t=>t.series?.[e.coll]===e))),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(o2(t,\"mouseenter\",this.onContainerMouseEnter.bind(this)),o2(t,\"mouseleave\",this.onContainerMouseLeave.bind(this))),rr.unbindDocumentMouseUp.some(t=>t.doc===e)||rr.unbindDocumentMouseUp.push({doc:e,unbind:o2(e,\"mouseup\",this.onDocumentMouseUp.bind(this))});let i=this.chart.renderTo.parentElement;for(;i&&\"BODY\"!==i.tagName;)this.eventsToUnbind.push(o2(i,\"scroll\",()=>{delete this.chartPosition})),i=i.parentElement;this.eventsToUnbind.push(o2(t,\"touchstart\",this.onContainerTouchStart.bind(this),{passive:!1}),o2(t,\"touchmove\",this.onContainerTouchMove.bind(this),{passive:!1})),rr.unbindDocumentTouchEnd||(rr.unbindDocumentTouchEnd=o2(e,\"touchend\",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),o2(this.chart,\"redraw\",this.setPointerCapture.bind(this))}setPointerCapture(){if(!o1)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=ri(e.options.tooltip?.followTouchMove,!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf(\"y\")>-1);!this.hasPointerCapture&&s?(t.push(o2(i,\"pointerdown\",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),o2(i,\"pointermove\",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),e.styledMode||o5(i,{\"touch-action\":\"none\"}),i.className+=\" highcharts-no-touch-action\",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,e.styledMode||o5(i,{\"touch-action\":ri(e.options.chart.style?.[\"touch-action\"],\"manipulation\")}),i.className=i.className.replace(\" highcharts-no-touch-action\",\"\"),this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=w.charts[ri(rr.hoverChartIndex,-1)];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&Object.assign({},t,s),i.pointer?.onContainerMouseLeave(t||s)}i?.mouseIsDown||(rr.hoverChartIndex=e.index)}touch(t,e){let i,{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.exporting?.openMenu?(e&&this.runPointActions(t),\"touchmove\"===t.type&&(this.hasPinchMoved=i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),ri(i,!0)&&this.pinch(t)):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||\"\",o,r;/touch/.test(t.type)&&(s=ri(e.zooming.pinchType,s)),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=o||r}}rr.unbindDocumentMouseUp=[],function(t){t.compose=function(e){rs(o0,\"Core.Pointer\")&&o2(e,\"beforeRender\",function(){this.pointer=new t(this,this.options)})}}(rr||(rr={}));let ra=rr;!function(t){t.setLength=function(t,e,i){return Array.isArray(t)?(t.length=e,t):t[i?\"subarray\":\"slice\"](0,e)},t.splice=function(t,e,i,s,o=[]){if(Array.isArray(t))return Array.isArray(o)||(o=Array.from(o)),{removed:t.splice(e,i,...o),array:t};let r=Object.getPrototypeOf(t).constructor,a=t[s?\"subarray\":\"slice\"](e,e+i),n=new r(t.length-i+o.length);return n.set(t.subarray(0,e),0),n.set(o,e),n.set(t.subarray(e+i),e+o.length),{removed:a,array:n}}}(d||(d={}));let{setLength:rn,splice:rh}=d,{fireEvent:rl,objectEach:rd,uniqueKey:rc}=V,rp=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||rc(),this.modified=this,this.rowCount=0,this.versionTag=rc();let e=0;rd(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,rd(this.columns,(e,i)=>{e.length!==t&&(this.columns[i]=rn(e,t))})}deleteRows(t,e=1){if(e>0&&t<this.rowCount){let i=0;rd(this.columns,(s,o)=>{this.columns[o]=rh(s,t,e).array,i=s.length}),this.rowCount=i}rl(this,\"afterDeleteRows\",{rowIndex:t,rowCount:e}),this.versionTag=rc()}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;rd(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(rl(this,\"afterSetColumns\"),this.versionTag=rc())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;rd(t,(t,a)=>{let n=o[a]||s?.addColumns!==!1&&Array(r);n&&(i?n=rh(n,e,0,!0,[t]).array:n[e]=t,o[a]=n)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(rl(this,\"afterSetRows\"),this.versionTag=rc())}},{extend:rg,merge:ru,pick:rf}=V;!function(t){function e(t,e,i){let s=this.legendItem=this.legendItem||{},{chart:o,options:r}=this,{baseline:a=0,symbolWidth:n,symbolHeight:h}=t,l=this.symbol||\"circle\",d=h/2,c=o.renderer,p=s.group,g=a-Math.round((t.fontMetrics?.b||h)*(i?.4:.3)),u={},f,m=r.marker,x=0;if(o.styledMode||(u[\"stroke-width\"]=Math.min(r.lineWidth||0,24),r.dashStyle?u.dashstyle=r.dashStyle:\"square\"!==r.linecap&&(u[\"stroke-linecap\"]=\"round\")),s.line=c.path().addClass(\"highcharts-graph\").attr(u).add(p),i&&(s.area=c.path().addClass(\"highcharts-area\").add(p)),u[\"stroke-linecap\"]&&(x=Math.min(s.line.strokeWidth(),n)/2),n){let t=[[\"M\",x,g],[\"L\",n-x,g]];s.line.attr({d:t}),s.area?.attr({d:[...t,[\"L\",n-x,a],[\"L\",x,a]]})}if(m&&!1!==m.enabled&&n){let t=Math.min(rf(m.radius,d),d);0===l.indexOf(\"url\")&&(m=ru(m,{width:h,height:h}),t=0),s.symbol=f=c.symbol(l,n/2-t,g-t,2*t,2*t,rg({context:\"legend\"},m)).addClass(\"highcharts-point\").add(p),f.isMarker=!0}}t.areaMarker=function(t,i){e.call(this,t,i,!0)},t.lineMarker=e,t.rectangle=function(t,e){let i=e.legendItem||{},s=t.options,o=t.symbolHeight,r=s.squareSymbol,a=r?o:t.symbolWidth;i.symbol=this.chart.renderer.rect(r?(t.symbolWidth-o)/2:0,t.baseline-o+1,a,o,rf(t.options.symbolRadius,o/2)).addClass(\"highcharts-point\").attr({zIndex:3}).add(i.group)}}(c||(c={}));let rm=c,{defaultOptions:rx}=tv,{extend:ry,extendClass:rb,merge:rv}=V;!function(t){function e(e,i){let s=rx.plotOptions||{},o=i.defaultOptions,r=i.prototype;return r.type=e,r.pointClass||(r.pointClass=oK),!t.seriesTypes[e]&&(o&&(s[e]=o),t.seriesTypes[e]=i,!0)}t.seriesTypes=w.seriesTypes,t.registerSeriesType=e,t.seriesType=function(i,s,o,r,a){let n=rx.plotOptions||{};if(s=s||\"\",n[i]=rv(n[s],o),delete t.seriesTypes[i],e(i,rb(t.seriesTypes[s]||r1,r)),t.seriesTypes[i].prototype.type=i,a){class e extends oK{}ry(e.prototype,a),t.seriesTypes[i].prototype.pointClass=e}return t.seriesTypes[i]}}(p||(p={}));let rk=p,{animObject:rw,setAnimation:rM}=tU,{defaultOptions:rS}=tv,{registerEventOptions:rT}=si,{svg:rC,win:rA}=w,{seriesTypes:rP}=rk,{format:rL}=ep,{arrayMax:rO,arrayMin:rE,clamp:rI,correctFloat:rD,crisp:rB,defined:rN,destroyObjectProperties:rz,diffObjects:rR,erase:rW,error:rH,extend:rX,find:rF,fireEvent:rG,getClosestDistance:rj,getNestedProperty:rY,insertItem:rU,isArray:r$,isNumber:rV,isString:rZ,merge:r_,objectEach:rq,pick:rK,removeEvent:rJ,syncTimeout:rQ}=V;class r0{constructor(){this.zoneAxis=\"y\"}init(t,e){let i;rG(this,\"init\",{options:e}),this.dataTable??(this.dataTable=new rp);let s=t.series;this.eventsToUnbind=[],this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.linkedSeries=[],this.bindAxes(),rX(this,{name:o.name,state:\"\",visible:r,selected:!0===o.selected}),rT(this,o);let a=o.events;(a?.click||o.point?.events?.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=rK(i?._i,-1)+1,this.opacity=this.options.opacity,t.orderItems(\"series\",rU(this,s)),o.dataSorting?.enabled?this.setDataSortingOptions():this.points||this.data||this.setData(o.data,!1),rG(this,\"afterInit\")}is(t){return rP[t]&&this instanceof rP[t]}bindAxes(){let t,e=this,i=e.options,s=e.chart;rG(this,\"bindAxes\",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,(rK(i[o],0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(rU(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||rH(18,!0,s)})}),rG(this,\"afterBindAxes\")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e,i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,a=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=rK(this.pointInterval,i.pointInterval,1),o&&rV(t)&&(e*=t),s){let t=r.toParts(a);\"day\"===s?t[2]+=e:\"month\"===s?t[1]+=e:\"year\"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-a}return o&&rV(t)?a+e:(this.xIncrement=a+e,a)}setDataSortingOptions(){let t=this.options;rX(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),rN(t.pointRange)||(t.pointRange=1)}setOptions(t){let e,i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=r_(t),a=i.styledMode,n={plotOptions:s,userOptions:r};rG(this,\"setOptions\",n);let h=n.plotOptions[this.type],l=o.plotOptions||{},d=l.series||{},c=rS.plotOptions[this.type]||{},p=l[this.type]||{};h.dataLabels=this.mergeArrays(c.dataLabels,h.dataLabels),this.userOptions=n.userOptions;let g=r_(h,s.series,p,r);this.tooltipOptions=r_(rS.tooltip,rS.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=rK(r.stickyTracking,p.stickyTracking,d.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||g.stickyTracking),null===h.marker&&delete g.marker,this.zoneAxis=g.zoneAxis||\"y\";let u=this.zones=(g.zones||[]).map(t=>({...t}));return(g.negativeColor||g.negativeFillColor)&&!g.zones&&(e={value:g[this.zoneAxis+\"Threshold\"]||g.threshold||0,className:\"highcharts-negative\"},a||(e.color=g.negativeColor,e.fillColor=g.negativeFillColor),u.push(e)),u.length&&rN(u[u.length-1].value)&&u.push(a?{}:{color:this.color,fillColor:this.fillColor}),rG(this,\"afterSetOptions\",{options:g}),g}getName(){return this.options.name??rL(this.chart.options.lang.seriesName,this,this.chart)}getCyclic(t,e,i){let s,o,r=this.chart,a=`${t}Index`,n=`${t}Counter`,h=i?.length||r.options.chart.colorCount;!e&&(rN(o=rK(\"color\"===t?this.options.colorIndex:void 0,this[a]))?s=o:(r.series.length||(r[n]=0),s=r[n]%h,r[n]+=1),i&&(e=i[s])),void 0!==s&&(this[a]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic(\"color\"):this.options.colorByPoint?this.color=\"#cccccc\":this.getCyclic(\"color\",this.options.color||rS.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic(\"symbol\",t.symbol,this.chart.options.symbols)}getColumn(t,e){return(e?this.dataTable.modified:this.dataTable).getColumn(t,!0)||[]}findPointIndex(t,e){let i,s,o,{id:r,x:a}=t,n=this.points,h=this.options.dataSorting,l=this.cropStart||0;if(r){let t=this.chart.get(r);t instanceof oK&&(i=t)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let e=e=>!e.touched&&e.index===t.index;if(h?.matchByName?e=e=>!e.touched&&e.name===t.name:this.options.relativeXValue&&(e=e=>!e.touched&&e.options.x===t.x),!(i=rF(n,e)))return}return i&&void 0!==(o=i?.index)&&(s=!0),void 0===o&&rV(a)&&(o=this.getColumn(\"x\").indexOf(a,e)),-1!==o&&void 0!==o&&this.cropped&&(o=o>=l?o-l:o),!s&&rV(o)&&n[o]?.touched&&(o=void 0),o}updateData(t,e){let{options:i,requireSorting:s}=this,o=i.dataSorting,r=this.points,a=[],n=t.length===r.length,h,l,d,c,p=!0;if(this.xIncrement=null,t.forEach((t,e)=>{let l,d=rN(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t)||{},{id:p,x:g}=d;p||rV(g)?(-1===(l=this.findPointIndex(d,c))||void 0===l?a.push(t):r[l]&&t!==i.data?.[l]?(r[l].update(t,!1,void 0,!1),r[l].touched=!0,s&&(c=l+1)):r[l]&&(r[l].touched=!0),(!n||e!==l||o?.enabled||this.hasDerivedData)&&(h=!0)):a.push(t)},this),h)for(l=r.length;l--;)(d=r[l])&&!d.touched&&d.remove?.(!1,e);else n&&!o?.enabled?(t.forEach((t,e)=>{t===r[e].y||r[e].destroyed||r[e].update(t,!1,void 0,!1)}),a.length=0):p=!1;if(r.forEach(t=>{t&&(t.touched=!1)}),!p)return!1;a.forEach(t=>{this.addPoint(t,!1,void 0,void 0,!1)},this);let g=this.getColumn(\"x\");return null===this.xIncrement&&g.length&&(this.xIncrement=rO(g),this.autoIncrement()),!0}dataColumnKeys(){return[\"x\",...this.pointArrayMap||[\"y\"]]}setData(t,e=!0,i,s){let o=this.points,r=o?.length||0,a=this.options,n=this.chart,h=a.dataSorting,l=this.xAxis,d=a.turboThreshold,c=this.dataTable,p=this.dataColumnKeys(),g=this.pointValKey||\"y\",u=(this.pointArrayMap||[]).length,f=a.keys,m,x,y=0,b=1,v;n.options.chart.allowMutatingData||(a.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,v=r_(!0,t));let k=(t=v||t||[]).length;if(h?.enabled&&(t=this.sortData(t)),n.options.chart.allowMutatingData&&!1!==s&&k&&r&&!this.cropped&&!this.hasGroupedData&&this.visible&&!this.boosted&&(x=this.updateData(t,i)),!x){this.xIncrement=null,this.colorCounter=0;let e=d&&!a.relativeXValue&&k>d;if(e){let i=this.getFirstValidPoint(t),s=this.getFirstValidPoint(t,k-1,-1),o=t=>!!(r$(t)&&(f||rV(t[0])));if(rV(i)&&rV(s)){let e=[],i=[];for(let s of t)e.push(this.autoIncrement()),i.push(s);c.setColumns({x:e,[g]:i})}else if(o(i)&&o(s))if(u){let e=+(i.length===u),s=Array(p.length).fill(0).map(()=>[]);for(let i of t){e&&s[0].push(this.autoIncrement());for(let t=e;t<=u;t++)s[t]?.push(i[t-e])}c.setColumns(p.reduce((t,e,i)=>(t[e]=s[i],t),{}))}else{f&&(y=f.indexOf(\"x\"),b=f.indexOf(\"y\"),y=y>=0?y:0,b=b>=0?b:1),1===i.length&&(b=0);let e=[],s=[];if(y===b)for(let i of t)e.push(this.autoIncrement()),s.push(i[b]);else for(let i of t)e.push(i[y]),s.push(i[b]);c.setColumns({x:e,[g]:s})}else e=!1}if(!e){let e=p.reduce((t,e)=>(t[e]=[],t),{});for(m=0;m<k;m++){let i=this.pointClass.prototype.applyOptions.apply({series:this},[t[m]]);for(let t of p)e[t][m]=i[t]}c.setColumns(e)}for(rZ(this.getColumn(\"y\")[0])&&rH(14,!0,n),this.data=[],this.options.data=this.userOptions.data=t,m=r;m--;)o[m]?.destroy();l&&(l.minRange=l.userMinRange),this.isDirty=n.isDirtyBox=!0,this.isDirtyData=!!o,i=!1}\"point\"===a.legendType&&(this.processData(),this.generatePoints()),e&&n.redraw(i)}sortData(t){let e=this,i=e.options.dataSorting.sortKey||\"y\",s=function(t,e){return rN(e)&&t.pointClass.prototype.optionsToObject.call({series:t},e)||{}};return t.forEach(function(i,o){t[o]=s(e,i),t[o].index=o},this),t.concat().sort((t,e)=>{let s=rY(i,t),o=rY(i,e);return o<s?-1:+(o>s)}).forEach(function(t,e){t.x=e},this),e.linkedSeries&&e.linkedSeries.forEach(function(e){let i=e.options,o=i.data;!i.dataSorting?.enabled&&o&&(o.forEach(function(i,r){o[r]=s(e,i),t[r]&&(o[r].x=t[r].x,o[r].index=r)}),e.setData(o,!1))}),t}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,a=o.cropThreshold,n=t||e.getExtremesFromAll,h=r?.logarithmic,l=i.rowCount,d,c,p=0,g,u,f,m=e.getColumn(\"x\"),x=i,y=!1;return r&&(u=(g=r.getExtremes()).min,f=g.max,y=!!(r.categories&&!r.names.length),s&&e.sorted&&!n&&(!a||l>a||e.forceCrop)&&(m[l-1]<u||m[0]>f?x=new rp:e.getColumn(e.pointValKey||\"y\").length&&(m[0]<u||m[l-1]>f)&&(x=(d=this.cropData(i,u,f)).modified,p=d.start,c=!0))),m=x.getColumn(\"x\")||[],{modified:x,cropped:c,cropStart:p,closestPointRange:rj([h?m.map(h.log2lin):m],()=>e.requireSorting&&!y&&rH(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,rG(this,\"afterProcessData\")}cropData(t,e,i){let s=t.getColumn(\"x\",!0)||[],o=s.length,r={},a,n,h=0,l=o;for(a=0;a<o;a++)if(s[a]>=e){h=Math.max(0,a-1);break}for(n=a;n<o;n++)if(s[n]>i){l=n+1;break}for(let e of this.dataColumnKeys()){let i=t.getColumn(e,!0);i&&(r[e]=i.slice(h,l))}return{modified:new rp({columns:r}),start:h,end:l}}generatePoints(){let t=this.options,e=this.processedData||t.data,i=this.dataTable.modified,s=this.getColumn(\"x\",!0),o=this.pointClass,r=i.rowCount,a=this.cropStart||0,n=this.hasGroupedData,h=t.keys,l=[],d=t.dataGrouping?.groupAll?a:0,c=this.xAxis?.categories,p=this.pointArrayMap||[\"y\"],g=this.dataColumnKeys(),u,f,m,x,y=this.data,b;if(!y&&!n){let t=[];t.length=e?.length||0,y=this.data=t}for(h&&n&&(this.options.keys=!1),x=0;x<r;x++)f=a+x,n?((m=new o(this,i.getRow(x,g)||[])).dataGroup=this.groupMap[d+x],m.dataGroup?.options&&(m.options=m.dataGroup.options,rX(m,m.dataGroup.options),delete m.dataLabels)):(m=y[f],b=e?e[f]:i.getRow(x,p),m||void 0===b||(y[f]=m=new o(this,b,s[x]))),m&&(m.index=n?d+x:f,l[x]=m,m.category=c?.[m.x]??m.x,m.key=m.name??m.category);if(this.options.keys=h,y&&(r!==(u=y.length)||n))for(x=0;x<u;x++)x!==a||n||(x+=r),y[x]&&(y[x].destroyElements(),y[x].plotX=void 0);this.data=y,this.points=l,rG(this,\"afterGeneratePoints\")}getXExtremes(t){return{min:rE(t),max:rO(t)}}getExtremes(t,e){let{xAxis:i,yAxis:s}=this,o=e||this.getExtremesFromAll||this.options.getExtremesFromAll,r=o&&this.cropped?this.dataTable:this.dataTable.modified,a=r.rowCount,n=t||this.stackedYData,h=n?[n]:(this.keysAffectYAxis||this.pointArrayMap||[\"y\"])?.map(t=>r.getColumn(t,!0)||[])||[],l=this.getColumn(\"x\",!0),d=[],c=this.requireSorting&&!this.is(\"column\")?1:0,p=!!s&&s.positiveValuesOnly,g=o||this.cropped||!i,u,f,m,x=0,y=0;for(i&&(x=(u=i.getExtremes()).min,y=u.max),m=0;m<a;m++)if(f=l[m],g||(l[m+c]||f)>=x&&(l[m-c]||f)<=y)for(let t of h){let e=t[m];rV(e)&&(e>0||!p)&&d.push(e)}let b={activeYData:d,dataMin:rE(d),dataMax:rO(d)};return rG(this,\"afterGetExtremes\",{dataExtremes:b}),b}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o<s;){if(rN(t[o]))return t[o];o+=i}}translate(){this.generatePoints();let t=this.options,e=t.stacking,i=this.xAxis,s=this.enabledDataSorting,o=this.yAxis,r=this.points,a=r.length,n=this.pointPlacementToXValue(),h=!!n,l=t.threshold,d=t.startFromThreshold?l:0,c=t?.nullInteraction&&o.len,p,g,u,f,m=Number.MAX_VALUE;function x(t){return rI(t,-1e9,1e9)}for(p=0;p<a;p++){let t,a=r[p],y=a.x,b,v,k=a.y,w=a.low,M=e&&o.stacking?.stacks[(this.negStacks&&k<(d?0:l)?\"-\":\"\")+this.stackKey];a.plotX=rV(g=i.translate(y,!1,!1,!1,!0,n))?rD(x(g)):void 0,e&&this.visible&&M&&M[y]&&(f=this.getStackIndicator(f,y,this.index),!a.isNull&&f.key&&(v=(b=M[y]).points[f.key]),b&&r$(v)&&(w=v[0],k=v[1],w===d&&f.key===M[y].base&&(w=rK(rV(l)?l:o.min)),o.positiveValuesOnly&&rN(w)&&w<=0&&(w=void 0),a.total=a.stackTotal=rK(b.total),a.percentage=rN(a.y)&&b.total?a.y/b.total*100:void 0,a.stackY=k,this.irregularWidths||b.setOffset(this.pointXOffset||0,this.barW||0,void 0,void 0,void 0,this.xAxis))),a.yBottom=rN(w)?x(o.translate(w,!1,!0,!1,!0)):void 0,this.dataModify&&(k=this.dataModify.modifyValue(k,p)),rV(k)&&void 0!==a.plotX?t=rV(t=o.translate(k,!1,!0,!1,!0))?x(t):void 0:!rV(k)&&c&&(t=c),a.plotY=t,a.isInside=this.isPointInside(a),a.clientX=h?rD(i.translate(y,!1,!1,!1,!0,n)):g,a.negative=(a.y||0)<(l||0),a.isNull||!1===a.visible||(void 0!==u&&(m=Math.min(m,Math.abs(g-u))),u=g),a.zone=this.zones.length?a.getZone():void 0,!a.graphic&&this.group&&s&&(a.isNew=!0)}this.closestPointRangePx=m,rG(this,\"afterTranslate\")}getValidPoints(t,e,i){let s=this.chart;return(t||this.points||[]).filter(function(t){let{plotX:o,plotY:r}=t;return(!!i||!t.isNull&&!!rV(r))&&(!e||!!s.isInsidePlot(o,r,{inverted:s.inverted}))&&!1!==t.visible})}getSharedClipKey(){return this.sharedClipKey=(this.options.xAxis||0)+\",\"+(this.options.yAxis||0),this.sharedClipKey}setClip(){let{chart:t,group:e,markerGroup:i}=this,s=t.sharedClips,o=t.renderer,r=t.getClipBox(this),a=this.getSharedClipKey(),n=s[a];n?n.animate(r):s[a]=n=o.clipRect(r),e&&e.clip(!1===this.options.clip?void 0:n),i&&i.clip()}animate(t){let{chart:e,group:i,markerGroup:s}=this,o=e.inverted,r=rw(this.options.animation),a=[this.getSharedClipKey(),r.duration,r.easing,r.defer].join(\",\"),n=e.sharedClips[a],h=e.sharedClips[a+\"m\"];if(t&&i){let t=e.getClipBox(this);if(n)n.attr(\"height\",t.height);else{t.width=0,o&&(t.x=e.plotHeight),n=e.renderer.clipRect(t),e.sharedClips[a]=n;let i={x:-99,y:-99,width:o?e.plotWidth+199:99,height:o?99:e.plotHeight+199};h=e.renderer.clipRect(i),e.sharedClips[a+\"m\"]=h}i.clip(n),s?.clip(h)}else if(n&&!n.hasClass(\"highcharts-animating\")){let t=e.getClipBox(this),i=r.step;(s?.element.childNodes.length||e.series.length>1)&&(r.step=function(t,e){i&&i.apply(e,arguments),\"width\"===e.prop&&h?.element&&h.attr(o?\"height\":\"width\",t+99)}),n.addClass(\"highcharts-animating\").animate(t,r)}}afterAnimate(){this.setClip(),rq(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path=\"url(#${t.id})\"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,rG(this,\"afterAnimate\")}drawPoints(t=this.points){let e,i,s,o,r,a,n,h=this.chart,l=h.styledMode,{colorAxis:d,options:c}=this,p=c.marker,g=c.nullInteraction,u=this[this.specialGroup||\"markerGroup\"],f=this.xAxis,m=rK(p.enabled,!f||!!f.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e<t.length;e++){o=(s=(i=t[e]).graphic)?\"animate\":\"attr\",r=i.marker||{},a=!!i.marker;let c=i.isNull;if((m&&!rN(r.enabled)||r.enabled)&&(!c||g)&&!1!==i.visible){let t=rK(r.symbol,this.symbol,\"rect\");n=this.markerAttribs(i,i.selected&&\"select\"),this.enabledDataSorting&&(i.startXPos=f.reversed?-(n.width||0):f.width);let e=!1!==i.isInside;if(!s&&e&&((n.width||0)>0||i.hasImage)&&(i.graphic=s=h.renderer.symbol(t,n.x,n.y,n.width,n.height,a?r:p).add(u),this.enabledDataSorting&&h.hasRendered&&(s.attr({x:i.startXPos}),o=\"animate\")),s&&\"animate\"===o&&s[e?\"show\":\"hide\"](e).animate(n),s){let t=this.pointAttribs(i,l||!i.selected?void 0:\"select\");l?d&&s.css({fill:t.fill}):s[o](t)}s&&s.addClass(i.getClassName(),!0)}else s&&(i.graphic=s.destroy())}}markerAttribs(t,e){let i=this.options,s=i.marker,o=t.marker||{},r=o.symbol||s.symbol,a={},n,h,l=rK(o.radius,s?.radius);e&&(n=s.states[e],h=o.states&&o.states[e],l=rK(h?.radius,n?.radius,l&&l+(n?.radiusPlus||0))),t.hasImage=r&&0===r.indexOf(\"url\"),t.hasImage&&(l=0);let d=t.pos();return rV(l)&&d&&(i.crisp&&(d[0]=rB(d[0],t.hasImage?0:\"rect\"===r?s?.lineWidth||0:1)),a.x=d[0]-l,a.y=d[1]-l),l&&(a.width=a.height=2*l),a}pointAttribs(t,e){let i=this.options,s=i.marker,o=t?.options,r=o?.marker||{},a=o?.color,n=t?.color,h=t?.zone?.color,l,d,c=this.color,p,g,u=rK(r.lineWidth,s.lineWidth),f=t?.isNull&&i.nullInteraction?0:1;return c=a||h||n||c,p=r.fillColor||s.fillColor||c,g=r.lineColor||s.lineColor||c,e=e||\"normal\",l=s.states[e]||{},u=rK((d=r.states&&r.states[e]||{}).lineWidth,l.lineWidth,u+rK(d.lineWidthPlus,l.lineWidthPlus,0)),p=d.fillColor||l.fillColor||p,g=d.lineColor||l.lineColor||g,{stroke:g,\"stroke-width\":u,fill:p,opacity:f=rK(d.opacity,l.opacity,f)}}destroy(t){let e,i,s=this,o=s.chart,r=/AppleWebKit\\/533/.test(rA.navigator.userAgent),a=s.data||[];for(rG(s,\"destroy\",{keepEventsForUpdate:t}),this.removeEvents(t),(s.axisTypes||[]).forEach(function(t){i=s[t],i?.series&&(rW(i.series,s),i.isDirty=i.forceRedraw=!0)}),s.legendItem&&s.chart.legend.destroyItem(s),e=a.length;e--;)a[e]?.destroy?.();for(let t of s.zones)rz(t,void 0,!0);V.clearTimeout(s.animationTimeout),rq(s,function(t,e){t instanceof eJ&&!t.survive&&t[r&&\"group\"===e?\"hide\":\"destroy\"]()}),o.hoverSeries===s&&(o.hoverSeries=void 0),rW(o.series,s),o.orderItems(\"series\"),rq(s,function(e,i){t&&\"hcEvents\"===i||delete s[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:a,zoneAxis:n}=this,{inverted:h,renderer:l}=e,d=this[`${n}Axis`],{isXAxis:c,len:p=0,minPointOffset:g=0}=d||{},u=(i?.strokeWidth()||0)/2+1,f=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:o}=t,r=i-s;o?.push([\"L\",e,Math.abs(r)<u?i-u*(r<=0?-1:1):s])};if(s.length&&(i||t)&&d&&rV(d.min)){let e=d.getExtremes().max+g,u=t=>{t.forEach((e,i)=>{(\"M\"===e[0]||\"L\"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=rI(d.toPixels(rK(t.value,e),!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),\"y\"===n&&o.length<r.len)for(let t of o){let{plotX:e,plotY:i,zone:o}=t,r=o&&s[s.indexOf(o)-1];o&&f(o,e,i),r&&f(r,e,i)}let m=[],x=d.toPixels(d.getExtremes().min-g,!0);s.forEach(e=>{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:n,simpleClip:d}=e,p=0,g=0,f=r.len,y=a.len;c?(p=o,f=x):(g=o,y=x);let b=[[\"M\",p,g],[\"L\",f,g],[\"L\",f,y],[\"L\",p,y],[\"Z\"]],v=[b[0],...s,b[1],b[2],...m,b[3],b[4]];m=s.reverse(),x=o,h&&(u(v),t&&u(b)),n?(n.animate({d:v}),d?.animate({d:b})):(n=e.clip=l.path(v),t&&(d=e.simpleClip=l.path(b))),i&&e.graph?.clip(n),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],a=!r,n={visibility:i,zIndex:s||.1};return rN(this.opacity)&&!this.chart.styledMode&&\"inactive\"!==this.state&&(n.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass(\"highcharts-\"+e+\" highcharts-series-\"+this.index+\" highcharts-\"+this.type+\"-series \"+(rN(this.colorIndex)?\"highcharts-color-\"+this.colorIndex+\" \":\"\")+(this.options.className||\"\")+(r.hasClass(\"highcharts-tracker\")?\" highcharts-tracker\":\"\"),!0),r.attr(n)[a?\"attr\":\"animate\"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&\"series\"===t;s.inverted&&(e=i,i=this.xAxis);let r={scale:1,translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,name:t};rG(this,\"getPlotBox\",r);let{scale:a,translateX:n,translateY:h}=r;return{translateX:n,translateY:h,rotation:90*!!o,rotationOriginX:o?a*(e.len-i.len)/2:0,rotationOriginY:o?a*(e.len+i.len)/2:0,scaleX:o?-a:a,scaleY:a}}removeEvents(t){let{eventsToUnbind:e}=this;t||rJ(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=rw(i.animation),r=t.visible?\"inherit\":\"hidden\",a=i.zIndex,n=e.seriesGroup,h=t.finishedAnimating?0:o.duration;rG(this,\"render\"),t.plotGroup(\"group\",\"series\",r,a,n),t.markerGroup=t.plotGroup(\"markerGroup\",\"markers\",r,a,n),!1!==i.clip&&t.setClip(),h&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),h&&t.animate?.(),s||(h&&o.defer&&(h+=o.defer),t.animationTimeout=rQ(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,rG(t,\"afterRender\")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options,s=i.findNearestPointBy.indexOf(\"y\")>-1?2:1;delete e.kdTree,rQ(function(){e.kdTree=function t(i,s,o){let r,a,n=i?.length;if(n)return r=e.kdAxisArray[s%o],i.sort((t,e)=>(t[r]||0)-(e[r]||0)),{point:i[a=Math.floor(n/2)],left:t(i.slice(0,a),s+1,o),right:t(i.slice(a+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch,i?.nullInteraction),s,s),e.buildingKdTree=!1},i.kdNow||t?.type===\"touchstart\"?0:1)}searchKDTree(t,e,i,s,o){let r=this,[a,n]=this.kdAxisArray,h=e?\"distX\":\"dist\",l=(r.options.findNearestPointBy||\"\").indexOf(\"y\")>-1?2:1,d=!!r.isBubble,c=s||((t,e,i)=>{let s=t[i]||0,o=e[i]||0;return[s===o&&t.index>e.index||s<o?t:e,!1]}),p=o||((t,e)=>t<e);if(this.kdTree||this.buildingKdTree||this.buildKDTree(i),this.kdTree)return function t(e,i,s,o){let l=i.point,g=r.kdAxisArray[s%o],u=l,f=!1;!function(t,e){let i=t[a],s=e[a],o=rN(i)&&rN(s)?i-s:null,r=t[n],h=e[n],l=rN(r)&&rN(h)?r-h:0,c=d&&e.marker?.radius||0;e.dist=Math.sqrt((o&&o*o||0)+l*l)-c,e.distX=rN(o)?Math.abs(o)-c:Number.MAX_VALUE}(e,l);let m=(e[g]||0)-(l[g]||0)+(d&&l.marker?.radius||0),x=m<0?\"left\":\"right\",y=m<0?\"right\":\"left\";return i[x]&&([u,f]=c(l,t(e,i[x],s+1,o),h)),i[y]&&p(Math.sqrt(m*m),u[h],f)&&(u=c(u,t(e,i[y],s+1,o),h)[0]),u}(t,this.kdTree,l,l)}pointPlacementToXValue(){let{options:t,xAxis:e}=this,i=t.pointPlacement;return\"between\"===i&&(i=e.reversed?-.5:.5),rV(i)?i*(t.pointRange||e.pointRange):0}isPointInside(t){let{chart:e,xAxis:i,yAxis:s}=this,{plotX:o=-1,plotY:r=-1}=t;return r>=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,a=o.renderer,n=o.options.tooltip?.snap||0,h=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},l=\"rgba(192,192,192,\"+(rC?1e-4:.002)+\")\",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=a.path(s).attr({visibility:t.visible?\"inherit\":\"hidden\",zIndex:2}).addClass(i?\"highcharts-tracker-area\":\"highcharts-tracker-line\").add(t.group),o.styledMode||d.attr({\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",stroke:l,fill:i?l:\"none\",\"stroke-width\":t.graph.strokeWidth()+(i?0:2*n)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach(t=>{t&&(t.addClass(\"highcharts-tracker\").on(\"mouseover\",h).on(\"mouseout\",t=>{r?.onTrackerMouseOut(t)}),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on(\"touchstart\",h))})),rG(this,\"afterDrawTracker\")}addPoint(t,e,i,s,o){let r,a,n=this.options,{chart:h,data:l,dataTable:d,xAxis:c}=this,p=c?.hasNames&&c.names,g=n.data,u=this.getColumn(\"x\");e=rK(e,!0);let f={series:this};this.pointClass.prototype.applyOptions.apply(f,[t]);let m=f.x;if(a=u.length,this.requireSorting&&m<u[a-1])for(r=!0;a&&u[a-1]>m;)a--;d.setRow(f,a,!0,{addColumns:!1}),p&&f.name&&(p[m]=f.name),g?.splice(a,0,t),(r||this.processedData)&&(this.data.splice(a,0,null),this.processData()),\"point\"===n.legendType&&this.generatePoints(),i&&(l[0]&&l[0].remove?l[0].remove(!1):([l,g].filter(rN).forEach(t=>{t.shift()}),d.deleteRows(0))),!1!==o&&rG(this,\"addPoint\",{point:f}),this.isDirty=!0,this.isDirtyData=!0,e&&h.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:a,dataTable:n}=s,h=r[t],l=function(){[a?.length===r.length?a:void 0,r,s.options.data].filter(rN).forEach(e=>{e.splice(t,1)}),n.deleteRows(t),h?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};rM(i,o),e=rK(e,!0),h?h.firePointEvent(\"remove\",null,l):l()}remove(t,e,i,s){let o=this,r=o.chart;function a(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),rK(t,!0)&&r.redraw(e)}!1!==i?rG(o,\"remove\",null,a):a()}update(t,e){rG(this,\"update\",{options:t=rR(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=rP[r].prototype,h=i.finishedAnimating&&{animation:!1},l={},d,c,p=r0.keepProps.slice(),g=t.type||o.type||s.options.chart.type,u=!(this.hasDerivedData||g&&g!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||[\"dataGrouping\",\"pointStart\",\"pointInterval\",\"pointIntervalUnit\",\"keys\"].some(t=>i.hasOptionChanged(t)));g=g||r,u?(p.push.apply(p,r0.keepPropsForPoints),!1!==t.visible&&p.push(\"area\",\"graph\"),i.parallelArrays.forEach(function(t){p.push(t+\"Data\")}),t.data&&(t.dataSorting&&rX(i.options.dataSorting,t.dataSorting),this.setData(t.data,!1))):this.dataTable.modified=this.dataTable,t=r_(o,{index:void 0===o.index?i.index:o.index,pointStart:a?.series?.pointStart??o.pointStart??i.getColumn(\"x\")[0]},!u&&{data:i.options.data},t,h),u&&t.data&&(t.data=i.options.data),(p=[\"group\",\"markerGroup\",\"dataLabelsGroup\",\"transformGroup\"].concat(p)).forEach(function(t){p[t]=i[t],delete i[t]});let f=!1;if(rP[g]){if(f=g!==i.type,i.remove(!1,!1,!1,!0),f)if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,rP[g].prototype);else{let t=Object.hasOwnProperty.call(i,\"hcEvents\")&&i.hcEvents;for(c in n)i[c]=void 0;rX(i,rP[g].prototype),t?i.hcEvents=t:delete i.hcEvents}}else rH(17,!0,s,{missingModuleFor:g});if(p.forEach(function(t){i[t]=p[t]}),i.init(s,t),u&&this.points)for(let t of(!1===(d=i.options).visible?(l.graphic=1,l.dataLabel=1):(this.hasMarkerChanged(d,o)&&(l.graphic=1),i.hasDataLabels?.()||(l.dataLabel=1)),this.points))t?.series&&(t.resolveColor(),Object.keys(l).length&&t.destroyElements(l),!1===d.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),s.setSortedData(),f&&i.linkedSeries.length&&(i.isDirtyData=!0),rG(this,\"afterUpdate\"),rK(e,!0)&&s.redraw(!!u&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=rK(s?.[this.type]?.[t],s?.series?.[t]);return o&&!rN(r)?i!==o:i!==rK(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&rG(this,\"mouseOver\"),this.setState(\"hover\"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&rG(this,\"mouseOut\"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach(function(t){t.setState(\"\",!0)})}setState(t,e){let i=this,s=i.options,o=i.graph,r=s.inactiveOtherPoints,a=s.states,n=rK(a[t||\"normal\"]&&a[t||\"normal\"].animation,i.chart.options.chart.animation),h=s.lineWidth,l=s.opacity;if(t=t||\"\",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach(function(e){e&&(i.state&&e.removeClass(\"highcharts-series-\"+i.state),t&&e.addClass(\"highcharts-series-\"+t))}),i.state=t,!i.chart.styledMode)){if(a[t]&&!1===a[t].enabled)return;if(t&&(h=a[t].lineWidth||h+(a[t].lineWidthPlus||0),l=rK(a[t].opacity,l)),o&&!o.dashstyle&&rV(h))for(let t of[o,...this.zones.map(t=>t.graph)])t?.animate({\"stroke-width\":h},n);r||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach(function(t){t&&t.animate({opacity:l},n)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let a=t?\"show\":\"hide\";[\"group\",\"dataLabelsGroup\",\"markerGroup\",\"tracker\",\"tt\"].forEach(t=>{i[t]?.[a]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),rG(i,a),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),rG(this,t?\"select\":\"unselect\")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){rm[this.options.legendSymbol||\"rectangle\"]?.call(this,t,e)}}r0.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:\"#ffffff\",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:\"#cccccc\",lineColor:\"#000000\",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:\"center\",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return\"number\"!=typeof this.y?\"\":t(this.y,-1)},padding:5,style:{fontSize:\"0.7em\",fontWeight:\"bold\",color:\"contrast\",textOutline:\"1px contrast\"},verticalAlign:\"bottom\",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:\"x\"},r0.types=rk.seriesTypes,r0.registerType=rk.registerSeriesType,r0.keepProps=[\"colorIndex\",\"eventOptions\",\"navigatorSeries\",\"symbolIndex\",\"baseSeries\"],r0.keepPropsForPoints=[\"data\",\"isDirtyData\",\"isDirtyCanvas\",\"points\",\"dataTable\",\"processedData\",\"xIncrement\",\"cropped\",\"_hasPointMarkers\",\"hasDataLabels\",\"nodes\",\"layout\",\"level\",\"mapMap\",\"mapData\",\"minY\",\"maxY\",\"minX\",\"maxX\",\"transformGroups\"],rX(r0.prototype,{axisTypes:[\"xAxis\",\"yAxis\"],coll:\"series\",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:[\"clientX\",\"plotY\"],parallelArrays:[\"x\",\"y\"],pointClass:oK,requireSorting:!0,sorted:!0}),rk.series=r0;let r1=r0,{animObject:r2,setAnimation:r3}=tU,{registerEventOptions:r5}=si,{composed:r6,marginNames:r9}=w,{distribute:r4}=ey,{format:r8}=ep,{addEvent:r7,createElement:at,css:ae,defined:ai,discardElement:as,find:ao,fireEvent:ar,isNumber:aa,merge:an,pick:ah,pushUnique:al,relativeLength:ad,stableSort:ac,syncTimeout:ap}=V;class ag{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),r5(this,e),r7(this.chart,\"endResize\",function(){this.legend.positionCheckboxes()})),r7(this.chart,\"render\",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=ah(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=an(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=ah(t.symbolWidth,16),this.pages=[],this.proximate=\"proximate\"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(an(!0,this.options,t)),\"events\"in this.options&&r5(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,ah(e,!0)&&i.redraw(),ar(this,\"afterUpdate\",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:a,symbol:n}=t.legendItem||{};if((t instanceof r1||t instanceof oK)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?\"removeClass\":\"addClass\"](\"highcharts-legend-item-hidden\"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:h,fillOpacity:l,lineColor:d,marker:c}=t.options,p=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(an(e?this.itemStyle:i)),a?.attr(p({stroke:d||t.color})),n&&n.attr(p(c&&n.isMarker?t.pointAttribs():{fill:t.color})),s?.attr(p({fill:h||t.color,\"fill-opacity\":h?1:l??.75}))}t.color=i,ar(this,\"afterColorizeItem\",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,a=!o.rtl,n=t.checkbox;if(e?.element){let o={translateX:a?i:this.legendWidth-i-2*r-4,translateY:s};e[ai(e.translateY)?\"animate\":\"attr\"](o,void 0,()=>{ar(this,\"afterPositionItem\",{item:t})})}n&&(n.x=i,n.y=s)}destroyItem(t){let e=t.legendItem||{};for(let t of[\"group\",\"label\",\"line\",\"symbol\"])e[t]&&(e[t]=e[t].destroy());t.checkbox=as(t.checkbox),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of[\"clipRect\",\"up\",\"down\",\"pager\",\"nav\",\"box\",\"title\",\"group\"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t,e=this.group?.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r,a=o.checkbox;a&&(r=t+s+a.y+(this.scrollOffset||0)+3,ae(a,{left:e.translateX+o.checkboxOffset+a.x-20+\"px\",top:r+\"px\",display:this.proximate||r>t-6&&r<t+i-6?\"\":\"none\"}))},this))}renderTitle(){let t=this.options,e=this.padding,i=t.title,s,o=0;i.text&&(this.title||(this.title=this.chart.renderer.label(i.text,e-3,e-4,void 0,void 0,void 0,t.useHTML,void 0,\"legend-title\").attr({zIndex:1}),this.chart.styledMode||this.title.css(i.style),this.title.add(this.group)),i.width||this.title.css({width:this.maxLegendWidth+\"px\"}),o=(s=this.title.getBBox()).height,this.offsetWidth=s.width,this.contentGroup.attr({translateY:o})),this.titleHeight=o}setText(t){let e=this.options;t.legendItem.label.attr({text:e.labelFormat?r8(e.labelFormat,t,this.chart):e.labelFormatter.call(t)})}renderItem(t){let e=t.legendItem=t.legendItem||{},i=this.chart,s=i.renderer,o=this.options,r=\"horizontal\"===o.layout,a=this.symbolWidth,n=o.symbolPadding||0,h=this.itemStyle,l=this.itemHiddenStyle,d=r?ah(o.itemDistance,20):0,c=!o.rtl,p=!t.series,g=!p&&t.series.drawLegendSymbol?t.series:t,u=g.options,f=!!this.createCheckboxForItem&&u&&u.showCheckbox,m=o.useHTML,x=t.options.className,y=e.label,b=a+n+d+20*!!f;!y&&(e.group=s.g(\"legend-item\").addClass(\"highcharts-\"+g.type+\"-series highcharts-color-\"+t.colorIndex+(x?\" \"+x:\"\")+(p?\" highcharts-series-\"+t.index:\"\")).attr({zIndex:1}).add(this.scrollGroup),e.label=y=s.text(\"\",c?a+n:-n,this.baseline||0,m),i.styledMode||y.css(an(t.visible?h:l)),y.attr({align:c?\"left\":\"right\",zIndex:2}).add(e.group),!this.baseline&&(this.fontMetrics=s.fontMetrics(y),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,y.attr(\"y\",this.baseline),this.symbolHeight=ah(o.symbolHeight,this.fontMetrics.f),o.squareSymbol&&(this.symbolWidth=ah(o.symbolWidth,Math.max(this.symbolHeight,16)),b=this.symbolWidth+n+d+20*!!f,c&&y.attr(\"x\",this.symbolWidth+n))),g.drawLegendSymbol(this,t),this.setItemEvents&&this.setItemEvents(t,y,m)),f&&!t.checkbox&&this.createCheckboxForItem&&this.createCheckboxForItem(t),this.colorizeItem(t,t.visible),(i.styledMode||!h.width)&&y.css({width:(o.itemWidth||this.widthOption||i.spacingBox.width)-b+\"px\"}),this.setText(t);let v=y.getBBox(),k=this.fontMetrics?.h||0;t.itemWidth=t.checkboxOffset=o.itemWidth||e.labelWidth||v.width+b,this.maxItemWidth=Math.max(this.maxItemWidth,t.itemWidth),this.totalItemWidth+=t.itemWidth,this.itemHeight=t.itemHeight=Math.round(e.labelHeight||(v.height>1.5*k?v.height:k))}layoutItem(t){let e=this.options,i=this.padding,s=\"horizontal\"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,a=this.itemMarginTop,n=s?ah(e.itemDistance,20):0,h=this.maxLegendWidth,l=e.alignColumns&&this.totalItemWidth>h?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+l>h&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=a+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=a+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=l:(this.itemY+=a+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:n):l)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e?.options;e&&ah(i.showInLegend,!ai(i.linkedTo)&&void 0,!0)&&(t=t.concat(e.legendItem?.labels||(\"point\"===i.legendType?e.data:e)))}),ar(this,\"afterGetAllItems\",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+\"tv\":t.floating?\"\":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach((r,a)=>{r.test(o)&&!ai(t[a])&&(i[r9[a]]=Math.max(i[r9[a]],i.legend[(a+1)%2?\"legendHeight\":\"legendWidth\"]+[1,-1,-1,1][a]*s[a%2?\"x\":\"y\"]+(s.margin??12)+e[a]+(i.titleOffset[a]||0)))})}proximatePositions(){let t,e=this.chart,i=[],s=\"left\"===this.options.align;for(let o of(this.allItems.forEach(function(t){let o,r,a=s,n,h;t.yAxis&&(t.xAxis.options.reversed&&(a=!a),t.points&&(o=ao(a?t.points:t.points.slice(0).reverse(),function(t){return aa(t.plotY)})),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,h=t.yAxis.top-e.plotTop,n=t.visible?(o?o.plotY:t.yAxis.height)+(h-.3*r):h+t.yAxis.height,i.push({target:n,size:r,item:t}))},this),r4(i,e.plotHeight)))t=o.item.legendItem||{},aa(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.renderer,i=this.options,s=this.padding,o=this.getAllItems(),r,a,n,h=this.group,l,d=this.box;this.itemX=s,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=ad(i.width,t.spacingBox.width-s),l=t.spacingBox.width-2*s-i.x,[\"rm\",\"lm\"].indexOf(this.getAlignment().substring(0,2))>-1&&(l/=2),this.maxLegendWidth=this.widthOption||l,h||(this.group=h=e.g(\"legend\").addClass(i.className||\"\").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(h),this.scrollGroup=e.g().add(this.contentGroup)),this.renderTitle(),ac(o,(t,e)=>(t.options?.legendIndex||0)-(e.options?.legendIndex||0)),i.reversed&&o.reverse(),this.allItems=o,this.display=r=!!o.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,o.forEach(this.renderItem,this),o.forEach(this.layoutItem,this),a=(this.widthOption||this.offsetWidth)+s,n=this.lastItemY+this.lastLineHeight+this.titleHeight,n=this.handleOverflow(n)+s,d||(this.box=d=e.rect().addClass(\"highcharts-legend-box\").attr({r:i.borderRadius}).add(h)),t.styledMode||d.attr({stroke:i.borderColor,\"stroke-width\":i.borderWidth||0,fill:i.backgroundColor||\"none\"}).shadow(i.shadow),a>0&&n>0&&d[d.placed?\"animate\":\"attr\"](d.crisp.call({},{x:0,y:0,width:a,height:n},d.strokeWidth())),h[r?\"show\":\"hide\"](),t.styledMode&&\"none\"===h.getStyle(\"display\")&&(a=n=0),this.legendWidth=a,this.legendHeight=n,r&&this.align(),this.proximate||this.positionItems(),ar(this,\"afterRender\")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=an(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(an(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?\"top\":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,a=\"top\"===o.verticalAlign,n=this.padding,h=o.maxHeight,l=o.navigation,d=ah(l.animation,!0),c=l.arrowSize||12,p=this.pages,g=this.allItems,u=function(t){\"number\"==typeof t?w.attr({height:t}):w&&(e.clipRect=w.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?\"rect(\"+n+\"px,9999px,\"+(n+t)+\"px,0)\":\"auto\")},f=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(k),i.styledMode||e[t].attr(\"fill\",\"rgba(0,0,0,0.0001)\"),e[t]},m,x,y,b,v=i.spacingBox.height+(a?-r:r)-n,k=this.nav,w=this.clipRect;return\"horizontal\"!==o.layout||\"middle\"===o.verticalAlign||o.floating||(v/=2),h&&(v=Math.min(v,h)),p.length=0,t&&v>0&&t>v&&!1!==l.enabled?(this.clipHeight=m=Math.max(v-20-this.titleHeight-n,0),this.currentPage=ah(this.currentPage,1),this.fullHeight=t,g.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),o=p.length;(!o||i-p[o-1]>m&&(x||i)!==p[o-1])&&(p.push(x||i),o++),y.pageIx=o-1,x&&b&&(b.pageIx=o-1),e===g.length-1&&i+s-p[o-1]>m&&i>p[o-1]&&(p.push(i),y.pageIx=o),i!==x&&(x=i),b=y}),w||(w=e.clipRect=s.clipRect(0,n-2,9999,0),e.contentGroup.clip(w)),u(m),k||(this.nav=k=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol(\"triangle\",0,0,c,c).add(k),f(\"upTracker\").on(\"click\",function(){e.scroll(-1,d)}),this.pager=s.text(\"\",15,10).addClass(\"highcharts-legend-navigation\"),!i.styledMode&&l.style&&this.pager.css(l.style),this.pager.add(k),this.down=s.symbol(\"triangle-down\",0,0,c,c).add(k),f(\"downTracker\").on(\"click\",function(){e.scroll(1,d)})),e.scroll(0),t=v):k&&(u(),this.nav=k.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,a=this.options.navigation,n=this.pager,h=this.padding,l=this.currentPage+t;l>o&&(l=o),l>0&&(void 0!==e&&r3(e,i),this.nav.attr({translateX:h,translateY:r+this.padding+7+this.titleHeight,visibility:\"inherit\"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===l?\"highcharts-legend-nav-inactive\":\"highcharts-legend-nav-active\"})}),n.attr({text:l+\"/\"+o}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:l===o?\"highcharts-legend-nav-inactive\":\"highcharts-legend-nav-active\"})},this),i.styledMode||(this.up.attr({fill:1===l?a.inactiveColor:a.activeColor}),this.upTracker.css({cursor:1===l?\"default\":\"pointer\"}),this.down.attr({fill:l===o?a.inactiveColor:a.activeColor}),this.downTracker.css({cursor:l===o?\"default\":\"pointer\"})),this.scrollOffset=-s[l-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=l,this.positionCheckboxes(),ap(()=>{ar(this,\"afterScroll\",{currentPage:l})},r2(ah(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof oK,n=t instanceof r1,h=\"highcharts-legend-\"+(a?\"point\":\"series\")+\"-active\",l=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!a)})})};for(let i of d)i&&i.on(\"mouseover\",function(){t.visible&&c(\"inactive\"),t.setState(\"hover\"),t.visible&&r.addClass(h),l||e.css(s.options.itemHoverStyle)}).on(\"mouseout\",function(){s.chart.styledMode||e.css(an(t.visible?s.itemStyle:s.itemHiddenStyle)),c(\"\"),r.removeClass(h),t.setState()}).on(\"click\",function(e){let i=function(){t.setVisible&&t.setVisible(),c(t.visible?\"inactive\":\"\")};r.removeClass(h),ar(s,\"itemClick\",{browserEvent:e,legendItem:t},i),a?t.firePointEvent(\"legendItemClick\",{browserEvent:e}):n&&ar(t,\"legendItemClick\",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=at(\"input\",{type:\"checkbox\",className:\"highcharts-legend-checkbox\",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),r7(t.checkbox,\"click\",function(e){let i=e.target;ar(t.series||t,\"checkboxClick\",{checked:i.checked,item:t},function(){t.select()})})}}!function(t){t.compose=function(e){al(r6,\"Core.Legend\")&&r7(e,\"beforeMargins\",function(){this.legend=new t(this,this.options.legend)})}}(ag||(ag={}));let au=ag,{animate:af,animObject:am,setAnimation:ax}=tU,{defaultOptions:ay}=tv,{numberFormat:ab}=ep,{registerEventOptions:av}=si,{charts:ak,doc:aw,marginNames:aM,svg:aS,win:aT}=w,{seriesTypes:aC}=rk,{addEvent:aA,attr:aP,createElement:aL,css:aO,defined:aE,diffObjects:aI,discardElement:aD,erase:aB,error:aN,extend:az,find:aR,fireEvent:aW,getAlignFactor:aH,getStyle:aX,isArray:aF,isNumber:aG,isObject:aj,isString:aY,merge:aU,objectEach:a$,pick:aV,pInt:aZ,relativeLength:a_,removeEvent:aq,splat:aK,syncTimeout:aJ,uniqueKey:aQ}=V;class a0{static chart(t,e,i){return new a0(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];(aY(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:aV(t.zoomType,e.type),key:aV(t.zoomKey,e.key),pinchType:aV(t.pinchType,e.pinchType),singleTouch:aV(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:aU(e.resetButton,t.resetZoomButton)}}init(t,e){aW(this,\"init\",{args:arguments},function(){let i=aU(ay,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=az({},t),(this.renderTo=aY(o)?aw.getElementById(o):o)||aN(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest(\"[lang]\")?.lang,this.time=new tu(az(i.time||{},{locale:this.locale}),i.lang),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||ab).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=ak.length,ak.push(this),w.chartCount++,av(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),aW(this,\"afterInit\"),this.firstRender()})}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=aC[i];s||aN(17,!0,this,{missingModuleFor:i});let o=new s;return\"function\"==typeof o.init&&o.init(this,t),o}setSortedData(){this.getSeriesOrderByLinks().forEach(function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0})}orderItems(t,e=0){let i=this[t],s=this.options[t]=aK(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?aK(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t<r;++t){let e=i[t];e&&(e.index=t,e instanceof r1&&(e.name=e.getName()),e.options.isInternal||(s[t]=e.options,o[t]=e.userOptions))}}getClipBox(t,e){let i=this.inverted,{xAxis:s,yAxis:o}=t||{},{x:r,y:a,width:n,height:h}=aU(this.clipBox);return t&&(s&&s.len!==this.plotSizeX&&(n=s.len),o&&o.len!==this.plotSizeY&&(h=o.len),i&&!t.invertible&&([n,h]=[h,n])),e&&(r+=(i?o:s)?.pos??this.plotLeft,a+=(i?s:o)?.pos??this.plotTop),{x:r,y:a,width:n,height:h}}isInsidePlot(t,e,i={}){let{inverted:s,plotBox:o,plotLeft:r,plotTop:a,scrollablePlotBox:n}=this,{scrollLeft:h=0,scrollTop:l=0}=i.visiblePlotOnly&&this.scrollablePlotArea?.scrollingContainer||{},d=i.series,c=i.visiblePlotOnly&&n||o,p=i.inverted?e:t,g=i.inverted?t:e,u={x:p,y:g,isInsidePlot:!0,options:i};if(!i.ignoreX){let t=d&&(s&&!this.polar?d.yAxis:d.xAxis)||{pos:r,len:1/0},e=i.paneCoordinates?t.pos+p:r+p;e>=Math.max(h+r,t.pos)&&e<=Math.min(h+r+c.width,t.pos+t.len)||(u.isInsidePlot=!1)}if(!i.ignoreY&&u.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:a,len:1/0},e=i.paneCoordinates?t.pos+g:a+g;e>=Math.max(l+a,t.pos)&&e<=Math.min(l+a+c.height,t.pos+t.len)||(u.isInsidePlot=!1)}return aW(this,\"afterIsInsidePlot\",u),u.isInsidePlot}redraw(t){aW(this,\"beforeRedraw\");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,a=this.renderer,n=a.isHidden(),h=[],l,d,c,p=this.isDirtyBox,g=this.isDirtyLegend,u;for(a.rootFontSize=a.boxWrapper.getStyle(\"font-size\"),this.setResponsive&&this.setResponsive(!1),ax(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((u=i[c]).options.stacking||u.options.centerInCategory)&&(d=!0,u.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(u=i[c]).options.stacking&&(u.isDirty=!0);i.forEach(function(t){t.isDirty&&(\"point\"===t.options.legendType?(\"function\"==typeof t.updateTotals&&t.updateTotals(),g=!0):r&&(r.labelFormatter||r.labelFormat)&&(g=!0)),t.isDirtyData&&aW(t,\"updatedData\")}),g&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins(),e.forEach(function(t){t.isDirty&&(p=!0)}),e.forEach(function(t){let e=t.min+\",\"+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){aW(t,\"afterSetExtremes\",az(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(p||d)&&t.redraw()}),p&&this.drawChartBox(),aW(this,\"predraw\"),i.forEach(function(t){(p||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),a.draw(),aW(this,\"redraw\"),aW(this,\"render\"),n&&this.temporaryDisplay(!0),h.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=aR(this.axes,i)||aR(this.series,i);for(let t=0;!s&&t<e.length;t++)s=aR(e[t].points||[],i);return s}createAxes(){let t=this.userOptions;for(let e of(aW(this,\"createAxes\"),[\"xAxis\",\"yAxis\"]))for(let i of t[e]=aK(t[e]||{}))new s$(this,i,e);aW(this,\"afterCreateAxes\")}getSelectedPoints(){return this.series.reduce((t,e)=>(e.getPointsCollection().forEach(e=>{aV(e.selectedStaging,e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription(\"title\",t),this.applyDescription(\"subtitle\",e),this.applyDescription(\"caption\",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=aU(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:\"highcharts-\"+t,zIndex:s.zIndex||4}).css({textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(az(\"title\"===t?{fontSize:this.options.isStock?\"1em\":\"1.2em\"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;[\"title\",\"subtitle\",\"caption\"].forEach(t=>{let i=this[t],r=this.options[t],a=aU(o),n=i?.textPxLength||0;if(i&&r){aW(this,\"layOutTitle\",{alignTo:a,key:t,textPxLength:n});let o=s.fontMetrics(i),h=o.b,l=o.h,d=r.verticalAlign||\"top\",c=\"top\"===d,p=c&&r.minScale||1,g=\"title\"===t?c?-3:0:c?e[0]+2:0,u=Math.min(a.width/n,1),f=Math.max(p,u),m=aU({y:\"bottom\"===d?h:g+h},{align:\"title\"===t?u<p?\"left\":\"center\":this.title?.alignValue},r),x=(r.width||(u>p?this.chartWidth:a.width)/f)+\"px\";i.alignValue!==m.align&&(i.placed=!1);let y=Math.round(i.css({width:x}).getBBox(r.useHTML).height);if(m.height=y,i.align(m,!1,a).attr({align:m.align,scaleX:f,scaleY:f,\"transform-origin\":`${a.x+n*f*aH(m.align)} ${l}`}),!r.floating){let t=y*(y<1.2*l?1:f);\"top\"===d?e[0]=Math.ceil(e[0]+t):\"bottom\"===d&&(e[2]=Math.ceil(e[2]+t))}}},this),e[0]&&\"top\"===(i.title?.verticalAlign||\"top\")&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign===\"bottom\"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(\",\")!==e.join(\",\");this.titleOffset=e,aW(this,\"afterLayOutTitles\"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,t=>{if(t!==this.container){let e=t.style.display;return t.style.display=\"none\",[t,e]}}),e={width:aX(this.renderTo,\"width\",!0)||0,height:aX(this.renderTo,\"height\",!0)||0};return t.filter(Boolean).forEach(([t,e])=>{t.style.display=e}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&\"100%\"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,a_(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e?.style;)e.hcOrigStyle&&(aO(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(aw.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e?.style&&(aw.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,aw.body.appendChild(e)),(\"none\"===aX(e,\"display\",!1)||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:\"block\",overflow:\"hidden\"},e!==this.renderTo&&(i.height=0),aO(e,i),e.offsetWidth||e.style.setProperty(\"display\",\"block\",\"important\")),(e=e.parentNode)!==aw.body););}setClassName(t){this.container.className=\"highcharts-container \"+(t||\"\")}getContainer(){let t,e=this.options,i=e.chart,s=\"data-highcharts-chart\",o=aQ(),r=this.renderTo,a=aZ(aP(r,s));aG(a)&&ak[a]&&ak[a].hasRendered&&ak[a].destroy(),aP(r,s,this.index),r.innerHTML=t6.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,h=this.chartWidth;aO(r,{overflow:\"hidden\"}),this.styledMode||(t=az({position:\"relative\",overflow:\"hidden\",width:h+\"px\",height:n+\"px\",textAlign:\"left\",lineHeight:\"normal\",zIndex:0,\"-webkit-tap-highlight-color\":\"rgba(0,0,0,0)\",userSelect:\"none\",\"touch-action\":\"manipulation\",outline:\"none\",padding:\"0px\"},i.style||{}));let l=aL(\"div\",{id:o},t,r);this.container=l,this.getChartSize(),h!==this.chartWidth&&(h=this.chartWidth,this.styledMode||aO(l,{width:aV(i.style?.width,h+\"px\")})),this.containerBox=this.getContainerBox(),this._cursor=l.style.cursor;let d=i.renderer||!aS?eg.getRendererType(i.renderer):iU;if(this.renderer=new d(l,h,n,void 0,i.forExport,e.exporting?.allowHTML,this.styledMode),ax(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style);this.renderer.chartIndex=this.index,aW(this,\"afterGetContainer\")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!aE(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!aE(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend?.display&&this.legend.adjustMargins(i,e),aW(this,\"getMargins\"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=t=>{t.forEach(t=>{t.visible&&t.getOffset()})};t.hasCartesianSeries?o(t.axes):i?.length&&o(i),aM.forEach((i,o)=>{aE(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return aI(this.userOptions,ay)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.exporting?.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(V.clearTimeout(e.reflowTimeout),e.reflowTimeout=aJ(function(){e.container&&e.setSize(void 0,void 0,!1)},100*!!t)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if(\"function\"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=aA(aT,\"resize\",e);aA(this,\"destroy\",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,ax(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:a,chartHeight:n,scrollablePixelsX:h=0,scrollablePixelsY:l=0}=s;(s.isDirtyBox||a!==s.oldChartWidth||n!==s.oldChartHeight)&&(s.styledMode||(r?af:aO)(s.container,{width:`${a+h}px`,height:`${n+l}px`},r),s.setChartSize(!0),o.setSize(a,n,r),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,aW(s,\"resize\"),setTimeout(()=>{s&&aW(s,\"endResize\")},am(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o,{chartHeight:r,chartWidth:a,inverted:n,spacing:h,renderer:l}=this,d=this.clipOffset,c=Math[n?\"floor\":\"round\"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(a-e-(this.marginRight??0))),this.plotHeight=o=Math.max(0,Math.round(r-i-(this.marginBottom??0))),this.plotSizeX=n?o:s,this.plotSizeY=n?s:o,this.spacingBox=l.spacingBox={x:h[3],y:h[0],width:a-h[3]-h[1],height:r-h[0]-h[2]},this.plotBox=l.plotBox={x:e,y:i,width:s,height:o},d&&(this.clipBox={x:c(d[3]),y:c(d[0]),width:c(this.plotSizeX-d[1]-d[3]),height:c(this.plotSizeY-d[0]-d[2])}),t||(this.axes.forEach(function(t){t.setAxisSize(),t.setAxisTranslation()}),l.alignElements()),aW(this,\"afterSetChartSize\",{skipAxes:t})}resetMargins(){aW(this,\"resetMargins\");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=Math.round(i)/2;[\"margin\",\"spacing\"].forEach(i=>{let s=e[i],o=aj(s)?s:[s,s,s,s];[\"Top\",\"Right\",\"Bottom\",\"Left\"].forEach((s,r)=>{t[i][r]=e[`${i}${s}`]??o[r]})}),aM.forEach((e,i)=>{t[e]=t.margin[i]??t.spacing[i]}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this.options.chart,e=this.renderer,i=this.chartWidth,s=this.chartHeight,o=this.styledMode,r=this.plotBGImage,a=t.backgroundColor,n=t.plotBackgroundColor,h=t.plotBackgroundImage,l=this.plotLeft,d=this.plotTop,c=this.plotWidth,p=this.plotHeight,g=this.plotBox,u=this.clipRect,f=this.clipBox,m=this.chartBackground,x=this.plotBackground,y=this.plotBorder,b,v,k,w=\"animate\";m||(this.chartBackground=m=e.rect().addClass(\"highcharts-background\").add(),w=\"attr\"),o?b=v=m.strokeWidth():(v=(b=t.borderWidth||0)+8*!!t.shadow,k={fill:a||\"none\"},(b||m[\"stroke-width\"])&&(k.stroke=t.borderColor,k[\"stroke-width\"]=b),m.attr(k).shadow(t.shadow)),m[w]({x:v/2,y:v/2,width:i-v-b%2,height:s-v-b%2,r:t.borderRadius}),w=\"animate\",x||(w=\"attr\",this.plotBackground=x=e.rect().addClass(\"highcharts-plot-background\").add()),x[w](g),!o&&(x.attr({fill:n||\"none\"}).shadow(t.plotShadow),h&&(r?(h!==r.attr(\"href\")&&r.attr(\"href\",h),r.animate(g)):this.plotBGImage=e.image(h,l,d,c,p).add())),u?u.animate({width:f.width,height:f.height}):this.clipRect=e.clipRect(f),w=\"animate\",y||(w=\"attr\",this.plotBorder=y=e.rect().addClass(\"highcharts-plot-border\").attr({zIndex:1}).add()),o||y.attr({stroke:t.plotBorderColor,\"stroke-width\":t.plotBorderWidth||0,fill:\"none\"}),y[w](y.crisp(g,-y.strokeWidth())),this.isDirtyBox=!1,aW(this,\"afterDrawChartBox\")}propFromSeries(){let t,e,i,s=this,o=s.options.chart,r=s.options.series;[\"inverted\",\"angular\",\"polar\"].forEach(function(a){for(e=aC[o.type],i=o[a]||e&&e.prototype[a],t=r?.length;!i&&t--;)(e=aC[r[t].type])&&e.prototype[a]&&(i=!0);s[a]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:i}=t.options;if(aY(i)){let s;(s=\":previous\"===i?e.series[t.index-1]:e.get(i))&&s.linkedParent!==t&&(s.linkedSeries.push(t),t.linkedParent=s,s.enabledDataSorting&&t.setDataSortingOptions(),t.visible=aV(t.options.visible,s.options.visible,t.visible))}}),aW(this,\"afterLinkSeries\",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,s=this.options.chart.axisLayoutRuns||2,o=t=>{t.forEach(t=>{t.visible&&t.render()})},r=0,a=!0,n,h=0;for(let e of(this.setTitle(),aW(this,\"beforeMargins\"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&\"colorAxis\"!==e.coll&&!this.polar){r=t.tickLength,e.createGroups();let s=new sf(e,0,\"\",!0),o=s.createLabel(\"x\",i);if(s.destroy(),o&&aV(i.reserveSpace,!aG(t.crossing))&&(r=o.getBBox().height+i.distance+Math.max(t.offset||0,0)),r){o?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-r,0);(a||n||s>1)&&h<s;){let e=this.plotWidth,i=this.plotHeight;for(let e of t)0===h?e.setScale():(e.horiz&&a||!e.horiz&&n)&&e.setTickInterval(!0);0===h?this.getAxisMargins():this.getMargins(),a=e/this.plotWidth>(h?1:1.1),n=i/this.plotHeight>(h?1:1.05),h++}this.drawChartBox(),this.hasCartesianSeries?o(t):e?.length&&o(e),this.seriesGroup||(this.seriesGroup=i.g(\"series-group\").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.dataLabelsGroup||(this.dataLabelsGroup=i.g(\"datalabels-group\").attr({zIndex:6}).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=aU(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||\"\"),0,0).addClass(\"highcharts-credits\").on(\"click\",function(){i.href&&(aT.location.href=i.href)}).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t,e=this,i=e.axes,s=e.series,o=e.container,r=o?.parentNode;for(aW(e,\"destroy\"),e.renderer.forExport?aB(ak,e):ak[e.index]=void 0,w.chartCount--,e.renderTo.removeAttribute(\"data-highcharts-chart\"),aq(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller?.destroy?.(),t=s.length;t--;)s[t]=s[t].destroy();[\"title\",\"subtitle\",\"chartBackground\",\"plotBackground\",\"plotBGImage\",\"plotBorder\",\"seriesGroup\",\"clipRect\",\"credits\",\"pointer\",\"rangeSelector\",\"legend\",\"resetZoomButton\",\"tooltip\",\"renderer\"].forEach(t=>{e[t]=e[t]?.destroy?.()}),o&&(o.innerHTML=t6.emptyHTML,aq(o),r&&aD(o)),a$(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=aF(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),t.setSortedData(),aW(t,\"beforeRender\"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),aW(this,\"load\"),aW(this,\"render\"),aE(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;t&&!this.accessibility&&(this.renderer.boxWrapper.attr({role:\"img\",\"aria-label\":(e?.element.textContent||\"\").replace(/</g,\"&lt;\")}),t.accessibility&&!1===t.accessibility.enabled||aN('Highcharts warning: Consider including the \"accessibility.js\" module to make your chart more usable for people with disabilities. Set the \"accessibility.enabled\" option to false to remove this warning. See https://www.highcharts.com/docs/accessibility/accessibility-module.',!1,this))}addSeries(t,e,i){let s,o=this;return t&&(e=aV(e,!0),aW(o,\"addSeries\",{options:t},function(){s=o.initSeries(t),o.isDirtyLegend=!0,o.linkSeries(),s.enabledDataSorting&&s.setData(t.data,!1),aW(o,\"afterAddSeries\",{series:s}),e&&o.redraw(i)})),s}addAxis(t,e,i,s){return this.createAxis(e?\"xAxis\":\"yAxis\",{axis:t,redraw:i,animation:s})}addColorAxis(t,e,i){return this.createAxis(\"colorAxis\",{axis:t,redraw:e,animation:i})}createAxis(t,e){let i=new s$(this,e.axis,t);return aV(e.redraw,!0)&&this.redraw(e.animation),i}showLoading(t){let e=this,i=e.options,s=i.loading,o=function(){r&&aO(r,{left:e.plotLeft+\"px\",top:e.plotTop+\"px\",width:e.plotWidth+\"px\",height:e.plotHeight+\"px\"})},r=e.loadingDiv,a=e.loadingSpan;r||(e.loadingDiv=r=aL(\"div\",{className:\"highcharts-loading highcharts-loading-hidden\"},null,e.container)),a||(e.loadingSpan=a=aL(\"span\",{className:\"highcharts-loading-inner\"},null,r),aA(e,\"redraw\",o)),r.className=\"highcharts-loading\",t6.setElementHTML(a,aV(t,i.lang.loading,\"\")),!e.styledMode&&(aO(r,az(s.style,{zIndex:10})),aO(a,s.labelStyle),e.loadingShown||(aO(r,{opacity:0,display:\"\"}),af(r,{opacity:s.style.opacity||.5},{duration:s.showDuration||0}))),e.loadingShown=!0,o()}hideLoading(){let t=this.options,e=this.loadingDiv;e&&(e.className=\"highcharts-loading highcharts-loading-hidden\",this.styledMode||af(e,{opacity:0},{duration:t.loading.hideDuration||100,complete:function(){aO(e,{display:\"none\"})}})),this.loadingShown=!1}update(t,e,i,s){let o,r,a,n=this,h={credits:\"addCredits\",title:\"setTitle\",subtitle:\"setSubtitle\",caption:\"setCaption\"},l=t.isResponsiveOptions,d=[];aW(n,\"update\",{options:t}),l||n.setResponsive(!1,!0),t=aI(t,n.options),n.userOptions=aU(n.userOptions,t);let c=t.chart;c&&(aU(!0,n.options.chart,c),this.setZoomOptions(),\"className\"in c&&n.setClassName(c.className),(\"inverted\"in c||\"polar\"in c||\"type\"in c)&&(n.propFromSeries(),o=!0),\"alignTicks\"in c&&(o=!0),\"events\"in c&&av(this,c),a$(c,function(t,e){-1!==n.propsRequireUpdateSeries.indexOf(\"chart.\"+e)&&(r=!0),-1!==n.propsRequireDirtyBox.indexOf(e)&&(n.isDirtyBox=!0),-1!==n.propsRequireReflow.indexOf(e)&&(n.isDirtyBox=!0,l||(a=!0))}),!n.styledMode&&c.style&&n.renderer.setStyle(n.options.chart.style||{})),!n.styledMode&&t.colors&&(this.options.colors=t.colors),a$(t,function(e,i){n[i]&&\"function\"==typeof n[i].update?n[i].update(e,!1):\"function\"==typeof n[h[i]]?n[h[i]](e):\"colors\"!==i&&-1===n.collectionsWithUpdate.indexOf(i)&&aU(!0,n.options[i],t[i]),\"chart\"!==i&&-1!==n.propsRequireUpdateSeries.indexOf(i)&&(r=!0)}),this.collectionsWithUpdate.forEach(function(e){t[e]&&(aK(t[e]).forEach(function(t,s){let o,r=aE(t.id);r&&(o=n.get(t.id)),!o&&n[e]&&(o=n[e][aV(t.index,s)])&&(r&&aE(o.options.id)||o.options.isInternal)&&(o=void 0),o&&o.coll===e&&(o.update(t,!1),i&&(o.touched=!0)),!o&&i&&n.collectionsWithInit[e]&&(n.collectionsWithInit[e][0].apply(n,[t].concat(n.collectionsWithInit[e][1]||[]).concat([!1])).touched=!0)}),i&&n[e].forEach(function(t){t.touched||t.options.isInternal?delete t.touched:d.push(t)}))}),d.forEach(function(t){t.chart&&t.remove&&t.remove(!1)}),o&&n.axes.forEach(function(t){t.update({},!1)}),r&&n.getSeriesOrderByLinks().forEach(function(t){t.chart&&t.update({},!1)},this);let p=c?.width,g=c&&(aY(c.height)?a_(c.height,p||n.chartWidth):c.height);a||aG(p)&&p!==n.chartWidth||aG(g)&&g!==n.chartHeight?n.setSize(p,g,s):aV(e,!0)&&n.redraw(s),aW(n,\"afterUpdate\",{options:t,redraw:e,animation:s})}setSubtitle(t,e){this.applyDescription(\"subtitle\",t),this.layOutTitles(e)}setCaption(t,e){this.applyDescription(\"caption\",t),this.layOutTitles(e)}showResetZoom(){let t=this,e=ay.lang,i=t.zooming.resetButton,s=i.theme,o=\"chart\"===i.relativeTo||\"spacingBox\"===i.relativeTo?null:\"plotBox\";function r(){t.zoomOut()}aW(this,\"beforeShowResetZoom\",null,function(){t.resetZoomButton=t.renderer.button(e.resetZoom,null,null,r,s).attr({align:i.position.align,title:e.resetZoomTitle}).addClass(\"highcharts-reset-zoom\").add().align(i.position,!1,o)}),aW(this,\"afterShowResetZoom\")}zoomOut(){aW(this,\"selection\",{resetSelection:!0},()=>this.transform({reset:!0,trigger:\"zoom\"}))}pan(t,e){let i=this,s=\"object\"==typeof e?e:{enabled:e,type:\"x\"},o=s.type,r=o&&i[({x:\"xAxis\",xy:\"axes\",y:\"yAxis\"})[o]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),a=i.options.chart;a?.panning&&(a.panning=s),aW(this,\"pan\",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:\"pan\"}),aO(i.container,{cursor:\"move\"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:a={},trigger:n}=t,{inverted:h,time:l}=this;this.hoverPoints?.forEach(t=>t.setState()),aW(this,\"transform\",t);let d=t.hasZoomed||!1,c,p;for(let t of e){let{horiz:e,len:g,minPointOffset:u=0,options:f,reversed:m}=t,x=e?\"width\":\"height\",y=e?\"x\":\"y\",b=aV(a[x],t.len),v=aV(s[x],t.len),k=10>Math.abs(b)?1:b/v,w=(s[y]||0)+v/2-t.pos,M=w-((a[y]??t.pos)+b/2-t.pos)/k,S=m&&!h||!m&&h?-1:1;if(!o&&(w<0||w>t.len))continue;let T=t.chart.polar||t.isOrdinal?0:u*S||0,C=t.toValue(M,!0),A=t.toValue(M+g/k,!0),P=C+T,L=A-T,O=t.allExtremes;if(r&&r[t.coll].push({axis:t,min:Math.min(C,A),max:Math.max(C,A)}),P>L&&([P,L]=[L,P]),1===k&&!o&&\"yAxis\"===t.coll&&!O){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn(\"y\")||[],!0);O??(O={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),aG(t.dataMin)&&aG(t.dataMax)&&(O.dataMin=Math.min(t.dataMin,O.dataMin),O.dataMax=Math.max(t.dataMax,O.dataMax))}t.allExtremes=O}let{dataMin:E,dataMax:I,min:D,max:B}=az(t.getExtremes(),O||{}),N=l.parse(f.min),z=l.parse(f.max),R=E??N,W=I??z,H=L-P,X=t.categories?0:Math.min(H,W-R),F=R-X*(aE(N)?0:f.minPadding),G=W+X*(aE(z)?0:f.maxPadding),j=t.allowZoomOutside||1===k||\"zoom\"!==n&&k>1,Y=Math.min(N??F,F,j?D:F),U=Math.max(z??G,G,j?B:G);(!t.isOrdinal||1!==k||o)&&(P<Y&&(P=Y,k>=1&&(L=P+H)),L>U&&(L=U,k>=1&&(P=L-H)),(o||t.series.length&&(P!==D||L!==B)&&P>=Y&&L<=U)&&(r?r[t.coll].push({axis:t,min:P,max:L}):(t.isPanning=\"zoom\"!==n,t.isPanning&&(p=!0),t.setExtremes(o?void 0:P,o?void 0:L,!1,!1,{move:M,trigger:n,scale:k}),!o&&(P>Y||L<U)&&\"mousewheel\"!==n&&(c=!0)),d=!0),this.hasCartesianSeries||o||\"mousewheel\"===n||(c=!0),i&&(this[e?\"mouseDownX\":\"mouseDownY\"]=i[e?\"chartX\":\"chartY\"]))}return d&&(r?aW(this,\"selection\",r,()=>{delete t.selection,t.trigger=\"zoom\",this.transform(t)}):(!c||p||this.resetZoomButton?!c&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw(\"zoom\"===n&&(this.options.chart.animation??this.pointCount<100)))),d}}az(a0.prototype,{callbacks:[],collectionsWithInit:{xAxis:[a0.prototype.addAxis,[!0]],yAxis:[a0.prototype.addAxis,[!1]],series:[a0.prototype.addSeries]},collectionsWithUpdate:[\"xAxis\",\"yAxis\",\"series\"],propsRequireDirtyBox:[\"backgroundColor\",\"borderColor\",\"borderWidth\",\"borderRadius\",\"plotBackgroundColor\",\"plotBackgroundImage\",\"plotBorderColor\",\"plotBorderWidth\",\"plotShadow\",\"shadow\"],propsRequireReflow:[\"margin\",\"marginTop\",\"marginRight\",\"marginBottom\",\"marginLeft\",\"spacing\",\"spacingTop\",\"spacingRight\",\"spacingBottom\",\"spacingLeft\"],propsRequireUpdateSeries:[\"chart.inverted\",\"chart.polar\",\"chart.ignoreHiddenSeries\",\"chart.type\",\"colors\",\"plotOptions\",\"time\",\"tooltip\"]});let{stop:a1}=tU,{composed:a2}=w,{addEvent:a3,createElement:a5,css:a6,defined:a9,erase:a4,merge:a8,pushUnique:a7}=V;function nt(){let t=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!t&&(this.scrollablePlotArea=t=new ni(this)),t?.applyFixed()}function ne(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class ni{static compose(t,e,i){a7(a2,this.compose)&&(a3(t,\"afterInit\",ne),a3(e,\"afterSetChartSize\",t=>this.afterSetSize(t.target,t)),a3(e,\"render\",nt),a3(i,\"show\",ne))}static afterSetSize(t,e){let i,s,o,{minWidth:r,minHeight:a}=t.options.chart.scrollablePlotArea||{},{clipBox:n,plotBox:h,inverted:l,renderer:d}=t;if(!d.forExport)if(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=a8(t.plotBox),h.width=t.plotWidth+=i,n[l?\"height\":\"width\"]+=i,o=!0)):a&&(t.scrollablePixelsY=s=Math.max(0,a-t.chartHeight),a9(s)&&(t.scrollablePlotBox=a8(t.plotBox),h.height=t.plotHeight+=s,n[l?\"width\":\"height\"]+=s,o=!1)),a9(o)){if(!e.skipAxes)for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&\"yAxis\"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}else delete t.scrollablePlotBox}constructor(t){let e,i=t.options.chart,s=eg.getRendererType(),o=i.scrollablePlotArea||{},r=this.moveFixedElements.bind(this),a={WebkitOverflowScrolling:\"touch\",overflowX:\"hidden\",overflowY:\"hidden\"};t.scrollablePixelsX&&(a.overflowX=\"auto\"),t.scrollablePixelsY&&(a.overflowY=\"auto\"),this.chart=t;let n=this.parentDiv=a5(\"div\",{className:\"highcharts-scrolling-parent\"},{position:\"relative\"},t.renderTo),h=this.scrollingContainer=a5(\"div\",{className:\"highcharts-scrolling\"},a,n),l=this.innerContainer=a5(\"div\",{className:\"highcharts-inner-container\"},void 0,h),d=this.fixedDiv=a5(\"div\",{className:\"highcharts-fixed\"},{position:\"absolute\",overflow:\"hidden\",pointerEvents:\"none\",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),c=this.fixedRenderer=new s(d,t.chartWidth,t.chartHeight,i.style);this.mask=c.path().attr({fill:i.backgroundColor||\"#fff\",\"fill-opacity\":o.opacity??.85,zIndex:-1}).addClass(\"highcharts-scrollable-mask\").add(),h.parentNode.insertBefore(d,h),a6(t.renderTo,{overflow:\"visible\"}),a3(t,\"afterShowResetZoom\",r),a3(t,\"afterApplyDrilldown\",r),a3(t,\"afterLayOutTitles\",r),a3(h,\"scroll\",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),l.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:a,container:n,plotHeight:h,plotLeft:l,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:g=0}=t,{scrollPositionX:u=0,scrollPositionY:f=0}=t.options.chart.scrollablePlotArea||{},m=r+p,x=a+g;e.setSize(r,a),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),a1(t.container),a6(n,{width:`${m}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:m,height:x,viewBox:[0,0,m,x].join(\" \")}),t.chartBackground?.attr({width:m,height:x}),a6(s,{width:`${r}px`,height:`${a}px`}),a9(i)||(s.scrollLeft=p*u,s.scrollTop=g*f);let y=d-o[0]-1,b=l-o[3]-1,v=d+h+o[2]+1,k=l+c+o[1]+1,w=l+c-p,M=d+h-g,S=[[\"M\",0,0]];p?S=[[\"M\",0,y],[\"L\",l-1,y],[\"L\",l-1,v],[\"L\",0,v],[\"Z\"],[\"M\",w,y],[\"L\",r,y],[\"L\",r,v],[\"L\",w,v],[\"Z\"]]:g&&(S=[[\"M\",b,0],[\"L\",b,d-1],[\"L\",k,d-1],[\"L\",k,0],[\"Z\"],[\"M\",b,M],[\"L\",b,a],[\"L\",k,a],[\"L\",k,M],[\"Z\"]]),\"adjustHeight\"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t,{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,a=ni.fixedSelectors;if(s&&!i?t=\".highcharts-yaxis\":s&&i||o&&!i?t=\".highcharts-xaxis\":o&&i&&(t=\".highcharts-yaxis\"),t&&!(this.chart.hasParallelCoordinates&&\".highcharts-yaxis\"===t))for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a7(a,e);else for(let t of[\".highcharts-xaxis\",\".highcharts-yaxis\"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a4(a,e);for(let t of a)[].forEach.call(e.querySelectorAll(t),t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents=\"auto\"})}}ni.fixedSelectors=[\".highcharts-breadcrumbs-group\",\".highcharts-contextbutton\",\".highcharts-caption\",\".highcharts-credits\",\".highcharts-drillup-button\",\".highcharts-legend\",\".highcharts-legend-checkbox\",\".highcharts-navigator-series\",\".highcharts-navigator-xaxis\",\".highcharts-navigator-yaxis\",\".highcharts-navigator\",\".highcharts-range-selector-group\",\".highcharts-reset-zoom\",\".highcharts-scrollbar\",\".highcharts-subtitle\",\".highcharts-title\"];let{format:ns}=ep,{series:no}=rk,{destroyObjectProperties:nr,fireEvent:na,getAlignFactor:nn,isNumber:nh,pick:nl}=V,nd=class{constructor(t,e,i,s,o){let r=t.chart.inverted,a=t.reversed;this.axis=t;let n=this.isNegative=!!i!=!!a;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?n?\"left\":\"right\":\"center\"),verticalAlign:e.verticalAlign||(r?\"middle\":n?\"bottom\":\"top\"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?n?\"right\":\"left\":\"center\")}destroy(){nr(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=s?ns(s,this,e):i.formatter.call(this);if(this.label)this.label.attr({text:o,visibility:\"hidden\"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,\"stack-labels\");let s={r:i.borderRadius||0,text:o,padding:nl(i.padding,5),visibility:\"hidden\"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s[\"stroke-width\"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,na(this,\"afterRender\")}setOffset(t,e,i,s,o,r){let{alignOptions:a,axis:n,label:h,options:l,textAlign:d}=this,c=n.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:g}=a;if(h&&p){let t=h.getBBox(void 0,0),e=h.padding,i=\"justify\"===nl(l.overflow,\"justify\"),s;a.x=l.x||0,a.y=l.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:g,textAlign:d});p.x-=o,p.y-=r,h.align(a,!1,p),(s=c.isInsidePlot(h.alignAttr.x+a.x+o,h.alignAttr.y+a.y+r))||(i=!1),i&&no.prototype.justifyDataLabel.call(n,h,a,h.alignAttr,t,p),h.attr({x:h.alignAttr.x,y:h.alignAttr.y,rotation:l.rotation,rotationOriginX:t.width*nn(l.textAlign||\"center\"),rotationOriginY:t.height/2}),nl(!i&&l.crop,!0)&&(s=nh(h.x)&&nh(h.y)&&c.isInsidePlot(h.x-e+(h.width||0),h.y)&&c.isInsidePlot(h.x+e,h.y)),h[s?\"show\":\"hide\"]()}na(this,\"afterSetOffset\",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*nn(i)-1),y:t.height/2*2*(1-nn(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:a,boxBottom:n}=t,h=e.stacking.usePercentage?100:nl(s,this.total,0),l=e.toPixels(h),d=t.xAxis||i.xAxis[0],c=nl(o,d.translate(this.x))+r,p=Math.abs(l-e.toPixels(n||nh(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),g=i.inverted,u=this.isNegative;return g?{x:(u?l:l-p)-i.plotLeft,y:d.height-c-a+d.top-i.plotTop,width:p,height:a}:{x:c+d.transB-i.plotLeft,y:(u?l-p:l)-i.plotTop,width:a,height:p}}},{getDeferredAnimation:nc}=tU,{series:{prototype:np}}=rk,{addEvent:ng,correctFloat:nu,defined:nf,destroyObjectProperties:nm,fireEvent:nx,isNumber:ny,objectEach:nb,pick:nv}=V;function nk(){let t=this.inverted;this.axes.forEach(t=>{t.stacking?.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis?.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,nv(e.options.stack,\"\"),t?i.top:i.left,t?i.height:i.width].join(\",\"))})}function nw(){let t=this.stacking;if(t){let e=t.stacks;nb(e,(t,i)=>{nm(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function nM(){this.stacking||(this.stacking=new nL(this))}function nS(t,e,i,s){return!nf(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(\",\"),t}function nT(){let t,e=this,i=e.yAxis,s=e.stackKey||\"\",o=i.stacking.stacks,r=e.getColumn(\"x\",!0),a=e.options.stacking,n=e[a+\"Stacker\"];n&&[s,\"-\"+s].forEach(i=>{let s=r.length,a,h,l;for(;s--;)a=r[s],t=e.getStackIndicator(t,a,e.index,i),h=o[i]?.[a],(l=h?.points[t.key||\"\"])&&n.call(e,l,h,s)})}function nC(t,e,i){let s=e.total?100/e.total:0;t[0]=nu(t[0]*s),t[1]=nu(t[1]*s),this.stackedYData[i]=t[1]}function nA(t){(this.is(\"column\")||this.is(\"columnrange\"))&&(this.options.centerInCategory&&this.chart.series.length>1?np.setStackedPoints.call(this,t,\"group\"):t.stacking.resetStacks())}function nP(t,e){let i,s,o,r,a,n,h,l=e||this.options.stacking;if(!l||!this.reserveSpace()||(({group:\"xAxis\"})[l]||\"yAxis\")!==t.coll)return;let d=this.getColumn(\"x\",!0),c=this.getColumn(this.pointValKey||\"y\",!0),p=[],g=c.length,u=this.options,f=u.threshold||0,m=u.startFromThreshold?f:0,x=u.stack,y=e?`${this.type},${l}`:this.stackKey||\"\",b=\"-\"+y,v=this.negStacks,k=t.stacking,w=k.stacks,M=k.oldStacks;for(k.stacksTouched+=1,h=0;h<g;h++){let e=d[h]||0,g=c[h],u=ny(g)&&g||0;n=(i=this.getStackIndicator(i,e,this.index)).key||\"\",w[a=(s=v&&u<(m?0:f))?b:y]||(w[a]={}),w[a][e]||(M[a]?.[e]?(w[a][e]=M[a][e],w[a][e].total=null):w[a][e]=new nd(t,t.options.stackLabels,!!s,e,x)),o=w[a][e],null!==g?(o.points[n]=o.points[this.index]=[nv(o.cumulative,m)],nf(o.cumulative)||(o.base=n),o.touched=k.stacksTouched,i.index>0&&!1===this.singleStacks&&(o.points[n][0]=o.points[this.index+\",\"+e+\",0\"][0])):(delete o.points[n],delete o.points[this.index]);let S=o.total||0;\"percent\"===l?(r=s?y:b,S=v&&w[r]?.[e]?(r=w[r][e]).total=Math.max(r.total||0,S)+Math.abs(u):nu(S+Math.abs(u))):\"group\"===l?ny(g)&&S++:S=nu(S+u),\"group\"===l?o.cumulative=(S||1)-1:o.cumulative=nu(nv(o.cumulative,m)+u),o.total=S,null!==g&&(o.points[n].push(o.cumulative),p[h]=o.cumulative,o.hasValidPoints=!0)}\"percent\"===l&&(k.usePercentage=!0),\"group\"!==l&&(this.stackedYData=p),k.oldStacks={}}class nL{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e,i=this.axis,s=i.series,o=\"xAxis\"===i.coll,r=i.options.reversedStacks,a=s.length;for(this.resetStacks(),this.usePercentage=!1,e=a;e--;)t=s[r?e:a-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e<a;e++)s[e].modifyStacks();nx(i,\"afterBuildStacks\")}cleanStacks(){this.oldStacks&&(this.stacks=this.oldStacks,nb(this.stacks,t=>{nb(t,t=>{t.cumulative=t.total})}))}resetStacks(){nb(this.stacks,t=>{nb(t,(e,i)=>{ny(e.touched)&&e.touched<this.stacksTouched?(e.destroy(),delete t[i]):(e.total=null,e.cumulative=null)})})}renderStackTotals(){let t=this.axis,e=t.chart,i=e.renderer,s=this.stacks,o=nc(e,t.options.stackLabels?.animation||!1),r=this.stackTotalGroup=this.stackTotalGroup||i.g(\"stack-labels\").attr({zIndex:6,opacity:0}).add();r.translate(e.plotLeft,e.plotTop),nb(s,t=>{nb(t,t=>{t.render(r)})}),r.animate({opacity:1},o)}}(g||(g={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(ng(t,\"init\",nM),ng(t,\"destroy\",nw),s.getStacks=nk,o.getStackIndicator=nS,o.modifyStacks=nT,o.percentStacker=nC,o.setGroupedPoints=nA,o.setStackedPoints=nP)};let nO=g,{defined:nE,merge:nI,isObject:nD}=V;class nB extends r1{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,a=s.graph,n=a?\"animate\":\"attr\",h=s.dashStyle||t.dashStyle;a?(a.endX=this.preventGraphAnimation?null:e.xMap,a.animate({d:e})):e.length&&(s.graph=a=this.chart.renderer.path(e).addClass(\"highcharts-graph\"+(o?` highcharts-zone-graph-${o-1} `:\" \")+(o&&s.className||\"\")).attr({zIndex:1}).add(this.group)),a&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||\"#cccccc\",\"stroke-width\":t.lineWidth||0,fill:this.fillGraph&&this.color||\"none\"},h?r.dashstyle=h:\"square\"!==t.linecap&&(r[\"stroke-linecap\"]=r[\"stroke-linejoin\"]=\"round\"),a[n](r).shadow(t.shadow&&nI({filterUnits:\"userSpaceOnUse\"},nD(t.shadow)?t.shadow:{}))),a&&(a.startX=e.xMap,a.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],a=[],n,h=o.step,l=(t=t||s.points).reversed;return l&&t.reverse(),(h=({right:1,center:2})[h]||h&&3)&&l&&(h=4-h),(t=this.getValidPoints(t,!1,o.nullInteraction||!(o.connectNulls&&!e&&!i))).forEach(function(l,d){let c,p=l.plotX,g=l.plotY,u=t[d-1],f=l.isNull||\"number\"!=typeof g;(l.leftCliff||u?.rightCliff)&&!i&&(n=!0),f&&!nE(e)&&d>0?n=!o.connectNulls:f&&!e?n=!0:(0===d||n?c=[[\"M\",l.plotX,l.plotY]]:s.getPointSpline?c=[s.getPointSpline(t,l,d)]:h?(c=1===h?[[\"L\",u.plotX,g]]:2===h?[[\"L\",(u.plotX+p)/2,u.plotY],[\"L\",(u.plotX+p)/2,g]]:[[\"L\",p,u.plotY]]).push([\"L\",p,g]):c=[[\"L\",p,g]],a.push(l.x),h&&(a.push(l.x),2===h&&a.push(l.x)),r.push.apply(r,c),n=!1)}),r.xMap=a,s.graphPath=r,r}}nB.defaultOptions=nI(r1.defaultOptions,{legendSymbol:\"lineMarker\"}),rk.registerSeriesType(\"line\",nB);let{seriesTypes:{line:nN}}=rk,{extend:nz,merge:nR,objectEach:nW,pick:nH}=V;class nX extends nN{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,a=i.area,n=a?\"animate\":\"attr\";a?(a.endX=this.preventGraphAnimation?null:t.xMap,a.animate({d:t})):(o.zIndex=0,(a=i.area=this.chart.renderer.path(t).addClass(\"highcharts-area\"+(s?` highcharts-zone-area-${s-1} `:\" \")+(s&&i.className||\"\")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o[\"fill-opacity\"]=r?1:e.fillOpacity??.75,a.css({pointerEvents:this.stickyTracking?\"none\":\"auto\"})),a[n](o),a.startX=t.xMap,a.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s,o=nN.prototype.getGraphPath,r=this.options,a=r.stacking,n=this.yAxis,h=[],l=[],d=this.index,c=n.stacking.stacks[this.stackKey],p=r.threshold,g=Math.round(n.getThreshold(r.threshold)),u=nH(r.connectNulls,\"percent\"===a),f=function(i,s,o){let r=t[i],u=a&&c[r.x].points[d],f=r[o+\"Null\"]||0,m=r[o+\"Cliff\"]||0,x,y,b=!0;m||f?(x=(f?u[0]:u[1])+m,y=u[0]+m,b=!!f):!a&&t[s]&&t[s].isNull&&(x=y=p),void 0!==x&&(l.push({plotX:e,plotY:null===x?g:n.getThreshold(x),isNull:b,isCliff:!0}),h.push({plotX:e,plotY:null===y?g:n.getThreshold(y),doCurve:!1}))};t=t||this.points,a&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o<r;++o)a||(t[o].leftCliff=t[o].rightCliff=t[o].leftNull=t[o].rightNull=void 0),i=t[o].isNull,e=nH(t[o].rectPlotX,t[o].plotX),s=a?nH(t[o].yBottom,g):g,(!i||u)&&(u||f(o,o-1,\"left\"),i&&!a&&u||(l.push(t[o]),h.push({x:o,plotX:e,plotY:s})),u||f(o,o+1,\"right\"));let m=o.call(this,l,!0,!0);h.reversed=!0;let x=o.call(this,h,!0,!0),y=x[0];y&&\"M\"===y[0]&&(x[0]=[\"L\",y[1],y[2]]);let b=m.concat(x);b.length&&b.push([\"Z\"]);let v=o.call(this,l,!1,u);return this.chart.series.length>1&&a&&l.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=m.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,a=r.stacking.stacks[this.stackKey],n={},h=r.series,l=h.length,d=r.options.reversedStacks?1:-1,c=h.indexOf(e);if(t=t||this.points,this.options.stacking){for(let e=0;e<t.length;e++)t[e].leftNull=t[e].rightNull=void 0,n[t[e].x]=t[e];nW(a,function(t,e){null!==t.total&&s.push(e)}),s.sort(function(t,e){return t-e});let p=h.map(t=>t.visible);s.forEach(function(t,g){let u=0,f,m;if(n[t]&&!n[t].isNull)i.push(n[t]),[-1,1].forEach(function(i){let o=1===i?\"rightNull\":\"leftNull\",r=a[s[g+i]],u=0;if(r){let i=c;for(;i>=0&&i<l;){let s=h[i].index;!(f=r.points[s])&&(s===e.index?n[t][o]=!0:p[i]&&(m=a[t].points[s])&&(u-=m[1]-m[0])),i+=d}}n[t][1===i?\"rightCliff\":\"leftCliff\"]=u});else{let e=c;for(;e>=0&&e<l;){let i=h[e].index;if(f=a[t].points[i]){u=f[1];break}e+=d}u=nH(u,0),u=r.translate(u,0,1,0,1),i.push({isNull:!0,plotX:o.translate(t,0,0,0,1),x:t,plotY:u,yBottom:u})}})}return i}}nX.defaultOptions=nR(nN.defaultOptions,{threshold:0,legendSymbol:\"areaMarker\"}),nz(nX.prototype,{singleStacks:!1}),rk.registerSeriesType(\"area\",nX);let{line:nF}=rk.seriesTypes,{merge:nG,pick:nj}=V;class nY extends nF{getPointSpline(t,e,i){let s,o,r,a,n=e.plotX||0,h=e.plotY||0,l=t[i-1],d=t[i+1];function c(t){return t&&!t.isNull&&!1!==t.doCurve&&!e.isCliff}if(c(l)&&c(d)){let t=l.plotX||0,i=l.plotY||0,c=d.plotX||0,p=d.plotY||0,g=0;s=(1.5*n+t)/2.5,o=(1.5*h+i)/2.5,r=(1.5*n+c)/2.5,a=(1.5*h+p)/2.5,r!==s&&(g=(a-o)*(r-n)/(r-s)+h-a),o+=g,a+=g,o>i&&o>h?(o=Math.max(i,h),a=2*h-o):o<i&&o<h&&(o=Math.min(i,h),a=2*h-o),a>p&&a>h?(a=Math.max(p,h),o=2*h-a):a<p&&a<h&&(a=Math.min(p,h),o=2*h-a),e.rightContX=r,e.rightContY=a,e.controlPoints={low:[s,o],high:[r,a]}}let p=[\"C\",nj(l.rightContX,l.plotX,0),nj(l.rightContY,l.plotY,0),nj(s,n,0),nj(o,h,0),n,h];return l.rightContX=l.rightContY=void 0,p}}nY.defaultOptions=nG(nF.defaultOptions),rk.registerSeriesType(\"spline\",nY);let nU=nY,{area:n$,area:{prototype:nV}}=rk.seriesTypes,{extend:nZ,merge:n_}=V;class nq extends nU{}nq.defaultOptions=n_(nU.defaultOptions,n$.defaultOptions),nZ(nq.prototype,{getGraphPath:nV.getGraphPath,getStackPoints:nV.getStackPoints,drawGraph:nV.drawGraph}),rk.registerSeriesType(\"areaspline\",nq);let{animObject:nK}=tU,{parse:nJ}=tL,{noop:nQ}=w,{clamp:n0,crisp:n1,defined:n2,extend:n3,fireEvent:n5,isArray:n6,isNumber:n9,merge:n4,pick:n8,objectEach:n7}=V;class ht extends r1{animate(t){let e,i,s=this,o=this.yAxis,r=o.pos,a=o.reversed,n=s.options,{clipOffset:h,inverted:l}=this.chart,d={},c=l?\"translateX\":\"translateY\";t&&h?(d.scaleY=.001,i=n0(o.toPixels(n.threshold||0),r,r+o.len),l?d.translateX=(i+=a?-Math.floor(h[0]):Math.ceil(h[2]))-o.len:d.translateY=i+=a?Math.ceil(h[0]):-Math.floor(h[2]),s.clipBox&&s.setClip(),s.group.attr(d)):(e=Number(s.group.attr(c)),s.group.animate({scaleY:1},n3(nK(s.options.animation),{step:function(t,i){s.group&&(d[c]=e+i.pos*(r-e),s.group.attr(d))}})))}init(t,e){super.init.apply(this,arguments);let i=this;(t=i.chart).hasRendered&&t.series.forEach(function(t){t.type===i.type&&(t.isDirty=!0)})}getColumnMetrics(){let t=this,e=t.options,i=t.xAxis,s=t.yAxis,o=i.options.reversedStacks,r=i.reversed&&!o||!i.reversed&&o,a={},n,h=0;!1===e.grouping?h=1:t.chart.series.forEach(function(e){let i,o=e.yAxis,r=e.options;e.type===t.type&&e.reserveSpace()&&s.len===o.len&&s.pos===o.pos&&(r.stacking&&\"group\"!==r.stacking?(void 0===a[n=e.stackKey]&&(a[n]=h++),i=a[n]):!1!==r.grouping&&(i=h++),e.columnIndex=i)});let l=Math.min(Math.abs(i.transA)*(!i.brokenAxis?.hasBreaks&&i.ordinal?.slope||e.pointRange||i.closestPointRange||i.tickInterval||1),i.len),d=l*e.groupPadding,c=(l-2*d)/(h||1),p=Math.min(e.maxPointWidth||i.len,n8(e.pointWidth,c*(1-2*e.pointPadding))),g=(t.columnIndex||0)+ +!!r;return t.columnMetrics={width:p,offset:(c-p)/2+(d+g*c-l/2)*(r?-1:1),paddedWidth:c,columnCount:h},t.columnMetrics}crispCol(t,e,i,s){let o=this.borderWidth,r=this.chart.inverted;return s=n1(e+s,o,r)-(e=n1(e,o,r)),this.options.crisp&&(i=n1(t+i,o)-(t=n1(t,o))),{x:t,y:e,width:i,height:s}}adjustForMissingColumns(t,e,i,s){if(!i.isNull&&s.columnCount>1){let o=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),r=0,a=0;n7(this.xAxis.stacking?.stacks,t=>{let e=\"number\"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],n={};if(e&&n6(s)){let t=this.index,i=Object.keys(e).filter(t=>!t.match(\",\")&&e[t]&&e[t].length>1).map(parseFloat).filter(t=>-1!==o.indexOf(t)).filter(e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(n2(s)){if(n9(n[s]))return t===e&&(t=n[s]),!1;n[s]=e}return!0}).sort((t,e)=>e-t);r=i.indexOf(t),a=i.length}}),r=this.xAxis.reversed?a-1-r:r;let n=(a-1)*s.paddedWidth+e;t=(i.plotX||0)+n/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=n8(i.borderWidth,+!s),r=t.xAxis,a=t.yAxis,n=i.threshold,h=n8(i.minPointLength,5),l=t.getColumnMetrics(),d=l.width,c=t.pointXOffset=l.offset,p=t.dataMin,g=t.dataMax,u=t.translatedThreshold=a.getThreshold(n),f=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(f=Math.ceil(f)),r1.prototype.translate.apply(t),t.points.forEach(function(s){let o=n8(s.yBottom,u),m=999+Math.abs(o),x=s.plotX||0,y=n0(s.plotY,-m,a.len+m),b,v=Math.min(y,o),k=Math.max(y,o)-v,w=d,M=x+c,S=f;h&&Math.abs(k)<h&&(k=h,b=!a.reversed&&!s.negative||a.reversed&&s.negative,n9(n)&&n9(g)&&s.y===n&&g<=n&&(a.min||0)<n&&(p!==g||(a.max||0)<=n)&&(b=!b,s.negative=!s.negative),v=Math.abs(v-u)>h?o-h:u-(b?h:0)),n2(s.options.pointWidth)&&(M-=Math.round(((w=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(M=t.adjustForMissingColumns(M,w,s,l)),s.barX=M,s.pointWidth=w,s.tooltipPos=e.inverted?[n0(a.len+a.pos-e.plotLeft-y,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-M-S/2,k]:[r.left-e.plotLeft+M+S/2,n0(y+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),k],s.shapeType=t.pointClass.prototype.shapeType||\"roundedRect\",s.shapeArgs=t.crispCol(M,v,S,s.isNull?0:k)}),n5(this,\"afterColumnTranslate\")}drawGraph(){this.group[this.dense?\"addClass\":\"removeClass\"](\"highcharts-dense-data\")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||\"borderColor\",r=s[\"stroke-width\"]||\"borderWidth\",a,n,h,l=t&&t.color||this.color,d=t&&t[o]||i[o]||l,c=t&&t.options.dashStyle||i.dashStyle,p=t&&t[r]||i[r]||this[r]||0,g=t?.isNull&&i.nullInteraction?0:t?.opacity??i.opacity??1;t&&this.zones.length&&(n=t.getZone(),l=t.options.color||n&&(n.color||t.nonZonedColor)||this.color,n&&(d=n.borderColor||d,c=n.dashStyle||c,p=n.borderWidth||p)),e&&t&&(h=(a=n4(i.states[e],t.options.states&&t.options.states[e]||{})).brightness,l=a.color||void 0!==h&&nJ(l).brighten(a.brightness).get()||l,d=a[o]||d,p=a[r]||p,c=a.dashStyle||c,g=n8(a.opacity,g));let u={fill:l,stroke:d,\"stroke-width\":p,opacity:g};return c&&(u.dashstyle=c),u}drawPoints(t=this.points){let e,i=this,s=this.chart,o=i.options,r=o.nullInteraction,a=s.renderer,n=o.animationLimit||250;t.forEach(function(t){let h=t.plotY,l=t.graphic,d=!!l,c=l&&s.pointCount<n?\"animate\":\"attr\";n9(h)&&(null!==t.y||r)?(e=t.shapeArgs,l&&t.hasNewShapeType()&&(l=l.destroy()),i.enabledDataSorting&&(t.startXPos=i.xAxis.reversed?-(e&&e.width||0):i.xAxis.width),!l&&(t.graphic=l=a[t.shapeType](e).add(t.group||i.group),l&&i.enabledDataSorting&&s.hasRendered&&s.pointCount<n&&(l.attr({x:t.startXPos}),d=!0,c=\"animate\")),l&&d&&l[c](n4(e)),s.styledMode||l[c](i.pointAttribs(t,t.selected&&\"select\")).shadow(!1!==t.allowShadow&&o.shadow),l&&(l.addClass(t.getClassName(),!0),l.attr({visibility:t.visible?\"inherit\":\"hidden\"}))):l&&(t.graphic=l.destroy())})}drawTracker(t=this.points){let e,i=this,s=i.chart,o=s.pointer,r=function(t){o?.normalize(t);let e=o?.getPointFromEvent(t);o&&e&&i.options.enableMouseTracking&&(s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})||o?.inClass(t.target,\"highcharts-data-label\"))&&(o.isDirectTouch=!0,e.onMouseOver(t))};t.forEach(function(t){e=n6(t.dataLabels)?t.dataLabels:t.dataLabel?[t.dataLabel]:[],t.graphic&&(t.graphic.element.point=t),e.forEach(function(e){(e.div||e.element).point=t})}),i._hasTracking||(i.trackerGroups.forEach(function(t){i[t]&&(i[t].addClass(\"highcharts-tracker\").on(\"mouseover\",r).on(\"mouseout\",function(t){o?.onTrackerMouseOut(t)}).on(\"touchstart\",r),!s.styledMode&&i.options.cursor&&i[t].css({cursor:i.options.cursor}))}),i._hasTracking=!0),n5(this,\"afterDrawTracker\")}remove(){let t=this,e=t.chart;e.hasRendered&&e.series.forEach(function(e){e.type===t.type&&(e.isDirty=!0)}),r1.prototype.remove.apply(t,arguments)}}ht.defaultOptions=n4(r1.defaultOptions,{borderRadius:3,centerInCategory:!1,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:\"#cccccc\",borderColor:\"#000000\"}},dataLabels:{align:void 0,verticalAlign:void 0,y:void 0},startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:\"#ffffff\"}),n3(ht.prototype,{directTouch:!0,getSymbol:nQ,negStacks:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"]}),rk.registerSeriesType(\"column\",ht);let he=ht,{getDeferredAnimation:hi}=tU,{format:hs}=ep,{defined:ho,extend:hr,fireEvent:ha,getAlignFactor:hn,isArray:hh,isString:hl,merge:hd,objectEach:hc,pick:hp,pInt:hg,splat:hu}=V;!function(t){function e(){return h(this).some(t=>t?.enabled)}function i(t,e,i,s,o){let{chart:r,enabledDataSorting:a}=this,n=this.isCartesian&&r.inverted,h=t.plotX,l=t.plotY,d=i.rotation||0,c=ho(h)&&ho(l)&&r.isInsidePlot(h,Math.round(l),{inverted:n,paneCoordinates:!0,series:this}),p=0===d&&\"justify\"===hp(i.overflow,a?\"none\":\"justify\"),g=this.visible&&!1!==t.visible&&ho(h)&&(t.series.forceDL||a&&!p||c||hp(i.inside,!!this.options.stacking)&&s&&r.isInsidePlot(h,n?s.x+1:s.y+s.height-1,{inverted:n,paneCoordinates:!0,series:this})),u=t.pos();if(g&&u){var f;let h=e.getBBox(),l=e.getBBox(void 0,0);if(s=hr({x:u[0],y:Math.round(u[1]),width:0,height:0},s||{}),\"plotEdges\"===i.alignTo&&this.isCartesian&&(s[n?\"x\":\"y\"]=0,s[n?\"width\":\"height\"]=this.yAxis?.len||0),hr(i,{width:h.width,height:h.height}),f=s,a&&this.xAxis&&!p&&this.setDataLabelStartPos(t,e,o,c,f),e.align(hd(i,{width:l.width,height:l.height}),!1,s,!1),e.alignAttr.x+=hn(i.align)*(l.width-h.width),e.alignAttr.y+=hn(i.verticalAlign)*(l.height-h.height),e[e.placed?\"animate\":\"attr\"]({\"text-align\":e.alignAttr[\"text-align\"]||\"center\",x:e.alignAttr.x+(h.width-l.width)/2,y:e.alignAttr.y+(h.height-l.height)/2,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2}),p&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,h,s,o);else if(hp(i.crop,!0)){let{x:t,y:i}=e.alignAttr;g=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+h.width-1,i+h.height-1,{paneCoordinates:!0,series:this})}i.shape&&!d&&e[o?\"attr\":\"animate\"]({anchorX:u[0],anchorY:u[1]})}o&&a&&(e.placed=!1),g||a&&!p?(e.show(),e.placed=!0):(e.hide(),e.placed=!1)}function s(){return this.plotGroup(\"dataLabelsGroup\",\"data-labels\",this.hasRendered?\"inherit\":\"hidden\",this.options.dataLabels.zIndex||6,this.chart.dataLabelsGroup)}function o(t){let e=this.hasRendered||0,i=this.initDataLabelsGroup().attr({opacity:+e});return!e&&i&&(this.visible&&i.show(),this.options.animation?i.animate({opacity:1},t):i.attr({opacity:1})),i}function r(t){let e;t=t||this.points;let i=this,s=i.chart,o=i.options,r=s.renderer,{backgroundColor:a,plotBackgroundColor:l}=s.options.chart,d=r.getContrast(hl(l)&&l||hl(a)&&a||\"#000000\"),c=h(i),{animation:p,defer:g}=c[0],u=g?hi(s,p,i):{defer:0,duration:0};ha(this,\"drawDataLabels\"),i.hasDataLabels?.()&&(e=this.initDataLabels(u),t.forEach(t=>{let a=t.dataLabels||[],h=t.color||i.color;hu(n(c,t.dlOptions||t.options?.dataLabels)).forEach((n,l)=>{let c=n.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return\">\"===e&&s>o||\"<\"===e&&s<o||\">=\"===e&&s>=o||\"<=\"===e&&s<=o||\"==\"===e&&s==o||\"===\"===e&&s===o||\"!=\"===e&&s!=o||\"!==\"===e&&s!==o||!1}return!0}(t,n),{backgroundColor:p,borderColor:g,distance:u,style:f={}}=n,m,x,y,b={},v=a[l],k=!v,w;c&&(x=ho(m=hp(n[t.formatPrefix+\"Format\"],n.format))?hs(m,t,s):(n[t.formatPrefix+\"Formatter\"]||n.formatter).call(t,n),y=n.rotation,!s.styledMode&&(f.color=hp(n.color,f.color,hl(i.color)?i.color:void 0,\"#000000\"),\"contrast\"===f.color?(\"none\"!==p&&(w=p),t.contrastColor=r.getContrast(\"auto\"!==w&&hl(w)&&w||(hl(h)?h:\"\")),f.color=w||!ho(u)&&n.inside||0>hg(u||0)||o.stacking?t.contrastColor:d):delete t.contrastColor,o.cursor&&(f.cursor=o.cursor)),b={r:n.borderRadius||0,rotation:y,padding:n.padding,zIndex:1},s.styledMode||(b.fill=\"auto\"===p?t.color:p,b.stroke=\"auto\"===g?t.color:g,b[\"stroke-width\"]=n.borderWidth),hc(b,(t,e)=>{void 0===t&&delete b[e]})),!v||c&&ho(x)&&!!(v.div||v.text?.foreignObject)==!!n.useHTML&&(v.rotation&&n.rotation||v.rotation===n.rotation)||(v=void 0,k=!0),c&&ho(x)&&\"\"!==x&&(v?b.text=x:(v=r.label(x,0,0,n.shape,void 0,void 0,n.useHTML,void 0,\"data-label\")).addClass(\" highcharts-data-label-color-\"+t.colorIndex+\" \"+(n.className||\"\")+(n.useHTML?\" highcharts-tracker\":\"\")),v&&(v.options=n,v.attr(b),s.styledMode?f.width&&v.css({width:f.width,textOverflow:f.textOverflow,whiteSpace:f.whiteSpace}):v.css(f).shadow(n.shadow),ha(v,\"beforeAddingDataLabel\",{labelOptions:n,point:t}),v.added||v.add(e),i.alignDataLabel(t,v,n,void 0,k),v.isActive=!0,a[l]&&a[l]!==v&&a[l].destroy(),a[l]=v))});let l=a.length;for(;l--;)a[l]?.isActive?a[l].isActive=!1:(a[l]?.destroy(),a.splice(l,1));t.dataLabel=a[0],t.dataLabels=a})),ha(this,\"afterDrawDataLabels\")}function a(t,e,i,s,o,r){let a=this.chart,n=e.align,h=e.verticalAlign,l=t.box?0:t.padding||0,d=a.inverted?this.yAxis:this.xAxis,c=d?d.left-a.plotLeft:0,p=a.inverted?this.xAxis:this.yAxis,g=p?p.top-a.plotTop:0,{x:u=0,y:f=0}=e,m,x;return(m=(i.x||0)+l+c)<0&&(\"right\"===n&&u>=0?(e.align=\"left\",e.inside=!0):u-=m,x=!0),(m=(i.x||0)+s.width-l+c)>a.plotWidth&&(\"left\"===n&&u<=0?(e.align=\"right\",e.inside=!0):u+=a.plotWidth-m,x=!0),(m=i.y+l+g)<0&&(\"bottom\"===h&&f>=0?(e.verticalAlign=\"top\",e.inside=!0):f-=m,x=!0),(m=(i.y||0)+s.height-l+g)>a.plotHeight&&(\"top\"===h&&f<=0?(e.verticalAlign=\"bottom\",e.inside=!0):f+=a.plotHeight-m,x=!0),x&&(e.x=u,e.y=f,t.placed=!r,t.align(e,void 0,o)),x}function n(t,e){let i=[],s;if(hh(t)&&!hh(e))i=t.map(function(t){return hd(t,e)});else if(hh(e)&&!hh(t))i=e.map(function(e){return hd(t,e)});else if(hh(t)||hh(e)){if(hh(t)&&hh(e))for(s=Math.max(t.length,e.length);s--;)i[s]=hd(t[s],e[s])}else i=hd(t,e);return i}function h(t){let e=t.chart.options.plotOptions;return hu(n(n(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}function l(t,e,i,s,o){let r=this.chart,a=r.inverted,n=this.xAxis,h=n.reversed,l=((a?e.height:e.width)||0)/2,d=t.pointWidth,c=d?d/2:0;e.startXPos=a?o.x:h?-l-c:n.width-l+c,e.startYPos=a?h?this.yAxis.height-l+c:-l-c:o.y,s?\"hidden\"===e.visibility&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),r.hasRendered&&(i&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}t.compose=function(t){let h=t.prototype;h.initDataLabels||(h.initDataLabels=o,h.initDataLabelsGroup=s,h.alignDataLabel=i,h.drawDataLabels=r,h.justifyDataLabel=a,h.mergeArrays=n,h.setDataLabelStartPos=l,h.hasDataLabels=e)}}(u||(u={}));let hf=u,{composed:hm}=w,{series:hx}=rk,{merge:hy,pushUnique:hb}=V;!function(t){function e(t,e,i,s,o){let{chart:r,options:a}=this,n=r.inverted,h=this.xAxis?.len||r.plotSizeX||0,l=this.yAxis?.len||r.plotSizeY||0,d=t.dlBox||t.shapeArgs,c=t.below??(t.plotY||0)>(this.translatedThreshold??l),p=i.inside??!!a.stacking;if(d){if(s=hy(d),\"allow\"!==i.overflow||!1!==i.crop||!1!==a.clip){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-l;t>0&&t<s.height-1&&(s.height-=t)}n&&(s={x:l-s.y-s.height,y:h-s.x-s.width,width:s.height,height:s.width}),p||(n?(s.x+=c?0:s.width,s.width=0):(s.y+=c?s.height:0,s.height=0))}i.align??(i.align=!n||p?\"center\":c?\"right\":\"left\"),i.verticalAlign??(i.verticalAlign=n||p?\"middle\":c?\"top\":\"bottom\"),hx.prototype.alignDataLabel.call(this,t,e,i,s,o),i.inside&&t.contrastColor&&e.css({color:t.contrastColor})}t.compose=function(t){hf.compose(hx),hb(hm,\"ColumnDataLabel\")&&(t.prototype.alignDataLabel=e)}}(f||(f={}));let hv=f,{extend:hk,merge:hw}=V;class hM extends he{}hM.defaultOptions=hw(he.defaultOptions,{}),hk(hM.prototype,{inverted:!0}),rk.registerSeriesType(\"bar\",hM);let{column:hS,line:hT}=rk.seriesTypes,{addEvent:hC,extend:hA,merge:hP}=V;class hL extends hT{applyJitter(){let t=this,e=this.options.jitter,i=this.points.length;e&&this.points.forEach(function(s,o){[\"x\",\"y\"].forEach(function(r,a){if(e[r]&&!s.isNull){let n=`plot${r.toUpperCase()}`,h=t[`${r}Axis`],l=e[r]*h.transA;if(h&&!h.logarithmic){let t=Math.max(0,(s[n]||0)-l),e=Math.min(h.len,(s[n]||0)+l);s[n]=t+(e-t)*function(t){let e=1e4*Math.sin(t);return e-Math.floor(e)}(o+a*i),\"x\"===r&&(s.clientX=s.plotX)}}})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}hL.defaultOptions=hP(hT.defaultOptions,{lineWidth:0,findNearestPointBy:\"xy\",jitter:{x:0,y:0},marker:{enabled:!0},tooltip:{headerFormat:'<span style=\"color:{point.color}\">\u25CF</span> <span style=\"font-size: 0.8em\"> {series.name}</span><br/>',pointFormat:\"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>\"}}),hA(hL.prototype,{drawTracker:hS.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:[\"group\",\"markerGroup\",\"dataLabelsGroup\"]}),hC(hL,\"afterTranslate\",function(){this.applyJitter()}),rk.registerSeriesType(\"scatter\",hL);let{deg2rad:hO}=w,{fireEvent:hE,isNumber:hI,pick:hD,relativeLength:hB}=V;!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,h,l=t.size,d=t.innerSize||0,c,p;\"string\"==typeof l&&(l=parseFloat(l)),\"string\"==typeof d&&(d=parseFloat(d));let g=[hD(r?.[0],\"50%\"),hD(r?.[1],\"50%\"),hD(l&&l<0?void 0:t.size,\"100%\"),hD(d&&d<0?void 0:t.innerSize||0,\"0%\")];for(!e.angular||this instanceof r1||(g[3]=0),c=0;c<4;++c)p=g[c],h=c<2||2===c&&/%$/.test(p),g[c]=hB(p,[s,o,a,g[2]][c])+(h?i:0);return g[3]>g[2]&&(g[3]=g[2]),hI(n)&&2*n<g[2]&&n>0&&(g[3]=g[2]-2*n),hE(this,\"afterGetCenter\",{positions:g}),g},t.getStartAndEndRadians=function(t,e){let i=hI(t)?t:0,s=hI(e)&&e>i&&e-i<360?e:i+360;return{start:hO*(i+-90),end:hO*(s+-90)}}}(m||(m={}));let hN=m,{setAnimation:hz}=tU,{addEvent:hR,defined:hW,extend:hH,isNumber:hX,pick:hF,relativeLength:hG}=V;class hj extends oK{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name=t.chart.options.lang.pieSliceName);let s=t=>{this.slice(\"select\"===t.type)};hR(this,\"select\",s),hR(this,\"unselect\",s)}isValid(){return hX(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;hz(i,s.chart),e=hF(e,!0),this.sliced=this.options.sliced=t=hW(t)?t:!this.sliced,s.options.data[s.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}hH(hj.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?[\"C\",t.x+(\"left\"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:[\"L\",s.x,s.y];return[[\"M\",t.x,t.y],r,[\"L\",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[[\"M\",t.x,t.y],[\"L\",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:a}=this,[n,h,l]=a.center,d=l/2,{plotLeft:c,plotWidth:p}=a.chart,g=\"left\"===t.alignment,{x:u,y:f}=t,m=o.x;if(i.crookDistance){let t=hG(i.crookDistance,1);m=g?n+d+(p+c-n-d)*(1-t):c+(n-d)*t}else m=n+(h-f)*Math.tan(s-Math.PI/2);let x=[[\"M\",u,f]];return(g?m<=u&&m>=o.x:m>=u&&m<=o.x)&&x.push([\"L\",m,f]),x.push([\"L\",o.x,o.y],[\"L\",r.x,r.y]),x}}});let{getStartAndEndRadians:hY}=hN,{noop:hU}=w,{clamp:h$,extend:hV,fireEvent:hZ,merge:h_,pick:hq}=V;class hK extends r1{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:hq(t.startR,e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))})}drawEmpty(){let t,e,i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass(\"highcharts-empty-series\").add(this.group)),this.graph.attr({d:is.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({\"stroke-width\":o.borderWidth,fill:o.fillColor||\"none\",stroke:o.color||\"#cccccc\"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,a=s.dataLabelPosition,n=a?.distance||0,h=Math.asin(h$((t-o[1])/(r+n),-1,1));return o[0]+Math.cos(h)*(r+n)*(e?-1:1)+(n>0?(e?-1:1)*(s.padding||0):0)}hasData(){return this.points.some(t=>t.visible)}redrawPoints(){let t,e,i,s,o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(a){let n={};e=a.graphic,!a.isNull&&e?(s=a.shapeArgs,t=a.getTranslate(),r.styledMode||(i=o.pointAttribs(a,a.selected&&\"select\")),a.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({\"stroke-linejoin\":\"round\"}),a.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||h_(!0,n,i),h_(!0,n,s,t),e.animate(n)),e.attr({visibility:a.visible?\"inherit\":\"hidden\"}),e.addClass(a.getClassName(),!0)):e&&(a.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){hZ(this,\"translate\"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=hY(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,a=this.points,n=e.ignoreHiddenPoint,h=a.length,l,d,c,p,g,u,f,m=0;for(t||(this.center=t=this.getCenter()),u=0;u<h;u++){f=a[u],l=o+m*r,f.isValid()&&(!n||f.visible)&&(m+=f.percentage/100),d=o+m*r;let e={x:t[0],y:t[1],r:t[2]/2,innerR:t[3]/2,start:Math.round(1e3*l)/1e3,end:Math.round(1e3*d)/1e3};f.shapeType=\"arc\",f.shapeArgs=e,(c=(d+l)/2)>1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),f.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},p=Math.cos(c)*t[2]/2,g=Math.sin(c)*t[2]/2,f.tooltipPos=[t[0]+.7*p,t[1]+.7*g],f.half=+(c<-Math.PI/2||c>Math.PI/2),f.angle=c}hZ(this,\"afterTranslate\")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s<e;s++)(o=t[s]).isValid()&&(!i||o.visible)&&(r+=o.y);for(s=0,this.total=r;s<e;s++)(o=t[s]).percentage=r>0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}hK.defaultOptions=h_(r1.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:\"crookedLine\",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:\"point\",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:\"#ffffff\",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),hV(hK.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:he.prototype.drawTracker,getCenter:hN.getCenter,getSymbol:hU,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:he.prototype.pointAttribs,pointClass:hj,requireSorting:!1,searchPoint:hU,trackerGroups:[\"group\",\"dataLabelsGroup\"]}),rk.registerSeriesType(\"pie\",hK);let{composed:hJ,noop:hQ}=w,{distribute:h0}=ey,{series:h1}=rk,{arrayMax:h2,clamp:h3,defined:h5,isNumber:h6,pick:h9,pushUnique:h4,relativeLength:h8}=V;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getX(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o=0,r;return t.forEach(function(t){(r=t.dataLabel.getBBox().width)>o&&(o=r)}),e?o+s:i-o-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&s<i&&o>i&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:a,options:n}=this,h=a[2]/2,l=Math.cos(r),d=Math.sin(r),c=a[0]+l*h,p=a[1]+d*h,g=Math.min((n.slicedOffset||0)+(n.borderWidth||0),e/5);return{natural:{x:c+l*e,y:p+d*e},computed:{},alignment:e<0?\"center\":t.half?\"right\":\"left\",connectorPosition:{angle:r,breakAt:{x:c+l*g,y:p+d*g},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,o=i.plotHeight,r=i.plotLeft,a=Math.round(i.chartWidth/3),n=t.center,h=n[2]/2,l=n[1],d=[[],[]],c=[0,0,0,0],p=t.dataLabelPositioners,g,u,f,m=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:\"auto\"}).css({width:\"auto\",textOverflow:\"clip\"}),t.shortened=!1)})}),h1.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=n[2]/2,o=e.options,r=h8(o?.distance||0,s);0===i&&d[t.half].push(t),!h5(o?.style?.width)&&e.getBBox().width>a&&(e.css({width:Math.round(.7*a)+\"px\"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),m=Math.max(m,r)})}),d.forEach((e,a)=>{let d=e.length,g=[],x,y,b=0,v;d&&(t.sortByAngle(e,a-.5),m>0&&(x=Math.max(0,l-h-m),y=Math.min(l+h+m,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,l-h-s.distance),s.bottom=Math.min(l+h+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},g.push(t.distributeBox))})}),h0(g,v=y+b-x,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(l=>{let d=l.options||{},m=i.distributeBox,x=l.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=l.lineHeight||21,k=(v-l.getBBox().height)/2,w=0,M=y,S=\"inherit\";if(x){if(g&&h5(m)&&x.distance>0&&(void 0===m.pos?S=\"hidden\":(f=m.size,M=p.radialDistributionY(i,l))),d.justify)w=p.justify(i,l,h,n);else switch(d.alignTo){case\"connectors\":w=p.alignToConnectors(e,a,s,r);break;case\"plotEdges\":w=p.alignToPlotEdges(l,a,s,r);break;default:w=p.radialDistributionX(t,i,M-k,y,l)}if(x.attribs={visibility:S,align:x.alignment},x.posAttribs={x:w+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:M+(d.y||0)-v/2},x.computed.x=w,x.computed.y=M-k,h9(d.crop,!0)){let t;w-(u=l.getBBox().width)<b&&1===a?(t=Math.round(u-w+b),c[3]=Math.max(t,c[3])):w+u>s-b&&0===a&&(t=Math.round(w+u-s+b),c[1]=Math.max(t,c[1])),M-f/2<0?c[0]=Math.max(Math.round(-M+f/2),c[0]):M+f/2>o&&(c[2]=Math.max(Math.round(M+f/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===h2(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{(e.dataLabels||[]).forEach(s=>{let{connectorColor:o,connectorWidth:r=1}=s.options||{},a=s.dataLabelPosition;if(h6(r)){let n;g=s.connector,a&&a.distance>0?(n=!g,g||(s.connector=g=i.renderer.path().addClass(\"highcharts-data-label-connector  highcharts-color-\"+e.colorIndex+(e.className?\" \"+e.className:\"\")).add(t.dataLabelsGroup)),i.styledMode||g.attr({\"stroke-width\":r,stroke:o||e.color||\"#666666\"}),g[n?\"attr\":\"animate\"]({d:e.getConnectorPath(s)}),g.attr({visibility:a.attribs?.visibility})):g&&(s.connector=g.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+\"px\",textOverflow:t.options?.style?.textOverflow||\"ellipsis\"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?\"animate\":\"attr\"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,a=null!==i.size;return!a&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=h3(r,o,e[2]-Math.max(t[0],t[2])):(r=h3(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r<e[2]?(e[2]=r,e[3]=Math.min(i.thickness?Math.max(0,r-2*i.thickness):Math.max(0,h8(i.innerSize||0,r)),r),this.translate(e),this.drawDataLabels&&this.drawDataLabels()):a=!0),a}t.compose=function(t){if(hf.compose(h1),h4(hJ,\"PieDataLabel\")){let a=t.prototype;a.dataLabelPositioners=e,a.alignDataLabel=hQ,a.drawDataLabels=s,a.getDataLabelPosition=i,a.placeDataLabels=o,a.verifyDataLabelOverflow=r}}}(x||(x={}));let h7=x;!function(t){t.getCenterOfPoints=function(t){let e=t.reduce((t,e)=>(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;o<s;r=o++){let[s,n]=i[o],[h,l]=i[r];n>e!=l>e&&t<(h-s)*(e-n)/(l-n)+s&&(a=!a)}return a}}(y||(y={}));let{pointInPolygon:lt}=y,{addEvent:le,getAlignFactor:li,fireEvent:ls,objectEach:lo,pick:lr}=V;function la(t){let e=t.length,i=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),s=(t,e)=>{for(let i of t)if(lt({x:i[0],y:i[1]},e))return!0;return!1},o,r,a,n,h,l=!1;for(let i=0;i<e;i++)(o=t[i])&&(o.oldOpacity=o.opacity,o.newOpacity=1,o.absoluteBox=function(t){if(t&&(!t.alignAttr||t.placed)){let e=t.box?0:t.padding||0,i=t.alignAttr||{x:t.attr(\"x\"),y:t.attr(\"y\")},{height:s,polygon:o,width:r}=t.getBBox(),a=li(t.alignValue)*r;return t.width=r,t.height=s,{x:i.x+(t.parentGroup?.translateX||0)+e-a,y:i.y+(t.parentGroup?.translateY||0)+e,width:r-2*e,height:s-2*e,polygon:o}}}(o));t.sort((t,e)=>(e.labelrank||0)-(t.labelrank||0));for(let o=0;o<e;++o){n=(r=t[o])&&r.absoluteBox;let l=n?.polygon;for(let d=o+1;d<e;++d){h=(a=t[d])&&a.absoluteBox;let e=!1;if(n&&h&&r!==a&&0!==r.newOpacity&&0!==a.newOpacity&&\"hidden\"!==r.visibility&&\"hidden\"!==a.visibility){let t=h.polygon;if(l&&t&&l!==t?s(l,t)&&(e=!0):i(n,h)&&(e=!0),e){let t=r.labelrank<a.labelrank?r:a,e=t.text;t.newOpacity=0,e?.element.querySelector(\"textPath\")&&e.hide()}}}}for(let e of t)ln(e,this)&&(l=!0);l&&ls(this,\"afterHideAllOverlappingLabels\")}function ln(t,e){let i,s=!1;return t&&(i=t.newOpacity,t.oldOpacity!==i&&(t.hasClass(\"highcharts-data-label\")?(t[i?\"removeClass\":\"addClass\"](\"highcharts-data-label-hidden\"),s=!0,t[t.isOld?\"animate\":\"attr\"]({opacity:i},void 0,function(){e.styledMode||t.css({pointerEvents:i?\"auto\":\"none\"})}),ls(e,\"afterHideOverlappingLabel\")):t.attr({opacity:i})),t.isOld=!0),s}function lh(){let t=this,e=[];for(let i of t.labelCollectors||[])e=e.concat(i());for(let i of t.yAxis||[])i.stacking&&i.options.stackLabels&&!i.options.stackLabels.allowOverlap&&lo(i.stacking.stacks,t=>{lo(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=i=>{for(let s of i)s.visible&&(s.dataLabels||[]).forEach(i=>{let o=i.options||{};i.labelrank=lr(o.labelrank,s.labelrank,s.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(i.oldOpacity=i.opacity,i.newOpacity=1,ln(i,t)):e.push(i)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)}let ll={compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=la,le(t,\"render\",lh))}},{defaultOptions:ld}=tv,{noop:lc}=w,{addEvent:lp,extend:lg,isObject:lu,merge:lf,relativeLength:lm}=V,lx={radius:0,scope:\"stack\",where:void 0},ly=lc,lb=lc;function lv(t,e,i,s,o={}){let r=ly(t,e,i,s,o),{brStart:a=!0,brEnd:n=!0,innerR:h=0,r:l=i,start:d=0,end:c=0}=o;if(o.open||!o.borderRadius)return r;let p=c-d,g=Math.sin(p/2),u=Math.max(Math.min(lm(o.borderRadius||0,l-h),(l-h)/2,l*g/(1+g)),0),f=Math.min(u,p/Math.PI*2*h),m=r.length-1;for(;m--;)(a||0!==m&&3!==m)&&(n||1!==m&&2!==m)&&!function(t,e,i){let s,o,r,a=t[e],n=t[e+1];if(\"Z\"===n[0]&&(n=t[0]),(\"M\"===a[0]||\"L\"===a[0])&&\"A\"===n[0]?(s=a,o=n,r=!0):\"A\"===a[0]&&(\"M\"===n[0]||\"L\"===n[0])&&(s=n,o=a),s&&o&&o.params){let a=o[1],n=o[5],h=o.params,{start:l,end:d,cx:c,cy:p}=h,g=n?a-i:a+i,u=g?Math.asin(i/g):0,f=n?u:-u,m=Math.cos(u)*g;r?(h.start=l+f,s[1]=c+m*Math.cos(l),s[2]=p+m*Math.sin(l),t.splice(e+1,0,[\"A\",i,i,0,0,1,c+a*Math.cos(h.start),p+a*Math.sin(h.start)])):(h.end=d-f,o[6]=c+a*Math.cos(h.end),o[7]=p+a*Math.sin(h.end),t.splice(e+1,0,[\"A\",i,i,0,0,1,c+m*Math.cos(d),p+m*Math.sin(d)])),o[4]=Math.abs(h.end-h.start)<Math.PI?0:1}}(r,m,m>1?f:u);return r}function lk(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i=\"percent\"===t.stacking,s=ld.plotOptions?.[this.type]?.borderRadius,o=lw(t.borderRadius,lu(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:a}=s;if(\"roundedRect\"===s.shapeType&&a){let{width:n=0,height:h=0,y:l=0}=a,d=l,c=h;if(\"stack\"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),a=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=a.y,c=a.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,g=o.where;!g&&this.is(\"waterfall\")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(g=\"all\"),g||(g=\"end\");let u=Math.min(lm(o.radius,n),n/2,\"all\"===g?h/2:1/0)||0;\"end\"===g&&(p&&(d-=u),c+=u),lg(a,{brBoxHeight:c,brBoxY:d,r:u})}}}}function lw(t,e){return lu(t)||(t={radius:t||0}),lf(lx,e,t)}function lM(){let t=lw(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=lm(t.radius,(i.r||0)-(i.innerR||0)))}}function lS(t,e,i,s,o={}){let r=lb(t,e,i,s,o),{r:a=0,brBoxHeight:n=s,brBoxY:h=e}=o,l=e-h,d=h+n-(e+s),c=l-a>-.1?0:a,p=d-a>-.1?0:a,g=Math.max(c&&l,0),u=Math.max(p&&d,0),f=[t+c,e],m=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],k=[t,e+s-p],w=[t,e+c],M=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(g){let t=M(c,c-g);f[0]-=t,m[0]+=t,x[1]=w[1]=e+c-g}if(s<c-g){let o=M(c,c-g-s);x[0]=y[0]=t+i-c+o,b[0]=Math.min(x[0],b[0]),v[0]=Math.max(y[0],v[0]),k[0]=w[0]=t+c-o,x[1]=w[1]=e+s}if(u){let t=M(p,p-u);b[0]+=t,v[0]-=t,y[1]=k[1]=e+s-p+u}if(s<p-u){let o=M(p,p-u-s);x[0]=y[0]=t+i-p+o,m[0]=Math.min(x[0],m[0]),f[0]=Math.max(y[0],f[0]),k[0]=w[0]=t+p-o,y[1]=k[1]=e}return r.length=0,r.push([\"M\",...f],[\"L\",...m],[\"A\",c,c,0,0,1,...x],[\"L\",...y],[\"A\",p,p,0,0,1,...b],[\"L\",...v],[\"A\",p,p,0,0,1,...k],[\"L\",...w],[\"A\",c,c,0,0,1,...f],[\"Z\"]),r}let{diffObjects:lT,extend:lC,find:lA,merge:lP,pick:lL,uniqueKey:lO}=V;!function(t){function e(t,e){let i=t.condition;(i.callback||function(){return this.chartWidth<=lL(i.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=lL(i.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=lL(i.minWidth,0)&&this.chartHeight>=lL(i.minHeight,0)}).call(this)&&e.push(t._id)}function i(t,e){let i=this.options.responsive,s=this.currentResponsive,o=[],r;!e&&i&&i.rules&&i.rules.forEach(t=>{void 0===t._id&&(t._id=lO()),this.matchResponsiveRule(t,o)},this);let a=lP(...o.map(t=>lA(i?.rules||[],e=>e._id===t)).map(t=>t?.chartOptions));a.isResponsiveOptions=!0,o=o.toString()||void 0;let n=s?.ruleIds;o!==n&&(s&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(s.undoOptions,t,!0),this.updatingResponsive=!1),o?((r=lT(a,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:o,mergedOptions:a,undoOptions:r},this.updatingResponsive||this.update(a,t,!0)):this.currentResponsive=void 0)}t.compose=function(t){let s=t.prototype;return s.matchResponsiveRule||lC(s,{matchResponsiveRule:e,setResponsive:i}),t}}(b||(b={}));let lE=b;w.AST=t6,w.Axis=s$,w.Chart=a0,w.Color=tL,w.DataLabel=hf,w.DataTableCore=rp,w.Fx=tB,w.HTMLElement=i6,w.Legend=au,w.LegendSymbol=rm,w.OverlappingDataLabels=w.OverlappingDataLabels||ll,w.PlotLineOrBand=oa,w.Point=oK,w.Pointer=ra,w.RendererRegistry=eg,w.Series=r1,w.SeriesRegistry=rk,w.StackItem=nd,w.SVGElement=eJ,w.SVGRenderer=iU,w.Templating=ep,w.Tick=sf,w.Time=tu,w.Tooltip=oE,w.animate=tU.animate,w.animObject=tU.animObject,w.chart=a0.chart,w.color=tL.parse,w.dateFormat=ep.dateFormat,w.defaultOptions=tv.defaultOptions,w.distribute=ey.distribute,w.format=ep.format,w.getDeferredAnimation=tU.getDeferredAnimation,w.getOptions=tv.getOptions,w.numberFormat=ep.numberFormat,w.seriesType=rk.seriesType,w.setAnimation=tU.setAnimation,w.setOptions=tv.setOptions,w.stop=tU.stop,w.time=tv.defaultTime,w.timers=tB.timers,({compose:function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes(\"borderRadius\")){let o=i.prototype.symbols;lp(t,\"afterColumnTranslate\",lk,{order:9}),lp(s,\"afterTranslate\",lM),e.symbolCustomAttribs.push(\"borderRadius\",\"brBoxHeight\",\"brBoxY\",\"brEnd\",\"brStart\"),ly=o.arc,lb=o.roundedRect,o.arc=lv,o.roundedRect=lS}},optionsToObject:lw}).compose(w.Series,w.SVGElement,w.SVGRenderer),hv.compose(w.Series.types.column),hf.compose(w.Series),sK.compose(w.Axis),i6.compose(w.SVGRenderer),au.compose(w.Chart),s1.compose(w.Axis),ll.compose(w.Chart),h7.compose(w.Series.types.pie),oa.compose(w.Chart,w.Axis),ra.compose(w.Chart),lE.compose(w.Chart),ni.compose(w.Axis,w.Chart,w.Series),nO.compose(w.Axis,w.Chart,w.Series),oE.compose(w.Pointer),V.extend(w,V);let lI=w;return k.default})());", "/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/javascript\nReleased under the MIT license\n */\nconst linkClickSelector = \"a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]\";\n\nconst buttonClickSelector = {\n  selector: \"button[data-remote]:not([form]), button[data-confirm]:not([form])\",\n  exclude: \"form button\"\n};\n\nconst inputChangeSelector = \"select[data-remote], input[data-remote], textarea[data-remote]\";\n\nconst formSubmitSelector = \"form:not([data-turbo=true])\";\n\nconst formInputClickSelector = \"form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])\";\n\nconst formDisableSelector = \"input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled\";\n\nconst formEnableSelector = \"input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled\";\n\nconst fileInputSelector = \"input[name][type=file]:not([disabled])\";\n\nconst linkDisableSelector = \"a[data-disable-with], a[data-disable]\";\n\nconst buttonDisableSelector = \"button[data-remote][data-disable-with], button[data-remote][data-disable]\";\n\nlet nonce = null;\n\nconst loadCSPNonce = () => {\n  const metaTag = document.querySelector(\"meta[name=csp-nonce]\");\n  return nonce = metaTag && metaTag.content;\n};\n\nconst cspNonce = () => nonce || loadCSPNonce();\n\nconst m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nconst matches = function(element, selector) {\n  if (selector.exclude) {\n    return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n  } else {\n    return m.call(element, selector);\n  }\n};\n\nconst EXPANDO = \"_ujsData\";\n\nconst getData = (element, key) => element[EXPANDO] ? element[EXPANDO][key] : undefined;\n\nconst setData = function(element, key, value) {\n  if (!element[EXPANDO]) {\n    element[EXPANDO] = {};\n  }\n  return element[EXPANDO][key] = value;\n};\n\nconst $ = selector => Array.prototype.slice.call(document.querySelectorAll(selector));\n\nconst isContentEditable = function(element) {\n  var isEditable = false;\n  do {\n    if (element.isContentEditable) {\n      isEditable = true;\n      break;\n    }\n    element = element.parentElement;\n  } while (element);\n  return isEditable;\n};\n\nconst csrfToken = () => {\n  const meta = document.querySelector(\"meta[name=csrf-token]\");\n  return meta && meta.content;\n};\n\nconst csrfParam = () => {\n  const meta = document.querySelector(\"meta[name=csrf-param]\");\n  return meta && meta.content;\n};\n\nconst CSRFProtection = xhr => {\n  const token = csrfToken();\n  if (token) {\n    return xhr.setRequestHeader(\"X-CSRF-Token\", token);\n  }\n};\n\nconst refreshCSRFTokens = () => {\n  const token = csrfToken();\n  const param = csrfParam();\n  if (token && param) {\n    return $('form input[name=\"' + param + '\"]').forEach((input => input.value = token));\n  }\n};\n\nconst AcceptHeaders = {\n  \"*\": \"*/*\",\n  text: \"text/plain\",\n  html: \"text/html\",\n  xml: \"application/xml, text/xml\",\n  json: \"application/json, text/javascript\",\n  script: \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"\n};\n\nconst ajax = options => {\n  options = prepareOptions(options);\n  var xhr = createXHR(options, (function() {\n    const response = processResponse(xhr.response != null ? xhr.response : xhr.responseText, xhr.getResponseHeader(\"Content-Type\"));\n    if (Math.floor(xhr.status / 100) === 2) {\n      if (typeof options.success === \"function\") {\n        options.success(response, xhr.statusText, xhr);\n      }\n    } else {\n      if (typeof options.error === \"function\") {\n        options.error(response, xhr.statusText, xhr);\n      }\n    }\n    return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : undefined;\n  }));\n  if (options.beforeSend && !options.beforeSend(xhr, options)) {\n    return false;\n  }\n  if (xhr.readyState === XMLHttpRequest.OPENED) {\n    return xhr.send(options.data);\n  }\n};\n\nvar prepareOptions = function(options) {\n  options.url = options.url || location.href;\n  options.type = options.type.toUpperCase();\n  if (options.type === \"GET\" && options.data) {\n    if (options.url.indexOf(\"?\") < 0) {\n      options.url += \"?\" + options.data;\n    } else {\n      options.url += \"&\" + options.data;\n    }\n  }\n  if (!(options.dataType in AcceptHeaders)) {\n    options.dataType = \"*\";\n  }\n  options.accept = AcceptHeaders[options.dataType];\n  if (options.dataType !== \"*\") {\n    options.accept += \", */*; q=0.01\";\n  }\n  return options;\n};\n\nvar createXHR = function(options, done) {\n  const xhr = new XMLHttpRequest;\n  xhr.open(options.type, options.url, true);\n  xhr.setRequestHeader(\"Accept\", options.accept);\n  if (typeof options.data === \"string\") {\n    xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded; charset=UTF-8\");\n  }\n  if (!options.crossDomain) {\n    xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n    CSRFProtection(xhr);\n  }\n  xhr.withCredentials = !!options.withCredentials;\n  xhr.onreadystatechange = function() {\n    if (xhr.readyState === XMLHttpRequest.DONE) {\n      return done(xhr);\n    }\n  };\n  return xhr;\n};\n\nvar processResponse = function(response, type) {\n  if (typeof response === \"string\" && typeof type === \"string\") {\n    if (type.match(/\\bjson\\b/)) {\n      try {\n        response = JSON.parse(response);\n      } catch (error) {}\n    } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n      const script = document.createElement(\"script\");\n      script.setAttribute(\"nonce\", cspNonce());\n      script.text = response;\n      document.head.appendChild(script).parentNode.removeChild(script);\n    } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n      const parser = new DOMParser;\n      type = type.replace(/;.+/, \"\");\n      try {\n        response = parser.parseFromString(response, type);\n      } catch (error1) {}\n    }\n  }\n  return response;\n};\n\nconst href = element => element.href;\n\nconst isCrossDomain = function(url) {\n  const originAnchor = document.createElement(\"a\");\n  originAnchor.href = location.href;\n  const urlAnchor = document.createElement(\"a\");\n  try {\n    urlAnchor.href = url;\n    return !((!urlAnchor.protocol || urlAnchor.protocol === \":\") && !urlAnchor.host || originAnchor.protocol + \"//\" + originAnchor.host === urlAnchor.protocol + \"//\" + urlAnchor.host);\n  } catch (e) {\n    return true;\n  }\n};\n\nlet preventDefault;\n\nlet {CustomEvent: CustomEvent} = window;\n\nif (typeof CustomEvent !== \"function\") {\n  CustomEvent = function(event, params) {\n    const evt = document.createEvent(\"CustomEvent\");\n    evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n    return evt;\n  };\n  CustomEvent.prototype = window.Event.prototype;\n  ({preventDefault: preventDefault} = CustomEvent.prototype);\n  CustomEvent.prototype.preventDefault = function() {\n    const result = preventDefault.call(this);\n    if (this.cancelable && !this.defaultPrevented) {\n      Object.defineProperty(this, \"defaultPrevented\", {\n        get() {\n          return true;\n        }\n      });\n    }\n    return result;\n  };\n}\n\nconst fire = (obj, name, data) => {\n  const event = new CustomEvent(name, {\n    bubbles: true,\n    cancelable: true,\n    detail: data\n  });\n  obj.dispatchEvent(event);\n  return !event.defaultPrevented;\n};\n\nconst stopEverything = e => {\n  fire(e.target, \"ujs:everythingStopped\");\n  e.preventDefault();\n  e.stopPropagation();\n  e.stopImmediatePropagation();\n};\n\nconst delegate = (element, selector, eventType, handler) => element.addEventListener(eventType, (function(e) {\n  let {target: target} = e;\n  while (!!(target instanceof Element) && !matches(target, selector)) {\n    target = target.parentNode;\n  }\n  if (target instanceof Element && handler.call(target, e) === false) {\n    e.preventDefault();\n    e.stopPropagation();\n  }\n}));\n\nconst toArray = e => Array.prototype.slice.call(e);\n\nconst serializeElement = (element, additionalParam) => {\n  let inputs = [ element ];\n  if (matches(element, \"form\")) {\n    inputs = toArray(element.elements);\n  }\n  const params = [];\n  inputs.forEach((function(input) {\n    if (!input.name || input.disabled) {\n      return;\n    }\n    if (matches(input, \"fieldset[disabled] *\")) {\n      return;\n    }\n    if (matches(input, \"select\")) {\n      toArray(input.options).forEach((function(option) {\n        if (option.selected) {\n          params.push({\n            name: input.name,\n            value: option.value\n          });\n        }\n      }));\n    } else if (input.checked || [ \"radio\", \"checkbox\", \"submit\" ].indexOf(input.type) === -1) {\n      params.push({\n        name: input.name,\n        value: input.value\n      });\n    }\n  }));\n  if (additionalParam) {\n    params.push(additionalParam);\n  }\n  return params.map((function(param) {\n    if (param.name) {\n      return `${encodeURIComponent(param.name)}=${encodeURIComponent(param.value)}`;\n    } else {\n      return param;\n    }\n  })).join(\"&\");\n};\n\nconst formElements = (form, selector) => {\n  if (matches(form, \"form\")) {\n    return toArray(form.elements).filter((el => matches(el, selector)));\n  } else {\n    return toArray(form.querySelectorAll(selector));\n  }\n};\n\nconst handleConfirmWithRails = rails => function(e) {\n  if (!allowAction(this, rails)) {\n    stopEverything(e);\n  }\n};\n\nconst confirm = (message, element) => window.confirm(message);\n\nvar allowAction = function(element, rails) {\n  let callback;\n  const message = element.getAttribute(\"data-confirm\");\n  if (!message) {\n    return true;\n  }\n  let answer = false;\n  if (fire(element, \"confirm\")) {\n    try {\n      answer = rails.confirm(message, element);\n    } catch (error) {}\n    callback = fire(element, \"confirm:complete\", [ answer ]);\n  }\n  return answer && callback;\n};\n\nconst handleDisabledElement = function(e) {\n  const element = this;\n  if (element.disabled) {\n    stopEverything(e);\n  }\n};\n\nconst enableElement = e => {\n  let element;\n  if (e instanceof Event) {\n    if (isXhrRedirect(e)) {\n      return;\n    }\n    element = e.target;\n  } else {\n    element = e;\n  }\n  if (isContentEditable(element)) {\n    return;\n  }\n  if (matches(element, linkDisableSelector)) {\n    return enableLinkElement(element);\n  } else if (matches(element, buttonDisableSelector) || matches(element, formEnableSelector)) {\n    return enableFormElement(element);\n  } else if (matches(element, formSubmitSelector)) {\n    return enableFormElements(element);\n  }\n};\n\nconst disableElement = e => {\n  const element = e instanceof Event ? e.target : e;\n  if (isContentEditable(element)) {\n    return;\n  }\n  if (matches(element, linkDisableSelector)) {\n    return disableLinkElement(element);\n  } else if (matches(element, buttonDisableSelector) || matches(element, formDisableSelector)) {\n    return disableFormElement(element);\n  } else if (matches(element, formSubmitSelector)) {\n    return disableFormElements(element);\n  }\n};\n\nvar disableLinkElement = function(element) {\n  if (getData(element, \"ujs:disabled\")) {\n    return;\n  }\n  const replacement = element.getAttribute(\"data-disable-with\");\n  if (replacement != null) {\n    setData(element, \"ujs:enable-with\", element.innerHTML);\n    element.innerHTML = replacement;\n  }\n  element.addEventListener(\"click\", stopEverything);\n  return setData(element, \"ujs:disabled\", true);\n};\n\nvar enableLinkElement = function(element) {\n  const originalText = getData(element, \"ujs:enable-with\");\n  if (originalText != null) {\n    element.innerHTML = originalText;\n    setData(element, \"ujs:enable-with\", null);\n  }\n  element.removeEventListener(\"click\", stopEverything);\n  return setData(element, \"ujs:disabled\", null);\n};\n\nvar disableFormElements = form => formElements(form, formDisableSelector).forEach(disableFormElement);\n\nvar disableFormElement = function(element) {\n  if (getData(element, \"ujs:disabled\")) {\n    return;\n  }\n  const replacement = element.getAttribute(\"data-disable-with\");\n  if (replacement != null) {\n    if (matches(element, \"button\")) {\n      setData(element, \"ujs:enable-with\", element.innerHTML);\n      element.innerHTML = replacement;\n    } else {\n      setData(element, \"ujs:enable-with\", element.value);\n      element.value = replacement;\n    }\n  }\n  element.disabled = true;\n  return setData(element, \"ujs:disabled\", true);\n};\n\nvar enableFormElements = form => formElements(form, formEnableSelector).forEach((element => enableFormElement(element)));\n\nvar enableFormElement = function(element) {\n  const originalText = getData(element, \"ujs:enable-with\");\n  if (originalText != null) {\n    if (matches(element, \"button\")) {\n      element.innerHTML = originalText;\n    } else {\n      element.value = originalText;\n    }\n    setData(element, \"ujs:enable-with\", null);\n  }\n  element.disabled = false;\n  return setData(element, \"ujs:disabled\", null);\n};\n\nvar isXhrRedirect = function(event) {\n  const xhr = event.detail ? event.detail[0] : undefined;\n  return xhr && xhr.getResponseHeader(\"X-Xhr-Redirect\");\n};\n\nconst handleMethodWithRails = rails => function(e) {\n  const link = this;\n  const method = link.getAttribute(\"data-method\");\n  if (!method) {\n    return;\n  }\n  if (isContentEditable(this)) {\n    return;\n  }\n  const href = rails.href(link);\n  const csrfToken$1 = csrfToken();\n  const csrfParam$1 = csrfParam();\n  const form = document.createElement(\"form\");\n  let formContent = `<input name='_method' value='${method}' type='hidden' />`;\n  if (csrfParam$1 && csrfToken$1 && !isCrossDomain(href)) {\n    formContent += `<input name='${csrfParam$1}' value='${csrfToken$1}' type='hidden' />`;\n  }\n  formContent += '<input type=\"submit\" />';\n  form.method = \"post\";\n  form.action = href;\n  form.target = link.target;\n  form.innerHTML = formContent;\n  form.style.display = \"none\";\n  document.body.appendChild(form);\n  form.querySelector('[type=\"submit\"]').click();\n  stopEverything(e);\n};\n\nconst isRemote = function(element) {\n  const value = element.getAttribute(\"data-remote\");\n  return value != null && value !== \"false\";\n};\n\nconst handleRemoteWithRails = rails => function(e) {\n  let data, method, url;\n  const element = this;\n  if (!isRemote(element)) {\n    return true;\n  }\n  if (!fire(element, \"ajax:before\")) {\n    fire(element, \"ajax:stopped\");\n    return false;\n  }\n  if (isContentEditable(element)) {\n    fire(element, \"ajax:stopped\");\n    return false;\n  }\n  const withCredentials = element.getAttribute(\"data-with-credentials\");\n  const dataType = element.getAttribute(\"data-type\") || \"script\";\n  if (matches(element, formSubmitSelector)) {\n    const button = getData(element, \"ujs:submit-button\");\n    method = getData(element, \"ujs:submit-button-formmethod\") || element.getAttribute(\"method\") || \"get\";\n    url = getData(element, \"ujs:submit-button-formaction\") || element.getAttribute(\"action\") || location.href;\n    if (method.toUpperCase() === \"GET\") {\n      url = url.replace(/\\?.*$/, \"\");\n    }\n    if (element.enctype === \"multipart/form-data\") {\n      data = new FormData(element);\n      if (button != null) {\n        data.append(button.name, button.value);\n      }\n    } else {\n      data = serializeElement(element, button);\n    }\n    setData(element, \"ujs:submit-button\", null);\n    setData(element, \"ujs:submit-button-formmethod\", null);\n    setData(element, \"ujs:submit-button-formaction\", null);\n  } else if (matches(element, buttonClickSelector) || matches(element, inputChangeSelector)) {\n    method = element.getAttribute(\"data-method\");\n    url = element.getAttribute(\"data-url\");\n    data = serializeElement(element, element.getAttribute(\"data-params\"));\n  } else {\n    method = element.getAttribute(\"data-method\");\n    url = rails.href(element);\n    data = element.getAttribute(\"data-params\");\n  }\n  ajax({\n    type: method || \"GET\",\n    url: url,\n    data: data,\n    dataType: dataType,\n    beforeSend(xhr, options) {\n      if (fire(element, \"ajax:beforeSend\", [ xhr, options ])) {\n        return fire(element, \"ajax:send\", [ xhr ]);\n      } else {\n        fire(element, \"ajax:stopped\");\n        return false;\n      }\n    },\n    success(...args) {\n      return fire(element, \"ajax:success\", args);\n    },\n    error(...args) {\n      return fire(element, \"ajax:error\", args);\n    },\n    complete(...args) {\n      return fire(element, \"ajax:complete\", args);\n    },\n    crossDomain: isCrossDomain(url),\n    withCredentials: withCredentials != null && withCredentials !== \"false\"\n  });\n  stopEverything(e);\n};\n\nconst formSubmitButtonClick = function(e) {\n  const button = this;\n  const {form: form} = button;\n  if (!form) {\n    return;\n  }\n  if (button.name) {\n    setData(form, \"ujs:submit-button\", {\n      name: button.name,\n      value: button.value\n    });\n  }\n  setData(form, \"ujs:formnovalidate-button\", button.formNoValidate);\n  setData(form, \"ujs:submit-button-formaction\", button.getAttribute(\"formaction\"));\n  return setData(form, \"ujs:submit-button-formmethod\", button.getAttribute(\"formmethod\"));\n};\n\nconst preventInsignificantClick = function(e) {\n  const link = this;\n  const method = (link.getAttribute(\"data-method\") || \"GET\").toUpperCase();\n  const data = link.getAttribute(\"data-params\");\n  const metaClick = e.metaKey || e.ctrlKey;\n  const insignificantMetaClick = metaClick && method === \"GET\" && !data;\n  const nonPrimaryMouseClick = e.button != null && e.button !== 0;\n  if (nonPrimaryMouseClick || insignificantMetaClick) {\n    e.stopImmediatePropagation();\n  }\n};\n\nconst Rails = {\n  $: $,\n  ajax: ajax,\n  buttonClickSelector: buttonClickSelector,\n  buttonDisableSelector: buttonDisableSelector,\n  confirm: confirm,\n  cspNonce: cspNonce,\n  csrfToken: csrfToken,\n  csrfParam: csrfParam,\n  CSRFProtection: CSRFProtection,\n  delegate: delegate,\n  disableElement: disableElement,\n  enableElement: enableElement,\n  fileInputSelector: fileInputSelector,\n  fire: fire,\n  formElements: formElements,\n  formEnableSelector: formEnableSelector,\n  formDisableSelector: formDisableSelector,\n  formInputClickSelector: formInputClickSelector,\n  formSubmitButtonClick: formSubmitButtonClick,\n  formSubmitSelector: formSubmitSelector,\n  getData: getData,\n  handleDisabledElement: handleDisabledElement,\n  href: href,\n  inputChangeSelector: inputChangeSelector,\n  isCrossDomain: isCrossDomain,\n  linkClickSelector: linkClickSelector,\n  linkDisableSelector: linkDisableSelector,\n  loadCSPNonce: loadCSPNonce,\n  matches: matches,\n  preventInsignificantClick: preventInsignificantClick,\n  refreshCSRFTokens: refreshCSRFTokens,\n  serializeElement: serializeElement,\n  setData: setData,\n  stopEverything: stopEverything\n};\n\nconst handleConfirm = handleConfirmWithRails(Rails);\n\nRails.handleConfirm = handleConfirm;\n\nconst handleMethod = handleMethodWithRails(Rails);\n\nRails.handleMethod = handleMethod;\n\nconst handleRemote = handleRemoteWithRails(Rails);\n\nRails.handleRemote = handleRemote;\n\nconst start = function() {\n  if (window._rails_loaded) {\n    throw new Error(\"rails-ujs has already been loaded!\");\n  }\n  window.addEventListener(\"pageshow\", (function() {\n    $(formEnableSelector).forEach((function(el) {\n      if (getData(el, \"ujs:disabled\")) {\n        enableElement(el);\n      }\n    }));\n    $(linkDisableSelector).forEach((function(el) {\n      if (getData(el, \"ujs:disabled\")) {\n        enableElement(el);\n      }\n    }));\n  }));\n  delegate(document, linkDisableSelector, \"ajax:complete\", enableElement);\n  delegate(document, linkDisableSelector, \"ajax:stopped\", enableElement);\n  delegate(document, buttonDisableSelector, \"ajax:complete\", enableElement);\n  delegate(document, buttonDisableSelector, \"ajax:stopped\", enableElement);\n  delegate(document, linkClickSelector, \"click\", preventInsignificantClick);\n  delegate(document, linkClickSelector, \"click\", handleDisabledElement);\n  delegate(document, linkClickSelector, \"click\", handleConfirm);\n  delegate(document, linkClickSelector, \"click\", disableElement);\n  delegate(document, linkClickSelector, \"click\", handleRemote);\n  delegate(document, linkClickSelector, \"click\", handleMethod);\n  delegate(document, buttonClickSelector, \"click\", preventInsignificantClick);\n  delegate(document, buttonClickSelector, \"click\", handleDisabledElement);\n  delegate(document, buttonClickSelector, \"click\", handleConfirm);\n  delegate(document, buttonClickSelector, \"click\", disableElement);\n  delegate(document, buttonClickSelector, \"click\", handleRemote);\n  delegate(document, inputChangeSelector, \"change\", handleDisabledElement);\n  delegate(document, inputChangeSelector, \"change\", handleConfirm);\n  delegate(document, inputChangeSelector, \"change\", handleRemote);\n  delegate(document, formSubmitSelector, \"submit\", handleDisabledElement);\n  delegate(document, formSubmitSelector, \"submit\", handleConfirm);\n  delegate(document, formSubmitSelector, \"submit\", handleRemote);\n  delegate(document, formSubmitSelector, \"submit\", (e => setTimeout((() => disableElement(e)), 13)));\n  delegate(document, formSubmitSelector, \"ajax:send\", disableElement);\n  delegate(document, formSubmitSelector, \"ajax:complete\", enableElement);\n  delegate(document, formInputClickSelector, \"click\", preventInsignificantClick);\n  delegate(document, formInputClickSelector, \"click\", handleDisabledElement);\n  delegate(document, formInputClickSelector, \"click\", handleConfirm);\n  delegate(document, formInputClickSelector, \"click\", formSubmitButtonClick);\n  document.addEventListener(\"DOMContentLoaded\", refreshCSRFTokens);\n  document.addEventListener(\"DOMContentLoaded\", loadCSPNonce);\n  return window._rails_loaded = true;\n};\n\nRails.start = start;\n\nif (typeof jQuery !== \"undefined\" && jQuery && jQuery.ajax) {\n  if (jQuery.rails) {\n    throw new Error(\"If you load both jquery_ujs and rails-ujs, use rails-ujs only.\");\n  }\n  jQuery.rails = Rails;\n  jQuery.ajaxPrefilter((function(options, originalOptions, xhr) {\n    if (!options.crossDomain) {\n      return CSRFProtection(xhr);\n    }\n  }));\n}\n\nexport { Rails as default };\n", "/*!\nTurbo 8.0.21\nCopyright \u00A9 2026 37signals LLC\n */\nconst FrameLoadingStyle = {\n  eager: \"eager\",\n  lazy: \"lazy\"\n};\n\n/**\n * Contains a fragment of HTML which is updated based on navigation within\n * it (e.g. via links or form submissions).\n *\n * @customElement turbo-frame\n * @example\n *   <turbo-frame id=\"messages\">\n *     <a href=\"/messages/expanded\">\n *       Show all expanded messages in this frame.\n *     </a>\n *\n *     <form action=\"/messages\">\n *       Show response from this form within this frame.\n *     </form>\n *   </turbo-frame>\n */\nclass FrameElement extends HTMLElement {\n  static delegateConstructor = undefined\n\n  loaded = Promise.resolve()\n\n  static get observedAttributes() {\n    return [\"disabled\", \"loading\", \"src\"]\n  }\n\n  constructor() {\n    super();\n    this.delegate = new FrameElement.delegateConstructor(this);\n  }\n\n  connectedCallback() {\n    this.delegate.connect();\n  }\n\n  disconnectedCallback() {\n    this.delegate.disconnect();\n  }\n\n  reload() {\n    return this.delegate.sourceURLReloaded()\n  }\n\n  attributeChangedCallback(name) {\n    if (name == \"loading\") {\n      this.delegate.loadingStyleChanged();\n    } else if (name == \"src\") {\n      this.delegate.sourceURLChanged();\n    } else if (name == \"disabled\") {\n      this.delegate.disabledChanged();\n    }\n  }\n\n  /**\n   * Gets the URL to lazily load source HTML from\n   */\n  get src() {\n    return this.getAttribute(\"src\")\n  }\n\n  /**\n   * Sets the URL to lazily load source HTML from\n   */\n  set src(value) {\n    if (value) {\n      this.setAttribute(\"src\", value);\n    } else {\n      this.removeAttribute(\"src\");\n    }\n  }\n\n  /**\n   * Gets the refresh mode for the frame.\n   */\n  get refresh() {\n    return this.getAttribute(\"refresh\")\n  }\n\n  /**\n   * Sets the refresh mode for the frame.\n   */\n  set refresh(value) {\n    if (value) {\n      this.setAttribute(\"refresh\", value);\n    } else {\n      this.removeAttribute(\"refresh\");\n    }\n  }\n\n  get shouldReloadWithMorph() {\n    return this.src && this.refresh === \"morph\"\n  }\n\n  /**\n   * Determines if the element is loading\n   */\n  get loading() {\n    return frameLoadingStyleFromString(this.getAttribute(\"loading\") || \"\")\n  }\n\n  /**\n   * Sets the value of if the element is loading\n   */\n  set loading(value) {\n    if (value) {\n      this.setAttribute(\"loading\", value);\n    } else {\n      this.removeAttribute(\"loading\");\n    }\n  }\n\n  /**\n   * Gets the disabled state of the frame.\n   *\n   * If disabled, no requests will be intercepted by the frame.\n   */\n  get disabled() {\n    return this.hasAttribute(\"disabled\")\n  }\n\n  /**\n   * Sets the disabled state of the frame.\n   *\n   * If disabled, no requests will be intercepted by the frame.\n   */\n  set disabled(value) {\n    if (value) {\n      this.setAttribute(\"disabled\", \"\");\n    } else {\n      this.removeAttribute(\"disabled\");\n    }\n  }\n\n  /**\n   * Gets the autoscroll state of the frame.\n   *\n   * If true, the frame will be scrolled into view automatically on update.\n   */\n  get autoscroll() {\n    return this.hasAttribute(\"autoscroll\")\n  }\n\n  /**\n   * Sets the autoscroll state of the frame.\n   *\n   * If true, the frame will be scrolled into view automatically on update.\n   */\n  set autoscroll(value) {\n    if (value) {\n      this.setAttribute(\"autoscroll\", \"\");\n    } else {\n      this.removeAttribute(\"autoscroll\");\n    }\n  }\n\n  /**\n   * Determines if the element has finished loading\n   */\n  get complete() {\n    return !this.delegate.isLoading\n  }\n\n  /**\n   * Gets the active state of the frame.\n   *\n   * If inactive, source changes will not be observed.\n   */\n  get isActive() {\n    return this.ownerDocument === document && !this.isPreview\n  }\n\n  /**\n   * Sets the active state of the frame.\n   *\n   * If inactive, source changes will not be observed.\n   */\n  get isPreview() {\n    return this.ownerDocument?.documentElement?.hasAttribute(\"data-turbo-preview\")\n  }\n}\n\nfunction frameLoadingStyleFromString(style) {\n  switch (style.toLowerCase()) {\n    case \"lazy\":\n      return FrameLoadingStyle.lazy\n    default:\n      return FrameLoadingStyle.eager\n  }\n}\n\nconst drive = {\n  enabled: true,\n  progressBarDelay: 500,\n  unvisitableExtensions: new Set(\n    [\n      \".7z\", \".aac\", \".apk\", \".avi\", \".bmp\", \".bz2\", \".css\", \".csv\", \".deb\", \".dmg\", \".doc\",\n      \".docx\", \".exe\", \".gif\", \".gz\", \".heic\", \".heif\", \".ico\", \".iso\", \".jpeg\", \".jpg\",\n      \".js\", \".json\", \".m4a\", \".mkv\", \".mov\", \".mp3\", \".mp4\", \".mpeg\", \".mpg\", \".msi\",\n      \".ogg\", \".ogv\", \".pdf\", \".pkg\", \".png\", \".ppt\", \".pptx\", \".rar\", \".rtf\",\n      \".svg\", \".tar\", \".tif\", \".tiff\", \".txt\", \".wav\", \".webm\", \".webp\", \".wma\", \".wmv\",\n      \".xls\", \".xlsx\", \".xml\", \".zip\"\n    ]\n  )\n};\n\nfunction activateScriptElement(element) {\n  if (element.getAttribute(\"data-turbo-eval\") == \"false\") {\n    return element\n  } else {\n    const createdScriptElement = document.createElement(\"script\");\n    const cspNonce = getCspNonce();\n    if (cspNonce) {\n      createdScriptElement.nonce = cspNonce;\n    }\n    createdScriptElement.textContent = element.textContent;\n    createdScriptElement.async = false;\n    copyElementAttributes(createdScriptElement, element);\n    return createdScriptElement\n  }\n}\n\nfunction copyElementAttributes(destinationElement, sourceElement) {\n  for (const { name, value } of sourceElement.attributes) {\n    destinationElement.setAttribute(name, value);\n  }\n}\n\nfunction createDocumentFragment(html) {\n  const template = document.createElement(\"template\");\n  template.innerHTML = html;\n  return template.content\n}\n\nfunction dispatch(eventName, { target, cancelable, detail } = {}) {\n  const event = new CustomEvent(eventName, {\n    cancelable,\n    bubbles: true,\n    composed: true,\n    detail\n  });\n\n  if (target && target.isConnected) {\n    target.dispatchEvent(event);\n  } else {\n    document.documentElement.dispatchEvent(event);\n  }\n\n  return event\n}\n\nfunction cancelEvent(event) {\n  event.preventDefault();\n  event.stopImmediatePropagation();\n}\n\nfunction nextRepaint() {\n  if (document.visibilityState === \"hidden\") {\n    return nextEventLoopTick()\n  } else {\n    return nextAnimationFrame()\n  }\n}\n\nfunction nextAnimationFrame() {\n  return new Promise((resolve) => requestAnimationFrame(() => resolve()))\n}\n\nfunction nextEventLoopTick() {\n  return new Promise((resolve) => setTimeout(() => resolve(), 0))\n}\n\nfunction parseHTMLDocument(html = \"\") {\n  return new DOMParser().parseFromString(html, \"text/html\")\n}\n\nfunction unindent(strings, ...values) {\n  const lines = interpolate(strings, values).replace(/^\\n/, \"\").split(\"\\n\");\n  const match = lines[0].match(/^\\s+/);\n  const indent = match ? match[0].length : 0;\n  return lines.map((line) => line.slice(indent)).join(\"\\n\")\n}\n\nfunction interpolate(strings, values) {\n  return strings.reduce((result, string, i) => {\n    const value = values[i] == undefined ? \"\" : values[i];\n    return result + string + value\n  }, \"\")\n}\n\nfunction uuid() {\n  return Array.from({ length: 36 })\n    .map((_, i) => {\n      if (i == 8 || i == 13 || i == 18 || i == 23) {\n        return \"-\"\n      } else if (i == 14) {\n        return \"4\"\n      } else if (i == 19) {\n        return (Math.floor(Math.random() * 4) + 8).toString(16)\n      } else {\n        return Math.floor(Math.random() * 16).toString(16)\n      }\n    })\n    .join(\"\")\n}\n\nfunction getAttribute(attributeName, ...elements) {\n  for (const value of elements.map((element) => element?.getAttribute(attributeName))) {\n    if (typeof value == \"string\") return value\n  }\n\n  return null\n}\n\nfunction hasAttribute(attributeName, ...elements) {\n  return elements.some((element) => element && element.hasAttribute(attributeName))\n}\n\nfunction markAsBusy(...elements) {\n  for (const element of elements) {\n    if (element.localName == \"turbo-frame\") {\n      element.setAttribute(\"busy\", \"\");\n    }\n    element.setAttribute(\"aria-busy\", \"true\");\n  }\n}\n\nfunction clearBusyState(...elements) {\n  for (const element of elements) {\n    if (element.localName == \"turbo-frame\") {\n      element.removeAttribute(\"busy\");\n    }\n\n    element.removeAttribute(\"aria-busy\");\n  }\n}\n\nfunction waitForLoad(element, timeoutInMilliseconds = 2000) {\n  return new Promise((resolve) => {\n    const onComplete = () => {\n      element.removeEventListener(\"error\", onComplete);\n      element.removeEventListener(\"load\", onComplete);\n      resolve();\n    };\n\n    element.addEventListener(\"load\", onComplete, { once: true });\n    element.addEventListener(\"error\", onComplete, { once: true });\n    setTimeout(resolve, timeoutInMilliseconds);\n  })\n}\n\nfunction getHistoryMethodForAction(action) {\n  switch (action) {\n    case \"replace\":\n      return history.replaceState\n    case \"advance\":\n    case \"restore\":\n      return history.pushState\n  }\n}\n\nfunction isAction(action) {\n  return action == \"advance\" || action == \"replace\" || action == \"restore\"\n}\n\nfunction getVisitAction(...elements) {\n  const action = getAttribute(\"data-turbo-action\", ...elements);\n\n  return isAction(action) ? action : null\n}\n\nfunction getMetaElement(name) {\n  return document.querySelector(`meta[name=\"${name}\"]`)\n}\n\nfunction getMetaContent(name) {\n  const element = getMetaElement(name);\n  return element && element.content\n}\n\nfunction getCspNonce() {\n  const element = getMetaElement(\"csp-nonce\");\n\n  if (element) {\n    const { nonce, content } = element;\n    return nonce == \"\" ? content : nonce\n  }\n}\n\nfunction setMetaContent(name, content) {\n  let element = getMetaElement(name);\n\n  if (!element) {\n    element = document.createElement(\"meta\");\n    element.setAttribute(\"name\", name);\n\n    document.head.appendChild(element);\n  }\n\n  element.setAttribute(\"content\", content);\n\n  return element\n}\n\nfunction findClosestRecursively(element, selector) {\n  if (element instanceof Element) {\n    return (\n      element.closest(selector) || findClosestRecursively(element.assignedSlot || element.getRootNode()?.host, selector)\n    )\n  }\n}\n\nfunction elementIsFocusable(element) {\n  const inertDisabledOrHidden = \"[inert], :disabled, [hidden], details:not([open]), dialog:not([open])\";\n\n  return !!element && element.closest(inertDisabledOrHidden) == null && typeof element.focus == \"function\"\n}\n\nfunction queryAutofocusableElement(elementOrDocumentFragment) {\n  return Array.from(elementOrDocumentFragment.querySelectorAll(\"[autofocus]\")).find(elementIsFocusable)\n}\n\nasync function around(callback, reader) {\n  const before = reader();\n\n  callback();\n\n  await nextAnimationFrame();\n\n  const after = reader();\n\n  return [before, after]\n}\n\nfunction doesNotTargetIFrame(name) {\n  if (name === \"_blank\") {\n    return false\n  } else if (name) {\n    for (const element of document.getElementsByName(name)) {\n      if (element instanceof HTMLIFrameElement) return false\n    }\n\n    return true\n  } else {\n    return true\n  }\n}\n\nfunction findLinkFromClickTarget(target) {\n  const link = findClosestRecursively(target, \"a[href], a[xlink\\\\:href]\");\n\n  if (!link) return null\n  if (link.href.startsWith(\"#\")) return null\n  if (link.hasAttribute(\"download\")) return null\n\n  const linkTarget = link.getAttribute(\"target\");\n  if (linkTarget && linkTarget !== \"_self\") return null\n\n  return link\n}\n\nfunction debounce(fn, delay) {\n  let timeoutId = null;\n\n  return (...args) => {\n    const callback = () => fn.apply(this, args);\n    clearTimeout(timeoutId);\n    timeoutId = setTimeout(callback, delay);\n  }\n}\n\nconst submitter = {\n  \"aria-disabled\": {\n    beforeSubmit: submitter => {\n      submitter.setAttribute(\"aria-disabled\", \"true\");\n      submitter.addEventListener(\"click\", cancelEvent);\n    },\n\n    afterSubmit: submitter => {\n      submitter.removeAttribute(\"aria-disabled\");\n      submitter.removeEventListener(\"click\", cancelEvent);\n    }\n  },\n\n  \"disabled\": {\n    beforeSubmit: submitter => submitter.disabled = true,\n    afterSubmit: submitter => submitter.disabled = false\n  }\n};\n\nclass Config {\n  #submitter = null\n\n  constructor(config) {\n    Object.assign(this, config);\n  }\n\n  get submitter() {\n    return this.#submitter\n  }\n\n  set submitter(value) {\n    this.#submitter = submitter[value] || value;\n  }\n}\n\nconst forms = new Config({\n  mode: \"on\",\n  submitter: \"disabled\"\n});\n\nconst config = {\n  drive,\n  forms\n};\n\nfunction expandURL(locatable) {\n  return new URL(locatable.toString(), document.baseURI)\n}\n\nfunction getAnchor(url) {\n  let anchorMatch;\n  if (url.hash) {\n    return url.hash.slice(1)\n    // eslint-disable-next-line no-cond-assign\n  } else if ((anchorMatch = url.href.match(/#(.*)$/))) {\n    return anchorMatch[1]\n  }\n}\n\nfunction getAction$1(form, submitter) {\n  const action = submitter?.getAttribute(\"formaction\") || form.getAttribute(\"action\") || form.action;\n\n  return expandURL(action)\n}\n\nfunction getExtension(url) {\n  return (getLastPathComponent(url).match(/\\.[^.]*$/) || [])[0] || \"\"\n}\n\nfunction isPrefixedBy(baseURL, url) {\n  const prefix = addTrailingSlash(url.origin + url.pathname);\n  return addTrailingSlash(baseURL.href) === prefix || baseURL.href.startsWith(prefix)\n}\n\nfunction locationIsVisitable(location, rootLocation) {\n  return isPrefixedBy(location, rootLocation) && !config.drive.unvisitableExtensions.has(getExtension(location))\n}\n\nfunction getLocationForLink(link) {\n  return expandURL(link.getAttribute(\"href\") || \"\")\n}\n\nfunction getRequestURL(url) {\n  const anchor = getAnchor(url);\n  return anchor != null ? url.href.slice(0, -(anchor.length + 1)) : url.href\n}\n\nfunction toCacheKey(url) {\n  return getRequestURL(url)\n}\n\nfunction urlsAreEqual(left, right) {\n  return expandURL(left).href == expandURL(right).href\n}\n\nfunction getPathComponents(url) {\n  return url.pathname.split(\"/\").slice(1)\n}\n\nfunction getLastPathComponent(url) {\n  return getPathComponents(url).slice(-1)[0]\n}\n\nfunction addTrailingSlash(value) {\n  return value.endsWith(\"/\") ? value : value + \"/\"\n}\n\nclass FetchResponse {\n  constructor(response) {\n    this.response = response;\n  }\n\n  get succeeded() {\n    return this.response.ok\n  }\n\n  get failed() {\n    return !this.succeeded\n  }\n\n  get clientError() {\n    return this.statusCode >= 400 && this.statusCode <= 499\n  }\n\n  get serverError() {\n    return this.statusCode >= 500 && this.statusCode <= 599\n  }\n\n  get redirected() {\n    return this.response.redirected\n  }\n\n  get location() {\n    return expandURL(this.response.url)\n  }\n\n  get isHTML() {\n    return this.contentType && this.contentType.match(/^(?:text\\/([^\\s;,]+\\b)?html|application\\/xhtml\\+xml)\\b/)\n  }\n\n  get statusCode() {\n    return this.response.status\n  }\n\n  get contentType() {\n    return this.header(\"Content-Type\")\n  }\n\n  get responseText() {\n    return this.response.clone().text()\n  }\n\n  get responseHTML() {\n    if (this.isHTML) {\n      return this.response.clone().text()\n    } else {\n      return Promise.resolve(undefined)\n    }\n  }\n\n  header(name) {\n    return this.response.headers.get(name)\n  }\n}\n\nclass LimitedSet extends Set {\n  constructor(maxSize) {\n    super();\n    this.maxSize = maxSize;\n  }\n\n  add(value) {\n    if (this.size >= this.maxSize) {\n      const iterator = this.values();\n      const oldestValue = iterator.next().value;\n      this.delete(oldestValue);\n    }\n    super.add(value);\n  }\n}\n\nconst recentRequests = new LimitedSet(20);\n\nfunction fetchWithTurboHeaders(url, options = {}) {\n  const modifiedHeaders = new Headers(options.headers || {});\n  const requestUID = uuid();\n  recentRequests.add(requestUID);\n  modifiedHeaders.append(\"X-Turbo-Request-Id\", requestUID);\n\n  return window.fetch(url, {\n    ...options,\n    headers: modifiedHeaders\n  })\n}\n\nfunction fetchMethodFromString(method) {\n  switch (method.toLowerCase()) {\n    case \"get\":\n      return FetchMethod.get\n    case \"post\":\n      return FetchMethod.post\n    case \"put\":\n      return FetchMethod.put\n    case \"patch\":\n      return FetchMethod.patch\n    case \"delete\":\n      return FetchMethod.delete\n  }\n}\n\nconst FetchMethod = {\n  get: \"get\",\n  post: \"post\",\n  put: \"put\",\n  patch: \"patch\",\n  delete: \"delete\"\n};\n\nfunction fetchEnctypeFromString(encoding) {\n  switch (encoding.toLowerCase()) {\n    case FetchEnctype.multipart:\n      return FetchEnctype.multipart\n    case FetchEnctype.plain:\n      return FetchEnctype.plain\n    default:\n      return FetchEnctype.urlEncoded\n  }\n}\n\nconst FetchEnctype = {\n  urlEncoded: \"application/x-www-form-urlencoded\",\n  multipart: \"multipart/form-data\",\n  plain: \"text/plain\"\n};\n\nclass FetchRequest {\n  abortController = new AbortController()\n  #resolveRequestPromise = (_value) => {}\n\n  constructor(delegate, method, location, requestBody = new URLSearchParams(), target = null, enctype = FetchEnctype.urlEncoded) {\n    const [url, body] = buildResourceAndBody(expandURL(location), method, requestBody, enctype);\n\n    this.delegate = delegate;\n    this.url = url;\n    this.target = target;\n    this.fetchOptions = {\n      credentials: \"same-origin\",\n      redirect: \"follow\",\n      method: method.toUpperCase(),\n      headers: { ...this.defaultHeaders },\n      body: body,\n      signal: this.abortSignal,\n      referrer: this.delegate.referrer?.href\n    };\n    this.enctype = enctype;\n  }\n\n  get method() {\n    return this.fetchOptions.method\n  }\n\n  set method(value) {\n    const fetchBody = this.isSafe ? this.url.searchParams : this.fetchOptions.body || new FormData();\n    const fetchMethod = fetchMethodFromString(value) || FetchMethod.get;\n\n    this.url.search = \"\";\n\n    const [url, body] = buildResourceAndBody(this.url, fetchMethod, fetchBody, this.enctype);\n\n    this.url = url;\n    this.fetchOptions.body = body;\n    this.fetchOptions.method = fetchMethod.toUpperCase();\n  }\n\n  get headers() {\n    return this.fetchOptions.headers\n  }\n\n  set headers(value) {\n    this.fetchOptions.headers = value;\n  }\n\n  get body() {\n    if (this.isSafe) {\n      return this.url.searchParams\n    } else {\n      return this.fetchOptions.body\n    }\n  }\n\n  set body(value) {\n    this.fetchOptions.body = value;\n  }\n\n  get location() {\n    return this.url\n  }\n\n  get params() {\n    return this.url.searchParams\n  }\n\n  get entries() {\n    return this.body ? Array.from(this.body.entries()) : []\n  }\n\n  cancel() {\n    this.abortController.abort();\n  }\n\n  async perform() {\n    const { fetchOptions } = this;\n    this.delegate.prepareRequest(this);\n    const event = await this.#allowRequestToBeIntercepted(fetchOptions);\n    try {\n      this.delegate.requestStarted(this);\n\n      if (event.detail.fetchRequest) {\n        this.response = event.detail.fetchRequest.response;\n      } else {\n        this.response = fetchWithTurboHeaders(this.url.href, fetchOptions);\n      }\n\n      const response = await this.response;\n      return await this.receive(response)\n    } catch (error) {\n      if (error.name !== \"AbortError\") {\n        if (this.#willDelegateErrorHandling(error)) {\n          this.delegate.requestErrored(this, error);\n        }\n        throw error\n      }\n    } finally {\n      this.delegate.requestFinished(this);\n    }\n  }\n\n  async receive(response) {\n    const fetchResponse = new FetchResponse(response);\n    const event = dispatch(\"turbo:before-fetch-response\", {\n      cancelable: true,\n      detail: { fetchResponse },\n      target: this.target\n    });\n    if (event.defaultPrevented) {\n      this.delegate.requestPreventedHandlingResponse(this, fetchResponse);\n    } else if (fetchResponse.succeeded) {\n      this.delegate.requestSucceededWithResponse(this, fetchResponse);\n    } else {\n      this.delegate.requestFailedWithResponse(this, fetchResponse);\n    }\n    return fetchResponse\n  }\n\n  get defaultHeaders() {\n    return {\n      Accept: \"text/html, application/xhtml+xml\"\n    }\n  }\n\n  get isSafe() {\n    return isSafe(this.method)\n  }\n\n  get abortSignal() {\n    return this.abortController.signal\n  }\n\n  acceptResponseType(mimeType) {\n    this.headers[\"Accept\"] = [mimeType, this.headers[\"Accept\"]].join(\", \");\n  }\n\n  async #allowRequestToBeIntercepted(fetchOptions) {\n    const requestInterception = new Promise((resolve) => (this.#resolveRequestPromise = resolve));\n    const event = dispatch(\"turbo:before-fetch-request\", {\n      cancelable: true,\n      detail: {\n        fetchOptions,\n        url: this.url,\n        resume: this.#resolveRequestPromise\n      },\n      target: this.target\n    });\n    this.url = event.detail.url;\n    if (event.defaultPrevented) await requestInterception;\n\n    return event\n  }\n\n  #willDelegateErrorHandling(error) {\n    const event = dispatch(\"turbo:fetch-request-error\", {\n      target: this.target,\n      cancelable: true,\n      detail: { request: this, error: error }\n    });\n\n    return !event.defaultPrevented\n  }\n}\n\nfunction isSafe(fetchMethod) {\n  return fetchMethodFromString(fetchMethod) == FetchMethod.get\n}\n\nfunction buildResourceAndBody(resource, method, requestBody, enctype) {\n  const searchParams =\n    Array.from(requestBody).length > 0 ? new URLSearchParams(entriesExcludingFiles(requestBody)) : resource.searchParams;\n\n  if (isSafe(method)) {\n    return [mergeIntoURLSearchParams(resource, searchParams), null]\n  } else if (enctype == FetchEnctype.urlEncoded) {\n    return [resource, searchParams]\n  } else {\n    return [resource, requestBody]\n  }\n}\n\nfunction entriesExcludingFiles(requestBody) {\n  const entries = [];\n\n  for (const [name, value] of requestBody) {\n    if (value instanceof File) continue\n    else entries.push([name, value]);\n  }\n\n  return entries\n}\n\nfunction mergeIntoURLSearchParams(url, requestBody) {\n  const searchParams = new URLSearchParams(entriesExcludingFiles(requestBody));\n\n  url.search = searchParams.toString();\n\n  return url\n}\n\nclass AppearanceObserver {\n  started = false\n\n  constructor(delegate, element) {\n    this.delegate = delegate;\n    this.element = element;\n    this.intersectionObserver = new IntersectionObserver(this.intersect);\n  }\n\n  start() {\n    if (!this.started) {\n      this.started = true;\n      this.intersectionObserver.observe(this.element);\n    }\n  }\n\n  stop() {\n    if (this.started) {\n      this.started = false;\n      this.intersectionObserver.unobserve(this.element);\n    }\n  }\n\n  intersect = (entries) => {\n    const lastEntry = entries.slice(-1)[0];\n    if (lastEntry?.isIntersecting) {\n      this.delegate.elementAppearedInViewport(this.element);\n    }\n  }\n}\n\nclass StreamMessage {\n  static contentType = \"text/vnd.turbo-stream.html\"\n\n  static wrap(message) {\n    if (typeof message == \"string\") {\n      return new this(createDocumentFragment(message))\n    } else {\n      return message\n    }\n  }\n\n  constructor(fragment) {\n    this.fragment = importStreamElements(fragment);\n  }\n}\n\nfunction importStreamElements(fragment) {\n  for (const element of fragment.querySelectorAll(\"turbo-stream\")) {\n    const streamElement = document.importNode(element, true);\n\n    for (const inertScriptElement of streamElement.templateElement.content.querySelectorAll(\"script\")) {\n      inertScriptElement.replaceWith(activateScriptElement(inertScriptElement));\n    }\n\n    element.replaceWith(streamElement);\n  }\n\n  return fragment\n}\n\nconst identity = key => key;\n\nclass LRUCache {\n  keys = []\n  entries = {}\n  #toCacheKey\n\n  constructor(size, toCacheKey = identity) {\n    this.size = size;\n    this.#toCacheKey = toCacheKey;\n  }\n\n  has(key) {\n    return this.#toCacheKey(key) in this.entries\n  }\n\n  get(key) {\n    if (this.has(key)) {\n      const entry = this.read(key);\n      this.touch(key);\n      return entry\n    }\n  }\n\n  put(key, entry) {\n    this.write(key, entry);\n    this.touch(key);\n    return entry\n  }\n\n  clear() {\n    for (const key of Object.keys(this.entries)) {\n      this.evict(key);\n    }\n  }\n\n  // Private\n\n  read(key) {\n    return this.entries[this.#toCacheKey(key)]\n  }\n\n  write(key, entry) {\n    this.entries[this.#toCacheKey(key)] = entry;\n  }\n\n  touch(key) {\n    key = this.#toCacheKey(key);\n    const index = this.keys.indexOf(key);\n    if (index > -1) this.keys.splice(index, 1);\n    this.keys.unshift(key);\n    this.trim();\n  }\n\n  trim() {\n    for (const key of this.keys.splice(this.size)) {\n      this.evict(key);\n    }\n  }\n\n  evict(key) {\n    delete this.entries[key];\n  }\n}\n\nconst PREFETCH_DELAY = 100;\n\nclass PrefetchCache extends LRUCache {\n  #prefetchTimeout = null\n  #maxAges = {}\n\n  constructor(size = 1, prefetchDelay = PREFETCH_DELAY) {\n    super(size, toCacheKey);\n    this.prefetchDelay = prefetchDelay;\n  }\n\n  putLater(url, request, ttl) {\n    this.#prefetchTimeout = setTimeout(() => {\n      request.perform();\n      this.put(url, request, ttl);\n      this.#prefetchTimeout = null;\n    }, this.prefetchDelay);\n  }\n\n  put(url, request, ttl = cacheTtl) {\n    super.put(url, request);\n    this.#maxAges[toCacheKey(url)] = new Date(new Date().getTime() + ttl);\n  }\n\n  clear() {\n    super.clear();\n    if (this.#prefetchTimeout) clearTimeout(this.#prefetchTimeout);\n  }\n\n  evict(key) {\n    super.evict(key);\n    delete this.#maxAges[key];\n  }\n\n  has(key) {\n    if (super.has(key)) {\n      const maxAge = this.#maxAges[toCacheKey(key)];\n\n      return maxAge && maxAge > Date.now()\n    } else {\n      return false\n    }\n  }\n}\n\nconst cacheTtl = 10 * 1000;\nconst prefetchCache = new PrefetchCache();\n\nconst FormSubmissionState = {\n  initialized: \"initialized\",\n  requesting: \"requesting\",\n  waiting: \"waiting\",\n  receiving: \"receiving\",\n  stopping: \"stopping\",\n  stopped: \"stopped\"\n};\n\nclass FormSubmission {\n  state = FormSubmissionState.initialized\n\n  static confirmMethod(message) {\n    return Promise.resolve(confirm(message))\n  }\n\n  constructor(delegate, formElement, submitter, mustRedirect = false) {\n    const method = getMethod(formElement, submitter);\n    const action = getAction(getFormAction(formElement, submitter), method);\n    const body = buildFormData(formElement, submitter);\n    const enctype = getEnctype(formElement, submitter);\n\n    this.delegate = delegate;\n    this.formElement = formElement;\n    this.submitter = submitter;\n    this.fetchRequest = new FetchRequest(this, method, action, body, formElement, enctype);\n    this.mustRedirect = mustRedirect;\n  }\n\n  get method() {\n    return this.fetchRequest.method\n  }\n\n  set method(value) {\n    this.fetchRequest.method = value;\n  }\n\n  get action() {\n    return this.fetchRequest.url.toString()\n  }\n\n  set action(value) {\n    this.fetchRequest.url = expandURL(value);\n  }\n\n  get body() {\n    return this.fetchRequest.body\n  }\n\n  get enctype() {\n    return this.fetchRequest.enctype\n  }\n\n  get isSafe() {\n    return this.fetchRequest.isSafe\n  }\n\n  get location() {\n    return this.fetchRequest.url\n  }\n\n  // The submission process\n\n  async start() {\n    const { initialized, requesting } = FormSubmissionState;\n    const confirmationMessage = getAttribute(\"data-turbo-confirm\", this.submitter, this.formElement);\n\n    if (typeof confirmationMessage === \"string\") {\n      const confirmMethod = typeof config.forms.confirm === \"function\" ?\n        config.forms.confirm :\n        FormSubmission.confirmMethod;\n\n      const answer = await confirmMethod(confirmationMessage, this.formElement, this.submitter);\n      if (!answer) {\n        return\n      }\n    }\n\n    if (this.state == initialized) {\n      this.state = requesting;\n      return this.fetchRequest.perform()\n    }\n  }\n\n  stop() {\n    const { stopping, stopped } = FormSubmissionState;\n    if (this.state != stopping && this.state != stopped) {\n      this.state = stopping;\n      this.fetchRequest.cancel();\n      return true\n    }\n  }\n\n  // Fetch request delegate\n\n  prepareRequest(request) {\n    if (!request.isSafe) {\n      const token = getCookieValue(getMetaContent(\"csrf-param\")) || getMetaContent(\"csrf-token\");\n      if (token) {\n        request.headers[\"X-CSRF-Token\"] = token;\n      }\n    }\n\n    if (this.requestAcceptsTurboStreamResponse(request)) {\n      request.acceptResponseType(StreamMessage.contentType);\n    }\n  }\n\n  requestStarted(_request) {\n    this.state = FormSubmissionState.waiting;\n    if (this.submitter) config.forms.submitter.beforeSubmit(this.submitter);\n    this.setSubmitsWith();\n    markAsBusy(this.formElement);\n    dispatch(\"turbo:submit-start\", {\n      target: this.formElement,\n      detail: { formSubmission: this }\n    });\n    this.delegate.formSubmissionStarted(this);\n  }\n\n  requestPreventedHandlingResponse(request, response) {\n    prefetchCache.clear();\n\n    this.result = { success: response.succeeded, fetchResponse: response };\n  }\n\n  requestSucceededWithResponse(request, response) {\n    if (response.clientError || response.serverError) {\n      this.delegate.formSubmissionFailedWithResponse(this, response);\n      return\n    }\n\n    prefetchCache.clear();\n\n    if (this.requestMustRedirect(request) && responseSucceededWithoutRedirect(response)) {\n      const error = new Error(\"Form responses must redirect to another location\");\n      this.delegate.formSubmissionErrored(this, error);\n    } else {\n      this.state = FormSubmissionState.receiving;\n      this.result = { success: true, fetchResponse: response };\n      this.delegate.formSubmissionSucceededWithResponse(this, response);\n    }\n  }\n\n  requestFailedWithResponse(request, response) {\n    this.result = { success: false, fetchResponse: response };\n    this.delegate.formSubmissionFailedWithResponse(this, response);\n  }\n\n  requestErrored(request, error) {\n    this.result = { success: false, error };\n    this.delegate.formSubmissionErrored(this, error);\n  }\n\n  requestFinished(_request) {\n    this.state = FormSubmissionState.stopped;\n    if (this.submitter) config.forms.submitter.afterSubmit(this.submitter);\n    this.resetSubmitterText();\n    clearBusyState(this.formElement);\n    dispatch(\"turbo:submit-end\", {\n      target: this.formElement,\n      detail: { formSubmission: this, ...this.result }\n    });\n    this.delegate.formSubmissionFinished(this);\n  }\n\n  // Private\n\n  setSubmitsWith() {\n    if (!this.submitter || !this.submitsWith) return\n\n    if (this.submitter.matches(\"button\")) {\n      this.originalSubmitText = this.submitter.innerHTML;\n      this.submitter.innerHTML = this.submitsWith;\n    } else if (this.submitter.matches(\"input\")) {\n      const input = this.submitter;\n      this.originalSubmitText = input.value;\n      input.value = this.submitsWith;\n    }\n  }\n\n  resetSubmitterText() {\n    if (!this.submitter || !this.originalSubmitText) return\n\n    if (this.submitter.matches(\"button\")) {\n      this.submitter.innerHTML = this.originalSubmitText;\n    } else if (this.submitter.matches(\"input\")) {\n      const input = this.submitter;\n      input.value = this.originalSubmitText;\n    }\n  }\n\n  requestMustRedirect(request) {\n    return !request.isSafe && this.mustRedirect\n  }\n\n  requestAcceptsTurboStreamResponse(request) {\n    return !request.isSafe || hasAttribute(\"data-turbo-stream\", this.submitter, this.formElement)\n  }\n\n  get submitsWith() {\n    return this.submitter?.getAttribute(\"data-turbo-submits-with\")\n  }\n}\n\nfunction buildFormData(formElement, submitter) {\n  const formData = new FormData(formElement);\n  const name = submitter?.getAttribute(\"name\");\n  const value = submitter?.getAttribute(\"value\");\n\n  if (name) {\n    formData.append(name, value || \"\");\n  }\n\n  return formData\n}\n\nfunction getCookieValue(cookieName) {\n  if (cookieName != null) {\n    const cookies = document.cookie ? document.cookie.split(\"; \") : [];\n    const cookie = cookies.find((cookie) => cookie.startsWith(cookieName));\n    if (cookie) {\n      const value = cookie.split(\"=\").slice(1).join(\"=\");\n      return value ? decodeURIComponent(value) : undefined\n    }\n  }\n}\n\nfunction responseSucceededWithoutRedirect(response) {\n  return response.statusCode == 200 && !response.redirected\n}\n\nfunction getFormAction(formElement, submitter) {\n  const formElementAction = typeof formElement.action === \"string\" ? formElement.action : null;\n\n  if (submitter?.hasAttribute(\"formaction\")) {\n    return submitter.getAttribute(\"formaction\") || \"\"\n  } else {\n    return formElement.getAttribute(\"action\") || formElementAction || \"\"\n  }\n}\n\nfunction getAction(formAction, fetchMethod) {\n  const action = expandURL(formAction);\n\n  if (isSafe(fetchMethod)) {\n    action.search = \"\";\n  }\n\n  return action\n}\n\nfunction getMethod(formElement, submitter) {\n  const method = submitter?.getAttribute(\"formmethod\") || formElement.getAttribute(\"method\") || \"\";\n  return fetchMethodFromString(method.toLowerCase()) || FetchMethod.get\n}\n\nfunction getEnctype(formElement, submitter) {\n  return fetchEnctypeFromString(submitter?.getAttribute(\"formenctype\") || formElement.enctype)\n}\n\nclass Snapshot {\n  constructor(element) {\n    this.element = element;\n  }\n\n  get activeElement() {\n    return this.element.ownerDocument.activeElement\n  }\n\n  get children() {\n    return [...this.element.children]\n  }\n\n  hasAnchor(anchor) {\n    return this.getElementForAnchor(anchor) != null\n  }\n\n  getElementForAnchor(anchor) {\n    return anchor ? this.element.querySelector(`[id='${anchor}'], a[name='${anchor}']`) : null\n  }\n\n  get isConnected() {\n    return this.element.isConnected\n  }\n\n  get firstAutofocusableElement() {\n    return queryAutofocusableElement(this.element)\n  }\n\n  get permanentElements() {\n    return queryPermanentElementsAll(this.element)\n  }\n\n  getPermanentElementById(id) {\n    return getPermanentElementById(this.element, id)\n  }\n\n  getPermanentElementMapForSnapshot(snapshot) {\n    const permanentElementMap = {};\n\n    for (const currentPermanentElement of this.permanentElements) {\n      const { id } = currentPermanentElement;\n      const newPermanentElement = snapshot.getPermanentElementById(id);\n      if (newPermanentElement) {\n        permanentElementMap[id] = [currentPermanentElement, newPermanentElement];\n      }\n    }\n\n    return permanentElementMap\n  }\n}\n\nfunction getPermanentElementById(node, id) {\n  return node.querySelector(`#${id}[data-turbo-permanent]`)\n}\n\nfunction queryPermanentElementsAll(node) {\n  return node.querySelectorAll(\"[id][data-turbo-permanent]\")\n}\n\nclass FormSubmitObserver {\n  started = false\n\n  constructor(delegate, eventTarget) {\n    this.delegate = delegate;\n    this.eventTarget = eventTarget;\n  }\n\n  start() {\n    if (!this.started) {\n      this.eventTarget.addEventListener(\"submit\", this.submitCaptured, true);\n      this.started = true;\n    }\n  }\n\n  stop() {\n    if (this.started) {\n      this.eventTarget.removeEventListener(\"submit\", this.submitCaptured, true);\n      this.started = false;\n    }\n  }\n\n  submitCaptured = () => {\n    this.eventTarget.removeEventListener(\"submit\", this.submitBubbled, false);\n    this.eventTarget.addEventListener(\"submit\", this.submitBubbled, false);\n  }\n\n  submitBubbled = (event) => {\n    if (!event.defaultPrevented) {\n      const form = event.target instanceof HTMLFormElement ? event.target : undefined;\n      const submitter = event.submitter || undefined;\n\n      if (\n        form &&\n        submissionDoesNotDismissDialog(form, submitter) &&\n        submissionDoesNotTargetIFrame(form, submitter) &&\n        this.delegate.willSubmitForm(form, submitter)\n      ) {\n        event.preventDefault();\n        event.stopImmediatePropagation();\n        this.delegate.formSubmitted(form, submitter);\n      }\n    }\n  }\n}\n\nfunction submissionDoesNotDismissDialog(form, submitter) {\n  const method = submitter?.getAttribute(\"formmethod\") || form.getAttribute(\"method\");\n\n  return method != \"dialog\"\n}\n\nfunction submissionDoesNotTargetIFrame(form, submitter) {\n  const target = submitter?.getAttribute(\"formtarget\") || form.getAttribute(\"target\");\n\n  return doesNotTargetIFrame(target)\n}\n\nclass View {\n  #resolveRenderPromise = (_value) => {}\n  #resolveInterceptionPromise = (_value) => {}\n\n  constructor(delegate, element) {\n    this.delegate = delegate;\n    this.element = element;\n  }\n\n  // Scrolling\n\n  scrollToAnchor(anchor) {\n    const element = this.snapshot.getElementForAnchor(anchor);\n    if (element) {\n      this.focusElement(element);\n      this.scrollToElement(element);\n    } else {\n      this.scrollToPosition({ x: 0, y: 0 });\n    }\n  }\n\n  scrollToAnchorFromLocation(location) {\n    this.scrollToAnchor(getAnchor(location));\n  }\n\n  scrollToElement(element) {\n    element.scrollIntoView();\n  }\n\n  focusElement(element) {\n    if (element instanceof HTMLElement) {\n      if (element.hasAttribute(\"tabindex\")) {\n        element.focus();\n      } else {\n        element.setAttribute(\"tabindex\", \"-1\");\n        element.focus();\n        element.removeAttribute(\"tabindex\");\n      }\n    }\n  }\n\n  scrollToPosition({ x, y }) {\n    this.scrollRoot.scrollTo(x, y);\n  }\n\n  scrollToTop() {\n    this.scrollToPosition({ x: 0, y: 0 });\n  }\n\n  get scrollRoot() {\n    return window\n  }\n\n  // Rendering\n\n  async render(renderer) {\n    const { isPreview, shouldRender, willRender, newSnapshot: snapshot } = renderer;\n\n    // A workaround to ignore tracked element mismatch reloads when performing\n    // a promoted Visit from a frame navigation\n    const shouldInvalidate = willRender;\n\n    if (shouldRender) {\n      try {\n        this.renderPromise = new Promise((resolve) => (this.#resolveRenderPromise = resolve));\n        this.renderer = renderer;\n        await this.prepareToRenderSnapshot(renderer);\n\n        const renderInterception = new Promise((resolve) => (this.#resolveInterceptionPromise = resolve));\n        const options = { resume: this.#resolveInterceptionPromise, render: this.renderer.renderElement, renderMethod: this.renderer.renderMethod };\n        const immediateRender = this.delegate.allowsImmediateRender(snapshot, options);\n        if (!immediateRender) await renderInterception;\n\n        await this.renderSnapshot(renderer);\n        this.delegate.viewRenderedSnapshot(snapshot, isPreview, this.renderer.renderMethod);\n        this.delegate.preloadOnLoadLinksForView(this.element);\n        this.finishRenderingSnapshot(renderer);\n      } finally {\n        delete this.renderer;\n        this.#resolveRenderPromise(undefined);\n        delete this.renderPromise;\n      }\n    } else if (shouldInvalidate) {\n      this.invalidate(renderer.reloadReason);\n    }\n  }\n\n  invalidate(reason) {\n    this.delegate.viewInvalidated(reason);\n  }\n\n  async prepareToRenderSnapshot(renderer) {\n    this.markAsPreview(renderer.isPreview);\n    await renderer.prepareToRender();\n  }\n\n  markAsPreview(isPreview) {\n    if (isPreview) {\n      this.element.setAttribute(\"data-turbo-preview\", \"\");\n    } else {\n      this.element.removeAttribute(\"data-turbo-preview\");\n    }\n  }\n\n  markVisitDirection(direction) {\n    this.element.setAttribute(\"data-turbo-visit-direction\", direction);\n  }\n\n  unmarkVisitDirection() {\n    this.element.removeAttribute(\"data-turbo-visit-direction\");\n  }\n\n  async renderSnapshot(renderer) {\n    await renderer.render();\n  }\n\n  finishRenderingSnapshot(renderer) {\n    renderer.finishRendering();\n  }\n}\n\nclass FrameView extends View {\n  missing() {\n    this.element.innerHTML = `<strong class=\"turbo-frame-error\">Content missing</strong>`;\n  }\n\n  get snapshot() {\n    return new Snapshot(this.element)\n  }\n}\n\nclass LinkInterceptor {\n  constructor(delegate, element) {\n    this.delegate = delegate;\n    this.element = element;\n  }\n\n  start() {\n    this.element.addEventListener(\"click\", this.clickBubbled);\n    document.addEventListener(\"turbo:click\", this.linkClicked);\n    document.addEventListener(\"turbo:before-visit\", this.willVisit);\n  }\n\n  stop() {\n    this.element.removeEventListener(\"click\", this.clickBubbled);\n    document.removeEventListener(\"turbo:click\", this.linkClicked);\n    document.removeEventListener(\"turbo:before-visit\", this.willVisit);\n  }\n\n  clickBubbled = (event) => {\n    if (this.clickEventIsSignificant(event)) {\n      this.clickEvent = event;\n    } else {\n      delete this.clickEvent;\n    }\n  }\n\n  linkClicked = (event) => {\n    if (this.clickEvent && this.clickEventIsSignificant(event)) {\n      if (this.delegate.shouldInterceptLinkClick(event.target, event.detail.url, event.detail.originalEvent)) {\n        this.clickEvent.preventDefault();\n        event.preventDefault();\n        this.delegate.linkClickIntercepted(event.target, event.detail.url, event.detail.originalEvent);\n      }\n    }\n    delete this.clickEvent;\n  }\n\n  willVisit = (_event) => {\n    delete this.clickEvent;\n  }\n\n  clickEventIsSignificant(event) {\n    const target = event.composed ? event.target?.parentElement : event.target;\n    const element = findLinkFromClickTarget(target) || target;\n\n    return element instanceof Element && element.closest(\"turbo-frame, html\") == this.element\n  }\n}\n\nclass LinkClickObserver {\n  started = false\n\n  constructor(delegate, eventTarget) {\n    this.delegate = delegate;\n    this.eventTarget = eventTarget;\n  }\n\n  start() {\n    if (!this.started) {\n      this.eventTarget.addEventListener(\"click\", this.clickCaptured, true);\n      this.started = true;\n    }\n  }\n\n  stop() {\n    if (this.started) {\n      this.eventTarget.removeEventListener(\"click\", this.clickCaptured, true);\n      this.started = false;\n    }\n  }\n\n  clickCaptured = () => {\n    this.eventTarget.removeEventListener(\"click\", this.clickBubbled, false);\n    this.eventTarget.addEventListener(\"click\", this.clickBubbled, false);\n  }\n\n  clickBubbled = (event) => {\n    if (event instanceof MouseEvent && this.clickEventIsSignificant(event)) {\n      const target = (event.composedPath && event.composedPath()[0]) || event.target;\n      const link = findLinkFromClickTarget(target);\n      if (link && doesNotTargetIFrame(link.target)) {\n        const location = getLocationForLink(link);\n        if (this.delegate.willFollowLinkToLocation(link, location, event)) {\n          event.preventDefault();\n          this.delegate.followedLinkToLocation(link, location);\n        }\n      }\n    }\n  }\n\n  clickEventIsSignificant(event) {\n    return !(\n      (event.target && event.target.isContentEditable) ||\n      event.defaultPrevented ||\n      event.which > 1 ||\n      event.altKey ||\n      event.ctrlKey ||\n      event.metaKey ||\n      event.shiftKey\n    )\n  }\n}\n\nclass FormLinkClickObserver {\n  constructor(delegate, element) {\n    this.delegate = delegate;\n    this.linkInterceptor = new LinkClickObserver(this, element);\n  }\n\n  start() {\n    this.linkInterceptor.start();\n  }\n\n  stop() {\n    this.linkInterceptor.stop();\n  }\n\n  // Link hover observer delegate\n\n  canPrefetchRequestToLocation(link, location) {\n    return false\n  }\n\n  prefetchAndCacheRequestToLocation(link, location) {\n    return\n  }\n\n  // Link click observer delegate\n\n  willFollowLinkToLocation(link, location, originalEvent) {\n    return (\n      this.delegate.willSubmitFormLinkToLocation(link, location, originalEvent) &&\n      (link.hasAttribute(\"data-turbo-method\") || link.hasAttribute(\"data-turbo-stream\"))\n    )\n  }\n\n  followedLinkToLocation(link, location) {\n    const form = document.createElement(\"form\");\n\n    const type = \"hidden\";\n    for (const [name, value] of location.searchParams) {\n      form.append(Object.assign(document.createElement(\"input\"), { type, name, value }));\n    }\n\n    const action = Object.assign(location, { search: \"\" });\n    form.setAttribute(\"data-turbo\", \"true\");\n    form.setAttribute(\"action\", action.href);\n    form.setAttribute(\"hidden\", \"\");\n\n    const method = link.getAttribute(\"data-turbo-method\");\n    if (method) form.setAttribute(\"method\", method);\n\n    const turboFrame = link.getAttribute(\"data-turbo-frame\");\n    if (turboFrame) form.setAttribute(\"data-turbo-frame\", turboFrame);\n\n    const turboAction = getVisitAction(link);\n    if (turboAction) form.setAttribute(\"data-turbo-action\", turboAction);\n\n    const turboConfirm = link.getAttribute(\"data-turbo-confirm\");\n    if (turboConfirm) form.setAttribute(\"data-turbo-confirm\", turboConfirm);\n\n    const turboStream = link.hasAttribute(\"data-turbo-stream\");\n    if (turboStream) form.setAttribute(\"data-turbo-stream\", \"\");\n\n    this.delegate.submittedFormLinkToLocation(link, location, form);\n\n    document.body.appendChild(form);\n    form.addEventListener(\"turbo:submit-end\", () => form.remove(), { once: true });\n    requestAnimationFrame(() => form.requestSubmit());\n  }\n}\n\nclass Bardo {\n  static async preservingPermanentElements(delegate, permanentElementMap, callback) {\n    const bardo = new this(delegate, permanentElementMap);\n    bardo.enter();\n    await callback();\n    bardo.leave();\n  }\n\n  constructor(delegate, permanentElementMap) {\n    this.delegate = delegate;\n    this.permanentElementMap = permanentElementMap;\n  }\n\n  enter() {\n    for (const id in this.permanentElementMap) {\n      const [currentPermanentElement, newPermanentElement] = this.permanentElementMap[id];\n      this.delegate.enteringBardo(currentPermanentElement, newPermanentElement);\n      this.replaceNewPermanentElementWithPlaceholder(newPermanentElement);\n    }\n  }\n\n  leave() {\n    for (const id in this.permanentElementMap) {\n      const [currentPermanentElement] = this.permanentElementMap[id];\n      this.replaceCurrentPermanentElementWithClone(currentPermanentElement);\n      this.replacePlaceholderWithPermanentElement(currentPermanentElement);\n      this.delegate.leavingBardo(currentPermanentElement);\n    }\n  }\n\n  replaceNewPermanentElementWithPlaceholder(permanentElement) {\n    const placeholder = createPlaceholderForPermanentElement(permanentElement);\n    permanentElement.replaceWith(placeholder);\n  }\n\n  replaceCurrentPermanentElementWithClone(permanentElement) {\n    const clone = permanentElement.cloneNode(true);\n    permanentElement.replaceWith(clone);\n  }\n\n  replacePlaceholderWithPermanentElement(permanentElement) {\n    const placeholder = this.getPlaceholderById(permanentElement.id);\n    placeholder?.replaceWith(permanentElement);\n  }\n\n  getPlaceholderById(id) {\n    return this.placeholders.find((element) => element.content == id)\n  }\n\n  get placeholders() {\n    return [...document.querySelectorAll(\"meta[name=turbo-permanent-placeholder][content]\")]\n  }\n}\n\nfunction createPlaceholderForPermanentElement(permanentElement) {\n  const element = document.createElement(\"meta\");\n  element.setAttribute(\"name\", \"turbo-permanent-placeholder\");\n  element.setAttribute(\"content\", permanentElement.id);\n  return element\n}\n\nclass Renderer {\n  #activeElement = null\n\n  static renderElement(currentElement, newElement) {\n    // Abstract method\n  }\n\n  constructor(currentSnapshot, newSnapshot, isPreview, willRender = true) {\n    this.currentSnapshot = currentSnapshot;\n    this.newSnapshot = newSnapshot;\n    this.isPreview = isPreview;\n    this.willRender = willRender;\n    this.renderElement = this.constructor.renderElement;\n    this.promise = new Promise((resolve, reject) => (this.resolvingFunctions = { resolve, reject }));\n  }\n\n  get shouldRender() {\n    return true\n  }\n\n  get shouldAutofocus() {\n    return true\n  }\n\n  get reloadReason() {\n    return\n  }\n\n  prepareToRender() {\n    return\n  }\n\n  render() {\n    // Abstract method\n  }\n\n  finishRendering() {\n    if (this.resolvingFunctions) {\n      this.resolvingFunctions.resolve();\n      delete this.resolvingFunctions;\n    }\n  }\n\n  async preservingPermanentElements(callback) {\n    await Bardo.preservingPermanentElements(this, this.permanentElementMap, callback);\n  }\n\n  focusFirstAutofocusableElement() {\n    if (this.shouldAutofocus) {\n      const element = this.connectedSnapshot.firstAutofocusableElement;\n      if (element) {\n        element.focus();\n      }\n    }\n  }\n\n  // Bardo delegate\n\n  enteringBardo(currentPermanentElement) {\n    if (this.#activeElement) return\n\n    if (currentPermanentElement.contains(this.currentSnapshot.activeElement)) {\n      this.#activeElement = this.currentSnapshot.activeElement;\n    }\n  }\n\n  leavingBardo(currentPermanentElement) {\n    if (currentPermanentElement.contains(this.#activeElement) && this.#activeElement instanceof HTMLElement) {\n      this.#activeElement.focus();\n\n      this.#activeElement = null;\n    }\n  }\n\n  get connectedSnapshot() {\n    return this.newSnapshot.isConnected ? this.newSnapshot : this.currentSnapshot\n  }\n\n  get currentElement() {\n    return this.currentSnapshot.element\n  }\n\n  get newElement() {\n    return this.newSnapshot.element\n  }\n\n  get permanentElementMap() {\n    return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot)\n  }\n\n  get renderMethod() {\n    return \"replace\"\n  }\n}\n\nclass FrameRenderer extends Renderer {\n  static renderElement(currentElement, newElement) {\n    const destinationRange = document.createRange();\n    destinationRange.selectNodeContents(currentElement);\n    destinationRange.deleteContents();\n\n    const frameElement = newElement;\n    const sourceRange = frameElement.ownerDocument?.createRange();\n    if (sourceRange) {\n      sourceRange.selectNodeContents(frameElement);\n      currentElement.appendChild(sourceRange.extractContents());\n    }\n  }\n\n  constructor(delegate, currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n    super(currentSnapshot, newSnapshot, renderElement, isPreview, willRender);\n    this.delegate = delegate;\n  }\n\n  get shouldRender() {\n    return true\n  }\n\n  async render() {\n    await nextRepaint();\n    this.preservingPermanentElements(() => {\n      this.loadFrameElement();\n    });\n    this.scrollFrameIntoView();\n    await nextRepaint();\n    this.focusFirstAutofocusableElement();\n    await nextRepaint();\n    this.activateScriptElements();\n  }\n\n  loadFrameElement() {\n    this.delegate.willRenderFrame(this.currentElement, this.newElement);\n    this.renderElement(this.currentElement, this.newElement);\n  }\n\n  scrollFrameIntoView() {\n    if (this.currentElement.autoscroll || this.newElement.autoscroll) {\n      const element = this.currentElement.firstElementChild;\n      const block = readScrollLogicalPosition(this.currentElement.getAttribute(\"data-autoscroll-block\"), \"end\");\n      const behavior = readScrollBehavior(this.currentElement.getAttribute(\"data-autoscroll-behavior\"), \"auto\");\n\n      if (element) {\n        element.scrollIntoView({ block, behavior });\n        return true\n      }\n    }\n    return false\n  }\n\n  activateScriptElements() {\n    for (const inertScriptElement of this.newScriptElements) {\n      const activatedScriptElement = activateScriptElement(inertScriptElement);\n      inertScriptElement.replaceWith(activatedScriptElement);\n    }\n  }\n\n  get newScriptElements() {\n    return this.currentElement.querySelectorAll(\"script\")\n  }\n}\n\nfunction readScrollLogicalPosition(value, defaultValue) {\n  if (value == \"end\" || value == \"start\" || value == \"center\" || value == \"nearest\") {\n    return value\n  } else {\n    return defaultValue\n  }\n}\n\nfunction readScrollBehavior(value, defaultValue) {\n  if (value == \"auto\" || value == \"smooth\") {\n    return value\n  } else {\n    return defaultValue\n  }\n}\n\n/**\n * @typedef {object} ConfigHead\n *\n * @property {'merge' | 'append' | 'morph' | 'none'} [style]\n * @property {boolean} [block]\n * @property {boolean} [ignore]\n * @property {function(Element): boolean} [shouldPreserve]\n * @property {function(Element): boolean} [shouldReAppend]\n * @property {function(Element): boolean} [shouldRemove]\n * @property {function(Element, {added: Node[], kept: Element[], removed: Element[]}): void} [afterHeadMorphed]\n */\n\n/**\n * @typedef {object} ConfigCallbacks\n *\n * @property {function(Node): boolean} [beforeNodeAdded]\n * @property {function(Node): void} [afterNodeAdded]\n * @property {function(Element, Node): boolean} [beforeNodeMorphed]\n * @property {function(Element, Node): void} [afterNodeMorphed]\n * @property {function(Element): boolean} [beforeNodeRemoved]\n * @property {function(Element): void} [afterNodeRemoved]\n * @property {function(string, Element, \"update\" | \"remove\"): boolean} [beforeAttributeUpdated]\n */\n\n/**\n * @typedef {object} Config\n *\n * @property {'outerHTML' | 'innerHTML'} [morphStyle]\n * @property {boolean} [ignoreActive]\n * @property {boolean} [ignoreActiveValue]\n * @property {boolean} [restoreFocus]\n * @property {ConfigCallbacks} [callbacks]\n * @property {ConfigHead} [head]\n */\n\n/**\n * @typedef {function} NoOp\n *\n * @returns {void}\n */\n\n/**\n * @typedef {object} ConfigHeadInternal\n *\n * @property {'merge' | 'append' | 'morph' | 'none'} style\n * @property {boolean} [block]\n * @property {boolean} [ignore]\n * @property {(function(Element): boolean) | NoOp} shouldPreserve\n * @property {(function(Element): boolean) | NoOp} shouldReAppend\n * @property {(function(Element): boolean) | NoOp} shouldRemove\n * @property {(function(Element, {added: Node[], kept: Element[], removed: Element[]}): void) | NoOp} afterHeadMorphed\n */\n\n/**\n * @typedef {object} ConfigCallbacksInternal\n *\n * @property {(function(Node): boolean) | NoOp} beforeNodeAdded\n * @property {(function(Node): void) | NoOp} afterNodeAdded\n * @property {(function(Node, Node): boolean) | NoOp} beforeNodeMorphed\n * @property {(function(Node, Node): void) | NoOp} afterNodeMorphed\n * @property {(function(Node): boolean) | NoOp} beforeNodeRemoved\n * @property {(function(Node): void) | NoOp} afterNodeRemoved\n * @property {(function(string, Element, \"update\" | \"remove\"): boolean) | NoOp} beforeAttributeUpdated\n */\n\n/**\n * @typedef {object} ConfigInternal\n *\n * @property {'outerHTML' | 'innerHTML'} morphStyle\n * @property {boolean} [ignoreActive]\n * @property {boolean} [ignoreActiveValue]\n * @property {boolean} [restoreFocus]\n * @property {ConfigCallbacksInternal} callbacks\n * @property {ConfigHeadInternal} head\n */\n\n/**\n * @typedef {Object} IdSets\n * @property {Set<string>} persistentIds\n * @property {Map<Node, Set<string>>} idMap\n */\n\n/**\n * @typedef {Function} Morph\n *\n * @param {Element | Document} oldNode\n * @param {Element | Node | HTMLCollection | Node[] | string | null} newContent\n * @param {Config} [config]\n * @returns {undefined | Node[]}\n */\n\n// base IIFE to define idiomorph\n/**\n *\n * @type {{defaults: ConfigInternal, morph: Morph}}\n */\nvar Idiomorph = (function () {\n\n  /**\n   * @typedef {object} MorphContext\n   *\n   * @property {Element} target\n   * @property {Element} newContent\n   * @property {ConfigInternal} config\n   * @property {ConfigInternal['morphStyle']} morphStyle\n   * @property {ConfigInternal['ignoreActive']} ignoreActive\n   * @property {ConfigInternal['ignoreActiveValue']} ignoreActiveValue\n   * @property {ConfigInternal['restoreFocus']} restoreFocus\n   * @property {Map<Node, Set<string>>} idMap\n   * @property {Set<string>} persistentIds\n   * @property {ConfigInternal['callbacks']} callbacks\n   * @property {ConfigInternal['head']} head\n   * @property {HTMLDivElement} pantry\n   * @property {Element[]} activeElementAndParents\n   */\n\n  //=============================================================================\n  // AND NOW IT BEGINS...\n  //=============================================================================\n\n  const noOp = () => {};\n  /**\n   * Default configuration values, updatable by users now\n   * @type {ConfigInternal}\n   */\n  const defaults = {\n    morphStyle: \"outerHTML\",\n    callbacks: {\n      beforeNodeAdded: noOp,\n      afterNodeAdded: noOp,\n      beforeNodeMorphed: noOp,\n      afterNodeMorphed: noOp,\n      beforeNodeRemoved: noOp,\n      afterNodeRemoved: noOp,\n      beforeAttributeUpdated: noOp,\n    },\n    head: {\n      style: \"merge\",\n      shouldPreserve: (elt) => elt.getAttribute(\"im-preserve\") === \"true\",\n      shouldReAppend: (elt) => elt.getAttribute(\"im-re-append\") === \"true\",\n      shouldRemove: noOp,\n      afterHeadMorphed: noOp,\n    },\n    restoreFocus: true,\n  };\n\n  /**\n   * Core idiomorph function for morphing one DOM tree to another\n   *\n   * @param {Element | Document} oldNode\n   * @param {Element | Node | HTMLCollection | Node[] | string | null} newContent\n   * @param {Config} [config]\n   * @returns {Promise<Node[]> | Node[]}\n   */\n  function morph(oldNode, newContent, config = {}) {\n    oldNode = normalizeElement(oldNode);\n    const newNode = normalizeParent(newContent);\n    const ctx = createMorphContext(oldNode, newNode, config);\n\n    const morphedNodes = saveAndRestoreFocus(ctx, () => {\n      return withHeadBlocking(\n        ctx,\n        oldNode,\n        newNode,\n        /** @param {MorphContext} ctx */ (ctx) => {\n          if (ctx.morphStyle === \"innerHTML\") {\n            morphChildren(ctx, oldNode, newNode);\n            return Array.from(oldNode.childNodes);\n          } else {\n            return morphOuterHTML(ctx, oldNode, newNode);\n          }\n        },\n      );\n    });\n\n    ctx.pantry.remove();\n    return morphedNodes;\n  }\n\n  /**\n   * Morph just the outerHTML of the oldNode to the newContent\n   * We have to be careful because the oldNode could have siblings which need to be untouched\n   * @param {MorphContext} ctx\n   * @param {Element} oldNode\n   * @param {Element} newNode\n   * @returns {Node[]}\n   */\n  function morphOuterHTML(ctx, oldNode, newNode) {\n    const oldParent = normalizeParent(oldNode);\n    morphChildren(\n      ctx,\n      oldParent,\n      newNode,\n      // these two optional params are the secret sauce\n      oldNode, // start point for iteration\n      oldNode.nextSibling, // end point for iteration\n    );\n    // this is safe even with siblings, because normalizeParent returns a SlicedParentNode if needed.\n    return Array.from(oldParent.childNodes);\n  }\n\n  /**\n   * @param {MorphContext} ctx\n   * @param {Function} fn\n   * @returns {Promise<Node[]> | Node[]}\n   */\n  function saveAndRestoreFocus(ctx, fn) {\n    if (!ctx.config.restoreFocus) return fn();\n    let activeElement =\n      /** @type {HTMLInputElement|HTMLTextAreaElement|null} */ (\n        document.activeElement\n      );\n\n    // don't bother if the active element is not an input or textarea\n    if (\n      !(\n        activeElement instanceof HTMLInputElement ||\n        activeElement instanceof HTMLTextAreaElement\n      )\n    ) {\n      return fn();\n    }\n\n    const { id: activeElementId, selectionStart, selectionEnd } = activeElement;\n\n    const results = fn();\n\n    if (\n      activeElementId &&\n      activeElementId !== document.activeElement?.getAttribute(\"id\")\n    ) {\n      activeElement = ctx.target.querySelector(`[id=\"${activeElementId}\"]`);\n      activeElement?.focus();\n    }\n    if (activeElement && !activeElement.selectionEnd && selectionEnd) {\n      activeElement.setSelectionRange(selectionStart, selectionEnd);\n    }\n\n    return results;\n  }\n\n  const morphChildren = (function () {\n    /**\n     * This is the core algorithm for matching up children.  The idea is to use id sets to try to match up\n     * nodes as faithfully as possible.  We greedily match, which allows us to keep the algorithm fast, but\n     * by using id sets, we are able to better match up with content deeper in the DOM.\n     *\n     * Basic algorithm:\n     * - for each node in the new content:\n     *   - search self and siblings for an id set match, falling back to a soft match\n     *   - if match found\n     *     - remove any nodes up to the match:\n     *       - pantry persistent nodes\n     *       - delete the rest\n     *     - morph the match\n     *   - elsif no match found, and node is persistent\n     *     - find its match by querying the old root (future) and pantry (past)\n     *     - move it and its children here\n     *     - morph it\n     *   - else\n     *     - create a new node from scratch as a last result\n     *\n     * @param {MorphContext} ctx the merge context\n     * @param {Element} oldParent the old content that we are merging the new content into\n     * @param {Element} newParent the parent element of the new content\n     * @param {Node|null} [insertionPoint] the point in the DOM we start morphing at (defaults to first child)\n     * @param {Node|null} [endPoint] the point in the DOM we stop morphing at (defaults to after last child)\n     */\n    function morphChildren(\n      ctx,\n      oldParent,\n      newParent,\n      insertionPoint = null,\n      endPoint = null,\n    ) {\n      // normalize\n      if (\n        oldParent instanceof HTMLTemplateElement &&\n        newParent instanceof HTMLTemplateElement\n      ) {\n        // @ts-ignore we can pretend the DocumentFragment is an Element\n        oldParent = oldParent.content;\n        // @ts-ignore ditto\n        newParent = newParent.content;\n      }\n      insertionPoint ||= oldParent.firstChild;\n\n      // run through all the new content\n      for (const newChild of newParent.childNodes) {\n        // once we reach the end of the old parent content skip to the end and insert the rest\n        if (insertionPoint && insertionPoint != endPoint) {\n          const bestMatch = findBestMatch(\n            ctx,\n            newChild,\n            insertionPoint,\n            endPoint,\n          );\n          if (bestMatch) {\n            // if the node to morph is not at the insertion point then remove/move up to it\n            if (bestMatch !== insertionPoint) {\n              removeNodesBetween(ctx, insertionPoint, bestMatch);\n            }\n            morphNode(bestMatch, newChild, ctx);\n            insertionPoint = bestMatch.nextSibling;\n            continue;\n          }\n        }\n\n        // if the matching node is elsewhere in the original content\n        if (newChild instanceof Element) {\n          // we can pretend the id is non-null because the next `.has` line will reject it if not\n          const newChildId = /** @type {String} */ (\n            newChild.getAttribute(\"id\")\n          );\n          if (ctx.persistentIds.has(newChildId)) {\n            // move it and all its children here and morph\n            const movedChild = moveBeforeById(\n              oldParent,\n              newChildId,\n              insertionPoint,\n              ctx,\n            );\n            morphNode(movedChild, newChild, ctx);\n            insertionPoint = movedChild.nextSibling;\n            continue;\n          }\n        }\n\n        // last resort: insert the new node from scratch\n        const insertedNode = createNode(\n          oldParent,\n          newChild,\n          insertionPoint,\n          ctx,\n        );\n        // could be null if beforeNodeAdded prevented insertion\n        if (insertedNode) {\n          insertionPoint = insertedNode.nextSibling;\n        }\n      }\n\n      // remove any remaining old nodes that didn't match up with new content\n      while (insertionPoint && insertionPoint != endPoint) {\n        const tempNode = insertionPoint;\n        insertionPoint = insertionPoint.nextSibling;\n        removeNode(ctx, tempNode);\n      }\n    }\n\n    /**\n     * This performs the action of inserting a new node while handling situations where the node contains\n     * elements with persistent ids and possible state info we can still preserve by moving in and then morphing\n     *\n     * @param {Element} oldParent\n     * @param {Node} newChild\n     * @param {Node|null} insertionPoint\n     * @param {MorphContext} ctx\n     * @returns {Node|null}\n     */\n    function createNode(oldParent, newChild, insertionPoint, ctx) {\n      if (ctx.callbacks.beforeNodeAdded(newChild) === false) return null;\n      if (ctx.idMap.has(newChild)) {\n        // node has children with ids with possible state so create a dummy elt of same type and apply full morph algorithm\n        const newEmptyChild = document.createElement(\n          /** @type {Element} */ (newChild).tagName,\n        );\n        oldParent.insertBefore(newEmptyChild, insertionPoint);\n        morphNode(newEmptyChild, newChild, ctx);\n        ctx.callbacks.afterNodeAdded(newEmptyChild);\n        return newEmptyChild;\n      } else {\n        // optimisation: no id state to preserve so we can just insert a clone of the newChild and its descendants\n        const newClonedChild = document.importNode(newChild, true); // importNode to not mutate newParent\n        oldParent.insertBefore(newClonedChild, insertionPoint);\n        ctx.callbacks.afterNodeAdded(newClonedChild);\n        return newClonedChild;\n      }\n    }\n\n    //=============================================================================\n    // Matching Functions\n    //=============================================================================\n    const findBestMatch = (function () {\n      /**\n       * Scans forward from the startPoint to the endPoint looking for a match\n       * for the node. It looks for an id set match first, then a soft match.\n       * We abort softmatching if we find two future soft matches, to reduce churn.\n       * @param {Node} node\n       * @param {MorphContext} ctx\n       * @param {Node | null} startPoint\n       * @param {Node | null} endPoint\n       * @returns {Node | null}\n       */\n      function findBestMatch(ctx, node, startPoint, endPoint) {\n        let softMatch = null;\n        let nextSibling = node.nextSibling;\n        let siblingSoftMatchCount = 0;\n\n        let cursor = startPoint;\n        while (cursor && cursor != endPoint) {\n          // soft matching is a prerequisite for id set matching\n          if (isSoftMatch(cursor, node)) {\n            if (isIdSetMatch(ctx, cursor, node)) {\n              return cursor; // found an id set match, we're done!\n            }\n\n            // we haven't yet saved a soft match fallback\n            if (softMatch === null) {\n              // the current soft match will hard match something else in the future, leave it\n              if (!ctx.idMap.has(cursor)) {\n                // save this as the fallback if we get through the loop without finding a hard match\n                softMatch = cursor;\n              }\n            }\n          }\n          if (\n            softMatch === null &&\n            nextSibling &&\n            isSoftMatch(cursor, nextSibling)\n          ) {\n            // The next new node has a soft match with this node, so\n            // increment the count of future soft matches\n            siblingSoftMatchCount++;\n            nextSibling = nextSibling.nextSibling;\n\n            // If there are two future soft matches, block soft matching for this node to allow\n            // future siblings to soft match. This is to reduce churn in the DOM when an element\n            // is prepended.\n            if (siblingSoftMatchCount >= 2) {\n              softMatch = undefined;\n            }\n          }\n\n          // if the current node contains active element, stop looking for better future matches,\n          // because if one is found, this node will be moved to the pantry, reparenting it and thus losing focus\n          // @ts-ignore pretend cursor is Element rather than Node, we're just testing for array inclusion\n          if (ctx.activeElementAndParents.includes(cursor)) break;\n\n          cursor = cursor.nextSibling;\n        }\n\n        return softMatch || null;\n      }\n\n      /**\n       *\n       * @param {MorphContext} ctx\n       * @param {Node} oldNode\n       * @param {Node} newNode\n       * @returns {boolean}\n       */\n      function isIdSetMatch(ctx, oldNode, newNode) {\n        let oldSet = ctx.idMap.get(oldNode);\n        let newSet = ctx.idMap.get(newNode);\n\n        if (!newSet || !oldSet) return false;\n\n        for (const id of oldSet) {\n          // a potential match is an id in the new and old nodes that\n          // has not already been merged into the DOM\n          // But the newNode content we call this on has not been\n          // merged yet and we don't allow duplicate IDs so it is simple\n          if (newSet.has(id)) {\n            return true;\n          }\n        }\n        return false;\n      }\n\n      /**\n       *\n       * @param {Node} oldNode\n       * @param {Node} newNode\n       * @returns {boolean}\n       */\n      function isSoftMatch(oldNode, newNode) {\n        // ok to cast: if one is not element, `id` and `tagName` will be undefined and we'll just compare that.\n        const oldElt = /** @type {Element} */ (oldNode);\n        const newElt = /** @type {Element} */ (newNode);\n\n        return (\n          oldElt.nodeType === newElt.nodeType &&\n          oldElt.tagName === newElt.tagName &&\n          // If oldElt has an `id` with possible state and it doesn't match newElt.id then avoid morphing.\n          // We'll still match an anonymous node with an IDed newElt, though, because if it got this far,\n          // its not persistent, and new nodes can't have any hidden state.\n          // We can't use .id because of form input shadowing, and we can't count on .getAttribute's presence because it could be a document-fragment\n          (!oldElt.getAttribute?.(\"id\") ||\n            oldElt.getAttribute?.(\"id\") === newElt.getAttribute?.(\"id\"))\n        );\n      }\n\n      return findBestMatch;\n    })();\n\n    //=============================================================================\n    // DOM Manipulation Functions\n    //=============================================================================\n\n    /**\n     * Gets rid of an unwanted DOM node; strategy depends on nature of its reuse:\n     * - Persistent nodes will be moved to the pantry for later reuse\n     * - Other nodes will have their hooks called, and then are removed\n     * @param {MorphContext} ctx\n     * @param {Node} node\n     */\n    function removeNode(ctx, node) {\n      // are we going to id set match this later?\n      if (ctx.idMap.has(node)) {\n        // skip callbacks and move to pantry\n        moveBefore(ctx.pantry, node, null);\n      } else {\n        // remove for realsies\n        if (ctx.callbacks.beforeNodeRemoved(node) === false) return;\n        node.parentNode?.removeChild(node);\n        ctx.callbacks.afterNodeRemoved(node);\n      }\n    }\n\n    /**\n     * Remove nodes between the start and end nodes\n     * @param {MorphContext} ctx\n     * @param {Node} startInclusive\n     * @param {Node} endExclusive\n     * @returns {Node|null}\n     */\n    function removeNodesBetween(ctx, startInclusive, endExclusive) {\n      /** @type {Node | null} */\n      let cursor = startInclusive;\n      // remove nodes until the endExclusive node\n      while (cursor && cursor !== endExclusive) {\n        let tempNode = /** @type {Node} */ (cursor);\n        cursor = cursor.nextSibling;\n        removeNode(ctx, tempNode);\n      }\n      return cursor;\n    }\n\n    /**\n     * Search for an element by id within the document and pantry, and move it using moveBefore.\n     *\n     * @param {Element} parentNode - The parent node to which the element will be moved.\n     * @param {string} id - The ID of the element to be moved.\n     * @param {Node | null} after - The reference node to insert the element before.\n     *                              If `null`, the element is appended as the last child.\n     * @param {MorphContext} ctx\n     * @returns {Element} The found element\n     */\n    function moveBeforeById(parentNode, id, after, ctx) {\n      const target =\n        /** @type {Element} - will always be found */\n        (\n          // ctx.target.id unsafe because of form input shadowing\n          // ctx.target could be a document fragment which doesn't have `getAttribute`\n          (ctx.target.getAttribute?.(\"id\") === id && ctx.target) ||\n            ctx.target.querySelector(`[id=\"${id}\"]`) ||\n            ctx.pantry.querySelector(`[id=\"${id}\"]`)\n        );\n      removeElementFromAncestorsIdMaps(target, ctx);\n      moveBefore(parentNode, target, after);\n      return target;\n    }\n\n    /**\n     * Removes an element from its ancestors' id maps. This is needed when an element is moved from the\n     * \"future\" via `moveBeforeId`. Otherwise, its erstwhile ancestors could be mistakenly moved to the\n     * pantry rather than being deleted, preventing their removal hooks from being called.\n     *\n     * @param {Element} element - element to remove from its ancestors' id maps\n     * @param {MorphContext} ctx\n     */\n    function removeElementFromAncestorsIdMaps(element, ctx) {\n      // we know id is non-null String, because this function is only called on elements with ids\n      const id = /** @type {String} */ (element.getAttribute(\"id\"));\n      /** @ts-ignore - safe to loop in this way **/\n      while ((element = element.parentNode)) {\n        let idSet = ctx.idMap.get(element);\n        if (idSet) {\n          idSet.delete(id);\n          if (!idSet.size) {\n            ctx.idMap.delete(element);\n          }\n        }\n      }\n    }\n\n    /**\n     * Moves an element before another element within the same parent.\n     * Uses the proposed `moveBefore` API if available (and working), otherwise falls back to `insertBefore`.\n     * This is essentialy a forward-compat wrapper.\n     *\n     * @param {Element} parentNode - The parent node containing the after element.\n     * @param {Node} element - The element to be moved.\n     * @param {Node | null} after - The reference node to insert `element` before.\n     *                              If `null`, `element` is appended as the last child.\n     */\n    function moveBefore(parentNode, element, after) {\n      // @ts-ignore - use proposed moveBefore feature\n      if (parentNode.moveBefore) {\n        try {\n          // @ts-ignore - use proposed moveBefore feature\n          parentNode.moveBefore(element, after);\n        } catch (e) {\n          // fall back to insertBefore as some browsers may fail on moveBefore when trying to move Dom disconnected nodes to pantry\n          parentNode.insertBefore(element, after);\n        }\n      } else {\n        parentNode.insertBefore(element, after);\n      }\n    }\n\n    return morphChildren;\n  })();\n\n  //=============================================================================\n  // Single Node Morphing Code\n  //=============================================================================\n  const morphNode = (function () {\n    /**\n     * @param {Node} oldNode root node to merge content into\n     * @param {Node} newContent new content to merge\n     * @param {MorphContext} ctx the merge context\n     * @returns {Node | null} the element that ended up in the DOM\n     */\n    function morphNode(oldNode, newContent, ctx) {\n      if (ctx.ignoreActive && oldNode === document.activeElement) {\n        // don't morph focused element\n        return null;\n      }\n\n      if (ctx.callbacks.beforeNodeMorphed(oldNode, newContent) === false) {\n        return oldNode;\n      }\n\n      if (oldNode instanceof HTMLHeadElement && ctx.head.ignore) ; else if (\n        oldNode instanceof HTMLHeadElement &&\n        ctx.head.style !== \"morph\"\n      ) {\n        // ok to cast: if newContent wasn't also a <head>, it would've got caught in the `!isSoftMatch` branch above\n        handleHeadElement(\n          oldNode,\n          /** @type {HTMLHeadElement} */ (newContent),\n          ctx,\n        );\n      } else {\n        morphAttributes(oldNode, newContent, ctx);\n        if (!ignoreValueOfActiveElement(oldNode, ctx)) {\n          // @ts-ignore newContent can be a node here because .firstChild will be null\n          morphChildren(ctx, oldNode, newContent);\n        }\n      }\n      ctx.callbacks.afterNodeMorphed(oldNode, newContent);\n      return oldNode;\n    }\n\n    /**\n     * syncs the oldNode to the newNode, copying over all attributes and\n     * inner element state from the newNode to the oldNode\n     *\n     * @param {Node} oldNode the node to copy attributes & state to\n     * @param {Node} newNode the node to copy attributes & state from\n     * @param {MorphContext} ctx the merge context\n     */\n    function morphAttributes(oldNode, newNode, ctx) {\n      let type = newNode.nodeType;\n\n      // if is an element type, sync the attributes from the\n      // new node into the new node\n      if (type === 1 /* element type */) {\n        const oldElt = /** @type {Element} */ (oldNode);\n        const newElt = /** @type {Element} */ (newNode);\n\n        const oldAttributes = oldElt.attributes;\n        const newAttributes = newElt.attributes;\n        for (const newAttribute of newAttributes) {\n          if (ignoreAttribute(newAttribute.name, oldElt, \"update\", ctx)) {\n            continue;\n          }\n          if (oldElt.getAttribute(newAttribute.name) !== newAttribute.value) {\n            oldElt.setAttribute(newAttribute.name, newAttribute.value);\n          }\n        }\n        // iterate backwards to avoid skipping over items when a delete occurs\n        for (let i = oldAttributes.length - 1; 0 <= i; i--) {\n          const oldAttribute = oldAttributes[i];\n\n          // toAttributes is a live NamedNodeMap, so iteration+mutation is unsafe\n          // e.g. custom element attribute callbacks can remove other attributes\n          if (!oldAttribute) continue;\n\n          if (!newElt.hasAttribute(oldAttribute.name)) {\n            if (ignoreAttribute(oldAttribute.name, oldElt, \"remove\", ctx)) {\n              continue;\n            }\n            oldElt.removeAttribute(oldAttribute.name);\n          }\n        }\n\n        if (!ignoreValueOfActiveElement(oldElt, ctx)) {\n          syncInputValue(oldElt, newElt, ctx);\n        }\n      }\n\n      // sync text nodes\n      if (type === 8 /* comment */ || type === 3 /* text */) {\n        if (oldNode.nodeValue !== newNode.nodeValue) {\n          oldNode.nodeValue = newNode.nodeValue;\n        }\n      }\n    }\n\n    /**\n     * NB: many bothans died to bring us information:\n     *\n     *  https://github.com/patrick-steele-idem/morphdom/blob/master/src/specialElHandlers.js\n     *  https://github.com/choojs/nanomorph/blob/master/lib/morph.jsL113\n     *\n     * @param {Element} oldElement the element to sync the input value to\n     * @param {Element} newElement the element to sync the input value from\n     * @param {MorphContext} ctx the merge context\n     */\n    function syncInputValue(oldElement, newElement, ctx) {\n      if (\n        oldElement instanceof HTMLInputElement &&\n        newElement instanceof HTMLInputElement &&\n        newElement.type !== \"file\"\n      ) {\n        let newValue = newElement.value;\n        let oldValue = oldElement.value;\n\n        // sync boolean attributes\n        syncBooleanAttribute(oldElement, newElement, \"checked\", ctx);\n        syncBooleanAttribute(oldElement, newElement, \"disabled\", ctx);\n\n        if (!newElement.hasAttribute(\"value\")) {\n          if (!ignoreAttribute(\"value\", oldElement, \"remove\", ctx)) {\n            oldElement.value = \"\";\n            oldElement.removeAttribute(\"value\");\n          }\n        } else if (oldValue !== newValue) {\n          if (!ignoreAttribute(\"value\", oldElement, \"update\", ctx)) {\n            oldElement.setAttribute(\"value\", newValue);\n            oldElement.value = newValue;\n          }\n        }\n        // TODO: QUESTION(1cg): this used to only check `newElement` unlike the other branches -- why?\n        // did I break something?\n      } else if (\n        oldElement instanceof HTMLOptionElement &&\n        newElement instanceof HTMLOptionElement\n      ) {\n        syncBooleanAttribute(oldElement, newElement, \"selected\", ctx);\n      } else if (\n        oldElement instanceof HTMLTextAreaElement &&\n        newElement instanceof HTMLTextAreaElement\n      ) {\n        let newValue = newElement.value;\n        let oldValue = oldElement.value;\n        if (ignoreAttribute(\"value\", oldElement, \"update\", ctx)) {\n          return;\n        }\n        if (newValue !== oldValue) {\n          oldElement.value = newValue;\n        }\n        if (\n          oldElement.firstChild &&\n          oldElement.firstChild.nodeValue !== newValue\n        ) {\n          oldElement.firstChild.nodeValue = newValue;\n        }\n      }\n    }\n\n    /**\n     * @param {Element} oldElement element to write the value to\n     * @param {Element} newElement element to read the value from\n     * @param {string} attributeName the attribute name\n     * @param {MorphContext} ctx the merge context\n     */\n    function syncBooleanAttribute(oldElement, newElement, attributeName, ctx) {\n      // @ts-ignore this function is only used on boolean attrs that are reflected as dom properties\n      const newLiveValue = newElement[attributeName],\n        // @ts-ignore ditto\n        oldLiveValue = oldElement[attributeName];\n      if (newLiveValue !== oldLiveValue) {\n        const ignoreUpdate = ignoreAttribute(\n          attributeName,\n          oldElement,\n          \"update\",\n          ctx,\n        );\n        if (!ignoreUpdate) {\n          // update attribute's associated DOM property\n          // @ts-ignore this function is only used on boolean attrs that are reflected as dom properties\n          oldElement[attributeName] = newElement[attributeName];\n        }\n        if (newLiveValue) {\n          if (!ignoreUpdate) {\n            // https://developer.mozilla.org/en-US/docs/Glossary/Boolean/HTML\n            // this is the correct way to set a boolean attribute to \"true\"\n            oldElement.setAttribute(attributeName, \"\");\n          }\n        } else {\n          if (!ignoreAttribute(attributeName, oldElement, \"remove\", ctx)) {\n            oldElement.removeAttribute(attributeName);\n          }\n        }\n      }\n    }\n\n    /**\n     * @param {string} attr the attribute to be mutated\n     * @param {Element} element the element that is going to be updated\n     * @param {\"update\" | \"remove\"} updateType\n     * @param {MorphContext} ctx the merge context\n     * @returns {boolean} true if the attribute should be ignored, false otherwise\n     */\n    function ignoreAttribute(attr, element, updateType, ctx) {\n      if (\n        attr === \"value\" &&\n        ctx.ignoreActiveValue &&\n        element === document.activeElement\n      ) {\n        return true;\n      }\n      return (\n        ctx.callbacks.beforeAttributeUpdated(attr, element, updateType) ===\n        false\n      );\n    }\n\n    /**\n     * @param {Node} possibleActiveElement\n     * @param {MorphContext} ctx\n     * @returns {boolean}\n     */\n    function ignoreValueOfActiveElement(possibleActiveElement, ctx) {\n      return (\n        !!ctx.ignoreActiveValue &&\n        possibleActiveElement === document.activeElement &&\n        possibleActiveElement !== document.body\n      );\n    }\n\n    return morphNode;\n  })();\n\n  //=============================================================================\n  // Head Management Functions\n  //=============================================================================\n  /**\n   * @param {MorphContext} ctx\n   * @param {Element} oldNode\n   * @param {Element} newNode\n   * @param {function} callback\n   * @returns {Node[] | Promise<Node[]>}\n   */\n  function withHeadBlocking(ctx, oldNode, newNode, callback) {\n    if (ctx.head.block) {\n      const oldHead = oldNode.querySelector(\"head\");\n      const newHead = newNode.querySelector(\"head\");\n      if (oldHead && newHead) {\n        const promises = handleHeadElement(oldHead, newHead, ctx);\n        // when head promises resolve, proceed ignoring the head tag\n        return Promise.all(promises).then(() => {\n          const newCtx = Object.assign(ctx, {\n            head: {\n              block: false,\n              ignore: true,\n            },\n          });\n          return callback(newCtx);\n        });\n      }\n    }\n    // just proceed if we not head blocking\n    return callback(ctx);\n  }\n\n  /**\n   *  The HEAD tag can be handled specially, either w/ a 'merge' or 'append' style\n   *\n   * @param {Element} oldHead\n   * @param {Element} newHead\n   * @param {MorphContext} ctx\n   * @returns {Promise<void>[]}\n   */\n  function handleHeadElement(oldHead, newHead, ctx) {\n    let added = [];\n    let removed = [];\n    let preserved = [];\n    let nodesToAppend = [];\n\n    // put all new head elements into a Map, by their outerHTML\n    let srcToNewHeadNodes = new Map();\n    for (const newHeadChild of newHead.children) {\n      srcToNewHeadNodes.set(newHeadChild.outerHTML, newHeadChild);\n    }\n\n    // for each elt in the current head\n    for (const currentHeadElt of oldHead.children) {\n      // If the current head element is in the map\n      let inNewContent = srcToNewHeadNodes.has(currentHeadElt.outerHTML);\n      let isReAppended = ctx.head.shouldReAppend(currentHeadElt);\n      let isPreserved = ctx.head.shouldPreserve(currentHeadElt);\n      if (inNewContent || isPreserved) {\n        if (isReAppended) {\n          // remove the current version and let the new version replace it and re-execute\n          removed.push(currentHeadElt);\n        } else {\n          // this element already exists and should not be re-appended, so remove it from\n          // the new content map, preserving it in the DOM\n          srcToNewHeadNodes.delete(currentHeadElt.outerHTML);\n          preserved.push(currentHeadElt);\n        }\n      } else {\n        if (ctx.head.style === \"append\") {\n          // we are appending and this existing element is not new content\n          // so if and only if it is marked for re-append do we do anything\n          if (isReAppended) {\n            removed.push(currentHeadElt);\n            nodesToAppend.push(currentHeadElt);\n          }\n        } else {\n          // if this is a merge, we remove this content since it is not in the new head\n          if (ctx.head.shouldRemove(currentHeadElt) !== false) {\n            removed.push(currentHeadElt);\n          }\n        }\n      }\n    }\n\n    // Push the remaining new head elements in the Map into the\n    // nodes to append to the head tag\n    nodesToAppend.push(...srcToNewHeadNodes.values());\n\n    let promises = [];\n    for (const newNode of nodesToAppend) {\n      // TODO: This could theoretically be null, based on type\n      let newElt = /** @type {ChildNode} */ (\n        document.createRange().createContextualFragment(newNode.outerHTML)\n          .firstChild\n      );\n      if (ctx.callbacks.beforeNodeAdded(newElt) !== false) {\n        if (\n          (\"href\" in newElt && newElt.href) ||\n          (\"src\" in newElt && newElt.src)\n        ) {\n          /** @type {(result?: any) => void} */ let resolve;\n          let promise = new Promise(function (_resolve) {\n            resolve = _resolve;\n          });\n          newElt.addEventListener(\"load\", function () {\n            resolve();\n          });\n          promises.push(promise);\n        }\n        oldHead.appendChild(newElt);\n        ctx.callbacks.afterNodeAdded(newElt);\n        added.push(newElt);\n      }\n    }\n\n    // remove all removed elements, after we have appended the new elements to avoid\n    // additional network requests for things like style sheets\n    for (const removedElement of removed) {\n      if (ctx.callbacks.beforeNodeRemoved(removedElement) !== false) {\n        oldHead.removeChild(removedElement);\n        ctx.callbacks.afterNodeRemoved(removedElement);\n      }\n    }\n\n    ctx.head.afterHeadMorphed(oldHead, {\n      added: added,\n      kept: preserved,\n      removed: removed,\n    });\n    return promises;\n  }\n\n  //=============================================================================\n  // Create Morph Context Functions\n  //=============================================================================\n  const createMorphContext = (function () {\n    /**\n     *\n     * @param {Element} oldNode\n     * @param {Element} newContent\n     * @param {Config} config\n     * @returns {MorphContext}\n     */\n    function createMorphContext(oldNode, newContent, config) {\n      const { persistentIds, idMap } = createIdMaps(oldNode, newContent);\n\n      const mergedConfig = mergeDefaults(config);\n      const morphStyle = mergedConfig.morphStyle || \"outerHTML\";\n      if (![\"innerHTML\", \"outerHTML\"].includes(morphStyle)) {\n        throw `Do not understand how to morph style ${morphStyle}`;\n      }\n\n      return {\n        target: oldNode,\n        newContent: newContent,\n        config: mergedConfig,\n        morphStyle: morphStyle,\n        ignoreActive: mergedConfig.ignoreActive,\n        ignoreActiveValue: mergedConfig.ignoreActiveValue,\n        restoreFocus: mergedConfig.restoreFocus,\n        idMap: idMap,\n        persistentIds: persistentIds,\n        pantry: createPantry(),\n        activeElementAndParents: createActiveElementAndParents(oldNode),\n        callbacks: mergedConfig.callbacks,\n        head: mergedConfig.head,\n      };\n    }\n\n    /**\n     * Deep merges the config object and the Idiomorph.defaults object to\n     * produce a final configuration object\n     * @param {Config} config\n     * @returns {ConfigInternal}\n     */\n    function mergeDefaults(config) {\n      let finalConfig = Object.assign({}, defaults);\n\n      // copy top level stuff into final config\n      Object.assign(finalConfig, config);\n\n      // copy callbacks into final config (do this to deep merge the callbacks)\n      finalConfig.callbacks = Object.assign(\n        {},\n        defaults.callbacks,\n        config.callbacks,\n      );\n\n      // copy head config into final config  (do this to deep merge the head)\n      finalConfig.head = Object.assign({}, defaults.head, config.head);\n\n      return finalConfig;\n    }\n\n    /**\n     * @returns {HTMLDivElement}\n     */\n    function createPantry() {\n      const pantry = document.createElement(\"div\");\n      pantry.hidden = true;\n      document.body.insertAdjacentElement(\"afterend\", pantry);\n      return pantry;\n    }\n\n    /**\n     * @param {Element} oldNode\n     * @returns {Element[]}\n     */\n    function createActiveElementAndParents(oldNode) {\n      /** @type {Element[]} */\n      let activeElementAndParents = [];\n      let elt = document.activeElement;\n      if (elt?.tagName !== \"BODY\" && oldNode.contains(elt)) {\n        while (elt) {\n          activeElementAndParents.push(elt);\n          if (elt === oldNode) break;\n          elt = elt.parentElement;\n        }\n      }\n      return activeElementAndParents;\n    }\n\n    /**\n     * Returns all elements with an ID contained within the root element and its descendants\n     *\n     * @param {Element} root\n     * @returns {Element[]}\n     */\n    function findIdElements(root) {\n      let elements = Array.from(root.querySelectorAll(\"[id]\"));\n      // root could be a document fragment which doesn't have `getAttribute`\n      if (root.getAttribute?.(\"id\")) {\n        elements.push(root);\n      }\n      return elements;\n    }\n\n    /**\n     * A bottom-up algorithm that populates a map of Element -> IdSet.\n     * The idSet for a given element is the set of all IDs contained within its subtree.\n     * As an optimzation, we filter these IDs through the given list of persistent IDs,\n     * because we don't need to bother considering IDed elements that won't be in the new content.\n     *\n     * @param {Map<Node, Set<string>>} idMap\n     * @param {Set<string>} persistentIds\n     * @param {Element} root\n     * @param {Element[]} elements\n     */\n    function populateIdMapWithTree(idMap, persistentIds, root, elements) {\n      for (const elt of elements) {\n        // we can pretend id is non-null String, because the .has line will reject it immediately if not\n        const id = /** @type {String} */ (elt.getAttribute(\"id\"));\n        if (persistentIds.has(id)) {\n          /** @type {Element|null} */\n          let current = elt;\n          // walk up the parent hierarchy of that element, adding the id\n          // of element to the parent's id set\n          while (current) {\n            let idSet = idMap.get(current);\n            // if the id set doesn't exist, create it and insert it in the map\n            if (idSet == null) {\n              idSet = new Set();\n              idMap.set(current, idSet);\n            }\n            idSet.add(id);\n\n            if (current === root) break;\n            current = current.parentElement;\n          }\n        }\n      }\n    }\n\n    /**\n     * This function computes a map of nodes to all ids contained within that node (inclusive of the\n     * node).  This map can be used to ask if two nodes have intersecting sets of ids, which allows\n     * for a looser definition of \"matching\" than tradition id matching, and allows child nodes\n     * to contribute to a parent nodes matching.\n     *\n     * @param {Element} oldContent  the old content that will be morphed\n     * @param {Element} newContent  the new content to morph to\n     * @returns {IdSets}\n     */\n    function createIdMaps(oldContent, newContent) {\n      const oldIdElements = findIdElements(oldContent);\n      const newIdElements = findIdElements(newContent);\n\n      const persistentIds = createPersistentIds(oldIdElements, newIdElements);\n\n      /** @type {Map<Node, Set<string>>} */\n      let idMap = new Map();\n      populateIdMapWithTree(idMap, persistentIds, oldContent, oldIdElements);\n\n      /** @ts-ignore - if newContent is a duck-typed parent, pass its single child node as the root to halt upwards iteration */\n      const newRoot = newContent.__idiomorphRoot || newContent;\n      populateIdMapWithTree(idMap, persistentIds, newRoot, newIdElements);\n\n      return { persistentIds, idMap };\n    }\n\n    /**\n     * This function computes the set of ids that persist between the two contents excluding duplicates\n     *\n     * @param {Element[]} oldIdElements\n     * @param {Element[]} newIdElements\n     * @returns {Set<string>}\n     */\n    function createPersistentIds(oldIdElements, newIdElements) {\n      let duplicateIds = new Set();\n\n      /** @type {Map<string, string>} */\n      let oldIdTagNameMap = new Map();\n      for (const { id, tagName } of oldIdElements) {\n        if (oldIdTagNameMap.has(id)) {\n          duplicateIds.add(id);\n        } else {\n          oldIdTagNameMap.set(id, tagName);\n        }\n      }\n\n      let persistentIds = new Set();\n      for (const { id, tagName } of newIdElements) {\n        if (persistentIds.has(id)) {\n          duplicateIds.add(id);\n        } else if (oldIdTagNameMap.get(id) === tagName) {\n          persistentIds.add(id);\n        }\n        // skip if tag types mismatch because its not possible to morph one tag into another\n      }\n\n      for (const id of duplicateIds) {\n        persistentIds.delete(id);\n      }\n      return persistentIds;\n    }\n\n    return createMorphContext;\n  })();\n\n  //=============================================================================\n  // HTML Normalization Functions\n  //=============================================================================\n  const { normalizeElement, normalizeParent } = (function () {\n    /** @type {WeakSet<Node>} */\n    const generatedByIdiomorph = new WeakSet();\n\n    /**\n     *\n     * @param {Element | Document} content\n     * @returns {Element}\n     */\n    function normalizeElement(content) {\n      if (content instanceof Document) {\n        return content.documentElement;\n      } else {\n        return content;\n      }\n    }\n\n    /**\n     *\n     * @param {null | string | Node | HTMLCollection | Node[] | Document & {generatedByIdiomorph:boolean}} newContent\n     * @returns {Element}\n     */\n    function normalizeParent(newContent) {\n      if (newContent == null) {\n        return document.createElement(\"div\"); // dummy parent element\n      } else if (typeof newContent === \"string\") {\n        return normalizeParent(parseContent(newContent));\n      } else if (\n        generatedByIdiomorph.has(/** @type {Element} */ (newContent))\n      ) {\n        // the template tag created by idiomorph parsing can serve as a dummy parent\n        return /** @type {Element} */ (newContent);\n      } else if (newContent instanceof Node) {\n        if (newContent.parentNode) {\n          // we can't use the parent directly because newContent may have siblings\n          // that we don't want in the morph, and reparenting might be expensive (TODO is it?),\n          // so instead we create a fake parent node that only sees a slice of its children.\n          /** @type {Element} */\n          return /** @type {any} */ (new SlicedParentNode(newContent));\n        } else {\n          // a single node is added as a child to a dummy parent\n          const dummyParent = document.createElement(\"div\");\n          dummyParent.append(newContent);\n          return dummyParent;\n        }\n      } else {\n        // all nodes in the array or HTMLElement collection are consolidated under\n        // a single dummy parent element\n        const dummyParent = document.createElement(\"div\");\n        for (const elt of [...newContent]) {\n          dummyParent.append(elt);\n        }\n        return dummyParent;\n      }\n    }\n\n    /**\n     * A fake duck-typed parent element to wrap a single node, without actually reparenting it.\n     * This is useful because the node may have siblings that we don't want in the morph, and it may also be moved\n     * or replaced with one or more elements during the morph. This class effectively allows us a window into\n     * a slice of a node's children.\n     * \"If it walks like a duck, and quacks like a duck, then it must be a duck!\" -- James Whitcomb Riley (1849\u20131916)\n     */\n    class SlicedParentNode {\n      /** @param {Node} node */\n      constructor(node) {\n        this.originalNode = node;\n        this.realParentNode = /** @type {Element} */ (node.parentNode);\n        this.previousSibling = node.previousSibling;\n        this.nextSibling = node.nextSibling;\n      }\n\n      /** @returns {Node[]} */\n      get childNodes() {\n        // return slice of realParent's current childNodes, based on previousSibling and nextSibling\n        const nodes = [];\n        let cursor = this.previousSibling\n          ? this.previousSibling.nextSibling\n          : this.realParentNode.firstChild;\n        while (cursor && cursor != this.nextSibling) {\n          nodes.push(cursor);\n          cursor = cursor.nextSibling;\n        }\n        return nodes;\n      }\n\n      /**\n       * @param {string} selector\n       * @returns {Element[]}\n       */\n      querySelectorAll(selector) {\n        return this.childNodes.reduce((results, node) => {\n          if (node instanceof Element) {\n            if (node.matches(selector)) results.push(node);\n            const nodeList = node.querySelectorAll(selector);\n            for (let i = 0; i < nodeList.length; i++) {\n              results.push(nodeList[i]);\n            }\n          }\n          return results;\n        }, /** @type {Element[]} */ ([]));\n      }\n\n      /**\n       * @param {Node} node\n       * @param {Node} referenceNode\n       * @returns {Node}\n       */\n      insertBefore(node, referenceNode) {\n        return this.realParentNode.insertBefore(node, referenceNode);\n      }\n\n      /**\n       * @param {Node} node\n       * @param {Node} referenceNode\n       * @returns {Node}\n       */\n      moveBefore(node, referenceNode) {\n        // @ts-ignore - use new moveBefore feature\n        return this.realParentNode.moveBefore(node, referenceNode);\n      }\n\n      /**\n       * for later use with populateIdMapWithTree to halt upwards iteration\n       * @returns {Node}\n       */\n      get __idiomorphRoot() {\n        return this.originalNode;\n      }\n    }\n\n    /**\n     *\n     * @param {string} newContent\n     * @returns {Node | null | DocumentFragment}\n     */\n    function parseContent(newContent) {\n      let parser = new DOMParser();\n\n      // remove svgs to avoid false-positive matches on head, etc.\n      let contentWithSvgsRemoved = newContent.replace(\n        /<svg(\\s[^>]*>|>)([\\s\\S]*?)<\\/svg>/gim,\n        \"\",\n      );\n\n      // if the newContent contains a html, head or body tag, we can simply parse it w/o wrapping\n      if (\n        contentWithSvgsRemoved.match(/<\\/html>/) ||\n        contentWithSvgsRemoved.match(/<\\/head>/) ||\n        contentWithSvgsRemoved.match(/<\\/body>/)\n      ) {\n        let content = parser.parseFromString(newContent, \"text/html\");\n        // if it is a full HTML document, return the document itself as the parent container\n        if (contentWithSvgsRemoved.match(/<\\/html>/)) {\n          generatedByIdiomorph.add(content);\n          return content;\n        } else {\n          // otherwise return the html element as the parent container\n          let htmlElement = content.firstChild;\n          if (htmlElement) {\n            generatedByIdiomorph.add(htmlElement);\n          }\n          return htmlElement;\n        }\n      } else {\n        // if it is partial HTML, wrap it in a template tag to provide a parent element and also to help\n        // deal with touchy tags like tr, tbody, etc.\n        let responseDoc = parser.parseFromString(\n          \"<body><template>\" + newContent + \"</template></body>\",\n          \"text/html\",\n        );\n        let content = /** @type {HTMLTemplateElement} */ (\n          responseDoc.body.querySelector(\"template\")\n        ).content;\n        generatedByIdiomorph.add(content);\n        return content;\n      }\n    }\n\n    return { normalizeElement, normalizeParent };\n  })();\n\n  //=============================================================================\n  // This is what ends up becoming the Idiomorph global object\n  //=============================================================================\n  return {\n    morph,\n    defaults,\n  };\n})();\n\n/**\n * Morph the state of the currentElement based on the attributes and contents of\n * the newElement. Morphing may dispatch turbo:before-morph-element,\n * turbo:before-morph-attribute, and turbo:morph-element events.\n *\n * @param currentElement Element destination of morphing changes\n * @param newElement Element source of morphing changes\n */\nfunction morphElements(currentElement, newElement, { callbacks, ...options } = {}) {\n  Idiomorph.morph(currentElement, newElement, {\n    ...options,\n    callbacks: new DefaultIdiomorphCallbacks(callbacks)\n  });\n}\n\n/**\n * Morph the child elements of the currentElement based on the child elements of\n * the newElement. Morphing children may dispatch turbo:before-morph-element,\n * turbo:before-morph-attribute, and turbo:morph-element events.\n *\n * @param currentElement Element destination of morphing children changes\n * @param newElement Element source of morphing children changes\n */\nfunction morphChildren(currentElement, newElement, options = {}) {\n  morphElements(currentElement, newElement.childNodes, {\n    ...options,\n    morphStyle: \"innerHTML\"\n  });\n}\n\nfunction shouldRefreshFrameWithMorphing(currentFrame, newFrame) {\n  return currentFrame instanceof FrameElement &&\n    currentFrame.shouldReloadWithMorph && (!newFrame || areFramesCompatibleForRefreshing(currentFrame, newFrame)) &&\n    !currentFrame.closest(\"[data-turbo-permanent]\")\n}\n\nfunction areFramesCompatibleForRefreshing(currentFrame, newFrame) {\n  // newFrame cannot yet be an instance of FrameElement because custom\n  // elements don't get initialized until they're attached to the DOM, so\n  // test its Element#nodeName instead\n  return newFrame instanceof Element && newFrame.nodeName === \"TURBO-FRAME\" && currentFrame.id === newFrame.id &&\n  (!newFrame.getAttribute(\"src\") || urlsAreEqual(currentFrame.src, newFrame.getAttribute(\"src\")))\n}\n\nfunction closestFrameReloadableWithMorphing(node) {\n  return node.parentElement.closest(\"turbo-frame[src][refresh=morph]\")\n}\n\nclass DefaultIdiomorphCallbacks {\n  #beforeNodeMorphed\n\n  constructor({ beforeNodeMorphed } = {}) {\n    this.#beforeNodeMorphed = beforeNodeMorphed || (() => true);\n  }\n\n  beforeNodeAdded = (node) => {\n    return !(node.id && node.hasAttribute(\"data-turbo-permanent\") && document.getElementById(node.id))\n  }\n\n  beforeNodeMorphed = (currentElement, newElement) => {\n    if (currentElement instanceof Element) {\n      if (!currentElement.hasAttribute(\"data-turbo-permanent\") && this.#beforeNodeMorphed(currentElement, newElement)) {\n        const event = dispatch(\"turbo:before-morph-element\", {\n          cancelable: true,\n          target: currentElement,\n          detail: { currentElement, newElement }\n        });\n\n        return !event.defaultPrevented\n      } else {\n        return false\n      }\n    }\n  }\n\n  beforeAttributeUpdated = (attributeName, target, mutationType) => {\n    const event = dispatch(\"turbo:before-morph-attribute\", {\n      cancelable: true,\n      target,\n      detail: { attributeName, mutationType }\n    });\n\n    return !event.defaultPrevented\n  }\n\n  beforeNodeRemoved = (node) => {\n    return this.beforeNodeMorphed(node)\n  }\n\n  afterNodeMorphed = (currentElement, newElement) => {\n    if (currentElement instanceof Element) {\n      dispatch(\"turbo:morph-element\", {\n        target: currentElement,\n        detail: { currentElement, newElement }\n      });\n    }\n  }\n}\n\nclass MorphingFrameRenderer extends FrameRenderer {\n  static renderElement(currentElement, newElement) {\n    dispatch(\"turbo:before-frame-morph\", {\n      target: currentElement,\n      detail: { currentElement, newElement }\n    });\n\n    morphChildren(currentElement, newElement, {\n      callbacks: {\n        beforeNodeMorphed: (node, newNode) => {\n          if (\n            shouldRefreshFrameWithMorphing(node, newNode) &&\n              closestFrameReloadableWithMorphing(node) === currentElement\n          ) {\n            node.reload();\n            return false\n          }\n          return true\n        }\n      }\n    });\n  }\n\n  async preservingPermanentElements(callback) {\n    return await callback()\n  }\n}\n\nclass ProgressBar {\n  static animationDuration = 300 /*ms*/\n\n  static get defaultCSS() {\n    return unindent`\n      .turbo-progress-bar {\n        position: fixed;\n        display: block;\n        top: 0;\n        left: 0;\n        height: 3px;\n        background: #0076ff;\n        z-index: 2147483647;\n        transition:\n          width ${ProgressBar.animationDuration}ms ease-out,\n          opacity ${ProgressBar.animationDuration / 2}ms ${ProgressBar.animationDuration / 2}ms ease-in;\n        transform: translate3d(0, 0, 0);\n      }\n    `\n  }\n\n  hiding = false\n  value = 0\n  visible = false\n\n  constructor() {\n    this.stylesheetElement = this.createStylesheetElement();\n    this.progressElement = this.createProgressElement();\n    this.installStylesheetElement();\n    this.setValue(0);\n  }\n\n  show() {\n    if (!this.visible) {\n      this.visible = true;\n      this.installProgressElement();\n      this.startTrickling();\n    }\n  }\n\n  hide() {\n    if (this.visible && !this.hiding) {\n      this.hiding = true;\n      this.fadeProgressElement(() => {\n        this.uninstallProgressElement();\n        this.stopTrickling();\n        this.visible = false;\n        this.hiding = false;\n      });\n    }\n  }\n\n  setValue(value) {\n    this.value = value;\n    this.refresh();\n  }\n\n  // Private\n\n  installStylesheetElement() {\n    document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n  }\n\n  installProgressElement() {\n    this.progressElement.style.width = \"0\";\n    this.progressElement.style.opacity = \"1\";\n    document.documentElement.insertBefore(this.progressElement, document.body);\n    this.refresh();\n  }\n\n  fadeProgressElement(callback) {\n    this.progressElement.style.opacity = \"0\";\n    setTimeout(callback, ProgressBar.animationDuration * 1.5);\n  }\n\n  uninstallProgressElement() {\n    if (this.progressElement.parentNode) {\n      document.documentElement.removeChild(this.progressElement);\n    }\n  }\n\n  startTrickling() {\n    if (!this.trickleInterval) {\n      this.trickleInterval = window.setInterval(this.trickle, ProgressBar.animationDuration);\n    }\n  }\n\n  stopTrickling() {\n    window.clearInterval(this.trickleInterval);\n    delete this.trickleInterval;\n  }\n\n  trickle = () => {\n    this.setValue(this.value + Math.random() / 100);\n  }\n\n  refresh() {\n    requestAnimationFrame(() => {\n      this.progressElement.style.width = `${10 + this.value * 90}%`;\n    });\n  }\n\n  createStylesheetElement() {\n    const element = document.createElement(\"style\");\n    element.type = \"text/css\";\n    element.textContent = ProgressBar.defaultCSS;\n    const cspNonce = getCspNonce();\n    if (cspNonce) {\n      element.nonce = cspNonce;\n    }\n    return element\n  }\n\n  createProgressElement() {\n    const element = document.createElement(\"div\");\n    element.className = \"turbo-progress-bar\";\n    return element\n  }\n}\n\nclass HeadSnapshot extends Snapshot {\n  detailsByOuterHTML = this.children\n    .filter((element) => !elementIsNoscript(element))\n    .map((element) => elementWithoutNonce(element))\n    .reduce((result, element) => {\n      const { outerHTML } = element;\n      const details =\n        outerHTML in result\n          ? result[outerHTML]\n          : {\n              type: elementType(element),\n              tracked: elementIsTracked(element),\n              elements: []\n            };\n      return {\n        ...result,\n        [outerHTML]: {\n          ...details,\n          elements: [...details.elements, element]\n        }\n      }\n    }, {})\n\n  get trackedElementSignature() {\n    return Object.keys(this.detailsByOuterHTML)\n      .filter((outerHTML) => this.detailsByOuterHTML[outerHTML].tracked)\n      .join(\"\")\n  }\n\n  getScriptElementsNotInSnapshot(snapshot) {\n    return this.getElementsMatchingTypeNotInSnapshot(\"script\", snapshot)\n  }\n\n  getStylesheetElementsNotInSnapshot(snapshot) {\n    return this.getElementsMatchingTypeNotInSnapshot(\"stylesheet\", snapshot)\n  }\n\n  getElementsMatchingTypeNotInSnapshot(matchedType, snapshot) {\n    return Object.keys(this.detailsByOuterHTML)\n      .filter((outerHTML) => !(outerHTML in snapshot.detailsByOuterHTML))\n      .map((outerHTML) => this.detailsByOuterHTML[outerHTML])\n      .filter(({ type }) => type == matchedType)\n      .map(({ elements: [element] }) => element)\n  }\n\n  get provisionalElements() {\n    return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n      const { type, tracked, elements } = this.detailsByOuterHTML[outerHTML];\n      if (type == null && !tracked) {\n        return [...result, ...elements]\n      } else if (elements.length > 1) {\n        return [...result, ...elements.slice(1)]\n      } else {\n        return result\n      }\n    }, [])\n  }\n\n  getMetaValue(name) {\n    const element = this.findMetaElementByName(name);\n    return element ? element.getAttribute(\"content\") : null\n  }\n\n  findMetaElementByName(name) {\n    return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n      const {\n        elements: [element]\n      } = this.detailsByOuterHTML[outerHTML];\n      return elementIsMetaElementWithName(element, name) ? element : result\n    }, undefined | undefined)\n  }\n}\n\nfunction elementType(element) {\n  if (elementIsScript(element)) {\n    return \"script\"\n  } else if (elementIsStylesheet(element)) {\n    return \"stylesheet\"\n  }\n}\n\nfunction elementIsTracked(element) {\n  return element.getAttribute(\"data-turbo-track\") == \"reload\"\n}\n\nfunction elementIsScript(element) {\n  const tagName = element.localName;\n  return tagName == \"script\"\n}\n\nfunction elementIsNoscript(element) {\n  const tagName = element.localName;\n  return tagName == \"noscript\"\n}\n\nfunction elementIsStylesheet(element) {\n  const tagName = element.localName;\n  return tagName == \"style\" || (tagName == \"link\" && element.getAttribute(\"rel\") == \"stylesheet\")\n}\n\nfunction elementIsMetaElementWithName(element, name) {\n  const tagName = element.localName;\n  return tagName == \"meta\" && element.getAttribute(\"name\") == name\n}\n\nfunction elementWithoutNonce(element) {\n  if (element.hasAttribute(\"nonce\")) {\n    element.setAttribute(\"nonce\", \"\");\n  }\n\n  return element\n}\n\nclass PageSnapshot extends Snapshot {\n  static fromHTMLString(html = \"\") {\n    return this.fromDocument(parseHTMLDocument(html))\n  }\n\n  static fromElement(element) {\n    return this.fromDocument(element.ownerDocument)\n  }\n\n  static fromDocument({ documentElement, body, head }) {\n    return new this(documentElement, body, new HeadSnapshot(head))\n  }\n\n  constructor(documentElement, body, headSnapshot) {\n    super(body);\n    this.documentElement = documentElement;\n    this.headSnapshot = headSnapshot;\n  }\n\n  clone() {\n    const clonedElement = this.element.cloneNode(true);\n\n    const selectElements = this.element.querySelectorAll(\"select\");\n    const clonedSelectElements = clonedElement.querySelectorAll(\"select\");\n\n    for (const [index, source] of selectElements.entries()) {\n      const clone = clonedSelectElements[index];\n      for (const option of clone.selectedOptions) option.selected = false;\n      for (const option of source.selectedOptions) clone.options[option.index].selected = true;\n    }\n\n    for (const clonedPasswordInput of clonedElement.querySelectorAll('input[type=\"password\"]')) {\n      clonedPasswordInput.value = \"\";\n    }\n\n    for (const clonedNoscriptElement of clonedElement.querySelectorAll(\"noscript\")) {\n      clonedNoscriptElement.remove();\n    }\n\n    return new PageSnapshot(this.documentElement, clonedElement, this.headSnapshot)\n  }\n\n  get lang() {\n    return this.documentElement.getAttribute(\"lang\")\n  }\n\n  get dir() {\n    return this.documentElement.getAttribute(\"dir\")\n  }\n\n  get headElement() {\n    return this.headSnapshot.element\n  }\n\n  get rootLocation() {\n    const root = this.getSetting(\"root\") ?? \"/\";\n    return expandURL(root)\n  }\n\n  get cacheControlValue() {\n    return this.getSetting(\"cache-control\")\n  }\n\n  get isPreviewable() {\n    return this.cacheControlValue != \"no-preview\"\n  }\n\n  get isCacheable() {\n    return this.cacheControlValue != \"no-cache\"\n  }\n\n  get isVisitable() {\n    return this.getSetting(\"visit-control\") != \"reload\"\n  }\n\n  get prefersViewTransitions() {\n    const viewTransitionEnabled = this.getSetting(\"view-transition\") === \"true\" || this.headSnapshot.getMetaValue(\"view-transition\") === \"same-origin\";\n    return viewTransitionEnabled && !window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches\n  }\n\n  get refreshMethod() {\n    return this.getSetting(\"refresh-method\")\n  }\n\n  get refreshScroll() {\n    return this.getSetting(\"refresh-scroll\")\n  }\n\n  // Private\n\n  getSetting(name) {\n    return this.headSnapshot.getMetaValue(`turbo-${name}`)\n  }\n}\n\nclass ViewTransitioner {\n  #viewTransitionStarted = false\n  #lastOperation = Promise.resolve()\n\n  renderChange(useViewTransition, render) {\n    if (useViewTransition && this.viewTransitionsAvailable && !this.#viewTransitionStarted) {\n      this.#viewTransitionStarted = true;\n      this.#lastOperation = this.#lastOperation.then(async () => {\n        await document.startViewTransition(render).finished;\n      });\n    } else {\n      this.#lastOperation = this.#lastOperation.then(render);\n    }\n\n    return this.#lastOperation\n  }\n\n  get viewTransitionsAvailable() {\n    return document.startViewTransition\n  }\n}\n\nconst defaultOptions = {\n  action: \"advance\",\n  historyChanged: false,\n  visitCachedSnapshot: () => {},\n  willRender: true,\n  updateHistory: true,\n  shouldCacheSnapshot: true,\n  acceptsStreamResponse: false,\n  refresh: {}\n};\n\nconst TimingMetric = {\n  visitStart: \"visitStart\",\n  requestStart: \"requestStart\",\n  requestEnd: \"requestEnd\",\n  visitEnd: \"visitEnd\"\n};\n\nconst VisitState = {\n  initialized: \"initialized\",\n  started: \"started\",\n  canceled: \"canceled\",\n  failed: \"failed\",\n  completed: \"completed\"\n};\n\nconst SystemStatusCode = {\n  networkFailure: 0,\n  timeoutFailure: -1,\n  contentTypeMismatch: -2\n};\n\nconst Direction = {\n  advance: \"forward\",\n  restore: \"back\",\n  replace: \"none\"\n};\n\nclass Visit {\n  identifier = uuid() // Required by turbo-ios\n  timingMetrics = {}\n\n  followedRedirect = false\n  historyChanged = false\n  scrolled = false\n  shouldCacheSnapshot = true\n  acceptsStreamResponse = false\n  snapshotCached = false\n  state = VisitState.initialized\n  viewTransitioner = new ViewTransitioner()\n\n  constructor(delegate, location, restorationIdentifier, options = {}) {\n    this.delegate = delegate;\n    this.location = location;\n    this.restorationIdentifier = restorationIdentifier || uuid();\n\n    const {\n      action,\n      historyChanged,\n      referrer,\n      snapshot,\n      snapshotHTML,\n      response,\n      visitCachedSnapshot,\n      willRender,\n      updateHistory,\n      shouldCacheSnapshot,\n      acceptsStreamResponse,\n      direction,\n      refresh\n    } = {\n      ...defaultOptions,\n      ...options\n    };\n    this.action = action;\n    this.historyChanged = historyChanged;\n    this.referrer = referrer;\n    this.snapshot = snapshot;\n    this.snapshotHTML = snapshotHTML;\n    this.response = response;\n    this.isPageRefresh = this.view.isPageRefresh(this);\n    this.visitCachedSnapshot = visitCachedSnapshot;\n    this.willRender = willRender;\n    this.updateHistory = updateHistory;\n    this.scrolled = !willRender;\n    this.shouldCacheSnapshot = shouldCacheSnapshot;\n    this.acceptsStreamResponse = acceptsStreamResponse;\n    this.direction = direction || Direction[action];\n    this.refresh = refresh;\n  }\n\n  get adapter() {\n    return this.delegate.adapter\n  }\n\n  get view() {\n    return this.delegate.view\n  }\n\n  get history() {\n    return this.delegate.history\n  }\n\n  get restorationData() {\n    return this.history.getRestorationDataForIdentifier(this.restorationIdentifier)\n  }\n\n  start() {\n    if (this.state == VisitState.initialized) {\n      this.recordTimingMetric(TimingMetric.visitStart);\n      this.state = VisitState.started;\n      this.adapter.visitStarted(this);\n      this.delegate.visitStarted(this);\n    }\n  }\n\n  cancel() {\n    if (this.state == VisitState.started) {\n      if (this.request) {\n        this.request.cancel();\n      }\n      this.cancelRender();\n      this.state = VisitState.canceled;\n    }\n  }\n\n  complete() {\n    if (this.state == VisitState.started) {\n      this.recordTimingMetric(TimingMetric.visitEnd);\n      this.adapter.visitCompleted(this);\n      this.state = VisitState.completed;\n      this.followRedirect();\n\n      if (!this.followedRedirect) {\n        this.delegate.visitCompleted(this);\n      }\n    }\n  }\n\n  fail() {\n    if (this.state == VisitState.started) {\n      this.state = VisitState.failed;\n      this.adapter.visitFailed(this);\n      this.delegate.visitCompleted(this);\n    }\n  }\n\n  changeHistory() {\n    if (!this.historyChanged && this.updateHistory) {\n      const actionForHistory = this.location.href === this.referrer?.href ? \"replace\" : this.action;\n      const method = getHistoryMethodForAction(actionForHistory);\n      this.history.update(method, this.location, this.restorationIdentifier);\n      this.historyChanged = true;\n    }\n  }\n\n  issueRequest() {\n    if (this.hasPreloadedResponse()) {\n      this.simulateRequest();\n    } else if (this.shouldIssueRequest() && !this.request) {\n      this.request = new FetchRequest(this, FetchMethod.get, this.location);\n      this.request.perform();\n    }\n  }\n\n  simulateRequest() {\n    if (this.response) {\n      this.startRequest();\n      this.recordResponse();\n      this.finishRequest();\n    }\n  }\n\n  startRequest() {\n    this.recordTimingMetric(TimingMetric.requestStart);\n    this.adapter.visitRequestStarted(this);\n  }\n\n  recordResponse(response = this.response) {\n    this.response = response;\n    if (response) {\n      const { statusCode } = response;\n      if (isSuccessful(statusCode)) {\n        this.adapter.visitRequestCompleted(this);\n      } else {\n        this.adapter.visitRequestFailedWithStatusCode(this, statusCode);\n      }\n    }\n  }\n\n  finishRequest() {\n    this.recordTimingMetric(TimingMetric.requestEnd);\n    this.adapter.visitRequestFinished(this);\n  }\n\n  loadResponse() {\n    if (this.response) {\n      const { statusCode, responseHTML } = this.response;\n      this.render(async () => {\n        if (this.shouldCacheSnapshot) this.cacheSnapshot();\n        if (this.view.renderPromise) await this.view.renderPromise;\n\n        if (isSuccessful(statusCode) && responseHTML != null) {\n          const snapshot = PageSnapshot.fromHTMLString(responseHTML);\n          await this.renderPageSnapshot(snapshot, false);\n\n          this.adapter.visitRendered(this);\n          this.complete();\n        } else {\n          await this.view.renderError(PageSnapshot.fromHTMLString(responseHTML), this);\n          this.adapter.visitRendered(this);\n          this.fail();\n        }\n      });\n    }\n  }\n\n  getCachedSnapshot() {\n    const snapshot = this.view.getCachedSnapshotForLocation(this.location) || this.getPreloadedSnapshot();\n\n    if (snapshot && (!getAnchor(this.location) || snapshot.hasAnchor(getAnchor(this.location)))) {\n      if (this.action == \"restore\" || snapshot.isPreviewable) {\n        return snapshot\n      }\n    }\n  }\n\n  getPreloadedSnapshot() {\n    if (this.snapshotHTML) {\n      return PageSnapshot.fromHTMLString(this.snapshotHTML)\n    }\n  }\n\n  hasCachedSnapshot() {\n    return this.getCachedSnapshot() != null\n  }\n\n  loadCachedSnapshot() {\n    const snapshot = this.getCachedSnapshot();\n    if (snapshot) {\n      const isPreview = this.shouldIssueRequest();\n      this.render(async () => {\n        this.cacheSnapshot();\n        if (this.isPageRefresh) {\n          this.adapter.visitRendered(this);\n        } else {\n          if (this.view.renderPromise) await this.view.renderPromise;\n\n          await this.renderPageSnapshot(snapshot, isPreview);\n\n          this.adapter.visitRendered(this);\n          if (!isPreview) {\n            this.complete();\n          }\n        }\n      });\n    }\n  }\n\n  followRedirect() {\n    if (this.redirectedToLocation && !this.followedRedirect && this.response?.redirected) {\n      this.adapter.visitProposedToLocation(this.redirectedToLocation, {\n        action: \"replace\",\n        response: this.response,\n        shouldCacheSnapshot: false,\n        willRender: false\n      });\n      this.followedRedirect = true;\n    }\n  }\n\n  // Fetch request delegate\n\n  prepareRequest(request) {\n    if (this.acceptsStreamResponse) {\n      request.acceptResponseType(StreamMessage.contentType);\n    }\n  }\n\n  requestStarted() {\n    this.startRequest();\n  }\n\n  requestPreventedHandlingResponse(_request, _response) {}\n\n  async requestSucceededWithResponse(request, response) {\n    const responseHTML = await response.responseHTML;\n    const { redirected, statusCode } = response;\n    if (responseHTML == undefined) {\n      this.recordResponse({\n        statusCode: SystemStatusCode.contentTypeMismatch,\n        redirected\n      });\n    } else {\n      this.redirectedToLocation = response.redirected ? response.location : undefined;\n      this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n    }\n  }\n\n  async requestFailedWithResponse(request, response) {\n    const responseHTML = await response.responseHTML;\n    const { redirected, statusCode } = response;\n    if (responseHTML == undefined) {\n      this.recordResponse({\n        statusCode: SystemStatusCode.contentTypeMismatch,\n        redirected\n      });\n    } else {\n      this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n    }\n  }\n\n  requestErrored(_request, _error) {\n    this.recordResponse({\n      statusCode: SystemStatusCode.networkFailure,\n      redirected: false\n    });\n  }\n\n  requestFinished() {\n    this.finishRequest();\n  }\n\n  // Scrolling\n\n  performScroll() {\n    if (!this.scrolled && !this.view.forceReloaded && !this.view.shouldPreserveScrollPosition(this)) {\n      if (this.action == \"restore\") {\n        this.scrollToRestoredPosition() || this.scrollToAnchor() || this.view.scrollToTop();\n      } else {\n        this.scrollToAnchor() || this.view.scrollToTop();\n      }\n\n      this.scrolled = true;\n    }\n  }\n\n  scrollToRestoredPosition() {\n    const { scrollPosition } = this.restorationData;\n    if (scrollPosition) {\n      this.view.scrollToPosition(scrollPosition);\n      return true\n    }\n  }\n\n  scrollToAnchor() {\n    const anchor = getAnchor(this.location);\n    if (anchor != null) {\n      this.view.scrollToAnchor(anchor);\n      return true\n    }\n  }\n\n  // Instrumentation\n\n  recordTimingMetric(metric) {\n    this.timingMetrics[metric] = new Date().getTime();\n  }\n\n  getTimingMetrics() {\n    return { ...this.timingMetrics }\n  }\n\n  // Private\n\n  hasPreloadedResponse() {\n    return typeof this.response == \"object\"\n  }\n\n  shouldIssueRequest() {\n    if (this.action == \"restore\") {\n      return !this.hasCachedSnapshot()\n    } else {\n      return this.willRender\n    }\n  }\n\n  cacheSnapshot() {\n    if (!this.snapshotCached) {\n      this.view.cacheSnapshot(this.snapshot).then((snapshot) => snapshot && this.visitCachedSnapshot(snapshot));\n      this.snapshotCached = true;\n    }\n  }\n\n  async render(callback) {\n    this.cancelRender();\n    await new Promise((resolve) => {\n      this.frame =\n        document.visibilityState === \"hidden\" ? setTimeout(() => resolve(), 0) : requestAnimationFrame(() => resolve());\n    });\n    await callback();\n    delete this.frame;\n  }\n\n  async renderPageSnapshot(snapshot, isPreview) {\n    await this.viewTransitioner.renderChange(this.view.shouldTransitionTo(snapshot), async () => {\n      await this.view.renderPage(snapshot, isPreview, this.willRender, this);\n      this.performScroll();\n    });\n  }\n\n  cancelRender() {\n    if (this.frame) {\n      cancelAnimationFrame(this.frame);\n      delete this.frame;\n    }\n  }\n}\n\nfunction isSuccessful(statusCode) {\n  return statusCode >= 200 && statusCode < 300\n}\n\nclass BrowserAdapter {\n  progressBar = new ProgressBar()\n\n  constructor(session) {\n    this.session = session;\n  }\n\n  visitProposedToLocation(location, options) {\n    if (locationIsVisitable(location, this.navigator.rootLocation)) {\n      this.navigator.startVisit(location, options?.restorationIdentifier || uuid(), options);\n    } else {\n      window.location.href = location.toString();\n    }\n  }\n\n  visitStarted(visit) {\n    this.location = visit.location;\n    this.redirectedToLocation = null;\n\n    visit.loadCachedSnapshot();\n    visit.issueRequest();\n  }\n\n  visitRequestStarted(visit) {\n    this.progressBar.setValue(0);\n    if (visit.hasCachedSnapshot() || visit.action != \"restore\") {\n      this.showVisitProgressBarAfterDelay();\n    } else {\n      this.showProgressBar();\n    }\n  }\n\n  visitRequestCompleted(visit) {\n    visit.loadResponse();\n\n    if (visit.response.redirected) {\n      this.redirectedToLocation = visit.redirectedToLocation;\n    }\n  }\n\n  visitRequestFailedWithStatusCode(visit, statusCode) {\n    switch (statusCode) {\n      case SystemStatusCode.networkFailure:\n      case SystemStatusCode.timeoutFailure:\n      case SystemStatusCode.contentTypeMismatch:\n        return this.reload({\n          reason: \"request_failed\",\n          context: {\n            statusCode\n          }\n        })\n      default:\n        return visit.loadResponse()\n    }\n  }\n\n  visitRequestFinished(_visit) {}\n\n  visitCompleted(_visit) {\n    this.progressBar.setValue(1);\n    this.hideVisitProgressBar();\n  }\n\n  pageInvalidated(reason) {\n    this.reload(reason);\n  }\n\n  visitFailed(_visit) {\n    this.progressBar.setValue(1);\n    this.hideVisitProgressBar();\n  }\n\n  visitRendered(_visit) {}\n\n  // Link prefetching\n\n  linkPrefetchingIsEnabledForLocation(location) {\n    return true\n  }\n\n  // Form Submission Delegate\n\n  formSubmissionStarted(_formSubmission) {\n    this.progressBar.setValue(0);\n    this.showFormProgressBarAfterDelay();\n  }\n\n  formSubmissionFinished(_formSubmission) {\n    this.progressBar.setValue(1);\n    this.hideFormProgressBar();\n  }\n\n  // Private\n\n  showVisitProgressBarAfterDelay() {\n    this.visitProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n  }\n\n  hideVisitProgressBar() {\n    this.progressBar.hide();\n    if (this.visitProgressBarTimeout != null) {\n      window.clearTimeout(this.visitProgressBarTimeout);\n      delete this.visitProgressBarTimeout;\n    }\n  }\n\n  showFormProgressBarAfterDelay() {\n    if (this.formProgressBarTimeout == null) {\n      this.formProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n    }\n  }\n\n  hideFormProgressBar() {\n    this.progressBar.hide();\n    if (this.formProgressBarTimeout != null) {\n      window.clearTimeout(this.formProgressBarTimeout);\n      delete this.formProgressBarTimeout;\n    }\n  }\n\n  showProgressBar = () => {\n    this.progressBar.show();\n  }\n\n  reload(reason) {\n    dispatch(\"turbo:reload\", { detail: reason });\n\n    window.location.href = (this.redirectedToLocation || this.location)?.toString() || window.location.href;\n  }\n\n  get navigator() {\n    return this.session.navigator\n  }\n}\n\nclass CacheObserver {\n  selector = \"[data-turbo-temporary]\"\n\n  started = false\n\n  start() {\n    if (!this.started) {\n      this.started = true;\n      addEventListener(\"turbo:before-cache\", this.removeTemporaryElements, false);\n    }\n  }\n\n  stop() {\n    if (this.started) {\n      this.started = false;\n      removeEventListener(\"turbo:before-cache\", this.removeTemporaryElements, false);\n    }\n  }\n\n  removeTemporaryElements = (_event) => {\n    for (const element of this.temporaryElements) {\n      element.remove();\n    }\n  }\n\n  get temporaryElements() {\n    return [...document.querySelectorAll(this.selector)]\n  }\n}\n\nclass FrameRedirector {\n  constructor(session, element) {\n    this.session = session;\n    this.element = element;\n    this.linkInterceptor = new LinkInterceptor(this, element);\n    this.formSubmitObserver = new FormSubmitObserver(this, element);\n  }\n\n  start() {\n    this.linkInterceptor.start();\n    this.formSubmitObserver.start();\n  }\n\n  stop() {\n    this.linkInterceptor.stop();\n    this.formSubmitObserver.stop();\n  }\n\n  // Link interceptor delegate\n\n  shouldInterceptLinkClick(element, _location, _event) {\n    return this.#shouldRedirect(element)\n  }\n\n  linkClickIntercepted(element, url, event) {\n    const frame = this.#findFrameElement(element);\n    if (frame) {\n      frame.delegate.linkClickIntercepted(element, url, event);\n    }\n  }\n\n  // Form submit observer delegate\n\n  willSubmitForm(element, submitter) {\n    return (\n      element.closest(\"turbo-frame\") == null &&\n      this.#shouldSubmit(element, submitter) &&\n      this.#shouldRedirect(element, submitter)\n    )\n  }\n\n  formSubmitted(element, submitter) {\n    const frame = this.#findFrameElement(element, submitter);\n    if (frame) {\n      frame.delegate.formSubmitted(element, submitter);\n    }\n  }\n\n  #shouldSubmit(form, submitter) {\n    const action = getAction$1(form, submitter);\n    const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n    const rootLocation = expandURL(meta?.content ?? \"/\");\n\n    return this.#shouldRedirect(form, submitter) && locationIsVisitable(action, rootLocation)\n  }\n\n  #shouldRedirect(element, submitter) {\n    const isNavigatable =\n      element instanceof HTMLFormElement\n        ? this.session.submissionIsNavigatable(element, submitter)\n        : this.session.elementIsNavigatable(element);\n\n    if (isNavigatable) {\n      const frame = this.#findFrameElement(element, submitter);\n      return frame ? frame != element.closest(\"turbo-frame\") : false\n    } else {\n      return false\n    }\n  }\n\n  #findFrameElement(element, submitter) {\n    const id = submitter?.getAttribute(\"data-turbo-frame\") || element.getAttribute(\"data-turbo-frame\");\n    if (id && id != \"_top\") {\n      const frame = this.element.querySelector(`#${id}:not([disabled])`);\n      if (frame instanceof FrameElement) {\n        return frame\n      }\n    }\n  }\n}\n\nclass History {\n  location\n  restorationIdentifier = uuid()\n  restorationData = {}\n  started = false\n  currentIndex = 0\n\n  constructor(delegate) {\n    this.delegate = delegate;\n  }\n\n  start() {\n    if (!this.started) {\n      addEventListener(\"popstate\", this.onPopState, false);\n      this.currentIndex = history.state?.turbo?.restorationIndex || 0;\n      this.started = true;\n      this.replace(new URL(window.location.href));\n    }\n  }\n\n  stop() {\n    if (this.started) {\n      removeEventListener(\"popstate\", this.onPopState, false);\n      this.started = false;\n    }\n  }\n\n  push(location, restorationIdentifier) {\n    this.update(history.pushState, location, restorationIdentifier);\n  }\n\n  replace(location, restorationIdentifier) {\n    this.update(history.replaceState, location, restorationIdentifier);\n  }\n\n  update(method, location, restorationIdentifier = uuid()) {\n    if (method === history.pushState) ++this.currentIndex;\n\n    const state = { turbo: { restorationIdentifier, restorationIndex: this.currentIndex } };\n    method.call(history, state, \"\", location.href);\n    this.location = location;\n    this.restorationIdentifier = restorationIdentifier;\n  }\n\n  // Restoration data\n\n  getRestorationDataForIdentifier(restorationIdentifier) {\n    return this.restorationData[restorationIdentifier] || {}\n  }\n\n  updateRestorationData(additionalData) {\n    const { restorationIdentifier } = this;\n    const restorationData = this.restorationData[restorationIdentifier];\n    this.restorationData[restorationIdentifier] = {\n      ...restorationData,\n      ...additionalData\n    };\n  }\n\n  // Scroll restoration\n\n  assumeControlOfScrollRestoration() {\n    if (!this.previousScrollRestoration) {\n      this.previousScrollRestoration = history.scrollRestoration ?? \"auto\";\n      history.scrollRestoration = \"manual\";\n    }\n  }\n\n  relinquishControlOfScrollRestoration() {\n    if (this.previousScrollRestoration) {\n      history.scrollRestoration = this.previousScrollRestoration;\n      delete this.previousScrollRestoration;\n    }\n  }\n\n  // Event handlers\n\n  onPopState = (event) => {\n    const { turbo } = event.state || {};\n    this.location = new URL(window.location.href);\n\n    if (turbo) {\n      const { restorationIdentifier, restorationIndex } = turbo;\n      this.restorationIdentifier = restorationIdentifier;\n      const direction = restorationIndex > this.currentIndex ? \"forward\" : \"back\";\n      this.delegate.historyPoppedToLocationWithRestorationIdentifierAndDirection(this.location, restorationIdentifier, direction);\n      this.currentIndex = restorationIndex;\n    } else {\n      this.currentIndex++;\n      this.delegate.historyPoppedWithEmptyState(this.location);\n    }\n  }\n}\n\nclass LinkPrefetchObserver {\n  started = false\n  #prefetchedLink = null\n\n  constructor(delegate, eventTarget) {\n    this.delegate = delegate;\n    this.eventTarget = eventTarget;\n  }\n\n  start() {\n    if (this.started) return\n\n    if (this.eventTarget.readyState === \"loading\") {\n      this.eventTarget.addEventListener(\"DOMContentLoaded\", this.#enable, { once: true });\n    } else {\n      this.#enable();\n    }\n  }\n\n  stop() {\n    if (!this.started) return\n\n    this.eventTarget.removeEventListener(\"mouseenter\", this.#tryToPrefetchRequest, {\n      capture: true,\n      passive: true\n    });\n    this.eventTarget.removeEventListener(\"mouseleave\", this.#cancelRequestIfObsolete, {\n      capture: true,\n      passive: true\n    });\n\n    this.eventTarget.removeEventListener(\"turbo:before-fetch-request\", this.#tryToUsePrefetchedRequest, true);\n    this.started = false;\n  }\n\n  #enable = () => {\n    this.eventTarget.addEventListener(\"mouseenter\", this.#tryToPrefetchRequest, {\n      capture: true,\n      passive: true\n    });\n    this.eventTarget.addEventListener(\"mouseleave\", this.#cancelRequestIfObsolete, {\n      capture: true,\n      passive: true\n    });\n\n    this.eventTarget.addEventListener(\"turbo:before-fetch-request\", this.#tryToUsePrefetchedRequest, true);\n    this.started = true;\n  }\n\n  #tryToPrefetchRequest = (event) => {\n    if (getMetaContent(\"turbo-prefetch\") === \"false\") return\n\n    const target = event.target;\n    const isLink = target.matches && target.matches(\"a[href]:not([target^=_]):not([download])\");\n\n    if (isLink && this.#isPrefetchable(target)) {\n      const link = target;\n      const location = getLocationForLink(link);\n\n      if (this.delegate.canPrefetchRequestToLocation(link, location)) {\n        this.#prefetchedLink = link;\n\n        const fetchRequest = new FetchRequest(\n          this,\n          FetchMethod.get,\n          location,\n          new URLSearchParams(),\n          target\n        );\n\n        fetchRequest.fetchOptions.priority = \"low\";\n\n        prefetchCache.putLater(location, fetchRequest, this.#cacheTtl);\n      }\n    }\n  }\n\n  #cancelRequestIfObsolete = (event) => {\n    if (event.target === this.#prefetchedLink) this.#cancelPrefetchRequest();\n  }\n\n  #cancelPrefetchRequest = () => {\n    prefetchCache.clear();\n    this.#prefetchedLink = null;\n  }\n\n  #tryToUsePrefetchedRequest = (event) => {\n    if (event.target.tagName !== \"FORM\" && event.detail.fetchOptions.method === \"GET\") {\n      const cached = prefetchCache.get(event.detail.url);\n\n      if (cached) {\n        // User clicked link, use cache response\n        event.detail.fetchRequest = cached;\n      }\n\n      prefetchCache.clear();\n    }\n  }\n\n  prepareRequest(request) {\n    const link = request.target;\n\n    request.headers[\"X-Sec-Purpose\"] = \"prefetch\";\n\n    const turboFrame = link.closest(\"turbo-frame\");\n    const turboFrameTarget = link.getAttribute(\"data-turbo-frame\") || turboFrame?.getAttribute(\"target\") || turboFrame?.id;\n\n    if (turboFrameTarget && turboFrameTarget !== \"_top\") {\n      request.headers[\"Turbo-Frame\"] = turboFrameTarget;\n    }\n  }\n\n  // Fetch request interface\n\n  requestSucceededWithResponse() {}\n\n  requestStarted(fetchRequest) {}\n\n  requestErrored(fetchRequest) {}\n\n  requestFinished(fetchRequest) {}\n\n  requestPreventedHandlingResponse(fetchRequest, fetchResponse) {}\n\n  requestFailedWithResponse(fetchRequest, fetchResponse) {}\n\n  get #cacheTtl() {\n    return Number(getMetaContent(\"turbo-prefetch-cache-time\")) || cacheTtl\n  }\n\n  #isPrefetchable(link) {\n    const href = link.getAttribute(\"href\");\n\n    if (!href) return false\n\n    if (unfetchableLink(link)) return false\n    if (linkToTheSamePage(link)) return false\n    if (linkOptsOut(link)) return false\n    if (nonSafeLink(link)) return false\n    if (eventPrevented(link)) return false\n\n    return true\n  }\n}\n\nconst unfetchableLink = (link) => {\n  return link.origin !== document.location.origin || ![\"http:\", \"https:\"].includes(link.protocol) || link.hasAttribute(\"target\")\n};\n\nconst linkToTheSamePage = (link) => {\n  return (link.pathname + link.search === document.location.pathname + document.location.search) || link.href.startsWith(\"#\")\n};\n\nconst linkOptsOut = (link) => {\n  if (link.getAttribute(\"data-turbo-prefetch\") === \"false\") return true\n  if (link.getAttribute(\"data-turbo\") === \"false\") return true\n\n  const turboPrefetchParent = findClosestRecursively(link, \"[data-turbo-prefetch]\");\n  if (turboPrefetchParent && turboPrefetchParent.getAttribute(\"data-turbo-prefetch\") === \"false\") return true\n\n  return false\n};\n\nconst nonSafeLink = (link) => {\n  const turboMethod = link.getAttribute(\"data-turbo-method\");\n  if (turboMethod && turboMethod.toLowerCase() !== \"get\") return true\n\n  if (isUJS(link)) return true\n  if (link.hasAttribute(\"data-turbo-confirm\")) return true\n  if (link.hasAttribute(\"data-turbo-stream\")) return true\n\n  return false\n};\n\nconst isUJS = (link) => {\n  return link.hasAttribute(\"data-remote\") || link.hasAttribute(\"data-behavior\") || link.hasAttribute(\"data-confirm\") || link.hasAttribute(\"data-method\")\n};\n\nconst eventPrevented = (link) => {\n  const event = dispatch(\"turbo:before-prefetch\", { target: link, cancelable: true });\n  return event.defaultPrevented\n};\n\nclass Navigator {\n  constructor(delegate) {\n    this.delegate = delegate;\n  }\n\n  proposeVisit(location, options = {}) {\n    if (this.delegate.allowsVisitingLocationWithAction(location, options.action)) {\n      this.delegate.visitProposedToLocation(location, options);\n    }\n  }\n\n  startVisit(locatable, restorationIdentifier, options = {}) {\n    this.stop();\n    this.currentVisit = new Visit(this, expandURL(locatable), restorationIdentifier, {\n      referrer: this.location,\n      ...options\n    });\n    this.currentVisit.start();\n  }\n\n  submitForm(form, submitter) {\n    this.stop();\n    this.formSubmission = new FormSubmission(this, form, submitter, true);\n\n    this.formSubmission.start();\n  }\n\n  stop() {\n    if (this.formSubmission) {\n      this.formSubmission.stop();\n      delete this.formSubmission;\n    }\n\n    if (this.currentVisit) {\n      this.currentVisit.cancel();\n      delete this.currentVisit;\n    }\n  }\n\n  get adapter() {\n    return this.delegate.adapter\n  }\n\n  get view() {\n    return this.delegate.view\n  }\n\n  get rootLocation() {\n    return this.view.snapshot.rootLocation\n  }\n\n  get history() {\n    return this.delegate.history\n  }\n\n  // Form submission delegate\n\n  formSubmissionStarted(formSubmission) {\n    // Not all adapters implement formSubmissionStarted\n    if (typeof this.adapter.formSubmissionStarted === \"function\") {\n      this.adapter.formSubmissionStarted(formSubmission);\n    }\n  }\n\n  async formSubmissionSucceededWithResponse(formSubmission, fetchResponse) {\n    if (formSubmission == this.formSubmission) {\n      const responseHTML = await fetchResponse.responseHTML;\n      if (responseHTML) {\n        const shouldCacheSnapshot = formSubmission.isSafe;\n        if (!shouldCacheSnapshot) {\n          this.view.clearSnapshotCache();\n        }\n\n        const { statusCode, redirected } = fetchResponse;\n        const action = this.#getActionForFormSubmission(formSubmission, fetchResponse);\n        const visitOptions = {\n          action,\n          shouldCacheSnapshot,\n          response: { statusCode, responseHTML, redirected }\n        };\n        this.proposeVisit(fetchResponse.location, visitOptions);\n      }\n    }\n  }\n\n  async formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n    const responseHTML = await fetchResponse.responseHTML;\n\n    if (responseHTML) {\n      const snapshot = PageSnapshot.fromHTMLString(responseHTML);\n      if (fetchResponse.serverError) {\n        await this.view.renderError(snapshot, this.currentVisit);\n      } else {\n        await this.view.renderPage(snapshot, false, true, this.currentVisit);\n      }\n      if (snapshot.refreshScroll !== \"preserve\") {\n        this.view.scrollToTop();\n      }\n      this.view.clearSnapshotCache();\n    }\n  }\n\n  formSubmissionErrored(formSubmission, error) {\n    console.error(error);\n  }\n\n  formSubmissionFinished(formSubmission) {\n    // Not all adapters implement formSubmissionFinished\n    if (typeof this.adapter.formSubmissionFinished === \"function\") {\n      this.adapter.formSubmissionFinished(formSubmission);\n    }\n  }\n\n  // Link prefetching\n\n  linkPrefetchingIsEnabledForLocation(location) {\n    // Not all adapters implement linkPrefetchingIsEnabledForLocation\n    if (typeof this.adapter.linkPrefetchingIsEnabledForLocation === \"function\") {\n      return this.adapter.linkPrefetchingIsEnabledForLocation(location)\n    }\n\n    return true\n  }\n\n  // Visit delegate\n\n  visitStarted(visit) {\n    this.delegate.visitStarted(visit);\n  }\n\n  visitCompleted(visit) {\n    this.delegate.visitCompleted(visit);\n    delete this.currentVisit;\n  }\n\n  // Same-page links are no longer handled with a Visit.\n  // This method is still needed for Turbo Native adapters.\n  locationWithActionIsSamePage(location, action) {\n    return false\n  }\n\n  // Visits\n\n  get location() {\n    return this.history.location\n  }\n\n  get restorationIdentifier() {\n    return this.history.restorationIdentifier\n  }\n\n  #getActionForFormSubmission(formSubmission, fetchResponse) {\n    const { submitter, formElement } = formSubmission;\n    return getVisitAction(submitter, formElement) || this.#getDefaultAction(fetchResponse)\n  }\n\n  #getDefaultAction(fetchResponse) {\n    const sameLocationRedirect = fetchResponse.redirected && fetchResponse.location.href === this.location?.href;\n    return sameLocationRedirect ? \"replace\" : \"advance\"\n  }\n}\n\nconst PageStage = {\n  initial: 0,\n  loading: 1,\n  interactive: 2,\n  complete: 3\n};\n\nclass PageObserver {\n  stage = PageStage.initial\n  started = false\n\n  constructor(delegate) {\n    this.delegate = delegate;\n  }\n\n  start() {\n    if (!this.started) {\n      if (this.stage == PageStage.initial) {\n        this.stage = PageStage.loading;\n      }\n      document.addEventListener(\"readystatechange\", this.interpretReadyState, false);\n      addEventListener(\"pagehide\", this.pageWillUnload, false);\n      this.started = true;\n    }\n  }\n\n  stop() {\n    if (this.started) {\n      document.removeEventListener(\"readystatechange\", this.interpretReadyState, false);\n      removeEventListener(\"pagehide\", this.pageWillUnload, false);\n      this.started = false;\n    }\n  }\n\n  interpretReadyState = () => {\n    const { readyState } = this;\n    if (readyState == \"interactive\") {\n      this.pageIsInteractive();\n    } else if (readyState == \"complete\") {\n      this.pageIsComplete();\n    }\n  }\n\n  pageIsInteractive() {\n    if (this.stage == PageStage.loading) {\n      this.stage = PageStage.interactive;\n      this.delegate.pageBecameInteractive();\n    }\n  }\n\n  pageIsComplete() {\n    this.pageIsInteractive();\n    if (this.stage == PageStage.interactive) {\n      this.stage = PageStage.complete;\n      this.delegate.pageLoaded();\n    }\n  }\n\n  pageWillUnload = () => {\n    this.delegate.pageWillUnload();\n  }\n\n  get readyState() {\n    return document.readyState\n  }\n}\n\nclass ScrollObserver {\n  started = false\n\n  constructor(delegate) {\n    this.delegate = delegate;\n  }\n\n  start() {\n    if (!this.started) {\n      addEventListener(\"scroll\", this.onScroll, false);\n      this.onScroll();\n      this.started = true;\n    }\n  }\n\n  stop() {\n    if (this.started) {\n      removeEventListener(\"scroll\", this.onScroll, false);\n      this.started = false;\n    }\n  }\n\n  onScroll = () => {\n    this.updatePosition({ x: window.pageXOffset, y: window.pageYOffset });\n  }\n\n  // Private\n\n  updatePosition(position) {\n    this.delegate.scrollPositionChanged(position);\n  }\n}\n\nclass StreamMessageRenderer {\n  render({ fragment }) {\n    Bardo.preservingPermanentElements(this, getPermanentElementMapForFragment(fragment), () => {\n      withAutofocusFromFragment(fragment, () => {\n        withPreservedFocus(() => {\n          document.documentElement.appendChild(fragment);\n        });\n      });\n    });\n  }\n\n  // Bardo delegate\n\n  enteringBardo(currentPermanentElement, newPermanentElement) {\n    newPermanentElement.replaceWith(currentPermanentElement.cloneNode(true));\n  }\n\n  leavingBardo() {}\n}\n\nfunction getPermanentElementMapForFragment(fragment) {\n  const permanentElementsInDocument = queryPermanentElementsAll(document.documentElement);\n  const permanentElementMap = {};\n  for (const permanentElementInDocument of permanentElementsInDocument) {\n    const { id } = permanentElementInDocument;\n\n    for (const streamElement of fragment.querySelectorAll(\"turbo-stream\")) {\n      const elementInStream = getPermanentElementById(streamElement.templateElement.content, id);\n\n      if (elementInStream) {\n        permanentElementMap[id] = [permanentElementInDocument, elementInStream];\n      }\n    }\n  }\n\n  return permanentElementMap\n}\n\nasync function withAutofocusFromFragment(fragment, callback) {\n  const generatedID = `turbo-stream-autofocus-${uuid()}`;\n  const turboStreams = fragment.querySelectorAll(\"turbo-stream\");\n  const elementWithAutofocus = firstAutofocusableElementInStreams(turboStreams);\n  let willAutofocusId = null;\n\n  if (elementWithAutofocus) {\n    if (elementWithAutofocus.id) {\n      willAutofocusId = elementWithAutofocus.id;\n    } else {\n      willAutofocusId = generatedID;\n    }\n\n    elementWithAutofocus.id = willAutofocusId;\n  }\n\n  callback();\n  await nextRepaint();\n\n  const hasNoActiveElement = document.activeElement == null || document.activeElement == document.body;\n\n  if (hasNoActiveElement && willAutofocusId) {\n    const elementToAutofocus = document.getElementById(willAutofocusId);\n\n    if (elementIsFocusable(elementToAutofocus)) {\n      elementToAutofocus.focus();\n    }\n    if (elementToAutofocus && elementToAutofocus.id == generatedID) {\n      elementToAutofocus.removeAttribute(\"id\");\n    }\n  }\n}\n\nasync function withPreservedFocus(callback) {\n  const [activeElementBeforeRender, activeElementAfterRender] = await around(callback, () => document.activeElement);\n\n  const restoreFocusTo = activeElementBeforeRender && activeElementBeforeRender.id;\n\n  if (restoreFocusTo) {\n    const elementToFocus = document.getElementById(restoreFocusTo);\n\n    if (elementIsFocusable(elementToFocus) && elementToFocus != activeElementAfterRender) {\n      elementToFocus.focus();\n    }\n  }\n}\n\nfunction firstAutofocusableElementInStreams(nodeListOfStreamElements) {\n  for (const streamElement of nodeListOfStreamElements) {\n    const elementWithAutofocus = queryAutofocusableElement(streamElement.templateElement.content);\n\n    if (elementWithAutofocus) return elementWithAutofocus\n  }\n\n  return null\n}\n\nclass StreamObserver {\n  sources = new Set()\n  #started = false\n\n  constructor(delegate) {\n    this.delegate = delegate;\n  }\n\n  start() {\n    if (!this.#started) {\n      this.#started = true;\n      addEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n    }\n  }\n\n  stop() {\n    if (this.#started) {\n      this.#started = false;\n      removeEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n    }\n  }\n\n  connectStreamSource(source) {\n    if (!this.streamSourceIsConnected(source)) {\n      this.sources.add(source);\n      source.addEventListener(\"message\", this.receiveMessageEvent, false);\n    }\n  }\n\n  disconnectStreamSource(source) {\n    if (this.streamSourceIsConnected(source)) {\n      this.sources.delete(source);\n      source.removeEventListener(\"message\", this.receiveMessageEvent, false);\n    }\n  }\n\n  streamSourceIsConnected(source) {\n    return this.sources.has(source)\n  }\n\n  inspectFetchResponse = (event) => {\n    const response = fetchResponseFromEvent(event);\n    if (response && fetchResponseIsStream(response)) {\n      event.preventDefault();\n      this.receiveMessageResponse(response);\n    }\n  }\n\n  receiveMessageEvent = (event) => {\n    if (this.#started && typeof event.data == \"string\") {\n      this.receiveMessageHTML(event.data);\n    }\n  }\n\n  async receiveMessageResponse(response) {\n    const html = await response.responseHTML;\n    if (html) {\n      this.receiveMessageHTML(html);\n    }\n  }\n\n  receiveMessageHTML(html) {\n    this.delegate.receivedMessageFromStream(StreamMessage.wrap(html));\n  }\n}\n\nfunction fetchResponseFromEvent(event) {\n  const fetchResponse = event.detail?.fetchResponse;\n  if (fetchResponse instanceof FetchResponse) {\n    return fetchResponse\n  }\n}\n\nfunction fetchResponseIsStream(response) {\n  const contentType = response.contentType ?? \"\";\n  return contentType.startsWith(StreamMessage.contentType)\n}\n\nclass ErrorRenderer extends Renderer {\n  static renderElement(currentElement, newElement) {\n    const { documentElement, body } = document;\n\n    documentElement.replaceChild(newElement, body);\n  }\n\n  async render() {\n    this.replaceHeadAndBody();\n    this.activateScriptElements();\n  }\n\n  replaceHeadAndBody() {\n    const { documentElement, head } = document;\n    documentElement.replaceChild(this.newHead, head);\n    this.renderElement(this.currentElement, this.newElement);\n  }\n\n  activateScriptElements() {\n    for (const replaceableElement of this.scriptElements) {\n      const parentNode = replaceableElement.parentNode;\n      if (parentNode) {\n        const element = activateScriptElement(replaceableElement);\n        parentNode.replaceChild(element, replaceableElement);\n      }\n    }\n  }\n\n  get newHead() {\n    return this.newSnapshot.headSnapshot.element\n  }\n\n  get scriptElements() {\n    return document.documentElement.querySelectorAll(\"script\")\n  }\n}\n\nclass PageRenderer extends Renderer {\n  static renderElement(currentElement, newElement) {\n    if (document.body && newElement instanceof HTMLBodyElement) {\n      document.body.replaceWith(newElement);\n    } else {\n      document.documentElement.appendChild(newElement);\n    }\n  }\n\n  get shouldRender() {\n    return this.newSnapshot.isVisitable && this.trackedElementsAreIdentical\n  }\n\n  get reloadReason() {\n    if (!this.newSnapshot.isVisitable) {\n      return {\n        reason: \"turbo_visit_control_is_reload\"\n      }\n    }\n\n    if (!this.trackedElementsAreIdentical) {\n      return {\n        reason: \"tracked_element_mismatch\"\n      }\n    }\n  }\n\n  async prepareToRender() {\n    this.#setLanguage();\n    await this.mergeHead();\n  }\n\n  async render() {\n    if (this.willRender) {\n      await this.replaceBody();\n    }\n  }\n\n  finishRendering() {\n    super.finishRendering();\n    if (!this.isPreview) {\n      this.focusFirstAutofocusableElement();\n    }\n  }\n\n  get currentHeadSnapshot() {\n    return this.currentSnapshot.headSnapshot\n  }\n\n  get newHeadSnapshot() {\n    return this.newSnapshot.headSnapshot\n  }\n\n  get newElement() {\n    return this.newSnapshot.element\n  }\n\n  #setLanguage() {\n    const { documentElement } = this.currentSnapshot;\n    const { dir, lang } = this.newSnapshot;\n\n    if (lang) {\n      documentElement.setAttribute(\"lang\", lang);\n    } else {\n      documentElement.removeAttribute(\"lang\");\n    }\n    if (dir) {\n      documentElement.setAttribute(\"dir\", dir);\n    } else {\n      documentElement.removeAttribute(\"dir\");\n    }\n  }\n\n  async mergeHead() {\n    const mergedHeadElements = this.mergeProvisionalElements();\n    const newStylesheetElements = this.copyNewHeadStylesheetElements();\n    this.copyNewHeadScriptElements();\n\n    await mergedHeadElements;\n    await newStylesheetElements;\n\n    if (this.willRender) {\n      this.removeUnusedDynamicStylesheetElements();\n    }\n  }\n\n  async replaceBody() {\n    await this.preservingPermanentElements(async () => {\n      this.activateNewBody();\n      await this.assignNewBody();\n    });\n  }\n\n  get trackedElementsAreIdentical() {\n    return this.currentHeadSnapshot.trackedElementSignature == this.newHeadSnapshot.trackedElementSignature\n  }\n\n  async copyNewHeadStylesheetElements() {\n    const loadingElements = [];\n\n    for (const element of this.newHeadStylesheetElements) {\n      loadingElements.push(waitForLoad(element));\n\n      document.head.appendChild(element);\n    }\n\n    await Promise.all(loadingElements);\n  }\n\n  copyNewHeadScriptElements() {\n    for (const element of this.newHeadScriptElements) {\n      document.head.appendChild(activateScriptElement(element));\n    }\n  }\n\n  removeUnusedDynamicStylesheetElements() {\n    for (const element of this.unusedDynamicStylesheetElements) {\n      document.head.removeChild(element);\n    }\n  }\n\n  async mergeProvisionalElements() {\n    const newHeadElements = [...this.newHeadProvisionalElements];\n\n    for (const element of this.currentHeadProvisionalElements) {\n      if (!this.isCurrentElementInElementList(element, newHeadElements)) {\n        document.head.removeChild(element);\n      }\n    }\n\n    for (const element of newHeadElements) {\n      document.head.appendChild(element);\n    }\n  }\n\n  isCurrentElementInElementList(element, elementList) {\n    for (const [index, newElement] of elementList.entries()) {\n      // if title element...\n      if (element.tagName == \"TITLE\") {\n        if (newElement.tagName != \"TITLE\") {\n          continue\n        }\n        if (element.innerHTML == newElement.innerHTML) {\n          elementList.splice(index, 1);\n          return true\n        }\n      }\n\n      // if any other element...\n      if (newElement.isEqualNode(element)) {\n        elementList.splice(index, 1);\n        return true\n      }\n    }\n\n    return false\n  }\n\n  removeCurrentHeadProvisionalElements() {\n    for (const element of this.currentHeadProvisionalElements) {\n      document.head.removeChild(element);\n    }\n  }\n\n  copyNewHeadProvisionalElements() {\n    for (const element of this.newHeadProvisionalElements) {\n      document.head.appendChild(element);\n    }\n  }\n\n  activateNewBody() {\n    document.adoptNode(this.newElement);\n    this.removeNoscriptElements();\n    this.activateNewBodyScriptElements();\n  }\n\n  removeNoscriptElements() {\n    for (const noscriptElement of this.newElement.querySelectorAll(\"noscript\")) {\n      noscriptElement.remove();\n    }\n  }\n\n  activateNewBodyScriptElements() {\n    for (const inertScriptElement of this.newBodyScriptElements) {\n      const activatedScriptElement = activateScriptElement(inertScriptElement);\n      inertScriptElement.replaceWith(activatedScriptElement);\n    }\n  }\n\n  async assignNewBody() {\n    await this.renderElement(this.currentElement, this.newElement);\n  }\n\n  get unusedDynamicStylesheetElements() {\n    return this.oldHeadStylesheetElements.filter((element) => {\n      return element.getAttribute(\"data-turbo-track\") === \"dynamic\"\n    })\n  }\n\n  get oldHeadStylesheetElements() {\n    return this.currentHeadSnapshot.getStylesheetElementsNotInSnapshot(this.newHeadSnapshot)\n  }\n\n  get newHeadStylesheetElements() {\n    return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot)\n  }\n\n  get newHeadScriptElements() {\n    return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot)\n  }\n\n  get currentHeadProvisionalElements() {\n    return this.currentHeadSnapshot.provisionalElements\n  }\n\n  get newHeadProvisionalElements() {\n    return this.newHeadSnapshot.provisionalElements\n  }\n\n  get newBodyScriptElements() {\n    return this.newElement.querySelectorAll(\"script\")\n  }\n}\n\nclass MorphingPageRenderer extends PageRenderer {\n  static renderElement(currentElement, newElement) {\n    morphElements(currentElement, newElement, {\n      callbacks: {\n        beforeNodeMorphed: (node, newNode) => {\n          if (\n            shouldRefreshFrameWithMorphing(node, newNode) &&\n              !closestFrameReloadableWithMorphing(node)\n          ) {\n            node.reload();\n            return false\n          }\n          return true\n        }\n      }\n    });\n\n    dispatch(\"turbo:morph\", { detail: { currentElement, newElement } });\n  }\n\n  async preservingPermanentElements(callback) {\n    return await callback()\n  }\n\n  get renderMethod() {\n    return \"morph\"\n  }\n\n  get shouldAutofocus() {\n    return false\n  }\n}\n\nclass SnapshotCache extends LRUCache {\n  constructor(size) {\n    super(size, toCacheKey);\n  }\n\n  get snapshots() {\n    return this.entries\n  }\n}\n\nclass PageView extends View {\n  snapshotCache = new SnapshotCache(10)\n  lastRenderedLocation = new URL(location.href)\n  forceReloaded = false\n\n  shouldTransitionTo(newSnapshot) {\n    return this.snapshot.prefersViewTransitions && newSnapshot.prefersViewTransitions\n  }\n\n  renderPage(snapshot, isPreview = false, willRender = true, visit) {\n    const shouldMorphPage = this.isPageRefresh(visit) && (visit?.refresh?.method || this.snapshot.refreshMethod) === \"morph\";\n    const rendererClass = shouldMorphPage ? MorphingPageRenderer : PageRenderer;\n\n    const renderer = new rendererClass(this.snapshot, snapshot, isPreview, willRender);\n\n    if (!renderer.shouldRender) {\n      this.forceReloaded = true;\n    } else {\n      visit?.changeHistory();\n    }\n\n    return this.render(renderer)\n  }\n\n  renderError(snapshot, visit) {\n    visit?.changeHistory();\n    const renderer = new ErrorRenderer(this.snapshot, snapshot, false);\n    return this.render(renderer)\n  }\n\n  clearSnapshotCache() {\n    this.snapshotCache.clear();\n  }\n\n  async cacheSnapshot(snapshot = this.snapshot) {\n    if (snapshot.isCacheable) {\n      this.delegate.viewWillCacheSnapshot();\n      const { lastRenderedLocation: location } = this;\n      await nextEventLoopTick();\n      const cachedSnapshot = snapshot.clone();\n      this.snapshotCache.put(location, cachedSnapshot);\n      return cachedSnapshot\n    }\n  }\n\n  getCachedSnapshotForLocation(location) {\n    return this.snapshotCache.get(location)\n  }\n\n  isPageRefresh(visit) {\n    return !visit || (this.lastRenderedLocation.pathname === visit.location.pathname && visit.action === \"replace\")\n  }\n\n  shouldPreserveScrollPosition(visit) {\n    return this.isPageRefresh(visit) && (visit?.refresh?.scroll || this.snapshot.refreshScroll) === \"preserve\"\n  }\n\n  get snapshot() {\n    return PageSnapshot.fromElement(this.element)\n  }\n}\n\nclass Preloader {\n  selector = \"a[data-turbo-preload]\"\n\n  constructor(delegate, snapshotCache) {\n    this.delegate = delegate;\n    this.snapshotCache = snapshotCache;\n  }\n\n  start() {\n    if (document.readyState === \"loading\") {\n      document.addEventListener(\"DOMContentLoaded\", this.#preloadAll);\n    } else {\n      this.preloadOnLoadLinksForView(document.body);\n    }\n  }\n\n  stop() {\n    document.removeEventListener(\"DOMContentLoaded\", this.#preloadAll);\n  }\n\n  preloadOnLoadLinksForView(element) {\n    for (const link of element.querySelectorAll(this.selector)) {\n      if (this.delegate.shouldPreloadLink(link)) {\n        this.preloadURL(link);\n      }\n    }\n  }\n\n  async preloadURL(link) {\n    const location = new URL(link.href);\n\n    if (this.snapshotCache.has(location)) {\n      return\n    }\n\n    const fetchRequest = new FetchRequest(this, FetchMethod.get, location, new URLSearchParams(), link);\n    await fetchRequest.perform();\n  }\n\n  // Fetch request delegate\n\n  prepareRequest(fetchRequest) {\n    fetchRequest.headers[\"X-Sec-Purpose\"] = \"prefetch\";\n  }\n\n  async requestSucceededWithResponse(fetchRequest, fetchResponse) {\n    try {\n      const responseHTML = await fetchResponse.responseHTML;\n      const snapshot = PageSnapshot.fromHTMLString(responseHTML);\n\n      this.snapshotCache.put(fetchRequest.url, snapshot);\n    } catch (_) {\n      // If we cannot preload that is ok!\n    }\n  }\n\n  requestStarted(fetchRequest) {}\n\n  requestErrored(fetchRequest) {}\n\n  requestFinished(fetchRequest) {}\n\n  requestPreventedHandlingResponse(fetchRequest, fetchResponse) {}\n\n  requestFailedWithResponse(fetchRequest, fetchResponse) {}\n\n  #preloadAll = () => {\n    this.preloadOnLoadLinksForView(document.body);\n  }\n}\n\nclass Cache {\n  constructor(session) {\n    this.session = session;\n  }\n\n  clear() {\n    this.session.clearCache();\n  }\n\n  resetCacheControl() {\n    this.#setCacheControl(\"\");\n  }\n\n  exemptPageFromCache() {\n    this.#setCacheControl(\"no-cache\");\n  }\n\n  exemptPageFromPreview() {\n    this.#setCacheControl(\"no-preview\");\n  }\n\n  #setCacheControl(value) {\n    setMetaContent(\"turbo-cache-control\", value);\n  }\n}\n\nclass Session {\n  navigator = new Navigator(this)\n  history = new History(this)\n  view = new PageView(this, document.documentElement)\n  adapter = new BrowserAdapter(this)\n\n  pageObserver = new PageObserver(this)\n  cacheObserver = new CacheObserver()\n  linkPrefetchObserver = new LinkPrefetchObserver(this, document)\n  linkClickObserver = new LinkClickObserver(this, window)\n  formSubmitObserver = new FormSubmitObserver(this, document)\n  scrollObserver = new ScrollObserver(this)\n  streamObserver = new StreamObserver(this)\n  formLinkClickObserver = new FormLinkClickObserver(this, document.documentElement)\n  frameRedirector = new FrameRedirector(this, document.documentElement)\n  streamMessageRenderer = new StreamMessageRenderer()\n  cache = new Cache(this)\n\n  enabled = true\n  started = false\n  #pageRefreshDebouncePeriod = 150\n\n  constructor(recentRequests) {\n    this.recentRequests = recentRequests;\n    this.preloader = new Preloader(this, this.view.snapshotCache);\n    this.debouncedRefresh = this.refresh;\n    this.pageRefreshDebouncePeriod = this.pageRefreshDebouncePeriod;\n  }\n\n  start() {\n    if (!this.started) {\n      this.pageObserver.start();\n      this.cacheObserver.start();\n      this.linkPrefetchObserver.start();\n      this.formLinkClickObserver.start();\n      this.linkClickObserver.start();\n      this.formSubmitObserver.start();\n      this.scrollObserver.start();\n      this.streamObserver.start();\n      this.frameRedirector.start();\n      this.history.start();\n      this.preloader.start();\n      this.started = true;\n      this.enabled = true;\n    }\n  }\n\n  disable() {\n    this.enabled = false;\n  }\n\n  stop() {\n    if (this.started) {\n      this.pageObserver.stop();\n      this.cacheObserver.stop();\n      this.linkPrefetchObserver.stop();\n      this.formLinkClickObserver.stop();\n      this.linkClickObserver.stop();\n      this.formSubmitObserver.stop();\n      this.scrollObserver.stop();\n      this.streamObserver.stop();\n      this.frameRedirector.stop();\n      this.history.stop();\n      this.preloader.stop();\n      this.started = false;\n    }\n  }\n\n  registerAdapter(adapter) {\n    this.adapter = adapter;\n  }\n\n  visit(location, options = {}) {\n    const frameElement = options.frame ? document.getElementById(options.frame) : null;\n\n    if (frameElement instanceof FrameElement) {\n      const action = options.action || getVisitAction(frameElement);\n\n      frameElement.delegate.proposeVisitIfNavigatedWithAction(frameElement, action);\n      frameElement.src = location.toString();\n    } else {\n      this.navigator.proposeVisit(expandURL(location), options);\n    }\n  }\n\n  refresh(url, options = {}) {\n    options = typeof options === \"string\" ? { requestId: options } : options;\n\n    const { method, requestId, scroll } = options;\n    const isRecentRequest = requestId && this.recentRequests.has(requestId);\n    const isCurrentUrl = url === document.baseURI;\n    if (!isRecentRequest && !this.navigator.currentVisit && isCurrentUrl) {\n      this.visit(url, { action: \"replace\", shouldCacheSnapshot: false, refresh: { method, scroll } });\n    }\n  }\n\n  connectStreamSource(source) {\n    this.streamObserver.connectStreamSource(source);\n  }\n\n  disconnectStreamSource(source) {\n    this.streamObserver.disconnectStreamSource(source);\n  }\n\n  renderStreamMessage(message) {\n    this.streamMessageRenderer.render(StreamMessage.wrap(message));\n  }\n\n  clearCache() {\n    this.view.clearSnapshotCache();\n  }\n\n  setProgressBarDelay(delay) {\n    console.warn(\n      \"Please replace `session.setProgressBarDelay(delay)` with `session.progressBarDelay = delay`. The function is deprecated and will be removed in a future version of Turbo.`\"\n    );\n\n    this.progressBarDelay = delay;\n  }\n\n  set progressBarDelay(delay) {\n    config.drive.progressBarDelay = delay;\n  }\n\n  get progressBarDelay() {\n    return config.drive.progressBarDelay\n  }\n\n  set drive(value) {\n    config.drive.enabled = value;\n  }\n\n  get drive() {\n    return config.drive.enabled\n  }\n\n  set formMode(value) {\n    config.forms.mode = value;\n  }\n\n  get formMode() {\n    return config.forms.mode\n  }\n\n  get location() {\n    return this.history.location\n  }\n\n  get restorationIdentifier() {\n    return this.history.restorationIdentifier\n  }\n\n  get pageRefreshDebouncePeriod() {\n    return this.#pageRefreshDebouncePeriod\n  }\n\n  set pageRefreshDebouncePeriod(value) {\n    this.refresh = debounce(this.debouncedRefresh.bind(this), value);\n    this.#pageRefreshDebouncePeriod = value;\n  }\n\n  // Preloader delegate\n\n  shouldPreloadLink(element) {\n    const isUnsafe = element.hasAttribute(\"data-turbo-method\");\n    const isStream = element.hasAttribute(\"data-turbo-stream\");\n    const frameTarget = element.getAttribute(\"data-turbo-frame\");\n    const frame = frameTarget == \"_top\" ?\n      null :\n      document.getElementById(frameTarget) || findClosestRecursively(element, \"turbo-frame:not([disabled])\");\n\n    if (isUnsafe || isStream || frame instanceof FrameElement) {\n      return false\n    } else {\n      const location = new URL(element.href);\n\n      return this.elementIsNavigatable(element) && locationIsVisitable(location, this.snapshot.rootLocation)\n    }\n  }\n\n  // History delegate\n\n  historyPoppedToLocationWithRestorationIdentifierAndDirection(location, restorationIdentifier, direction) {\n    if (this.enabled) {\n      this.navigator.startVisit(location, restorationIdentifier, {\n        action: \"restore\",\n        historyChanged: true,\n        direction\n      });\n    } else {\n      this.adapter.pageInvalidated({\n        reason: \"turbo_disabled\"\n      });\n    }\n  }\n\n  historyPoppedWithEmptyState(location) {\n    this.history.replace(location);\n    this.view.lastRenderedLocation = location;\n    this.view.cacheSnapshot();\n  }\n\n  // Scroll observer delegate\n\n  scrollPositionChanged(position) {\n    this.history.updateRestorationData({ scrollPosition: position });\n  }\n\n  // Form click observer delegate\n\n  willSubmitFormLinkToLocation(link, location) {\n    return this.elementIsNavigatable(link) && locationIsVisitable(location, this.snapshot.rootLocation)\n  }\n\n  submittedFormLinkToLocation() {}\n\n  // Link hover observer delegate\n\n  canPrefetchRequestToLocation(link, location) {\n    return (\n      this.elementIsNavigatable(link) &&\n      locationIsVisitable(location, this.snapshot.rootLocation) &&\n      this.navigator.linkPrefetchingIsEnabledForLocation(location)\n    )\n  }\n\n  // Link click observer delegate\n\n  willFollowLinkToLocation(link, location, event) {\n    return (\n      this.elementIsNavigatable(link) &&\n      locationIsVisitable(location, this.snapshot.rootLocation) &&\n      this.applicationAllowsFollowingLinkToLocation(link, location, event)\n    )\n  }\n\n  followedLinkToLocation(link, location) {\n    const action = this.getActionForLink(link);\n    const acceptsStreamResponse = link.hasAttribute(\"data-turbo-stream\");\n\n    this.visit(location.href, { action, acceptsStreamResponse });\n  }\n\n  // Navigator delegate\n\n  allowsVisitingLocationWithAction(location, action) {\n    return this.applicationAllowsVisitingLocation(location)\n  }\n\n  visitProposedToLocation(location, options) {\n    extendURLWithDeprecatedProperties(location);\n    this.adapter.visitProposedToLocation(location, options);\n  }\n\n  // Visit delegate\n\n  visitStarted(visit) {\n    if (!visit.acceptsStreamResponse) {\n      markAsBusy(document.documentElement);\n      this.view.markVisitDirection(visit.direction);\n    }\n    extendURLWithDeprecatedProperties(visit.location);\n    this.notifyApplicationAfterVisitingLocation(visit.location, visit.action);\n  }\n\n  visitCompleted(visit) {\n    this.view.unmarkVisitDirection();\n    clearBusyState(document.documentElement);\n    this.notifyApplicationAfterPageLoad(visit.getTimingMetrics());\n  }\n\n  // Form submit observer delegate\n\n  willSubmitForm(form, submitter) {\n    const action = getAction$1(form, submitter);\n\n    return (\n      this.submissionIsNavigatable(form, submitter) &&\n      locationIsVisitable(expandURL(action), this.snapshot.rootLocation)\n    )\n  }\n\n  formSubmitted(form, submitter) {\n    this.navigator.submitForm(form, submitter);\n  }\n\n  // Page observer delegate\n\n  pageBecameInteractive() {\n    this.view.lastRenderedLocation = this.location;\n    this.notifyApplicationAfterPageLoad();\n  }\n\n  pageLoaded() {\n    this.history.assumeControlOfScrollRestoration();\n  }\n\n  pageWillUnload() {\n    this.history.relinquishControlOfScrollRestoration();\n  }\n\n  // Stream observer delegate\n\n  receivedMessageFromStream(message) {\n    this.renderStreamMessage(message);\n  }\n\n  // Page view delegate\n\n  viewWillCacheSnapshot() {\n    this.notifyApplicationBeforeCachingSnapshot();\n  }\n\n  allowsImmediateRender({ element }, options) {\n    const event = this.notifyApplicationBeforeRender(element, options);\n    const {\n      defaultPrevented,\n      detail: { render }\n    } = event;\n\n    if (this.view.renderer && render) {\n      this.view.renderer.renderElement = render;\n    }\n\n    return !defaultPrevented\n  }\n\n  viewRenderedSnapshot(_snapshot, _isPreview, renderMethod) {\n    this.view.lastRenderedLocation = this.history.location;\n    this.notifyApplicationAfterRender(renderMethod);\n  }\n\n  preloadOnLoadLinksForView(element) {\n    this.preloader.preloadOnLoadLinksForView(element);\n  }\n\n  viewInvalidated(reason) {\n    this.adapter.pageInvalidated(reason);\n  }\n\n  // Frame element\n\n  frameLoaded(frame) {\n    this.notifyApplicationAfterFrameLoad(frame);\n  }\n\n  frameRendered(fetchResponse, frame) {\n    this.notifyApplicationAfterFrameRender(fetchResponse, frame);\n  }\n\n  // Application events\n\n  applicationAllowsFollowingLinkToLocation(link, location, ev) {\n    const event = this.notifyApplicationAfterClickingLinkToLocation(link, location, ev);\n    return !event.defaultPrevented\n  }\n\n  applicationAllowsVisitingLocation(location) {\n    const event = this.notifyApplicationBeforeVisitingLocation(location);\n    return !event.defaultPrevented\n  }\n\n  notifyApplicationAfterClickingLinkToLocation(link, location, event) {\n    return dispatch(\"turbo:click\", {\n      target: link,\n      detail: { url: location.href, originalEvent: event },\n      cancelable: true\n    })\n  }\n\n  notifyApplicationBeforeVisitingLocation(location) {\n    return dispatch(\"turbo:before-visit\", {\n      detail: { url: location.href },\n      cancelable: true\n    })\n  }\n\n  notifyApplicationAfterVisitingLocation(location, action) {\n    return dispatch(\"turbo:visit\", { detail: { url: location.href, action } })\n  }\n\n  notifyApplicationBeforeCachingSnapshot() {\n    return dispatch(\"turbo:before-cache\")\n  }\n\n  notifyApplicationBeforeRender(newBody, options) {\n    return dispatch(\"turbo:before-render\", {\n      detail: { newBody, ...options },\n      cancelable: true\n    })\n  }\n\n  notifyApplicationAfterRender(renderMethod) {\n    return dispatch(\"turbo:render\", { detail: { renderMethod } })\n  }\n\n  notifyApplicationAfterPageLoad(timing = {}) {\n    return dispatch(\"turbo:load\", {\n      detail: { url: this.location.href, timing }\n    })\n  }\n\n  notifyApplicationAfterFrameLoad(frame) {\n    return dispatch(\"turbo:frame-load\", { target: frame })\n  }\n\n  notifyApplicationAfterFrameRender(fetchResponse, frame) {\n    return dispatch(\"turbo:frame-render\", {\n      detail: { fetchResponse },\n      target: frame,\n      cancelable: true\n    })\n  }\n\n  // Helpers\n\n  submissionIsNavigatable(form, submitter) {\n    if (config.forms.mode == \"off\") {\n      return false\n    } else {\n      const submitterIsNavigatable = submitter ? this.elementIsNavigatable(submitter) : true;\n\n      if (config.forms.mode == \"optin\") {\n        return submitterIsNavigatable && form.closest('[data-turbo=\"true\"]') != null\n      } else {\n        return submitterIsNavigatable && this.elementIsNavigatable(form)\n      }\n    }\n  }\n\n  elementIsNavigatable(element) {\n    const container = findClosestRecursively(element, \"[data-turbo]\");\n    const withinFrame = findClosestRecursively(element, \"turbo-frame\");\n\n    // Check if Drive is enabled on the session or we're within a Frame.\n    if (config.drive.enabled || withinFrame) {\n      // Element is navigatable by default, unless `data-turbo=\"false\"`.\n      if (container) {\n        return container.getAttribute(\"data-turbo\") != \"false\"\n      } else {\n        return true\n      }\n    } else {\n      // Element isn't navigatable by default, unless `data-turbo=\"true\"`.\n      if (container) {\n        return container.getAttribute(\"data-turbo\") == \"true\"\n      } else {\n        return false\n      }\n    }\n  }\n\n  // Private\n\n  getActionForLink(link) {\n    return getVisitAction(link) || \"advance\"\n  }\n\n  get snapshot() {\n    return this.view.snapshot\n  }\n}\n\n// Older versions of the Turbo Native adapters referenced the\n// `Location#absoluteURL` property in their implementations of\n// the `Adapter#visitProposedToLocation()` and `#visitStarted()`\n// methods. The Location class has since been removed in favor\n// of the DOM URL API, and accordingly all Adapter methods now\n// receive URL objects.\n//\n// We alias #absoluteURL to #toString() here to avoid crashing\n// older adapters which do not expect URL objects. We should\n// consider removing this support at some point in the future.\n\nfunction extendURLWithDeprecatedProperties(url) {\n  Object.defineProperties(url, deprecatedLocationPropertyDescriptors);\n}\n\nconst deprecatedLocationPropertyDescriptors = {\n  absoluteURL: {\n    get() {\n      return this.toString()\n    }\n  }\n};\n\nconst session = new Session(recentRequests);\nconst { cache, navigator } = session;\n\n/**\n * Starts the main session.\n * This initialises any necessary observers such as those to monitor\n * link interactions.\n */\nfunction start() {\n  session.start();\n}\n\n/**\n * Registers an adapter for the main session.\n *\n * @param adapter Adapter to register\n */\nfunction registerAdapter(adapter) {\n  session.registerAdapter(adapter);\n}\n\n/**\n * Performs an application visit to the given location.\n *\n * @param location Location to visit (a URL or path)\n * @param options Options to apply\n * @param options.action Type of history navigation to apply (\"restore\",\n * \"replace\" or \"advance\")\n * @param options.historyChanged Specifies whether the browser history has\n * already been changed for this visit or not\n * @param options.referrer Specifies the referrer of this visit such that\n * navigations to the same page will not result in a new history entry.\n * @param options.snapshotHTML Cached snapshot to render\n * @param options.response Response of the specified location\n */\nfunction visit(location, options) {\n  session.visit(location, options);\n}\n\n/**\n * Connects a stream source to the main session.\n *\n * @param source Stream source to connect\n */\nfunction connectStreamSource(source) {\n  session.connectStreamSource(source);\n}\n\n/**\n * Disconnects a stream source from the main session.\n *\n * @param source Stream source to disconnect\n */\nfunction disconnectStreamSource(source) {\n  session.disconnectStreamSource(source);\n}\n\n/**\n * Renders a stream message to the main session by appending it to the\n * current document.\n *\n * @param message Message to render\n */\nfunction renderStreamMessage(message) {\n  session.renderStreamMessage(message);\n}\n\n/**\n * Sets the delay after which the progress bar will appear during navigation.\n *\n * The progress bar appears after 500ms by default.\n *\n * Note that this method has no effect when used with the iOS or Android\n * adapters.\n *\n * @param delay Time to delay in milliseconds\n */\nfunction setProgressBarDelay(delay) {\n  console.warn(\n    \"Please replace `Turbo.setProgressBarDelay(delay)` with `Turbo.config.drive.progressBarDelay = delay`. The top-level function is deprecated and will be removed in a future version of Turbo.`\"\n  );\n  config.drive.progressBarDelay = delay;\n}\n\nfunction setConfirmMethod(confirmMethod) {\n  console.warn(\n    \"Please replace `Turbo.setConfirmMethod(confirmMethod)` with `Turbo.config.forms.confirm = confirmMethod`. The top-level function is deprecated and will be removed in a future version of Turbo.`\"\n  );\n  config.forms.confirm = confirmMethod;\n}\n\nfunction setFormMode(mode) {\n  console.warn(\n    \"Please replace `Turbo.setFormMode(mode)` with `Turbo.config.forms.mode = mode`. The top-level function is deprecated and will be removed in a future version of Turbo.`\"\n  );\n  config.forms.mode = mode;\n}\n\n/**\n * Morph the state of the currentBody based on the attributes and contents of\n * the newBody. Morphing body elements may dispatch turbo:morph,\n * turbo:before-morph-element, turbo:before-morph-attribute, and\n * turbo:morph-element events.\n *\n * @param currentBody HTMLBodyElement destination of morphing changes\n * @param newBody HTMLBodyElement source of morphing changes\n */\nfunction morphBodyElements(currentBody, newBody) {\n  MorphingPageRenderer.renderElement(currentBody, newBody);\n}\n\n/**\n * Morph the child elements of the currentFrame based on the child elements of\n * the newFrame. Morphing turbo-frame elements may dispatch turbo:before-frame-morph,\n * turbo:before-morph-element, turbo:before-morph-attribute, and\n * turbo:morph-element events.\n *\n * @param currentFrame FrameElement destination of morphing children changes\n * @param newFrame FrameElement source of morphing children changes\n */\nfunction morphTurboFrameElements(currentFrame, newFrame) {\n  MorphingFrameRenderer.renderElement(currentFrame, newFrame);\n}\n\nvar Turbo = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  navigator: navigator,\n  session: session,\n  cache: cache,\n  PageRenderer: PageRenderer,\n  PageSnapshot: PageSnapshot,\n  FrameRenderer: FrameRenderer,\n  fetch: fetchWithTurboHeaders,\n  config: config,\n  start: start,\n  registerAdapter: registerAdapter,\n  visit: visit,\n  connectStreamSource: connectStreamSource,\n  disconnectStreamSource: disconnectStreamSource,\n  renderStreamMessage: renderStreamMessage,\n  setProgressBarDelay: setProgressBarDelay,\n  setConfirmMethod: setConfirmMethod,\n  setFormMode: setFormMode,\n  morphBodyElements: morphBodyElements,\n  morphTurboFrameElements: morphTurboFrameElements,\n  morphChildren: morphChildren,\n  morphElements: morphElements\n});\n\nclass TurboFrameMissingError extends Error {}\n\nclass FrameController {\n  fetchResponseLoaded = (_fetchResponse) => Promise.resolve()\n  #currentFetchRequest = null\n  #resolveVisitPromise = () => {}\n  #connected = false\n  #hasBeenLoaded = false\n  #ignoredAttributes = new Set()\n  #shouldMorphFrame = false\n  action = null\n\n  constructor(element) {\n    this.element = element;\n    this.view = new FrameView(this, this.element);\n    this.appearanceObserver = new AppearanceObserver(this, this.element);\n    this.formLinkClickObserver = new FormLinkClickObserver(this, this.element);\n    this.linkInterceptor = new LinkInterceptor(this, this.element);\n    this.restorationIdentifier = uuid();\n    this.formSubmitObserver = new FormSubmitObserver(this, this.element);\n  }\n\n  // Frame delegate\n\n  connect() {\n    if (!this.#connected) {\n      this.#connected = true;\n      if (this.loadingStyle == FrameLoadingStyle.lazy) {\n        this.appearanceObserver.start();\n      } else {\n        this.#loadSourceURL();\n      }\n      this.formLinkClickObserver.start();\n      this.linkInterceptor.start();\n      this.formSubmitObserver.start();\n    }\n  }\n\n  disconnect() {\n    if (this.#connected) {\n      this.#connected = false;\n      this.appearanceObserver.stop();\n      this.formLinkClickObserver.stop();\n      this.linkInterceptor.stop();\n      this.formSubmitObserver.stop();\n\n      if (!this.element.hasAttribute(\"recurse\")) {\n        this.#currentFetchRequest?.cancel();\n      }\n    }\n  }\n\n  disabledChanged() {\n    if (this.disabled) {\n      this.#currentFetchRequest?.cancel();\n    } else if (this.loadingStyle == FrameLoadingStyle.eager) {\n      this.#loadSourceURL();\n    }\n  }\n\n  sourceURLChanged() {\n    if (this.#isIgnoringChangesTo(\"src\")) return\n\n    if (!this.sourceURL) {\n      this.#currentFetchRequest?.cancel();\n    }\n\n    if (this.element.isConnected) {\n      this.complete = false;\n    }\n\n    if (this.loadingStyle == FrameLoadingStyle.eager || this.#hasBeenLoaded) {\n      this.#loadSourceURL();\n    }\n  }\n\n  sourceURLReloaded() {\n    const { refresh, src } = this.element;\n\n    this.#shouldMorphFrame = src && refresh === \"morph\";\n\n    this.element.removeAttribute(\"complete\");\n    this.element.src = null;\n    this.element.src = src;\n    return this.element.loaded\n  }\n\n  loadingStyleChanged() {\n    if (this.loadingStyle == FrameLoadingStyle.lazy) {\n      this.appearanceObserver.start();\n    } else {\n      this.appearanceObserver.stop();\n      this.#loadSourceURL();\n    }\n  }\n\n  async #loadSourceURL() {\n    if (this.enabled && this.isActive && !this.complete && this.sourceURL) {\n      this.element.loaded = this.#visit(expandURL(this.sourceURL));\n      this.appearanceObserver.stop();\n      await this.element.loaded;\n      this.#hasBeenLoaded = true;\n    }\n  }\n\n  async loadResponse(fetchResponse) {\n    if (fetchResponse.redirected || (fetchResponse.succeeded && fetchResponse.isHTML)) {\n      this.sourceURL = fetchResponse.response.url;\n    }\n\n    try {\n      const html = await fetchResponse.responseHTML;\n      if (html) {\n        const document = parseHTMLDocument(html);\n        const pageSnapshot = PageSnapshot.fromDocument(document);\n\n        if (pageSnapshot.isVisitable) {\n          await this.#loadFrameResponse(fetchResponse, document);\n        } else {\n          await this.#handleUnvisitableFrameResponse(fetchResponse);\n        }\n      }\n    } finally {\n      this.#shouldMorphFrame = false;\n      this.fetchResponseLoaded = () => Promise.resolve();\n    }\n  }\n\n  // Appearance observer delegate\n\n  elementAppearedInViewport(element) {\n    this.proposeVisitIfNavigatedWithAction(element, getVisitAction(element));\n    this.#loadSourceURL();\n  }\n\n  // Form link click observer delegate\n\n  willSubmitFormLinkToLocation(link) {\n    return this.#shouldInterceptNavigation(link)\n  }\n\n  submittedFormLinkToLocation(link, _location, form) {\n    const frame = this.#findFrameElement(link);\n    if (frame) form.setAttribute(\"data-turbo-frame\", frame.id);\n  }\n\n  // Link interceptor delegate\n\n  shouldInterceptLinkClick(element, _location, _event) {\n    return this.#shouldInterceptNavigation(element)\n  }\n\n  linkClickIntercepted(element, location) {\n    this.#navigateFrame(element, location);\n  }\n\n  // Form submit observer delegate\n\n  willSubmitForm(element, submitter) {\n    return element.closest(\"turbo-frame\") == this.element && this.#shouldInterceptNavigation(element, submitter)\n  }\n\n  formSubmitted(element, submitter) {\n    if (this.formSubmission) {\n      this.formSubmission.stop();\n    }\n\n    this.formSubmission = new FormSubmission(this, element, submitter);\n\n    const { fetchRequest } = this.formSubmission;\n    const frame = this.#findFrameElement(element, submitter);\n\n    this.prepareRequest(fetchRequest, frame);\n    this.formSubmission.start();\n  }\n\n  // Fetch request delegate\n\n  prepareRequest(request, frame = this) {\n    request.headers[\"Turbo-Frame\"] = frame.id;\n\n    if (this.currentNavigationElement?.hasAttribute(\"data-turbo-stream\")) {\n      request.acceptResponseType(StreamMessage.contentType);\n    }\n  }\n\n  requestStarted(_request) {\n    markAsBusy(this.element);\n  }\n\n  requestPreventedHandlingResponse(_request, _response) {\n    this.#resolveVisitPromise();\n  }\n\n  async requestSucceededWithResponse(request, response) {\n    await this.loadResponse(response);\n    this.#resolveVisitPromise();\n  }\n\n  async requestFailedWithResponse(request, response) {\n    await this.loadResponse(response);\n    this.#resolveVisitPromise();\n  }\n\n  requestErrored(request, error) {\n    console.error(error);\n    this.#resolveVisitPromise();\n  }\n\n  requestFinished(_request) {\n    clearBusyState(this.element);\n  }\n\n  // Form submission delegate\n\n  formSubmissionStarted({ formElement }) {\n    markAsBusy(formElement, this.#findFrameElement(formElement));\n  }\n\n  formSubmissionSucceededWithResponse(formSubmission, response) {\n    const frame = this.#findFrameElement(formSubmission.formElement, formSubmission.submitter);\n\n    frame.delegate.proposeVisitIfNavigatedWithAction(frame, getVisitAction(formSubmission.submitter, formSubmission.formElement, frame));\n    frame.delegate.loadResponse(response);\n\n    if (!formSubmission.isSafe) {\n      session.clearCache();\n    }\n  }\n\n  formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n    this.element.delegate.loadResponse(fetchResponse);\n    session.clearCache();\n  }\n\n  formSubmissionErrored(formSubmission, error) {\n    console.error(error);\n  }\n\n  formSubmissionFinished({ formElement }) {\n    clearBusyState(formElement, this.#findFrameElement(formElement));\n  }\n\n  // View delegate\n\n  allowsImmediateRender({ element: newFrame }, options) {\n    const event = dispatch(\"turbo:before-frame-render\", {\n      target: this.element,\n      detail: { newFrame, ...options },\n      cancelable: true\n    });\n\n    const {\n      defaultPrevented,\n      detail: { render }\n    } = event;\n\n    if (this.view.renderer && render) {\n      this.view.renderer.renderElement = render;\n    }\n\n    return !defaultPrevented\n  }\n\n  viewRenderedSnapshot(_snapshot, _isPreview, _renderMethod) {}\n\n  preloadOnLoadLinksForView(element) {\n    session.preloadOnLoadLinksForView(element);\n  }\n\n  viewInvalidated() {}\n\n  // Frame renderer delegate\n\n  willRenderFrame(currentElement, _newElement) {\n    this.previousFrameElement = currentElement.cloneNode(true);\n  }\n\n  visitCachedSnapshot = ({ element }) => {\n    const frame = element.querySelector(\"#\" + this.element.id);\n\n    if (frame && this.previousFrameElement) {\n      frame.replaceChildren(...this.previousFrameElement.children);\n    }\n\n    delete this.previousFrameElement;\n  }\n\n  // Private\n\n  async #loadFrameResponse(fetchResponse, document) {\n    const newFrameElement = await this.extractForeignFrameElement(document.body);\n    const rendererClass = this.#shouldMorphFrame ? MorphingFrameRenderer : FrameRenderer;\n\n    if (newFrameElement) {\n      const snapshot = new Snapshot(newFrameElement);\n      const renderer = new rendererClass(this, this.view.snapshot, snapshot, false, false);\n      if (this.view.renderPromise) await this.view.renderPromise;\n      this.changeHistory();\n\n      await this.view.render(renderer);\n      this.complete = true;\n      session.frameRendered(fetchResponse, this.element);\n      session.frameLoaded(this.element);\n      await this.fetchResponseLoaded(fetchResponse);\n    } else if (this.#willHandleFrameMissingFromResponse(fetchResponse)) {\n      this.#handleFrameMissingFromResponse(fetchResponse);\n    }\n  }\n\n  async #visit(url) {\n    const request = new FetchRequest(this, FetchMethod.get, url, new URLSearchParams(), this.element);\n\n    this.#currentFetchRequest?.cancel();\n    this.#currentFetchRequest = request;\n\n    return new Promise((resolve) => {\n      this.#resolveVisitPromise = () => {\n        this.#resolveVisitPromise = () => {};\n        this.#currentFetchRequest = null;\n        resolve();\n      };\n      request.perform();\n    })\n  }\n\n  #navigateFrame(element, url, submitter) {\n    const frame = this.#findFrameElement(element, submitter);\n\n    frame.delegate.proposeVisitIfNavigatedWithAction(frame, getVisitAction(submitter, element, frame));\n\n    this.#withCurrentNavigationElement(element, () => {\n      frame.src = url;\n    });\n  }\n\n  proposeVisitIfNavigatedWithAction(frame, action = null) {\n    this.action = action;\n\n    if (this.action) {\n      const pageSnapshot = PageSnapshot.fromElement(frame).clone();\n      const { visitCachedSnapshot } = frame.delegate;\n\n      frame.delegate.fetchResponseLoaded = async (fetchResponse) => {\n        if (frame.src) {\n          const { statusCode, redirected } = fetchResponse;\n          const responseHTML = await fetchResponse.responseHTML;\n          const response = { statusCode, redirected, responseHTML };\n          const options = {\n            response,\n            visitCachedSnapshot,\n            willRender: false,\n            updateHistory: false,\n            restorationIdentifier: this.restorationIdentifier,\n            snapshot: pageSnapshot\n          };\n\n          if (this.action) options.action = this.action;\n\n          session.visit(frame.src, options);\n        }\n      };\n    }\n  }\n\n  changeHistory() {\n    if (this.action) {\n      const method = getHistoryMethodForAction(this.action);\n      session.history.update(method, expandURL(this.element.src || \"\"), this.restorationIdentifier);\n    }\n  }\n\n  async #handleUnvisitableFrameResponse(fetchResponse) {\n    console.warn(\n      `The response (${fetchResponse.statusCode}) from <turbo-frame id=\"${this.element.id}\"> is performing a full page visit due to turbo-visit-control.`\n    );\n\n    await this.#visitResponse(fetchResponse.response);\n  }\n\n  #willHandleFrameMissingFromResponse(fetchResponse) {\n    this.element.setAttribute(\"complete\", \"\");\n\n    const response = fetchResponse.response;\n    const visit = async (url, options) => {\n      if (url instanceof Response) {\n        this.#visitResponse(url);\n      } else {\n        session.visit(url, options);\n      }\n    };\n\n    const event = dispatch(\"turbo:frame-missing\", {\n      target: this.element,\n      detail: { response, visit },\n      cancelable: true\n    });\n\n    return !event.defaultPrevented\n  }\n\n  #handleFrameMissingFromResponse(fetchResponse) {\n    this.view.missing();\n    this.#throwFrameMissingError(fetchResponse);\n  }\n\n  #throwFrameMissingError(fetchResponse) {\n    const message = `The response (${fetchResponse.statusCode}) did not contain the expected <turbo-frame id=\"${this.element.id}\"> and will be ignored. To perform a full page visit instead, set turbo-visit-control to reload.`;\n    throw new TurboFrameMissingError(message)\n  }\n\n  async #visitResponse(response) {\n    const wrapped = new FetchResponse(response);\n    const responseHTML = await wrapped.responseHTML;\n    const { location, redirected, statusCode } = wrapped;\n\n    return session.visit(location, { response: { redirected, statusCode, responseHTML } })\n  }\n\n  #findFrameElement(element, submitter) {\n    const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n    const target = this.#getFrameElementById(id);\n\n    return target instanceof FrameElement ? target : this.element\n  }\n\n  async extractForeignFrameElement(container) {\n    let element;\n    const id = CSS.escape(this.id);\n\n    try {\n      element = activateElement(container.querySelector(`turbo-frame#${id}`), this.sourceURL);\n      if (element) {\n        return element\n      }\n\n      element = activateElement(container.querySelector(`turbo-frame[src][recurse~=${id}]`), this.sourceURL);\n      if (element) {\n        await element.loaded;\n        return await this.extractForeignFrameElement(element)\n      }\n    } catch (error) {\n      console.error(error);\n      return new FrameElement()\n    }\n\n    return null\n  }\n\n  #formActionIsVisitable(form, submitter) {\n    const action = getAction$1(form, submitter);\n\n    return locationIsVisitable(expandURL(action), this.rootLocation)\n  }\n\n  #shouldInterceptNavigation(element, submitter) {\n    const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n\n    if (element instanceof HTMLFormElement && !this.#formActionIsVisitable(element, submitter)) {\n      return false\n    }\n\n    if (!this.enabled || id == \"_top\") {\n      return false\n    }\n\n    if (id) {\n      const frameElement = this.#getFrameElementById(id);\n      if (frameElement) {\n        return !frameElement.disabled\n      } else if (id == \"_parent\") {\n        return false\n      }\n    }\n\n    if (!session.elementIsNavigatable(element)) {\n      return false\n    }\n\n    if (submitter && !session.elementIsNavigatable(submitter)) {\n      return false\n    }\n\n    return true\n  }\n\n  // Computed properties\n\n  get id() {\n    return this.element.id\n  }\n\n  get disabled() {\n    return this.element.disabled\n  }\n\n  get enabled() {\n    return !this.disabled\n  }\n\n  get sourceURL() {\n    if (this.element.src) {\n      return this.element.src\n    }\n  }\n\n  set sourceURL(sourceURL) {\n    this.#ignoringChangesToAttribute(\"src\", () => {\n      this.element.src = sourceURL ?? null;\n    });\n  }\n\n  get loadingStyle() {\n    return this.element.loading\n  }\n\n  get isLoading() {\n    return this.formSubmission !== undefined || this.#resolveVisitPromise() !== undefined\n  }\n\n  get complete() {\n    return this.element.hasAttribute(\"complete\")\n  }\n\n  set complete(value) {\n    if (value) {\n      this.element.setAttribute(\"complete\", \"\");\n    } else {\n      this.element.removeAttribute(\"complete\");\n    }\n  }\n\n  get isActive() {\n    return this.element.isActive && this.#connected\n  }\n\n  get rootLocation() {\n    const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n    const root = meta?.content ?? \"/\";\n    return expandURL(root)\n  }\n\n  #isIgnoringChangesTo(attributeName) {\n    return this.#ignoredAttributes.has(attributeName)\n  }\n\n  #ignoringChangesToAttribute(attributeName, callback) {\n    this.#ignoredAttributes.add(attributeName);\n    callback();\n    this.#ignoredAttributes.delete(attributeName);\n  }\n\n  #withCurrentNavigationElement(element, callback) {\n    this.currentNavigationElement = element;\n    callback();\n    delete this.currentNavigationElement;\n  }\n\n  #getFrameElementById(id) {\n    if (id != null) {\n      const element = id === \"_parent\" ?\n        this.element.parentElement.closest(\"turbo-frame\") :\n        document.getElementById(id);\n      if (element instanceof FrameElement) {\n        return element\n      }\n    }\n  }\n}\n\nfunction activateElement(element, currentURL) {\n  if (element) {\n    const src = element.getAttribute(\"src\");\n    if (src != null && currentURL != null && urlsAreEqual(src, currentURL)) {\n      throw new Error(`Matching <turbo-frame id=\"${element.id}\"> element has a source URL which references itself`)\n    }\n    if (element.ownerDocument !== document) {\n      element = document.importNode(element, true);\n    }\n\n    if (element instanceof FrameElement) {\n      element.connectedCallback();\n      element.disconnectedCallback();\n      return element\n    }\n  }\n}\n\nconst StreamActions = {\n  after() {\n    this.removeDuplicateTargetSiblings();\n    this.targetElements.forEach((e) => e.parentElement?.insertBefore(this.templateContent, e.nextSibling));\n  },\n\n  append() {\n    this.removeDuplicateTargetChildren();\n    this.targetElements.forEach((e) => e.append(this.templateContent));\n  },\n\n  before() {\n    this.removeDuplicateTargetSiblings();\n    this.targetElements.forEach((e) => e.parentElement?.insertBefore(this.templateContent, e));\n  },\n\n  prepend() {\n    this.removeDuplicateTargetChildren();\n    this.targetElements.forEach((e) => e.prepend(this.templateContent));\n  },\n\n  remove() {\n    this.targetElements.forEach((e) => e.remove());\n  },\n\n  replace() {\n    const method = this.getAttribute(\"method\");\n\n    this.targetElements.forEach((targetElement) => {\n      if (method === \"morph\") {\n        morphElements(targetElement, this.templateContent);\n      } else {\n        targetElement.replaceWith(this.templateContent);\n      }\n    });\n  },\n\n  update() {\n    const method = this.getAttribute(\"method\");\n\n    this.targetElements.forEach((targetElement) => {\n      if (method === \"morph\") {\n        morphChildren(targetElement, this.templateContent);\n      } else {\n        targetElement.innerHTML = \"\";\n        targetElement.append(this.templateContent);\n      }\n    });\n  },\n\n  refresh() {\n    const method = this.getAttribute(\"method\");\n    const requestId = this.requestId;\n    const scroll = this.getAttribute(\"scroll\");\n\n    session.refresh(this.baseURI, { method, requestId, scroll });\n  }\n};\n\n// <turbo-stream action=replace target=id><template>...\n\n/**\n * Renders updates to the page from a stream of messages.\n *\n * Using the `action` attribute, this can be configured one of eight ways:\n *\n * - `after` - inserts the result after the target\n * - `append` - appends the result to the target\n * - `before` - inserts the result before the target\n * - `prepend` - prepends the result to the target\n * - `refresh` - initiates a page refresh\n * - `remove` - removes the target\n * - `replace` - replaces the outer HTML of the target\n * - `update` - replaces the inner HTML of the target\n *\n * @customElement turbo-stream\n * @example\n *   <turbo-stream action=\"append\" target=\"dom_id\">\n *     <template>\n *       Content to append to target designated with the dom_id.\n *     </template>\n *   </turbo-stream>\n */\nclass StreamElement extends HTMLElement {\n  static async renderElement(newElement) {\n    await newElement.performAction();\n  }\n\n  async connectedCallback() {\n    try {\n      await this.render();\n    } catch (error) {\n      console.error(error);\n    } finally {\n      this.disconnect();\n    }\n  }\n\n  async render() {\n    return (this.renderPromise ??= (async () => {\n      const event = this.beforeRenderEvent;\n\n      if (this.dispatchEvent(event)) {\n        await nextRepaint();\n        await event.detail.render(this);\n      }\n    })())\n  }\n\n  disconnect() {\n    try {\n      this.remove();\n      // eslint-disable-next-line no-empty\n    } catch {}\n  }\n\n  /**\n   * Removes duplicate children (by ID)\n   */\n  removeDuplicateTargetChildren() {\n    this.duplicateChildren.forEach((c) => c.remove());\n  }\n\n  /**\n   * Gets the list of duplicate children (i.e. those with the same ID)\n   */\n  get duplicateChildren() {\n    const existingChildren = this.targetElements.flatMap((e) => [...e.children]).filter((c) => !!c.getAttribute(\"id\"));\n    const newChildrenIds = [...(this.templateContent?.children || [])].filter((c) => !!c.getAttribute(\"id\")).map((c) => c.getAttribute(\"id\"));\n\n    return existingChildren.filter((c) => newChildrenIds.includes(c.getAttribute(\"id\")))\n  }\n\n  /**\n  * Removes duplicate siblings (by ID)\n  */\n  removeDuplicateTargetSiblings() {\n    this.duplicateSiblings.forEach((c) => c.remove());\n  }\n\n  /**\n  * Gets the list of duplicate siblings (i.e. those with the same ID)\n  */\n  get duplicateSiblings() {\n    const existingChildren = this.targetElements.flatMap((e) => [...e.parentElement.children]).filter((c) => !!c.id);\n    const newChildrenIds = [...(this.templateContent?.children || [])].filter((c) => !!c.id).map((c) => c.id);\n\n    return existingChildren.filter((c) => newChildrenIds.includes(c.id))\n  }\n\n  /**\n   * Gets the action function to be performed.\n   */\n  get performAction() {\n    if (this.action) {\n      const actionFunction = StreamActions[this.action];\n      if (actionFunction) {\n        return actionFunction\n      }\n      this.#raise(\"unknown action\");\n    }\n    this.#raise(\"action attribute is missing\");\n  }\n\n  /**\n   * Gets the target elements which the template will be rendered to.\n   */\n  get targetElements() {\n    if (this.target) {\n      return this.targetElementsById\n    } else if (this.targets) {\n      return this.targetElementsByQuery\n    } else {\n      this.#raise(\"target or targets attribute is missing\");\n    }\n  }\n\n  /**\n   * Gets the contents of the main `<template>`.\n   */\n  get templateContent() {\n    return this.templateElement.content.cloneNode(true)\n  }\n\n  /**\n   * Gets the main `<template>` used for rendering\n   */\n  get templateElement() {\n    if (this.firstElementChild === null) {\n      const template = this.ownerDocument.createElement(\"template\");\n      this.appendChild(template);\n      return template\n    } else if (this.firstElementChild instanceof HTMLTemplateElement) {\n      return this.firstElementChild\n    }\n    this.#raise(\"first child element must be a <template> element\");\n  }\n\n  /**\n   * Gets the current action.\n   */\n  get action() {\n    return this.getAttribute(\"action\")\n  }\n\n  /**\n   * Gets the current target (an element ID) to which the result will\n   * be rendered.\n   */\n  get target() {\n    return this.getAttribute(\"target\")\n  }\n\n  /**\n   * Gets the current \"targets\" selector (a CSS selector)\n   */\n  get targets() {\n    return this.getAttribute(\"targets\")\n  }\n\n  /**\n   * Reads the request-id attribute\n   */\n  get requestId() {\n    return this.getAttribute(\"request-id\")\n  }\n\n  #raise(message) {\n    throw new Error(`${this.description}: ${message}`)\n  }\n\n  get description() {\n    return (this.outerHTML.match(/<[^>]+>/) ?? [])[0] ?? \"<turbo-stream>\"\n  }\n\n  get beforeRenderEvent() {\n    return new CustomEvent(\"turbo:before-stream-render\", {\n      bubbles: true,\n      cancelable: true,\n      detail: { newStream: this, render: StreamElement.renderElement }\n    })\n  }\n\n  get targetElementsById() {\n    const element = this.ownerDocument?.getElementById(this.target);\n\n    if (element !== null) {\n      return [element]\n    } else {\n      return []\n    }\n  }\n\n  get targetElementsByQuery() {\n    const elements = this.ownerDocument?.querySelectorAll(this.targets);\n\n    if (elements.length !== 0) {\n      return Array.prototype.slice.call(elements)\n    } else {\n      return []\n    }\n  }\n}\n\nclass StreamSourceElement extends HTMLElement {\n  streamSource = null\n\n  connectedCallback() {\n    this.streamSource = this.src.match(/^ws{1,2}:/) ? new WebSocket(this.src) : new EventSource(this.src);\n\n    connectStreamSource(this.streamSource);\n  }\n\n  disconnectedCallback() {\n    if (this.streamSource) {\n      this.streamSource.close();\n\n      disconnectStreamSource(this.streamSource);\n    }\n  }\n\n  get src() {\n    return this.getAttribute(\"src\") || \"\"\n  }\n}\n\nFrameElement.delegateConstructor = FrameController;\n\nif (customElements.get(\"turbo-frame\") === undefined) {\n  customElements.define(\"turbo-frame\", FrameElement);\n}\n\nif (customElements.get(\"turbo-stream\") === undefined) {\n  customElements.define(\"turbo-stream\", StreamElement);\n}\n\nif (customElements.get(\"turbo-stream-source\") === undefined) {\n  customElements.define(\"turbo-stream-source\", StreamSourceElement);\n}\n\n(() => {\n  const scriptElement = document.currentScript;\n  if (!scriptElement) return\n  if (scriptElement.hasAttribute(\"data-turbo-suppress-warning\")) return\n\n  let element = scriptElement.parentElement;\n  while (element) {\n    if (element == document.body) {\n      return console.warn(\n        unindent`\n        You are loading Turbo from a <script> element inside the <body> element. This is probably not what you meant to do!\n\n        Load your application\u2019s JavaScript bundle inside the <head> element instead. <script> elements in <body> are evaluated with each page change.\n\n        For more information, see: https://turbo.hotwired.dev/handbook/building#working-with-script-elements\n\n        \u2014\u2014\n        Suppress this warning by adding a \"data-turbo-suppress-warning\" attribute to: %s\n      `,\n        scriptElement.outerHTML\n      )\n    }\n\n    element = element.parentElement;\n  }\n})();\n\nwindow.Turbo = { ...Turbo, StreamActions };\nstart();\n\nexport { FetchEnctype, FetchMethod, FetchRequest, FetchResponse, FrameElement, FrameLoadingStyle, FrameRenderer, PageRenderer, PageSnapshot, StreamActions, StreamElement, StreamSourceElement, cache, config, connectStreamSource, disconnectStreamSource, fetchWithTurboHeaders as fetch, fetchEnctypeFromString, fetchMethodFromString, isSafe, morphBodyElements, morphChildren, morphElements, morphTurboFrameElements, navigator, registerAdapter, renderStreamMessage, session, setConfirmMethod, setFormMode, setProgressBarDelay, start, visit };\n", "let consumer\n\nexport async function getConsumer() {\n  return consumer || setConsumer(createConsumer().then(setConsumer))\n}\n\nexport function setConsumer(newConsumer) {\n  return consumer = newConsumer\n}\n\nexport async function createConsumer() {\n  const { createConsumer } = await import(/* webpackChunkName: \"actioncable\" */ \"@rails/actioncable/src\")\n  return createConsumer()\n}\n\nexport async function subscribeTo(channel, mixin) {\n  const { subscriptions } = await getConsumer()\n  return subscriptions.create(channel, mixin)\n}\n", "// Based on https://github.com/nathan7/snakeize\n//\n// This software is released under the MIT license:\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nexport default function walk (obj) {\n    if (!obj || typeof obj !== 'object') return obj;\n    if (obj instanceof Date || obj instanceof RegExp) return obj;\n    if (Array.isArray(obj)) return obj.map(walk);\n    return Object.keys(obj).reduce(function (acc, key) {\n        var camel = key[0].toLowerCase() + key.slice(1).replace(/([A-Z]+)/g, function (m, x) {\n            return '_' + x.toLowerCase();\n        });\n        acc[camel] = walk(obj[key]);\n        return acc;\n    }, {});\n};", "import { connectStreamSource, disconnectStreamSource } from \"@hotwired/turbo\"\nimport { subscribeTo } from \"./cable\"\nimport snakeize from \"./snakeize\"\n\nclass TurboCableStreamSourceElement extends HTMLElement {\n  static observedAttributes = [\"channel\", \"signed-stream-name\"]\n\n  async connectedCallback() {\n    connectStreamSource(this)\n    this.subscription = await subscribeTo(this.channel, {\n      received: this.dispatchMessageEvent.bind(this),\n      connected: this.subscriptionConnected.bind(this),\n      disconnected: this.subscriptionDisconnected.bind(this)\n    })\n  }\n\n  disconnectedCallback() {\n    disconnectStreamSource(this)\n    if (this.subscription) this.subscription.unsubscribe()\n    this.subscriptionDisconnected()\n  }\n\n  attributeChangedCallback() {\n    if (this.subscription) {\n      this.disconnectedCallback()\n      this.connectedCallback()\n    }\n  }\n\n  dispatchMessageEvent(data) {\n    const event = new MessageEvent(\"message\", { data })\n    return this.dispatchEvent(event)\n  }\n\n  subscriptionConnected() {\n    this.setAttribute(\"connected\", \"\")\n  }\n\n  subscriptionDisconnected() {\n    this.removeAttribute(\"connected\")\n  }\n\n  get channel() {\n    const channel = this.getAttribute(\"channel\")\n    const signed_stream_name = this.getAttribute(\"signed-stream-name\")\n    return { channel, signed_stream_name, ...snakeize({ ...this.dataset }) }\n  }\n}\n\n\nif (customElements.get(\"turbo-cable-stream-source\") === undefined) {\n  customElements.define(\"turbo-cable-stream-source\", TurboCableStreamSourceElement)\n}\n", "export function encodeMethodIntoRequestBody(event) {\n  if (event.target instanceof HTMLFormElement) {\n    const { target: form, detail: { fetchOptions } } = event\n\n    form.addEventListener(\"turbo:submit-start\", ({ detail: { formSubmission: { submitter } } }) => {\n      const body = isBodyInit(fetchOptions.body) ? fetchOptions.body : new URLSearchParams()\n      const method = determineFetchMethod(submitter, body, form)\n\n      if (!/get/i.test(method)) {\n        if (/post/i.test(method)) {\n          body.delete(\"_method\")\n        } else {\n          body.set(\"_method\", method)\n        }\n\n        fetchOptions.method = \"post\"\n      }\n    }, { once: true })\n  }\n}\n\nfunction determineFetchMethod(submitter, body, form) {\n  const formMethod = determineFormMethod(submitter)\n  const overrideMethod = body.get(\"_method\")\n  const method = form.getAttribute(\"method\") || \"get\"\n\n  if (typeof formMethod == \"string\") {\n    return formMethod\n  } else if (typeof overrideMethod == \"string\") {\n    return overrideMethod\n  } else {\n    return method\n  }\n}\n\nfunction determineFormMethod(submitter) {\n  if (submitter instanceof HTMLButtonElement || submitter instanceof HTMLInputElement) {\n    // Rails 7 ActionView::Helpers::FormBuilder#button method has an override\n    // for formmethod if the button does not have name or value attributes\n    // set, which is the default. This means that if you use <%= f.button\n    // formmethod: :delete %>, it will generate a <button name=\"_method\"\n    // value=\"delete\" formmethod=\"post\">. Therefore, if the submitter's name\n    // is already _method, it's value attribute already contains the desired\n    // method.\n    if (submitter.name === '_method') {\n      return submitter.value\n    } else if (submitter.hasAttribute(\"formmethod\")) {\n      return submitter.formMethod\n    } else {\n      return null\n    }\n  } else {\n    return null\n  }\n}\n\nfunction isBodyInit(body) {\n  return body instanceof FormData || body instanceof URLSearchParams\n}\n", "import \"./cable_stream_source_element\"\n\nimport * as Turbo from \"@hotwired/turbo\"\nexport { Turbo }\n\nimport * as cable from \"./cable\"\nexport { cable }\n\nimport { encodeMethodIntoRequestBody } from \"./fetch_requests\"\n\nwindow.Turbo = Turbo\n\naddEventListener(\"turbo:before-fetch-request\", encodeMethodIntoRequestBody)\n", "/*\nStimulus 3.2.1\nCopyright \u00A9 2023 Basecamp, LLC\n */\nclass EventListener {\n    constructor(eventTarget, eventName, eventOptions) {\n        this.eventTarget = eventTarget;\n        this.eventName = eventName;\n        this.eventOptions = eventOptions;\n        this.unorderedBindings = new Set();\n    }\n    connect() {\n        this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n    }\n    disconnect() {\n        this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n    }\n    bindingConnected(binding) {\n        this.unorderedBindings.add(binding);\n    }\n    bindingDisconnected(binding) {\n        this.unorderedBindings.delete(binding);\n    }\n    handleEvent(event) {\n        const extendedEvent = extendEvent(event);\n        for (const binding of this.bindings) {\n            if (extendedEvent.immediatePropagationStopped) {\n                break;\n            }\n            else {\n                binding.handleEvent(extendedEvent);\n            }\n        }\n    }\n    hasBindings() {\n        return this.unorderedBindings.size > 0;\n    }\n    get bindings() {\n        return Array.from(this.unorderedBindings).sort((left, right) => {\n            const leftIndex = left.index, rightIndex = right.index;\n            return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n        });\n    }\n}\nfunction extendEvent(event) {\n    if (\"immediatePropagationStopped\" in event) {\n        return event;\n    }\n    else {\n        const { stopImmediatePropagation } = event;\n        return Object.assign(event, {\n            immediatePropagationStopped: false,\n            stopImmediatePropagation() {\n                this.immediatePropagationStopped = true;\n                stopImmediatePropagation.call(this);\n            },\n        });\n    }\n}\n\nclass Dispatcher {\n    constructor(application) {\n        this.application = application;\n        this.eventListenerMaps = new Map();\n        this.started = false;\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.eventListeners.forEach((eventListener) => eventListener.connect());\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            this.eventListeners.forEach((eventListener) => eventListener.disconnect());\n        }\n    }\n    get eventListeners() {\n        return Array.from(this.eventListenerMaps.values()).reduce((listeners, map) => listeners.concat(Array.from(map.values())), []);\n    }\n    bindingConnected(binding) {\n        this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n    }\n    bindingDisconnected(binding, clearEventListeners = false) {\n        this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n        if (clearEventListeners)\n            this.clearEventListenersForBinding(binding);\n    }\n    handleError(error, message, detail = {}) {\n        this.application.handleError(error, `Error ${message}`, detail);\n    }\n    clearEventListenersForBinding(binding) {\n        const eventListener = this.fetchEventListenerForBinding(binding);\n        if (!eventListener.hasBindings()) {\n            eventListener.disconnect();\n            this.removeMappedEventListenerFor(binding);\n        }\n    }\n    removeMappedEventListenerFor(binding) {\n        const { eventTarget, eventName, eventOptions } = binding;\n        const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n        const cacheKey = this.cacheKey(eventName, eventOptions);\n        eventListenerMap.delete(cacheKey);\n        if (eventListenerMap.size == 0)\n            this.eventListenerMaps.delete(eventTarget);\n    }\n    fetchEventListenerForBinding(binding) {\n        const { eventTarget, eventName, eventOptions } = binding;\n        return this.fetchEventListener(eventTarget, eventName, eventOptions);\n    }\n    fetchEventListener(eventTarget, eventName, eventOptions) {\n        const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n        const cacheKey = this.cacheKey(eventName, eventOptions);\n        let eventListener = eventListenerMap.get(cacheKey);\n        if (!eventListener) {\n            eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n            eventListenerMap.set(cacheKey, eventListener);\n        }\n        return eventListener;\n    }\n    createEventListener(eventTarget, eventName, eventOptions) {\n        const eventListener = new EventListener(eventTarget, eventName, eventOptions);\n        if (this.started) {\n            eventListener.connect();\n        }\n        return eventListener;\n    }\n    fetchEventListenerMapForEventTarget(eventTarget) {\n        let eventListenerMap = this.eventListenerMaps.get(eventTarget);\n        if (!eventListenerMap) {\n            eventListenerMap = new Map();\n            this.eventListenerMaps.set(eventTarget, eventListenerMap);\n        }\n        return eventListenerMap;\n    }\n    cacheKey(eventName, eventOptions) {\n        const parts = [eventName];\n        Object.keys(eventOptions)\n            .sort()\n            .forEach((key) => {\n            parts.push(`${eventOptions[key] ? \"\" : \"!\"}${key}`);\n        });\n        return parts.join(\":\");\n    }\n}\n\nconst defaultActionDescriptorFilters = {\n    stop({ event, value }) {\n        if (value)\n            event.stopPropagation();\n        return true;\n    },\n    prevent({ event, value }) {\n        if (value)\n            event.preventDefault();\n        return true;\n    },\n    self({ event, value, element }) {\n        if (value) {\n            return element === event.target;\n        }\n        else {\n            return true;\n        }\n    },\n};\nconst descriptorPattern = /^(?:(?:([^.]+?)\\+)?(.+?)(?:\\.(.+?))?(?:@(window|document))?->)?(.+?)(?:#([^:]+?))(?::(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n    const source = descriptorString.trim();\n    const matches = source.match(descriptorPattern) || [];\n    let eventName = matches[2];\n    let keyFilter = matches[3];\n    if (keyFilter && ![\"keydown\", \"keyup\", \"keypress\"].includes(eventName)) {\n        eventName += `.${keyFilter}`;\n        keyFilter = \"\";\n    }\n    return {\n        eventTarget: parseEventTarget(matches[4]),\n        eventName,\n        eventOptions: matches[7] ? parseEventOptions(matches[7]) : {},\n        identifier: matches[5],\n        methodName: matches[6],\n        keyFilter: matches[1] || keyFilter,\n    };\n}\nfunction parseEventTarget(eventTargetName) {\n    if (eventTargetName == \"window\") {\n        return window;\n    }\n    else if (eventTargetName == \"document\") {\n        return document;\n    }\n}\nfunction parseEventOptions(eventOptions) {\n    return eventOptions\n        .split(\":\")\n        .reduce((options, token) => Object.assign(options, { [token.replace(/^!/, \"\")]: !/^!/.test(token) }), {});\n}\nfunction stringifyEventTarget(eventTarget) {\n    if (eventTarget == window) {\n        return \"window\";\n    }\n    else if (eventTarget == document) {\n        return \"document\";\n    }\n}\n\nfunction camelize(value) {\n    return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\nfunction namespaceCamelize(value) {\n    return camelize(value.replace(/--/g, \"-\").replace(/__/g, \"_\"));\n}\nfunction capitalize(value) {\n    return value.charAt(0).toUpperCase() + value.slice(1);\n}\nfunction dasherize(value) {\n    return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\nfunction tokenize(value) {\n    return value.match(/[^\\s]+/g) || [];\n}\n\nfunction isSomething(object) {\n    return object !== null && object !== undefined;\n}\nfunction hasProperty(object, property) {\n    return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nconst allModifiers = [\"meta\", \"ctrl\", \"alt\", \"shift\"];\nclass Action {\n    constructor(element, index, descriptor, schema) {\n        this.element = element;\n        this.index = index;\n        this.eventTarget = descriptor.eventTarget || element;\n        this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n        this.eventOptions = descriptor.eventOptions || {};\n        this.identifier = descriptor.identifier || error(\"missing identifier\");\n        this.methodName = descriptor.methodName || error(\"missing method name\");\n        this.keyFilter = descriptor.keyFilter || \"\";\n        this.schema = schema;\n    }\n    static forToken(token, schema) {\n        return new this(token.element, token.index, parseActionDescriptorString(token.content), schema);\n    }\n    toString() {\n        const eventFilter = this.keyFilter ? `.${this.keyFilter}` : \"\";\n        const eventTarget = this.eventTargetName ? `@${this.eventTargetName}` : \"\";\n        return `${this.eventName}${eventFilter}${eventTarget}->${this.identifier}#${this.methodName}`;\n    }\n    shouldIgnoreKeyboardEvent(event) {\n        if (!this.keyFilter) {\n            return false;\n        }\n        const filters = this.keyFilter.split(\"+\");\n        if (this.keyFilterDissatisfied(event, filters)) {\n            return true;\n        }\n        const standardFilter = filters.filter((key) => !allModifiers.includes(key))[0];\n        if (!standardFilter) {\n            return false;\n        }\n        if (!hasProperty(this.keyMappings, standardFilter)) {\n            error(`contains unknown key filter: ${this.keyFilter}`);\n        }\n        return this.keyMappings[standardFilter].toLowerCase() !== event.key.toLowerCase();\n    }\n    shouldIgnoreMouseEvent(event) {\n        if (!this.keyFilter) {\n            return false;\n        }\n        const filters = [this.keyFilter];\n        if (this.keyFilterDissatisfied(event, filters)) {\n            return true;\n        }\n        return false;\n    }\n    get params() {\n        const params = {};\n        const pattern = new RegExp(`^data-${this.identifier}-(.+)-param$`, \"i\");\n        for (const { name, value } of Array.from(this.element.attributes)) {\n            const match = name.match(pattern);\n            const key = match && match[1];\n            if (key) {\n                params[camelize(key)] = typecast(value);\n            }\n        }\n        return params;\n    }\n    get eventTargetName() {\n        return stringifyEventTarget(this.eventTarget);\n    }\n    get keyMappings() {\n        return this.schema.keyMappings;\n    }\n    keyFilterDissatisfied(event, filters) {\n        const [meta, ctrl, alt, shift] = allModifiers.map((modifier) => filters.includes(modifier));\n        return event.metaKey !== meta || event.ctrlKey !== ctrl || event.altKey !== alt || event.shiftKey !== shift;\n    }\n}\nconst defaultEventNames = {\n    a: () => \"click\",\n    button: () => \"click\",\n    form: () => \"submit\",\n    details: () => \"toggle\",\n    input: (e) => (e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\"),\n    select: () => \"change\",\n    textarea: () => \"input\",\n};\nfunction getDefaultEventNameForElement(element) {\n    const tagName = element.tagName.toLowerCase();\n    if (tagName in defaultEventNames) {\n        return defaultEventNames[tagName](element);\n    }\n}\nfunction error(message) {\n    throw new Error(message);\n}\nfunction typecast(value) {\n    try {\n        return JSON.parse(value);\n    }\n    catch (o_O) {\n        return value;\n    }\n}\n\nclass Binding {\n    constructor(context, action) {\n        this.context = context;\n        this.action = action;\n    }\n    get index() {\n        return this.action.index;\n    }\n    get eventTarget() {\n        return this.action.eventTarget;\n    }\n    get eventOptions() {\n        return this.action.eventOptions;\n    }\n    get identifier() {\n        return this.context.identifier;\n    }\n    handleEvent(event) {\n        const actionEvent = this.prepareActionEvent(event);\n        if (this.willBeInvokedByEvent(event) && this.applyEventModifiers(actionEvent)) {\n            this.invokeWithEvent(actionEvent);\n        }\n    }\n    get eventName() {\n        return this.action.eventName;\n    }\n    get method() {\n        const method = this.controller[this.methodName];\n        if (typeof method == \"function\") {\n            return method;\n        }\n        throw new Error(`Action \"${this.action}\" references undefined method \"${this.methodName}\"`);\n    }\n    applyEventModifiers(event) {\n        const { element } = this.action;\n        const { actionDescriptorFilters } = this.context.application;\n        const { controller } = this.context;\n        let passes = true;\n        for (const [name, value] of Object.entries(this.eventOptions)) {\n            if (name in actionDescriptorFilters) {\n                const filter = actionDescriptorFilters[name];\n                passes = passes && filter({ name, value, event, element, controller });\n            }\n            else {\n                continue;\n            }\n        }\n        return passes;\n    }\n    prepareActionEvent(event) {\n        return Object.assign(event, { params: this.action.params });\n    }\n    invokeWithEvent(event) {\n        const { target, currentTarget } = event;\n        try {\n            this.method.call(this.controller, event);\n            this.context.logDebugActivity(this.methodName, { event, target, currentTarget, action: this.methodName });\n        }\n        catch (error) {\n            const { identifier, controller, element, index } = this;\n            const detail = { identifier, controller, element, index, event };\n            this.context.handleError(error, `invoking action \"${this.action}\"`, detail);\n        }\n    }\n    willBeInvokedByEvent(event) {\n        const eventTarget = event.target;\n        if (event instanceof KeyboardEvent && this.action.shouldIgnoreKeyboardEvent(event)) {\n            return false;\n        }\n        if (event instanceof MouseEvent && this.action.shouldIgnoreMouseEvent(event)) {\n            return false;\n        }\n        if (this.element === eventTarget) {\n            return true;\n        }\n        else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n            return this.scope.containsElement(eventTarget);\n        }\n        else {\n            return this.scope.containsElement(this.action.element);\n        }\n    }\n    get controller() {\n        return this.context.controller;\n    }\n    get methodName() {\n        return this.action.methodName;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get scope() {\n        return this.context.scope;\n    }\n}\n\nclass ElementObserver {\n    constructor(element, delegate) {\n        this.mutationObserverInit = { attributes: true, childList: true, subtree: true };\n        this.element = element;\n        this.started = false;\n        this.delegate = delegate;\n        this.elements = new Set();\n        this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.mutationObserver.observe(this.element, this.mutationObserverInit);\n            this.refresh();\n        }\n    }\n    pause(callback) {\n        if (this.started) {\n            this.mutationObserver.disconnect();\n            this.started = false;\n        }\n        callback();\n        if (!this.started) {\n            this.mutationObserver.observe(this.element, this.mutationObserverInit);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.mutationObserver.takeRecords();\n            this.mutationObserver.disconnect();\n            this.started = false;\n        }\n    }\n    refresh() {\n        if (this.started) {\n            const matches = new Set(this.matchElementsInTree());\n            for (const element of Array.from(this.elements)) {\n                if (!matches.has(element)) {\n                    this.removeElement(element);\n                }\n            }\n            for (const element of Array.from(matches)) {\n                this.addElement(element);\n            }\n        }\n    }\n    processMutations(mutations) {\n        if (this.started) {\n            for (const mutation of mutations) {\n                this.processMutation(mutation);\n            }\n        }\n    }\n    processMutation(mutation) {\n        if (mutation.type == \"attributes\") {\n            this.processAttributeChange(mutation.target, mutation.attributeName);\n        }\n        else if (mutation.type == \"childList\") {\n            this.processRemovedNodes(mutation.removedNodes);\n            this.processAddedNodes(mutation.addedNodes);\n        }\n    }\n    processAttributeChange(element, attributeName) {\n        if (this.elements.has(element)) {\n            if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n                this.delegate.elementAttributeChanged(element, attributeName);\n            }\n            else {\n                this.removeElement(element);\n            }\n        }\n        else if (this.matchElement(element)) {\n            this.addElement(element);\n        }\n    }\n    processRemovedNodes(nodes) {\n        for (const node of Array.from(nodes)) {\n            const element = this.elementFromNode(node);\n            if (element) {\n                this.processTree(element, this.removeElement);\n            }\n        }\n    }\n    processAddedNodes(nodes) {\n        for (const node of Array.from(nodes)) {\n            const element = this.elementFromNode(node);\n            if (element && this.elementIsActive(element)) {\n                this.processTree(element, this.addElement);\n            }\n        }\n    }\n    matchElement(element) {\n        return this.delegate.matchElement(element);\n    }\n    matchElementsInTree(tree = this.element) {\n        return this.delegate.matchElementsInTree(tree);\n    }\n    processTree(tree, processor) {\n        for (const element of this.matchElementsInTree(tree)) {\n            processor.call(this, element);\n        }\n    }\n    elementFromNode(node) {\n        if (node.nodeType == Node.ELEMENT_NODE) {\n            return node;\n        }\n    }\n    elementIsActive(element) {\n        if (element.isConnected != this.element.isConnected) {\n            return false;\n        }\n        else {\n            return this.element.contains(element);\n        }\n    }\n    addElement(element) {\n        if (!this.elements.has(element)) {\n            if (this.elementIsActive(element)) {\n                this.elements.add(element);\n                if (this.delegate.elementMatched) {\n                    this.delegate.elementMatched(element);\n                }\n            }\n        }\n    }\n    removeElement(element) {\n        if (this.elements.has(element)) {\n            this.elements.delete(element);\n            if (this.delegate.elementUnmatched) {\n                this.delegate.elementUnmatched(element);\n            }\n        }\n    }\n}\n\nclass AttributeObserver {\n    constructor(element, attributeName, delegate) {\n        this.attributeName = attributeName;\n        this.delegate = delegate;\n        this.elementObserver = new ElementObserver(element, this);\n    }\n    get element() {\n        return this.elementObserver.element;\n    }\n    get selector() {\n        return `[${this.attributeName}]`;\n    }\n    start() {\n        this.elementObserver.start();\n    }\n    pause(callback) {\n        this.elementObserver.pause(callback);\n    }\n    stop() {\n        this.elementObserver.stop();\n    }\n    refresh() {\n        this.elementObserver.refresh();\n    }\n    get started() {\n        return this.elementObserver.started;\n    }\n    matchElement(element) {\n        return element.hasAttribute(this.attributeName);\n    }\n    matchElementsInTree(tree) {\n        const match = this.matchElement(tree) ? [tree] : [];\n        const matches = Array.from(tree.querySelectorAll(this.selector));\n        return match.concat(matches);\n    }\n    elementMatched(element) {\n        if (this.delegate.elementMatchedAttribute) {\n            this.delegate.elementMatchedAttribute(element, this.attributeName);\n        }\n    }\n    elementUnmatched(element) {\n        if (this.delegate.elementUnmatchedAttribute) {\n            this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n        }\n    }\n    elementAttributeChanged(element, attributeName) {\n        if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n            this.delegate.elementAttributeValueChanged(element, attributeName);\n        }\n    }\n}\n\nfunction add(map, key, value) {\n    fetch(map, key).add(value);\n}\nfunction del(map, key, value) {\n    fetch(map, key).delete(value);\n    prune(map, key);\n}\nfunction fetch(map, key) {\n    let values = map.get(key);\n    if (!values) {\n        values = new Set();\n        map.set(key, values);\n    }\n    return values;\n}\nfunction prune(map, key) {\n    const values = map.get(key);\n    if (values != null && values.size == 0) {\n        map.delete(key);\n    }\n}\n\nclass Multimap {\n    constructor() {\n        this.valuesByKey = new Map();\n    }\n    get keys() {\n        return Array.from(this.valuesByKey.keys());\n    }\n    get values() {\n        const sets = Array.from(this.valuesByKey.values());\n        return sets.reduce((values, set) => values.concat(Array.from(set)), []);\n    }\n    get size() {\n        const sets = Array.from(this.valuesByKey.values());\n        return sets.reduce((size, set) => size + set.size, 0);\n    }\n    add(key, value) {\n        add(this.valuesByKey, key, value);\n    }\n    delete(key, value) {\n        del(this.valuesByKey, key, value);\n    }\n    has(key, value) {\n        const values = this.valuesByKey.get(key);\n        return values != null && values.has(value);\n    }\n    hasKey(key) {\n        return this.valuesByKey.has(key);\n    }\n    hasValue(value) {\n        const sets = Array.from(this.valuesByKey.values());\n        return sets.some((set) => set.has(value));\n    }\n    getValuesForKey(key) {\n        const values = this.valuesByKey.get(key);\n        return values ? Array.from(values) : [];\n    }\n    getKeysForValue(value) {\n        return Array.from(this.valuesByKey)\n            .filter(([_key, values]) => values.has(value))\n            .map(([key, _values]) => key);\n    }\n}\n\nclass IndexedMultimap extends Multimap {\n    constructor() {\n        super();\n        this.keysByValue = new Map();\n    }\n    get values() {\n        return Array.from(this.keysByValue.keys());\n    }\n    add(key, value) {\n        super.add(key, value);\n        add(this.keysByValue, value, key);\n    }\n    delete(key, value) {\n        super.delete(key, value);\n        del(this.keysByValue, value, key);\n    }\n    hasValue(value) {\n        return this.keysByValue.has(value);\n    }\n    getKeysForValue(value) {\n        const set = this.keysByValue.get(value);\n        return set ? Array.from(set) : [];\n    }\n}\n\nclass SelectorObserver {\n    constructor(element, selector, delegate, details) {\n        this._selector = selector;\n        this.details = details;\n        this.elementObserver = new ElementObserver(element, this);\n        this.delegate = delegate;\n        this.matchesByElement = new Multimap();\n    }\n    get started() {\n        return this.elementObserver.started;\n    }\n    get selector() {\n        return this._selector;\n    }\n    set selector(selector) {\n        this._selector = selector;\n        this.refresh();\n    }\n    start() {\n        this.elementObserver.start();\n    }\n    pause(callback) {\n        this.elementObserver.pause(callback);\n    }\n    stop() {\n        this.elementObserver.stop();\n    }\n    refresh() {\n        this.elementObserver.refresh();\n    }\n    get element() {\n        return this.elementObserver.element;\n    }\n    matchElement(element) {\n        const { selector } = this;\n        if (selector) {\n            const matches = element.matches(selector);\n            if (this.delegate.selectorMatchElement) {\n                return matches && this.delegate.selectorMatchElement(element, this.details);\n            }\n            return matches;\n        }\n        else {\n            return false;\n        }\n    }\n    matchElementsInTree(tree) {\n        const { selector } = this;\n        if (selector) {\n            const match = this.matchElement(tree) ? [tree] : [];\n            const matches = Array.from(tree.querySelectorAll(selector)).filter((match) => this.matchElement(match));\n            return match.concat(matches);\n        }\n        else {\n            return [];\n        }\n    }\n    elementMatched(element) {\n        const { selector } = this;\n        if (selector) {\n            this.selectorMatched(element, selector);\n        }\n    }\n    elementUnmatched(element) {\n        const selectors = this.matchesByElement.getKeysForValue(element);\n        for (const selector of selectors) {\n            this.selectorUnmatched(element, selector);\n        }\n    }\n    elementAttributeChanged(element, _attributeName) {\n        const { selector } = this;\n        if (selector) {\n            const matches = this.matchElement(element);\n            const matchedBefore = this.matchesByElement.has(selector, element);\n            if (matches && !matchedBefore) {\n                this.selectorMatched(element, selector);\n            }\n            else if (!matches && matchedBefore) {\n                this.selectorUnmatched(element, selector);\n            }\n        }\n    }\n    selectorMatched(element, selector) {\n        this.delegate.selectorMatched(element, selector, this.details);\n        this.matchesByElement.add(selector, element);\n    }\n    selectorUnmatched(element, selector) {\n        this.delegate.selectorUnmatched(element, selector, this.details);\n        this.matchesByElement.delete(selector, element);\n    }\n}\n\nclass StringMapObserver {\n    constructor(element, delegate) {\n        this.element = element;\n        this.delegate = delegate;\n        this.started = false;\n        this.stringMap = new Map();\n        this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.mutationObserver.observe(this.element, { attributes: true, attributeOldValue: true });\n            this.refresh();\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.mutationObserver.takeRecords();\n            this.mutationObserver.disconnect();\n            this.started = false;\n        }\n    }\n    refresh() {\n        if (this.started) {\n            for (const attributeName of this.knownAttributeNames) {\n                this.refreshAttribute(attributeName, null);\n            }\n        }\n    }\n    processMutations(mutations) {\n        if (this.started) {\n            for (const mutation of mutations) {\n                this.processMutation(mutation);\n            }\n        }\n    }\n    processMutation(mutation) {\n        const attributeName = mutation.attributeName;\n        if (attributeName) {\n            this.refreshAttribute(attributeName, mutation.oldValue);\n        }\n    }\n    refreshAttribute(attributeName, oldValue) {\n        const key = this.delegate.getStringMapKeyForAttribute(attributeName);\n        if (key != null) {\n            if (!this.stringMap.has(attributeName)) {\n                this.stringMapKeyAdded(key, attributeName);\n            }\n            const value = this.element.getAttribute(attributeName);\n            if (this.stringMap.get(attributeName) != value) {\n                this.stringMapValueChanged(value, key, oldValue);\n            }\n            if (value == null) {\n                const oldValue = this.stringMap.get(attributeName);\n                this.stringMap.delete(attributeName);\n                if (oldValue)\n                    this.stringMapKeyRemoved(key, attributeName, oldValue);\n            }\n            else {\n                this.stringMap.set(attributeName, value);\n            }\n        }\n    }\n    stringMapKeyAdded(key, attributeName) {\n        if (this.delegate.stringMapKeyAdded) {\n            this.delegate.stringMapKeyAdded(key, attributeName);\n        }\n    }\n    stringMapValueChanged(value, key, oldValue) {\n        if (this.delegate.stringMapValueChanged) {\n            this.delegate.stringMapValueChanged(value, key, oldValue);\n        }\n    }\n    stringMapKeyRemoved(key, attributeName, oldValue) {\n        if (this.delegate.stringMapKeyRemoved) {\n            this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n        }\n    }\n    get knownAttributeNames() {\n        return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n    }\n    get currentAttributeNames() {\n        return Array.from(this.element.attributes).map((attribute) => attribute.name);\n    }\n    get recordedAttributeNames() {\n        return Array.from(this.stringMap.keys());\n    }\n}\n\nclass TokenListObserver {\n    constructor(element, attributeName, delegate) {\n        this.attributeObserver = new AttributeObserver(element, attributeName, this);\n        this.delegate = delegate;\n        this.tokensByElement = new Multimap();\n    }\n    get started() {\n        return this.attributeObserver.started;\n    }\n    start() {\n        this.attributeObserver.start();\n    }\n    pause(callback) {\n        this.attributeObserver.pause(callback);\n    }\n    stop() {\n        this.attributeObserver.stop();\n    }\n    refresh() {\n        this.attributeObserver.refresh();\n    }\n    get element() {\n        return this.attributeObserver.element;\n    }\n    get attributeName() {\n        return this.attributeObserver.attributeName;\n    }\n    elementMatchedAttribute(element) {\n        this.tokensMatched(this.readTokensForElement(element));\n    }\n    elementAttributeValueChanged(element) {\n        const [unmatchedTokens, matchedTokens] = this.refreshTokensForElement(element);\n        this.tokensUnmatched(unmatchedTokens);\n        this.tokensMatched(matchedTokens);\n    }\n    elementUnmatchedAttribute(element) {\n        this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n    }\n    tokensMatched(tokens) {\n        tokens.forEach((token) => this.tokenMatched(token));\n    }\n    tokensUnmatched(tokens) {\n        tokens.forEach((token) => this.tokenUnmatched(token));\n    }\n    tokenMatched(token) {\n        this.delegate.tokenMatched(token);\n        this.tokensByElement.add(token.element, token);\n    }\n    tokenUnmatched(token) {\n        this.delegate.tokenUnmatched(token);\n        this.tokensByElement.delete(token.element, token);\n    }\n    refreshTokensForElement(element) {\n        const previousTokens = this.tokensByElement.getValuesForKey(element);\n        const currentTokens = this.readTokensForElement(element);\n        const firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(([previousToken, currentToken]) => !tokensAreEqual(previousToken, currentToken));\n        if (firstDifferingIndex == -1) {\n            return [[], []];\n        }\n        else {\n            return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n        }\n    }\n    readTokensForElement(element) {\n        const attributeName = this.attributeName;\n        const tokenString = element.getAttribute(attributeName) || \"\";\n        return parseTokenString(tokenString, element, attributeName);\n    }\n}\nfunction parseTokenString(tokenString, element, attributeName) {\n    return tokenString\n        .trim()\n        .split(/\\s+/)\n        .filter((content) => content.length)\n        .map((content, index) => ({ element, attributeName, content, index }));\n}\nfunction zip(left, right) {\n    const length = Math.max(left.length, right.length);\n    return Array.from({ length }, (_, index) => [left[index], right[index]]);\n}\nfunction tokensAreEqual(left, right) {\n    return left && right && left.index == right.index && left.content == right.content;\n}\n\nclass ValueListObserver {\n    constructor(element, attributeName, delegate) {\n        this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n        this.delegate = delegate;\n        this.parseResultsByToken = new WeakMap();\n        this.valuesByTokenByElement = new WeakMap();\n    }\n    get started() {\n        return this.tokenListObserver.started;\n    }\n    start() {\n        this.tokenListObserver.start();\n    }\n    stop() {\n        this.tokenListObserver.stop();\n    }\n    refresh() {\n        this.tokenListObserver.refresh();\n    }\n    get element() {\n        return this.tokenListObserver.element;\n    }\n    get attributeName() {\n        return this.tokenListObserver.attributeName;\n    }\n    tokenMatched(token) {\n        const { element } = token;\n        const { value } = this.fetchParseResultForToken(token);\n        if (value) {\n            this.fetchValuesByTokenForElement(element).set(token, value);\n            this.delegate.elementMatchedValue(element, value);\n        }\n    }\n    tokenUnmatched(token) {\n        const { element } = token;\n        const { value } = this.fetchParseResultForToken(token);\n        if (value) {\n            this.fetchValuesByTokenForElement(element).delete(token);\n            this.delegate.elementUnmatchedValue(element, value);\n        }\n    }\n    fetchParseResultForToken(token) {\n        let parseResult = this.parseResultsByToken.get(token);\n        if (!parseResult) {\n            parseResult = this.parseToken(token);\n            this.parseResultsByToken.set(token, parseResult);\n        }\n        return parseResult;\n    }\n    fetchValuesByTokenForElement(element) {\n        let valuesByToken = this.valuesByTokenByElement.get(element);\n        if (!valuesByToken) {\n            valuesByToken = new Map();\n            this.valuesByTokenByElement.set(element, valuesByToken);\n        }\n        return valuesByToken;\n    }\n    parseToken(token) {\n        try {\n            const value = this.delegate.parseValueForToken(token);\n            return { value };\n        }\n        catch (error) {\n            return { error };\n        }\n    }\n}\n\nclass BindingObserver {\n    constructor(context, delegate) {\n        this.context = context;\n        this.delegate = delegate;\n        this.bindingsByAction = new Map();\n    }\n    start() {\n        if (!this.valueListObserver) {\n            this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n            this.valueListObserver.start();\n        }\n    }\n    stop() {\n        if (this.valueListObserver) {\n            this.valueListObserver.stop();\n            delete this.valueListObserver;\n            this.disconnectAllActions();\n        }\n    }\n    get element() {\n        return this.context.element;\n    }\n    get identifier() {\n        return this.context.identifier;\n    }\n    get actionAttribute() {\n        return this.schema.actionAttribute;\n    }\n    get schema() {\n        return this.context.schema;\n    }\n    get bindings() {\n        return Array.from(this.bindingsByAction.values());\n    }\n    connectAction(action) {\n        const binding = new Binding(this.context, action);\n        this.bindingsByAction.set(action, binding);\n        this.delegate.bindingConnected(binding);\n    }\n    disconnectAction(action) {\n        const binding = this.bindingsByAction.get(action);\n        if (binding) {\n            this.bindingsByAction.delete(action);\n            this.delegate.bindingDisconnected(binding);\n        }\n    }\n    disconnectAllActions() {\n        this.bindings.forEach((binding) => this.delegate.bindingDisconnected(binding, true));\n        this.bindingsByAction.clear();\n    }\n    parseValueForToken(token) {\n        const action = Action.forToken(token, this.schema);\n        if (action.identifier == this.identifier) {\n            return action;\n        }\n    }\n    elementMatchedValue(element, action) {\n        this.connectAction(action);\n    }\n    elementUnmatchedValue(element, action) {\n        this.disconnectAction(action);\n    }\n}\n\nclass ValueObserver {\n    constructor(context, receiver) {\n        this.context = context;\n        this.receiver = receiver;\n        this.stringMapObserver = new StringMapObserver(this.element, this);\n        this.valueDescriptorMap = this.controller.valueDescriptorMap;\n    }\n    start() {\n        this.stringMapObserver.start();\n        this.invokeChangedCallbacksForDefaultValues();\n    }\n    stop() {\n        this.stringMapObserver.stop();\n    }\n    get element() {\n        return this.context.element;\n    }\n    get controller() {\n        return this.context.controller;\n    }\n    getStringMapKeyForAttribute(attributeName) {\n        if (attributeName in this.valueDescriptorMap) {\n            return this.valueDescriptorMap[attributeName].name;\n        }\n    }\n    stringMapKeyAdded(key, attributeName) {\n        const descriptor = this.valueDescriptorMap[attributeName];\n        if (!this.hasValue(key)) {\n            this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n        }\n    }\n    stringMapValueChanged(value, name, oldValue) {\n        const descriptor = this.valueDescriptorNameMap[name];\n        if (value === null)\n            return;\n        if (oldValue === null) {\n            oldValue = descriptor.writer(descriptor.defaultValue);\n        }\n        this.invokeChangedCallback(name, value, oldValue);\n    }\n    stringMapKeyRemoved(key, attributeName, oldValue) {\n        const descriptor = this.valueDescriptorNameMap[key];\n        if (this.hasValue(key)) {\n            this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n        }\n        else {\n            this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n        }\n    }\n    invokeChangedCallbacksForDefaultValues() {\n        for (const { key, name, defaultValue, writer } of this.valueDescriptors) {\n            if (defaultValue != undefined && !this.controller.data.has(key)) {\n                this.invokeChangedCallback(name, writer(defaultValue), undefined);\n            }\n        }\n    }\n    invokeChangedCallback(name, rawValue, rawOldValue) {\n        const changedMethodName = `${name}Changed`;\n        const changedMethod = this.receiver[changedMethodName];\n        if (typeof changedMethod == \"function\") {\n            const descriptor = this.valueDescriptorNameMap[name];\n            try {\n                const value = descriptor.reader(rawValue);\n                let oldValue = rawOldValue;\n                if (rawOldValue) {\n                    oldValue = descriptor.reader(rawOldValue);\n                }\n                changedMethod.call(this.receiver, value, oldValue);\n            }\n            catch (error) {\n                if (error instanceof TypeError) {\n                    error.message = `Stimulus Value \"${this.context.identifier}.${descriptor.name}\" - ${error.message}`;\n                }\n                throw error;\n            }\n        }\n    }\n    get valueDescriptors() {\n        const { valueDescriptorMap } = this;\n        return Object.keys(valueDescriptorMap).map((key) => valueDescriptorMap[key]);\n    }\n    get valueDescriptorNameMap() {\n        const descriptors = {};\n        Object.keys(this.valueDescriptorMap).forEach((key) => {\n            const descriptor = this.valueDescriptorMap[key];\n            descriptors[descriptor.name] = descriptor;\n        });\n        return descriptors;\n    }\n    hasValue(attributeName) {\n        const descriptor = this.valueDescriptorNameMap[attributeName];\n        const hasMethodName = `has${capitalize(descriptor.name)}`;\n        return this.receiver[hasMethodName];\n    }\n}\n\nclass TargetObserver {\n    constructor(context, delegate) {\n        this.context = context;\n        this.delegate = delegate;\n        this.targetsByName = new Multimap();\n    }\n    start() {\n        if (!this.tokenListObserver) {\n            this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n            this.tokenListObserver.start();\n        }\n    }\n    stop() {\n        if (this.tokenListObserver) {\n            this.disconnectAllTargets();\n            this.tokenListObserver.stop();\n            delete this.tokenListObserver;\n        }\n    }\n    tokenMatched({ element, content: name }) {\n        if (this.scope.containsElement(element)) {\n            this.connectTarget(element, name);\n        }\n    }\n    tokenUnmatched({ element, content: name }) {\n        this.disconnectTarget(element, name);\n    }\n    connectTarget(element, name) {\n        var _a;\n        if (!this.targetsByName.has(name, element)) {\n            this.targetsByName.add(name, element);\n            (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetConnected(element, name));\n        }\n    }\n    disconnectTarget(element, name) {\n        var _a;\n        if (this.targetsByName.has(name, element)) {\n            this.targetsByName.delete(name, element);\n            (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetDisconnected(element, name));\n        }\n    }\n    disconnectAllTargets() {\n        for (const name of this.targetsByName.keys) {\n            for (const element of this.targetsByName.getValuesForKey(name)) {\n                this.disconnectTarget(element, name);\n            }\n        }\n    }\n    get attributeName() {\n        return `data-${this.context.identifier}-target`;\n    }\n    get element() {\n        return this.context.element;\n    }\n    get scope() {\n        return this.context.scope;\n    }\n}\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n    const ancestors = getAncestorsForConstructor(constructor);\n    return Array.from(ancestors.reduce((values, constructor) => {\n        getOwnStaticArrayValues(constructor, propertyName).forEach((name) => values.add(name));\n        return values;\n    }, new Set()));\n}\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n    const ancestors = getAncestorsForConstructor(constructor);\n    return ancestors.reduce((pairs, constructor) => {\n        pairs.push(...getOwnStaticObjectPairs(constructor, propertyName));\n        return pairs;\n    }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n    const ancestors = [];\n    while (constructor) {\n        ancestors.push(constructor);\n        constructor = Object.getPrototypeOf(constructor);\n    }\n    return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n    const definition = constructor[propertyName];\n    return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n    const definition = constructor[propertyName];\n    return definition ? Object.keys(definition).map((key) => [key, definition[key]]) : [];\n}\n\nclass OutletObserver {\n    constructor(context, delegate) {\n        this.started = false;\n        this.context = context;\n        this.delegate = delegate;\n        this.outletsByName = new Multimap();\n        this.outletElementsByName = new Multimap();\n        this.selectorObserverMap = new Map();\n        this.attributeObserverMap = new Map();\n    }\n    start() {\n        if (!this.started) {\n            this.outletDefinitions.forEach((outletName) => {\n                this.setupSelectorObserverForOutlet(outletName);\n                this.setupAttributeObserverForOutlet(outletName);\n            });\n            this.started = true;\n            this.dependentContexts.forEach((context) => context.refresh());\n        }\n    }\n    refresh() {\n        this.selectorObserverMap.forEach((observer) => observer.refresh());\n        this.attributeObserverMap.forEach((observer) => observer.refresh());\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            this.disconnectAllOutlets();\n            this.stopSelectorObservers();\n            this.stopAttributeObservers();\n        }\n    }\n    stopSelectorObservers() {\n        if (this.selectorObserverMap.size > 0) {\n            this.selectorObserverMap.forEach((observer) => observer.stop());\n            this.selectorObserverMap.clear();\n        }\n    }\n    stopAttributeObservers() {\n        if (this.attributeObserverMap.size > 0) {\n            this.attributeObserverMap.forEach((observer) => observer.stop());\n            this.attributeObserverMap.clear();\n        }\n    }\n    selectorMatched(element, _selector, { outletName }) {\n        const outlet = this.getOutlet(element, outletName);\n        if (outlet) {\n            this.connectOutlet(outlet, element, outletName);\n        }\n    }\n    selectorUnmatched(element, _selector, { outletName }) {\n        const outlet = this.getOutletFromMap(element, outletName);\n        if (outlet) {\n            this.disconnectOutlet(outlet, element, outletName);\n        }\n    }\n    selectorMatchElement(element, { outletName }) {\n        const selector = this.selector(outletName);\n        const hasOutlet = this.hasOutlet(element, outletName);\n        const hasOutletController = element.matches(`[${this.schema.controllerAttribute}~=${outletName}]`);\n        if (selector) {\n            return hasOutlet && hasOutletController && element.matches(selector);\n        }\n        else {\n            return false;\n        }\n    }\n    elementMatchedAttribute(_element, attributeName) {\n        const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n        if (outletName) {\n            this.updateSelectorObserverForOutlet(outletName);\n        }\n    }\n    elementAttributeValueChanged(_element, attributeName) {\n        const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n        if (outletName) {\n            this.updateSelectorObserverForOutlet(outletName);\n        }\n    }\n    elementUnmatchedAttribute(_element, attributeName) {\n        const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n        if (outletName) {\n            this.updateSelectorObserverForOutlet(outletName);\n        }\n    }\n    connectOutlet(outlet, element, outletName) {\n        var _a;\n        if (!this.outletElementsByName.has(outletName, element)) {\n            this.outletsByName.add(outletName, outlet);\n            this.outletElementsByName.add(outletName, element);\n            (_a = this.selectorObserverMap.get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletConnected(outlet, element, outletName));\n        }\n    }\n    disconnectOutlet(outlet, element, outletName) {\n        var _a;\n        if (this.outletElementsByName.has(outletName, element)) {\n            this.outletsByName.delete(outletName, outlet);\n            this.outletElementsByName.delete(outletName, element);\n            (_a = this.selectorObserverMap\n                .get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletDisconnected(outlet, element, outletName));\n        }\n    }\n    disconnectAllOutlets() {\n        for (const outletName of this.outletElementsByName.keys) {\n            for (const element of this.outletElementsByName.getValuesForKey(outletName)) {\n                for (const outlet of this.outletsByName.getValuesForKey(outletName)) {\n                    this.disconnectOutlet(outlet, element, outletName);\n                }\n            }\n        }\n    }\n    updateSelectorObserverForOutlet(outletName) {\n        const observer = this.selectorObserverMap.get(outletName);\n        if (observer) {\n            observer.selector = this.selector(outletName);\n        }\n    }\n    setupSelectorObserverForOutlet(outletName) {\n        const selector = this.selector(outletName);\n        const selectorObserver = new SelectorObserver(document.body, selector, this, { outletName });\n        this.selectorObserverMap.set(outletName, selectorObserver);\n        selectorObserver.start();\n    }\n    setupAttributeObserverForOutlet(outletName) {\n        const attributeName = this.attributeNameForOutletName(outletName);\n        const attributeObserver = new AttributeObserver(this.scope.element, attributeName, this);\n        this.attributeObserverMap.set(outletName, attributeObserver);\n        attributeObserver.start();\n    }\n    selector(outletName) {\n        return this.scope.outlets.getSelectorForOutletName(outletName);\n    }\n    attributeNameForOutletName(outletName) {\n        return this.scope.schema.outletAttributeForScope(this.identifier, outletName);\n    }\n    getOutletNameFromOutletAttributeName(attributeName) {\n        return this.outletDefinitions.find((outletName) => this.attributeNameForOutletName(outletName) === attributeName);\n    }\n    get outletDependencies() {\n        const dependencies = new Multimap();\n        this.router.modules.forEach((module) => {\n            const constructor = module.definition.controllerConstructor;\n            const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n            outlets.forEach((outlet) => dependencies.add(outlet, module.identifier));\n        });\n        return dependencies;\n    }\n    get outletDefinitions() {\n        return this.outletDependencies.getKeysForValue(this.identifier);\n    }\n    get dependentControllerIdentifiers() {\n        return this.outletDependencies.getValuesForKey(this.identifier);\n    }\n    get dependentContexts() {\n        const identifiers = this.dependentControllerIdentifiers;\n        return this.router.contexts.filter((context) => identifiers.includes(context.identifier));\n    }\n    hasOutlet(element, outletName) {\n        return !!this.getOutlet(element, outletName) || !!this.getOutletFromMap(element, outletName);\n    }\n    getOutlet(element, outletName) {\n        return this.application.getControllerForElementAndIdentifier(element, outletName);\n    }\n    getOutletFromMap(element, outletName) {\n        return this.outletsByName.getValuesForKey(outletName).find((outlet) => outlet.element === element);\n    }\n    get scope() {\n        return this.context.scope;\n    }\n    get schema() {\n        return this.context.schema;\n    }\n    get identifier() {\n        return this.context.identifier;\n    }\n    get application() {\n        return this.context.application;\n    }\n    get router() {\n        return this.application.router;\n    }\n}\n\nclass Context {\n    constructor(module, scope) {\n        this.logDebugActivity = (functionName, detail = {}) => {\n            const { identifier, controller, element } = this;\n            detail = Object.assign({ identifier, controller, element }, detail);\n            this.application.logDebugActivity(this.identifier, functionName, detail);\n        };\n        this.module = module;\n        this.scope = scope;\n        this.controller = new module.controllerConstructor(this);\n        this.bindingObserver = new BindingObserver(this, this.dispatcher);\n        this.valueObserver = new ValueObserver(this, this.controller);\n        this.targetObserver = new TargetObserver(this, this);\n        this.outletObserver = new OutletObserver(this, this);\n        try {\n            this.controller.initialize();\n            this.logDebugActivity(\"initialize\");\n        }\n        catch (error) {\n            this.handleError(error, \"initializing controller\");\n        }\n    }\n    connect() {\n        this.bindingObserver.start();\n        this.valueObserver.start();\n        this.targetObserver.start();\n        this.outletObserver.start();\n        try {\n            this.controller.connect();\n            this.logDebugActivity(\"connect\");\n        }\n        catch (error) {\n            this.handleError(error, \"connecting controller\");\n        }\n    }\n    refresh() {\n        this.outletObserver.refresh();\n    }\n    disconnect() {\n        try {\n            this.controller.disconnect();\n            this.logDebugActivity(\"disconnect\");\n        }\n        catch (error) {\n            this.handleError(error, \"disconnecting controller\");\n        }\n        this.outletObserver.stop();\n        this.targetObserver.stop();\n        this.valueObserver.stop();\n        this.bindingObserver.stop();\n    }\n    get application() {\n        return this.module.application;\n    }\n    get identifier() {\n        return this.module.identifier;\n    }\n    get schema() {\n        return this.application.schema;\n    }\n    get dispatcher() {\n        return this.application.dispatcher;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get parentElement() {\n        return this.element.parentElement;\n    }\n    handleError(error, message, detail = {}) {\n        const { identifier, controller, element } = this;\n        detail = Object.assign({ identifier, controller, element }, detail);\n        this.application.handleError(error, `Error ${message}`, detail);\n    }\n    targetConnected(element, name) {\n        this.invokeControllerMethod(`${name}TargetConnected`, element);\n    }\n    targetDisconnected(element, name) {\n        this.invokeControllerMethod(`${name}TargetDisconnected`, element);\n    }\n    outletConnected(outlet, element, name) {\n        this.invokeControllerMethod(`${namespaceCamelize(name)}OutletConnected`, outlet, element);\n    }\n    outletDisconnected(outlet, element, name) {\n        this.invokeControllerMethod(`${namespaceCamelize(name)}OutletDisconnected`, outlet, element);\n    }\n    invokeControllerMethod(methodName, ...args) {\n        const controller = this.controller;\n        if (typeof controller[methodName] == \"function\") {\n            controller[methodName](...args);\n        }\n    }\n}\n\nfunction bless(constructor) {\n    return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n    const shadowConstructor = extend(constructor);\n    const shadowProperties = getShadowProperties(constructor.prototype, properties);\n    Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n    return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n    const blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n    return blessings.reduce((blessedProperties, blessing) => {\n        const properties = blessing(constructor);\n        for (const key in properties) {\n            const descriptor = blessedProperties[key] || {};\n            blessedProperties[key] = Object.assign(descriptor, properties[key]);\n        }\n        return blessedProperties;\n    }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n    return getOwnKeys(properties).reduce((shadowProperties, key) => {\n        const descriptor = getShadowedDescriptor(prototype, properties, key);\n        if (descriptor) {\n            Object.assign(shadowProperties, { [key]: descriptor });\n        }\n        return shadowProperties;\n    }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n    const shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n    const shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n    if (!shadowedByValue) {\n        const descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n        if (shadowingDescriptor) {\n            descriptor.get = shadowingDescriptor.get || descriptor.get;\n            descriptor.set = shadowingDescriptor.set || descriptor.set;\n        }\n        return descriptor;\n    }\n}\nconst getOwnKeys = (() => {\n    if (typeof Object.getOwnPropertySymbols == \"function\") {\n        return (object) => [...Object.getOwnPropertyNames(object), ...Object.getOwnPropertySymbols(object)];\n    }\n    else {\n        return Object.getOwnPropertyNames;\n    }\n})();\nconst extend = (() => {\n    function extendWithReflect(constructor) {\n        function extended() {\n            return Reflect.construct(constructor, arguments, new.target);\n        }\n        extended.prototype = Object.create(constructor.prototype, {\n            constructor: { value: extended },\n        });\n        Reflect.setPrototypeOf(extended, constructor);\n        return extended;\n    }\n    function testReflectExtension() {\n        const a = function () {\n            this.a.call(this);\n        };\n        const b = extendWithReflect(a);\n        b.prototype.a = function () { };\n        return new b();\n    }\n    try {\n        testReflectExtension();\n        return extendWithReflect;\n    }\n    catch (error) {\n        return (constructor) => class extended extends constructor {\n        };\n    }\n})();\n\nfunction blessDefinition(definition) {\n    return {\n        identifier: definition.identifier,\n        controllerConstructor: bless(definition.controllerConstructor),\n    };\n}\n\nclass Module {\n    constructor(application, definition) {\n        this.application = application;\n        this.definition = blessDefinition(definition);\n        this.contextsByScope = new WeakMap();\n        this.connectedContexts = new Set();\n    }\n    get identifier() {\n        return this.definition.identifier;\n    }\n    get controllerConstructor() {\n        return this.definition.controllerConstructor;\n    }\n    get contexts() {\n        return Array.from(this.connectedContexts);\n    }\n    connectContextForScope(scope) {\n        const context = this.fetchContextForScope(scope);\n        this.connectedContexts.add(context);\n        context.connect();\n    }\n    disconnectContextForScope(scope) {\n        const context = this.contextsByScope.get(scope);\n        if (context) {\n            this.connectedContexts.delete(context);\n            context.disconnect();\n        }\n    }\n    fetchContextForScope(scope) {\n        let context = this.contextsByScope.get(scope);\n        if (!context) {\n            context = new Context(this, scope);\n            this.contextsByScope.set(scope, context);\n        }\n        return context;\n    }\n}\n\nclass ClassMap {\n    constructor(scope) {\n        this.scope = scope;\n    }\n    has(name) {\n        return this.data.has(this.getDataKey(name));\n    }\n    get(name) {\n        return this.getAll(name)[0];\n    }\n    getAll(name) {\n        const tokenString = this.data.get(this.getDataKey(name)) || \"\";\n        return tokenize(tokenString);\n    }\n    getAttributeName(name) {\n        return this.data.getAttributeNameForKey(this.getDataKey(name));\n    }\n    getDataKey(name) {\n        return `${name}-class`;\n    }\n    get data() {\n        return this.scope.data;\n    }\n}\n\nclass DataMap {\n    constructor(scope) {\n        this.scope = scope;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get(key) {\n        const name = this.getAttributeNameForKey(key);\n        return this.element.getAttribute(name);\n    }\n    set(key, value) {\n        const name = this.getAttributeNameForKey(key);\n        this.element.setAttribute(name, value);\n        return this.get(key);\n    }\n    has(key) {\n        const name = this.getAttributeNameForKey(key);\n        return this.element.hasAttribute(name);\n    }\n    delete(key) {\n        if (this.has(key)) {\n            const name = this.getAttributeNameForKey(key);\n            this.element.removeAttribute(name);\n            return true;\n        }\n        else {\n            return false;\n        }\n    }\n    getAttributeNameForKey(key) {\n        return `data-${this.identifier}-${dasherize(key)}`;\n    }\n}\n\nclass Guide {\n    constructor(logger) {\n        this.warnedKeysByObject = new WeakMap();\n        this.logger = logger;\n    }\n    warn(object, key, message) {\n        let warnedKeys = this.warnedKeysByObject.get(object);\n        if (!warnedKeys) {\n            warnedKeys = new Set();\n            this.warnedKeysByObject.set(object, warnedKeys);\n        }\n        if (!warnedKeys.has(key)) {\n            warnedKeys.add(key);\n            this.logger.warn(message, object);\n        }\n    }\n}\n\nfunction attributeValueContainsToken(attributeName, token) {\n    return `[${attributeName}~=\"${token}\"]`;\n}\n\nclass TargetSet {\n    constructor(scope) {\n        this.scope = scope;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get schema() {\n        return this.scope.schema;\n    }\n    has(targetName) {\n        return this.find(targetName) != null;\n    }\n    find(...targetNames) {\n        return targetNames.reduce((target, targetName) => target || this.findTarget(targetName) || this.findLegacyTarget(targetName), undefined);\n    }\n    findAll(...targetNames) {\n        return targetNames.reduce((targets, targetName) => [\n            ...targets,\n            ...this.findAllTargets(targetName),\n            ...this.findAllLegacyTargets(targetName),\n        ], []);\n    }\n    findTarget(targetName) {\n        const selector = this.getSelectorForTargetName(targetName);\n        return this.scope.findElement(selector);\n    }\n    findAllTargets(targetName) {\n        const selector = this.getSelectorForTargetName(targetName);\n        return this.scope.findAllElements(selector);\n    }\n    getSelectorForTargetName(targetName) {\n        const attributeName = this.schema.targetAttributeForScope(this.identifier);\n        return attributeValueContainsToken(attributeName, targetName);\n    }\n    findLegacyTarget(targetName) {\n        const selector = this.getLegacySelectorForTargetName(targetName);\n        return this.deprecate(this.scope.findElement(selector), targetName);\n    }\n    findAllLegacyTargets(targetName) {\n        const selector = this.getLegacySelectorForTargetName(targetName);\n        return this.scope.findAllElements(selector).map((element) => this.deprecate(element, targetName));\n    }\n    getLegacySelectorForTargetName(targetName) {\n        const targetDescriptor = `${this.identifier}.${targetName}`;\n        return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n    }\n    deprecate(element, targetName) {\n        if (element) {\n            const { identifier } = this;\n            const attributeName = this.schema.targetAttribute;\n            const revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n            this.guide.warn(element, `target:${targetName}`, `Please replace ${attributeName}=\"${identifier}.${targetName}\" with ${revisedAttributeName}=\"${targetName}\". ` +\n                `The ${attributeName} attribute is deprecated and will be removed in a future version of Stimulus.`);\n        }\n        return element;\n    }\n    get guide() {\n        return this.scope.guide;\n    }\n}\n\nclass OutletSet {\n    constructor(scope, controllerElement) {\n        this.scope = scope;\n        this.controllerElement = controllerElement;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get schema() {\n        return this.scope.schema;\n    }\n    has(outletName) {\n        return this.find(outletName) != null;\n    }\n    find(...outletNames) {\n        return outletNames.reduce((outlet, outletName) => outlet || this.findOutlet(outletName), undefined);\n    }\n    findAll(...outletNames) {\n        return outletNames.reduce((outlets, outletName) => [...outlets, ...this.findAllOutlets(outletName)], []);\n    }\n    getSelectorForOutletName(outletName) {\n        const attributeName = this.schema.outletAttributeForScope(this.identifier, outletName);\n        return this.controllerElement.getAttribute(attributeName);\n    }\n    findOutlet(outletName) {\n        const selector = this.getSelectorForOutletName(outletName);\n        if (selector)\n            return this.findElement(selector, outletName);\n    }\n    findAllOutlets(outletName) {\n        const selector = this.getSelectorForOutletName(outletName);\n        return selector ? this.findAllElements(selector, outletName) : [];\n    }\n    findElement(selector, outletName) {\n        const elements = this.scope.queryElements(selector);\n        return elements.filter((element) => this.matchesElement(element, selector, outletName))[0];\n    }\n    findAllElements(selector, outletName) {\n        const elements = this.scope.queryElements(selector);\n        return elements.filter((element) => this.matchesElement(element, selector, outletName));\n    }\n    matchesElement(element, selector, outletName) {\n        const controllerAttribute = element.getAttribute(this.scope.schema.controllerAttribute) || \"\";\n        return element.matches(selector) && controllerAttribute.split(\" \").includes(outletName);\n    }\n}\n\nclass Scope {\n    constructor(schema, element, identifier, logger) {\n        this.targets = new TargetSet(this);\n        this.classes = new ClassMap(this);\n        this.data = new DataMap(this);\n        this.containsElement = (element) => {\n            return element.closest(this.controllerSelector) === this.element;\n        };\n        this.schema = schema;\n        this.element = element;\n        this.identifier = identifier;\n        this.guide = new Guide(logger);\n        this.outlets = new OutletSet(this.documentScope, element);\n    }\n    findElement(selector) {\n        return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n    }\n    findAllElements(selector) {\n        return [\n            ...(this.element.matches(selector) ? [this.element] : []),\n            ...this.queryElements(selector).filter(this.containsElement),\n        ];\n    }\n    queryElements(selector) {\n        return Array.from(this.element.querySelectorAll(selector));\n    }\n    get controllerSelector() {\n        return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n    }\n    get isDocumentScope() {\n        return this.element === document.documentElement;\n    }\n    get documentScope() {\n        return this.isDocumentScope\n            ? this\n            : new Scope(this.schema, document.documentElement, this.identifier, this.guide.logger);\n    }\n}\n\nclass ScopeObserver {\n    constructor(element, schema, delegate) {\n        this.element = element;\n        this.schema = schema;\n        this.delegate = delegate;\n        this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n        this.scopesByIdentifierByElement = new WeakMap();\n        this.scopeReferenceCounts = new WeakMap();\n    }\n    start() {\n        this.valueListObserver.start();\n    }\n    stop() {\n        this.valueListObserver.stop();\n    }\n    get controllerAttribute() {\n        return this.schema.controllerAttribute;\n    }\n    parseValueForToken(token) {\n        const { element, content: identifier } = token;\n        return this.parseValueForElementAndIdentifier(element, identifier);\n    }\n    parseValueForElementAndIdentifier(element, identifier) {\n        const scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n        let scope = scopesByIdentifier.get(identifier);\n        if (!scope) {\n            scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n            scopesByIdentifier.set(identifier, scope);\n        }\n        return scope;\n    }\n    elementMatchedValue(element, value) {\n        const referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n        this.scopeReferenceCounts.set(value, referenceCount);\n        if (referenceCount == 1) {\n            this.delegate.scopeConnected(value);\n        }\n    }\n    elementUnmatchedValue(element, value) {\n        const referenceCount = this.scopeReferenceCounts.get(value);\n        if (referenceCount) {\n            this.scopeReferenceCounts.set(value, referenceCount - 1);\n            if (referenceCount == 1) {\n                this.delegate.scopeDisconnected(value);\n            }\n        }\n    }\n    fetchScopesByIdentifierForElement(element) {\n        let scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n        if (!scopesByIdentifier) {\n            scopesByIdentifier = new Map();\n            this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n        }\n        return scopesByIdentifier;\n    }\n}\n\nclass Router {\n    constructor(application) {\n        this.application = application;\n        this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n        this.scopesByIdentifier = new Multimap();\n        this.modulesByIdentifier = new Map();\n    }\n    get element() {\n        return this.application.element;\n    }\n    get schema() {\n        return this.application.schema;\n    }\n    get logger() {\n        return this.application.logger;\n    }\n    get controllerAttribute() {\n        return this.schema.controllerAttribute;\n    }\n    get modules() {\n        return Array.from(this.modulesByIdentifier.values());\n    }\n    get contexts() {\n        return this.modules.reduce((contexts, module) => contexts.concat(module.contexts), []);\n    }\n    start() {\n        this.scopeObserver.start();\n    }\n    stop() {\n        this.scopeObserver.stop();\n    }\n    loadDefinition(definition) {\n        this.unloadIdentifier(definition.identifier);\n        const module = new Module(this.application, definition);\n        this.connectModule(module);\n        const afterLoad = definition.controllerConstructor.afterLoad;\n        if (afterLoad) {\n            afterLoad.call(definition.controllerConstructor, definition.identifier, this.application);\n        }\n    }\n    unloadIdentifier(identifier) {\n        const module = this.modulesByIdentifier.get(identifier);\n        if (module) {\n            this.disconnectModule(module);\n        }\n    }\n    getContextForElementAndIdentifier(element, identifier) {\n        const module = this.modulesByIdentifier.get(identifier);\n        if (module) {\n            return module.contexts.find((context) => context.element == element);\n        }\n    }\n    proposeToConnectScopeForElementAndIdentifier(element, identifier) {\n        const scope = this.scopeObserver.parseValueForElementAndIdentifier(element, identifier);\n        if (scope) {\n            this.scopeObserver.elementMatchedValue(scope.element, scope);\n        }\n        else {\n            console.error(`Couldn't find or create scope for identifier: \"${identifier}\" and element:`, element);\n        }\n    }\n    handleError(error, message, detail) {\n        this.application.handleError(error, message, detail);\n    }\n    createScopeForElementAndIdentifier(element, identifier) {\n        return new Scope(this.schema, element, identifier, this.logger);\n    }\n    scopeConnected(scope) {\n        this.scopesByIdentifier.add(scope.identifier, scope);\n        const module = this.modulesByIdentifier.get(scope.identifier);\n        if (module) {\n            module.connectContextForScope(scope);\n        }\n    }\n    scopeDisconnected(scope) {\n        this.scopesByIdentifier.delete(scope.identifier, scope);\n        const module = this.modulesByIdentifier.get(scope.identifier);\n        if (module) {\n            module.disconnectContextForScope(scope);\n        }\n    }\n    connectModule(module) {\n        this.modulesByIdentifier.set(module.identifier, module);\n        const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n        scopes.forEach((scope) => module.connectContextForScope(scope));\n    }\n    disconnectModule(module) {\n        this.modulesByIdentifier.delete(module.identifier);\n        const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n        scopes.forEach((scope) => module.disconnectContextForScope(scope));\n    }\n}\n\nconst defaultSchema = {\n    controllerAttribute: \"data-controller\",\n    actionAttribute: \"data-action\",\n    targetAttribute: \"data-target\",\n    targetAttributeForScope: (identifier) => `data-${identifier}-target`,\n    outletAttributeForScope: (identifier, outlet) => `data-${identifier}-${outlet}-outlet`,\n    keyMappings: Object.assign(Object.assign({ enter: \"Enter\", tab: \"Tab\", esc: \"Escape\", space: \" \", up: \"ArrowUp\", down: \"ArrowDown\", left: \"ArrowLeft\", right: \"ArrowRight\", home: \"Home\", end: \"End\", page_up: \"PageUp\", page_down: \"PageDown\" }, objectFromEntries(\"abcdefghijklmnopqrstuvwxyz\".split(\"\").map((c) => [c, c]))), objectFromEntries(\"0123456789\".split(\"\").map((n) => [n, n]))),\n};\nfunction objectFromEntries(array) {\n    return array.reduce((memo, [k, v]) => (Object.assign(Object.assign({}, memo), { [k]: v })), {});\n}\n\nclass Application {\n    constructor(element = document.documentElement, schema = defaultSchema) {\n        this.logger = console;\n        this.debug = false;\n        this.logDebugActivity = (identifier, functionName, detail = {}) => {\n            if (this.debug) {\n                this.logFormattedMessage(identifier, functionName, detail);\n            }\n        };\n        this.element = element;\n        this.schema = schema;\n        this.dispatcher = new Dispatcher(this);\n        this.router = new Router(this);\n        this.actionDescriptorFilters = Object.assign({}, defaultActionDescriptorFilters);\n    }\n    static start(element, schema) {\n        const application = new this(element, schema);\n        application.start();\n        return application;\n    }\n    async start() {\n        await domReady();\n        this.logDebugActivity(\"application\", \"starting\");\n        this.dispatcher.start();\n        this.router.start();\n        this.logDebugActivity(\"application\", \"start\");\n    }\n    stop() {\n        this.logDebugActivity(\"application\", \"stopping\");\n        this.dispatcher.stop();\n        this.router.stop();\n        this.logDebugActivity(\"application\", \"stop\");\n    }\n    register(identifier, controllerConstructor) {\n        this.load({ identifier, controllerConstructor });\n    }\n    registerActionOption(name, filter) {\n        this.actionDescriptorFilters[name] = filter;\n    }\n    load(head, ...rest) {\n        const definitions = Array.isArray(head) ? head : [head, ...rest];\n        definitions.forEach((definition) => {\n            if (definition.controllerConstructor.shouldLoad) {\n                this.router.loadDefinition(definition);\n            }\n        });\n    }\n    unload(head, ...rest) {\n        const identifiers = Array.isArray(head) ? head : [head, ...rest];\n        identifiers.forEach((identifier) => this.router.unloadIdentifier(identifier));\n    }\n    get controllers() {\n        return this.router.contexts.map((context) => context.controller);\n    }\n    getControllerForElementAndIdentifier(element, identifier) {\n        const context = this.router.getContextForElementAndIdentifier(element, identifier);\n        return context ? context.controller : null;\n    }\n    handleError(error, message, detail) {\n        var _a;\n        this.logger.error(`%s\\n\\n%o\\n\\n%o`, message, error, detail);\n        (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n    }\n    logFormattedMessage(identifier, functionName, detail = {}) {\n        detail = Object.assign({ application: this }, detail);\n        this.logger.groupCollapsed(`${identifier} #${functionName}`);\n        this.logger.log(\"details:\", Object.assign({}, detail));\n        this.logger.groupEnd();\n    }\n}\nfunction domReady() {\n    return new Promise((resolve) => {\n        if (document.readyState == \"loading\") {\n            document.addEventListener(\"DOMContentLoaded\", () => resolve());\n        }\n        else {\n            resolve();\n        }\n    });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n    const classes = readInheritableStaticArrayValues(constructor, \"classes\");\n    return classes.reduce((properties, classDefinition) => {\n        return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n    }, {});\n}\nfunction propertiesForClassDefinition(key) {\n    return {\n        [`${key}Class`]: {\n            get() {\n                const { classes } = this;\n                if (classes.has(key)) {\n                    return classes.get(key);\n                }\n                else {\n                    const attribute = classes.getAttributeName(key);\n                    throw new Error(`Missing attribute \"${attribute}\"`);\n                }\n            },\n        },\n        [`${key}Classes`]: {\n            get() {\n                return this.classes.getAll(key);\n            },\n        },\n        [`has${capitalize(key)}Class`]: {\n            get() {\n                return this.classes.has(key);\n            },\n        },\n    };\n}\n\nfunction OutletPropertiesBlessing(constructor) {\n    const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n    return outlets.reduce((properties, outletDefinition) => {\n        return Object.assign(properties, propertiesForOutletDefinition(outletDefinition));\n    }, {});\n}\nfunction getOutletController(controller, element, identifier) {\n    return controller.application.getControllerForElementAndIdentifier(element, identifier);\n}\nfunction getControllerAndEnsureConnectedScope(controller, element, outletName) {\n    let outletController = getOutletController(controller, element, outletName);\n    if (outletController)\n        return outletController;\n    controller.application.router.proposeToConnectScopeForElementAndIdentifier(element, outletName);\n    outletController = getOutletController(controller, element, outletName);\n    if (outletController)\n        return outletController;\n}\nfunction propertiesForOutletDefinition(name) {\n    const camelizedName = namespaceCamelize(name);\n    return {\n        [`${camelizedName}Outlet`]: {\n            get() {\n                const outletElement = this.outlets.find(name);\n                const selector = this.outlets.getSelectorForOutletName(name);\n                if (outletElement) {\n                    const outletController = getControllerAndEnsureConnectedScope(this, outletElement, name);\n                    if (outletController)\n                        return outletController;\n                    throw new Error(`The provided outlet element is missing an outlet controller \"${name}\" instance for host controller \"${this.identifier}\"`);\n                }\n                throw new Error(`Missing outlet element \"${name}\" for host controller \"${this.identifier}\". Stimulus couldn't find a matching outlet element using selector \"${selector}\".`);\n            },\n        },\n        [`${camelizedName}Outlets`]: {\n            get() {\n                const outlets = this.outlets.findAll(name);\n                if (outlets.length > 0) {\n                    return outlets\n                        .map((outletElement) => {\n                        const outletController = getControllerAndEnsureConnectedScope(this, outletElement, name);\n                        if (outletController)\n                            return outletController;\n                        console.warn(`The provided outlet element is missing an outlet controller \"${name}\" instance for host controller \"${this.identifier}\"`, outletElement);\n                    })\n                        .filter((controller) => controller);\n                }\n                return [];\n            },\n        },\n        [`${camelizedName}OutletElement`]: {\n            get() {\n                const outletElement = this.outlets.find(name);\n                const selector = this.outlets.getSelectorForOutletName(name);\n                if (outletElement) {\n                    return outletElement;\n                }\n                else {\n                    throw new Error(`Missing outlet element \"${name}\" for host controller \"${this.identifier}\". Stimulus couldn't find a matching outlet element using selector \"${selector}\".`);\n                }\n            },\n        },\n        [`${camelizedName}OutletElements`]: {\n            get() {\n                return this.outlets.findAll(name);\n            },\n        },\n        [`has${capitalize(camelizedName)}Outlet`]: {\n            get() {\n                return this.outlets.has(name);\n            },\n        },\n    };\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n    const targets = readInheritableStaticArrayValues(constructor, \"targets\");\n    return targets.reduce((properties, targetDefinition) => {\n        return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n    }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n    return {\n        [`${name}Target`]: {\n            get() {\n                const target = this.targets.find(name);\n                if (target) {\n                    return target;\n                }\n                else {\n                    throw new Error(`Missing target element \"${name}\" for \"${this.identifier}\" controller`);\n                }\n            },\n        },\n        [`${name}Targets`]: {\n            get() {\n                return this.targets.findAll(name);\n            },\n        },\n        [`has${capitalize(name)}Target`]: {\n            get() {\n                return this.targets.has(name);\n            },\n        },\n    };\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n    const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n    const propertyDescriptorMap = {\n        valueDescriptorMap: {\n            get() {\n                return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {\n                    const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair, this.identifier);\n                    const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);\n                    return Object.assign(result, { [attributeName]: valueDescriptor });\n                }, {});\n            },\n        },\n    };\n    return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {\n        return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n    }, propertyDescriptorMap);\n}\nfunction propertiesForValueDefinitionPair(valueDefinitionPair, controller) {\n    const definition = parseValueDefinitionPair(valueDefinitionPair, controller);\n    const { key, name, reader: read, writer: write } = definition;\n    return {\n        [name]: {\n            get() {\n                const value = this.data.get(key);\n                if (value !== null) {\n                    return read(value);\n                }\n                else {\n                    return definition.defaultValue;\n                }\n            },\n            set(value) {\n                if (value === undefined) {\n                    this.data.delete(key);\n                }\n                else {\n                    this.data.set(key, write(value));\n                }\n            },\n        },\n        [`has${capitalize(name)}`]: {\n            get() {\n                return this.data.has(key) || definition.hasCustomDefaultValue;\n            },\n        },\n    };\n}\nfunction parseValueDefinitionPair([token, typeDefinition], controller) {\n    return valueDescriptorForTokenAndTypeDefinition({\n        controller,\n        token,\n        typeDefinition,\n    });\n}\nfunction parseValueTypeConstant(constant) {\n    switch (constant) {\n        case Array:\n            return \"array\";\n        case Boolean:\n            return \"boolean\";\n        case Number:\n            return \"number\";\n        case Object:\n            return \"object\";\n        case String:\n            return \"string\";\n    }\n}\nfunction parseValueTypeDefault(defaultValue) {\n    switch (typeof defaultValue) {\n        case \"boolean\":\n            return \"boolean\";\n        case \"number\":\n            return \"number\";\n        case \"string\":\n            return \"string\";\n    }\n    if (Array.isArray(defaultValue))\n        return \"array\";\n    if (Object.prototype.toString.call(defaultValue) === \"[object Object]\")\n        return \"object\";\n}\nfunction parseValueTypeObject(payload) {\n    const { controller, token, typeObject } = payload;\n    const hasType = isSomething(typeObject.type);\n    const hasDefault = isSomething(typeObject.default);\n    const fullObject = hasType && hasDefault;\n    const onlyType = hasType && !hasDefault;\n    const onlyDefault = !hasType && hasDefault;\n    const typeFromObject = parseValueTypeConstant(typeObject.type);\n    const typeFromDefaultValue = parseValueTypeDefault(payload.typeObject.default);\n    if (onlyType)\n        return typeFromObject;\n    if (onlyDefault)\n        return typeFromDefaultValue;\n    if (typeFromObject !== typeFromDefaultValue) {\n        const propertyPath = controller ? `${controller}.${token}` : token;\n        throw new Error(`The specified default value for the Stimulus Value \"${propertyPath}\" must match the defined type \"${typeFromObject}\". The provided default value of \"${typeObject.default}\" is of type \"${typeFromDefaultValue}\".`);\n    }\n    if (fullObject)\n        return typeFromObject;\n}\nfunction parseValueTypeDefinition(payload) {\n    const { controller, token, typeDefinition } = payload;\n    const typeObject = { controller, token, typeObject: typeDefinition };\n    const typeFromObject = parseValueTypeObject(typeObject);\n    const typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n    const typeFromConstant = parseValueTypeConstant(typeDefinition);\n    const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n    if (type)\n        return type;\n    const propertyPath = controller ? `${controller}.${typeDefinition}` : token;\n    throw new Error(`Unknown value type \"${propertyPath}\" for \"${token}\" value`);\n}\nfunction defaultValueForDefinition(typeDefinition) {\n    const constant = parseValueTypeConstant(typeDefinition);\n    if (constant)\n        return defaultValuesByType[constant];\n    const hasDefault = hasProperty(typeDefinition, \"default\");\n    const hasType = hasProperty(typeDefinition, \"type\");\n    const typeObject = typeDefinition;\n    if (hasDefault)\n        return typeObject.default;\n    if (hasType) {\n        const { type } = typeObject;\n        const constantFromType = parseValueTypeConstant(type);\n        if (constantFromType)\n            return defaultValuesByType[constantFromType];\n    }\n    return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(payload) {\n    const { token, typeDefinition } = payload;\n    const key = `${dasherize(token)}-value`;\n    const type = parseValueTypeDefinition(payload);\n    return {\n        type,\n        key,\n        name: camelize(key),\n        get defaultValue() {\n            return defaultValueForDefinition(typeDefinition);\n        },\n        get hasCustomDefaultValue() {\n            return parseValueTypeDefault(typeDefinition) !== undefined;\n        },\n        reader: readers[type],\n        writer: writers[type] || writers.default,\n    };\n}\nconst defaultValuesByType = {\n    get array() {\n        return [];\n    },\n    boolean: false,\n    number: 0,\n    get object() {\n        return {};\n    },\n    string: \"\",\n};\nconst readers = {\n    array(value) {\n        const array = JSON.parse(value);\n        if (!Array.isArray(array)) {\n            throw new TypeError(`expected value of type \"array\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(array)}\"`);\n        }\n        return array;\n    },\n    boolean(value) {\n        return !(value == \"0\" || String(value).toLowerCase() == \"false\");\n    },\n    number(value) {\n        return Number(value.replace(/_/g, \"\"));\n    },\n    object(value) {\n        const object = JSON.parse(value);\n        if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n            throw new TypeError(`expected value of type \"object\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(object)}\"`);\n        }\n        return object;\n    },\n    string(value) {\n        return value;\n    },\n};\nconst writers = {\n    default: writeString,\n    array: writeJSON,\n    object: writeJSON,\n};\nfunction writeJSON(value) {\n    return JSON.stringify(value);\n}\nfunction writeString(value) {\n    return `${value}`;\n}\n\nclass Controller {\n    constructor(context) {\n        this.context = context;\n    }\n    static get shouldLoad() {\n        return true;\n    }\n    static afterLoad(_identifier, _application) {\n        return;\n    }\n    get application() {\n        return this.context.application;\n    }\n    get scope() {\n        return this.context.scope;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get targets() {\n        return this.scope.targets;\n    }\n    get outlets() {\n        return this.scope.outlets;\n    }\n    get classes() {\n        return this.scope.classes;\n    }\n    get data() {\n        return this.scope.data;\n    }\n    initialize() {\n    }\n    connect() {\n    }\n    disconnect() {\n    }\n    dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true, } = {}) {\n        const type = prefix ? `${prefix}:${eventName}` : eventName;\n        const event = new CustomEvent(type, { detail, bubbles, cancelable });\n        target.dispatchEvent(event);\n        return event;\n    }\n}\nController.blessings = [\n    ClassPropertiesBlessing,\n    TargetPropertiesBlessing,\n    ValuePropertiesBlessing,\n    OutletPropertiesBlessing,\n];\nController.targets = [];\nController.outlets = [];\nController.values = {};\n\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, SelectorObserver, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, del, fetch, prune };\n", "var adapters = {\n  logger: typeof console !== \"undefined\" ? console : undefined,\n  WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined\n};\n\nvar logger = {\n  log(...messages) {\n    if (this.enabled) {\n      messages.push(Date.now());\n      adapters.logger.log(\"[ActionCable]\", ...messages);\n    }\n  }\n};\n\nconst now = () => (new Date).getTime();\n\nconst secondsSince = time => (now() - time) / 1e3;\n\nclass ConnectionMonitor {\n  constructor(connection) {\n    this.visibilityDidChange = this.visibilityDidChange.bind(this);\n    this.connection = connection;\n    this.reconnectAttempts = 0;\n  }\n  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. stale threshold = ${this.constructor.staleThreshold} s`);\n    }\n  }\n  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  isRunning() {\n    return this.startedAt && !this.stoppedAt;\n  }\n  recordMessage() {\n    this.pingedAt = now();\n  }\n  recordConnect() {\n    this.reconnectAttempts = 0;\n    delete this.disconnectedAt;\n    logger.log(\"ConnectionMonitor recorded connect\");\n  }\n  recordDisconnect() {\n    this.disconnectedAt = now();\n    logger.log(\"ConnectionMonitor recorded disconnect\");\n  }\n  startPolling() {\n    this.stopPolling();\n    this.poll();\n  }\n  stopPolling() {\n    clearTimeout(this.pollTimeout);\n  }\n  poll() {\n    this.pollTimeout = setTimeout((() => {\n      this.reconnectIfStale();\n      this.poll();\n    }), this.getPollInterval());\n  }\n  getPollInterval() {\n    const {staleThreshold: staleThreshold, reconnectionBackoffRate: reconnectionBackoffRate} = this.constructor;\n    const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10));\n    const jitterMax = this.reconnectAttempts === 0 ? 1 : reconnectionBackoffRate;\n    const jitter = jitterMax * Math.random();\n    return staleThreshold * 1e3 * backoff * (1 + jitter);\n  }\n  reconnectIfStale() {\n    if (this.connectionIsStale()) {\n      logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`);\n      this.reconnectAttempts++;\n      if (this.disconnectedRecently()) {\n        logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`);\n      } else {\n        logger.log(\"ConnectionMonitor reopening\");\n        this.connection.reopen();\n      }\n    }\n  }\n  get refreshedAt() {\n    return this.pingedAt ? this.pingedAt : this.startedAt;\n  }\n  connectionIsStale() {\n    return secondsSince(this.refreshedAt) > this.constructor.staleThreshold;\n  }\n  disconnectedRecently() {\n    return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n  }\n  visibilityDidChange() {\n    if (document.visibilityState === \"visible\") {\n      setTimeout((() => {\n        if (this.connectionIsStale() || !this.connection.isOpen()) {\n          logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`);\n          this.connection.reopen();\n        }\n      }), 200);\n    }\n  }\n}\n\nConnectionMonitor.staleThreshold = 6;\n\nConnectionMonitor.reconnectionBackoffRate = .15;\n\nvar 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    remote: \"remote\"\n  },\n  default_mount_path: \"/cable\",\n  protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n};\n\nconst {message_types: message_types, protocols: protocols} = INTERNAL;\n\nconst supportedProtocols = protocols.slice(0, protocols.length - 1);\n\nconst indexOf = [].indexOf;\n\nclass Connection {\n  constructor(consumer) {\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  send(data) {\n    if (this.isOpen()) {\n      this.webSocket.send(JSON.stringify(data));\n      return true;\n    } else {\n      return false;\n    }\n  }\n  open() {\n    if (this.isActive()) {\n      logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`);\n      return false;\n    } else {\n      const socketProtocols = [ ...protocols, ...this.consumer.subprotocols || [] ];\n      logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`);\n      if (this.webSocket) {\n        this.uninstallEventHandlers();\n      }\n      this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols);\n      this.installEventHandlers();\n      this.monitor.start();\n      return true;\n    }\n  }\n  close({allowReconnect: allowReconnect} = {\n    allowReconnect: true\n  }) {\n    if (!allowReconnect) {\n      this.monitor.stop();\n    }\n    if (this.isOpen()) {\n      return this.webSocket.close();\n    }\n  }\n  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  getProtocol() {\n    if (this.webSocket) {\n      return this.webSocket.protocol;\n    }\n  }\n  isOpen() {\n    return this.isState(\"open\");\n  }\n  isActive() {\n    return this.isState(\"open\", \"connecting\");\n  }\n  triedToReconnect() {\n    return this.monitor.reconnectAttempts > 0;\n  }\n  isProtocolSupported() {\n    return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n  }\n  isState(...states) {\n    return indexOf.call(states, this.getState()) >= 0;\n  }\n  getState() {\n    if (this.webSocket) {\n      for (let state in adapters.WebSocket) {\n        if (adapters.WebSocket[state] === this.webSocket.readyState) {\n          return state.toLowerCase();\n        }\n      }\n    }\n    return null;\n  }\n  installEventHandlers() {\n    for (let eventName in this.events) {\n      const handler = this.events[eventName].bind(this);\n      this.webSocket[`on${eventName}`] = handler;\n    }\n  }\n  uninstallEventHandlers() {\n    for (let eventName in this.events) {\n      this.webSocket[`on${eventName}`] = function() {};\n    }\n  }\n}\n\nConnection.reopenDelay = 500;\n\nConnection.prototype.events = {\n  message(event) {\n    if (!this.isProtocolSupported()) {\n      return;\n    }\n    const {identifier: identifier, message: message, reason: reason, reconnect: reconnect, type: type} = JSON.parse(event.data);\n    this.monitor.recordMessage();\n    switch (type) {\n     case message_types.welcome:\n      if (this.triedToReconnect()) {\n        this.reconnectAttempted = true;\n      }\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 null;\n\n     case message_types.confirmation:\n      this.subscriptions.confirmSubscription(identifier);\n      if (this.reconnectAttempted) {\n        this.reconnectAttempted = false;\n        return this.subscriptions.notify(identifier, \"connected\", {\n          reconnected: true\n        });\n      } else {\n        return this.subscriptions.notify(identifier, \"connected\", {\n          reconnected: false\n        });\n      }\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() {\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(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() {\n    logger.log(\"WebSocket onerror event\");\n  }\n};\n\nconst extend = function(object, properties) {\n  if (properties != null) {\n    for (let key in properties) {\n      const value = properties[key];\n      object[key] = value;\n    }\n  }\n  return object;\n};\n\nclass Subscription {\n  constructor(consumer, params = {}, mixin) {\n    this.consumer = consumer;\n    this.identifier = JSON.stringify(params);\n    extend(this, mixin);\n  }\n  perform(action, data = {}) {\n    data.action = action;\n    return this.send(data);\n  }\n  send(data) {\n    return this.consumer.send({\n      command: \"message\",\n      identifier: this.identifier,\n      data: JSON.stringify(data)\n    });\n  }\n  unsubscribe() {\n    return this.consumer.subscriptions.remove(this);\n  }\n}\n\nclass SubscriptionGuarantor {\n  constructor(subscriptions) {\n    this.subscriptions = subscriptions;\n    this.pendingSubscriptions = [];\n  }\n  guarantee(subscription) {\n    if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n      logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`);\n      this.pendingSubscriptions.push(subscription);\n    } else {\n      logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`);\n    }\n    this.startGuaranteeing();\n  }\n  forget(subscription) {\n    logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`);\n    this.pendingSubscriptions = this.pendingSubscriptions.filter((s => s !== subscription));\n  }\n  startGuaranteeing() {\n    this.stopGuaranteeing();\n    this.retrySubscribing();\n  }\n  stopGuaranteeing() {\n    clearTimeout(this.retryTimeout);\n  }\n  retrySubscribing() {\n    this.retryTimeout = setTimeout((() => {\n      if (this.subscriptions && typeof this.subscriptions.subscribe === \"function\") {\n        this.pendingSubscriptions.map((subscription => {\n          logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`);\n          this.subscriptions.subscribe(subscription);\n        }));\n      }\n    }), 500);\n  }\n}\n\nclass Subscriptions {\n  constructor(consumer) {\n    this.consumer = consumer;\n    this.guarantor = new SubscriptionGuarantor(this);\n    this.subscriptions = [];\n  }\n  create(channelName, mixin) {\n    const channel = channelName;\n    const params = typeof channel === \"object\" ? channel : {\n      channel: channel\n    };\n    const subscription = new Subscription(this.consumer, params, mixin);\n    return this.add(subscription);\n  }\n  add(subscription) {\n    this.subscriptions.push(subscription);\n    this.consumer.ensureActiveConnection();\n    this.notify(subscription, \"initialized\");\n    this.subscribe(subscription);\n    return subscription;\n  }\n  remove(subscription) {\n    this.forget(subscription);\n    if (!this.findAll(subscription.identifier).length) {\n      this.sendCommand(subscription, \"unsubscribe\");\n    }\n    return subscription;\n  }\n  reject(identifier) {\n    return this.findAll(identifier).map((subscription => {\n      this.forget(subscription);\n      this.notify(subscription, \"rejected\");\n      return subscription;\n    }));\n  }\n  forget(subscription) {\n    this.guarantor.forget(subscription);\n    this.subscriptions = this.subscriptions.filter((s => s !== subscription));\n    return subscription;\n  }\n  findAll(identifier) {\n    return this.subscriptions.filter((s => s.identifier === identifier));\n  }\n  reload() {\n    return this.subscriptions.map((subscription => this.subscribe(subscription)));\n  }\n  notifyAll(callbackName, ...args) {\n    return this.subscriptions.map((subscription => this.notify(subscription, callbackName, ...args)));\n  }\n  notify(subscription, callbackName, ...args) {\n    let subscriptions;\n    if (typeof subscription === \"string\") {\n      subscriptions = this.findAll(subscription);\n    } else {\n      subscriptions = [ subscription ];\n    }\n    return subscriptions.map((subscription => typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined));\n  }\n  subscribe(subscription) {\n    if (this.sendCommand(subscription, \"subscribe\")) {\n      this.guarantor.guarantee(subscription);\n    }\n  }\n  confirmSubscription(identifier) {\n    logger.log(`Subscription confirmed ${identifier}`);\n    this.findAll(identifier).map((subscription => this.guarantor.forget(subscription)));\n  }\n  sendCommand(subscription, command) {\n    const {identifier: identifier} = subscription;\n    return this.consumer.send({\n      command: command,\n      identifier: identifier\n    });\n  }\n}\n\nclass Consumer {\n  constructor(url) {\n    this._url = url;\n    this.subscriptions = new Subscriptions(this);\n    this.connection = new Connection(this);\n    this.subprotocols = [];\n  }\n  get url() {\n    return createWebSocketURL(this._url);\n  }\n  send(data) {\n    return this.connection.send(data);\n  }\n  connect() {\n    return this.connection.open();\n  }\n  disconnect() {\n    return this.connection.close({\n      allowReconnect: false\n    });\n  }\n  ensureActiveConnection() {\n    if (!this.connection.isActive()) {\n      return this.connection.open();\n    }\n  }\n  addSubProtocol(subprotocol) {\n    this.subprotocols = [ ...this.subprotocols, subprotocol ];\n  }\n}\n\nfunction createWebSocketURL(url) {\n  if (typeof url === \"function\") {\n    url = url();\n  }\n  if (url && !/^wss?:/i.test(url)) {\n    const 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\nfunction createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n  return new Consumer(url);\n}\n\nfunction getConfig(name) {\n  const element = document.head.querySelector(`meta[name='action-cable-${name}']`);\n  if (element) {\n    return element.getAttribute(\"content\");\n  }\n}\n\nexport { Connection, ConnectionMonitor, Consumer, INTERNAL, Subscription, SubscriptionGuarantor, Subscriptions, adapters, createConsumer, createWebSocketURL, getConfig, logger };\n", "/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n", "/**\n * The standard format for an error that is passed to AppSignal.\n */\nexport type SpanError = {\n  name: string\n  message?: string\n  backtrace?: string[]\n}\n\n/**\n * Check if the given object is an error-like object.\n *\n * @param   {Error | T}     error      An `Error` object or an error-like object\n *\n * @return  {boolean}\n */\nexport function isError<T extends Error>(error: Error | T): boolean {\n  return (\n    typeof error === \"object\" && typeof (error as any).message !== \"undefined\"\n  )\n}\n\n/**\n * Get backtrace from an `Error` object, or an error-like object\n *\n * @param   {Error | T}     error      An `Error` object or an error-like object\n *\n * @return  {string[]}                 A backtrace\n */\nexport function getStacktrace<T extends Error>(error: Error | T): string[] {\n  if (\n    typeof (error as any).stacktrace !== \"undefined\" ||\n    typeof (error as any)[\"opera#sourceloc\"] !== \"undefined\"\n  ) {\n    // probably opera\n    const { stacktrace = \"\" } = error as any\n    return stacktrace\n      .split(\"\\n\")\n      .filter((line: string | undefined) => line !== \"\")\n  } else if (error.stack) {\n    // an Error or a plain object that resembles an error\n    const { stack = \"\" } = error\n    return stack.split(\"\\n\").filter(line => line !== \"\")\n  } else {\n    // probably IE9 :(\n    return [\"No stacktrace available\"]\n  }\n}\n", "/**\n * `HashMapValue` is a union type that corresponds to the valid types accepted\n * inside the AppSignal processors `HashMap` type in Rust.\n */\nexport type HashMapValue = string | number | boolean\n\n/**\n * A generic HashMap, with a string as the indexable value.\n */\nexport type HashMap<T> = {\n  [key: string]: T\n}\n\n/**\n * Converts all values in a flat object to a string.\n *\n * Adapted from https://stackoverflow.com/questions/46982698/how-do-i-convert-all-property-values-in-an-object-to-type-string\n */\nexport function toHashMapString(\n  obj?: HashMap<any>\n): HashMap<string> | undefined {\n  if (!obj) return\n\n  const hm: HashMap<string> = {}\n\n  Object.keys(obj).forEach(k => {\n    if (typeof obj[k] === \"object\") {\n      hm[k] = JSON.stringify(obj[k])\n    } else {\n      hm[k] = String(obj[k])\n    }\n  })\n\n  return hm\n}\n\n/**\n * Converts any non-string, boolean or number value in an object to a string\n */\nexport function toHashMap(\n  obj?: HashMap<any>\n): HashMap<HashMapValue> | undefined {\n  if (!obj) return\n\n  const hm: HashMap<HashMapValue> = {}\n\n  Object.keys(obj).forEach(k => {\n    if (\n      typeof obj[k] === \"string\" ||\n      typeof obj[k] === \"boolean\" ||\n      typeof obj[k] === \"number\"\n    ) {\n      hm[k] = obj[k]\n    } else {\n      hm[k] = JSON.stringify(obj[k])\n    }\n  })\n\n  return hm\n}\n", "// Do not touch this file, auto-generated by scripts/create-version\nexport const VERSION = \"1.6.0\"\n", "export class Environment {\n  /**\n   * Serializes the current browser environment into an object.\n   */\n  public static serialize(): { [key: string]: string } {\n    return {\n      transport: this.transport(),\n      origin: this.origin()\n    }\n  }\n\n  /**\n   * Returns the origin of the current context.\n   *\n   * @return  {string}       The origin URL\n   */\n  public static origin(): string {\n    const globals = getGlobalObject<Window>()\n\n    // environments like nodejs or react native where an origin isn't relavent\n    if (!globals.location) {\n      return \"\"\n    }\n\n    return (\n      globals.location.origin ||\n      `${globals.location.protocol}//${globals.location.hostname}`\n    )\n  }\n\n  /**\n   * Returns the best currently available API that the current browser supports\n   * for making HTTP requests.\n   *\n   * @return  {string}       The name of the best availble HTTP transport\n   */\n  public static transport(): string {\n    // we throw out the typechecking here as the transports aren't exported\n    // using TS' `Window` type\n    const globals = getGlobalObject<Window>() as any\n\n    // we ignore jest here, as it's a false positive for a node\n    // environment and breaks the tests\n    if (isNodeEnv() && typeof jest === \"undefined\") {\n      return \"NodeHTTP\"\n    } else if (globals.XDomainRequest) {\n      return \"XDomainRequest\"\n    } else if (globals.XMLHttpRequest && !globals.fetch) {\n      return \"XMLHttpRequest\"\n    } else {\n      return \"fetch\"\n    }\n  }\n\n  /**\n   * Indicates whether promises are available in the current browser\n   * or environment.\n   *\n   * Adapted from https://github.com/Modernizr/Modernizr/blob/master/feature-detects/es6/promises.js\n   *\n   * @return  {boolean}       A value indicating if Promises are supported\n   */\n  public static supportsPromises(): boolean {\n    // we throw out the typechecking here as the transports aren't exported\n    // using TS' `Window` type\n    const globals = getGlobalObject<Window>() as any\n\n    return (\n      \"Promise\" in globals &&\n      // Some of these methods are missing from\n      // Firefox/Chrome experimental implementations\n      \"resolve\" in globals.Promise &&\n      \"reject\" in globals.Promise &&\n      \"all\" in globals.Promise &&\n      \"race\" in globals.Promise &&\n      // Older version of the spec had a resolver object\n      // as the arg rather than a function\n      (function () {\n        var resolve\n        new globals.Promise(function (r: any) {\n          resolve = r\n        })\n        return typeof resolve === \"function\"\n      })()\n    )\n  }\n}\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * Originally from https://github.com/getsentry/sentry-javascript/\n */\n\nexport function isNodeEnv(): boolean {\n  return (\n    Object.prototype.toString.call(\n      typeof process !== \"undefined\" ? process : 0\n    ) === \"[object process]\"\n  )\n}\n\n/**\n * Safely get global scope object\n *\n * Originally from https://github.com/getsentry/sentry-javascript/\n */\nexport function getGlobalObject<T>(): T {\n  return (isNodeEnv()\n    ? global\n    : typeof window !== \"undefined\"\n    ? window\n    : typeof self !== \"undefined\"\n    ? self\n    : {}) as T\n}\n", "import { Transport } from \"../transport\"\n\n// Fixes TypeScript complaining about this class\n// not existing\ndeclare var XDomainRequest: any\n\nexport class XDomainTransport implements Transport {\n  public url: string\n\n  constructor(url: string) {\n    this.url = url\n  }\n\n  public send(data: string): Promise<any> {\n    return new Promise((resolve, reject) => {\n      const req = new XDomainRequest()\n      const rx = new RegExp(\"^https?:\")\n\n      req.onload = () => resolve({})\n\n      // XDomainRequest will only make a request to a URL with\n      // the same protocol\n      req.open(\"POST\", this.url.replace(rx, window?.location?.protocol))\n\n      setTimeout(() => {\n        try {\n          req.send(data)\n        } catch (e) {\n          reject(e)\n        }\n      }, 0)\n    })\n  }\n}\n", "import { Transport } from \"../transport\"\n\nexport class XHRTransport implements Transport {\n  public url: string\n\n  constructor(url: string) {\n    this.url = url\n  }\n\n  public send(data: string): Promise<any> {\n    return new Promise((resolve, reject) => {\n      try {\n        const req = new XMLHttpRequest()\n\n        req.onreadystatechange = () => {\n          if (req.readyState === XMLHttpRequest.DONE) {\n            resolve({})\n          }\n        }\n\n        req.open(\"POST\", this.url)\n        req.send(data)\n      } catch (e) {\n        reject(e)\n      }\n    })\n  }\n}\n", "import { Transport } from \"../transport\"\n\nexport class FetchTransport implements Transport {\n  public url: string\n\n  constructor(url: string, headers?: { [key: string]: string }) {\n    this.url = url\n  }\n\n  public async send(data: string): Promise<any> {\n    const res = await fetch(this.url, {\n      method: \"POST\",\n      body: data\n    })\n\n    const { statusText, ok } = res\n\n    return ok ? Promise.resolve({}) : Promise.reject({ statusText })\n  }\n}\n", "import { Transport } from \"../transport\"\nimport type https from \"https\"\nexport class NodeTransport implements Transport {\n  public url: string\n  private https: Promise<typeof https>\n\n  constructor(url: string) {\n    this.url = url\n    this.https = import(\"https\")\n  }\n\n  public send(data: string): Promise<any> {\n    const options = {\n      method: \"POST\",\n      headers: {\n        \"Content-Type\": \"application/json\",\n        \"Content-Length\": data.length\n      }\n    }\n\n    return new Promise((resolve, reject) => {\n      this.https\n        .then(https => {\n          const req = https\n            .request(this.url, options, () => {})\n            .on(\"error\", error => reject(error))\n\n          req.write(data)\n          req.end()\n\n          resolve({})\n        })\n        .catch(reason => {\n          console.warn(\n            \"NodeTransport is being used, but the HTTPS module could not be imported. No data will be sent to AppSignal.\"\n          )\n          reject(reason)\n        })\n    })\n  }\n}\n", "import { Environment } from \"./environment\"\nimport { Span } from \"./span\"\n\nimport { XDomainTransport } from \"./transports/xdomain\"\nimport { XHRTransport } from \"./transports/xhr\"\nimport { FetchTransport } from \"./transports/fetch\"\nimport { NodeTransport } from \"./transports/node\"\n\nimport { PushApiOptions } from \"./options\"\nimport { Transport } from \"./transport\"\n\nexport class PushApi {\n  private _uri: string\n  private _apiKey: string\n  private _clientVersion: string\n  private _transport: Transport\n\n  /**\n   * Creates a new instance of the Push API client.\n   *\n   * @constructor\n   *\n   * @param   {object}  options  An object of options to configure the Push API client\n   */\n  constructor(options: PushApiOptions) {\n    this._uri = options.uri || \"https://appsignal-endpoint.net/collect\"\n    this._apiKey = options.key\n    this._clientVersion = options.version\n\n    this._transport = this._createTransport(this._url())\n  }\n\n  /**\n   * Pushes a transaction to the Push API.\n   *\n   * @param   {Span}     span     A single API `Span`\n   *\n   * @return  {Promise<Span>}     A single API `Span`\n   */\n  public async push(span: Span): Promise<Span> {\n    await this._transport.send(span.toJSON())\n    return span\n  }\n\n  /**\n   * Creates an instance of a new `Transport` object. A `Transport` is a\n   * browser API that is able to sent HTTP requests to an endpoint. A\n   * transport is selected based on the best available in the current\n   * environment.\n   *\n   * @return  {ITransport}  A Transport object\n   */\n  private _createTransport(url: string): Transport {\n    switch (Environment.transport()) {\n      case \"XDomainRequest\":\n        return new XDomainTransport(url)\n      case \"XMLHttpRequest\":\n        return new XHRTransport(url)\n      case \"NodeHTTP\":\n        return new NodeTransport(url)\n      default:\n        return new FetchTransport(url)\n    }\n  }\n\n  /**\n   * Constructs a complete URL for accessing the Push API.\n   *\n   * @return  {string}  A Push API URL string\n   */\n  private _url(): string {\n    const auth = this._authorization()\n    return `${this._uri}?${urlEncode(auth)}`\n  }\n\n  /**\n   * Creates an object of API credentials.\n   *\n   * @return  {object}  API credentials\n   */\n  private _authorization(): object {\n    return {\n      api_key: this._apiKey,\n      version: this._clientVersion\n    }\n  }\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param   {object}  object:   [object: An object that contains serializable values]\n *\n * @return  {string}            [Encoded URI params]\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n  return Object.keys(object)\n    .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n    .join(\"&\")\n}\n", "export class Serializable<T = [] | {}> {\n  protected _data: T\n\n  constructor(data: T) {\n    this._data = data\n  }\n\n  public toJSON(): string {\n    return JSON.stringify(this._data)\n  }\n\n  public serialize(): T {\n    return this._data\n  }\n}\n", "import { getStacktrace, isError } from \"./error\"\nimport { Serializable } from \"./serializable\"\nimport { toHashMapString } from \"./hashmap\"\nimport type { HashMap, HashMapValue } from \"./hashmap\"\n\nimport type { Breadcrumb } from \"./breadcrumb\"\nimport type { SpanError } from \"./error\"\nimport { BacktraceMatcher } from \"./options\"\n\n/**\n * The internal data structure of a `Span` inside the JavaScript integration.\n */\nexport interface SpanData {\n  timestamp: number\n  action?: string\n  namespace: string\n  error: SpanError\n  revision?: string\n  tags?: HashMap<string>\n  params?: HashMap<any>\n  environment?: HashMap<string>\n  breadcrumbs?: Breadcrumb[]\n}\n\nexport class Span extends Serializable<SpanData> {\n  constructor(span?: Partial<SpanData>) {\n    super({\n      timestamp: Math.round(new Date().getTime() / 1000),\n      namespace: \"frontend\",\n      error: {\n        name: \"NullError\",\n        message: \"No error has been set\",\n        backtrace: []\n      },\n      ...span\n    })\n  }\n\n  public setAction(name: string): this {\n    if (!name || typeof name !== \"string\") {\n      return this\n    }\n\n    this._data.action = name\n    return this\n  }\n\n  public getAction(): string | undefined {\n    return this._data.action\n  }\n\n  public setNamespace(name: string): this {\n    if (!name || typeof name !== \"string\") {\n      return this\n    }\n\n    this._data.namespace = name\n    return this\n  }\n\n  public getNamespace(): string | undefined {\n    return this._data.namespace\n  }\n\n  public setError<T extends Error>(error: Error | T): this {\n    if (!error || !isError(error)) return this\n\n    this._data.error = {\n      name: error.name || \"[unknown]\",\n      message: error.message,\n      backtrace: getStacktrace(error)\n    }\n\n    return this\n  }\n\n  public getError(): SpanError | undefined {\n    return this._data.error\n  }\n\n  public setTags(tags: HashMap<string>): this {\n    this._data.tags = { ...this._data.tags, ...toHashMapString(tags) }\n    return this\n  }\n\n  public getTags(): HashMap<string> {\n    return this._data.tags ?? {}\n  }\n\n  public setParams(params: HashMap<any>): this {\n    this._data.params = { ...this._data.params, ...params }\n    return this\n  }\n\n  public getParams(): HashMap<any> {\n    return this._data.params ?? {}\n  }\n\n  public setBreadcrumbs(breadcrumbs: Breadcrumb[]): this {\n    this._data.breadcrumbs = breadcrumbs\n    return this\n  }\n\n  public getBreadcrumbs(): Breadcrumb[] {\n    return this._data.breadcrumbs ?? []\n  }\n\n  public setEnvironment(environment: HashMap<string>): this {\n    this._data.environment = { ...this._data.environment, ...environment }\n    return this\n  }\n\n  public getEnvironment(): HashMap<string> {\n    return this._data.environment ?? {}\n  }\n\n  // @private\n  // Do not use this function directly. Instead, set the `matchBacktracePaths`\n  // configuration option when initializing AppSignal.\n  public cleanBacktracePath(matchBacktracePaths: BacktraceMatcher[]): this {\n    if (matchBacktracePaths.length === 0) {\n      return this\n    }\n\n    if (!this._data.error || !this._data.error.backtrace) {\n      return this\n    }\n\n    let linesMatched = 0\n\n    this._data.error.backtrace = this._data.error.backtrace.map(line => {\n      const path = extractPath(line)\n      if (!path) {\n        return line\n      }\n\n      for (const matcher of matchBacktracePaths) {\n        const relevantPath = matcher(path)\n        if (!relevantPath) {\n          continue\n        }\n\n        linesMatched++\n        return line.replace(path, relevantPath)\n      }\n\n      return line\n    })\n\n    if (linesMatched > 0) {\n      this.setEnvironment({\n        backtrace_paths_matched: linesMatched.toString()\n      })\n    }\n\n    return this\n  }\n}\n\n// @private\n// Do not use this function directly. Instead, set the `matchBacktracePaths`\n// configuration option when initializing AppSignal.\n//\n// Converts a `RegExp` object into a `BacktraceMatcher` function that returns\n// the concatenated matches from that object.\nexport function toBacktraceMatcher(regexp: RegExp): BacktraceMatcher {\n  return (path: string): string | undefined => {\n    const match = path.match(regexp)\n    if (!match || match.length < 2) {\n      return\n    }\n\n    return match.slice(1).join(\"\")\n  }\n}\n\n// Backtrace formats are different between browsers, and generally not\n// meant to be parsed by machines. This function does a best-effort to\n// extract whatever is at the location in the line where the path\n// usually appears.\n//\n// If it returns `undefined`, it means that it could not find where the\n// path is located in the backtrace line. If it returns a string, that\n// string _may_ be a path, but it may contain non-path elements as well.\nfunction extractPath(backtraceLine: string): string | undefined {\n  // A Chrome backtrace line always contains `at` near the beginning,\n  // preceded by space characters and followed by one space.\n  const IS_CHROME = /^\\s*at\\s/\n\n  // In a Chrome backtrace line, the path (if it is available)\n  // is located after the \"at\" towards the end of the line, along with\n  // the line number and column number, separated by colons.\n  // When the function name is available, the path is enclosed in\n  // parentheses. When there is no function name, the path comes\n  // immediately after the \"at\".\n  // We check for the line and column numbers to reject clear non-paths.\n  const CHROME_PATH_WITH_FUNCTION_NAME = /^\\s*at(?:\\s[^\\(]+)?\\s\\((.*):\\d+:\\d+\\)$/\n  const CHROME_PATH_WITHOUT_FUNCTION_NAME = /^\\s*at\\s(.*):\\d+:\\d+$/\n\n  if (backtraceLine.match(IS_CHROME)) {\n    return (\n      backtraceLine.match(CHROME_PATH_WITH_FUNCTION_NAME)?.[1] ??\n      backtraceLine.match(CHROME_PATH_WITHOUT_FUNCTION_NAME)?.[1]\n    )\n  }\n\n  // A Safari or Firefox backtrace line always contains `@` after the first\n  // term in the line.\n  const IS_SAFARI_FF = /^.*@/\n\n  // In a Safari or Firefox backtrace line, the path (if it is available)\n  // is located after the \"@\" at the towards end of the line, followed by\n  // the line number and column number, separated by colons. We check for\n  // those to reject clear non-paths.\n  const SAFARI_FF_PATH = /^.*@\\s?(.*):\\d+:\\d+$/\n\n  if (backtraceLine.match(IS_SAFARI_FF)) {\n    return backtraceLine.match(SAFARI_FF_PATH)?.[1]\n  }\n}\n", "import { Span } from \"./span\"\n\nexport class Queue {\n  private _data: Span[]\n\n  constructor(data?: Span[]) {\n    this._data = data || []\n  }\n\n  public clear() {\n    this._data = []\n  }\n\n  public values(): Span[] {\n    return this._data\n  }\n\n  public push(item: Span | Span[]) {\n    return Array.isArray(item)\n      ? this._data.push(...item)\n      : this._data.push(item)\n  }\n\n  public *drain() {\n    while (this._data.length > 0) {\n      yield this._data.shift()\n    }\n  }\n}\n", "import { getGlobalObject } from \"./environment\"\n\nimport { Queue } from \"./queue\"\nimport { PushApi } from \"./api\"\n\ntype DispatcherOptions = { limit: number; initialDuration: number }\n\nexport class Dispatcher {\n  public options: DispatcherOptions\n\n  private _queue: Queue\n  private _api: PushApi\n  private _retries = 0\n  private _timerID = 0\n  private _duration = 0\n\n  constructor(\n    queue: Queue,\n    api: PushApi,\n    options?: Partial<DispatcherOptions>\n  ) {\n    this._api = api\n    this._queue = queue\n\n    this.options = {\n      limit: 5,\n      initialDuration: 1000,\n      ...options\n    }\n\n    this.reset()\n  }\n\n  public schedule(time = this._duration): number {\n    const globals = getGlobalObject<Window>()\n\n    // @TODO: make this configurable?\n    const BACKOFF_FACTOR = 1.3\n\n    const cb = async () => {\n      for (let span of this._queue.drain()) {\n        if (!span) return\n\n        try {\n          await this._api.push(span)\n        } catch (e) {\n          // when the first promise fails, reschedule a timer\n          const expDuration = Math.floor(Math.pow(time, BACKOFF_FACTOR))\n\n          this._retries = this._retries - 1\n\n          if (this._retries === 0) {\n            this.reset()\n          } else {\n            this._queue.push(span)\n            this._timerID = this.schedule(expDuration)\n          }\n\n          return\n        }\n      }\n\n      // reset once all promises are cleared\n      this.reset()\n    }\n\n    return globals.setTimeout(cb, time)\n  }\n\n  public reset() {\n    const { limit, initialDuration } = this.options\n    this._retries = limit\n    this._duration = initialDuration\n  }\n}\n", "/**\n * The AppSignal client.\n * @module Appsignal\n */\n\nimport type { Breadcrumb } from \"./breadcrumb\"\nexport type { Breadcrumb }\nimport type { Decorator, Override } from \"./hook\"\nimport type { HashMap } from \"./hashmap\"\n\nexport { isError } from \"./error\"\n\nimport { toHashMap } from \"./hashmap\"\nimport { VERSION } from \"./version\"\nimport { PushApi } from \"./api\"\nimport { Environment } from \"./environment\"\nimport { Span, toBacktraceMatcher } from \"./span\"\nexport { Span }\nimport { Queue } from \"./queue\"\nimport { Dispatcher } from \"./dispatcher\"\n\nimport { AppsignalOptions, BacktraceMatcher } from \"./options\"\n\nexport default class Appsignal {\n  public VERSION = VERSION\n  public ignored: RegExp[] = []\n  private backtraceMatchers: BacktraceMatcher[] = []\n\n  private _dispatcher: Dispatcher\n  private _options: AppsignalOptions\n  private _api: PushApi\n  private _breadcrumbs: Breadcrumb[] = []\n\n  private _hooks = {\n    decorators: Array<Decorator>(),\n    overrides: Array<Override>()\n  }\n\n  private _env = Environment.serialize()\n  private _queue = new Queue([])\n\n  /**\n   * Creates a new instance of the AppSignal client.\n   *\n   * @constructor\n   *\n   * @param   {AppsignalOptions}  options        An object of options to configure the AppSignal client\n   */\n  constructor(options: AppsignalOptions) {\n    const {\n      key = \"\",\n      uri,\n      revision,\n      ignoreErrors,\n      matchBacktracePaths\n    } = options\n\n    // `revision` should be a `string`, but we attempt to\n    // normalise to one anyway\n    if (revision && typeof revision !== \"string\") {\n      options.revision = String(revision)\n    }\n\n    // starting with no key means nothing will be sent to the API\n    if (key === \"\") {\n      console.info(\n        \"[APPSIGNAL]: No API key provided. Started in development mode. No data will be sent.\"\n      )\n    }\n\n    this._api = new PushApi({\n      key,\n      uri,\n      version: this.VERSION\n    })\n\n    // ignored exceptions are checked against the `message`\n    // property of a given `Error`\n    if (ignoreErrors && Array.isArray(ignoreErrors)) {\n      this.ignored = ignoreErrors\n        .filter(value => value instanceof RegExp)\n        .map(unglobalize)\n    }\n\n    if (matchBacktracePaths) {\n      let paths: (RegExp | BacktraceMatcher)[]\n\n      if (Array.isArray(matchBacktracePaths)) {\n        paths = matchBacktracePaths\n      } else {\n        paths = [matchBacktracePaths]\n      }\n\n      for (const matcher of paths) {\n        if (matcher instanceof RegExp) {\n          this.backtraceMatchers.push(toBacktraceMatcher(unglobalize(matcher)))\n        } else if (typeof matcher === \"function\") {\n          this.backtraceMatchers.push(matcher)\n        }\n      }\n    }\n\n    this._dispatcher = new Dispatcher(this._queue, this._api)\n\n    this._options = options\n  }\n\n  /**\n   * Records and sends a browser `Error` to AppSignal.\n   *\n   * @param   {Error | ErrorEvent}             error          A JavaScript Error object\n   * @param   {Function | void}                fn             Optional callback function to modify span before it's sent.\n   *\n   * @return  {Promise<Span> | void}             An API response, or `void` if `Promise` is unsupported.\n   */\n  public send<T>(error: Error, fn?: (span: Span) => T): Promise<Span> | void\n\n  /**\n   * Records and sends a browser `Error` to AppSignal.\n   *\n   * @param   {Error | ErrorEvent}             error          A JavaScript Error object\n   * @param   {object}                         tags           An key, value object of tags\n   * @param   {string}                         namespace      An optional namespace name\n   *\n   * @return  {Promise<Span> | void}             An API response, or `void` if `Promise` is unsupported.\n   */\n  public send(\n    error: Error | ErrorEvent,\n    tags?: object,\n    namespace?: string\n  ): Promise<Span> | void\n\n  /**\n   * Records and sends an Appsignal `Span` object to AppSignal.\n   *\n   * @param   {Span}             span          An Appsignal Span object\n   *\n   * @return  {Promise<Span>}                    An API response, or `void` if `Promise` is unsupported.\n   */\n  public send(span: Span): Promise<Span> | void\n\n  /**\n   *\n   * @param   {Error | Span | ErrorEvent}  data           A JavaScript Error or Appsignal Span object\n   * @param   {object | Function}          tagsOrFn       An key-value object of tags or a callback function to customize the span before it is sent.\n   * @param   {string}                     namespace      DEPRECATED: An optional namespace name.\n   *\n   * @return  {Promise<Span> | void}             An API response, or `void` if `Promise` is unsupported.\n   */\n  public send<T>(\n    data: Error | Span | ErrorEvent,\n    tagsOrFn?: object | ((span: Span) => T),\n    namespace?: string\n  ): Promise<any> | void {\n    if (\n      !(data instanceof Error) &&\n      !(data instanceof Span) &&\n      !(data && data.error instanceof Error)\n    ) {\n      // @TODO: route this through a central logger\n      console.error(\n        \"[APPSIGNAL]: Can't send error, given error is not a valid type\"\n      )\n      return\n    }\n\n    let error: Error | Span\n\n    if (\"error\" in data) {\n      error = data.error as Error // handle ErrorEvent\n    } else {\n      error = data\n    }\n\n    // a \"span\" currently refers to a fixed point in time, as opposed to\n    // a range or length in time. this may change in future!\n    let span = error instanceof Span ? error : this._createSpanFromError(error)\n\n    // A Span can be \"decorated\" with metadata after it has been created,\n    // but before it is sent to the API and before metadata provided\n    // as arguments is added\n\n    for (const decorator of this._hooks.decorators) {\n      const previousSpan = span\n      span = decorator(span)\n      // In previous versions of this integration, the return value was\n      // ignored, and the original span was used. This was a bug, but it\n      // worked given an implicit expectation that the span would be\n      // modified in place.\n      //\n      // Avoid a breaking change for \"broken\" decorators that do not\n      // return a value by using the previous span.\n      if (span === undefined) {\n        span = previousSpan\n      }\n    }\n\n    if (tagsOrFn) {\n      if (typeof tagsOrFn === \"function\") {\n        const callback = tagsOrFn\n        callback(span)\n      } else {\n        console.warn(\n          \"[APPSIGNAL]: DEPRECATED: Calling the `send`/`sendError` function with a tags object is deprecated. Use the callback argument instead.\"\n        )\n        const tags = (toHashMap(tagsOrFn) || {}) as HashMap<string>\n        span.setTags(tags)\n      }\n    }\n    if (namespace) {\n      console.warn(\n        \"[APPSIGNAL]: DEPRECATED: Calling the `send`/`sendError` function with a namespace is deprecated. Use the callback argument instead.\"\n      )\n      span.setNamespace(namespace)\n    }\n\n    if (this._breadcrumbs.length > 0) span.setBreadcrumbs(this._breadcrumbs)\n\n    // A Span can be \"overridden\" with metadata after it has been created,\n    // but before it is sent to the API and after metadata provided\n    // as arguments is added\n\n    for (const override of this._hooks.overrides) {\n      const previousSpan = span\n      const nextSpan = override(span)\n\n      if (nextSpan === false) {\n        // If the override returns false, we ignore this span.\n        console.warn(\"[APPSIGNAL]: Ignored a span due to override.\")\n        return\n      }\n\n      // In previous versions of this integration, the return value was\n      // ignored, and the original span was used. This was a bug, but it\n      // worked given an implicit expectation that the span would be\n      // modified in place.\n      //\n      // Avoid a breaking change for \"broken\" overrides that do not\n      // return a value by using the previous span.\n      span = nextSpan ?? previousSpan\n    }\n\n    // Ignore user defined errors after overrides.\n    const message = span.getError()?.message\n\n    if (message && this.ignored.some(el => el.test(message))) {\n      console.warn(`[APPSIGNAL]: Ignored a span: ${message}`)\n      return\n    }\n\n    span.cleanBacktracePath(this.backtraceMatchers)\n\n    if (Environment.supportsPromises()) {\n      // clear breadcrumbs as they are now loaded into the span,\n      // and we are sure that it's possible to send them\n      this._breadcrumbs = []\n\n      // if no key is supplied, we just output the span to the console\n      if (!this._options.key) {\n        // @TODO: route this through a central logger\n        console.warn(\n          \"[APPSIGNAL]: Span not sent because we're in development mode:\",\n          span\n        )\n      } else {\n        // attempt to push to the API\n        return this._api.push(span).catch(() => {\n          this._queue.push(span)\n\n          // schedule on next tick\n          setTimeout(() => this._dispatcher.schedule(), 0)\n        })\n      }\n    } else {\n      // @TODO: route this through a central logger\n      console.error(\n        \"[APPSIGNAL]: Error not sent. A Promise polyfill is required.\"\n      )\n      return\n    }\n  }\n\n  sendError<T>(error: Error | ErrorEvent): Promise<Span> | void\n  sendError<T>(\n    error: Error | ErrorEvent,\n    callback: (span: Span) => T\n  ): Promise<Span> | void\n  sendError<T>(\n    error: Error | ErrorEvent,\n    tags?: object,\n    namespace?: string\n  ): Promise<Span> | void\n\n  /**\n   * Records and sends a browser `Error` to AppSignal. An alias to `#send()`\n   * to maintain compatibility.\n   *\n   * @param   {Error | ErrorEvent}  error          A JavaScript Error object\n   * @param   {object | Function}   tagsOrFn       An key-value object of tags or callback function to customize the span before it is sent.\n   * @param   {string}              namespace      DEPRECATED: An optional namespace name\n   *\n   * @return  {Promise<Span> | void}               An API response, or `void` if `Promise` is unsupported.\n   */\n  public sendError<T>(\n    error: Error | ErrorEvent,\n    tagsOrFn?: object | ((span: Span) => T),\n    namespace?: string\n  ): Promise<Span> | void {\n    return this.send(error, tagsOrFn, namespace)\n  }\n\n  /**\n   * Registers and installs a valid plugin.\n   *\n   * A plugin is typically a function that can be used to provide a\n   * reference to the `Appsignal` instance via returning a function\n   * that can be bound to `this`.\n   *\n   * @param   {Plugin}            plugin         A JavaScript Error object\n   *\n   * @return  {void}\n   */\n  public use(plugin: Function): void {\n    plugin.call(this)\n  }\n\n  /**\n   * Creates a new `Span`, augmented with the current environment.\n   *\n   * @param   {Function | void}   fn         Optional function to modify span\n   *\n   * @return  {Span}              An AppSignal `Span` object\n   */\n  public createSpan(fn?: (span: Span) => void): Span {\n    const { revision = \"\", namespace } = this._options\n\n    const span = new Span({\n      environment: this._env,\n      revision\n    })\n\n    // set default namespace from constructor if none is set\n    if (namespace) span.setNamespace(namespace)\n\n    if (fn && typeof fn === \"function\") fn(span)\n\n    return span\n  }\n\n  /**\n   * Wraps and catches errors within a given function. If the function throws an\n   * error, a rejected `Promise` will be returned and the error thrown will be\n   * logged to AppSignal.\n   */\n  public async wrap<T>(fn: () => T, callbackFn?: (span: Span) => T): Promise<T>\n\n  /**\n   * Wraps and catches errors within a given function. If the function throws an\n   * error, a rejected `Promise` will be returned and the error thrown will be\n   * logged to AppSignal.\n   */\n  public async wrap<T>(\n    fn: () => T,\n    tags?: object,\n    namespace?: string\n  ): Promise<T>\n\n  /**\n   * Wraps and catches errors within a given function. If the function throws an\n   * error, a rejected `Promise` will be returned and the error thrown will be\n   * logged to AppSignal.\n   *\n   * @param   {Function}          fn             A function to wrap\n   * @param   {object | Function} tagsOrFn       An key-value object of tags or a callback function to customize the span before it is sent.\n   * @param   {string}            namespace      DEPRECATED: An optional namespace name\n   *\n   * @return  {Promise<any>}      A Promise containing the return value of the function, or a `Span` if an error was thrown.\n   */\n  public async wrap<T>(\n    fn: () => T,\n    tagsOrFn?: object | ((span: Span) => T),\n    namespace?: string\n  ): Promise<T> {\n    try {\n      return await fn()\n    } catch (e) {\n      if (e instanceof Error || e instanceof ErrorEvent) {\n        await this.sendError(e, tagsOrFn, namespace)\n      }\n      return Promise.reject(e)\n    }\n  }\n\n  /**\n   * Registers a span decorator to be applied every time a Span\n   * is sent to the Push API\n   *\n   * @param   {Function}  decorator  A decorator function, returning `Span`\n   *\n   * @return  {void}\n   */\n  public addDecorator<T extends Decorator>(decorator: T): void {\n    this._hooks.decorators.push(decorator)\n  }\n\n  /**\n   * Registers a span override to be applied every time a Span\n   * is sent to the Push API\n   *\n   * @param   {Function}  override  An override function, returning `Span`\n   *\n   * @return  {void}\n   */\n  public addOverride<T extends Override>(override: T): void {\n    this._hooks.overrides.push(override)\n  }\n\n  /**\n   * Sends a demonstration error to AppSignal.\n   *\n   * @return  {void}\n   */\n  public demo(): void {\n    const span = this._createSpanFromError(\n      new Error(\n        \"Hello world! This is an error used for demonstration purposes.\"\n      )\n    )\n\n    span\n      .setAction(\"TestAction\")\n      .setParams({\n        path: \"/hello\",\n        method: \"GET\"\n      })\n      .setTags({\n        demo_sample: \"true\"\n      })\n\n    this.send(span)\n  }\n\n  /**\n   * Adds a breadcrumb.\n   *\n   * @param   {Breadcrumb}  breadcrumb  A valid breadcrumb\n   *\n   * @return  {void}\n   */\n  public addBreadcrumb(breadcrumb: Omit<Breadcrumb, \"timestamp\">): void {\n    const crumb: Breadcrumb = {\n      timestamp: Math.round(new Date().getTime() / 1000),\n      ...breadcrumb,\n      metadata: toHashMap(breadcrumb.metadata)\n    }\n\n    if (!crumb.category) {\n      console.warn(\"[APPSIGNAL]: Breadcrumb not added. `category` is missing.\")\n      return\n    }\n\n    if (!crumb.action) {\n      console.warn(\"[APPSIGNAL]: Breadcrumb not added. `action` is missing.\")\n      return\n    }\n\n    if (this._breadcrumbs.length === 20) {\n      this._breadcrumbs.pop()\n    }\n\n    this._breadcrumbs.unshift(crumb)\n  }\n\n  /**\n   * Creates a valid AppSignal `Span` from a JavaScript `Error`\n   * object.\n   *\n   * @param   {Error}  error  A JavaScript error\n   *\n   * @return  {Span}         An AppSignal event\n   */\n  private _createSpanFromError(error: Error): Span {\n    const event = this.createSpan()\n    event.setError(error)\n\n    return event\n  }\n}\n\n// Returns a new `RegExp` object with the global flag removed.\n// This fixes issues where using global regexes repeatedly with `test` against\n// different strings will return unexpected results, due to the regex object\n// storing the location of its last match and resuming the search from there.\nfunction unglobalize(regexp: RegExp): RegExp {\n  return new RegExp(regexp.source, regexp.flags.replace(\"g\", \"\"))\n}\n", "import type Appsignal from \"@appsignal/javascript\"\nimport type { Span } from \"@appsignal/javascript\"\n\nexport function installErrorHandler(appsignal: Appsignal, application: any) {\n  const prevHandler = application.handleError\n\n  application.handleError = function (\n    error: Error,\n    message: string,\n    detail: { identifier?: string }\n  ) {\n    const span = appsignal.createSpan((span: Span) =>\n      span\n        .setAction(detail?.identifier || \"[unknown Stimulus controller]\")\n        .setTags({ framework: \"Stimulus\", message })\n        .setError(error)\n    )\n\n    appsignal.send(span)\n\n    if (prevHandler && typeof prevHandler === \"function\") {\n      prevHandler.apply(this, arguments as any)\n    }\n  }\n}\n", "import { Application } from '@hotwired/stimulus';\nimport * as ActionCable from '@rails/actioncable';\nimport * as Turbo from '@hotwired/turbo';\n\nimport Appsignal from '@appsignal/javascript';\nimport { installErrorHandler } from '@appsignal/stimulus';\n\nconst application = Application.start();\n\n// Parse config data injected via HTML\n// See shared/_js_config_data partial\nlet config = {};\n\nconst configMeta = document.querySelector('meta[name=\"js-config-data\"]');\nif (configMeta) {\n  try {\n    config = JSON.parse(configMeta.getAttribute('content'));\n  } catch (error) {\n    console.error('Failed to parse JSON config:', error);\n  }\n}\n\nif (config.RAILS_ENV !== 'production') {\n  // Enable ActionCable logging\n  ActionCable.logger.enabled = true;\n\n  // Configure Stimulus development experience\n  application.warnings = true;\n  application.debug = true;\n  window.Stimulus = application;\n}\n\nconst appsignal = new Appsignal({\n  key: config.APPSIGNAL_KEY,\n  revision: config.APPSIGNAL_REVISION\n});\ninstallErrorHandler(appsignal, application);\n\n// Custom configm dialog support\nconst confirmMethod = (title, element, submitter) => {\n  const dialog = document.getElementById('turbo-confirm');\n\n  // To keep data-turbo-confirm: true gives default confirm dialog behavior\n  if (title && title !== 'true') dialog.querySelector('#title').innerHTML = title;\n\n  const subtext = submitter?.getAttribute('data-turbo-confirm-subtext');\n  if (subtext) {\n    dialog.querySelector('#subtext').innerHTML = subtext;\n  }\n\n  dialog.showModal();\n\n  return new Promise((resolve, reject) => {\n    dialog.addEventListener('close', () => {\n      resolve(dialog.returnValue === 'confirm');\n    }, { once: true });\n  });\n};\n\n// Shows our custom confirm dialog which replaces the browser confirm dialog when using data-turbo-confirm\nTurbo.config.forms.confirm = confirmMethod;\n\nexport { application, confirmMethod, appsignal };\n", "var x=Object.defineProperty;var V=(t,s,e)=>s in t?x(t,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[s]=e;var i=(t,s,e)=>V(t,typeof s!=\"symbol\"?s+\"\":s,e);import{Controller as y}from\"@hotwired/stimulus\";async function n(t,s,e={}){s?await T(t,e):await b(t,e)}async function T(t,s={}){let{transitionClasses:e,fromClasses:a,toClasses:o,toggleClass:r}=C(\"Enter\",t,s);return v(t,{firstFrame(){t.classList.add(...e.split(\" \")),t.classList.add(...a.split(\" \")),t.classList.remove(...o.split(\" \")),t.classList.remove(...r.split(\" \"))},secondFrame(){t.classList.remove(...a.split(\" \")),t.classList.add(...o.split(\" \"))},ending(){t.classList.remove(...e.split(\" \"))}})}async function b(t,s={}){let{transitionClasses:e,fromClasses:a,toClasses:o,toggleClass:r}=C(\"Leave\",t,s);return v(t,{firstFrame(){t.classList.add(...a.split(\" \")),t.classList.remove(...o.split(\" \")),t.classList.add(...e.split(\" \"))},secondFrame(){t.classList.remove(...a.split(\" \")),t.classList.add(...o.split(\" \"))},ending(){t.classList.remove(...e.split(\" \")),t.classList.add(...r.split(\" \"))}})}function C(t,s,e){return{transitionClasses:s.dataset[`transition${t}`]||e[t.toLowerCase()]||t.toLowerCase(),fromClasses:s.dataset[`transition${t}From`]||e[`${t.toLowerCase()}From`]||`${t.toLowerCase()}-from`,toClasses:s.dataset[`transition${t}To`]||e[`${t.toLowerCase()}To`]||`${t.toLowerCase()}-to`,toggleClass:s.dataset.toggleClass||e.toggleClass||e.toggle||\"hidden\"}}function L(t){t._stimulus_transition={timeout:null,interrupted:!1}}function I(t){t._stimulus_transition&&t._stimulus_transition.interrupt&&t._stimulus_transition.interrupt()}function v(t,s){t._stimulus_transition&&I(t);let e,a,o;return L(t),t._stimulus_transition.cleanup=()=>{a||s.firstFrame(),o||s.secondFrame(),s.ending(),t._stimulus_transition=null},t._stimulus_transition.interrupt=()=>{e=!0,t._stimulus_transition.timeout&&clearTimeout(t._stimulus_transition.timeout),t._stimulus_transition.cleanup()},new Promise(r=>{e||requestAnimationFrame(()=>{e||(s.firstFrame(),a=!0,requestAnimationFrame(()=>{e||(s.secondFrame(),o=!0,t._stimulus_transition&&(t._stimulus_transition.timeout=setTimeout(()=>{if(e){r();return}t._stimulus_transition.cleanup(),r()},w(t))))}))})})}function w(t){let s=Number(getComputedStyle(t).transitionDuration.replace(/,.*/,\"\").replace(\"s\",\"\"))*1e3,e=Number(getComputedStyle(t).transitionDelay.replace(/,.*/,\"\").replace(\"s\",\"\"))*1e3;return s===0&&(s=Number(getComputedStyle(t).animationDuration.replace(\"s\",\"\"))*1e3),s+e}var g=class extends y{connect(){setTimeout(()=>{T(this.element)},this.showDelayValue),this.hasDismissAfterValue&&setTimeout(()=>{this.close()},this.dismissAfterValue)}close(){b(this.element).then(()=>{this.element.remove()})}};i(g,\"values\",{dismissAfter:Number,showDelay:{type:Number,default:0}});import{Controller as A}from\"@hotwired/stimulus\";var h=class extends A{connect(){this.timeout=null}save(){clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.statusTarget.textContent=this.submittingTextValue,this.formTarget.requestSubmit()},this.submitDurationValue)}success(){this.setStatus(this.successTextValue)}error(){this.setStatus(this.errorTextValue)}setStatus(t){this.statusTarget.textContent=t,this.timeout=setTimeout(()=>{this.statusTarget.textContent=\"\"},this.statusDurationValue)}};i(h,\"targets\",[\"form\",\"status\"]),i(h,\"values\",{submitDuration:{type:Number,default:1e3},statusDuration:{type:Number,default:2e3},submittingText:{type:String,default:\"Saving...\"},successText:{type:String,default:\"Saved!\"},errorText:{type:String,default:\"Unable to save.\"}});import{Controller as _}from\"@hotwired/stimulus\";var c=class extends _{update(){this.preview=this.colorTarget.value}set preview(t){this.previewTarget.style[this.styleValue]=t;let s=this._getContrastYIQ(t);this.styleValue===\"color\"?this.previewTarget.style.backgroundColor=s:this.previewTarget.style.color=s}_getContrastYIQ(t){t=t.replace(\"#\",\"\");let s=128,e=parseInt(t.substr(0,2),16),a=parseInt(t.substr(2,2),16),o=parseInt(t.substr(4,2),16);return(e*299+a*587+o*114)/1e3>=s?\"#000\":\"#fff\"}};i(c,\"targets\",[\"preview\",\"color\"]),i(c,\"values\",{style:{type:String,default:\"backgroundColor\"}});import{Controller as D}from\"@hotwired/stimulus\";var l=class extends D{connect(){this.boundBeforeCache=this.beforeCache.bind(this),document.addEventListener(\"turbo:before-cache\",this.boundBeforeCache)}disconnect(){document.removeEventListener(\"turbo:before-cache\",this.boundBeforeCache)}openValueChanged(){n(this.menuTarget,this.openValue,this.transitionOptions),this.openValue===!0&&this.hasMenuItemTarget&&this.menuItemTargets[0].focus()}show(){this.openValue=!0}close(){this.openValue=!1}hide(t){this.closeOnClickOutsideValue&&t.target.nodeType&&this.element.contains(t.target)===!1&&this.openValue&&(this.openValue=!1),this.closeOnEscapeValue&&t.key===\"Escape\"&&this.openValue&&(this.openValue=!1)}toggle(){this.openValue=!this.openValue}nextItem(t){t.preventDefault(),this.menuItemTargets[this.nextIndex].focus()}previousItem(t){t.preventDefault(),this.menuItemTargets[this.previousIndex].focus()}get currentItemIndex(){return this.menuItemTargets.indexOf(document.activeElement)}get nextIndex(){return Math.min(this.currentItemIndex+1,this.menuItemTargets.length-1)}get previousIndex(){return Math.max(this.currentItemIndex-1,0)}get transitionOptions(){return{enter:this.hasEnterClass?this.enterClasses.join(\" \"):\"transition ease-out duration-100\",enterFrom:this.hasEnterFromClass?this.enterFromClasses.join(\" \"):\"transform opacity-0 scale-95\",enterTo:this.hasEnterToClass?this.enterToClasses.join(\" \"):\"transform opacity-100 scale-100\",leave:this.hasLeaveClass?this.leaveClasses.join(\" \"):\"transition ease-in duration-75\",leaveFrom:this.hasLeaveFromClass?this.leaveFromClasses.join(\" \"):\"transform opacity-100 scale-100\",leaveTo:this.hasLeaveToClass?this.leaveToClasses.join(\" \"):\"transform opacity-0 scale-95\",toggleClass:this.hasToggleClass?this.toggleClasses.join(\" \"):\"hidden\"}}beforeCache(){this.openValue=!1,this.menuTarget.classList.add(this.transitionOptions.toggleClass)}};i(l,\"targets\",[\"menu\",\"button\",\"menuItem\"]),i(l,\"values\",{open:{type:Boolean,default:!1},closeOnEscape:{type:Boolean,default:!0},closeOnClickOutside:{type:Boolean,default:!0}}),i(l,\"classes\",[\"enter\",\"enterFrom\",\"enterTo\",\"leave\",\"leaveFrom\",\"leaveTo\",\"toggle\"]);import{Controller as F}from\"@hotwired/stimulus\";var d=class extends F{connect(){this.openValue&&this.open(),this.boundBeforeCache=this.beforeCache.bind(this),document.addEventListener(\"turbo:before-cache\",this.boundBeforeCache)}disconnect(){document.removeEventListener(\"turbo:before-cache\",this.boundBeforeCache)}open(){this.dialogTarget.showModal()}close(){this.dialogTarget.setAttribute(\"closing\",\"\"),Promise.all(this.dialogTarget.getAnimations().map(t=>t.finished)).then(()=>{this.dialogTarget.removeAttribute(\"closing\"),this.dialogTarget.close()})}backdropClose(t){t.target.nodeName==\"DIALOG\"&&this.close()}show(){this.dialogTarget.show()}hide(){this.close()}beforeCache(){this.close()}};i(d,\"targets\",[\"dialog\"]),i(d,\"values\",{open:Boolean});import{Controller as B}from\"@hotwired/stimulus\";var f=class extends B{openValueChanged(){n(this.contentTarget,this.openValue),this.shouldAutoDismiss&&this.scheduleDismissal()}show(t){this.shouldAutoDismiss&&this.scheduleDismissal(),this.openValue=!0}hide(){this.openValue=!1}toggle(){this.openValue=!this.openValue}get shouldAutoDismiss(){return this.openValue&&this.hasDismissAfterValue}scheduleDismissal(){this.hasDismissAfterValue&&(this.cancelDismissal(),this.timeoutId=setTimeout(()=>{this.hide(),this.timeoutId=void 0},this.dismissAfterValue))}cancelDismissal(){typeof this.timeoutId==\"number\"&&(clearTimeout(this.timeoutId),this.timeoutId=void 0)}};i(f,\"targets\",[\"content\"]),i(f,\"values\",{dismissAfter:Number,open:{type:Boolean,default:!1}});import{Controller as E}from\"@hotwired/stimulus\";var m=class extends E{connect(){this.openValue&&this.open(),this.boundBeforeCache=this.beforeCache,document.addEventListener(\"turbo:before-cache\",this.boundBeforeCache)}disconnect(){document.removeEventListener(\"turbo:before-cache\",this.boundBeforeCache)}open(){this.dialogTarget.showModal()}close(){this.dialogTarget.setAttribute(\"closing\",\"\"),Promise.all(this.dialogTarget.getAnimations().map(t=>t.finished)).then(()=>{this.dialogTarget.removeAttribute(\"closing\"),this.dialogTarget.close()})}backdropClose(t){t.target.nodeName==\"DIALOG\"&&this.close()}show(){this.open()}hide(){this.close()}beforeCache(){this.close()}};i(m,\"targets\",[\"dialog\"]),i(m,\"values\",{open:Boolean});import{Controller as S}from\"@hotwired/stimulus\";var u=class extends S{initialize(){this.updateAnchorValue&&this.anchor&&(this.indexValue=this.tabTargets.findIndex(t=>t.id===this.anchor))}connect(){this.showTab()}change(t){t.currentTarget.tagName===\"SELECT\"?this.indexValue=t.currentTarget.selectedIndex:t.currentTarget.dataset.index?this.indexValue=t.currentTarget.dataset.index:t.currentTarget.dataset.id?this.indexValue=this.tabTargets.findIndex(s=>s.id==t.currentTarget.dataset.id):this.indexValue=this.tabTargets.indexOf(t.currentTarget)}nextTab(){this.indexValue=Math.min(this.indexValue+1,this.tabsCount-1)}previousTab(){this.indexValue=Math.max(this.indexValue-1,0)}firstTab(){this.indexValue=0}lastTab(){this.indexValue=this.tabsCount-1}indexValueChanged(){if(this.showTab(),this.dispatch(\"tab-change\",{target:this.tabTargets[this.indexValue],detail:{activeIndex:this.indexValue}}),this.updateAnchorValue){let t=this.tabTargets[this.indexValue].id;if(this.scrollToAnchorValue)location.hash=t;else{let e=window.location.href.split(\"#\")[0]+\"#\"+t;typeof Turbo<\"u\"?Turbo.navigator.history.replace(new URL(e)):history.replaceState({},document.title,e)}}}showTab(){this.panelTargets.forEach((t,s)=>{let e=this.tabTargets[s];s===this.indexValue?(t.classList.remove(\"hidden\"),e.ariaSelected=\"true\",e.dataset.active=!0,this.hasInactiveTabClass&&e?.classList?.remove(...this.inactiveTabClasses),this.hasActiveTabClass&&e?.classList?.add(...this.activeTabClasses)):(t.classList.add(\"hidden\"),e.ariaSelected=null,delete e.dataset.active,this.hasActiveTabClass&&e?.classList?.remove(...this.activeTabClasses),this.hasInactiveTabClass&&e?.classList?.add(...this.inactiveTabClasses))}),this.hasSelectTarget&&(this.selectTarget.selectedIndex=this.indexValue),this.scrollActiveTabIntoViewValue&&this.scrollToActiveTab()}scrollToActiveTab(){let t=this.element.querySelector(\"[aria-selected]\");t&&t.scrollIntoView({inline:\"center\"})}get tabsCount(){return this.tabTargets.length}get anchor(){return document.URL.split(\"#\").length>1?document.URL.split(\"#\")[1]:null}};i(u,\"classes\",[\"activeTab\",\"inactiveTab\"]),i(u,\"targets\",[\"tab\",\"panel\",\"select\"]),i(u,\"values\",{index:0,updateAnchor:Boolean,scrollToAnchor:Boolean,scrollActiveTabIntoView:Boolean});import{Controller as N}from\"@hotwired/stimulus\";var p=class extends N{toggle(t){this.openValue=!this.openValue,this.animate()}toggleInput(t){this.openValue=t.target.checked,this.animate()}hide(){this.openValue=!1,this.animate()}show(){this.openValue=!0,this.animate()}animate(){this.toggleableTargets.forEach(t=>{n(t,this.openValue)})}};i(p,\"targets\",[\"toggleable\"]),i(p,\"values\",{open:{type:Boolean,default:!1}});export{g as Alert,h as Autosave,c as ColorPreview,l as Dropdown,d as Modal,f as Popover,m as Slideover,u as Tabs,p as Toggle,n as transition};\n", "var sparkMd5 = {\n  exports: {}\n};\n\n(function(module, exports) {\n  (function(factory) {\n    {\n      module.exports = factory();\n    }\n  })((function(undefined$1) {\n    var hex_chr = [ \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\" ];\n    function md5cycle(x, k) {\n      var a = x[0], b = x[1], c = x[2], d = x[3];\n      a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[10] - 42063 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b ^ c ^ d) + k[5] - 378558 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      x[0] = a + x[0] | 0;\n      x[1] = b + x[1] | 0;\n      x[2] = c + x[2] | 0;\n      x[3] = d + x[3] | 0;\n    }\n    function md5blk(s) {\n      var md5blks = [], i;\n      for (i = 0; i < 64; i += 4) {\n        md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n      }\n      return md5blks;\n    }\n    function md5blk_array(a) {\n      var md5blks = [], i;\n      for (i = 0; i < 64; i += 4) {\n        md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n      }\n      return md5blks;\n    }\n    function md51(s) {\n      var n = s.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n      for (i = 64; i <= n; i += 64) {\n        md5cycle(state, md5blk(s.substring(i - 64, i)));\n      }\n      s = s.substring(i - 64);\n      length = s.length;\n      tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n      }\n      tail[i >> 2] |= 128 << (i % 4 << 3);\n      if (i > 55) {\n        md5cycle(state, tail);\n        for (i = 0; i < 16; i += 1) {\n          tail[i] = 0;\n        }\n      }\n      tmp = n * 8;\n      tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n      lo = parseInt(tmp[2], 16);\n      hi = parseInt(tmp[1], 16) || 0;\n      tail[14] = lo;\n      tail[15] = hi;\n      md5cycle(state, tail);\n      return state;\n    }\n    function md51_array(a) {\n      var n = a.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n      for (i = 64; i <= n; i += 64) {\n        md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n      }\n      a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n      length = a.length;\n      tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= a[i] << (i % 4 << 3);\n      }\n      tail[i >> 2] |= 128 << (i % 4 << 3);\n      if (i > 55) {\n        md5cycle(state, tail);\n        for (i = 0; i < 16; i += 1) {\n          tail[i] = 0;\n        }\n      }\n      tmp = n * 8;\n      tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n      lo = parseInt(tmp[2], 16);\n      hi = parseInt(tmp[1], 16) || 0;\n      tail[14] = lo;\n      tail[15] = hi;\n      md5cycle(state, tail);\n      return state;\n    }\n    function rhex(n) {\n      var s = \"\", j;\n      for (j = 0; j < 4; j += 1) {\n        s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n      }\n      return s;\n    }\n    function hex(x) {\n      var i;\n      for (i = 0; i < x.length; i += 1) {\n        x[i] = rhex(x[i]);\n      }\n      return x.join(\"\");\n    }\n    if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n    if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n      (function() {\n        function clamp(val, length) {\n          val = val | 0 || 0;\n          if (val < 0) {\n            return Math.max(val + length, 0);\n          }\n          return Math.min(val, length);\n        }\n        ArrayBuffer.prototype.slice = function(from, to) {\n          var length = this.byteLength, begin = clamp(from, length), end = length, num, target, targetArray, sourceArray;\n          if (to !== undefined$1) {\n            end = clamp(to, length);\n          }\n          if (begin > end) {\n            return new ArrayBuffer(0);\n          }\n          num = end - begin;\n          target = new ArrayBuffer(num);\n          targetArray = new Uint8Array(target);\n          sourceArray = new Uint8Array(this, begin, num);\n          targetArray.set(sourceArray);\n          return target;\n        };\n      })();\n    }\n    function toUtf8(str) {\n      if (/[\\u0080-\\uFFFF]/.test(str)) {\n        str = unescape(encodeURIComponent(str));\n      }\n      return str;\n    }\n    function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n      var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;\n      for (i = 0; i < length; i += 1) {\n        arr[i] = str.charCodeAt(i);\n      }\n      return returnUInt8Array ? arr : buff;\n    }\n    function arrayBuffer2Utf8Str(buff) {\n      return String.fromCharCode.apply(null, new Uint8Array(buff));\n    }\n    function concatenateArrayBuffers(first, second, returnUInt8Array) {\n      var result = new Uint8Array(first.byteLength + second.byteLength);\n      result.set(new Uint8Array(first));\n      result.set(new Uint8Array(second), first.byteLength);\n      return returnUInt8Array ? result : result.buffer;\n    }\n    function hexToBinaryString(hex) {\n      var bytes = [], length = hex.length, x;\n      for (x = 0; x < length - 1; x += 2) {\n        bytes.push(parseInt(hex.substr(x, 2), 16));\n      }\n      return String.fromCharCode.apply(String, bytes);\n    }\n    function SparkMD5() {\n      this.reset();\n    }\n    SparkMD5.prototype.append = function(str) {\n      this.appendBinary(toUtf8(str));\n      return this;\n    };\n    SparkMD5.prototype.appendBinary = function(contents) {\n      this._buff += contents;\n      this._length += contents.length;\n      var length = this._buff.length, i;\n      for (i = 64; i <= length; i += 64) {\n        md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n      }\n      this._buff = this._buff.substring(i - 64);\n      return this;\n    };\n    SparkMD5.prototype.end = function(raw) {\n      var buff = this._buff, length = buff.length, i, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], ret;\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n      }\n      this._finish(tail, length);\n      ret = hex(this._hash);\n      if (raw) {\n        ret = hexToBinaryString(ret);\n      }\n      this.reset();\n      return ret;\n    };\n    SparkMD5.prototype.reset = function() {\n      this._buff = \"\";\n      this._length = 0;\n      this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n      return this;\n    };\n    SparkMD5.prototype.getState = function() {\n      return {\n        buff: this._buff,\n        length: this._length,\n        hash: this._hash.slice()\n      };\n    };\n    SparkMD5.prototype.setState = function(state) {\n      this._buff = state.buff;\n      this._length = state.length;\n      this._hash = state.hash;\n      return this;\n    };\n    SparkMD5.prototype.destroy = function() {\n      delete this._hash;\n      delete this._buff;\n      delete this._length;\n    };\n    SparkMD5.prototype._finish = function(tail, length) {\n      var i = length, tmp, lo, hi;\n      tail[i >> 2] |= 128 << (i % 4 << 3);\n      if (i > 55) {\n        md5cycle(this._hash, tail);\n        for (i = 0; i < 16; i += 1) {\n          tail[i] = 0;\n        }\n      }\n      tmp = this._length * 8;\n      tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n      lo = parseInt(tmp[2], 16);\n      hi = parseInt(tmp[1], 16) || 0;\n      tail[14] = lo;\n      tail[15] = hi;\n      md5cycle(this._hash, tail);\n    };\n    SparkMD5.hash = function(str, raw) {\n      return SparkMD5.hashBinary(toUtf8(str), raw);\n    };\n    SparkMD5.hashBinary = function(content, raw) {\n      var hash = md51(content), ret = hex(hash);\n      return raw ? hexToBinaryString(ret) : ret;\n    };\n    SparkMD5.ArrayBuffer = function() {\n      this.reset();\n    };\n    SparkMD5.ArrayBuffer.prototype.append = function(arr) {\n      var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;\n      this._length += arr.byteLength;\n      for (i = 64; i <= length; i += 64) {\n        md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n      }\n      this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n      return this;\n    };\n    SparkMD5.ArrayBuffer.prototype.end = function(raw) {\n      var buff = this._buff, length = buff.length, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], i, ret;\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= buff[i] << (i % 4 << 3);\n      }\n      this._finish(tail, length);\n      ret = hex(this._hash);\n      if (raw) {\n        ret = hexToBinaryString(ret);\n      }\n      this.reset();\n      return ret;\n    };\n    SparkMD5.ArrayBuffer.prototype.reset = function() {\n      this._buff = new Uint8Array(0);\n      this._length = 0;\n      this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n      return this;\n    };\n    SparkMD5.ArrayBuffer.prototype.getState = function() {\n      var state = SparkMD5.prototype.getState.call(this);\n      state.buff = arrayBuffer2Utf8Str(state.buff);\n      return state;\n    };\n    SparkMD5.ArrayBuffer.prototype.setState = function(state) {\n      state.buff = utf8Str2ArrayBuffer(state.buff, true);\n      return SparkMD5.prototype.setState.call(this, state);\n    };\n    SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n    SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n    SparkMD5.ArrayBuffer.hash = function(arr, raw) {\n      var hash = md51_array(new Uint8Array(arr)), ret = hex(hash);\n      return raw ? hexToBinaryString(ret) : ret;\n    };\n    return SparkMD5;\n  }));\n})(sparkMd5);\n\nvar SparkMD5 = sparkMd5.exports;\n\nconst fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\nclass FileChecksum {\n  static create(file, callback) {\n    const instance = new FileChecksum(file);\n    instance.create(callback);\n  }\n  constructor(file) {\n    this.file = file;\n    this.chunkSize = 2097152;\n    this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n    this.chunkIndex = 0;\n  }\n  create(callback) {\n    this.callback = callback;\n    this.md5Buffer = new SparkMD5.ArrayBuffer;\n    this.fileReader = new FileReader;\n    this.fileReader.addEventListener(\"load\", (event => this.fileReaderDidLoad(event)));\n    this.fileReader.addEventListener(\"error\", (event => this.fileReaderDidError(event)));\n    this.readNextChunk();\n  }\n  fileReaderDidLoad(event) {\n    this.md5Buffer.append(event.target.result);\n    if (!this.readNextChunk()) {\n      const binaryDigest = this.md5Buffer.end(true);\n      const base64digest = btoa(binaryDigest);\n      this.callback(null, base64digest);\n    }\n  }\n  fileReaderDidError(event) {\n    this.callback(`Error reading ${this.file.name}`);\n  }\n  readNextChunk() {\n    if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n      const start = this.chunkIndex * this.chunkSize;\n      const end = Math.min(start + this.chunkSize, this.file.size);\n      const bytes = fileSlice.call(this.file, start, end);\n      this.fileReader.readAsArrayBuffer(bytes);\n      this.chunkIndex++;\n      return true;\n    } else {\n      return false;\n    }\n  }\n}\n\nfunction getMetaValue(name) {\n  const element = findElement(document.head, `meta[name=\"${name}\"]`);\n  if (element) {\n    return element.getAttribute(\"content\");\n  }\n}\n\nfunction findElements(root, selector) {\n  if (typeof root == \"string\") {\n    selector = root;\n    root = document;\n  }\n  const elements = root.querySelectorAll(selector);\n  return toArray(elements);\n}\n\nfunction findElement(root, selector) {\n  if (typeof root == \"string\") {\n    selector = root;\n    root = document;\n  }\n  return root.querySelector(selector);\n}\n\nfunction dispatchEvent(element, type, eventInit = {}) {\n  const {disabled: disabled} = element;\n  const {bubbles: bubbles, cancelable: cancelable, detail: detail} = eventInit;\n  const event = document.createEvent(\"Event\");\n  event.initEvent(type, bubbles || true, cancelable || true);\n  event.detail = detail || {};\n  try {\n    element.disabled = false;\n    element.dispatchEvent(event);\n  } finally {\n    element.disabled = disabled;\n  }\n  return event;\n}\n\nfunction toArray(value) {\n  if (Array.isArray(value)) {\n    return value;\n  } else if (Array.from) {\n    return Array.from(value);\n  } else {\n    return [].slice.call(value);\n  }\n}\n\nclass BlobRecord {\n  constructor(file, checksum, url, customHeaders = {}) {\n    this.file = file;\n    this.attributes = {\n      filename: file.name,\n      content_type: file.type || \"application/octet-stream\",\n      byte_size: file.size,\n      checksum: checksum\n    };\n    this.xhr = new XMLHttpRequest;\n    this.xhr.open(\"POST\", url, true);\n    this.xhr.responseType = \"json\";\n    this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n    this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n    this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n    Object.keys(customHeaders).forEach((headerKey => {\n      this.xhr.setRequestHeader(headerKey, customHeaders[headerKey]);\n    }));\n    const csrfToken = getMetaValue(\"csrf-token\");\n    if (csrfToken != undefined) {\n      this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n    }\n    this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n    this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n  }\n  get status() {\n    return this.xhr.status;\n  }\n  get response() {\n    const {responseType: responseType, response: response} = this.xhr;\n    if (responseType == \"json\") {\n      return response;\n    } else {\n      return JSON.parse(response);\n    }\n  }\n  create(callback) {\n    this.callback = callback;\n    this.xhr.send(JSON.stringify({\n      blob: this.attributes\n    }));\n  }\n  requestDidLoad(event) {\n    if (this.status >= 200 && this.status < 300) {\n      const {response: response} = this;\n      const {direct_upload: direct_upload} = response;\n      delete response.direct_upload;\n      this.attributes = response;\n      this.directUploadData = direct_upload;\n      this.callback(null, this.toJSON());\n    } else {\n      this.requestDidError(event);\n    }\n  }\n  requestDidError(event) {\n    this.callback(`Error creating Blob for \"${this.file.name}\". Status: ${this.status}`);\n  }\n  toJSON() {\n    const result = {};\n    for (const key in this.attributes) {\n      result[key] = this.attributes[key];\n    }\n    return result;\n  }\n}\n\nclass BlobUpload {\n  constructor(blob) {\n    this.blob = blob;\n    this.file = blob.file;\n    const {url: url, headers: headers} = blob.directUploadData;\n    this.xhr = new XMLHttpRequest;\n    this.xhr.open(\"PUT\", url, true);\n    this.xhr.responseType = \"text\";\n    for (const key in headers) {\n      this.xhr.setRequestHeader(key, headers[key]);\n    }\n    this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n    this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n  }\n  create(callback) {\n    this.callback = callback;\n    this.xhr.send(this.file.slice());\n  }\n  requestDidLoad(event) {\n    const {status: status, response: response} = this.xhr;\n    if (status >= 200 && status < 300) {\n      this.callback(null, response);\n    } else {\n      this.requestDidError(event);\n    }\n  }\n  requestDidError(event) {\n    this.callback(`Error storing \"${this.file.name}\". Status: ${this.xhr.status}`);\n  }\n}\n\nlet id = 0;\n\nclass DirectUpload {\n  constructor(file, url, delegate, customHeaders = {}) {\n    this.id = ++id;\n    this.file = file;\n    this.url = url;\n    this.delegate = delegate;\n    this.customHeaders = customHeaders;\n  }\n  create(callback) {\n    FileChecksum.create(this.file, ((error, checksum) => {\n      if (error) {\n        callback(error);\n        return;\n      }\n      const blob = new BlobRecord(this.file, checksum, this.url, this.customHeaders);\n      notify(this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n      blob.create((error => {\n        if (error) {\n          callback(error);\n        } else {\n          const upload = new BlobUpload(blob);\n          notify(this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n          upload.create((error => {\n            if (error) {\n              callback(error);\n            } else {\n              callback(null, blob.toJSON());\n            }\n          }));\n        }\n      }));\n    }));\n  }\n}\n\nfunction notify(object, methodName, ...messages) {\n  if (object && typeof object[methodName] == \"function\") {\n    return object[methodName](...messages);\n  }\n}\n\nclass DirectUploadController {\n  constructor(input, file) {\n    this.input = input;\n    this.file = file;\n    this.directUpload = new DirectUpload(this.file, this.url, this);\n    this.dispatch(\"initialize\");\n  }\n  start(callback) {\n    const hiddenInput = document.createElement(\"input\");\n    hiddenInput.type = \"hidden\";\n    hiddenInput.name = this.input.name;\n    this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n    this.dispatch(\"start\");\n    this.directUpload.create(((error, attributes) => {\n      if (error) {\n        hiddenInput.parentNode.removeChild(hiddenInput);\n        this.dispatchError(error);\n      } else {\n        hiddenInput.value = attributes.signed_id;\n      }\n      this.dispatch(\"end\");\n      callback(error);\n    }));\n  }\n  uploadRequestDidProgress(event) {\n    const progress = event.loaded / event.total * 90;\n    if (progress) {\n      this.dispatch(\"progress\", {\n        progress: progress\n      });\n    }\n  }\n  get url() {\n    return this.input.getAttribute(\"data-direct-upload-url\");\n  }\n  dispatch(name, detail = {}) {\n    detail.file = this.file;\n    detail.id = this.directUpload.id;\n    return dispatchEvent(this.input, `direct-upload:${name}`, {\n      detail: detail\n    });\n  }\n  dispatchError(error) {\n    const event = this.dispatch(\"error\", {\n      error: error\n    });\n    if (!event.defaultPrevented) {\n      alert(error);\n    }\n  }\n  directUploadWillCreateBlobWithXHR(xhr) {\n    this.dispatch(\"before-blob-request\", {\n      xhr: xhr\n    });\n  }\n  directUploadWillStoreFileWithXHR(xhr) {\n    this.dispatch(\"before-storage-request\", {\n      xhr: xhr\n    });\n    xhr.upload.addEventListener(\"progress\", (event => this.uploadRequestDidProgress(event)));\n    xhr.upload.addEventListener(\"loadend\", (() => {\n      this.simulateResponseProgress(xhr);\n    }));\n  }\n  simulateResponseProgress(xhr) {\n    let progress = 90;\n    const startTime = Date.now();\n    const updateProgress = () => {\n      const elapsed = Date.now() - startTime;\n      const estimatedResponseTime = this.estimateResponseTime();\n      const responseProgress = Math.min(elapsed / estimatedResponseTime, 1);\n      progress = 90 + responseProgress * 9;\n      this.dispatch(\"progress\", {\n        progress: progress\n      });\n      if (xhr.readyState !== XMLHttpRequest.DONE && progress < 99) {\n        requestAnimationFrame(updateProgress);\n      }\n    };\n    xhr.addEventListener(\"loadend\", (() => {\n      this.dispatch(\"progress\", {\n        progress: 100\n      });\n    }));\n    requestAnimationFrame(updateProgress);\n  }\n  estimateResponseTime() {\n    const fileSize = this.file.size;\n    const MB = 1024 * 1024;\n    if (fileSize < MB) {\n      return 1e3;\n    } else if (fileSize < 10 * MB) {\n      return 2e3;\n    } else {\n      return 3e3 + fileSize / MB * 50;\n    }\n  }\n}\n\nconst inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\nclass DirectUploadsController {\n  constructor(form) {\n    this.form = form;\n    this.inputs = findElements(form, inputSelector).filter((input => input.files.length));\n  }\n  start(callback) {\n    const controllers = this.createDirectUploadControllers();\n    const startNextController = () => {\n      const controller = controllers.shift();\n      if (controller) {\n        controller.start((error => {\n          if (error) {\n            callback(error);\n            this.dispatch(\"end\");\n          } else {\n            startNextController();\n          }\n        }));\n      } else {\n        callback();\n        this.dispatch(\"end\");\n      }\n    };\n    this.dispatch(\"start\");\n    startNextController();\n  }\n  createDirectUploadControllers() {\n    const controllers = [];\n    this.inputs.forEach((input => {\n      toArray(input.files).forEach((file => {\n        const controller = new DirectUploadController(input, file);\n        controllers.push(controller);\n      }));\n    }));\n    return controllers;\n  }\n  dispatch(name, detail = {}) {\n    return dispatchEvent(this.form, `direct-uploads:${name}`, {\n      detail: detail\n    });\n  }\n}\n\nconst processingAttribute = \"data-direct-uploads-processing\";\n\nconst submitButtonsByForm = new WeakMap;\n\nlet started = false;\n\nfunction start() {\n  if (!started) {\n    started = true;\n    document.addEventListener(\"click\", didClick, true);\n    document.addEventListener(\"submit\", didSubmitForm, true);\n    document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n  }\n}\n\nfunction didClick(event) {\n  const button = event.target.closest(\"button, input\");\n  if (button && button.type === \"submit\" && button.form) {\n    submitButtonsByForm.set(button.form, button);\n  }\n}\n\nfunction didSubmitForm(event) {\n  handleFormSubmissionEvent(event);\n}\n\nfunction didSubmitRemoteElement(event) {\n  if (event.target.tagName == \"FORM\") {\n    handleFormSubmissionEvent(event);\n  }\n}\n\nfunction handleFormSubmissionEvent(event) {\n  const form = event.target;\n  if (form.hasAttribute(processingAttribute)) {\n    event.preventDefault();\n    return;\n  }\n  const controller = new DirectUploadsController(form);\n  const {inputs: inputs} = controller;\n  if (inputs.length) {\n    event.preventDefault();\n    form.setAttribute(processingAttribute, \"\");\n    inputs.forEach(disable);\n    controller.start((error => {\n      form.removeAttribute(processingAttribute);\n      if (error) {\n        inputs.forEach(enable);\n      } else {\n        submitForm(form);\n      }\n    }));\n  }\n}\n\nfunction submitForm(form) {\n  let button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n  if (button) {\n    const {disabled: disabled} = button;\n    button.disabled = false;\n    button.focus();\n    button.click();\n    button.disabled = disabled;\n  } else {\n    button = document.createElement(\"input\");\n    button.type = \"submit\";\n    button.style.display = \"none\";\n    form.appendChild(button);\n    button.click();\n    form.removeChild(button);\n  }\n  submitButtonsByForm.delete(form);\n}\n\nfunction disable(input) {\n  input.disabled = true;\n}\n\nfunction enable(input) {\n  input.disabled = false;\n}\n\nfunction autostart() {\n  if (window.ActiveStorage) {\n    start();\n  }\n}\n\nsetTimeout(autostart, 1);\n\nexport { DirectUpload, DirectUploadController, DirectUploadsController, dispatchEvent, start };\n", "// based on https://guides.rubyonrails.org/active_storage_overview.html#direct-upload-javascript-events\n//\n// Event listeners that help to give a smooth file upload progress bar inside the form.\n//\naddEventListener('direct-upload:initialize', event => {\n  const { target, detail } = event;\n  const { id, file } = detail;\n  target.insertAdjacentHTML('beforebegin', `\n    <div id=\"direct-upload-${id}\" class=\"direct-upload direct-upload--pending\">\n      <div id=\"direct-upload-progress-${id}\" class=\"direct-upload__progress\" style=\"width: 0%\"></div>\n      <span class=\"direct-upload__filename\"></span>\n    </div>\n  `);\n  target.previousElementSibling.querySelector('.direct-upload__filename').textContent = file.name;\n});\n\naddEventListener('direct-upload:start', event => {\n  const { id } = event.detail;\n  const element = document.getElementById(`direct-upload-${id}`);\n  element.classList.remove('direct-upload--pending');\n});\n\naddEventListener('direct-upload:progress', event => {\n  const { id, progress } = event.detail;\n  const progressElement = document.getElementById(`direct-upload-progress-${id}`);\n  progressElement.style.width = `${progress}%`;\n});\n\naddEventListener('direct-upload:error', event => {\n  event.preventDefault();\n  const { id, error } = event.detail;\n  const element = document.getElementById(`direct-upload-${id}`);\n  element.classList.add('direct-upload--error');\n  element.setAttribute('title', error);\n});\n\naddEventListener('direct-upload:end', event => {\n  const { id } = event.detail;\n  const element = document.getElementById(`direct-upload-${id}`);\n  element.classList.add('direct-upload--complete');\n});\n", "import { Controller } from '@hotwired/stimulus';\nexport default class extends Controller {\n  static targets = ['toggle', 'grouped', 'single'];\n\n  connect () {\n    this.toggle();\n  }\n\n  get noneSelected () {\n    return this.toggleTarget.value === 'none';\n  }\n\n  toggle () {\n    if (this.noneSelected) {\n      this.showSingleMenu();\n    } else {\n      this.showGroupedMenu();\n    }\n  }\n\n  showGroupedMenu () {\n    this.groupedTarget.hidden = false;\n    this.singleTarget.hidden = true;\n  }\n\n  showSingleMenu () {\n    this.groupedTarget.hidden = true;\n    this.singleTarget.hidden = false;\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\nimport Highcharts from 'highcharts';\n\nexport default class extends Controller {\n  static values = {\n    config: Object\n  };\n\n  connect () {\n    this.chart = Highcharts.chart(this.element, this.configValue);\n  }\n\n  disconnect () {\n    this.chart.destroy();\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  connect () {\n    this.element.submit();\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = ['source', 'checkBoxes'];\n\n  update () {\n    try {\n      const excludedProviders = this.sourceTarget.selectedOptions[0].dataset.excludedProviders;\n      this.checkBoxesTargets.forEach(checkBox => { checkBox.checked = !excludedProviders.includes(checkBox.value); });\n    } catch {\n      // The form has `{include_blank: true}`, therefore we have to handle\n      // switching back to the blank option gracefully.\n      this.checkBoxesTargets.forEach(checkBox => { checkBox.checked = true; });\n    }\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\n// The controller can be attached to any form input (\"select\", \"input\", \"textarea\") and will\n// submit the form using fetch() once the input element value is changed. Kind of like \"ambient save\".\n// Most appropriate use are checkboxes in list views (at least that's what it is made for).\nexport default class extends Controller {\n  connect () {\n    this.eventListener = (changeEvent) => {\n      const formElement = this.element.closest('form');\n      const httpMethodFromFormOrInput = (formElement.querySelector('input[name=\"_method\"]') || { value: formElement.method }).value;\n      const fd = new FormData(formElement);\n      fetch(formElement.action, {\n        body: fd,\n        method: httpMethodFromFormOrInput.toUpperCase() // nginx will barf if the HTTP verb is lowercase and at least Chrome does not uppercase it automatically\n      });\n    };\n    this.element.addEventListener('change', this.eventListener);\n  }\n\n  disconnect () {\n    this.element.removeEventListener('change', this.eventListener);\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\nimport { appsignal } from './application.js';\n\nconst FORMATTER_OPTIONS = {\n  hour12: false,\n  timeZoneName: 'shortOffset',\n  weekday: 'long',\n  year: 'numeric',\n  day: 'numeric',\n  month: 'long',\n  hour: 'numeric',\n  minute: 'numeric'\n};\n\nexport default class extends Controller {\n  static targets = ['source'];\n  static values = {\n    startsAt: String,\n    endsAt: String,\n    happenedAt: String\n  };\n\n  connect () {\n    try {\n      // We're forcing UK style datetime formatting.\n      const formatter = new Intl.DateTimeFormat('en-GB', FORMATTER_OPTIONS);\n      const from = this.startsAtValue ? formatter.format(new Date(this.startsAtValue)) : 'Unknown';\n      const to = this.endsAtValue ? formatter.format(new Date(this.endsAtValue)) : 'Unknown';\n      const at = this.happenedAtValue ? formatter.format(new Date(this.happenedAtValue)) : null;\n      this.sourceTarget.innerText = at == null ? `${from} - ${to}` : `${at}`;\n    } catch (error) {\n      appsignal.sendError(error, (span) => {\n        span.setTags({ formatter_options: FORMATTER_OPTIONS, starts_at: this.startsAtValue, ends_at: this.endsAtValue, happenedAt: this.happenedAtValue });\n      });\n    }\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static classes = ['selected'];\n  static targets = [\n    'togglable', 'toggler', 'selectedCounter', 'form', 'menu'\n  ];\n\n  static values = { highlightElement: String };\n\n  connect () {\n    this.toggleSelectAll(this.togglerTarget);\n  }\n\n  togglableTargetDisconnected () {\n    this.updateCounterTag();\n  }\n\n  selectSingle (evt) {\n    const isChecked = evt.target.checked;\n    const item = this.togglableTargets.find((elem) => elem === evt.target);\n    this.setElementSelectedState(item, isChecked);\n    this.updateBulkActionForm(item, isChecked);\n    this.updateCounterTag();\n  }\n\n  toggleSelectAll (input) {\n    const target = input instanceof Event ? input.target : input;\n    const isChecked = target.checked;\n\n    for (let i = 0; i < this.togglableTargets.length; i++) {\n      this.togglableTargets[i].checked = isChecked;\n      this.setElementSelectedState(this.togglableTargets[i], isChecked);\n      this.updateBulkActionForm(this.togglableTargets[i], isChecked);\n    }\n    this.updateCounterTag();\n  }\n\n  updateCounterTag () {\n    if (!this.hasSelectedCounterTarget) return;\n\n    this.selectedCounterTarget.innerText = this.togglableTargets.filter((target) => target.checked).length;\n  }\n\n  updateBulkActionForm (targetEl, stateBool) {\n    if (!this.hasFormTarget) return;\n    // match only generic UUID since with turbo_streams for ex we use dom_ids which is in the format rewards_cashback_<uuid> and we only need the uuid for the form\n    const id = targetEl.closest('tr')?.id.match('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}')?.[0];\n    if (stateBool) {\n      const input = document.createElement('input');\n      input.type = 'hidden';\n      input.name = 'bulk_ids[]';\n      input.value = id;\n      this.formTarget.insertBefore(input, this.formTarget.lastElementChild);\n    } else {\n      this.formTarget.querySelector(`[value=\"${id}\"]`)?.remove();\n    }\n  }\n\n  setElementSelectedState (targetEl, stateBool) {\n    if (!this.highlightElementValue) return;\n\n    targetEl.closest(this.highlightElementValue).setAttribute('highlighted', stateBool);\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\n// Controller that can scroll an element based on dragging within another element\n//\n// @value data-admin--draggable-horizontal-id-value=\"main-content\" : element with id \"main-content\" will be used as horizontal scroll element\n// @value data-admin--draggable-vertical-id-value=\"main-content\" : element with id \"main-content\" will be used as vertical scroll element\n// @target data-admin--draggable-target=\"draggable\" the element that should be clicked/dragged to make sure no other elements register dragging for this controller\nexport default class extends Controller {\n  static values = {\n    horizontalId: String,\n    verticalId: String\n  };\n\n  static targets = ['draggable'];\n\n  initialize () {\n    this.pos = { top: 0, left: 0, x: 0, y: 0 };\n  }\n\n  connect () {\n    this.active = false;\n    this.horizontalElement = (this.hasHorizontalIdValue && document.getElementById(this.horizontalIdValue)) || (this.hasDraggableTarget && this.draggableTarget) || this.element;\n    this.verticalElement = (this.hasVerticalIdValue && document.getElementById(this.verticalIdValue)) || document.documentElement;\n  }\n\n  activate (evt) {\n    if (evt.buttons === 1 && evt.target === ((this.hasDraggableTarget && this.draggableTarget) || this.element)) {\n      this.pos = {\n        // The current scroll\n        left: this.horizontalElement.scrollLeft,\n        top: this.verticalElement.scrollTop,\n        // Get the current mouse position\n        x: evt.clientX,\n        y: evt.clientY\n      };\n      this.active = true;\n    }\n    this.element.addEventListener('mousemove', this.move.bind(this), { passive: true });\n    this.element.addEventListener('mouseup', (evt) => {\n      this.deactivate();\n      this.element.removeEventListener('mousemove', this.move.bind(this), { once: true, passive: true });\n    });\n  }\n\n  move (evt) {\n    if (!this.active) return;\n\n    // How far the mouse has been moved\n    const dx = evt.clientX - this.pos.x;\n    const dy = evt.clientY - this.pos.y;\n\n    // Scroll the element\n    // x\n    this.horizontalElement.scrollLeft = this.pos.left - dx;\n    // y\n    this.verticalElement.scrollTop = this.pos.top - dy;\n  }\n\n  deactivate () {\n    this.active = false;\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = ['toggleable', 'driver'];\n  static values = {\n    open: { type: Boolean, default: false },\n    selectedToggle: { type: String, default: '' }\n  };\n\n  connect () {\n    this.toggleClass = this.data.get('class') || 'hidden';\n    if (this.hasDriverTarget) {\n      this.toggle(this.driverTarget);\n    }\n  }\n\n  toggle (eventOrNode) {\n    const targetNode = eventOrNode instanceof Event ? eventOrNode.target : eventOrNode;\n\n    switch (targetNode.type) {\n      case 'checkbox':\n        this.openValue = targetNode.checked;\n        break;\n      case 'select-one':\n        this.selectedToggleValue = targetNode.value;\n        break;\n      default:\n        if (eventOrNode.preventDefault) {\n          eventOrNode.preventDefault();\n        }\n        this.openValue = !this.openValue;\n    }\n  }\n\n  hide (event) {\n    event.preventDefault();\n\n    this.openValue = false;\n  }\n\n  show (event) {\n    event.preventDefault();\n\n    this.openValue = true;\n  }\n\n  openValueChanged () {\n    if (!this.toggleClass) return;\n\n    this.toggleableTargets.forEach(target => {\n      target.classList.toggle(this.toggleClass, !this.openValue);\n    });\n  }\n\n  selectedToggleValueChanged () {\n    this.toggleableTargets.forEach(target => {\n      target.classList.toggle(this.toggleClass, target.dataset.selectedToggleValue !== this.selectedToggleValue);\n    });\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = ['disableable'];\n  static values = {\n    disabled: { type: Boolean, default: true }\n  };\n\n  toggle (event) {\n    this.disabledValue = !this.disabledValue;\n    this.updateDisabledState();\n  }\n\n  // Sets disabled to the opposite of the checkbox or radio checked value\n  toggleInput (event) {\n    this.disabledValue = !event.target.checked;\n    this.updateDisabledState();\n  }\n\n  disable () {\n    this.disabledValue = true;\n    this.updateDisabledState();\n  }\n\n  enable () {\n    this.disabledValue = false;\n    this.updateDisabledState();\n  }\n\n  updateDisabledState () {\n    this.disableableTargets.forEach(target => {\n      target.disabled = this.disabledValue;\n    });\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\nimport Rails from '@rails/ujs';\n// Connects to data-controller=\"admin--reorder\"\n\n// Heavily inspired (read: mostly copied) by http://live.julik.nl/2022/10/drag-reorders\n// This controller is used for Drag-and-drop sortable array.\n// It stores the state using the DOM and on [save] sends the list of all items to the [url].\n// On success it will redirect to specified [success-url] in the html file.\n// On error just refresh the page. In that case the ruby controller should flash[:alert].\nexport default class extends Controller {\n  connect () {\n    const ul = document.querySelector('ul#categories');\n    const lis = ul.querySelectorAll('li');\n\n    // Compute the centroid of an element in _page_ coordinates\n    // (from the top-left of the page, accounting for the scroll).\n    // We need to account for the scroll here because it is not only possible,\n    // but actually _used_ by many that with long lists you can scroll while\n    // you drag - pick an item, focus over the destination drop area and then scroll\n    // using the wheel to \"reposition\" the area for your drop. Check this out, really -\n    // it works like this in native macOS controls since ages.\n    //\n    // Also, one of the very good indications of web-engine based apps posing as native:\n    // scroll-during-drag not working correctly. We will not be like those apps.\n    function computeCentroid (element) {\n      const rect = element.getBoundingClientRect();\n      const viewportX = (rect.left + rect.right) / 2;\n      const viewportY = (rect.top + rect.bottom) / 2;\n      return { x: viewportX + window.scrollX, y: viewportY + window.scrollY };\n    }\n\n    function distanceSquaredBetweenCursorAndPoint (evt, centroid) {\n      return (\n        Math.pow(centroid.x - evt.clientX - window.scrollX, 2) +\n        Math.pow(centroid.y - evt.clientY - window.scrollY, 2)\n      );\n    }\n\n    const INTENT_BEFORE = Symbol('INTENT_BEFORE');\n    const INTENT_AFTER = Symbol('INTENT_AFTER');\n    const DIRECTION_HORIZONTAL = Symbol('DIRECTION_HORIZONTAL');\n    const DIRECTION_VERTICAL = Symbol('DIRECTION_VERTICAL');\n\n    function predictDirection (a, b) {\n      if (!a || !b) return DIRECTION_HORIZONTAL;\n      const dx = Math.abs(b.centroid.x - a.centroid.x);\n      const dy = Math.abs(b.centroid.y - a.centroid.y);\n      return dx > dy ? DIRECTION_HORIZONTAL : DIRECTION_VERTICAL;\n    }\n\n    function intentFrom (direction, evt, centroid) {\n      if (direction === DIRECTION_HORIZONTAL) {\n        if ((evt.clientX + window.scrollX) < centroid.x) {\n          return INTENT_BEFORE;\n        }\n      } else {\n        if ((evt.clientY + window.scrollY) < centroid.y) {\n          return INTENT_BEFORE;\n        }\n      }\n      return INTENT_AFTER;\n    }\n\n    function startReorderWithElement (el, { debug }) {\n      const parent = el.parentNode;\n      const orderables = Array.from(parent.children).filter((element) => element.id !== 'footer').map((element, i) => {\n        return { i, element, centroid: computeCentroid(element) };\n      });\n\n      // Determine the dominant direction in the list - is it horizontal or vertical?\n      const direction = predictDirection(orderables[0], orderables[1]);\n\n      let closest = el;\n      let intent = INTENT_AFTER;\n      let marker = document.createElement(el.nodeName);\n      marker.classList.add('insertion-marker');\n\n      const unstyle = () => {\n        orderables.forEach(({ element }) => {\n          element.classList.remove('reorder-accepts-before');\n          element.classList.remove('reorder-accepts-after');\n        });\n      };\n\n      const mouseMoveHandler = (evt) => {\n        evt.preventDefault();\n\n        const byDistance = orderables.map((orderable) => {\n          const ds = distanceSquaredBetweenCursorAndPoint(evt, orderable.centroid);\n          return { ds, ...orderable };\n        }).sort((a, b) => a.ds - b.ds);\n\n        closest = byDistance[0].element;\n        intent = intentFrom(direction, evt, byDistance[0].centroid);\n\n        unstyle();\n        marker.remove();\n\n        if (intent === INTENT_BEFORE) {\n          marker = closest.insertAdjacentElement('beforebegin', marker);\n          closest.classList.add('reorder-accepts-before');\n        } else {\n          marker = closest.insertAdjacentElement('afterend', marker);\n          closest.classList.add('reorder-accepts-after');\n        }\n      };\n      parent.addEventListener('dragover', mouseMoveHandler);\n\n      return () => {\n        unstyle();\n        marker.remove();\n        parent.removeEventListener('dragover', mouseMoveHandler);\n        return { closest, intent };\n      };\n    }\n\n    lis.forEach((li) => {\n      li.addEventListener('dragstart', (evt) => {\n        console.warn('reorder started');\n        li.classList.add('selected');\n        const stop = startReorderWithElement(li, { debug: true });\n\n        li.parentNode.addEventListener('drop', (evt) => evt.preventDefault(), {\n          once: true\n        });\n        li.addEventListener(\n          'dragend',\n          (evt) => {\n            evt.preventDefault();\n\n            console.warn('reorder ending');\n            li.classList.remove('selected');\n\n            const { closest, intent } = stop();\n            if (intent === INTENT_BEFORE) {\n              closest.insertAdjacentElement('beforebegin', li);\n            } else {\n              closest.insertAdjacentElement('afterend', li);\n            }\n          },\n          { once: true }\n        );\n      });\n    });\n  }\n\n  save () {\n    const ul = document.querySelector('ul#categories');\n    const lis = ul.querySelectorAll('li');\n    const ids = Array.from(lis).map((element) => element.dataset.id);\n    const data = new FormData();\n    data.append('items', ids);\n    Rails.ajax({\n      url: this.data.get('url'),\n      type: 'PATCH',\n      data,\n      success: () => window.location.replace(this.data.get('success-url')),\n      error: () => location.reload()\n    });\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = ['input', 'dropdown', 'hidden'];\n\n  connect () {\n    window.addEventListener('click', () => this.hide());\n  }\n\n  onInput (evt) {\n    this.dropdownTarget.click();\n    for (const child of this.dropdownTarget.children) {\n      child.classList.toggle(\n        'hidden',\n        child.textContent.toLowerCase().indexOf(this.inputTarget.value.toLowerCase()) === -1\n      );\n    }\n  }\n\n  show (evt) {\n    this.dropdownTarget.classList.add('block');\n  }\n\n  hide (evt) {\n    if (document.activeElement !== this.inputTarget) {\n      this.dropdownTarget.classList.remove('block');\n    }\n  }\n\n  onSelect (evt) {\n    this.hiddenTarget.value = evt.target.value;\n    this.inputTarget.value = evt.target.textContent.trim();\n  }\n\n  disconnect () {\n    window.removeEventListener('click', () => this.hide());\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = ['copy', 'ok', 'text'];\n  static values = {\n    copied: { type: Boolean, default: false },\n    text: String\n  };\n\n  copy (evt) {\n    navigator.clipboard.writeText(this.textValue.trim());\n    this.copiedValue = true;\n  }\n\n  copiedValueChanged () {\n    if (this.hasOkTarget && this.hasCopyTarget) {\n      this.okTarget.classList.toggle('hidden', !this.copiedValue);\n      this.copyTarget.classList.toggle('hidden', this.copiedValue);\n    }\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\n// Connects to data-controller=\"admin--color-preview\"\nexport default class extends Controller {\n  static targets = ['preview', 'input'];\n\n  setColor (evt) {\n    const colorValue = evt.target.value;\n    const colorId = evt.target.dataset.colorId;\n\n    // Change the color style in the preview to the css style of 'data-color-attribute' value\n    this.previewTargets.filter((target) => target.dataset.colorId === colorId)\n      .forEach((target) => {\n        target.style[target.dataset.colorAttribute] = colorValue;\n      });\n\n    // Set both the color and text input again to the color value to make sure the text updates when\n    // we change the color input's value and vise versa\n    this.inputTargets.filter((target) => target.dataset.colorId === colorId)\n      .forEach((target) => {\n        target.value = colorValue;\n      });\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\n// Specific controller for the gift card offer's edit view to calculate\n// the cashback percent real-time when commission percentages are changed per tier.\nexport default class extends Controller {\n  static targets = ['input', 'output'];\n  static values = {\n    discountPercent: { type: Number, default: 0.0 },\n    issuanceFee: { type: Number, default: 0.0 },\n    commissionPercent: { type: Number, default: 0.0 },\n    defaultCommissionPercent: { type: Number, default: 0.0 }\n  };\n\n  connect () {\n    this.change();\n  }\n\n  commissionPercentValueChanged () {\n    this.outputTarget.innerText = `${this.round(this.discountPercentValue - this.commissionPercentValue - this.issuanceFeeValue)} %`;\n  }\n\n  change () {\n    this.commissionPercentValue = this.round(this.inputTarget.value);\n  }\n\n  round (num) {\n    if (num === '' || num === null || num === undefined) return null;\n\n    return parseFloat((Math.round(num * 10000) / 10000).toFixed(5));\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\n// A way to always scroll/jump to the same place when redirecting from a link\n// is to add an anchor tag to your links. (#tabs for ex).\n// This controller adds the chosen to-value as an anchor to all a elements\n// within your controller block. Just make sure you also have an element with\n// an id the same as your to-value present to jump to.\n//\n// for ex:\n// <div data-controller=\"jump\" data-jump-to-value=\"tabs\" id=\"tabs\">\n\nexport default class extends Controller {\n  static values = { to: String };\n\n  connect () {\n    if (this.toValue) {\n      this.element.querySelectorAll('a').forEach(link => {\n        const newHref = link.href + `#${this.toValue}`;\n        link.href = newHref;\n      });\n    }\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\n// A simple popover controller that 'copies' the template on top in the body\n// so it will always hover over the rest of your page.\n//\n// Needs a data-popover-target=\"template\" attribute to target the content that needs to be shown.\n// For the rest a show/hide to toggle the popover. this can be done with for ex. click or mouseover/mouseout.\nexport default class extends Controller {\n  static targets = ['template'];\n  EXTRA_MARGIN = 40;\n\n  connect () {\n    this.template = this.templateTarget;\n  }\n\n  show (evt) {\n    const target = evt.target;\n\n    const targetRect = target.getBoundingClientRect();\n    const bodyRect = document.body.getBoundingClientRect();\n    const windowWidth = window.innerWidth;\n\n    if (!this.popup) {\n      this.popup = this.template.cloneNode(true);\n    }\n\n    // To get the absolute x and y pos of the element the tooltip should position to.\n    const posX = targetRect.x - bodyRect.x;\n    // Add the height (offsetHeight) so the tooltip hang under. Normally it positions at top left.\n    const posY = targetRect.y - bodyRect.y + target.offsetHeight;\n    const popupStyle = `transform: translate(${posX}px, ${posY}px);`;\n\n    document.body.insertAdjacentElement('afterbegin', this.popup);\n    this.popup.classList.remove('hidden');\n\n    const popupRect = this.popup.getBoundingClientRect();\n    // To prevent part of the popup going out the right side of the screen when the popup is close to the edge.\n    // This we add a max-with witht the remaining screen space minus a little bit.\n    const extraPopupWidth = (posX + popupRect.width) - (windowWidth - this.EXTRA_MARGIN);\n\n    this.popup.style = `${popupStyle} max-width: ${popupRect.width - extraPopupWidth}px;`;\n  }\n\n  hide () {\n    this.popup.remove();\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\n// A simple panzoom controller that can pan and zoom the element of the data-controller attribute. It should work on a\n// lot of html elements. Panning happens with left mouse pressed and zooming with scrollwheel or scroll (two fingers) on\n// a macbook trackpad.\n//\n// Set up for ex:\n// <div data-controller=\"panzoom\" class=\"flex items-center justify-center h-screen\">\n//   <div class=\"flex absolute top-10 right-10 flex-col gap-2\">\n//     <div class=\"bg-white p-2 z-20 rounded text-center\" data-action=\"click->panzoom#reset\">Reset</div>\n//     <div class=\"bg-white p-4 z-20 rounded text-center\" data-action=\"click->panzoom#zoomIn\">+</div>\n//     <div class=\"bg-white p-4 z-20 rounded text-center\" data-action=\"click->panzoom#zoomOut\">-</div>\n//   </div>\n//   <%= image_tag(@id_verification.id_document, class: \"cursor-zoom-in z-10\", \"data-panzoom-target\": \"zoomable\") %>\n//   <div class=\"h-screen w-screen absolute z-0\" data-action=\"click->modal#close\"></div>\n// </div>\n\nexport default class extends Controller {\n  static values = {\n    transformMatrix: { type: Object, default: { scaleX: 1.0, skewX: 0.0, skewY: 0.0, scaleY: 1.0, transX: 0.0, transY: 0.0 } },\n    panning: { type: Boolean, default: false },\n    oldX: { type: Number, default: 0.0 },\n    oldY: { type: Number, default: 0.0 },\n    scrollZoomIncrement: { type: Number, default: 0.03 }\n  };\n\n  static targets = ['zoomable'];\n\n  // Set the input matrix as the transformMatrixValue and set it on the element style\n  updateTransformMatrix (matrix) {\n    this.transformMatrixValue = matrix;\n    const matrixList = Object.values(matrix);\n    const str = `matrix(${matrixList.join(', ')})`;\n    this.zoomableTarget.style.transform = str;\n  }\n\n  // Apply the difference (delta) of the panned movement to matrix (and element style)\n  applyTranslate (dx, dy) {\n    // These matrix values can overwrite each other in different controller instances so better make a true clone\n    const newTransformObject = structuredClone(this.transformMatrixValue);\n    newTransformObject.transX += dx;\n    newTransformObject.transY += dy;\n    this.updateTransformMatrix(newTransformObject);\n  }\n\n  // Apply the scale difference to our element\n  applyScale (deltaScale, x, y) {\n    // These matrix values can overwrite each other in different controller instances so better make a true clone\n    const newTransformObject = structuredClone(this.transformMatrixValue);\n    // width and height of the element\n    const width = this.zoomableTarget.width ? this.zoomableTarget.width : this.zoomableTarget.offsetWidth;\n    const height = this.zoomableTarget.height ? this.zoomableTarget.height : this.zoomableTarget.offsetHeight;\n    // divide so we can scale from the center instead of the top left corner\n    const transX = x - (width / 2);\n    const transY = y - (height / 2);\n\n    // first translate to mouse position\n    this.applyTranslate(transX, transY);\n    // scale the element with scroll increment (+ a bit extra so we can scale exponentionally)\n    deltaScale = deltaScale * newTransformObject.scaleX;\n    newTransformObject.scaleX += deltaScale;\n    newTransformObject.scaleY += deltaScale;\n    this.updateTransformMatrix(newTransformObject);\n    // translate back so it looks like we scale from the mouse position (with the scale offset incorporated in the translation)\n    this.applyTranslate(-(transX * deltaScale), -(transY * deltaScale));\n  }\n\n  startPanning (e) {\n    e.preventDefault();\n    this.zoomableTarget.style.cursor = 'grab';\n    this.panningValue = true;\n    this.oldXValue = e.clientX;\n    this.oldYValue = e.clientY;\n  }\n\n  stopPanning (e) {\n    this.zoomableTarget.style.cursor = 'zoom-in';\n    this.panningValue = false;\n  }\n\n  pan (e) {\n    if (this.panningValue) {\n      // get difference of mouse movement based on current mouse position - the old mouse position\n      const deltaX = e.clientX - this.oldXValue;\n      const deltaY = e.clientY - this.oldYValue;\n      // apply\n      this.applyTranslate(deltaX, deltaY);\n      // set the old mouse position to the current mouse position\n      this.oldXValue = e.clientX;\n      this.oldYValue = e.clientY;\n    }\n  }\n\n  zoomIn () {\n    this.applyScale(0.3, this.zoomableTarget.offsetWidth / 2, this.zoomableTarget.offsetHeight / 2);\n  }\n\n  zoomOut () {\n    this.applyScale(-0.3, this.zoomableTarget.offsetWidth / 2, this.zoomableTarget.offsetHeight / 2);\n  }\n\n  reset () {\n    this.updateTransformMatrix({ scaleX: 1.0, skewX: 0.0, skewY: 0.0, scaleY: 1.0, transX: 0.0, transY: 0.0 });\n  }\n\n  scroll (e) {\n    // Get zoom direction\n    // The event.detail shows a signed integer which is 1 (or -1 on the other direction) for a touch event and\n    // 3 for mouse scroll. The zooming was initially a bit fast for touchpads, but fine for mouse scroll. This can now\n    // make a distinction between the two and speed accordingly.\n    const delta = this.scrollZoomIncrementValue * (e.wheelData || -e.detail);\n    if (delta < 0) {\n      this.zoomableTarget.style.cursor = 'zoom-out';\n    } else {\n      this.zoomableTarget.style.cursor = 'zoom-in';\n    }\n    // Increment or decrement based on scroll direction and pass the mouse position offset of the element as well\n    // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/offsetX\n    this.applyScale(delta, e.offsetX, e.offsetY);\n  }\n\n  connect () {\n    this.zoomableTarget.addEventListener('mousedown', this.startPanning.bind(this));\n    this.zoomableTarget.addEventListener('mouseup', this.stopPanning.bind(this));\n    this.zoomableTarget.addEventListener('mouseleave', this.stopPanning.bind(this));\n    this.zoomableTarget.addEventListener('mousemove', this.pan.bind(this));\n    this.zoomableTarget.addEventListener('DOMMouseScroll', this.scroll.bind(this), false);\n    this.zoomableTarget.addEventListener('mousewheel', this.scroll.bind(this), false);\n  }\n\n  disconnect () {\n    this.zoomableTarget.removeEventListener('mousedown', this.startPanning.bind(this));\n    this.zoomableTarget.removeEventListener('mouseup', this.stopPanning.bind(this));\n    this.zoomableTarget.removeEventListener('mouseleave', this.stopPanning.bind(this));\n    this.zoomableTarget.removeEventListener('mousemove', this.pan.bind(this));\n    this.zoomableTarget.removeEventListener('DOMMouseScroll', this.scroll.bind(this), false);\n    this.zoomableTarget.removeEventListener('mousewheel', this.scroll.bind(this), false);\n    this.zoomableTarget.style.cursor = null;\n  }\n}\n", "/* eslint camelcase: \"off\" */\n/* eslint import/first: \"off\" */\n\nimport Rails from '@rails/ujs';\nimport '@hotwired/turbo-rails';\nimport { application } from './controllers/application';\nimport { Alert, Dropdown, Tabs, Slideover, Modal } from 'tailwindcss-stimulus-components';\nimport * as ActiveStorage from '@rails/activestorage';\nimport './direct_uploads.js'; // If we want to use this in places like web for instance, also import it there.\n\n// Enable Rails' Unobtrusive JavaScript (UJS) helpers\nRails.start();\nActiveStorage.start();\n\n// Import and register TailwindCSS Components\napplication.register('alert', Alert);\napplication.register('dropdown', Dropdown);\napplication.register('tabs', Tabs);\napplication.register('slideover', Slideover);\napplication.register('modal', Modal);\n\nimport Admin__PaymentSearchesController from './controllers/admin/payment_searches_controller.js';\napplication.register('admin--payment-searches', Admin__PaymentSearchesController);\n\nimport Admin__StatsChartController from './controllers/admin/stats_chart_controller.js';\napplication.register('admin--stats-chart', Admin__StatsChartController);\n\nimport Admin__AuthController from './controllers/admin/auth_controller.js';\napplication.register('admin--auth', Admin__AuthController);\n\nimport Admin__RetailerBankExclusionsController from './controllers/admin/retailer_bank_exclusions.js';\napplication.register('admin--retailer-bank-exclusions', Admin__RetailerBankExclusionsController);\n\nimport ImmediateInputSubmitController from './controllers/immediate_input_submit_controller.js';\napplication.register('immediate-input-submit', ImmediateInputSubmitController);\n\nimport LocaltimeFormatController from './controllers/localtime_format_controller.js';\napplication.register('localtime-format', LocaltimeFormatController);\n\nimport Admin__BulkController from './controllers/admin/bulk_controller.js';\napplication.register('admin--bulk', Admin__BulkController);\n\nimport Admin__DraggableController from './controllers/admin/draggable_controller.js';\napplication.register('admin--draggable', Admin__DraggableController);\n\nimport ToggleController from './controllers/toggle_controller.js';\napplication.register('toggle', ToggleController);\n\nimport DisableController from './controllers/disable_controller.js';\napplication.register('disable', DisableController);\n\nimport Admin__ReorderController from './controllers/admin/reorder_controller.js';\napplication.register('admin--reorder', Admin__ReorderController);\n\nimport Admin__ComboboxController from './controllers/admin/combobox_controller.js';\napplication.register('admin--combobox', Admin__ComboboxController);\n\nimport ClipboardController from './controllers/clipboard_controller.js';\napplication.register('clipboard', ClipboardController);\n\nimport Admin__ColorPreviewController from './controllers/admin/color_preview_controller.js';\napplication.register('admin--color-preview', Admin__ColorPreviewController);\n\nimport Admin__CashbackPercentController from './controllers/admin/cashback_percent_controller.js';\napplication.register('admin--cashback-percent', Admin__CashbackPercentController);\n\nimport JumpController from './controllers/jump_controller.js';\napplication.register('jump', JumpController);\n\nimport PopoverController from './controllers/popover_controller.js';\napplication.register('popover', PopoverController);\n\nimport PanzoomController from './controllers/panzoom_controller.js';\napplication.register('panzoom', PanzoomController);\n"],
  "mappings": "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",
  "names": ["consumer", "error", "consumer", "consumer", "subscription", "_a", "i", "n", "h", "l", "d", "c", "p", "g", "u", "f", "m", "x", "b", "v", "t", "e", "_b", "w", "T", "C", "s", "o", "r", "a", "L", "I", "$", "V", "y", "k", "M", "S", "A", "P", "O", "E", "D", "B", "N", "id", "i2", "z", "R", "W", "H", "X", "F", "G", "j", "Y", "U", "n2", "h2", "error", "CustomEvent", "confirm", "href", "navigator", "start", "_a", "_b", "cspNonce", "i", "nonce", "submitter", "config", "location", "delegate", "error", "toCacheKey", "confirmMethod", "cookie", "id", "x", "ctx", "morphChildren", "findBestMatch", "morphNode", "createMorphContext", "normalizeElement", "normalizeParent", "session", "visit", "href", "recentRequests", "navigator", "start", "Turbo", "findFrameElement_fn", "document", "c", "createConsumer", "m", "x", "submitter", "application", "error", "matches", "delegate", "fetch", "delegate", "matches", "match", "oldValue", "error", "_a", "constructor", "extend", "b", "application", "logger", "element", "c", "n", "v", "now", "secondsSince", "ConnectionMonitor", "message_types", "protocols", "supportedProtocols", "indexOf", "Connection", "consumer", "error", "d", "b", "p", "__assign", "i", "n", "f", "g", "n", "v", "m", "i", "n", "error", "i", "l", "error", "_a", "_b", "Environment", "XDomainTransport", "_a", "XHRTransport", "FetchTransport", "_a", "NodeTransport", "error", "PushApi", "_a", "Serializable", "Span", "error", "_a", "_b", "_a", "Queue", "_a", "Dispatcher", "_a", "_b", "Appsignal", "_b", "Dispatcher", "error", "_a", "appsignal", "application", "error", "span", "config", "error", "submitter", "m", "_a", "_b", "x", "b", "c", "d", "i", "n", "hex", "SparkMD5", "start", "toArray", "csrfToken", "delegate", "error", "id", "error", "Highcharts", "error", "i", "_a", "_b", "id", "evt", "b", "i", "evt", "x", "start", "m"]
}
