{
  "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/admin/carousel_controller.js", "../../javascript/controllers/admin/nested_fields_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 logger from \"./logger\"\nimport Subscription from \"./subscription\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\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 adapters from \"./adapters\"\nimport Connection from \"./connection\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport Consumer, { createWebSocketURL } from \"./consumer\"\nimport INTERNAL from \"./internal\"\nimport logger from \"./logger\"\nimport Subscription from \"./subscription\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport Subscriptions from \"./subscriptions\"\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 v13.1.1 (2026-09-20)\n * @module highcharts/highcharts\n *\n * (c) 2009-2026 Highsoft AS\n *\n * A commercial license may be required depending on use,\n * see 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())}(\"u\"<typeof window?this:window,()=>(()=>{\"use strict\";let t,e,i,s,o,r={};r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let a={};r.d(a,{default:()=>s0}),(ic=e3||(e3={})).SVG_NS=\"http://www.w3.org/2000/svg\",ic.product=\"Highcharts\",ic.version=\"13.1.1\",ic.win=\"u\">typeof window?window:{},ic.doc=ic.win.document,ic.svg=!!ic.doc?.createElementNS?.(ic.SVG_NS,\"svg\")?.createSVGRect,ic.pageLang=ic.doc?.documentElement?.closest(\"[lang]\")?.lang,ic.userAgent=ic.win.navigator?.userAgent||\"\",ic.isChrome=ic.win.chrome,ic.isFirefox=-1!==ic.userAgent.indexOf(\"Firefox\"),ic.isMS=/(edge|msie|trident)/i.test(ic.userAgent)&&!ic.win.opera,ic.isSafari=!ic.isChrome&&-1!==ic.userAgent.indexOf(\"Safari\"),ic.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ic.userAgent),ic.isWebKit=-1!==ic.userAgent.indexOf(\"AppleWebKit\"),ic.deg2rad=2*Math.PI/360,ic.marginNames=[\"plotTop\",\"marginRight\",\"marginBottom\",\"plotLeft\"],ic.noop=function(){},ic.supportsPassiveEvents=function(){let t=!1;if(!ic.isMS){let e={get passive(){return t=!0}};ic.win.addEventListener&&ic.win.removeEventListener&&(ic.win.addEventListener(\"testPassive\",ic.noop,e),ic.win.removeEventListener(\"testPassive\",ic.noop,e))}return t}(),ic.charts=[],ic.composed=[],ic.dateFormats={},ic.seriesTypes={},ic.symbolSizes={},ic.chartCount=0;let n=e3,h={dark:{backgroundColor:\"#141414\",neutralColor:\"#ffffff\",highlightColor:\"#2caffe\"},light:{backgroundColor:\"#ffffff\",neutralColor:\"#000000\",highlightColor:\"#0022ff\",positiveColor:\"#06b535\",negativeColor:\"#f21313\"}},{doc:l,win:d}=n;function c(t,e,i,s={}){let o=\"function\"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,\"hcEvents\")||(o.hcEvents={});let r=o.hcEvents;n.Point&&t instanceof n.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,i,!!n.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf(\"touch\"):s.passive,capture:!1}),r[e]||(r[e]=[]);let h={fn:i,order:\"number\"==typeof s.order?s.order:1/0};return r[e].push(h),r[e].sort((t,e)=>t.order-e.order),function(){q(t,e,i)}}function p(t){let e=t.length,i=t[0];for(;e--;)t[e]<i&&(i=t[e]);return i}function g(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i}function u(t,e,i){let s,o=W(e)&&!v(i),r=(e,i)=>{v(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||\"class\"!==i||(s=t.getAttribute(i+\"Name\")):t.removeAttribute(i)};return W(e)?r(i,e):j(e,r),s}function f(t,e,i){return t>e?t<i?t:i:e}function m(t,e){return t>1e14?t:parseFloat(t.toPrecision(e||14))}function x(t,e,i,s,o){let r=l.createElement(t);return e&&S(r,e),o&&b(r,{padding:\"0\",border:\"none\",margin:\"0\"}),i&&b(r,i),s&&s.appendChild(r),r}function y(t,e=0,i){let s=e%2/2,o=i?-1:1;return(Math.round(t*o-s)+s)*o}function b(t,e){S(t.style,e)}function v(t){return null!=t}function k(t,e,i){j(t,function(s,o){s!==e&&s?.destroy&&s.destroy(),(s?.destroy||!i)&&delete t[o]})}function w(t){t?.parentElement?.removeChild(t)}function M(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=J(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 X(i,!0)&&!i.nodeType?(r[h]=H(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}function C(t,e){let i=t.length;for(;i--;)if(t[i]===e){t.splice(i,1);break}}function S(t,e){let i;for(i in t||(t={}),e)\"__proto__\"!==i&&\"constructor\"!==i&&(t[i]=e[i]);return t}function T(t,e){let i=function(){};return i.prototype=new t,S(i.prototype,e),i}function P(t,e,i,s){if(i=i||{},l?.createEvent&&(t.dispatchEvent||t.fireEvent&&t!==n)){let s=l.createEvent(\"Events\");s.initEvent(e,!0,!0),i=S(s,i),t.dispatchEvent?t.dispatchEvent(i):t.fireEvent(e,i)}else if(t.hcEvents){i.target||S(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,t)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let A=(t=\"\")=>({center:.5,right:1,middle:.5,bottom:1})[t]||0;function L(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}function O(t){return Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function E(t,e){let i=t.split(\".\");for(;i.length&&v(e);){let t=i.shift();if(void 0===t||\"__proto__\"===t)return;if(\"this\"===t){let t;return X(e)&&(t=e[\"@this\"]),t??e}let s=e[t.replace(/[\\\\'\"]/g,\"\")];if(!v(s)||\"function\"==typeof s||\"number\"==typeof s.nodeType||s===d)return;e=s}return e}function I(t,e,i){let s;if(\"width\"===e){let e=Math.min(t.offsetWidth,t.scrollWidth),i=t.getBoundingClientRect?.().width;return i<e&&i>=e-1&&(e=Math.floor(i)),Math.max(0,e-(I(t,\"padding-left\",!0)||0)-(I(t,\"padding-right\",!0)||0))}if(\"height\"===e)return Math.max(0,Math.min(t.offsetHeight,t.scrollHeight)-(I(t,\"padding-top\",!0)||0)-(I(t,\"padding-bottom\",!0)||0));let o=d.getComputedStyle(t,void 0);return o&&(s=o.getPropertyValue(e),(i??\"opacity\"!==e)&&(s=U(s))),s}let D=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 B(t){v(t)&&clearTimeout(t)}function z(t){return X(t)&&\"number\"==typeof t.nodeType}function R(t){let e=t?.constructor;return!!(X(t,!0)&&!z(t)&&e?.name&&\"Object\"!==e.name)}function N(t){return\"number\"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function W(t){return\"string\"==typeof t}function H(t){let e=Object.prototype.toString.call(t);return\"[object Array]\"===e||\"[object Array Iterator]\"===e}function G(t){return\"function\"==typeof t}function X(t,e){return!!t&&\"object\"==typeof t&&(!e||!H(t))}function F(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&&(!X(i,!0)||R(i)||z(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}function Y(t,e,i,s,o){let r,a=t;i=i??O(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 m(a*i,-Math.round(Math.log(.001)/Math.LN10))}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 $(t){let e=l.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(d.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(d.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}}function V(t,e,i){return Array((e||2)+1-String(t).replace(\"-\",\"\").length).join(i||\"0\")+t}function U(t,e){return parseInt(t,e||10)}function _(t,e){return 0>t.indexOf(e)&&!!t.push(e)}function Z(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)}function K(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t}function q(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 J(t){return H(t)?t:[t]}function Q(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}function tt(t,e,i){return e>0?setTimeout(t,e,i):(t.call(0,i),-1)}function te(t){return W(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)}let{charts:ti,win:ts}=n;function to(t,e,i,s){let o=e?\"Highcharts error\":\"Highcharts warning\";32===t&&(t=`${o}: Deprecated member`);let r=N(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}P(n,\"displayError\",{chart:i,code:t,message:a,params:s},function(){if(e)throw Error(a);ts.console&&-1===to.messages.indexOf(a)&&console.warn(a)}),to.messages.push(a)}function tr(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]||N(s)&&s<(e[i].options.index??e[i]._i)||e[i].options.isInternal){e.splice(i,0,t);break}return i}(to||(to={})).messages=[];let ta={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5};Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let tn=(i=Math.random().toString(36).substring(2,9)+\"-\",s=0,function(){return\"highcharts-\"+(t?\"\":i)+s++});ts.jQuery&&(ts.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new n[W(t[0])?t.shift():\"Chart\"](this[0],t[0],t[1]),this):ti[u(this[0],\"data-highcharts-chart\")]});let{pageLang:th,win:tl}=n,td=n.isSafari&&tl.Intl&&!tl.Intl.DateTimeFormat.prototype.formatRange,tc=class{constructor(t,e){this.options={timezone:\"UTC\"},this.variableTimezone=!1,this.Date=tl.Date,this.lang=e,this.update(t)}update(t={}){this.dTLCache={},this.options=t=F(!0,this.options,t);let{timezoneOffset:e,useUTC:i,locale:s}=t;this.Date=t.Date||tl.Date||Date;let o=t.timezone;v(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)*864e5*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)]}dateTimeFormat(t,e,i=this.options.locale||this.lang?.locale||th){let s=JSON.stringify(t)+i;W(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)?(to(34),t.timeZone=\"UTC\",o=new Intl.DateTimeFormat(i,t)):to(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)&&S(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),i=(s-t/ta.hour+24)%24;if(n+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(i<5||i>20)){let e=this.getTimezoneOffset(n);t!==e?n+=e-t:t-36e5!==this.getTimezoneOffset(n-36e5)||td||(n-=36e5)}}return n}parse(t){if(!W(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(N(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(N(a))return a}return 0}dateFormat(t,e,i){let s=this.lang;if(!v(e)||isNaN(e))return s?.invalidDate||\"\";if(W(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(W(t)&&-1!==t.indexOf(\"%\")){let i=this,[o,r,a,h,l,d,c,p]=this.toParts(e),g=s?.weekdays||this.weekdays,u=s?.shortWeekdays||this.shortWeekdays,f=s?.months||this.months,m=s?.shortMonths||this.shortMonths;j(S({a:u?u[p]:g[p].substr(0,3),A:g[p],d:V(a),e:V(a,2,\" \"),w:p,v:s?.weekFrom??\"\",b:m[r],B:f[r],m:V(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:V(h),k:h,I:V(h%12||12),l:h%12||12,M:V(l),p:h<12?\"AM\":\"PM\",P:h<12?\"am\":\"pm\",S:V(d),L:V(c,3)},n.dateFormats),function(s,o){if(W(t))for(;-1!==t.indexOf(\"%\"+o);)t=t.replace(\"%\"+o,\"function\"==typeof s?s.call(i,e,i):s)})}else if(X(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(S({timeZone:s},t),e)+r}return i?te(t):t}resolveDTLFormat(t){return X(t,!0)?X(t,!0)&&void 0===t.main?{main:t}:t:{main:(t=J(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}},tp=class extends tc{getBoundaryTicks(t,e,i,s){let o={};if(e===ta.year)return o;let r=v(i)&&v(s),a=e<ta.hour,n=e<ta.day,h=e<ta.month,l=e>=ta.hour?9e5:e>=ta.minute?6e4:e>=ta.second&&1e3;if(t.length<1e4){let d=!0;for(let c=0;c<t.length;c++){let p=t[c];if(r){if(p<i)continue;if(p>s)break}if(d){if(e===ta.month){o[p]=\"year\",d=!1;continue}if(e===ta.hour){o[p]=\"day\",d=!1;continue}}if(l&&p%l!=0){d=!1;continue}let[,g,u,f,m,x,y]=this.toParts(p),b=!f&&!m&&!x&&!y;a&&0===m&&(o[p]=\"hour\"),n&&b&&(o[p]=\"day\"),h&&1===u&&b&&(o[p]=\"month\"),0===g&&1===u&&b&&(o[p]=\"year\"),d=!1}}return o}getTimeTicks(t,e,i,s){let o=[],{count:r=1,unitRange:a}=t,n=e,[h,l,d,c,p,g]=this.toParts(e),u=(e||0)%1e3,f;if(s??(s=1),v(e)){if(u=a>=ta.second?0:r*Math.floor(u/r),a>=ta.second&&(g=a>=ta.minute?0:r*Math.floor(g/r)),a>=ta.minute&&(p=a>=ta.hour?0:r*Math.floor(p/r)),a>=ta.hour&&(c=a>=ta.day?0:r*Math.floor(c/r)),a>=ta.day&&(d=a>=ta.month?1:Math.max(1,r*Math.floor(d/r))),a>=ta.month&&(l=a>=ta.year?0:r*Math.floor(l/r)),a>=ta.year&&(h-=h%r),a===ta.week){r&&(e=this.makeTime(h,l,d,c,p,g,u));let t=this.dateTimeFormat({timeZone:this.timezone,weekday:\"narrow\"},e,\"es\"),i=\"DLMXJVS\".indexOf(t);d+=-i+s+(i<s?-7:0)}e=this.makeTime(h,l,d,c,p,g,u),this.variableTimezone&&v(i)&&(f=i-e>4*ta.month||this.getTimezoneOffset(e)!==this.getTimezoneOffset(i));let t=e,n=1;for(;t<i;)o.push(t),a===ta.year?t=this.makeTime(h+n*r,0):a===ta.month?t=this.makeTime(h,l+n*r):f&&(a===ta.day||a===ta.week)?t=this.makeTime(h,l,d+n*r*(a===ta.day?1:7)):f&&a===ta.hour&&r>1?t=this.makeTime(h,l,d,c+n*r):t+=a*r,n++;o.push(t)}return o.info=S(t,{boundaryTicks:this.getBoundaryTicks(o,a,n,i),totalRange:a*r}),o}},{isTouchDevice:tg}=n,tu={palette:h,colors:Array(10).fill(1).map((t,e)=>`var(--highcharts-color-${e})`),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:\"var(--highcharts-neutral-color-3)\",padding:8,r:2,stroke:\"var(--highcharts-neutral-color-20)\",\"stroke-width\":1,style:{color:\"var(--highcharts-neutral-color-80)\",cursor:\"pointer\",fontSize:\"0.8em\",fontWeight:\"normal\"},states:{hover:{fill:\"var(--highcharts-neutral-color-10)\"},select:{fill:\"var(--highcharts-highlight-color-10)\",style:{color:\"var(--highcharts-neutral-color-100)\",fontWeight:\"bold\"}},disabled:{style:{color:\"var(--highcharts-neutral-color-20)\"}}}}},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,selectionMarkerFill:\"color-mix(in srgb, var(--highcharts-highlight-color-80) 25%, transparent)\",type:\"line\",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:\"right\",x:-10,y:10}}},width:null,height:null,borderColor:\"var(--highcharts-highlight-color-80)\",backgroundColor:\"var(--highcharts-background-color)\",plotBorderColor:\"var(--highcharts-neutral-color-20)\"},title:{style:{color:\"var(--highcharts-neutral-color-80)\",fontWeight:\"bold\"},text:\"Chart title\",margin:15,minScale:.67},subtitle:{style:{color:\"var(--highcharts-neutral-color-60)\",fontSize:\"0.8em\"},text:\"\"},caption:{margin:15,style:{color:\"var(--highcharts-neutral-color-60)\",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:\"var(--highcharts-neutral-color-40)\",borderRadius:0,navigation:{style:{fontSize:\"0.8em\"},activeColor:\"var(--highcharts-highlight-color-100)\",inactiveColor:\"var(--highcharts-neutral-color-20)\"},itemStyle:{color:\"var(--highcharts-neutral-color-80)\",cursor:\"pointer\",fontSize:\"0.8em\",textDecoration:\"none\",textOverflow:\"ellipsis\"},itemHoverStyle:{color:\"var(--highcharts-neutral-color-100)\"},itemHiddenStyle:{color:\"var(--highcharts-neutral-color-60)\",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:\"var(--highcharts-neutral-color-80)\",fontSize:\"0.8em\",fontWeight:\"bold\"}}},loading:{labelStyle:{fontWeight:\"bold\",position:\"relative\",top:\"45%\"},style:{position:\"absolute\",backgroundColor:\"var(--highcharts-background-color)\",opacity:.5,textAlign:\"center\"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderColor:\"light-dark(var(--highcharts-neutral-color-5), var(--highcharts-neutral-color-20))\",borderRadius:5,dateTimeLabelFormats:{millisecond:\"%[AebHMSL]\",second:\"%[AebHMS]\",minute:\"%[AebHM]\",hour:\"%[AebHM]\",day:\"%[AebY]\",week:\"%v %[AebY]\",month:\"%[BY]\",year:\"%[Y]\"},footerFormat:\"\",header:{distance:5,shape:\"callout\",style:{fontSize:\"1em\"}},hideDelay:500,showDelay:0,padding:8,position:{x:0,y:3},shared:!1,snap:tg?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:\"var(--highcharts-background-color)\",borderWidth:void 0,stickOnContact:!1,style:{color:\"var(--highcharts-neutral-color-80)\",cursor:\"default\",fontSize:\"0.8em\"},useHTML:!1},credits:{enabled:!0,href:\"https://www.highcharts.com?credits\",position:{align:\"right\",verticalAlign:\"bottom\",x:-10,y:-5},style:{cursor:\"pointer\",color:\"var(--highcharts-neutral-color-40)\",fontSize:\"0.6em\"},text:\"Highcharts.com\"}},tf=new tp(tu.time,tu.lang),tm={defaultOptions:tu,defaultTime:tf,getOptions:function(){return tu},setOptions:function(t){return P(n,\"setOptions\",{options:t}),F(!0,tu,t),t.time&&tf.update(tu.time),t.lang&&\"locale\"in t.lang&&tf.update({locale:t.lang.locale}),t.lang?.chartTitle&&(tu.title={...tu.title,text:t.lang.chartTitle}),tu}},{win:tx}=n,ty=(t,e,i)=>0===i?t:1===i?e:`color-mix(in srgb,${t},${e} ${100*i}%)`,tb=t=>W(t)&&!!t&&\"none\"!==t;class tv{static parse(t){return t?new tv(t):tv.None}constructor(t){let e,i,s,o;this.rgba=[0/0,0/0,0/0,0/0],this.input=t;let r=n.Color;if(r&&r!==tv)return new r(t);if(\"object\"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tv(t[1]));else if(\"string\"==typeof t)for(this.input=t=tv.names[t.toLowerCase()]||t,s=tv.parsers.length;s--&&!i;)(e=(o=tv.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=F(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&&N(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(N(t)&&0!==t)if(N(e[0]))for(let i=0;i<3;i++)e[i]+=U(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);else tv.useColorMix&&tb(this.input)&&(this.output=ty(this.input,t>0?\"white\":\"black\",Math.abs(t)));return this}setOpacity(t){return N(this.rgba[0])?this.rgba[3]=t:tv.useColorMix&&tb(this.input)&&(this.output=ty(this.input,\"#0000\",1-t)),this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!N(i[0])||!N(s[0]))return tv.useColorMix&&tb(this.input)&&tb(t.input)&&e<.99?ty(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(\",\")+\")\"}}tv.names={white:\"#ffffff\",black:\"#000000\"},tv.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[U(t[1]),U(t[2]),U(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[U(t[1]),U(t[2]),U(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[U(t[1]+t[1],16),U(t[2]+t[2],16),U(t[3]+t[3],16),v(t[4])?U(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[U(t[1],16),U(t[2],16),U(t[3],16),v(t[4])?U(t[4],16)/255:1]}}],tv.useColorMix=tx.CSS?.supports(\"color\",\"color-mix(in srgb,red,blue 9%)\"),tv.None=new tv(\"\");let{parse:tk}=tv,{win:tw}=n;class tM{constructor(t,e,i){this.pos=0/0,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];N(e)&&N(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??1,s=this.options.step;this[e+\"Setter\"]?this[e+\"Setter\"]():t&&t.attr?t.element&&t.attr(e,i,void 0,!0):t&&(t.style[e]=i+(this.unit||\"\")),s?.call(t,i,this)}run(t,e,i){let{elem:s,options:o}=this,{complete:r,curAnim:a={}}=o,n=t=>!n.stopped&&this.step(t),h=tw.requestAnimationFrame||function(t){setTimeout(t,13)},l=()=>{for(let t=0;t<tM.timers.length;t++)tM.timers[t]()||tM.timers.splice(t--,1);tM.timers.length&&h(l)};t!==e||s[\"forceAnimate:\"+this.prop]?(this.startTime=+new Date,this.start=t,this.end=e,this.unit=i,this.now=this.start,this.pos=0,n.elem=s,n.prop=this.prop,n()&&1===tM.timers.push(n)&&h(l)):(delete a[this.prop],r&&0===Object.keys(a).length&&r.call(s))}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,j(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&&N(l)&&(d=r.length+l*n,p?(u(g,r),f(r)):(u(r,g),f(g))),[g,r]}fillSetter(){tM.prototype.strokeSetter.apply(this,arguments)}strokeSetter(){this.elem.attr(this.prop,tk(this.start).tweenTo(tk(this.end),this.pos),void 0,!0)}}function tC(t,e){e.renderer.globalAnimation=t??e.options.chart.animation??!0}function tS(t){return X(t)?F({duration:500,defer:0},t):{duration:500*!!t,defer:0}}function tT(t,e,i){let s=tS(e),o=i?[i]:t.series,r=0,a=0;return o.forEach(t=>{let i=tS(t.options.animation);r=X(e)&&v(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)}}function tP(t,e={pos:1},i){X(i)||(i={duration:arguments[2],easing:arguments[3],complete:arguments[4]}),N(i.duration)||(i.duration=400),i.easing=\"function\"==typeof i.easing?i.easing:Math[i.easing]||Math.easeInOutSine,i.curAnim=F(e),j(e,(s,o)=>{t&&tA(t,o);let r=new tM(t,i,o),a=e.d,n=\"dashstyle\"===o,h=0,l,d=\"\";\"d\"===o&&H(a)?(r.paths=r.initPath(t,t.pathArray,a),r.toD=a,l=1):t?.attr?(h=t.attr(o),n&&t.attr(o,s)):t&&(h=+(I(t,o)||0),\"opacity\"!==o&&(d=\"px\")),l||(l=s),\"string\"==typeof l&&l.match(\"px\")&&(l=l.replace(/px/g,\"\")),v(l)&&!n&&r.run(h,l,d)})}tM.timers=[];let tA=(t,e)=>tM.timers.forEach(i=>{i.elem!==t||e&&e!==i.prop||(i.stopped=!0)}),{SVG_NS:tL,win:tO}=n,{trustedTypes:tE}=tO,tI=tE&&G(tE.createPolicy)&&tE.createPolicy(\"highcharts\",{createHTML:t=>t}),tD=tI?tI.createHTML(\"\"):\"\";class tB{static filterUserAttributes(t){return j(t,(e,i)=>{let s=!0;-1===tB.allowedAttributes.indexOf(i)&&(s=!1),-1!==[\"background\",\"dynsrc\",\"href\",\"lowsrc\",\"src\",\"xlink:href\"].indexOf(i)&&(s=W(e)&&tB.allowedReferences.some(t=>0===e.indexOf(t))),s||(to(33,!1,void 0,{\"Invalid attribute in config\":`${i}`}),delete t[i]),W(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=tB.emptyHTML,e&&new tB(e).addToDOM(t)}constructor(t){this.nodes=\"string\"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return J(e).forEach(function(e){let o,r=e.tagName,a=e.textContent?n.doc.createTextNode(e.textContent):void 0,h=tB.bypassHTMLFiltering;if(r)if(\"#text\"===r)o=a;else if(-1!==tB.allowedTags.indexOf(r)||h){let s=\"svg\"===r?tL:i.namespaceURI||tL,l=n.doc.createElementNS(s,r),d=e.attributes||{};j(e,function(t,e){\"tagName\"!==e&&\"attributes\"!==e&&\"children\"!==e&&\"style\"!==e&&\"textContent\"!==e&&(d[e]=t)}),u(l,h?d:tB.filterUserAttributes(d)),e.style&&b(l,e.style),a&&l.appendChild(a),t(e.children||[],l),o=l}else to(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(tI?tI.createHTML(t):t,\"text/html\")}catch{try{e=new DOMParser().parseFromString(t,\"text/html\")}catch{}}e||((e=n.doc.implementation.createHTMLDocument(\"\")).body.innerHTML=t);let s=(t,e)=>{let i=t.localName||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=tB.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}}tB.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\",\"aria-sort\",\"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\",\"stop-color\",\"stop-opacity\",\"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\"],tB.allowedReferences=[\"https://\",\"http://\",\"mailto:\",\"/\",\"../\",\"./\",\"#\"],tB.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\",\"sub\",\"sup\",\"svg\",\"table\",\"tbody\",\"td\",\"text\",\"textPath\",\"th\",\"thead\",\"title\",\"tr\",\"tspan\",\"u\",\"ul\"],tB.emptyHTML=tD,tB.bypassHTMLFiltering=!1;let{defaultOptions:tz,defaultTime:tR}=tm,{pageLang:tN}=n,tW={add:(t,e)=>t+e,divide:(t,e)=>0!==e?m(t/e):\"\",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!H(t)&&t.map((i,s)=>tG(e.body,S(X(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)=>m(t*e,15),ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:te,unless:t=>!t},tH={};function tG(t=\"\",e,i){let s=/\\{([^{}]+)\\}/g,o=/\\(([^()]+)\\)/g,r=[],a=/f$/,n=/\\.(\\d)/,h=i?.options?.lang||tz.lang,l=i?.time||tR,d=i?.numberFormatter||tX.bind(i),c=(t=\"\")=>{let i;return\"true\"===t||\"false\"!==t&&((i=Number(t)).toString()===t?i:/^[\"'].+[\"']$/.test(t)?t.slice(1,-1):E(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(\"#\",\"\");tW[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=tW[m].length;p--;)t.unshift(c(o[p+1]));r=tW[m].apply(e,t),s.isBlock&&\"boolean\"==typeof r&&(r=tG(r?g:u,e,i))}else{let t=/^[\"'].+[\"']$/.test(f)?[f]:f.split(\":\");if(r=c(t.shift()||\"\"),t.length&&\"number\"==typeof r){let e=t.join(\":\");if(a.test(e)){let t=parseInt((e.match(n)||[\"\",\"-1\"])[1],10);null!==r&&(r=d(r,t,h.decimalPoint,e.indexOf(\",\")>-1?h.thousandsSep:\"\"))}else r=l.dateFormat(e,r)}o.lastIndex=0,o.test(s.find)&&W(r)&&(r=`\"${r}\"`)}t=t.replace(s.find,r??\"\")}),f?tG(t,e,i):t}function tX(t,e,i,s){e*=1;let o,r,[a,n]=(t=+t||0).toString().split(\"e\").map(Number),h=this?.options?.lang||tz.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):N(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),N(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),\"\"===s&&(c.useGrouping=!1);let p=s||i,g=p?\"en\":this?.locale||h.locale||tN,u=JSON.stringify(c)+g;return o=(tH[u]??(tH[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 tF={dateFormat:function(t,e,i){return tR.dateFormat(t,e,i)},format:tG,helpers:tW,numberFormat:tX};(e9||(e9={})).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=!0,g,u,m=0;for(c=h;c--;)m+=e[c].size;if(m>r){if(Q(e,(t,e)=>(e.rank||0)-(t.rank||0)),e[0].rank===e[e.length-1].rank){let t=[[0,h-1]];for(;t.length&&m>r;){let i=t.shift();if(!i)break;g=e[c=Math.floor((i[0]+i[1])/2)],_(l,c)&&(m-=g.size),i[0]<c&&t.push([i[0],c-1]),c<i[1]&&t.push([c+1,i[1]])}}else for(c=h-1;m>r&&c>=0;)g=e[c],_(l,c)&&(m-=g.size),c--;l.sort((t,e)=>e-t).forEach(t=>d.apply(n,e.splice(t,1)))}for(Q(e,a),e=e.map(t=>({size:t.size,targets:[t.target],align:t.align??.5}));p;){for(c=e.length;c--;)g=e[c],u=(Math.min.apply(0,g.targets)+Math.max.apply(0,g.targets))/2,g.pos=f(u-g.size*g.align,0,i-g.size);for(c=e.length,p=!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),p=!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))}),Q(o,a),o};let tY=e9,{deg2rad:tj,doc:t$,svg:tV,SVG_NS:tU,win:t_,isFirefox:tZ}=n;class tK{_defaultGetter(t){let e=this[t+\"Value\"]??this[t]??(this.element?this.element.getAttribute(t):null)??this.box?.[t]??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||W(i)?i||\"renderer\":void 0;n&&(a&&_(r,this),i=void 0);let h=i??o[n]??o,l=(h.x||0)+(t.x||0)+((h.width||0)-(t.width||0))*A(t.align),d=(h.y||0)+(t.y||0)+((h.height||0)-(t.height||0))*A(t.verticalAlign),c={};return t.align&&(c[\"text-align\"]=t.align),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=tS(e??this.renderer.globalAnimation??!0),o=s.defer;return t$.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),tt(()=>{this.element&&tP(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),j(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&&n.svg){this.fakeTS=!0,o=o.replace(/(^[\\d\\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=t$.createElementNS(tU,\"tspan\");u(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=t$.createElementNS(tU,\"tspan\");a.textContent=\"\u200B\",u(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=tK.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):(j(t,function(e,i){l=!1,s||tA(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=tn()+\"-\",i=this.renderer.createElement(\"clipPath\").attr({id:e}).add(this.renderer.defs);S(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=y(i,e),n=y(s,e);return S(t,{x:a,y:n,width:y(o,e)-a,height:y(r,e)-n}),v(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;P(this.renderer,\"complexColor\",{args:arguments},()=>{if(t.radialGradient?r=\"radialGradient\":t.linearGradient&&(r=\"linearGradient\"),r){if(a=t[r],h=s.gradients,l=t.stops,c=i.radialReference,H(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:\"userSpaceOnUse\"}),\"radialGradient\"===r&&c&&!v(a.gradientUnits)&&(n=a,a=F(a,s.getRadialAttr(c,n),{gradientUnits:\"userSpaceOnUse\"})),j(a,function(t,e){\"id\"!==e&&g.push(e,t)}),j(l,function(t){g.push(t)}),h[g=g.join(\",\")])p=h[g].attr(\"id\");else{a.id=p=tn();let t=h[g]=s.createElement(r).attr(a).add(s.defs);t.radAttr=n,t.stops=[],l.forEach(([e,i])=>{0===i.indexOf(\"rgba\")?(i=(o=tv.parse(i)).get(\"rgb\"),d=o.get(\"a\")):d=1;let r=s.createElement(\"stop\").attr({offset:e,\"stop-color\":i,\"stop-opacity\":d}).add(t);t.stops.push(r)})}u=\"url(\"+s.url+\"#\"+p+\")\",i.setAttribute(e,u),i.gradient=g,t.toString=function(){return u}}})}css(t){let e=this.styles,i={},s=this.element,o=this.renderer,r,a=!e;if(e&&j(t,function(t,s){e&&e[s]!==t&&(i[s]=t,a=!0)}),a){e&&(t=S(e,i)),null===t.width||\"auto\"===t.width?delete this.textWidth:\"text\"===s.nodeName.toLowerCase()&&t.width&&(r=this.textWidth=U(t.width)),S(this.styles,t),r&&!tV&&o.forExport&&delete t.width;let a=tZ&&t.fontSize||null;a&&(N(a)||/^\\d+$/.test(a))&&(t.fontSize+=\"px\");let n=F(t);s.namespaceURI===this.SVG_NS&&([\"textOutline\",\"textOverflow\",\"whiteSpace\",\"width\"].forEach(t=>n&&delete n[t]),n.color&&(n.fill=n.color,delete n.color)),b(s,n)}return this.added&&(\"text\"===this.element.nodeName&&o.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]=\"\"+U(s[e])*(i??0/0);t=s.join(\",\").replace(/NaN/g,\"none\"),this.element.setAttribute(\"stroke-dasharray\",t)}}destroy(){let t=this,{element:e={},renderer:i,stops:s}=t,o=e.ownerSVGElement;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,tA(t),t.clipPath&&o){let e=t.clipPath;[].forEach.call(o.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(s){for(let t of s)t.destroy();s.length=0}t.safeRemoveChild(e),t.alignOptions&&C(i.alignedObjects,t),j(t,(e,i)=>{(t[i]?.parentGroup===t||-1!==[\"connector\",\"foreignObject\"].indexOf(i))&&t[i]?.destroy?.(),delete t[i]})}dSetter(t,e,i){H(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,{element:r,renderer:a,styles:n,textStr:h}=this,{cache:l,cacheKeys:d}=a,c=r.namespaceURI===this.SVG_NS,p=e??this.rotation??0,g=a.styledMode?r&&tK.prototype.getStyle.call(r,\"font-size\"):n.fontSize,u=this.getBBoxCacheKey([a.rootFontSize,this.textWidth,this.alignValue,n.fontWeight,n.lineClamp,n.textOverflow,g,p]);if(u&&!t&&(i=l[u]),!i||i.polygon){if(c||a.forExport){try{o=this.fakeTS&&function(t){let e=r.querySelector(\".highcharts-text-outline\");e&&b(e,{display:t})},G(o)&&o(\"none\"),i=r.getBBox?S({},r.getBBox()):{width:r.offsetWidth,height:r.offsetHeight,x:0,y:0},G(o)&&o(\"\")}catch{}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,c&&(i.height=s=({\"11px,17\":14,\"13px,20\":16})[`${g||\"\"},${Math.round(s)}`]||s),p&&(i=this.getRotatedBox(i,p));let t={bBox:i};P(this,\"afterGetBBox\",t),i=t.bBox}if(u&&(\"\"===h||i.height>0)){for(;d.length>250;)delete l[d.shift()];l[u]||d.push(u),l[u]=i}return i}getBBoxCacheKey(t){if(v(this.textStr)){let e=\"\"+this.textStr;return -1===e.indexOf(\"<\")&&(e=e.replace(/\\d/g,\"0\")),[e,...t].join(\",\")}}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=A(a),c=Number(this.element.getAttribute(\"y\")||0)-(n?0:s),p=e*tj,g=(e-90)*tj,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]),C=i+d*(o-m)+v+M+c*y,S=C+m,T=S-r*y,P=T-m,L=s+c-d*x-k+w+c*b,O=L+x,E=O-r*b,I=E-x,D=Math.min(C,S,T,P),B=Math.min(L,O,E,I),z=Math.max(C,S,T,P)-D,R=Math.max(L,O,E,I)-B;return{x:D,y:B,width:z,height:R,polygon:[[C,L],[S,O],[T,E],[P,I]]}}getStyle(t){return t_.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=tU,this.element=\"div\"===e||\"body\"===e?x(e):t$.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},P(this,\"afterInit\")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=c(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(W(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=F(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},X(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=U(t):\"\"!==t&&(u(i=t$.createElementNS(tU,\"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;tK.symbolCustomAttribs.forEach(function(i){e[i]=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]||t$.createElementNS(this.SVG_NS,\"title\");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=K(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,rotation:o=0,rotationOriginX:r,rotationOriginY:a,scaleX:n,scaleY:h,text:l,translateX:d=0,translateY:c=0}=this,p=[`translate(${d},${c})`];v(s)&&p.push(\"matrix(\"+s.join(\",\")+\")\"),o&&p.push(\"rotate(\"+o+\" \"+(r??e.getAttribute(\"x\")??this.x??0)+\" \"+(a??e.getAttribute(\"y\")??this.y??0)+\")\"),(v(n)||v(h))&&p.push(`scale(${n??1} ${h??1})`),p.length&&!(l||this).textPath&&(i?.element||e).setAttribute(t,p.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{element:i,parentGroup:s,renderer:o}=this,r=s?.element||o.box,a=r===o.box,n,h,l,d=!1,c,p=this.added,g;if(v(t)?(i.setAttribute(\"data-z-index\",t),t*=1,this[e]===t&&(p=!1)):v(this[e])&&i.removeAttribute(\"data-z-index\"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),g=(n=r.childNodes).length-1;g>=0&&!d;g--)c=!v(l=(h=n[g]).getAttribute(\"data-z-index\")),h!==i&&(v(t)&&t<0&&c&&!a&&!g?(r.insertBefore(i,n[g]),d=!0):(v(t)&&parseFloat(l||\"\")<=t||c&&(!v(t)||t>=0))&&(r.insertBefore(i,n[g+1]),d=!0));d||(r.insertBefore(i,n[3*!!a]),d=!0)}return d}}tK.symbolCustomAttribs=[\"anchorX\",\"anchorY\",\"clockwise\",\"end\",\"height\",\"innerR\",\"r\",\"start\",\"width\",\"x\",\"y\"],tK.prototype.strokeSetter=tK.prototype.fillSetter,tK.prototype.yGetter=tK.prototype.xGetter,tK.prototype.matrixSetter=tK.prototype.rotationOriginXSetter=tK.prototype.rotationOriginYSetter=tK.prototype.rotationSetter=tK.prototype.scaleXSetter=tK.prototype.scaleYSetter=tK.prototype.translateXSetter=tK.prototype.translateYSetter=tK.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let tq=tK,{charts:tJ}=n,tQ=[\"#2caffe\",\"#544fc5\",\"#00e272\",\"#fe6a35\",\"#6b8abc\",\"#d568fb\",\"#2ee0ca\",\"#fa4b42\",\"#feb56a\",\"#91e8e1\"],t0=[null,\"#00e272\",\"#efdf00\"];class t1{constructor(t,e){this.defaultOptions=h,this.options=F(h),this.cssVars={light:{},dark:{}},this.renderer=t,this.update(e)}injectCSS(t){let e,i,s,{cssVars:o,renderer:r}=this,a=Object.keys(M(t,this.defaultOptions)).length>0,n=Math.max(t.colors?.length||0,tQ.length),h=\"light\",l=(t,e)=>{W(t)&&(e=e.replace(/([0-9]+)/g,\"-$1\").replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`),o[h][`--highcharts-${e}`]=t)};for(let e of[\"light\",\"dark\"]){let i=t[e]||{},s={},r=new tv(i?.neutralColor||\"\"),a=new tv(i?.backgroundColor||\"\"),d=new tv(i?.highlightColor||\"\");h=e,[3,5,10,20,40,60,80,100].forEach(t=>{s[`neutralColor${t}`]=a.tweenTo(r,t/100),s[`highlightColor${t}`]=a.tweenTo(d,t/100)});for(let s=0;s<n;s++)l(i?.colors?.[s]||t.colors?.[s]||(\"dark\"===e?t0:[])?.[s]||tQ[s]||\"#888a\",`color${s}`);j(i,l),j(s,l),\"light\"===e&&S(o.dark,o.light)}let d=r.defs.element,c=a?`*[data-highcharts-chart=\"${r.chartIndex}\"]`:\"\",p=d.querySelector(\"style.highcharts-palette\")||r.box.ownerDocument.createElement(\"style\");p.parentNode||(p.nonce=\"highcharts\",p.className=\"highcharts-palette\",d.appendChild(p)),i=(e=t=>{let e=\"\";return j(o.light,(i,s)=>{e+=t&&i!==o.dark[s]?`  ${s}: light-dark(${i}, ${o.dark[s]});\n`:`  ${s}: ${i};\n`}),e})(),s=e(!0),p.textContent=`${c||\":root\"} {\n${i}\n}\n@supports (color: light-dark(#fff, #000)) {\n  ${c||\":root\"} {\n${s}\n  }\n}\n.highcharts-container {\n  color-scheme: light dark;\n}\n.highcharts-light .highcharts-container {\n  color-scheme: light;\n}\n.highcharts-dark .highcharts-container {\n  color-scheme: dark;\n}`}update(t){let e=this.renderer.box.parentElement,i=tJ?.[this.renderer.chartIndex];t=F(!0,this.options,t),i&&(i.options.palette=t),!1!==t.injectCSS&&this.injectCSS(t),e&&(W(t.colorScheme)&&[\"light\",\"dark\",\"inherit\"].includes(t.colorScheme)?e.style.colorScheme=t.colorScheme:e.style.removeProperty(\"color-scheme\"))}}class t2 extends tq{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=t2.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=A(t);this.textAlign=t,e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&N(this.xSetting)&&this.attr({x:this.xSetting}),this.updateTextPadding())}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=F(t),t2.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),\"fontSize\"in e||\"fontWeight\"in e||\"width\"in e?this.updateTextPadding():\"textOverflow\"in e&&this.updateBoxSize(),\"color\"in e&&this.updateBackground()}return tq.prototype.css.call(this,t)}destroy(){q(this.element,\"mouseenter\"),q(this.element,\"mouseleave\"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),tq.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.rotation)&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:a=0}=this,n=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),this.updateBackground()}onAdd(){this.text.add(this),this.attr({text:this.textStr??\"\",x:this.x||0,y:this.y||0}),this.box&&v(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){N(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()}updateBackground(){\"contrast\"===this.fill&&this.box?.attr({fill:this.renderer.getContrast(this.text.styles.color||\"#000\"),\"fill-opacity\":.65})}updateBoxSize(){let t,e=this.text,i={},s=this.padding,o=this.bBox=(!N(this.widthSetting)||!N(this.heightSetting)||this.textAlign)&&v(e.textStr)?e.getBBox(void 0,0):t2.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(S(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)+A(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=N(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=this.paddingLeft??t,i=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)}}function t5(t,e,i,s,o){let r=[];if(o){let a=o.start||0,n=o.end||0,h=o.r??i,l=o.r??(s||i),d=1e-4>Math.abs(n-a-2*Math.PI);d&&(a=Math.PI/2,n=2.5*Math.PI-1e-4);let c=o.innerR,p=o.open??d,g=d?0:Math.cos(a),u=d?1:Math.sin(a),f=d?0:Math.cos(n),m=d?1:Math.sin(n),x=o.longArc??(n-a-Math.PI<1e-4?0:1),y=[\"A\",h,l,0,x,o.clockwise??1,t+(d?.001:h*f),e+l*m];y.params={start:a,end:n,cx:t,cy:e},r.push([\"M\",t+h*g,e+l*u],y),v(c)&&((y=[\"A\",c,c,0,x,v(o.clockwise)?1-o.clockwise:0,t+(d?-.001:c*g),e+c*u]).params={start:n,end:a,cx:t,cy:e},r.push(p?[\"M\",t+c*f,e+c*m]:[\"L\",t+c*f,e+c*m],y)),p||r.push([\"Z\"])}return r}function t3(t,e,i,s,o){return o?.r?t9(t,e,i,s,o):[[\"M\",t,e],[\"L\",t+i,e],[\"L\",t+i,e+s],[\"L\",t,e+s],[\"Z\"]]}function t9(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\"]]}t2.emptyBBox={width:0,height:0,x:0,y:0},t2.textProps=[\"color\",\"direction\",\"fontFamily\",\"fontSize\",\"fontStyle\",\"fontWeight\",\"lineClamp\",\"lineHeight\",\"textAlign\",\"textDecoration\",\"textOutline\",\"textOverflow\",\"whiteSpace\",\"width\"];let t6={arc:t5,callout:function(t,e,i,s,o){let r=o?.arrowLength??6,a=Math.min(o?.r||0,i,s),n=a+6,h=o?.anchorX,l=o?.anchorY||0,d=t9(t,e,i,s,{r:a});if(!N(h)||h<i&&h>0&&l<s&&l>0)return d;if(t+h>i-n)if(l>e+n&&l<e+s-n)d.splice(3,1,[\"L\",t+i,l-6],[\"L\",t+i+r,l],[\"L\",t+i,l+6],[\"L\",t+i,e+s-a]);else if(h<i){let o=l<e+n,r=o?e:e+s;d.splice(o?2:5,0,[\"L\",h,l],[\"L\",t+i-a,r])}else d.splice(3,1,[\"L\",t+i,s/2],[\"L\",h,l],[\"L\",t+i,s/2],[\"L\",t+i,e+s-a]);else if(t+h<n)if(l>e+n&&l<e+s-n)d.splice(7,1,[\"L\",t,l+6],[\"L\",t-r,l],[\"L\",t,l-6],[\"L\",t,e+a]);else if(h>0){let i=l<e+n,o=i?e:e+s;d.splice(i?1:6,0,[\"L\",h,l],[\"L\",t+a,o])}else d.splice(7,1,[\"L\",t,s/2],[\"L\",h,l],[\"L\",t,s/2],[\"L\",t,e+a]);else l>s&&h<i-n?d.splice(5,1,[\"L\",h+6,e+s],[\"L\",h,e+s+r],[\"L\",h-6,e+s],[\"L\",t+a,e+s]):l<0&&h>n&&d.splice(1,1,[\"L\",h-6,e],[\"L\",h,e-r],[\"L\",h+6,e],[\"L\",i-a,e]);return d},circle:function(t,e,i,s){return t5(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:t3,roundedRect:t9,square:t3,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:t4,SVG_NS:t8,win:t7}=n,et=(t,e)=>t.substring(0,e)+\"\u2026\",ee=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=(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 tB(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(t4.createTextNode(this.unescapeEntities(s)));W(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t,e=this.svgElement,i=u(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)),u(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,et),t.textContent&&(t.textContent=t.textContent?.replace(\"\u2026\",\"\")+\"\u2026\"));break}n.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(t4.createTextNode(e),t);let s=t4.createElementNS(t8,\"tspan\");s.textContent=\"\u200B\",u(s,{dy:h,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,l,et)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===t7.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===t7.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\"),S(i,{attributes:o,style:a}),r&&r.filter(t=>\"#text\"!==t.tagName).forEach(e)};t.forEach(e),P(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,et)}i&&i.splice(0,u),l.actualWidth=h,l.rotation=d}unescapeEntities(t,e){return j(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,\"g\"),s))}),t}},{defaultOptions:ei}=tm,{charts:es,deg2rad:eo,doc:er,isFirefox:ea,isMS:en,isWebKit:eh,noop:el,SVG_NS:ed,symbolSizes:ec,win:ep}=n;class eg{constructor(t,e,i,s,o,r,a,n,h){let l,d;this.x=0,this.y=0;let p=this.createElement(\"svg\").attr({version:\"1.1\",class:\"highcharts-root\"}),g=p.element;t.appendChild(g),u(t,\"dir\",\"ltr\"),-1===t.innerHTML.indexOf(\"xmlns\")&&u(g,\"xmlns\",this.SVG_NS),this.box=g,this.boxWrapper=p,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement(\"desc\").add().element.appendChild(er.createTextNode(\"Created with Highcharts 13.1.1\")),this.defs=this.createElement(\"defs\").add(),this.allowHTML=r,this.forExport=o,this.styledMode=a,this.chartIndex=h||0,this.gradients={},this.cache={},this.cacheKeys=[],this.asyncCounter=0,this.rootFontSize=p.getStyle(\"font-size\"),this.setSize(e,i,!1),a||(p.css(this.getStyle(s||{})),this.palette=new t1(this,n||ei.palette)),ea&&t.getBoundingClientRect&&((l=function(){b(t,{left:0,top:0}),d=t.getBoundingClientRect(),b(t,{left:Math.ceil(d.left)-d.left+\"px\",top:Math.ceil(d.top)-d.top+\"px\"})})(),this.unSubPixelFix=c(ep,\"resize\",l))}definition(t){return new tB([t]).addToDOM(this.defs.element)}getReferenceURL(){if((ea||eh)&&er.getElementsByTagName(\"base\").length){if(!v(e)){let t=tn(),i=new tB([{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(er.body);b(i,{position:\"fixed\",top:0,left:0,zIndex:9e5});let s=er.elementFromPoint(6,6);e=s?.id===\"hitme\",er.body.removeChild(i)}if(e)return K(ep.location.href.split(\"#\")[0],[/<[^>]*>/g,\"\"],[/([\\('\\)])/g,\"\\\\$1\"],[/ /g,\"%20\"])}return\"\"}getStyle(t){return this.style=S({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(),k(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects.length=0,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=F({color:\"#000000\",offsetX:0,offsetY:2,opacity:.05,width:6},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 ee(t).buildSVG()}getContrast(t){if(\"transparent\"===t)return\"#000000\";let e=tv.parse(t).rgba,i=\" clamp(0,calc(9e9*(0.5 - (0.2126*r + 0.7152*g + 0.0722*b))),1)\";if(N(e[0])||!tv.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\"),p=this.styledMode,g=arguments,u=0;o=F(ei.global.buttonTheme,o),p&&(delete o.fill,delete o.stroke,delete o[\"stroke-width\"]);let f=o.states||{},m=o.style||{};delete o.states,delete o.style;let x=[tB.filterUserAttributes(o)],y=[m];return p||[\"hover\",\"select\",\"disabled\"].forEach((t,e)=>{x.push(F(x[0],tB.filterUserAttributes(g[e+5]||f[t]||{}))),y.push(x[e+1].style),delete x[e+1].style}),c(d.element,en?\"mouseover\":\"mouseenter\",function(){3!==u&&d.setState(1)}),c(d.element,en?\"mouseout\":\"mouseleave\",function(){3!==u&&d.setState(u)}),d.setState=(t=0)=>{if(1!==t&&(d.state=u=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\"+[\"normal\",\"hover\",\"pressed\",\"disabled\"][t]),!p){d.attr(x[t]);let e=y[t];X(e)&&d.css(e)}},d.attr(x[0]),!p&&(d.css(S({cursor:\"default\"},m)),l&&d.text.css({pointerEvents:\"none\"})),d.on(\"touchstart\",t=>t.stopPropagation()).on(\"click\",function(t){3!==u&&s?.call(d,t)})}crispLine(t,e){let[i,s]=t;return v(i[1])&&i[1]===s[1]&&(i[1]=s[1]=y(i[1],e)),v(i[2])&&i[2]===s[2]&&(i[2]=s[2]=y(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:\"none\"};return H(t)?e.d=t:X(t)&&S(e,t),this.createElement(\"path\").attr(e)}circle(t,e,i){let s=X(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;X(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=X(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,S(a,n.crisp(a))),a.fill=\"none\"),n.rSetter=function(t,e,i){n.r=t,u(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: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\"};N(e)&&(a.x=e),N(i)&&(a.y=i),N(s)&&(a.width=s),N(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 ep.Image;c(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\"),f=g&&this.symbols[g];if(f)\"number\"==typeof e&&(n=f.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),d.styledMode||a.attr(\"fill\",\"none\"),S(a,{symbolName:g||void 0,x:e,y:i,width:s,height:o}),r&&S(a,r);else if(p){h=t.match(c)[1];let s=a=this.image(h);s.imgwidth=r?.width??ec[h]?.width,s.imgheight=r?.height??ec[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),u(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)}}),v(e)&&s.attr({x:e,y:i}),s.isImg=!0,v(s.imgwidth)&&v(s.imgheight)?l(s):(s.attr({width:0,height:0}),x(\"img\",{onload:function(){let t=es[d.chartIndex];0===this.width&&(b(this,{position:\"absolute\",top:\"-999em\"}),er.body.appendChild(this)),ec[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.asyncCounter--,d.asyncCounter||!t||t.hasLoaded||t.onload()},src:h}),this.asyncCounter++)}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)),v(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=N(t)?t:U(tq.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*eo),4)),{x:-t/3*Math.sin(e*eo),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++)W(i[0])&&N(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 t2(this,t,e,i,s,o,r,a,n,h)}alignElements(){this.alignedObjects.forEach(t=>t.align())}}S(eg.prototype,{Element:tq,SVG_NS:ed,escapes:{\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",\"'\":\"&#39;\",'\"':\"&quot;\"},symbols:t6,draw:el}),n.Renderer=eg;let{composed:eu,isFirefox:ef}=n;class em extends tq{static compose(t){_(eu,\"HTMLElement\")&&(t.prototype.html=function(t,e,i){return new em(this,\"div\").attr({text:t,x:Math.round(e),y:Math.round(i),xmlns:\"http://www.w3.org/1999/xhtml\"})})}constructor(t,e){super(t,e),this.foreignObject=t.createElement(\"foreignObject\").attr({zIndex:2}),this.element.style.whiteSpace=\"nowrap\"}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e,{element:i}=this,s=t&&\"width\"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=U(o)||void 0,e=!0),t?.textOverflow===\"ellipsis\"&&(t.overflow=\"hidden\",(t.lineClamp??this.styles.lineClamp)||(t.whiteSpace=\"nowrap\")),t?.lineClamp?(t.display=\"-webkit-box\",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient=\"vertical\",t.overflow=\"hidden\"):t?.lineClamp===0&&(t.display=\"inline-block\"),N(Number(t?.fontSize))&&(t.fontSize+=\"px\"),S(this.styles,t),b(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(){let t;if(!this.added){this.alignOnAdd=!0;return}let{element:e,foreignObject:i,oldTextWidth:s,renderer:o,rotation:r,scaleX:a,styles:{display:n=\"inline-block\",whiteSpace:h},textAlign:l=\"left\",textWidth:d,x:c=0,y:p=0}=this,g=()=>this.textPxLength?this.textPxLength:(b(e,{width:\"\",whiteSpace:h||\"nowrap\"}),e.offsetWidth),u=[r,l,e.innerHTML,d,this.textAlign].join(\",\");if(b(e,{display:\"inline-block\",verticalAlign:\"top\"}),d!==s){let t=g(),i=d||0,l=!o.styledMode&&\"\"===e.style.textOverflow&&e.style.webkitLineClamp;(i>s||t>i||l)&&(/[\\-\\s\\u00AD]/.test(e.textContent||e.innerText)||\"ellipsis\"===e.style.textOverflow)&&(b(e,{width:(r||a||t>i)&&N(d)?d+\"px\":l?Math.min(t+1,i)+\"px\":\"auto\",display:n,whiteSpace:h||\"normal\"}),this.oldTextWidth=d)}i.attr({width:o.width,height:o.height}),u!==this.cTT&&(t=o.fontMetrics(e).b,this.getSpanCorrection(!v(r)&&!this.textWidth&&this.textPxLength||e.offsetWidth,t,A(l))),super.updateTransform(),N(c)&&N(p)?(i.attr({x:c+(this.xCorr||0),y:p+(this.yCorr||0),width:e.offsetWidth+4,height:e.offsetHeight+1,\"transform-origin\":e.getAttribute(\"transform-origin\")||\"0 0\"}),b(e,{display:n,textAlign:l})):ef&&i.attr({width:0,height:0}),this.cTT=u}add(t){let{foreignObject:e}=this;return e.add(t),super.add(e),this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.oldTextWidth,tB.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}visibilitySetter(t,e){this.foreignObject.attr({[e]:t}),this[e]=t}}let ex=em.prototype;ex.ySetter=ex.xSetter,ex.opacitySetter=ex.visibilitySetter,(ip=e6||(e6={})).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]\",boundary:void 0,range:!1},day:{main:\"%[eb]\",boundary:\"%[eb]\"},week:{main:\"%[eb]\"},month:{main:\"%[bY]\",boundary:void 0},year:{main:\"%[Y]\",boundary:void 0}},endOnTick:!1,gridLineDashStyle:\"Solid\",gridZIndex:1,labels:{autoRotationLimit:80,enabled:!0,indentation:10,overflow:\"justify\",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:\"var(--highcharts-neutral-color-80)\",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,tickmarkPlacement:\"between\",tickPixelInterval:100,tickPosition:\"outside\",title:{align:\"middle\",useHTML:!1,x:0,y:0,style:{color:\"var(--highcharts-neutral-color-60)\",fontSize:\"0.8em\"}},visible:!0,minorGridLineColor:\"var(--highcharts-neutral-color-5)\",minorGridLineWidth:1,minorTickColor:\"var(--highcharts-neutral-color-40)\",lineColor:\"var(--highcharts-neutral-color-80)\",lineWidth:1,gridLineColor:\"var(--highcharts-neutral-color-10)\",gridLineWidth:void 0,tickColor:\"var(--highcharts-neutral-color-80)\"},ip.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(){return this.axis.chart.numberFormatter(this.total||0,-1)},style:{color:\"var(--highcharts-neutral-color-100)\",fontSize:\"0.7em\",fontWeight:\"bold\",textOutline:\"1px contrast\"}},gridLineWidth:1,lineWidth:0};let ey=e6;(e4||(e4={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},j(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(q(t,i,t.eventOptions[i]),delete t.eventOptions[i]),G(e)&&(t.eventOptions[i]=e,c(t,i,e,{order:0})))})};let eb=e4,{deg2rad:ev}=n,ek=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,P(this,\"init\"),i||s||this.addLabel()}addLabel(){let t,e,i,s=this,o=s.axis,r=o.options,a=o.chart,n=o.categories,h=o.logarithmic,l=o.names,d=s.pos,c=s.options?.labels??r.labels,p=o.tickPositions,g=d===p[0],u=d===p[p.length-1],f=p.info,x=f?.boundaryTicks[d],y=r.dateTimeLabelFormats,b=this.parameters.category||(n?n[d]??l[d]??d:d);if(h&&N(b)&&(b=m(h.lin2log(b))),o.dateTime&&y)if(f){let i=f.unitName,s={millisecond:\"hour\",second:\"hour\",minute:\"hour\",hour:\"day\",day:\"month\",week:\"month\",month:\"year\",year:\"year\"}[i],o=!r.grid?.enabled&&x&&s&&y[s]?.boundary||y[i];t=(e=a.time.resolveDTLFormat(o)).main}else N(b)&&(t=o.dateTime.getXDateFormat(b,y||{}));s.isFirst=g,s.isLast=u,s.boundary=x;let v={axis:o,chart:a,dateTimeLabelFormat:t,boundary:x,isFirst:g,isLast:u,pos:d,tick:s,tickPositionInfo:f,value:b};P(this,\"labelFormat\",v);let k=t=>c.formatter?c.formatter.call(t,t):c.format?(t.text=o.defaultLabelFormatter.call(t),tF.format(c.format,t,a)):o.defaultLabelFormatter.call(t);s.label=s.createLabel(k.call(v,v),c);let w=e?.list,M=s.label;w&&M?s.shortenLabel=function(){for(i=0;i<w.length;i++)if(S(v,{dateTimeLabelFormat:w[i]}),M.attr({text:k.call(v,v)}),M.getBBox().width<o.getSlotWidth(s)-2*(c.padding||0))return;M.attr({text:\"\"})}:s.shortenLabel=void 0}createLabel(t,e,i){let s=this.axis,{renderer:o,styledMode:r}=s.chart,a=e.style,n=a.whiteSpace,h=this.label;return v(t)&&e.enabled?h||(h=o.text(t,i?.x,i?.y,e.useHTML).add(s.labelGroup)):h&&(h=h.destroy(),this.isNewLabel=!0),h&&(h.labelStyle!==a||t!==h.textStr)&&(h.labelStyle=a,t!==h.textStr&&(h.attr({text:t}),delete h.textPxLength),r||h.css(F(a)),h.textPxLength??(h.textPxLength=h.getBBox().width),!r&&n&&h.css({whiteSpace:n})),h}destroy(){k(this,this.axis)}getPosition(t,e,i,s){let o=this.axis,r=o.chart,a=s&&r.oldChartHeight||r.chartHeight,n={x:t?m(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):m(a-o.translate(e+i,void 0,void 0,s)-o.transB)};return n.y=f(n.y,-1e9,1e9),P(this,\"afterGetPosition\",{pos:n}),n}getLabelPosition(t,e,i,s,o,r,a,n){let h,l,d=this.axis,{labelAlign:c,side:p,staggerLines:g,transA:u}=d,f=d.linkedParent?d.linkedParent.reversed:d.reversed,m=d.tickRotCorr||{x:0,y:0},x=s||d.reserveSpaceDefault?0:-(d.labelOffset||0)*(\"center\"===d.labelAlign?.5:1),y=o.distance??((1!==p||\"right\"!==c||o.reserveSpace)&&(3!==p||\"left\"!==c||o.reserveSpace)?15:0),b={};return h=0===p?i.rotation?-y:-i.getBBox().height:2===p?m.y+y:Math.cos(i.rotation*ev)*(m.y-i.getBBox(!1,0).height/2),v(o.y)&&(h=0===p&&d.horiz?o.y+h:o.y),t=t+(o.x??[0,1,0,-1][p]*y)+x+m.x-(r&&s?r*u*(f?-1:1):0),e=e+h-(r&&!s?r*u*(f?1:-1):0),g&&(l=a/(n||1)%g,d.opposite&&(l=g-l-1),e+=l*(d.labelOffset/g)),b.x=t,b.y=Math.round(e),P(this,\"afterGetLabelPosition\",{pos:b,tickmarkOffset:r,index:a}),b}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{axis:e,label:i}=this,s=e.options.labels,o=t.x,{chartWidth:r,spacing:a}=e.chart,n=e.labelLeft??Math.min(e.pos,a[3]),h=e.labelRight??Math.max(e.isRadial?0:e.pos+e.len,r-a[1]),l=i?.rotation||0,d=A(e.labelAlign||i?.attr(\"align\")),c=i?.getBBox().width||0,p=e.getSlotWidth(this),g=p,u=1,f;l||\"justify\"!==s.overflow?l<0&&o-d*c<n?f=Math.round(o/Math.cos(l*ev)-n):l>0&&o+d*c>h&&(f=Math.round((r-o)/Math.cos(l*ev))):(o-d*c<n?g=t.x+g*(1-d)-n:o+(1-d)*c>h&&(g=h-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&&i?.styles?.width)&&(f=g)),f&&i&&(this.shortenLabel?this.shortenLabel():i.css({width:Math.floor(f)+\"px\",lineClamp:+!e.isRadial}))}render(t,e,i){let s=this.axis,o=(e?s.old?.horiz:void 0)??s.horiz,r=this.pos,a=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;s.visible||(i=0);let g=i??1;!s.chart.polar&&(m(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,P(this,\"afterRender\")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,a=this.type,n=this.tickmarkOffset??i.tickmarkOffset,{renderer:h,styledMode:l}=i.chart,d=this.gridLine,c=s.gridLineWidth,p=s.gridLineColor,g=s.gridLineDashStyle;\"minor\"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,g=s.minorGridLineDashStyle),l||(o[\"stroke-width\"]=c||0),d||(a||(o.zIndex=1),this.gridLine=d=h.path().attr(o).addClass(\"highcharts-\"+(a?a+\"-\":\"\")+\"grid-line\").add(i.gridGroup));let u=i.getPlotLinePath({value:r+n,lineWidth:d.strokeWidth(),force:\"pass\",old:t,acrossPanes:!1});u&&(o.d=u,o.opacity=t?0:e,l||(o.stroke=p,o.dashstyle=g),d[t||this.isNew?\"attr\":\"animate\"](o))}renderMark(t,e){let i=this.axis,{chart:s,options:o}=i,r=s.renderer,a=this.type,n=i.tickSize(a?a+\"Tick\":\"tick\"),h=t.x,l=t.y,d=o[\"minor\"!==a?\"tickWidth\":\"minorTickWidth\"]??(!a&&i.isXAxis?1:0),c=o[\"minor\"!==a?\"tickColor\":\"minorTickColor\"],p=this.mark,g=p?\"animate\":\"attr\";(n||p)&&(i.opposite&&n&&(n[0]=-n[0]),p||(this.mark=p=r.path().addClass(\"highcharts-\"+(a?a+\"-\":\"\")+\"tick\").add(i.axisGroup)),s.styledMode||p[g]({stroke:c,\"stroke-width\":d}),p[g]({d:this.getMarkPath(h,l,n?.[0]||0,p.strokeWidth(),i.horiz,r),opacity:n?e:0}))}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=this.tickmarkOffset??o.tickmarkOffset,c=t.x,p=t.y,g=!0;n&&N(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&&!e&&0!==i&&this.handleOverflow(t):g=!1,l&&s%l&&(g=!1),g&&N(t.y)?(t.opacity=i,n[this.isNewLabel?\"attr\":\"animate\"](t).show(!0),this.isNewLabel=!1):(n.hide(),this.isNewLabel=!0))}},{xAxis:ew,yAxis:eM}=ey,{parse:eC}=tv,{defaultOptions:eS}=tm,{registerEventOptions:eT}=eb,{deg2rad:eP}=n,eA=(t,e)=>Y(e,void 0,void 0,t.options.allowDecimals??(e<.5||void 0!==t.tickAmount),!!t.tickAmount);S(eS,{xAxis:ew,yAxis:F(ew,eM)});let eL=class{constructor(t,e,i){this.clippable=!0,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,P(this,\"init\",{userOptions:e}),this.opposite=e.opposite??this.opposite,this.side=e.side??(o?2*!this.opposite:this.opposite?1:3),this.setOptions(e);let r=this.options,a=r.labels;this.type=r.type||\"linear\",this.uniqueNames=r.uniqueNames??!0,P(this,\"afterSetType\"),this.userOptions=e,this.minPixelPadding=0,this.reversed=r.reversed,this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames=\"category\"===this.type||!0===r.categories,this.categories=H(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[]),this.namesMap||(this.namesMap={}),this.plotLinesAndBandsGroups||(this.plotLinesAndBandsGroups={}),this.positiveValuesOnly=!!this.logarithmic,this.ticks||(this.ticks={}),this.labelEdge||(this.labelEdge=[]),this.minorTicks||(this.minorTicks={}),this.alternateBands||(this.alternateBands={}),this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.max=void 0,this.min=void 0;let n=r.crosshair??J(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),tr(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!v(this.reversed)&&(this.reversed=!0),this.labelRotation=N(a.rotation)?a.rotation:void 0,eT(this,r),P(this,\"afterInit\")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:1===this.side?90:-90}};this.options=F(e,\"yAxis\"===this.coll?{title:{text:this.chart.options.lang.yAxisTitle}}:{},eS[this.coll],t),P(this,\"afterSetOptions\",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,e=this.chart,{numberFormatter:i}=e,s=N(this.value)?this.value:0/0,o=t.chart.time,r=t.categories,a=this.dateTimeLabelFormat,n=eS.lang,h=n.numericSymbols,l=n.numericSymbolMagnitude||1e3,d=t.logarithmic?Math.abs(s):t.tickInterval,c=h?.length,p,g;if(r)g=`${this.value}`;else if(a)g=o.dateFormat(a,s,!0);else if(c&&h&&d>=1e3)for(;c--&&void 0===g;)d>=(p=Math.pow(l,c+1))&&10*s%p==0&&null!==h[c]&&0!==s&&(g=i(s/p,-1,void 0,void 0,e)+h[c]);return g??(g=i(s,-1,void 0,1e4>Math.abs(s)?\"\":void 0,e)),g}getSeriesExtremes(){let t,e=this;P(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,N(a)||a instanceof Date||(o=o.filter(N),a=(t=i.getXExtremes(o)).min,n=t.max),o.length&&(e.dataMin=Math.min(e.dataMin??a,a),e.dataMax=Math.max(e.dataMax??n,n)));else{let t=i.applyExtremes();N(t.dataMin)&&(a=t.dataMin,e.dataMin=Math.min(e.dataMin??a,a)),N(t.dataMax)&&(n=t.dataMax,e.dataMax=Math.max(e.dataMax??n,n)),v(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),P(this,\"afterGetSeriesExtremes\")}translate(t,e,i,s,o,r){let a=this.linkedParent||this,n=s&&a.old?a.old.min:a.min;if(!N(n))return 0/0;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+(N(r)?p*r:0),a.isRadial||(g=m(g)),1e-9>Math.abs(g)&&(g=0)),g}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??0/0,!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,{chart:i,left:s,top:o,transB:r}=e,{lineWidth:a,old:n,value:h}=t,l=(n?e.old?.horiz:void 0)??e.horiz,d=n&&i.oldChartHeight||i.chartHeight,c=n&&i.oldChartWidth||i.chartWidth,p=t.translatedValue,g=t.force,u,m,x,y,b;function v(t,e,i){return\"pass\"!==g&&(t<e||t>i)&&(g?t=f(t,e,i):b=!0),t}let k={value:h,lineWidth:a,old:n,force:g,acrossPanes:t.acrossPanes,translatedValue:p};return P(this,\"getPlotLinePath\",k,function(t){u=x=(p=f(p=p??e.translate(h,void 0,void 0,n),-1e9,1e9))+r,m=y=d-p-r,N(p)?l?(m=o,y=d-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),u=x=v(u,s,s+e.width)):(u=s,x=c-e.right+(i.scrollablePixelsX||0),m=y=v(m,o,o+e.height)):(b=!0,g=!1),t.path=b&&!g?void 0:i.renderer.crispLine([[\"M\",u,m],[\"L\",x,y]],a||1)}),k.path}getLinearTickPositions(t,e,i){let s,o,r,a=m(Math.floor(e/t)*t),n=m(Math.ceil(i/t)*t),h=[];if(m(a+t)===a&&(r=20),this.single)return[e];for(s=a;s<=n&&(h.push(s),(s=m(s+t,r))!==o);)o=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?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=v(t.min)||v(t.max)||v(t.floor)||v(t.ceiling)?null:Math.min(5*(L(this.series.map(t=>{let e=t.getColumn(\"x\");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),N(s)&&N(o)&&N(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=g(h))+r,i.parse(t.max)??o+r],n&&(l[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=p(l))-o<r&&(h[0]=s-r,h[1]=i.parse(t.min)??s-r,o=g(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&&v(s)&&t.reserveSpace()&&(e=v(e)?Math.min(e,s):s)}),i.length&&(i.sort((t,e)=>t-e),t=L([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t,e){let i,s=H(this.options.categories),{name:o,series:r}=t,a=s?this.categories:this.names,n=this.namesMap;return r.requireSorting=!1,v(e)||(e=this.uniqueNames&&a?s?a.indexOf(o):n[o]??-1:r.autoIncrement()),-1===e?!s&&a&&(i=a.length):N(e)&&(i=e),void 0!==i?(this.names[i]=t.name,n[t.name]=i):i=N(t.x)?t.x:r.autoIncrement(),i}updateNames(){let t=this,{names:e,namesMap:i}=this;e.length>0&&(Object.keys(i).forEach(function(t){delete i[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{if(e.xIncrement=null,delete e.xColumn,!e.points||e.isDirtyData)t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints();else{let t=e.getColumn(\"x\");e.points?.forEach(e=>{e.x=t[e.index]})}}))}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?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&&W(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,P(this,\"afterSetAxisTranslation\")}minFromRange(){let{max:t,min:e}=this;return N(t)&&N(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=N(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:g,floor:u,softMax:f,softMin:x}=h,y=this.linkedParent,b=h.tickPixelInterval,k=h.maxPadding,w=h.minPadding,M=0,C,S=N(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,T,A,L,O;if(r||e||y||this.getTickAmount(),L=this.userMin??d.parse(h.min),O=this.userMax??d.parse(h.max),y?(C=y.getExtremes(),this.min=C.min??C.dataMin,this.max=C.max??C.dataMax,this.type!==y.type&&to(11,!0,i)):(l&&v(c)&&N(s)&&N(o)&&(o>=c?(T=c,w=0):s<=c&&(A=c,k=0)),this.min=L??T??o,this.max=O??A??s),N(this.max)&&N(this.min)&&(n&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,o??this.min)&&to(10,!0,i),this.min=m(n.log2lin(this.min),16),this.max=m(n.log2lin(this.max),16)),this.range&&N(o)&&(this.userMin=this.min=L=Math.max(o,this.minFromRange()||0),this.userMax=O=this.max,this.range=void 0)),P(this,\"foundExtremes\"),this.adjustForMinRange(),N(this.min)&&N(this.max)){if(!N(this.userMin)&&N(x)&&x<this.min&&(this.min=L=x),!N(this.userMax)&&N(f)&&f>this.max&&(this.max=O=f),e||this.axisPointRange||this.stacking?.usePercentage||y||(M=this.max-this.min)&&(!v(L)&&w&&(this.min-=M*w),!v(O)&&k&&(this.max+=M*k)),!N(this.userMin)&&N(u)&&(this.min=Math.max(this.min,u)),!N(this.userMax)&&N(g)&&(this.max=Math.min(this.max,g)),l&&N(o)&&N(s)){let t=c||0;!v(L)&&this.min<t&&o>=t?this.min=h.minRange?Math.min(t,this.max-p):t:!v(O)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(v(h.min)?this.max=this.min:v(h.max)&&(this.min=this.max)),M=this.max-this.min}if(this.min!==this.max&&N(this.min)&&N(this.max)?y&&!S&&b===y.options.tickPixelInterval?this.tickInterval=S=y.tickInterval:this.tickInterval=S??(this.tickAmount?M/Math.max(this.tickAmount-1,1):e?1:M*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)}),P(this,\"postProcessData\",{hasExtremesChanged:t})}this.setAxisTranslation(),P(this,\"initialAxisTranslation\"),this.pointRange&&!S&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let E=h.minTickInterval??(r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!S&&E&&this.tickInterval<E&&(this.tickInterval=E),r||n||S||(this.tickInterval=eA(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&&v(this.min)&&!this.tickAmount&&(this.min%1==0||!1!==t.allowDecimals),e)n=e.slice();else if(N(this.min)&&N(this.max)){if(!this.ordinal?.positions&&(this.max-this.min)/this.tickInterval>Math.max(2*this.len,200))n=[this.min,this.max],to(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=eA(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,this]))&&(n=h))}this.isDirty||n.length===this.tickPositions?.length||(this.isDirty=!0),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.linkedParent&&N(this.min)&&N(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()),P(this,\"afterSetTickPositions\")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(P(this,\"trimTicks\"),!this.linkedParent||!this.grid){if(e&&N(s))this.min=s;else if(t.length)for(;this.min-r>t[0];)t.shift();if(i&&N(o))this.max=o;else for(;this.max+r<t[t.length-1];)t.pop();0===t.length&&v(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);N(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((!N(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData||t.xAxis?.isDirty))&&this.getSeriesExtremes(),N(this.threshold)){let t=f((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;v(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=t.threshold??(t.softThreshold?0:null),d,c,p=t.tickInterval,g,u=()=>r.push(m(r[r.length-1]+p)),x=()=>r.unshift(m(r[0]-p));if(N(n)&&(g=0===n?0:1===n?a-1:Math.round(f(n*(a-1),1,a-2)),o.reversed&&(g=a-1-g)),t.hasData()&&N(s)&&N(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(N(g)&&N(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?x():u();if(p>8*t.tickInterval)break;p*=2}n()}else if(h<a){for(;r.length<a;)r.length%2||s===l?u():x();n()}if(v(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{chart:t,coll:e,options:i,stacking:s}=this,{linkedTo:o}=i,r=t[e]||[],a=r.indexOf(this),n=W(o)?D(r,t=>t.options.id===o):N(o)?r[o]:void 0,h=this.linkedParent=n===this?void 0:n;h&&a>-1&&r.indexOf(h)>a&&h.setScale();let l=!1,d=!1;this.series.forEach(t=>{l=l||t.isDirtyData||t.isDirty,d=d||t.xAxis?.isDirty||!1}),this.setAxisSize();let c=this.len!==this.old?.len;c||l||d||this.linkedParent||this.forceRedraw||this.userMin!==this.old?.userMin||this.userMax!==this.old?.userMax||this.alignToOthers()?(s&&\"yAxis\"===e&&s.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),s&&\"xAxis\"===e&&s.buildStacks(),this.isDirty||(this.isDirty=c||this.min!==this.old?.min||this.max!==this.old?.max)):s&&s.cleanStacks(),l&&delete this.allExtremes,P(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),P(this,\"setExtremes\",o=S(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(Z(e.width??t.plotWidth-i[3]+i[1],t.plotWidth)),r=this.height=Math.round(Z(e.height??t.plotHeight-i[0]+i[2],t.plotHeight)),a=this.top=Math.round(Z(e.top??t.plotTop+i[0],t.plotHeight,t.plotTop)),n=this.left=Math.round(Z(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?m(t.lin2log(this.min)):this.min,max:t?m(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||-1/0===t?t=i:1/0===t?t=s:i>t?t=i:s<t&&(t=s),this.translate(t,0,1,0,1)}autoLabelAlign(t){let e=((t-90*this.side)%360+360)%360,i={align:\"center\"};return P(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=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,prefix:t};return P(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||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=m(.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&&1/0!==t&&1/0!==o&&n&&(i=Math.ceil(n/s)),m(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(N(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(eP*i))))+Math.abs(i/360))<c&&(c=e,d=i,l=t)}}else l=h(.75*a);return this.autoRotation=p,this.labelRotation=d??(N(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&&N(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??15))),l={},d=this.labelMetrics(),c=r.lineClamp,p,g=c??(Math.floor(this.len/(i.length*d.h))||1),u=0;W(o.rotation)||(l.rotation=o.rotation||0),i.forEach(function(t){u=Math.max(u,s[t].label?.textPxLength||0)}),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||0),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)||\"DIV\"===i.element.tagName)?i.css(S(a,{width:`${p}px`,lineClamp:g})):(i.styles.width||i.textWidth||i.styles.lineClamp)&&!a.width&&!o&&i.css({width:\"auto\",lineClamp:0}))},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&&v(this.min)&&v(this.max)}addTitle(t){let e=this.chart.renderer,i=this.horiz,s=this.opposite,o=this.options.title,r=this.chart.styledMode,a=o.textAlign||(i?{low:\"left\",middle:\"center\",high:\"right\"}:{low:s?\"right\":\"left\",middle:\"center\",high:s?\"left\":\"right\"})[o.align],n={text:o.text||\"\",zIndex:7,align:a},h={rotation:o.rotation||0},l=this.axisTitle;if(l?l.attr(n).animate(h):((l=e.text(\"\",0,0,o.useHTML).attr(S(n,h)).addClass(\"highcharts-axis-title\")).add(this.axisGroup),l.isNew=!0),!r){let t=F(o.style);o.style.width||this.isRadial||(t.width=this.len+\"px\"),l.css(t)}l[t?\"show\":\"hide\"](t),this.axisTitle=l}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new ek(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r)=>o.g(e).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:\"\")+(s.className||\"\")).add(t);(this.axisGroup||(this.axisGroup=r(\"axis\",\"\"))).attr({zIndex:s.zIndex}),(this.gridGroup||(this.gridGroup=r(\"grid\",\"-grid\"))).clip(this.clippable?e.plotClipInner:void 0).attr({zIndex:s.gridZIndex}),(this.labelGroup||(this.labelGroup=r(\"axis-labels\",\"-labels\"))).attr({zIndex:s.labels.zIndex})}shuffleTicks(){let t=this.ticks,e=this.old?.names,i=t=>new Set(t).size!==t.length;if(\"category\"===this.type&&e&&!i(e)&&!i(this.names)){e.forEach((i,s)=>{let o=this.namesMap[i];v(o)&&s!==o&&(t[s]&&(t[s].pos=o,this.isDirty=!0),t[o]&&-1===this.names.indexOf(e[o])&&(t[o].pos=0/0))});let i=Object.values(t);Object.keys(t).forEach(e=>{delete t[e]}),i.forEach(e=>{isNaN(e.pos)?e.destroy():t[e.pos]=e})}}getOffset(){let{chart:t,horiz:e,options:i,side:s,ticks:o,tickPositions:r,coll:a}=this,n=this.hasData(),h=i.title,l=i.labels,d=N(i.crossing),c=t.axisOffset,p=t.clipOffset,g=[-1,1,1,-1][s],u=l.distance??15,f=this.tickRotCorr||{x:0,y:0},m=0,x,y=0,b,k=0,w=0,M,C,S;if(this.showAxis=x=n||i.showEmpty,this.staggerLines=this.horiz&&l.staggerLines||void 0,this.createGroups(),n||this.linkedParent?(this.shuffleTicks(),r.forEach(this.generateTick.bind(this)),this.renderUnsquish(),m=Math.abs((f=this.tickRotCorr).x),S=this.reserveSpaceDefault=0===s||2===s||({1:\"left\",3:\"right\"})[s]===this.labelAlign,(l.reserveSpace??(!d&&null)??(\"center\"===this.labelAlign||null)??S)&&r.forEach(function(t){w=Math.max(o[t].getLabelSize(),w)}),this.staggerLines&&(w*=this.staggerLines),!e&&N(this.labelRotation)&&S&&(w-=m),this.labelOffset=w*(this.opposite?-1:1)):j(o,function(t,e){t.destroy(),delete o[e]}),h?.text&&!1!==h.enabled?(this.addTitle(x),x&&!d&&!1!==h.reserveSpace&&(this.titleOffset=y=this.axisTitle.getBBox()[e?\"height\":\"width\"],k=v(b=h.offset)?0:h.margin??(e?5:10))):this.axisTitle=this.axisTitle?.destroy(),this.renderLine(),this.offset=g*(N(i.offset)?i.offset:c[s]?c[s]+(i.margin||0):0),C=0===s?-this.labelMetrics().h:2===s?f.y:0,M=Math.abs(w)+k,w&&(M-=C,M+=g*(e?l.y??f.y+g*u:l.x??(S?g*(u-m):f.x+g*u)),!e&&!S&&\"center\"===this.labelAlign&&N(this.labelRotation)&&(M+=m)),this.axisTitleMargin=b??M,this.maxLabelDimensions=this.getMaxLabelDimensions?.(o,r),\"colorAxis\"!==a&&p){let t=this.tickSize(\"tick\");c[s]=Math.max(c[s],Math.max((this.axisTitleMargin||0)+y,M)+g*this.offset,M,r?.length&&t?t[0]+g*this.offset:0);let e=!this.axisLine||i.offset?0:this.axisLine.strokeWidth()/2;p[s]=Math.max(p[s],e)}P(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(){let{chart:t,offset:e=0,options:i}=this,s=this.axisLine?\"animate\":\"attr\";this.axisLine||(this.axisLine=t.renderer.path().addClass(\"highcharts-axis-line\").attr({zIndex:7}).clip(this.clippable&&e<=0?t.plotClipOuter:void 0).add(this.axisGroup)),t.styledMode||this.axisLine[s]({stroke:i.lineColor,\"stroke-width\":i.lineWidth})}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 P(this,\"afterGetTitlePosition\",{titlePosition:f}),f}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new ek(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.ticks;(!this.linkedParent||t>=this.min&&t<=this.max||this.grid?.isColumn)&&(s[t]||(s[t]=new ek(this,t)),i&&s[t].isNew&&s[t].render(e,!0,-1),s[t].render(e))}render(){let t,e,i=this,s=i.chart,o=i.logarithmic,r=s.renderer,a=i.options,h=i.tickPositions,l=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,g=a.alternateGridColor,u=a.crossing,f=i.tickmarkOffset,m=i.axisLine,x=i.showAxis,y=+i.visible,b=tS(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,this.createGroups(),[d,c,p].forEach(function(t){j(t,function(t){t.isActive=!1})}),N(u)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(u,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||i.linkedParent){let r=i.chart.hasRendered&&i.old&&N(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)}),f&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new ek(i,-1,null,!0)),d[-1].render(-1))),g&&h.forEach(function(r,a){e=void 0!==h[a+1]?h[a+1]+f:i.max-f,a%2==0&&r<i.max&&e<=i.max+(s.polar?-f:f)&&(p[r]||(p[r]=new n.PlotLineOrBand(i,{},\"plotBands\")),t=r+f,p[r].options={from:o?o.lin2log(t):t,to:o?o.lin2log(e):e,color:g,className:\"highcharts-alternate-grid\"},p[r].render(),p[r].isActive=!0)})}for(let t of[\"plotBands\",\"plotLines\"])for(let e of this[t])e.render();[d,c,p].forEach(function(t){let e=[],i=b.duration;j(t,function(t,i){t.isActive||(t.render(i,!1,0),t.isActive=!1,e.push(i))}),tt(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)}),m&&(m[m.isPlaced?\"animate\":\"attr\"]({d:this.getLinePath(m.strokeWidth()),opacity:y}),m.isPlaced=!0,m[x?\"show\":\"hide\"](x)),l&&x&&(l[l.isNew?\"attr\":\"animate\"]({opacity:y,...i.getTitlePosition(l)}),l.isNew=!1),i.stacking?.renderStackTotals(),this.old||this.saveOld(),i.isDirty=!1,P(this,\"afterRender\")}redraw(){(this.visible||this.axisGroup)&&this.render(),this.series.forEach(function(t){t.isDirty=!0})}saveOld(){this.old=N(this.min)?{horiz:this.horiz,len:this.len,max:this.max,min:this.min,names:this.names.slice(),transA:this.transA,userMax:this.userMax,userMin:this.userMin}:void 0}destroy(){P(this,\"destroy\"),q(this),[this.ticks,this.minorTicks,this.alternateBands,this.plotBands,this.plotLines,this.plotLinesAndBandsGroups].forEach(k),[\"axisLine\",\"axisTitle\",\"axisGroup\",\"gridGroup\",\"labelGroup\",\"cross\",\"scrollbar\"].forEach(t=>{this[t]=this[t]?.destroy()}),j(this,(t,e)=>{delete this[e]})}drawCrosshair(t,e){let i,s,o,r,a=this.crosshair,n=a?.snap??!0,h=this.chart,l=this.cross;if(P(this,\"drawCrosshair\",{e:t,point:e}),t||(t=this.cross?.e),a&&!1!==(v(e)||!n)){if(clearTimeout(this.crossShowTimer),n?v(e)&&(s=(\"colorAxis\"!==this.coll?e.crosshairPos:null)??(this.isXAxis?e.plotX:this.len-e.plotY)):s=t&&(this.horiz?t.chartX-this.pos:this.len-t.chartY+this.pos),v(s)&&(r={value:e&&(this.isXAxis?e.x:e.stackY??e.y??void 0),translatedValue:s},h.polar&&S(r,{isCrosshair:!0,chartX:t?.chartX,chartY:t?.chartY,point:e}),i=this.getPlotLinePath(r)||null),!v(i))return void this.hideCrosshair();o=this.categories&&!this.isRadial,this.crossShowTimer=tt(()=>{let e=this.cross;e||(this.cross=e=h.renderer.path().addClass(\"highcharts-crosshair highcharts-crosshair-\"+(o?\"category \":\"thin \")+(a.className||\"\")).attr({zIndex:a.zIndex??2}).clip(!1===a.clip?void 0:h.plotClipInner).add()),h.styledMode||e.attr({stroke:a.color||(o?eC(\"var(--highcharts-highlight-color-20)\").setOpacity(.25).get():\"var(--highcharts-neutral-color-20)\"),\"stroke-width\":a.width??1,dashstyle:a.dashStyle||\"Solid\"}).css({\"pointer-events\":\"none\"}),e.show().animate({d:i},tS(a?.animation)),o&&!a.width&&e.attr({\"stroke-width\":this.transA}),e.e=t},(!l||\"hidden\"===l.attr(\"visibility\"))&&a.showDelay||0)}else this.hideCrosshair();P(this,\"afterDrawCrosshair\",{e:t,point:e})}hideCrosshair(){clearTimeout(this.crossShowTimer),this.cross&&this.cross.hide(),P(this,\"afterHideCrosshair\")}update(t={},e=!0){let i=this.chart;P(this,\"update\",{options:t}),t=F(this.userOptions,t),this.isDirty=this.forceRedraw=!0,this.init(i,t),i.isDirtyBox=!0,e&&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);C(e.axes,this),C(e[i]||[],this),e.orderItems(i),this.destroy(),e.isDirtyBox=!0,(t??!0)&&e.redraw()}setTitle(t,e){this.update({title:t},e)}setCategories(t,e){this.update({categories:t},e)}},{composed:eO}=n;!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 _(eO,\"Axis.DateTime\")&&(t.prototype.getTimeTicks=e,c(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=ta[s[0]],r=s[1],a,n;for(a=0;a<i.length;a++)if(o=ta[(s=i[a])[0]],r=s[1],i[a+1]){let e=(o*r[r.length-1]+ta[i[a+1][0]])/2;if(t<=e){n=e/t;break}}o===ta.year&&t<5*o&&(r=[1,2,5]);let h=Y(t/o,r,\"year\"===s[0]?Math.max(O(t/o),1):1);return{unitRange:o,count:h,unitName:s[0],match:n}}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}(e8||(e8={}));let eE=e8,{composed:eI}=n;!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 _(eI,\"Axis.Logarithmic\")&&(c(t,\"afterSetType\",e),c(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(h=o.length,a=0;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=Y(t=(\"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}(e7||(e7={}));let eD=e7;!function(t){let e,i=t=>function(i){var s;let o=new e(this,i,t);return this.visible&&o.render(),(s=this.options)[t]||(s[t]=this.userOptions[t]=[]),this.options[t].push(i),this[t].push(o),o};function s(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,a=!N(this.min)||!N(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 o(t){[...this.plotBands||[],...this.plotLines||[]].find(e=>e.id===t)?.remove()}t.compose=function(t,r){let a=r.prototype;return a.addPlotBand||(e=t,S(a,{addPlotBand:i(\"plotBands\"),addPlotLine:i(\"plotLines\"),getPlotBandPath:s,removePlotBand:o,removePlotLine:o}),c(r,\"afterInit\",function(){if(!this.plotBands)for(let t of(this.plotLinesAndBandsGroups={},[\"plotBands\",\"plotLines\"]))for(let i of(this[t]=[],J(this.options[t]||[])))this[t].push(new e(this,i,t))}),c(r,\"update\",function({options:t}){for(let e of[\"plotBands\",\"plotLines\"])if(t[e]){let i=this[e];J(t[e]).forEach((s={},o)=>{let r;s?.id&&(r=i.find(t=>t.id===s.id)),r||(r=i[o]),r?(r.update(s,!1),t[e][o]=r.options):r=this[\"plotBands\"===e?\"addPlotBand\":\"addPlotLine\"](s),r.isActive=!0});let s=i.length;for(;s--;)i[s].isActive?delete i[s].isActive:i[s].remove()}})),r}}(it||(it={}));let eB=it,ez=class t{static compose(e,i){return c(e,\"afterInit\",function(){this.labelCollectors.push(()=>{let t=[];for(let e of this.axes)for(let i of[\"plotBands\",\"plotLines\"])for(let{label:s,options:o}of e[i])s&&!o?.label?.allowOverlap&&t.push(s);return t})}),eB.compose(t,i)}constructor(t,e,i){this.axis=t,this.options=e,this.id=e.id,this.coll=i}render(){let t;P(this,\"render\");let{axis:e,options:i}=this,{chart:s,horiz:o,logarithmic:r}=e,{color:a,events:n,zIndex:h=0}=i,{renderer:l,styledMode:d,time:c}=e.chart,p=c.parse(i.to),g=c.parse(i.from),u=c.parse(i.value),f=i.borderWidth,m=i.label,{label:x,svgElem:y}=this,b,k=\"plotBands\"===this.coll,w=k?\"band\":\"line\",M=`${w}s-${h}`,C=!y,S={class:`highcharts-plot-${w} ${i.className||\"\"}`},T=k?f||0:i.width??1;return d||(S[\"stroke-width\"]=T),(b=e.plotLinesAndBandsGroups[M])||(e.plotLinesAndBandsGroups[M]=b=l.g(\"plot-\"+M).clip(s.plotClipOuter).attr({zIndex:h}).add()),b[C?\"attr\":\"animate\"]({opacity:+e.visible}),y||(this.svgElem=y=l.path().attr(S)),y.parentGroup!==b&&y.add(b),!k&&v(u)?t=e.getPlotLinePath({value:r?.log2lin(u)??u,lineWidth:y.strokeWidth(),acrossPanes:i.acrossPanes}):k&&v(g)&&v(p)&&(t=e.getPlotBandPath(r?.log2lin(g)??g,r?.log2lin(p)??p,i)),t&&(S.d=t),!d&&(k?(S.fill=a||\"var(--highcharts-highlight-color-10)\",f&&(S.stroke=i.borderColor)):(S.stroke=a||\"var(--highcharts-neutral-color-40)\",i.dashStyle&&(S.dashstyle=i.dashStyle))),C&&n&&j(n,(t,e)=>{y?.on(e,t=>{n[e].apply(this,[t,this])})}),(C||!y.d)&&t?.length?y.attr(S):y&&(t?(y.show(),y.animate(S)):y.d&&(y.hide(),x&&(this.label=x=x.destroy()))),m&&(v(m.text)||v(m.formatter))&&t?.length&&e.width>0&&e.height>0&&!t.isFlat?(m=F({align:o&&k?\"center\":void 0,x:o?!k&&4:10,verticalAlign:!o&&k?\"middle\":void 0,y:o?k?16:10:k?6:-4,rotation:o&&!k?90:0,...k?{inside:!0}:{}},m),this.renderLabel(m,t,k,h)):x&&x.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart,a=r.renderer,n=t.inside,h=this.label;h||(this.label=h=a.text(\"\",0,0,t.useHTML).attr({zIndex:s})),h.attr({text:this.getLabelText(t),align:t.textAlign||t.align,class:\"highcharts-plot-\"+(i?\"band\":\"line\")+\"-label \"+(t.className||\"\")})[h.placed?\"animate\":\"attr\"]({opacity:1,rotation:t.rotation}),r.styledMode||h.css(F({color:r.options.title?.style?.color,fontSize:\"0.8em\",textOverflow:i&&!n?\"\":\"ellipsis\"},t.style)),h.added||h.add();let l=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],d=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],c=p(l),u=p(d),f=g(l)-c;h.align(t,!1,{x:c,y:u,width:f,height:g(d)-u}),h.alignAttr.y-=a.fontMetrics(h).b,!h.alignValue||\"left\"===h.alignValue||v(n)?h.css({width:(t.style?.width||(i&&n?f:90===h.rotation?o.height-(h.alignAttr.y-o.top):(t.clip?o.width+o.left:r.chartWidth)-h.alignAttr.x))+\"px\"}):h.textWidth&&h.css({width:\"auto\"}),h.show(!0)}update(t,e=!0){F(!0,this.options,t),e&&this.render()}getLabelText(t){return v(t.formatter)?t.formatter.call(this,this):t.text}destroy(){k(this,this.axis)}remove(){C(this.axis[this.coll],this),C(this.axis.options[this.coll]||[],this.options),this.destroy()}},{format:eR}=tF,{composed:eN,dateFormats:eW,doc:eH,isSafari:eG}=n,{distribute:eX}=tY,eF=t=>{clearTimeout(t.hideTimer),clearTimeout(t.showTimer)};class eY{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\"]||\"\",t)})}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||J(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.tracker=this.tracker?.destroy(),this.label=this.label?.destroy(),this.split&&(this.cleanSplit(!0),this.tt=this.tt?.destroy()),this.renderer&&(this.renderer=this.renderer.destroy(),w(this.container)),B(this.hideTimer),eF(this)}getAnchor(t,e){let i,{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if(t=J(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 P(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-\"+(t.colorIndex??o.colorIndex),r?.className].filter(W).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,h=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;this.container=a=n.doc.createElement(\"div\"),a.className=\"highcharts-container highcharts-tooltip-container \"+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\\s?/gm)||\"\"),a.dataset.highchartsChart=t.index.toString(),b(a,{position:\"absolute\",top:\"1px\",pointerEvents:\"none\",zIndex:Math.max(o.style.zIndex||0,(e?.zIndex||0)+3)}),this.renderer=h=new eg(a,0,0,e,void 0,void 0,h.styledMode)}if(r?this.label=h.g(\"tooltip\"):(this.label=h.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??+!o.fixed}).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&&n.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=eH,{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=i=>{let a=\"x\"===i;return[i,a?m:f,a?t:e].concat(r?[a?t*x.scaleX:e*x.scaleY,a?x.left-s+(c+h)*x.scaleX:x.top-s+(p+l)*x.scaleY,0,a?m:f]:[a?t:e,a?c+h:p+l,a?h:l,a?h+o.plotWidth:l+o.plotHeight])},b=y(\"y\"),v=y(\"x\"),k,w=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(w=!w);let M=!this.followPointer&&(i.ttBelow??(!d&&!n===w)),C=function(t,e,i,o,a,n,h){let l=r?\"y\"===t?s*x.scaleY:s*x.scaleX:s,d=(i-o)/2,c=o<a-s,p=a+s+o<e,f=a-l-i+d,m=a+l-d;if(M&&p)g[t]=m;else if(!M&&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)}},S=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},T=function(t){[b,v]=[v,b],k=t},P=()=>{!1!==C.apply(0,b)?!1!==S.apply(0,v)||k||(T(!0),P()):k?g.x=g.y=0:(T(!0),P())};return(n&&!d||this.len>1)&&T(),P(),r&&(g.x-=x.left,g.y-=x.top),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)*A(n.align)+n.x,y:d.y+(d.height-e)*A(n.verticalAlign)+(!a&&n.y||0)}}hide(t){let e=this;eF(this),t=t??this.options.hideDelay,this.isHidden||(this.hideTimer=tt(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=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=tS(!o&&!this.isHidden&&!r.fixed&&r.animation),n=o||(this.len||0)>1,h={x:t,y:e};this.anchorX=i,this.anchorY=s,n?h.anchorX=h.anchorY=0/0:(h.anchorX=i,h.anchorY=s),a.step=()=>this.drawTracker(),this.getLabel().animate(h,a)}refresh(t,e){let i=this,{chart:s,options:o,pointer:r,shared:a}=this,n=J(t),h=n[0],l=o.format,d=o.formatter||i.defaultFormatter,c=s.styledMode,p=i.allowShared;if(!o.enabled||!h.series)return;eF(this),i.allowShared=!(!H(t)&&t.series&&t.series.noSharedTooltip),p=p&&!i.allowShared,i.followPointer=!i.split&&h.series.tooltipOptions.followPointer;let g=i.getAnchor(t,e),u=g[0],m=g[1];a&&i.allowShared&&(r.applyInactiveState(n),n.forEach(t=>t.setState(\"hover\")),h.points=n),this.len=n.length;let x=W(l)?eR(l,h,s):d.call(h,i,h);h.points=void 0;let y=h.series;this.distance=y.tooltipOptions.distance??16,!1===x?this.hide():this.showTimer=tt(()=>{if(i.split&&i.allowShared)i.renderSplit(x,n);else{let t=u,a=m;if(e&&r.isDirectTouch&&(t=e.chartX-s.plotLeft,a=e.chartY-s.plotTop),!(s.polar||!1===y.options.clip||n.some(e=>r.isDirectTouch||e.series.shouldShowTooltip(t,a))))return void i.hide();{let t=i.getLabel(p&&i.tt||{});(!o.style.width||c)&&t.css({width:(this.outside?this.getPlayingField():s.spacingBox).width-2*o.padding+\"px\"}),t.attr({class:i.getClassName(h),text:H(x)?x.join(\"\"):x}),this.outside&&t.attr({x:f(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),c||t.attr({stroke:o.borderColor||h.color||y.color||\"var(--highcharts-neutral-color-60)\"}),i.updatePosition({plotX:u,plotY:m,negative:h.negative,ttBelow:h.ttBelow,series:y,h:g[2]||0})}}i.isHidden&&i.label&&i.label.attr({opacity:1}).show(),i.isHidden=!1},i.isHidden&&o.showDelay||0),P(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:m,positioner:x},pointer:y}=i,{scrollLeft:b=0,scrollTop:v=0}=s.scrollablePlotArea?.scrollingContainer||{},k=i.outside&&\"number\"!=typeof d?eH.documentElement.getBoundingClientRect():{left:b,right:b+o,top:v,bottom:v+r},w=i.getLabel(),M=this.renderer||s.renderer,C=!!s.xAxis[0]?.opposite,{left:T,top:P}=y.getChartPosition(),A=x||u,L=h+v,O=0,E=a-l,I=function(t,e,s,o,r=[0,0],a=!0){let n,h;if(s.isHeader)h=C?0:E,n=f(r[0]-t/2,k.left,k.right-t-(i.outside?T:0));else if(u&&s){let o=i.getFixedPosition(t,e,s);n=o.x,h=o.y-L}else h=r[1]-L,n=f(n=a?r[0]-t-p:r[0]+p,a?n:k.left,k.right);return{x:n,y:h}};W(t)&&(t=[!1,t]);let D=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,m=d.tt=function(t,e,s){let o=t,{isHeader:r,series:a}=e,n=a.tooltipOptions||g,h=r?F(n,n.header):n;if(!o){let t={padding:n.padding,r:n.borderRadius};c||(t.fill=h.backgroundColor,t[\"stroke-width\"]=h.borderWidth??+!n.fixed),o=M.label(\"\",0,0,h.shape||(u&&!r?\"rect\":\"callout\"),void 0,void 0,n.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(w)}return o.isActive=!0,c||o.css(h.style),o.attr({text:s}),c||o.attr({stroke:h.borderColor||e.color||a.color||\"var(--highcharts-neutral-color-80)\"}),o}(d.tt,r,s.toString()),y=m.getBBox(),b=y.width+m.strokeWidth();l&&(O=y.height+g.header.distance,E+=O,C&&(L-=O));let{anchorX:v,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+f(o,-p,t.len+p),l.shouldShowTooltip(0,s.pos-h+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=f(e,k.left-p,k.right+p),anchorY:i}}(r);if(\"number\"==typeof S){let e=y.height+1,s=(x||I).call(i,b,e,r,i,[v,S]);t.push({align:A?0:void 0,anchorX:v,anchorY:S,boxWidth:b,point:r,rank:s.rank??+!!l,size:e,target:s.y,tt:m,x:s.x})}else m.isActive=!1}return t},[]);!A&&D.some(t=>{let{outside:e}=i,s=(e?T:0)+t.anchorX;return s<k.left&&s+t.boxWidth<k.right||s<T-k.left+t.boxWidth&&k.right-s>s})&&(D=D.map(t=>{let{x:e,y:i}=I.call(this,t.boxWidth,t.size,t.point,void 0,[t.anchorX,t.anchorY],!1);return S(t,{target:i,x:e})})),i.cleanSplit(),eX(D,E);let B={left:T,right:T};D.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&T+e<B.left&&(B.left=T+e),i.outside&&B.left+s>B.right&&(B.right=T+e))}),D.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)+L+(u&&m.y||0),anchorX:s,anchorY:o};if(i.outside&&e<s){let t=T-B.left;t>0&&(n.x=a?(B.right-B.left)/2:e+t,n.anchorX=s+t)}t.tt.attr(n)});let{container:z,outside:R,renderer:N}=i;if(R&&z&&N){let{width:t,height:e,x:i,y:s}=w.getBBox();N.setSize(t+i,e+s,!1),z.style.left=B.left+\"px\",z.style.top=P+\"px\"}eG&&w.attr({opacity:1===w.opacity?.999:1})}drawTracker(){let t=this;if(!t.shouldStickOnContact()){t.tracker=t.tracker?.destroy();return}let{chart:e,label:i}=t,s=t.shared?e.hoverPoints:e.hoverPoint,o=i?.box;if(!o||!s)return;let{height:r,r:a,width:n,x:h,y:l}=o,{anchorX:d,anchorY:p}=o;N(d)||(d=(t.anchorX||0)-(i.translateX||0),p=(t.anchorY||0)-(i.translateY||0));let g=i.renderer.symbols.callout(h,l,n,r,{anchorX:d,anchorY:p,arrowLength:Math.max(d-n,-d,p-r,-p,0),r:a});!t.tracker&&(t.tracker=i.renderer.path().addClass(\"highcharts-tracker\").add(i),c(t.tracker.element,\"mouseenter\",()=>eF(t)),e.styledMode||t.tracker.attr({fill:\"rgba(0,0,0,0)\",stroke:\"rgba(0,0,0,0)\",\"stroke-linejoin\":\"round\",\"stroke-width\":10})),t.tracker.attr({d:g})}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 P(this,\"headerFormatter\",a,function(e){if(r&&!n&&N(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(X(n)){let t=n;eW[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=eR(h,t,this.chart)}),a.text||\"\"}update(t){this.destroy(),this.init(this.chart,F(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:h=0,width:l=0}=this.getLabel(),{fixed:d,positioner:c}=o,{left:p,top:g,scaleX:u,scaleY:m}=r.getChartPosition(),x=(c||d&&this.getFixedPosition||this.getPosition).call(this,l,h,t,this),y=n.doc,v=(t.plotX||0)+e.plotLeft,k=(t.plotY||0)+e.plotTop,w;if(a&&i){if(x.x+=p,x.y+=g,c||d){let{scrollLeft:t=0,scrollTop:i=0}=e.scrollablePlotArea?.scrollingContainer||{};x.x+=t,x.y+=i}w=(o.borderWidth??+!d)+2*s+2,a.setSize(f(l+w,0,y.documentElement.clientWidth)-1,h+w,!1),(1!==u||1!==m)&&(b(i,{transform:`scale(${u}, ${m})`}),v*=u,k*=m),v+=p-x.x,k+=g-x.y}this.move(Math.round(x.x),Math.round(x.y||0),v,k)}}(ig=eY||(eY={})).compose=function(t){_(eN,\"Core.Tooltip\")&&c(t,\"afterInit\",function(){let t=this.chart;t.options.tooltip&&(t.tooltip=new ig(t,t.options.tooltip,this))})};let ej=eY,{defaultOptions:e$}=tm,{format:eV}=tF;class eU{constructor(t,e,i){this.formatPrefix=\"point\",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=tn()),this.resolveColor(),this.dataLabelOnNull??(this.dataLabelOnNull=t.options.nullInteraction),t.chart.pointCount++,this.category=t.xAxis?.categories?.[this.x]??this.x,this.key=this.name??this.category,P(this,\"afterInit\")}applyOptions(t,e,i){let s=this.series,o=s.options.pointValKey||s.pointValKey;return S(this,t=eU.prototype.optionsToObject.call(this,t)),this.options?this.options=s.chart.options.chart.allowMutatingData?S(this.options,t):F(this.options,t):this.options=t,o&&(this.y=eU.prototype.getNestedProperty.call(this,o)),N(e)&&(this.x=e),i||(this.selected&&(this.state=\"select\"),t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?\"null\":\"point\"),this}getOrigin({x:t=0,y:e=0},i={}){let{graphic:s,series:o}=this;if(o.chart.inverted&&s?.parentGroup&&!s?.parentGroup?.rotation){let i=this.pos(!1,t,e);i&&(t=i[0],e=i[1])}t-=(i.width||0)/2,e-=(i.height||0)/2;let r={x:t};return o.is(\"column\")||this.plotHigh||(r.y=e),r}destroy(t){if(!this.destroyed&&!this.condemned){let e=this,i=e.series,s=i.chart,o=s.hoverPoints,{duration:r}=tS(e.series.chart.renderer.globalAnimation),a=()=>{for(let t in(e.graphic||e.graphics||e.dataLabel||e.dataLabels)&&(q(e),e.destroyElements()),e)delete e[t];this.destroyed=!0};e.legendItem&&s.legend.destroyItem(e),o&&(e.setState(),C(o,e),o.length||(s.hoverPoints=void 0)),e===s.hoverPoint&&e.onMouseOut(),r&&!t&&i.condemnedPoints?(i.condemnedPoints.push(this),this.graphic?.addClass(\"highcharts-point-condemned\"),setTimeout(a,r)):a(),s.pointCount--}this.condemned=!0}destroyElements(t={graphic:1,dataLabel:1}){let e,i,s=this,o=[];for(t.graphic&&o.push(\"graphic\",\"connector\"),t.dataLabel&&o.push(\"dataLabel\",\"dataLabelPath\",\"dataLabelUpper\"),i=o.length;i--;)s[e=o[i]]&&(s[e]=s[e].destroy());[\"graphic\",\"dataLabel\"].forEach(e=>{let i=`${e}s`;t[e]&&s[i]&&(s[i].forEach(t=>{t?.element&&t.destroy()}),delete s[i])})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),\"click\"===t&&o.allowPointSelect&&(i=function(t){!s.condemned&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),P(s,t,e,i)}getClassName(){return\"highcharts-point\"+(this.selected?\" highcharts-point-select\":\"\")+(this.negative&&!1!==this.series.options.negativeColor?\" 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\",\"\"):\"\")}getNestedProperty(t){if(t)return 0===t.indexOf(\"custom.\")?E(t,this.options):this[t]}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||\"y\",s,o=0;for(s=e[0];o<e.length&&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}isValid(){return(N(this.x)||this.x instanceof Date)&&N(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(N(t)||null===t)r[s[0]]=t;else if(H(t))for(!i&&t.length>o&&(\"string\"==(a=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r[e.tupleKey||\"name\"]=t[0]:\"number\"===a&&(r.x=t[0]),n++);h<o;)i&&void 0===t[n]||(r[s[h]]=t[n]),n++,h++;else\"object\"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return(i||!e.options.data)&&Object.keys(r).forEach(t=>{t.indexOf(\".\")>0&&(eU.prototype.setNestedProperty(r,r[t],t),delete r[t])}),r}pos(t,e=this.plotX,i=this.plotY){let{series:s}=this,{chart:o,xAxis:r,yAxis:a}=s||{},n=0,h=0;if(o&&N(e)&&N(i))return t&&(n=r?r.pos:o.plotLeft,h=a?a.pos:o.plotTop),o.inverted&&r&&a?[a.len-i+h,r.len-e+n]:[e+n,i+h]}resolveColor(){let{options:t,series:e}=this,i=e.chart,s=i.options.chart,o=i.styledMode,r,a=s.colorCount,n;if(delete this.nonZonedColor,e.options.colorByPoint){if(!o){let t=e.options.colors||i.options.colors;r=t?.[e.colorCounter],a=t?.length}n=e.colorCounter,e.colorCounter++,e.colorCounter===a&&(e.colorCounter=0)}else o||(r=e.color),n=e.colorIndex;this.colorIndex=t.colorIndex??n,this.color=t.color??r}setNestedProperty(t,e,i){let s=i.split(\".\");return s.some(t=>\"__proto__\"===t||\"constructor\"===t)||s.reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:X(t[i],!0)&&Object.hasOwnProperty.call(t,i)?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}\")}),eV(t,this,e)}update(t,e=!0,i,s){let o=this,r=o.series,a=o.graphic,n=r.chart,h=r.options,l=h.data;function d(){o.applyOptions(t),a&&null===o.y&&!o.hasMockGraphic&&(o.graphic=a.destroy()),X(t,!0)&&(a?.element&&t?.marker&&void 0!==t.marker.symbol&&(o.graphic=a.destroy()),t?.dataLabels&&o.dataLabel&&(o.dataLabel=o.dataLabel.destroy()));let s=o.index,d=o.optionsToObject(t);!r.hasProcessedDataTable&&(r.dataTable.setRow(d,s),l&&(l[s]=X(l[s],!0)||X(t,!0)?o.options:t??l[s])),r.isDirty=r.isDirtyData=!0,\"x\"in d&&(W(d.x)&&(r.xColumnIsNumbers=void 0),o.x=r.getX(d.x),o.isNull=o.isValid&&!o.isValid(),r.xColumn&&(r.xColumn[s]=o.x)),!r.fixedBox&&r.hasCartesianSeries&&(n.isDirtyBox=!0),\"point\"===h.legendType&&(n.isDirtyLegend=!0),e&&n.redraw(i)}!1===s?d():o.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=t??!i.selected,this.selectedStaging=t,i.firePointEvent(t?\"select\":\"unselect\",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data&&(s.options.data[s.data.indexOf(i)]=i.options),i.setState(t&&\"select\"),e||o.getSelectedPoints().forEach(function(t){let e=t.series,s=e.options;t.selected&&t!==i&&(t.selected=t.options.selected=!1,s.data&&(s.data[e.data.indexOf(t)]=t.options),t.setState(o.hoverPoints&&s.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(){if(!this.series)return;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=F(this.series.options.point,this.options),i=e.events?.[t];G(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=c(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(q(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=e$.plotOptions?.[i.type]?.marker&&i.options.marker,a=r?.enabled===!1,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?.[t]?.enabled===!1)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=d.options.chart.animation??o.animation;let e=u.opacity;i.options.inactiveOtherPoints&&N(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,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,F(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=X(o.halo)?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-\"+(this.colorIndex??i.colorIndex)+(this.className?\" \"+this.className:\"\"),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(S({fill:this.color||i.color,\"fill-opacity\":y.opacity},tB.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),P(this,\"afterSetState\",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(y(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let e_=eU,{charts:eZ,composed:eK,isTouchDevice:eq}=n,eJ=(t,e)=>!v(e)||t[`${e}Key`];class eQ{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=[],!n.chartCount&&(eQ.unbindDocumentMouseUp.forEach(t=>t.unbind()),eQ.unbindDocumentMouseUp.length=0,eQ.unbindDocumentTouchEnd&&(eQ.unbindDocumentTouchEnd=eQ.unbindDocumentTouchEnd())),j(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:\"rect\"};return P(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=X(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:l,attrs:d}=this.getSelectionMarkerAttrs(g,u);this.hasZoom&&f&&!p&&!m&&(this.selectionMarker=m=e.renderer[l](),m.attr({class:\"highcharts-selection-marker\",zIndex:7}).add(),e.styledMode||m.attr({fill:a})),m&&m.attr(d),f&&!m&&c&&eJ(t,r)&&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 P(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(t?.type===\"touchend\"&&this.hasDragged&&i.transform({trigger:\"drop\"}),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})}N(i.index)&&(this.selectionMarker=s.destroy())}i&&N(i.index)&&(b(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){var o;let r,a,n,h=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf(\"y\"),l=t.searchPoint(i,h);X(l,!0)&&l.series&&(!X(s,!0)||(r=(o=s).distX-l.distX,a=o.dist-l.dist,n=l.series.group?.zIndex-o.series.group?.zIndex,(0!==r&&e?r:0!==a?a:0!==n?n:o.series.index>l.series.index?-1:1)>0))&&(s=l)}),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&&N(o.x)&&N(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=$(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)&&(t.options.enableMouseTracking??!0)},h=e,l,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};P(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=D(t.points,function(t){return t.x===c.x&&(!t.isNull||!!e)});X(i)&&(t.boosted&&t.boost&&(i=t.boost.getPoint(i)),a.push(i))}):a.push(c)),P(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=u(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(),P(this,\"afterInit\")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):(i.changedTouches??t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return S(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\")?(P(i.series,\"click\",S(s,{point:i})),e.hoverPoint&&i.firePointEvent(\"click\",s)):(S(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&P(e,\"click\",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),n.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}=eZ[eQ.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?.(),eZ[eQ.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=1===a&&(i.tooltip?.options.followTouchMove??!0);a>1?e.initiated=!0:h&&(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):h?this.runPointActions(e.normalize(t)):o&&(P(i,\"touchpan\",{originalEvent:t,touches:r},()=>{let s=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:s(r),from:s(o),trigger:t.type}),e.hasDragged=1}),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&&J(n).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?a&&n&&J(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 p=d.hoverPoints,g=h?.tooltipOptions.followPointer&&!h.tooltipOptions.split,u=a&&h&&!h.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r?.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===p.indexOf(t)&&t.setState()}),s.hoverSeries!==h&&h.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(t){t.setState(\"hover\")}),s.hoverPoint&&s.hoverPoint.firePointEvent(\"mouseOut\"),!n.series)return;s.hoverPoints=p,s.hoverPoint=n,n.firePointEvent(\"mouseOver\",void 0,()=>{r&&n&&r.refresh(u?p:n,t)})}else if(g&&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=c(s.container.ownerDocument,\"mousemove\",t=>eZ[eQ.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=D(p,t=>t.series?.[e.coll]===e))),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument,i=t=>t.parentElement||t.getRootNode()?.host?.parentElement;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(c(t,\"mouseenter\",this.onContainerMouseEnter.bind(this)),c(t,\"mouseleave\",this.onContainerMouseLeave.bind(this))),eQ.unbindDocumentMouseUp.some(t=>t.doc===e)||eQ.unbindDocumentMouseUp.push({doc:e,unbind:c(e,\"mouseup\",this.onDocumentMouseUp.bind(this))});let s=i(this.chart.renderTo);for(;s&&\"BODY\"!==s.tagName;)this.eventsToUnbind.push(c(s,\"scroll\",()=>{delete this.chartPosition})),s=i(s);this.eventsToUnbind.push(c(t,\"touchstart\",this.onContainerTouchStart.bind(this),{passive:!1}),c(t,\"touchmove\",this.onContainerTouchMove.bind(this),{passive:!1})),eQ.unbindDocumentTouchEnd||(eQ.unbindDocumentTouchEnd=c(e,\"touchend\",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),c(this.chart,\"redraw\",this.setPointerCapture.bind(this))}setPointerCapture(){if(!eq)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=(e.options.tooltip?.followTouchMove??!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf(\"y\")>-1);!this.hasPointerCapture&&s?(t.push(c(i,\"pointerdown\",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),c(i,\"pointermove\",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=n.charts[eQ.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||(eQ.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),(i??!0)&&this.pinch(t),this.hasPointerCapture&&\"touchmove\"===t.type&&!(s.scrollablePixelsX||s.scrollablePixelsY)&&t.preventDefault()):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=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)&&eJ(t,e.zooming.key)}}eQ.unbindDocumentMouseUp=[],(iu=eQ||(eQ={})).compose=function(t){_(eK,\"Core.Pointer\")&&c(t,\"beforeRender\",function(){this.pointer=new iu(this,this.options)})};let e0=eQ,{setLength:e1,splice:e2}={convertToNumber:function(t,e){switch(typeof t){case\"boolean\":return+!!t;case\"number\":return isNaN(t)&&!e?null:t;default:return isNaN(t=parseFloat(`${t??\"\"}`))&&!e?null:t}},setLength:function(t,e,i){return Array.isArray(t)?(t.length=e,t):t[i?\"subarray\":\"slice\"](0,e)},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}}},e5=class{constructor(t={}){this.isDataTable=!0;let e=this.isPollutingKey(t.id)?void 0:t.id;this.autoId=!e,this.columns={},this.id=e||tn(),this.rowCount=0,this.versionTag=tn();let i=0;j(t.columns||{},(t,e)=>{\"__proto__\"!==e&&\"constructor\"!==e&&(this.columns[e]=t.slice(),i=Math.max(i,t.length))}),this.applyRowCount(i)}isPollutingKey(t){return\"__proto__\"===t||\"constructor\"===t}applyRowCount(t){this.rowCount=t,j(this.columns,(e,i)=>{e.length!==t&&(this.columns[i]=e1(e,t))})}deleteRows(t,e=1){if(e>0&&t<this.rowCount){let i=0;j(this.columns,(s,o)=>{this.columns[o]=e2(s,t,e).array,i=s.length}),this.rowCount=i}P(this,\"afterDeleteRows\",{rowIndex:t,rowCount:e}),this.versionTag=tn()}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),{})}getRowObject(t,e){let i={},s=this.columns;for(let o of(e??(e=Object.keys(this.columns)),e))i[o]=s[o]?.[t];return i}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;j(t,(t,e)=>{\"__proto__\"!==e&&\"constructor\"!==e&&(this.columns[e]=t.slice(),s=t.length)}),this.applyRowCount(s),i?.silent||(P(this,\"afterSetColumns\"),this.versionTag=tn())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1,a=Object.keys(t);if(s?.addColumns!==!1)for(let t=0,e=a.length;t<e;t++){let e=a[t];this.isPollutingKey(e)||Object.hasOwnProperty.call(o,e)||(o[e]=Array(this.rowCount))}j(o,(s,r)=>{s&&(i?s=e2(s,e,0,!0,[t[r]]).array:s[e]=r in t?t[r]:s[e],o[r]=s)}),this.applyRowCount(Math.max(r,this.rowCount)),s?.silent||(P(this,\"afterSetRows\",{rowIndex:e}),this.versionTag=tn())}getModified(){return this.modified||this}};var e3,e9,e6,e4,e8,e7,it,ie,ii,is,io,ir,ia,ih,il,id,ic,ip,ig,iu,im,ix,iy,ib,iv=ie||(ie={});function ik(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(m.radius??d,d);0===l.indexOf(\"url\")&&(m=F(m,{width:h,height:h}),t=0),s.symbol=f=c.symbol(l,n/2-t,g-t,2*t,2*t,S({context:\"legend\"},m)).addClass(\"highcharts-point\").add(p),f.isMarker=!0}}iv.areaMarker=function(t,e){ik.call(this,t,e,!0)},iv.lineMarker=ik;let iw=ie,{defaultOptions:iM}=tm;var iC=ii||(ii={});function iS(t,e){let i=iM.plotOptions||{},s=e.defaultOptions,o=e.prototype;return o.type=t,o.pointClass||(o.pointClass=e_),!iC.seriesTypes[t]&&(s&&(i[t]=s),iC.seriesTypes[t]=e,!0)}iC.seriesTypes=n.seriesTypes,iC.registerSeriesType=iS,iC.seriesType=function(t,e,i,s,o){let r=iM.plotOptions||{};if(e=e||\"\",r[t]=F(r[e],i),delete iC.seriesTypes[t],iS(t,T(iC.seriesTypes[e]||n.Series,s)),iC.seriesTypes[t].prototype.type=t,o){class e extends e_{}S(e.prototype,o),iC.seriesTypes[t].prototype.pointClass=e}return iC.seriesTypes[t]};let iT=ii,{defaultOptions:iP}=tm,{registerEventOptions:iA}=eb,{svg:iL,win:iO}=n,{seriesTypes:iE}=iT,{format:iI}=tF;class iD{constructor(){this.zoneAxis=\"y\"}init(t,e){let i;P(this,\"init\",{options:e});let s=t.series;this.eventsToUnbind=[],this.condemnedPoints||(this.condemnedPoints=[]),this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.dataTable??(this.dataTable=H(o.dataTable)?new e5:o.dataTable?.isDataTable?o.dataTable:new e5(o.dataTable)),this.linkedSeries=[],this.bindAxes(),S(this,{name:o.name,state:\"\",visible:r,selected:!0===o.selected}),iA(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=(i?._i??-1)+1,this.opacity=this.options.opacity,t.orderItems(\"series\",tr(this,s)),this.points||this.data||this.setData(o.data,!1),P(this,\"afterInit\")}is(t){return iE[t]&&this instanceof iE[t]}bindAxes(){let t,e=this,i=e.options,s=e.chart;P(this,\"bindAxes\",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,((i[o]??0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(tr(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||to(18,!0,s)})}),P(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&&(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=this.pointInterval??i.pointInterval??1,o&&N(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&&N(t)?a+e:(this.xIncrement=a+e,a)}setOptions(t){let e,i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=F(t),a=i.styledMode,n={plotOptions:s,userOptions:r};P(this,\"setOptions\",n);let h=n.plotOptions[this.type],l=o.plotOptions||{},d=l.series||{},c=iP.plotOptions[this.type]||{},p=l[this.type]||{};h.dataLabels=this.mergeArrays(c.dataLabels,h.dataLabels),this.userOptions=n.userOptions;let g=F(h,s.series,p,r),{negativeColor:u,negativeFillColor:f,zoneAxis:m=\"y\",zones:x}=g,y=(x||[]).map(t=>({...t}));return this.tooltipOptions=F(iP.tooltip,iP.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=r.stickyTracking??p.stickyTracking??d.stickyTracking??(!!this.tooltipOptions.shared&&!this.noSharedTooltip||g.stickyTracking),null===h.marker&&delete g.marker,this.zones||(this.zones=y),this.zoneAxis=m,(u||f)&&!x&&(e={value:g[m+\"Threshold\"]||g.threshold||0,className:\"highcharts-negative\"},a||(\"boolean\"!=typeof u&&(e.color=u),e.fillColor=f),y.push(e)),y.length&&v(y[y.length-1].value)&&y.push(a?{}:{color:this.color,fillColor:this.fillColor}),P(this,\"afterSetOptions\",{options:g}),g}getName(){let{chart:t,options:e}=this,{dataMapping:i,name:s}=e,o=i?.y||i?.value,r=W(o)?o:o?.column;return s??(W(r)?r:iI(t.options.lang.seriesName,this,t))}getCyclic(t,e,i){let s,o,r=this.chart,a=`${t}Index`,n=`${t}Counter`,h=i?.length||r.options.chart.colorCount;!e&&(v(o=\"color\"===t?this.options.colorIndex??this[a]: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(){let t=this.chart;t.styledMode?this.getCyclic(\"color\"):this.options.colorByPoint?this.color=\"var(--highcharts-neutral-color-20)\":this.getCyclic(\"color\",this.options.color||iP.plotOptions[this.type]?.color,t.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,i){let s=e?this.dataTable.getModified():this.dataTable,o=s.rowCount,r=this.dataTable!==s,a=s.getColumn(t,!0);if(\"x\"===t&&!r){if(this.xColumn)return this.xColumn;let t=s.getColumn(\"name\",!0),e=this.options,i=t=>{if(void 0!==this.xColumnIsNumbers)return this.xColumnIsNumbers;for(let e of t)if(\"number\"!=typeof e)return this.xColumnIsNumbers=!1;return this.xColumnIsNumbers=!0};if(this.xIncrement=null,!a||this.xAxis?.hasNames||e.relativeXValue||a.length<(e.turboThreshold||1/0)&&!this.boosted&&!i(a)){let e=[];for(let i=0;i<o;i++){let s=a?.[i];v(s)||(this.xIncrement??(this.xIncrement=e[e.length-1]??null)),e.push(this.getX(s,t?.[i]))}return this.xColumn=e}}return a||Array(i?o:0)}getX(t,e){return this.xAxis?.hasNames&&this.dataTable.getColumn(\"name\",!0)&&v(e)?this.xAxis.nameToX({name:e,series:this},t):void 0===t||N(t)&&this.options.relativeXValue?this.autoIncrement(t):(\"string\"==typeof t&&N(t=this.chart.time.parse(t)),t)}matchPoints(t,e,i,s){let{dataTable:o,options:r,requireSorting:a}=this,n=r.dataSorting,h=this.data,l=[],d=[],c=o.rowCount===h.length,p,u,f,m=0,x=!0;this.xIncrement=null,delete this.xColumn;let y=o.getColumn(\"x\"),b=o.getColumn(\"id\"),k=n?.matchByName?o.getColumn(\"name\"):void 0,w=o.getColumn(\"index\");for(u=0;u<o.rowCount;u++){let r=y?.[u],g=b?.[u],f=k?.[u],x=w?.[u],[M,C]=g&&e?[g,e]:f&&i?[f,i]:v(x)&&s?[x,s]:v(r)&&t?[r,t]:[],S=-1;if(C){if(-1===(S=C.indexOf(M,m))){let e=y?.[u],i=t?.length??o.rowCount;for(;i&&t&&\"number\"==typeof e&&t[i-1]>e;)i--;l.push({newIndex:i,oldIndex:u})}else h[S]&&(d.push({newIndex:S,oldIndex:u}),h[S].touched=!0,a&&(m=S+1));(!c||u!==S||n?.enabled||this.hasDerivedData)&&(p=!0)}else l.push({newIndex:u,oldIndex:u})}if(p){for(d.forEach(t=>{h[t.newIndex].applyOptions(o.getRowObject(t.oldIndex))}),l.sort((t,e)=>e.newIndex-t.newIndex),l.forEach(t=>{h.splice(t.newIndex,0,void 0)}),u=h.length;u--;)(f=h[u])&&!f.touched&&(f.destroy(),h.splice(u,1));this.isDirtyData=this.isDirty=!0}else if(c&&!n?.enabled){for(u=0;u<o.rowCount;u++)if(!h[u].destroyed&&!h[u].condemned){let t=o.getRowObject(u);t&&(Object.keys(t).forEach(e=>{void 0===t[e]&&delete t[e]}),Object.keys(t).length&&h[u].update(t,!1,void 0,!1))}}else x=!1;if(h.forEach(t=>{t&&(t.touched=!1)}),!x)return!1;let M=this.getColumn(\"x\");return null===this.xIncrement&&M.length&&(this.xIncrement=g(M),this.autoIncrement()),!0}getDataColumnKeys(){return this.dataColumnKeys||[\"x\",...this.pointArrayMap||[\"y\"]]}setData(t,e=!0,i,s){let o,r,a,n=this.dataTable,h=this.options,l=this.points,d=l?.length||0,c=n.getColumn(\"x\"),p=n.getColumn(\"id\"),g=h.dataSorting?.matchByName&&l?.map(t=>t.name)||n.getColumn(\"name\"),u=n.getColumn(\"index\"),f=this.chart,m=this.xAxis;if(f.options.chart.allowMutatingData||(h.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,a=F(!0,t)),t=a||t,this.xIncrement=null,delete this.xColumn,delete this.xColumnIsNumbers,n!==h.dataTable&&delete n.columns.x,this.colorCounter=0,H(t)?this.setDataFromArray(t):this.setDataFromTable(t),!1===s||!d||this.cropped||this.hasGroupedData||!this.visible||this.boosted||(o=this.matchPoints(c,p,g,u)),!o){for(W(this.getColumn(\"y\")[0])&&to(14,!0,f),this.data=[],r=d;r--;)l[r]?.destroy();m&&(m.minRange=m.userMinRange),this.isDirty=f.isDirtyBox=!0,this.isDirtyData=!!l,i=!1}H(t)&&(this.options.data=this.userOptions.data=t),\"point\"===h.legendType&&(this.processData(),this.generatePoints()),e&&f.redraw(i)}setDataFromArray(t){let e=t.length,{keys:i,turboThreshold:s}=this.options,{pointValKey:o=\"y\",pointArrayMap:r=[]}=this,a=r.length,n=this.dataTable,h=this.getDataColumnKeys(),l=s&&e>s,d=0,c=1;if(l){let s=this.getFirstValidPoint(t),p=this.getFirstValidPoint(t,e-1,-1),g=t=>!!(H(t)&&(i||N(t[0])));if(N(s)&&N(p))n.setColumn(o,t);else if(g(s)&&g(p))if(a){let e=s.length===a,i=Array(s.length).fill(0).map(()=>[]);for(let e of t)for(let t=0;t<=a;t++)i[t]?.push(e[t]);n.setColumns((e?r:h).reduce((t,e,s)=>(t[e]=i[s],t),{}))}else{i&&(d=i.indexOf(\"x\"),c=i.indexOf(\"y\"),d=d>=0?d:0,c=c>=0?c:1),1===s.length&&(c=0);let e=[],r=[];if(d===c){for(let e of t)r.push(e[c]);n.setColumn(o,r)}else{for(let i of t)e.push(i[d]),r.push(i[c]);n.setColumns({x:e,[o]:r})}}else l=!1}if(!l){let i={};for(let s=0;s<e;s++){let o=this.pointClass.prototype.optionsToObject.call({series:this},t[s]);for(let t of Object.keys(o))\"__proto__\"!==t&&\"constructor\"!==t&&(Object.hasOwnProperty.call(i,t)||(i[t]=Array(e)),i[t][s]=o[t])}e?n.setColumns(i):n.deleteRows(0,n.rowCount)}}setDataFromTable(t){let{chart:e,options:i,dataTable:s}=this,o=e.getDataTable(i),r=t?[t]:o.length?o:e.dataTable,a=this.getDataColumnKeys(),n=i.dataMapping,h=a.slice();n&&(Object.keys(n).forEach(t=>{_(h,t)}),this.dataColumnKeys=h),r.forEach((t,e)=>{let i=h.reduce((i,s)=>{let o=n?.[s],r=t.columns||{},a=t.id,h=W(o)?0===e&&r[o]:((o?.dataTable||0)===e||a&&o?.dataTable===a)&&(N(o?.column)?Object.values(r)[o.column]:r[o?.column||s]);return h&&(i[s]=h),i},{});(n||t)&&s.setColumns(i),t.isDataTable&&this.bindDataTableEvents(t,i)})}bindDataTableEvents(t,e){if(this.hasBoundDataTableEvents)return;let{chart:i,eventsToUnbind:s}=this,o=()=>{clearTimeout(i.redrawTimeout),i.redrawTimeout=setTimeout(()=>i.renderer&&i.redraw(),0)};s.push(c(t,\"afterSetRows\",t=>{let i=t.rowIndex;if(N(i)){let t=e5.prototype.getRowObject.call({columns:e},i),s=this.data[i];t&&(this.currentDataGrouping?this.setData():(s?s.update(t,!1):this.addPoint(t,!1),o()))}})),s.push(c(t,\"afterDeleteRows\",t=>{let{rowCount:e,rowIndex:i}=t;if(N(i)){for(let t=i+e-1;t>=i;t--)this.removePoint(t,!1);o()}})),s.push(c(t,\"afterSetColumns\",t=>{this.setData(t.target)})),this.hasBoundDataTableEvents=!0}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 e5: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))),x!==i&&(m=x.getColumn(\"x\",!0)||[]),{modified:x,cropped:c,cropStart:p,closestPointRange:L([h?m.map(h.log2lin):m],()=>e.requireSorting&&!y&&to(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,P(this,\"afterProcessData\")}cropData(t,e,i){let s=t===this.dataTable?this.getColumn(\"x\"):t.getColumn(\"x\",!0),o=s.length,r,a,n=0,h=o;for(r=0;r<o;r++)if(s[r]>=e){n=Math.max(0,r-1);break}for(a=r;a<o;a++)if(s[a]>i){h=a+1;break}let l=Object.keys(t.columns).reduce((e,i)=>(e[i]=(t.getColumn(i,!0)||[]).slice(n,h),e),{});return l.x=s.slice(n,h),{modified:new e5({columns:l}),start:n,end:h}}generatePoints(){let t=this.options,e=this.hasProcessedDataTable?void 0:t.data,i=this.dataTable.getModified(),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.getDataColumnKeys(),p,g,u,f,m=this.data,x;if(!m&&!n){let t=[];t.length=e?.length||0,m=this.data=t}for(h&&n&&(this.options.keys=!1),f=0;f<r;f++)g=a+f,n?((u=new o(this,i.getRowObject(f,c))).dataGroup=this.groupMap?.[d+f],u.dataGroup?.options&&(u.options=u.dataGroup.options,S(u,u.dataGroup.options),delete u.dataLabels,u.key=u.name??u.category)):(u=m[g],x=e?e[g]:i.getRowObject(f),u||void 0===x?u&&(u.category=this.xAxis?.categories?.[u.x]??u.x,u.key=u.name??u.category):m[g]=u=new o(this,x,s[f])),u&&(u.index=n?d+f:g,l[f]=u);if(this.options.keys=h,m&&(r!==(p=m.length)||n))for(f=0;f<p;f++)f!==a||n||(f+=r),m[f]&&(m[f].destroyElements(),m[f].plotX=void 0);this.data=m,this.points=l,P(this,\"afterGeneratePoints\")}getXExtremes(t){return{min:p(t),max:g(t)}}getExtremes(t,e){let{options:i,xAxis:s,yAxis:o}=this,r=e||this.getExtremesFromAll||i.getExtremesFromAll,a=r&&this.cropped?this.dataTable:this.dataTable.getModified(),n=a.rowCount,h=t||this.stackedYData,l=h?[h]:(this.keysAffectYAxis||this.pointArrayMap||[\"y\"])?.map(t=>a.getColumn(t,!0)||[])||[],d=this.getColumn(\"x\",!0),c=[],u=this.requireSorting&&!this.is(\"column\")?1:0,f=i.cumulative&&i.cumulativeStart&&u&&!r,m=!!o&&o.positiveValuesOnly,x=r||this.cropped||!s,y,b,v,k=0,w=0;for(s&&(k=(y=s.getExtremes()).min,w=y.max),v=0;v<n;v++)if(b=d[v],(x||(d[v+u]||b)>=k&&(d[v-u]||b)<=w)&&(!f||b>=k))for(let t of l){let e=t[v];N(e)&&(e>0||!m)&&c.push(e)}let M={activeYData:c,dataMin:p(c),dataMax:g(c)};return P(this,\"afterGetExtremes\",{dataExtremes:M}),M}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(v(t[o]))return t[o];o+=i}}translate(){this.generatePoints();let{hasRendered:t,options:e,xAxis:i,yAxis:s}=this,{stacking:o,threshold:r}=e,{polar:a}=this.chart,n=this.points.concat(this.condemnedPoints),h=n.length,l=this.pointPlacementToXValue(),d=!!l,c=e.startFromThreshold?r:0,p=e?.nullInteraction&&s.len,g,u,x,y,b=Number.MAX_VALUE;function k(t){return f(t,-1e9,1e9)}let w=(t,e)=>{let s=i.translate(t,!1,!1,e,!0,l);return N(s)?m(k(s)):void 0},M=(t,e,i)=>{if(N(t)&&void 0!==e.plotX){let e=s.translate(t,!1,!0,i,!0);return N(e)?k(e):void 0}if(!N(t)&&p)return p};for(g=0;g<h;g++){let e=n[g],h=e.x,p,f,C=e.y,S=e.low,T=o&&s.stacking?.stacks[(this.negStacks&&C<(c?0:r)?\"-\":\"\")+this.stackKey];e.plotX=u=w(h),o&&this.visible&&T&&T[h]&&(y=this.getStackIndicator(y,h,this.index),!e.isNull&&y.key&&(f=(p=T[h]).points[y.key]),p&&H(f)&&(S=f[0],C=f[1],S===c&&y.key===T[h].base&&(S=N(r)?r:s.min),s.positiveValuesOnly&&v(S)&&S<=0&&(S=void 0),e.total=e.stackTotal=p.total??void 0,e.percentage=v(e.y)&&p.total?e.y/p.total*100:void 0,e.stackY=C,this.irregularWidths||p.setOffset(this.pointXOffset||0,this.barW||0,void 0,void 0,void 0,this.xAxis))),e.yBottom=v(S)?k(s.translate(S,!1,!0,!1,!0)):void 0,this.dataModify&&(C=this.dataModify.modifyValue(C,g)),e.plotY=M(C,e),e.origin=!t||e.graphic||a?void 0:{x:w(h,!0),y:M(C,e,!0)},e.isInside=this.isPointInside(e),e.clientX=d?m(i.translate(h,!1,!1,!1,!0,l)):u,e.negative=(e.y||0)<(r||0),!e.isNull&&!1!==e.visible&&N(u)&&(N(x)&&(b=Math.min(b,Math.abs(u-x))),x=u),e.zone=this.zones.length?e.getZone():void 0}this.closestPointRangePx=b,P(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&&!!N(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,options:s,plotClipGroup:o}=this,r=t.sharedClips,a=t.renderer,n=t.getClipBox(this),h=s.clip??!0,l=this.getSharedClipKey(),d=r[l];d?d.animate(n):r[l]=d=a.clipRect(n),e?.clip(h?d:void 0),i?.clip(),o?.clip(h&&this.yAxis?.clippable?t.plotClipInner:void 0)}animate(t){let{chart:e,group:i,markerGroup:s}=this,o=e.inverted,r=tS(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(),j(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path=\"url(#${t.id})\"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,P(this,\"afterAnimate\")}drawPoints(t){let e,i,s,o,r,a,n;t||(t=this.points.concat(this.condemnedPoints));let 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=p.enabled??(!f||!!f.isRadial||null)??(this.closestPointRangePx??-1/0)>=(p.enabledThreshold??2)*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&&!v(r.enabled)||r.enabled)&&(!c||g)&&!1!==i.visible){let t=r.symbol??this.symbol??\"rect\";n=this.markerAttribs(i,i.selected?\"select\":\"\");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),i.origin)){let t=i.getOrigin(i.origin,n);l||(t.opacity=0),s.attr(t),o=\"animate\"}if(s){\"animate\"===o&&s?.animate(n);let t=this.pointAttribs(i,l||!i.selected?void 0:\"select\");l?d&&s.css({fill:t.fill}):s[o](t),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=o.radius??s.radius;e&&(n=s.states?.[e],h=o.states?.[e],l=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 N(l)&&d&&(i.crisp&&(d[0]=y(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=this.color,d,c,p=r.lineWidth??s.lineWidth,g=t?.isNull&&i.nullInteraction?0:1;l=a||h||n||l,d=r.fillColor||s.fillColor||l,c=r.lineColor||s.lineColor||l,e=e||\"normal\";let u=s.states?.[e]||{},f=r.states?.[e]||{};return p=f.lineWidth??u.lineWidth??(p||0)+(f.lineWidthPlus??u.lineWidthPlus??0),d=f.fillColor||u.fillColor||d,c=f.lineColor||u.lineColor||c,g=f.opacity??u.opacity??g,{stroke:c,\"stroke-width\":p,fill:d,opacity:t?.condemned||t?.isInside===!1?0:g}}destroy(t){let e,i=this,s=i.chart,o=/AppleWebKit\\/533/.test(iO.navigator.userAgent);for(let s of(P(i,\"destroy\",{keepEventsForUpdate:t}),this.removeEvents(t),i.axisTypes||[]))e=i[s],e?.series&&(C(e.series,i),e.isDirty=e.forceRedraw=!0);for(let t of(i.legendItem&&i.chart.legend.destroyItem(i),i.points||[]))t?.destroy?.(!0);for(let t of i.zones||[])k(t,void 0,!0);B(i.animationTimeout),j(i,function(t,e){t instanceof tq&&!t.survive&&t[o&&\"group\"===e?\"hide\":\"destroy\"]()}),s.hoverSeries===i&&(s.hoverSeries=void 0),C(s.series,i),s.orderItems(\"series\"),j(i,function(e,s){t&&\"hcEvents\"===s||delete i[s]})}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,m=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:o,value:r}=t,a=i-s;o?.push([\"L\",e,Math.abs(a)<u?i-u*(a<0||0===a&&v(r)?-1:1):s])};if(s.length&&(i||t)&&d&&N(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=f(d.toPixels(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&&m(o,e,i),r&&m(r,e,i)}let x=[],y=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,m=a.len;c?(p=o,f=y):(g=o,m=y);let b=[[\"M\",p,g],[\"L\",f,g],[\"L\",f,m],[\"L\",p,m],[\"Z\"]],v=[b[0],...s,b[1],b[2],...x,b[3],b[4]];x=s.reverse(),y=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 v(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 \"+(v(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};P(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||q(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=tS(i.animation),r=t.visible?\"inherit\":\"hidden\",a=i.zIndex,n=e.seriesGroup,h=t.finishedAnimating?0:o.duration;P(this,\"render\"),e.plotClipInner&&(t.plotClipGroup||(t.plotClipGroup=e.renderer.g().add(n))),t.plotGroup(\"group\",\"series\",r,a,t.plotClipGroup||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=tt(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,P(t,\"afterRender\")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree,this.condemnedPoints.length=0}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,tt(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,g,u,f,m,x,y,b=i.point,k=r.kdAxisArray[s%o],w=b,M=!1;l=e[a],g=b[a],u=v(l)&&v(g)?l-g:null,f=e[n],m=b[n],x=v(f)&&v(m)?f-m:0,y=d&&b.marker?.radius||0,b.dist=Math.sqrt((u&&u*u||0)+x*x)-y,b.distX=v(u)?Math.abs(u)-y:Number.MAX_VALUE;let C=(e[k]||0)-(b[k]||0)+(d&&b.marker?.radius||0),S=C<0?\"left\":\"right\",T=C<0?\"right\":\"left\";return i[S]&&([w,M]=c(b,t(e,i[S],s+1,o),h)),i[T]&&p(Math.sqrt(C*C),w[h],M)&&(w=c(w,t(e,i[T],s+1,o),h)[0]),w}(t,this.kdTree,l,l)}pointPlacementToXValue(){let{options:t,xAxis:e}=this,i=t.pointPlacement;return\"between\"===i&&(i=e.reversed?-.5:.5),N(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,\"+(iL?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.dataLabelsGroups||[]].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))})),P(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=e??!0;let{applyOptions:f,optionsToObject:m}=this.pointClass.prototype,x={series:this},y=m.call(x,t);f.call(x,y,void 0,!1);let b=x.x;if(a=u.length,this.requireSorting&&b<u[a-1])for(r=!0;a&&u[a-1]>b;)a--;d.setRow(y,a,!0),this.xColumn?.splice(a,0,this.getX(b)),p&&x.name&&(p[b]=x.name),g?.splice(a,0,t),(r||this.hasProcessedDataTable)&&(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,this.xColumn].filter(v).forEach(t=>{t.shift()}),d.deleteRows(0))),!1!==o&&P(this,\"addPoint\",{point:x}),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,s.xColumn].filter(v).forEach(e=>{e.splice(t,1)}),n.deleteRows(t),n.modified=n,h?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};tC(i,o),e=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),(t??!0)&&r.redraw(e)}!1!==i?P(o,\"remove\",null,a):a()}update(t,e){P(this,\"update\",{options:t=M(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=iE[r].prototype,h=i.finishedAnimating&&{animation:!1},l={},d=t.data||t.dataTable,c,p,g=iD.keepProps.slice(),u=t.type||o.type||s.options.chart.type,f=!(this.hasDerivedData||u&&u!==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)));u=u||r,f?(g.push.apply(g,iD.keepPropsForPoints),!1!==t.visible&&(g.push(\"area\",\"graph\"),\"zones\"in t||g.push(\"zones\")),i.parallelArrays.forEach(function(t){g.push(t+\"Data\")}),d&&(t.dataSorting&&S(i.options.dataSorting,t.dataSorting),this.setData(d,!1))):this.dataTable.modified=this.dataTable,t.dataLabels&&o.dataLabels&&(t.dataLabels=this.mergeArrays(o.dataLabels,t.dataLabels)),t=F(o,{index:void 0===o.index?i.index:o.index,pointStart:a?.series?.pointStart??o.pointStart},!f&&{data:i.options.data},t,h),f&&t.data&&(t.data=i.options.data),(g=[\"dataLabelsGroup\",\"dataLabelsGroups\",\"dataLabelsParentGroups\",\"group\",\"markerGroup\",\"plotClipGroup\",\"transformGroup\"].concat(g)).forEach(function(t){g[t]=i[t],delete i[t]});let m=!1;if(iE[u]){if(m=u!==i.type,i.remove(!1,!1,!1,!0),m)if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,iE[u].prototype);else{let t=Object.hasOwnProperty.call(i,\"hcEvents\")&&i.hcEvents;for(p in n)i[p]=void 0;S(i,iE[u].prototype),t?i.hcEvents=t:delete i.hcEvents}}else to(17,!0,s,{missingModuleFor:u});if(g.forEach(function(t){i[t]=g[t]}),i.init(s,t),f&&this.points)for(let t of(!1===(c=i.options).visible?(l.graphic=1,l.dataLabel=1):(this.hasMarkerChanged(c,o)&&(l.graphic=1),i.hasDataLabels?.()||(l.dataLabel=1)),this.points))t?.series&&(t.resolveColor(),Object.keys(l).length&&t.destroyElements(l),!1===c.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),m&&i.linkedSeries.length&&(i.isDirtyData=!0),P(this,\"afterUpdate\"),(e??!0)&&s.redraw(!!f&&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=s?.[this.type]?.[t]??s?.series?.[t];return o&&!v(r)?i!==o:i!==(r??i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),P(this,\"mouseOver\"),this.setState(\"hover\"),t.hoverSeries=this}onMouseOut(){let t=this.chart,e=t.tooltip,i=t.hoverPoint;t.hoverSeries=null,i&&i.onMouseOut(),P(this,\"mouseOut\"),e&&!this.stickyTracking&&(!e.shared||this.noSharedTooltip)&&e.hide(),t.series.forEach(function(t){t.setState(\"\",!0)})}setState(t,e){let i=this,{graph:s,options:o}=i,{inactiveOtherPoints:r,states:a={}}=o,n=a[t||\"normal\"]?.animation??i.chart.options.chart.animation,{lineWidth:h,opacity:l}=o;if(t=t||\"\",i.state!==t&&([i.group,i.markerGroup,...i.dataLabelsGroups||[]].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]?.enabled===!1)return;if(t&&(h=a[t]?.lineWidth??(N(h)?h+(a?.[t]?.lineWidthPlus||0):void 0),l=a[t]?.opacity??l),s&&!s.dashstyle&&N(h))for(let t of[s,...this.zones.map(t=>t.graph)])t?.animate({\"stroke-width\":h},n);r||[i.group,i.markerGroup,...i.dataLabelsGroups||[],i.labelBySeries].forEach(function(t){t?.animate({opacity:l},n)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(e=>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\",\"markerGroup\",\"tracker\",\"tt\"].forEach(t=>{i[t]?.[a]()}),i.dataLabelsGroups?.forEach(t=>{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),P(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),P(this,t?\"select\":\"unselect\")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){let i=this.chart.renderer,s=this.options.legendSymbol||\"rectangle\",o=e.legendItem||{},{options:r,symbolHeight:a,symbolWidth:n}=t,h=r.squareSymbol,l=h?a:n,d=h?(n-a)/2:0,c=(t.baseline||0)-a+1,p=r.symbolRadius??a,g=\"rectangle\"===s?i.rect(d,c,l,a,p):i.symbols[s]&&i.symbol(s,d,c,l,a,{r:p});g?o.symbol=g.addClass(\"highcharts-point\").attr({zIndex:3}).add(o.group):iw[s]?.call(this,t,e)}}iD.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:\"var(--highcharts-background-color)\",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:\"var(--highcharts-neutral-color-20)\",lineColor:\"var(--highcharts-neutral-color-100)\",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:\"center\",borderWidth:0,defer:!0,distance:4,formatter:function(){let{numberFormatter:t}=this.series.chart;return\"number\"!=typeof this.y?\"\":t(this.y,-1)},padding:[1,3],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\"},iD.types=iT.seriesTypes,iD.registerType=iT.registerSeriesType,iD.keepProps=[\"colorIndex\",\"eventOptions\",\"navigatorSeries\",\"symbolIndex\",\"baseSeries\"],iD.keepPropsForPoints=[\"data\",\"isDirtyData\",\"isDirtyCanvas\",\"points\",\"condemnedPoints\",\"dataTable\",\"hasProcessedDataTable\",\"xIncrement\",\"cropped\",\"_hasPointMarkers\",\"hasDataLabels\",\"nodes\",\"layout\",\"level\",\"mapMap\",\"mapData\",\"minY\",\"maxY\",\"minX\",\"maxX\",\"transformGroups\"],S(iD.prototype,{axisTypes:[\"xAxis\",\"yAxis\"],coll:\"series\",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:[\"clientX\",\"plotY\"],parallelArrays:[\"x\",\"y\"],pointClass:e_,requireSorting:!0,sorted:!0}),iT.series=iD;let iB=iD,{registerEventOptions:iz}=eb,{composed:iR,marginNames:iN}=n,{distribute:iW}=tY,{format:iH}=tF;class iG{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(),iz(this,e),c(this.chart,\"endResize\",function(){this.legend.positionCheckboxes()})),c(this.chart,\"render\",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=t.padding??8;this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=F(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=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(F(!0,this.options,t)),\"events\"in this.options&&iz(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,(e??!0)&&i.redraw(),P(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 iB||t instanceof e_)&&(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,lineColor:l}=t.options,d=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(F(e?this.itemStyle:i)),a?.attr(d({stroke:l||t.color})),n?.attr(d(t.series?t.series.pointAttribs?.(t):t.pointAttribs?.()||{fill:t.color})),s?.attr(d({fill:h||t.color,\"fill-opacity\":h?1:t.options.fillOpacity??.75}))}t.color=i,P(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},n=()=>{P(this,\"afterPositionItem\",{item:t})};e[v(e.translateY)?\"animate\":\"attr\"](o,void 0,n)}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=w(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,b(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?iH(e.labelFormat,t,this.chart):e.labelFormatter.call(t,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?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(F(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=o.symbolHeight??this.fontMetrics.f,o.squareSymbol&&(this.symbolWidth=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:Math.min(o.itemWidth||this.widthOption||i.spacingBox.width,o.maxWidth?Z(o.maxWidth,i.chartWidth):1/0)-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?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&&(i.showInLegend??!v(i.linkedTo))&&(t=t.concat(e.legendItem?.labels||(\"point\"===i.legendType?e.data:e)))}),P(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)&&!v(t[a])&&(i[iN[a]]=Math.max(i[iN[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=D(a?t.points:t.points.slice(0).reverse(),function(t){return N(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),iW(i,e.plotHeight)))t=o.item.legendItem||{},N(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.spacingBox.width,i=t.renderer,s=this.options,o=this.padding,r=this.getAllItems(),a,n,h,l=this.group,d,c=this.box;this.itemX=o,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=Z(s.width,e-o),d=e-2*o-s.x,[\"rm\",\"lm\"].indexOf(this.getAlignment().substring(0,2))>-1&&(d/=2),this.maxLegendWidth=this.widthOption||d,l||(this.group=l=i.g(\"legend\").addClass(s.className||\"\").attr({zIndex:7}).add(),this.contentGroup=i.g().attr({zIndex:1}).add(l),this.scrollGroup=i.g().add(this.contentGroup)),this.renderTitle(),Q(r,(t,e)=>(t.options?.legendIndex||0)-(e.options?.legendIndex||0)),s.reversed&&r.reverse(),this.allItems=r,this.display=a=!!r.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,r.forEach(this.renderItem,this),r.forEach(this.layoutItem,this),n=(s.maxWidth?Math.min(this.widthOption||this.offsetWidth,d,Z(s.maxWidth,t.chartWidth)||1/0):this.widthOption||this.offsetWidth)+o,h=this.lastItemY+this.lastLineHeight+this.titleHeight,h=this.handleOverflow(h)+o,c||(this.box=c=i.rect().addClass(\"highcharts-legend-box\").attr({r:s.borderRadius}).add(l)),t.styledMode||c.attr({stroke:s.borderColor,\"stroke-width\":s.borderWidth||0,fill:s.backgroundColor||\"none\"}).shadow(s.shadow),n>0&&h>0&&c[c.placed?\"animate\":\"attr\"](c.crisp.call({},{x:0,y:0,width:n,height:h},c.strokeWidth())),l[a?\"show\":\"hide\"](),t.styledMode&&\"none\"===l.getStyle(\"display\")&&(n=h=0),this.legendWidth=n,this.legendHeight=h,a&&this.align(),this.proximate||this.positionItems(),P(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=F(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(F(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=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=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&&tC(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(),tt(()=>{P(this,\"afterScroll\",{currentPage:l})},tS(e??i.renderer.globalAnimation??!0).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof e_,n=t instanceof iB,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(F(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),P(s,\"itemClick\",{browserEvent:e,legendItem:t,context:s},i),a?t.firePointEvent(\"legendItemClick\",{browserEvent:e}):n&&P(t,\"legendItemClick\",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=x(\"input\",{type:\"checkbox\",className:\"highcharts-legend-checkbox\",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),c(t.checkbox,\"click\",function(e){let i=e.target;P(t.series||t,\"checkboxClick\",{checked:i.checked,item:t},function(){t.select()})})}}(im=iG||(iG={})).compose=function(t){_(iR,\"Core.Legend\")&&c(t,\"beforeMargins\",function(){this.legend=new im(this,this.options.legend)})};let iX=iG,{defaultOptions:iF}=tm,{numberFormat:iY}=tF,{registerEventOptions:ij}=eb,{charts:i$,doc:iV,marginNames:iU,win:i_}=n,{seriesTypes:iZ}=iT;class iK{static chart(t,e,i){let s=new iK(t,e,i);return s.promise??s}constructor(t,e,i){if(this.sharedClips={},!iV)return void to(36,!1,this);let s=[...arguments];(W(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:t.zoomType??e.type,key:t.zoomKey??e.key,pinchType:t.pinchType??e.pinchType,singleTouch:t.zoomBySingleTouch??e.singleTouch??!1,resetButton:F(e.resetButton,t.resetZoomButton)}}init(t,e){P(this,\"init\",{args:arguments},function(){let i=F(iF,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=S({},t),(this.renderTo=W(o)?iV.getElementById(o):o)||to(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],!0===e?this.promise=new Promise(t=>{this.callback=t}):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 tp(S(i.time||{},{locale:this.locale}),i.lang),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||iY).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=i$.length,this.dataTable=this.getDataTable(i),i$.push(this),n.chartCount++,ij(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),P(this,\"afterInit\"),this.firstRender()})}getDataTable(t){return(t.dataTable?J(t.dataTable):[]).map(t=>t.isDataTable?t:new e5(t))}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=iZ[i];s||to(17,!0,this,{missingModuleFor:i});let o=new s;return\"function\"==typeof o.init&&o.init(this,t),o}orderItems(t,e=0){let i=this[t],s=this.options[t]=J(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?J(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 iB&&(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}=F(this.clipBox);return t&&(s&&s.len!==this.plotSizeX&&!s.isRadial&&(n=s.len),o&&o.len!==this.plotSizeY&&!o.isRadial&&(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 P(this,\"afterIsInsidePlot\",u),u.isInsidePlot}redraw(t){P(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.isDirtyLegend,g;for(a.rootFontSize=a.boxWrapper.getStyle(\"font-size\"),this.setResponsive&&this.setResponsive(!1),tC(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((g=i[c]).options.stacking||g.options.centerInCategory)&&(d=!0,g.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(g=i[c]).options.stacking&&(g.isDirty=!0);i.forEach(function(t){t.isDirty&&(\"point\"===t.options.legendType?(\"function\"==typeof t.updateTotals&&t.updateTotals(),p=!0):r&&(r.labelFormatter||r.labelFormat)&&(p=!0)),t.isDirtyData&&P(t,\"updatedData\")}),p&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins();let u=this.isDirtyBox;e.forEach(function(t){t.isDirty&&(u=!0)}),e.forEach(function(t){let e=t.min+\",\"+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){P(t,\"afterSetExtremes\",S(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(u||d)&&t.redraw()}),u&&this.drawChartBox(),P(this,\"predraw\"),i.forEach(function(t){(u||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),a.draw(),e.forEach(t=>{t.saveOld()}),P(this,\"redraw\"),P(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=D(this.axes,i)||D(this.series,i);for(let t=0;!s&&t<e.length;t++)s=D(e[t].points||[],i);return s}createAxes(){let t=this.userOptions;for(let e of(P(this,\"createAxes\"),[\"xAxis\",\"yAxis\"]))for(let i of t[e]=J(t[e]||{}))new eL(this,i,e);P(this,\"afterCreateAxes\")}getSelectedPoints(){return this.series.reduce((t,e)=>(e.getPointsCollection().forEach(e=>{(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]=F(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:[s.className,\"highcharts-\"+t].filter(W).join(\" \"),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(S(\"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=F(o),n=i?.textPxLength||0;if(i&&r){P(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=F({y:\"bottom\"===d?h:g+h},r),x=(r.width||(u>p?this.chartWidth:a.width)/f)+\"px\";m.align??(m.align=\"title\"===t?u<p?\"left\":\"center\":this.title?.alignValue),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*A(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,P(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:I(this.renderTo,\"width\",!0)||0,height:I(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,Z(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e?.style;)e.hcOrigStyle&&(b(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(iV.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e?.style&&(iV.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,iV.body.appendChild(e)),(\"none\"===I(e,\"display\",!1)||e.hcOrigDetached)&&(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),b(e,i),e.offsetWidth||e.style.setProperty(\"display\",\"block\",\"important\")),(e=e.parentNode)!==iV.body););}setClassName(t){this.container.className=\"highcharts-container \"+(t||\"\")}getContainer(){let t,e=this.options,i=e.chart,s=\"data-highcharts-chart\",o=tn(),r=this.renderTo,a=U(u(r,s));N(a)&&i$[a]&&i$[a].hasRendered&&i$[a].destroy(),u(r,s,this.index),r.innerHTML=tB.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,h=this.chartWidth;b(r,{overflow:\"hidden\"}),this.styledMode||(t=S({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=x(\"div\",{id:o},t,r);if(this.container=l,this.getChartSize(),h!==this.chartWidth&&(h=this.chartWidth,this.styledMode||b(l,{width:i.style?.width??h+\"px\"})),this._cursor=l.style.cursor,this.renderer=new eg(l,h,n,void 0,i.forExport,e.exporting?.allowHTML,this.styledMode,e.palette,this.index),this.containerBox=this.getContainerBox(),tC(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.palette=this.renderer.palette;P(this,\"afterGetContainer\")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!v(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!v(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend?.display&&this.legend.adjustMargins(i,e),P(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),iU.forEach((i,o)=>{v(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return M(this.userOptions,iF)}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)&&(B(e.reflowTimeout),e.reflowTimeout=tt(function(){if(e.container){e.setSize(void 0,void 0,!1);let t=e.containerBox;t&&(t.height=e.chartHeight)}},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=c(i_,\"resize\",e);c(this,\"destroy\",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,tC(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?tP:b)(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,P(s,\"resize\"),setTimeout(()=>{s&&P(s,\"endResize\")},tS(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o,{chartHeight:r,chartWidth:a,clipOffset:n,inverted:h,spacing:l,renderer:d}=this,c=Math[h?\"floor\":\"round\"];if(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=h?o:s,this.plotSizeY=h?s:o,this.spacingBox=d.spacingBox={x:l[3],y:l[0],width:a-l[3]-l[1],height:r-l[0]-l[2]},this.plotBox=d.plotBox={x:e,y:i,width:s,height:o},n&&(this.clipBox={x:c(n[h?2:3]),y:c(n[+!!h]),width:c(this.plotSizeX-n[+!h]-n[h?2:3]),height:c(this.plotSizeY-n[+!!h]-n[h?3:2])}),!t){for(let t of this.axes)t.setAxisSize(),t.setAxisTranslation();d.alignElements()}P(this,\"afterSetChartSize\",{skipAxes:t})}resetMargins(){P(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=X(s)?s:[s,s,s,s];[\"Top\",\"Right\",\"Bottom\",\"Left\"].forEach((s,r)=>{t[i][r]=e[`${i}${s}`]??o[r]})}),iU.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,e=t.options.chart,{backgroundColor:i,plotBackgroundColor:s,plotBackgroundImage:o,plotBorderRadius:r=0,shadow:a}=e,{chartWidth:n,chartHeight:h,clipBox:l,clipOffset:d,clipRect:c,plotBGImage:p,plotBox:g,plotLeft:u,plotTop:f,plotWidth:m,plotHeight:x,renderer:y,styledMode:b}=t,v=t.chartBackground,k=t.plotBackground,w=t.plotBorder,M,C,S,T=\"animate\";v||(t.chartBackground=v=y.rect().addClass(\"highcharts-background\").add(),T=\"attr\"),b?M=C=v.strokeWidth():(C=(M=e.borderWidth||0)+8*!!a,S={fill:i||\"none\"},(M||v[\"stroke-width\"])&&(S.stroke=e.borderColor,S[\"stroke-width\"]=M),v.attr(S).shadow(a)),v[T]({x:C/2,y:C/2,width:n-C-M%2,height:h-C-M%2,r:e.borderRadius}),T=\"animate\",k||(T=\"attr\",t.plotBackground=k=y.rect().addClass(\"highcharts-plot-background\").add()),k[T]({...g,r:r}),!b&&(k.attr({fill:s||\"none\"}).shadow(e.plotShadow),o&&(p?(o!==p.attr(\"href\")&&p.attr(\"href\",o),p.animate(g)):t.plotBGImage=y.image(o,u,f,m,x).add())),c?c.animate({width:l.width,height:l.height}):t.clipRect=y.clipRect(l),T=\"animate\",w||(T=\"attr\",t.plotBorder=w=y.rect().addClass(\"highcharts-plot-border\").attr({zIndex:1.5}).add()),w.attr(b?void 0:{stroke:e.plotBorderColor,\"stroke-width\":e.plotBorderWidth||0,fill:\"none\"})[T]({r:r});let A=w.strokeWidth(),L=F(w.crisp(g,-A));if(d&&!b){let t=d[0]-A/2,e=d[3]-A/2;L.x-=e,L.y-=t,L.width+=e+d[1]-A/2,L.height+=t+d[2]-A/2}w[T](L),[\"plotClipOuter\",\"plotClipInner\"].forEach((e,i)=>{let s=t[e],o=i?-A:A;s?.[r?T:\"attr\"]({x:L.x-o/2,y:L.y-o/2,width:L.width+o,height:L.height+o,r:r?r+o/2:0}),s?.parentGroup?.attr({display:r?\"\":\"none\"})}),t.isDirtyBox=!1,P(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=iZ[o.type],i=o[a]||e&&e.prototype[a],t=r?.length;!i&&t--;)(e=iZ[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:s}=t.options,o=W(s)&&(\":previous\"===s?i[t.index-1]:e.get(s));o&&o.linkedParent!==t&&(o.linkedSeries.push(t),t.linkedParent=o,t.visible=t.options.visible??o.options.visible??t.visible)}),P(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,{axisLayoutRuns:s=2,plotBorderRadius:o}=this.options.chart,r=t=>{t.forEach(t=>{t.visible&&t.render()})},a=0,n=!0,h,l=0;for(let e of(o&&(this.plotClipOuter||(this.plotClipOuter=i.clipRect()),this.plotClipInner||(this.plotClipInner=i.clipRect())),this.setTitle(),P(this,\"beforeMargins\"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i,offset:s}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&\"colorAxis\"!==e.coll&&!e.isRadial){a=t.tickLength,e.createGroups();let o=new ek(e,0,\"\",!0),r=o.createLabel(\"x\",i);if(o.destroy(),r&&(i.reserveSpace??!N(t.crossing))&&(a=r.getBBox().height+(i.distance??15)+Math.max(N(s)?s:0,0)),a){r?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-a,0);(n||h||s>1)&&l<s;){let e=this.plotWidth,i=this.plotHeight,s=[1.05,1.1];for(let e of t){let t=+(e.horiz||0);if(0===l){e.setScale();let i=e.tickPositions?.info?.match;i&&(s[t]=Math.min(i,s[t]))}else(t&&n||!t&&h)&&e.setTickInterval(!0)}0===l?this.getAxisMargins():this.getMargins(),n=e/this.plotWidth>(l?1:s[1]),h=i/this.plotHeight>(l?1:s[0]),l++}this.drawChartBox(),this.hasCartesianSeries?r(t):e?.length&&r(e),this.seriesGroup||(this.seriesGroup=i.g(\"series-group\").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=F(!0,this.options.credits,t);if(i.enabled&&!this.credits){let t=i.href?tB.filterUserAttributes({href:i.href}).href:void 0;this.credits=this.renderer.text(i.text+(this.mapCredits||\"\"),0,0,i.useHTML).addClass(\"highcharts-credits\").on(\"click\",function(i){P(e,\"creditsClick\",i,()=>{t&&(i_.location.href=t)})}).attr({align:i.position.align,zIndex:8}),i.events?.click&&c(e,\"creditsClick\",i.events.click),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(P(e,\"destroy\"),e.renderer.forExport?C(i$,e):i$[e.index]=void 0,n.chartCount--,e.renderTo.removeAttribute(\"data-highcharts-chart\"),q(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=tB.emptyHTML,q(o),r&&w(o)),j(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=H(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),P(t,\"beforeRender\"),t.render(),t.pointer?.getChartPosition(),t.renderer.asyncCounter||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),P(this,\"load\"),P(this,\"render\"),v(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.warnIfCSSNotLoaded(),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||to('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))}warnIfCSSNotLoaded(){this.styledMode&&\"0\"!==i_.getComputedStyle(this.container).zIndex&&to(35,!1,this)}addSeries(t,e,i){let s,o=this;return t&&(e=e??!0,P(o,\"addSeries\",{options:t},function(){s=o.initSeries(t),o.isDirtyLegend=!0,o.linkSeries(),P(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 eL(this,e.axis,t);return(e.redraw??!0)&&this.redraw(e.animation),i}showLoading(t){let e=this,i=e.options,s=i.loading,o=s?.style??{},r=function(){a&&b(a,{left:o.left??e.plotLeft+\"px\",top:o.top??e.plotTop+\"px\",width:o.width??e.plotWidth+\"px\",height:o.height??e.plotHeight+\"px\"})},a=e.loadingDiv,n=e.loadingSpan;a||(e.loadingDiv=a=x(\"div\",{className:\"highcharts-loading highcharts-loading-hidden\"},null,e.container)),n||(e.loadingSpan=n=x(\"span\",{className:\"highcharts-loading-inner\"},null,a),c(e,\"redraw\",r)),a.className=\"highcharts-loading\",tB.setElementHTML(n,t??i.lang.loading??\"\"),!e.styledMode&&(b(a,S(o,{zIndex:10})),b(n,s?.labelStyle??{}),e.loadingShown||(b(a,{opacity:0,display:\"\"}),tP(a,{opacity:o.opacity??.5},{duration:s?.showDuration??0}))),e.loadingShown=!0,r()}hideLoading(){let t=this.options,e=this.loadingDiv;e&&(e.className=\"highcharts-loading highcharts-loading-hidden\",this.styledMode||tP(e,{opacity:0},{duration:t.loading?.hideDuration??100,complete:function(){b(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=[],c={options:t=M(t,n.options),hasChanged:!!Object.keys(t).length};if(P(n,\"update\",c),!c.hasChanged)return;l||n.setResponsive(!1,!0),n.userOptions=F(n.userOptions,t);let p=t.chart;p&&(F(!0,n.options.chart,p),this.setZoomOptions(),\"className\"in p&&n.setClassName(p.className),(\"inverted\"in p||\"polar\"in p||\"type\"in p)&&(n.propFromSeries(),o=!0),\"alignTicks\"in p&&(o=!0),\"events\"in p&&ij(this,p),j(p,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&&p.style&&n.renderer.setStyle(n.options.chart.style||{})),!n.styledMode&&t.colors&&(this.options.colors=t.colors),j(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)&&F(!0,n.options[i],t[i]),\"chart\"!==i&&-1!==n.propsRequireUpdateSeries.indexOf(i)&&(r=!0)}),this.collectionsWithUpdate.forEach(e=>{t[e]&&(J(t[e]).forEach((t,s)=>{let o;if(!t)return;let r=v(t.id);r&&(o=n.get(t.id)),!o&&n[e]&&(o=n[e][t.index??s])&&(r&&v(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(t=>{t.touched||t.options.isInternal?delete t.touched:d.push(t)}))}),d.forEach(t=>{t.chart&&t.remove&&t.remove(!1)}),o&&n.axes.forEach(function(t){t.update({},!1)}),r&&n.series.forEach(t=>{t.chart&&t.update({},!1)});let g=p?.width,u=p&&(W(p.height)?Z(p.height,g||n.chartWidth):p.height);a||N(g)&&g!==n.chartWidth||N(u)&&u!==n.chartHeight?n.setSize(g,u,s):(e??!0)&&n.redraw(s),P(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=t.options.lang,i=t.zooming.resetButton,s=i.theme,o=\"chart\"===i.relativeTo||\"spacingBox\"===i.relativeTo?void 0:\"plotBox\";P(this,\"beforeShowResetZoom\",void 0,()=>{t.resetZoomButton=t.renderer.button(e.resetZoom,0,0,()=>t.zoomOut(),s).attr({align:i.position.align,title:e.resetZoomTitle}).addClass(\"highcharts-reset-zoom\").add().align(i.position,!1,o)}),P(this,\"afterShowResetZoom\")}zoomOut(){P(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),P(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\"}),b(i.container,{cursor:\"move\"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:a={},trigger:n,allowResetButton:h=!0}=t,{time:l}=this;this.hoverPoints?.forEach(t=>t.setState()),P(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=a[x]??t.len,k=s[x]??t.len,w=10>Math.abs(b)?1:b/k,M=(s[y]||0)+k/2-t.pos,C=M-((a[y]??t.pos)+b/2-t.pos)/w,T=e&&!m||!e&&m?1:-1;if(!o&&(M<0||M>t.len))continue;let P=r||t.chart.polar||t.isOrdinal&&w<=1?0:u*T||0,A=t.toValue(C,!0),L=t.toValue(C+g/w,!0),O=A+P,E=L-P,I=t.allExtremes;if(O>E&&([O,E]=[E,O]),1===w&&!o&&\"yAxis\"===t.coll&&!I){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn(e.pointValKey||\"y\")||[],!0);I??(I={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),N(t.dataMin)&&N(t.dataMax)&&(I.dataMin=Math.min(t.dataMin,I.dataMin),I.dataMax=Math.max(t.dataMax,I.dataMax))}t.allExtremes=I}let{dataMin:D,dataMax:B,min:z,max:R}=S(t.getExtremes(),I||{}),W=l.parse(f.min),H=l.parse(f.max),G=D??W,X=B??H,F=E-O,Y=t.categories?0:Math.min(F,X-G),j=G-Y*(v(W)?0:f.minPadding),$=X+Y*(v(H)?0:f.maxPadding),V=t.allowZoomOutside||1===w||\"zoom\"!==n&&w>1,U=Math.min(W??j,j,V?z:j),_=Math.max(H??$,$,V?R:$);(!t.isOrdinal||1!==w||o)&&(O<U&&(O=U,w>=1&&(E=O+F)),E>_&&(E=_,w>=1&&(O=E-F)),(o||t.series.length&&(r||(O!==z||E!==R)&&O>=U&&E<=_))&&(r?r[t.coll].push({axis:t,min:Math.min(A,L),max:Math.max(A,L)}):(t.isPanning=\"zoom\"!==n&&\"drop\"!==n,t.isPanning&&\"mousewheel\"!==n&&(p=!0),\"drop\"!==n&&t.setExtremes(o?void 0:O,o?void 0:E,!1,!1,{move:C,trigger:n,scale:w}),!o&&(O>U||E<_)&&(c=h)),d=!0),this.hasCartesianSeries||o||(c=h),i&&(this[e?\"mouseDownX\":\"mouseDownY\"]=i[e?\"chartX\":\"chartY\"]))}return d&&(r?P(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}}S(iK.prototype,{callbacks:[],collectionsWithInit:{xAxis:[iK.prototype.addAxis,[!0]],yAxis:[iK.prototype.addAxis,[!1]],series:[iK.prototype.addSeries]},collectionsWithUpdate:[\"xAxis\",\"yAxis\",\"series\"],propsRequireDirtyBox:[\"backgroundColor\",\"borderColor\",\"borderWidth\",\"borderRadius\",\"plotBackgroundColor\",\"plotBackgroundImage\",\"plotBorderColor\",\"plotBorderRadius\",\"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{composed:iq}=n;function iJ(){(this.scrollablePixelsX||this.scrollablePixelsY)&&!this.scrollablePlotArea&&(this.scrollablePlotArea=new i0(this)),this.scrollablePlotArea?.applyFixed()}function iQ(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class i0{static compose(t,e,i){_(iq,\"ScrollablePlotArea\")&&(c(t,\"afterInit\",iQ),c(e,\"afterSetChartSize\",t=>this.afterSetSize(t.target,t)),c(e,\"render\",iJ),c(i,\"show\",iQ))}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=F(t.plotBox),h.width=t.plotWidth+=i,n[l?\"height\":\"width\"]+=i,o=!0)):a&&(t.scrollablePixelsY=s=Math.max(0,a-t.chartHeight),v(s)&&(t.scrollablePlotBox=F(t.plotBox),h.height=t.plotHeight+=s,n[l?\"width\":\"height\"]+=s,o=!1)),v(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=i.scrollablePlotArea||{},o=this.moveFixedElements.bind(this),r={WebkitOverflowScrolling:\"touch\",overflowX:\"hidden\",overflowY:\"hidden\"};t.scrollablePixelsX&&(r.overflowX=\"auto\"),t.scrollablePixelsY&&(r.overflowY=\"auto\"),this.chart=t;let a=this.parentDiv=x(\"div\",{className:\"highcharts-scrolling-parent\"},{position:\"relative\"},t.renderTo),n=this.scrollingContainer=x(\"div\",{className:\"highcharts-scrolling\"},r,a),h=this.innerContainer=x(\"div\",{className:\"highcharts-inner-container\"},void 0,n),l=this.fixedDiv=x(\"div\",{className:\"highcharts-fixed\"},{position:\"absolute\",overflow:\"hidden\",pointerEvents:\"none\",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),d=this.fixedRenderer=new eg(l,t.chartWidth,t.chartHeight,i.style);this.mask=d.path().attr({fill:i.backgroundColor||\"#fff\",\"fill-opacity\":s.opacity??.85,zIndex:-1}).addClass(\"highcharts-scrollable-mask\").add(),n.parentNode.insertBefore(l,n),b(t.renderTo,{overflow:\"visible\"}),c(t,\"afterShowResetZoom\",o),c(t,\"afterApplyDrilldown\",o),c(t,\"afterLayOutTitles\",o),c(n,\"scroll\",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),h.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()),tA(t.container),b(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}),b(s,{width:`${r}px`,height:`${a}px`}),v(i)||(s.scrollLeft=p*u,s.scrollTop=g*f);let y=d-o[0]-1,k=l-o[3]-1,w=d+h+o[2]+1,M=l+c+o[1]+1,C=l+c-p,S=d+h-g,T=[[\"M\",0,0]];p?T=[[\"M\",0,y],[\"L\",l-1,y],[\"L\",l-1,w],[\"L\",0,w],[\"Z\"],[\"M\",C,y],[\"L\",r,y],[\"L\",r,w],[\"L\",C,w],[\"Z\"]]:g&&(T=[[\"M\",k,0],[\"L\",k,d-1],[\"L\",M,d-1],[\"L\",M,0],[\"Z\"],[\"M\",k,S],[\"L\",k,a],[\"L\",M,a],[\"L\",M,S],[\"Z\"]]),\"adjustHeight\"!==t.redrawTrigger&&this.mask.attr({d:T})}moveFixedElements(){let t,{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,a=i0.fixedSelectors.slice();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)`])_(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)`])C(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\"})}}i0.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:i1}=tF,{series:i2}=iT,i5=class{constructor(t,e,i,s){this.axis=t,this.negativeValue=e,this.x=i,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=s,this.leftCliff=0,this.rightCliff=0}destroy(){k(this,this.axis)}render(t){let e=this.axis,i=e.chart,s=e.options.stackLabels||{},o=s.format,r=(o?i1(o,this,i):s.formatter?.call(this,this))||\"\",a=this.label?\"animate\":\"attr\";this.label||(this.label=i.renderer.label(r,0,void 0,s.shape,void 0,void 0,s.useHTML,!1,\"stack-labels\"));let n=this.label,h={r:s.borderRadius||0,padding:s.padding??5};i.styledMode||(h.fill=s.backgroundColor,h.stroke=s.borderColor,h[\"stroke-width\"]=s.borderWidth,n.css(s.style||{})),n.attr({text:r,visibility:\"hidden\"})[a](h),n.added||n.add(t),n.labelrank=i.plotSizeY,P(this,\"afterRender\")}setOffset(t,e,i,s,o,r){let{axis:a,label:n}=this,h=a.chart,l=a.options.stackLabels||{},d=h.inverted,c=!!a.reversed!==this.negativeValue,p=this.getStackBox({boxBottom:i,boxTop:s,defaultX:o,isNegative:c,width:e,xAxis:r,xOffset:t}),{align:g=d?c?\"left\":\"right\":\"center\",verticalAlign:u=d?\"middle\":c?\"bottom\":\"top\",textAlign:f=d?!c?\"left\":\"right\":\"center\",x:m=0,y:x=0}=l,y={align:g,verticalAlign:u,x:m,y:x};if(n&&p){let t=n.getBBox(void 0,0),e=n.padding,i=(l.overflow??\"justify\")===\"justify\",s,{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:u,textAlign:f});p.x-=o,p.y-=r,n.align(y,!1,p),(s=h.isInsidePlot(n.alignAttr.x+m+o,n.alignAttr.y+x+r))||(i=!1),i&&i2.prototype.justifyDataLabel.call(a,n,y,n.alignAttr,t,p),n.attr({rotation:l.rotation,rotationOriginX:t.width*A(l.textAlign||\"center\"),rotationOriginY:t.height/2}),((!i&&l.crop)??!0)&&(s=N(n.x)&&N(n.y)&&h.isInsidePlot(n.x-e+(n.width||0),n.y)&&h.isInsidePlot(n.x+e,n.y)),n[s?\"show\":\"hide\"]()}P(this,\"afterSetOffset\",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*A(i)-1),y:t.height/2*2*(1-A(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxBottom:s,boxTop:o,defaultX:r,isNegative:a,width:n,xOffset:h}=t,l=e.stacking.usePercentage?100:o??this.total??0,d=e.toPixels(l),c=t.xAxis||i.xAxis[0],p=(r??c.translate(this.x))+h,g=Math.abs(d-e.toPixels(s||N(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0));return i.inverted?{x:(a?d:d-g)-i.plotLeft,y:c.height-p-n+c.top-i.plotTop,width:g,height:n}:{x:p+c.transB-i.plotLeft,y:(a?d-g:d)-i.plotTop,width:n,height:g}}},{series:{prototype:i3}}=iT;function i9(){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,e.options.stack??\"\",t?i.top:i.left,t?i.height:i.width].join(\",\"))})}function i6(){let t=this.stacking;if(t){let e=t.stacks;j(e,(t,i)=>{k(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function i4(){this.stacking||(this.stacking=new ss(this))}function i8(t,e,i,s){return!v(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 i7(){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 st(t,e,i){let s=e.total?100/e.total:0;t[0]=m(t[0]*s),t[1]=m(t[1]*s),this.stackedYData[i]=t[1]}function se(t){(this.is(\"column\")||this.is(\"columnrange\"))&&(this.options.centerInCategory&&this.chart.series.length>1?i3.setStackedPoints.call(this,t,\"group\"):t.stacking.resetStacks())}function si(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,x=u.startFromThreshold?f:0,y=u.stack,b=e?`${this.type},${l}`:this.stackKey||\"\",k=\"-\"+b,w=this.negStacks,M=t.stacking,C=M.stacks,S=M.oldStacks;for(M.stacksTouched+=1,h=0;h<g;h++){let e=d[h]||0,g=c[h],u=N(g)&&g||0;n=(i=this.getStackIndicator(i,e,this.index)).key||\"\",C[a=(s=w&&u<(x?0:f))?k:b]||(C[a]={}),C[a][e]||(S[a]?.[e]?(C[a][e]=S[a][e],C[a][e].total=null):C[a][e]=new i5(t,!!s,e,y)),o=C[a][e],null!==g?(o.points[n]=o.points[this.index]=[o.cumulative??x],v(o.cumulative)||(o.base=n),o.touched=M.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 T=o.total||0;\"percent\"===l?(r=s?b:k,T=w&&C[r]?.[e]?(r=C[r][e]).total=Math.max(r.total||0,T)+Math.abs(u):m(T+Math.abs(u))):\"group\"===l?N(g)&&T++:T=m(T+u),\"group\"===l?o.cumulative=(T||1)-1:o.cumulative=m((o.cumulative??x)+u),o.total=T,null!==g&&(o.points[n].push(o.cumulative),p[h]=o.cumulative,o.hasValidPoints=!0)}\"percent\"===l&&(M.usePercentage=!0),\"group\"!==l&&(this.stackedYData=p),M.oldStacks={}}class ss{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();P(i,\"afterBuildStacks\")}cleanStacks(){this.oldStacks&&(this.stacks=this.oldStacks,j(this.stacks,t=>{j(t,t=>{t.cumulative=t.total})}))}resetStacks(){j(this.stacks,t=>{j(t,(e,i)=>{N(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,{animation:o,enabled:r}=t.options.stackLabels||{},a=tT(e,o||!1),n=this.stackTotalGroup=this.stackTotalGroup||(r?i.g(\"stack-labels\").attr({zIndex:6,opacity:0}).add():void 0);n&&(n.translate(e.plotLeft,e.plotTop),j(s,t=>{j(t,t=>{r?t.render(n):t.label=t.label?.destroy()})}),n.animate({opacity:1},a))}}(is||(is={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(c(t,\"init\",i4),c(t,\"destroy\",i6),s.getStacks=i9,o.getStackIndicator=i8,o.modifyStacks=i7,o.percentStacker=st,o.setGroupedPoints=se,o.setStackedPoints=si)};let so=is;class sr extends iB{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;if(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||\"var(--highcharts-neutral-color-20)\",\"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),t.shadow)){let e=this.chart.inverted,i={filterUnits:\"userSpaceOnUse\"},s=X(t.shadow)?F(e?{}:i,t.shadow):!!e||i;a.shadow(s)}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&&!v(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}}sr.defaultOptions=F(iB.defaultOptions,{legendSymbol:\"lineMarker\"}),iT.registerSeriesType(\"line\",sr);let{seriesTypes:{line:sa}}=iT;class sn extends sa{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=sa.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=r.connectNulls??\"percent\"===a,f=function(i,s,o){let r=t[i],u=t[s],f=a&&c[r.x].points[d],m=r[o+\"Null\"]||0,x=r[o+\"Cliff\"]||0,y,b,k=!0;f&&(x||m)?(y=(m?f[0]:f[1])+x,b=f[0]+x,k=!!m):!a&&u&&(u.isNull||!v(u.plotY))&&(y=b=p),void 0!==y&&(l.push({plotX:e,plotY:null===y?g:n.getThreshold(y),isNull:k,isCliff:!0}),h.push({plotX:e,plotY:null===b?g:n.getThreshold(b),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||!v(t[o].plotY),e=t[o].rectPlotX??t[o].plotX,s=a?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 k=o.call(this,l,!1,u);return this.chart.series.length>1&&a&&l.some(t=>t.isCliff)&&(b.hasStackedCliffs=k.hasStackedCliffs=!0),b.xMap=m.xMap,this.areaPath=b,k}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),p=r.getThreshold(e.options.threshold||0);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];j(a,function(t,e){null!==t.total&&s.push(e)}),s.sort(function(t,e){return t-e});let g=h.map(t=>t.visible);s.forEach(function(t,u){let f=0,m,x;if(n[t]&&!n[t].isNull)i.push(n[t]),[-1,1].forEach(function(i){let o=1===i?\"rightNull\":\"leftNull\",r=a[s[u+i]],p=0;if(r){let i=c;for(;i>=0&&i<l;){let s=h[i].index;!(m=r.points[s])&&(s===e.index?n[t][o]=!0:g[i]&&(x=a[t].points[s])&&(p-=x[1]-x[0])),i+=d}}n[t][1===i?\"rightCliff\":\"leftCliff\"]=p});else{let e=c;for(;e>=0&&e<l;){let i=h[e].index;if(m=a[t].points[i]){f=m[1];break}e+=d}f||(f=0);let s=r.positiveValuesOnly&&f<=0?p:r.translate(f,!1,!0,!1,!0);i.push({isNull:!0,plotX:o.translate(t,!1,!1,!1,!0),x:t,plotY:s,yBottom:s})}})}return i}}sn.defaultOptions=F(sa.defaultOptions,{threshold:0,legendSymbol:\"areaMarker\"}),S(sn.prototype,{singleStacks:!1}),iT.registerSeriesType(\"area\",sn);let{line:sh}=iT.seriesTypes;class sl extends sh{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\",l.rightContX??l.plotX??0,l.rightContY??l.plotY??0,s??n??0,o??h??0,n,h];return l.rightContX=l.rightContY=void 0,p}}sl.defaultOptions=F(sh.defaultOptions),iT.registerSeriesType(\"spline\",sl);let sd=sl,{area:sc,area:{prototype:sp}}=iT.seriesTypes;class sg extends sd{}sg.defaultOptions=F(sd.defaultOptions,sc.defaultOptions),S(sg.prototype,{getGraphPath:sp.getGraphPath,getStackPoints:sp.getStackPoints,drawGraph:sp.drawGraph}),iT.registerSeriesType(\"areaspline\",sg);let{parse:su}=tv,{noop:sf}=n;class sm extends iB{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=f(o.toPixels(n.threshold||0),r,r+o.len),l?d.translateX=(i+=a?-Math.floor(h[+!!l]):Math.ceil(h[l?3:2]))-o.len:d.translateY=i+=a?Math.ceil(h[+!!l]):-Math.floor(h[l?3:2]),s.clipBox&&s.setClip(),s.group.attr(d)):(e=Number(s.group.attr(c)),s.group.animate({scaleY:1},S(tS(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,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=y(e+s,o,r)-(e=y(e,o,r)),this.options.crisp&&(i=y(t+i,o)-(t=y(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;j(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&&H(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(v(s)){if(N(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=i.borderWidth??+!s,r=t.xAxis,a=t.yAxis,n=i.threshold,h=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),m=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(m=Math.ceil(m)),iB.prototype.translate.apply(t),t.points.concat(t.condemnedPoints).forEach(function(s){let o=s.yBottom??u,x=999+Math.abs(o),y=s.plotX||0,b=f(s.plotY,-x,a.len+x),k,w=Math.min(b,o),M=Math.max(b,o)-w,C=d,S=y+c,T=m;h&&Math.abs(M)<h&&(M=h,k=!a.reversed&&!s.negative||a.reversed&&s.negative,N(n)&&N(g)&&s.y===n&&g<=n&&(a.min||0)<n&&(p!==g||(a.max||0)<=n)&&(k=!k,s.negative=!s.negative),w=Math.abs(w-u)>h?o-(k?h:0):u-(k?h:0)),v(s.options.pointWidth)&&(S-=Math.round(((C=T=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(S=t.adjustForMissingColumns(S,C,s,l)),s.barX=S,s.pointWidth=C,s.tooltipPos=e.inverted?[f(a.len+a.pos-e.plotLeft-b,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-S-T/2,M]:[r.left-e.plotLeft+S+T/2,f(b+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),M],s.shapeType=t.pointClass.prototype.shapeType||\"roundedRect\",s.shapeArgs=t.crispCol(S,w,T,s.isNull?0:M)}),P(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?.color||this.color,d=t?.[o]||i[o]||l,c=t?.options.dashStyle||i.dashStyle,p=t?.[r]??i[r]??this[r]??1,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=F(i.states?.[e],t.options.states?.[e]||{})).brightness,l=a.color||void 0!==h&&su(l).brighten(a.brightness).get()||l,d=a[o]||d,p=a[r]||p,c=a.dashStyle||c,g=a.opacity??g);let u={fill:l,stroke:d,\"stroke-width\":p,opacity:t?.condemned?0:g};return c&&(u.dashstyle=c),u}drawPoints(t){let e;t||(t=this.points.concat(this.condemnedPoints));let i=this,s=this.chart,o=i.options,r=o.nullInteraction,{styledMode:a,renderer:n}=s,h=o.animationLimit||250;t.forEach(function(t){let l=t.plotY,d=t.graphic,c=!!d,p=d&&s.pointCount<h?\"animate\":\"attr\";if(N(l)&&(null!==t.y||r)){if(e=t.shapeArgs,d&&t.hasNewShapeType()&&(d=d.destroy()),!d){let o=e;t.origin&&s.pointCount<h&&(o=F(e,t.getOrigin(t.origin,e)),a||(o.opacity=0,o[\"stroke-width\"]=0),c=!0,p=\"animate\"),t.graphic=d=n[t.shapeType](o).add(t.group||i.group)}c&&d[p](F(e)),a||d[p](i.pointAttribs(t,t.selected?\"select\":\"\")).shadow(!1!==t.allowShadow&&o.shadow),d.addClass(t.getClassName(),!0).attr({visibility:t.visible?\"inherit\":\"hidden\"})}else d&&(t.graphic=d.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})||i.allowOutsidePlotInteraction&&o?.inClass(t.target,\"highcharts-point\")||o?.inClass(t.target,\"highcharts-data-label\"))&&(o.isDirectTouch=!0,e.onMouseOver(t))};t.forEach(function(t){e=H(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?.reduce((t,e)=>(\"dataLabelsGroup\"===e?t.push(...i.dataLabelsGroups||[]):t.push(i[e]),t),[]).forEach(t=>{t&&(t.addClass(\"highcharts-tracker\").on(\"mouseover\",r).on(\"mouseout\",function(t){o?.onTrackerMouseOut(t)}).on(\"touchstart\",r),!s.styledMode&&i.options.cursor&&t.css({cursor:i.options.cursor}))}),i._hasTracking=!0),P(this,\"afterDrawTracker\")}remove(){let t=this,e=t.chart;e.hasRendered&&e.series.forEach(function(e){e.type===t.type&&(e.isDirty=!0)}),iB.prototype.remove.apply(t,arguments)}}sm.defaultOptions=F(iB.defaultOptions,{borderRadius:3,centerInCategory:!1,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.2},select:{color:\"var(--highcharts-neutral-color-20)\",borderColor:\"var(--highcharts-neutral-color-100)\"}},dataLabels:{align:void 0,verticalAlign:void 0,y:void 0},startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:\"var(--highcharts-background-color)\"}),S(sm.prototype,{directTouch:!0,getSymbol:sf,negStacks:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"]}),iT.registerSeriesType(\"column\",sm);let sx=sm,{format:sy}=tF;!function(t){function e(){return h(this).some(t=>t?.enabled)}function i(t,e,i,s,o){let{chart:r}=this,a=this.isCartesian&&r.inverted,{condemned:n,origin:h,plotX:l,plotY:d}=t,{crop:c=!0,distance:p,overflow:g=\"justify\",rotation:u=0}=i,f=A(i.align),m=A(i.verticalAlign),x=t.pos(),y=v(l)&&v(d)&&r.isInsidePlot(l,Math.round(d),{inverted:a,paneCoordinates:!0,series:this}),b=this.visible&&t.visible&&v(l)&&(this.forceDL||n||y||(i.inside??!!this.options.stacking)&&s&&r.isInsidePlot(l,a?s.x+1:s.y+s.height-1,{inverted:a,paneCoordinates:!0,series:this}));if(x){let l=e.getBBox(),d=e.getBBox(void 0,0);s=S({x:x[0],y:Math.round(x[1]),width:0,height:0},s||{}),\"plotEdges\"===i.alignTo&&this.isCartesian&&(s[a?\"x\":\"y\"]=0,s[a?\"width\":\"height\"]=this.yAxis?.len||0),S(i,{width:l.width,height:l.height});let y=0,v=0;N(p)&&!i.inside&&(y=p*(1-2*f),v=p*(1-2*m)),e.align(F(i,{x:(i.x||0)+y,y:(i.y||0)+v,width:d.width,height:d.height}),!1,s,!1),e.distX=y,e.distY=v,e.alignAttr.x+=f*(d.width-l.width),e.alignAttr.y+=m*(d.height-l.height);let k=e.alignAttr.x+(l.width-d.width)/2,w=e.alignAttr.y+(l.height-d.height)/2;if(h){let i=t.pos(!1,h.x,h.y);if(i){let s=[i[0]-x[0],i[1]-x[1]];(this.is(\"column\")||t.plotHigh)&&(s[+!a]=0),e.attr({x:k+s[0],y:w+s[1],opacity:.01}),e.placed=!0,o=!1}}let M={\"text-align\":e.alignAttr[\"text-align\"]||\"center\",x:k,y:w,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2};if((n||!b)&&(M.opacity=0),e[e.placed?\"animate\":\"attr\"](M),0===u&&!n&&\"justify\"===g&&b&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,l,s,o);else if(c&&!n){let{x:t,y:i}=e.alignAttr;b=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+l.width-1,i+l.height-1,{paneCoordinates:!0,series:this})}i.shape&&!u&&e[o?\"attr\":\"animate\"]({anchorX:x[0],anchorY:x[1]})}e[o?\"attr\":\"animate\"]({visibility:b?\"inherit\":\"hidden\"}),e.placed=b}function s(t,e){P(this,\"initDataLabelsGroup\",{index:t,zIndex:e?.zIndex}),this.dataLabelsGroup=this.dataLabelsGroups?.[t];let i=this.plotGroup(\"dataLabelsGroup\",\"data-labels\",this.hasRendered?\"inherit\":\"hidden\",e?.zIndex??6,this.dataLabelsParentGroups?.[t]);return this.dataLabelsGroups||(this.dataLabelsGroups=[]),this.dataLabelsGroups[t]=i,this.dataLabelsGroup=this.dataLabelsGroups[0],i}function o(t,e,i){let s=!!this.hasRendered,o=this.initDataLabelsGroup(t,i).attr({opacity:+s});return!s&&o&&(this.visible&&o.show(),this.options.animation?o.animate({opacity:1},e):o.attr({opacity:1})),o}function r(t){t=t||this.points;let e=this,i=e.chart,s=e.options,o=i.renderer,{backgroundColor:r,plotBackgroundColor:a}=i.options.chart,l=o.getContrast(W(a)&&a||W(r)&&r||\"var(--highcharts-background-color)\"),d=[],c=h(e),{animation:p,defer:g}=c[0],u=g?tT(i,p,e):{defer:0,duration:0};P(this,\"drawDataLabels\"),e.hasDataLabels?.()&&t.concat(e.condemnedPoints).forEach(t=>{let r=t.dataLabels||[],a=t.color||e.color;J(n(c,t.dlOptions||t.options?.dataLabels)).forEach((n,h)=>{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:f,style:m={}}=n,x=J(n.padding||0),y,b,k,w={},M=r[h],C=!M,S;if(c&&(b=v(y=n[t.formatPrefix+\"Format\"]??n.format)?sy(y,t,i):(n[t.formatPrefix+\"Formatter\"]||n.formatter).call(t,n,t),k=n.rotation,!i.styledMode&&(m.color=(W(n.color)?n.color:void 0)??m.color??(W(e.color)?e.color:void 0)??\"var(--highcharts-neutral-color-100)\",\"contrast\"===m.color?(\"none\"!==p&&(S=p),t.contrastColor=o.getContrast(\"auto\"!==S&&\"contrast\"!==S&&W(S)&&S||(W(a)?a:\"\")),m.color=S&&\"contrast\"!==S||n.inside||0>U(f||0)||s.stacking?t.contrastColor:l):delete t.contrastColor,s.cursor&&(m.cursor=s.cursor)),w={r:n.borderRadius??3,rotation:k,padding:x[0],paddingLeft:x[3%x.length],paddingRight:x[1%x.length],zIndex:1},i.styledMode||(w.fill=\"auto\"===p?t.color:p,w.stroke=\"auto\"===g?t.color:g,w[\"stroke-width\"]=n.borderWidth),j(w,(t,e)=>{void 0===t&&delete w[e]})),!M||c&&v(b)&&!!(M.div||M.text?.foreignObject)==!!n.useHTML&&(M.rotation&&n.rotation||M.rotation===n.rotation)||(M=void 0,C=!0),c&&v(b)&&\"\"!==b&&(M?w.text=b:(M=o.label(b,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\":\"\")),M)){M.options=n,M.attr(w),i.styledMode?m.width&&M.css({width:m.width,textOverflow:m.textOverflow,whiteSpace:m.whiteSpace}):M.css(m).shadow(n.shadow),P(M,\"beforeAddingDataLabel\",{labelOptions:n,point:t});let s=d[h]=d[h]||this.initDataLabels(h,u,n);M.added||M.add(s),e.alignDataLabel(t,M,n,void 0,C),M.isActive=!0,r[h]&&r[h]!==M&&r[h].destroy(),r[h]=M}});let h=r.length;for(;h--;)r[h]?.isActive?r[h].isActive=!1:(r[h]?.destroy(),r.splice(h,1));t.dataLabel=r[0],t.dataLabels=r}),P(this,\"afterDrawDataLabels\")}function a(t,e,i,s,o,r){let a=this.chart,{align:n,verticalAlign:h}=e,{distX:l=0,distY:d=0}=t,c=t.box?0:t.padding||0,p=a.inverted?this.yAxis:this.xAxis,g=p?p.left-a.plotLeft:0,u=a.inverted?this.xAxis:this.yAxis,f=u?u.top-a.plotTop:0,{x:m=0,y:x=0}=e,y,b,v;return(y=(i.x||0)-l+c+g)<0&&(\"right\"===n&&m>=0?(e.align=\"left\",e.inside=!0,m-=l):m-=y,b=!0),(y=(i.x||0)+s.width-l-c+g)>a.plotWidth&&(\"left\"===n&&m<=0?(e.align=\"right\",e.inside=!0,m-=l):m+=a.plotWidth-y,b=!0),(y=(i.y||0)-d+c+f)<0&&(\"bottom\"===h&&x>=0?(e.verticalAlign=\"top\",e.inside=!0,x-=d):x-=y,v=!0),(y=(i.y||0)+s.height-d-c+f)>a.plotHeight&&(\"top\"===h&&x<=0?(e.verticalAlign=\"bottom\",e.inside=!0,x-=d):x+=a.plotHeight-y,v=!0),(b||v)&&(e.x=b?m:m+l,e.y=v?x:x+d,t.placed=!r,t.align(e,void 0,o)),b||v}function n(t,e){let i=[],s;if(H(t)&&!H(e))i=t.map(function(t){return F(t,e)});else if(H(e)&&!H(t))i=e.map(function(e){return F(t,e)});else if(H(t)||H(e)){if(H(t)&&H(e))for(s=Math.max(t.length,e.length);s--;)i[s]=F(t[s],e[s])}else i=F(t,e);return i}function h(t){let e=t.chart.options.plotOptions;return J(n(n(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}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.hasDataLabels=e)}}(io||(io={}));let sb=io,{composed:sv}=n,{series:sk}=iT;function sw(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=F(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\"),sk.prototype.alignDataLabel.call(this,t,e,i,s,o),i.inside&&t.contrastColor&&e.css({color:t.contrastColor})}(ir||(ir={})).compose=function(t){sb.compose(sk),_(sv,\"ColumnDataLabel\")&&(t.prototype.alignDataLabel=sw)};let sM=ir;class sC extends sx{}sC.defaultOptions=F(sx.defaultOptions,{}),S(sC.prototype,{inverted:!0}),iT.registerSeriesType(\"bar\",sC);let{column:sS,line:sT}=iT.seriesTypes;class sP extends sT{applyJitter(){let t=this,e=this.options.jitter,i=this.points.length;e&&this.points.forEach((s,o)=>{[\"x\",\"y\"].forEach((r,a)=>{if(e[r]&&!s.isNull){let n=`plot${r.toUpperCase()}`,h=t[`${r}Axis`];if(h&&!h.logarithmic){let t,l=e[r]*h.transA*(h.reversed?-1:1),d=(s[n]||0)-l,c=(s[n]||0)+l;s[n]=d+(c-d)*((t=1e4*Math.sin(o+a*i))-Math.floor(t)),\"x\"===r&&(s.clientX=s.plotX)}}})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}sP.defaultOptions=F(sT.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/>\"}}),S(sP.prototype,{allowOutsidePlotInteraction:!0,drawTracker:sS.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:[\"group\",\"markerGroup\",\"dataLabelsGroup\"]}),c(sP,\"afterTranslate\",function(){this.applyJitter()}),iT.registerSeriesType(\"scatter\",sP);let{deg2rad:sA}=n;(ix=ia||(ia={})).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=[r?.[0]??\"50%\",r?.[1]??\"50%\",(l&&l<0?void 0:t.size)??\"100%\",(d&&d<0?void 0:t.innerSize||0)??\"0%\"];for(c=0;c<4;++c)p=g[c],h=c<2||2===c&&/%$/.test(p),g[c]=Z(p,[s,o,a,g[2]][c])+(h?i:0);return g[3]>g[2]&&(g[3]=g[2]),N(n)&&2*n<g[2]&&n>0&&(g[3]=g[2]-2*n),P(this,\"afterGetCenter\",{positions:g}),g},ix.getStartAndEndRadians=function(t,e){let i=N(t)?t:0,s=N(e)&&e>i&&e-i<360?e:i+360;return{start:sA*(i+-90),end:sA*(s+-90)}};let sL=ia;class sO extends e_{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)};c(this,\"select\",s),c(this,\"unselect\",s)}isValid(){return N(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;tC(i,s.chart),e=e??!0,this.sliced=this.options.sliced=t??!this.sliced,s.options.data&&(s.options.data[s.data.indexOf(this)]=this.options),this.graphic?.animate(this.getTranslate())}}S(sO.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=Z(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:sE}=sL,{noop:sI}=n;class sD extends iB{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: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:t6.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||\"var(--highcharts-neutral-color-20)\"})):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()}getXPos(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(f((t-o[1])/(r+n),-1,1));return o[0]+Math.cos(h)*(r+n)*(e?-1:1)+(n>0?e?-5:5: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||F(!0,n,i),F(!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){P(this,\"translate\"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=sE(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:l,end:d};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}P(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(this.total=r,s=0;s<e;s++)(o=t[s]).percentage=r>0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}sD.defaultOptions=F(iB.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:\"var(--highcharts-background-color)\",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),S(sD.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:sx.prototype.drawTracker,getCenter:sL.getCenter,getSymbol:sI,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:sx.prototype.pointAttribs,pointClass:sO,requireSorting:!1,searchPoint:sI,trackerGroups:[\"group\",\"dataLabelsGroup\"]}),iT.registerSeriesType(\"pie\",sD);let{composed:sB,noop:sz}=n,{distribute:sR}=tY,{series:sN}=iT;!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.getXPos(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,u,f,m,x=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)})}),sN.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=n[2]/2,o=e.options,r=Z(o?.distance||0,s);0===i&&d[t.half].push(t),!v(o?.style?.width)&&e.getBBox().width>a&&(e.css({width:Math.round(.7*a)+\"px\"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),x=Math.max(x,r)})}),d.forEach((e,a)=>{let d=e.length,g=[],u,y,b=0,k;d&&(t.sortByAngle(e,a-.5),x>0&&(u=Math.max(0,l-h-x),y=Math.min(l+h+x,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))})}),sR(g,k=y+b-u,k/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(l=>{let d=l.options||{},u=i.distributeBox,x=l.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,k=l.lineHeight||21,w=(k-l.getBBox().height)/2,M=0,C=y,S=\"inherit\";if(x){if(g&&v(u)&&x.distance>0&&(void 0===u.pos?S=\"hidden\":(m=u.size,C=p.radialDistributionY(i,l))),d.justify)M=p.justify(i,l,h,n);else switch(d.alignTo){case\"connectors\":M=p.alignToConnectors(e,a,s,r);break;case\"plotEdges\":M=p.alignToPlotEdges(l,a,s,r);break;default:M=p.radialDistributionX(t,i,C-w,y,l)}if(x.attribs={visibility:S,align:x.alignment},x.posAttribs={x:M+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:C+(d.y||0)-k/2},x.computed.x=M,x.computed.y=C-w,d.crop??!0){let t;M-(f=l.getBBox().width)<b&&1===a?(t=Math.round(f-M+b),c[3]=Math.max(t,c[3])):M+f>s-b&&0===a&&(t=Math.round(M+f-s+b),c[1]=Math.max(t,c[1])),C-m/2<0?c[0]=Math.max(Math.round(-C+m/2),c[0]):C+m/2>o&&(c[2]=Math.max(Math.round(C+m/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===g(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{e.dataLabels?.forEach((s,o)=>{let{connectorColor:r,connectorWidth:a=1}=s.options||{},n=s.dataLabelPosition;if(N(a)){let h;u=s.connector,n&&n.distance>0?(h=!u,u||(s.connector=u=i.renderer.path().addClass(\"highcharts-data-label-connector  highcharts-color-\"+e.colorIndex+(e.className?\" \"+e.className:\"\")).add(t.dataLabelsGroups?.[o])),i.styledMode||u.attr({\"stroke-width\":a,stroke:r||e.color||\"var(--highcharts-neutral-color-60)\"}),u[h?\"attr\":\"animate\"]({d:e.getConnectorPath(s)}),u.attr({visibility:n.attribs?.visibility})):u&&(s.connector=u.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=f(r,o,e[2]-Math.max(t[0],t[2])):(r=f(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,Z(i.innerSize||0,r)),r),this.translate(e),this.drawDataLabels&&this.drawDataLabels()):a=!0),a}t.compose=function(t){if(sb.compose(sN),_(sB,\"PieDataLabel\")){let a=t.prototype;a.dataLabelPositioners=e,a.alignDataLabel=sz,a.drawDataLabels=s,a.getDataLabelPosition=i,a.placeDataLabels=o,a.verifyDataLabelOverflow=r}}}(ih||(ih={}));let sW=ih;(iy=il||(il={})).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}},iy.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},iy.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},iy.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};let{pointInPolygon:sH}=il;function sG(t,e){let i=!1;if(t){let s=t.newOpacity,o=t.hasClass(\"highcharts-data-label\");o||tA(t,\"opacity\"),t.oldOpacity!==s&&(o?(t[s?\"removeClass\":\"addClass\"](\"highcharts-data-label-hidden\"),i=!0,t[t.isOld||t.placed?\"animate\":\"attr\"]({opacity:s},void 0,()=>{e.styledMode||t.css({pointerEvents:s?\"auto\":\"none\"})}),P(e,\"afterHideOverlappingLabel\")):t[t.placed?\"animate\":\"attr\"]({opacity:s})),t.isOld=!0}return i}let{defaultOptions:sX}=tm,{noop:sF}=n,sY={radius:0,scope:\"stack\",where:void 0},sj=sF,s$=sF;function sV(t,e,i,s,o={}){let r=sj(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(Z(s_(o.borderRadius).radius,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 sU(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i=\"percent\"===t.stacking,s=sX.plotOptions?.[this.type]?.borderRadius,o=s_(t.borderRadius,X(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(Z(o.radius,n),n/2,\"all\"===g?c/2:1/0)||0;\"end\"===g&&(p&&(d-=u),c+=u),S(a,{brBoxHeight:c,brBoxY:d,r:u})}}}}function s_(t,e){return X(t)||(t={radius:t||0}),F(sY,e,t)}function sZ(){let t=s_(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=Z(t.radius,(i.r||0)-(i.innerR||0)))}}function sK(t,e,i,s,o={}){let r=s$(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}function sq(t,e){let i=t.condition;(i.callback||function(){return this.chartWidth<=(i.maxWidth??Number.MAX_VALUE)&&this.chartHeight<=(i.maxHeight??Number.MAX_VALUE)&&this.chartWidth>=(i.minWidth??0)&&this.chartHeight>=(i.minHeight??0)}).call(this,this)&&e.push(t._id)}function sJ(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=tn()),this.matchResponsiveRule(t,o)},this);let a=F(...o.map(t=>D(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=M(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)}(id||(id={})).compose=function(t){let e=t.prototype;return e.matchResponsiveRule||S(e,{matchResponsiveRule:sq,setResponsive:sJ}),t};let sQ=id;n.AST=tB,n.Axis=eL,n.Chart=iK,n.Color=tv,n.DataLabel=sb,n.DataTable=e5,n.DataTableCore=e5,n.Fx=tM,n.HTMLElement=em,n.Legend=iX,n.LegendSymbol=iw,n.PlotLineOrBand=ez,n.Point=e_,n.Pointer=e0,n.Series=iB,n.SeriesRegistry=iT,n.StackItem=i5,n.SVGElement=tq,n.SVGRenderer=eg,n.Templating=tF,n.Tick=ek,n.Time=class extends tp{constructor(t,e){let i=tm.getOptions();super(t??i.time,e??i.lang)}},n.Tooltip=ej,n.addEvent=c,n.animObject=tS,n.animate=tP,n.arrayMax=g,n.arrayMin=p,n.attr=u,n.chart=iK.chart,n.clamp=f,n.color=tv.parse,n.correctFloat=m,n.createElement=x,n.css=b,n.crisp=y,n.dateFormat=tF.dateFormat,n.defaultOptions=tm.defaultOptions,n.defined=v,n.destroyObjectProperties=k,n.diffObjects=M,n.discardElement=w,n.distribute=tY.distribute,n.erase=C,n.error=to,n.extend=S,n.extendClass=T,n.find=D,n.fireEvent=P,n.format=tF.format,n.getAlignFactor=A,n.getClosestDistance=L,n.getDeferredAnimation=tT,n.getMagnitude=O,n.getNestedProperty=E,n.getOptions=tm.getOptions,n.getStyle=I,n.insertItem=tr,n.isArray=H,n.isClass=R,n.isDOMElement=z,n.isFunction=G,n.isNumber=N,n.isObject=X,n.isString=W,n.internalClearTimeout=B,n.merge=F,n.normalizeTickInterval=Y,n.numberFormat=tF.numberFormat,n.objectEach=j,n.offset=$,n.pad=V,n.pick=function(...t){let e=t.length;for(let i=0;i<e;i++){let e=t[i];if(null!=e)return e}},n.pushUnique=_,n.pInt=U,n.relativeLength=Z,n.removeEvent=q,n.replaceNested=K,n.seriesType=iT.seriesType,n.setAnimation=tC,n.setOptions=tm.setOptions,n.splat=J,n.stableSort=Q,n.stop=tA,n.syncTimeout=tt,n.time=tm.defaultTime,n.ucfirst=te,n.timers=tM.timers,n.timeUnits=ta,n.uniqueKey=tn,n.useSerialIds=function(e){return t=e??t},n.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)))}},function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes(\"borderRadius\")){let o=i.prototype.symbols;c(t,\"afterColumnTranslate\",sU,{order:9}),c(s,\"afterTranslate\",sZ),e.symbolCustomAttribs.push(\"borderRadius\",\"brBoxHeight\",\"brBoxY\",\"brEnd\",\"brStart\"),sj=o.arc,s$=o.roundedRect,o.arc=sV,o.roundedRect=sK}}(n.Series,n.SVGElement,n.SVGRenderer),sM.compose(n.Series.types.column),sb.compose(n.Series),eE.compose(n.Axis),em.compose(n.SVGRenderer),iX.compose(n.Chart),eD.compose(n.Axis),(o=(ib=n.Chart).prototype).hideOverlappingLabels||(o.hideOverlappingLabels=function(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(sH({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.dataLabelPosition?.posAttribs||t.alignAttr||{x:t.attr(\"x\"),y:t.attr(\"y\")},{height:s,polygon:o,width:r}=t.getBBox(),a=A(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&&r?.newOpacity!==0&&a?.newOpacity!==0&&r?.visibility!==\"hidden\"&&a?.visibility!==\"hidden\"){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&&(t.newOpacity=0),e?.element.querySelector(\"textPath\")&&e.hide()}}}}for(let e of t)e&&sG(e,this)&&(l=!0);l&&P(this,\"afterHideAllOverlappingLabels\")},c(ib,\"render\",function(){let t=this,e=(e,s)=>{s?(e.oldOpacity=e.opacity,e.newOpacity=1,sG(e,t)):i.push(e)},i=[];for(let e of t.labelCollectors||[])i=i.concat(e());for(let{options:i,stacking:s}of t.yAxis||[])j(s?.stacks,t=>{j(t,({label:t})=>{t&&e(t,i.stackLabels?.allowOverlap)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let t=t=>{for(let s of t)s.visible&&(s.dataLabels||[]).forEach(t=>{let o=t.options||{};t.labelrank=o.labelrank??s.labelrank??s.shapeArgs?.height,e(t,o.allowOverlap??(i.is(\"pie\")&&Number(o.distance)>0))})};t(i.nodes||[]),t(i.points)}this.hideOverlappingLabels(i)})),sW.compose(n.Series.types.pie),ez.compose(n.Chart,n.Axis),e0.compose(n.Chart),sQ.compose(n.Chart),i0.compose(n.Axis,n.Chart,n.Series),so.compose(n.Axis,n.Chart,n.Series),ej.compose(n.Pointer);let s0=n;return a.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.23\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);\n\n// Rename `navigator` to avoid shadowing `window.navigator`\nconst { cache, navigator: sessionNavigator } = 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  PageRenderer: PageRenderer,\n  PageSnapshot: PageSnapshot,\n  FrameRenderer: FrameRenderer,\n  fetch: fetchWithTurboHeaders,\n  config: config,\n  session: session,\n  cache: cache,\n  navigator: sessionNavigator,\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, sessionNavigator as 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 w(t){t._stimulus_transition&&t._stimulus_transition.interrupt&&t._stimulus_transition.interrupt()}function v(t,s){t._stimulus_transition&&w(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()},I(t))))}))})})}function I(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 p=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(p,\"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.hasMenuTarget&&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 S}from\"@hotwired/stimulus\";var d=class extends S{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\"&&(window.getSelection().toString().length>0||this.close())}show(){this.dialogTarget.show()}hide(){this.close()}beforeCache(){this.hasDialogTarget&&this.close()}};i(d,\"targets\",[\"dialog\"]),i(d,\"values\",{open:Boolean});import{Controller as F}from\"@hotwired/stimulus\";var f=class extends F{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 B}from\"@hotwired/stimulus\";var m=class extends B{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\"&&(window.getSelection().toString().length>0||this.close())}show(){this.open()}hide(){this.close()}beforeCache(){this.hasDialogTarget&&this.close()}};i(m,\"targets\",[\"dialog\"]),i(m,\"values\",{open:Boolean});import{Controller as E}from\"@hotwired/stimulus\";var u=class extends E{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 g=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(g,\"targets\",[\"toggleable\"]),i(g,\"values\",{open:{type:Boolean,default:!1}});export{p as Alert,h as Autosave,c as ColorPreview,l as Dropdown,d as Modal,f as Popover,m as Slideover,u as Tabs,g 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// Connects to data-controller=\"admin--carousel\"\n// Shows one slide at a time, switched by clicking the dot indicators underneath.\nexport default class extends Controller {\n  static targets = ['slide', 'dot'];\n\n  show (evt) {\n    const index = this.dotTargets.indexOf(evt.currentTarget);\n    if (index === -1) return;\n\n    this.slideTargets.forEach((slide, i) => slide.classList.toggle('hidden', i !== index));\n    this.dotTargets.forEach((dot, i) => {\n      dot.classList.toggle('bg-brand-purple', i === index);\n      dot.classList.toggle('bg-gray-300', i !== index);\n      dot.setAttribute('aria-current', i === index);\n    });\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\n// Connects to data-controller=\"admin--nested-fields\"\n// Adds and removes rows of nested form fields. New rows are cloned from a <template> whose\n// field names carry a NEW_RECORD placeholder, replaced here with a unique index so Rails\n// parses each row as its own record.\nexport default class extends Controller {\n  static targets = ['container', 'template', 'addButton', 'row'];\n  static values = { max: Number };\n\n  initialize () {\n    // Server-rendered rows are indexed from 0, so start well clear of them\n    this.index = Date.now();\n  }\n\n  connect () {\n    this.toggleAddButton();\n  }\n\n  add () {\n    if (this.visibleRowCount >= this.maxValue) return;\n\n    this.index += 1;\n    this.containerTarget.insertAdjacentHTML(\n      'beforeend',\n      this.templateTarget.innerHTML.replace(/NEW_RECORD/g, this.index)\n    );\n    this.toggleAddButton();\n  }\n\n  remove (evt) {\n    const row = evt.target.closest('[data-admin--nested-fields-target=\"row\"]');\n    if (!row) return;\n\n    // A saved row has to be submitted with _destroy so the record is deleted; an unsaved one\n    // can just go away.\n    const destroyField = row.querySelector('input[name*=\"[_destroy]\"]');\n    if (destroyField) {\n      destroyField.value = '1';\n      row.hidden = true;\n    } else {\n      row.remove();\n    }\n\n    this.toggleAddButton();\n  }\n\n  toggleAddButton () {\n    if (!this.hasAddButtonTarget) return;\n\n    this.addButtonTarget.hidden = this.visibleRowCount >= this.maxValue;\n  }\n\n  get visibleRowCount () {\n    return this.rowTargets.filter((row) => !row.hidden).length;\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 Admin__CarouselController from './controllers/admin/carousel_controller.js';\napplication.register('admin--carousel', Admin__CarouselController);\n\nimport Admin__NestedFieldsController from './controllers/admin/nested_fields_controller.js';\napplication.register('admin--nested-fields', Admin__NestedFieldsController);\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", "_b", "i", "t", "e", "n", "h", "l", "d", "c", "s", "o", "r", "a", "p", "g", "u", "v", "f", "m", "x", "b", "w", "C", "T", "L", "I", "$", "V", "y", "_c", "_d", "_e", "k", "M", "S", "P", "O", "E", "D", "B", "z", "R", "_f", "_g", "_i", "A", "N", "id", "W", "H", "G", "X", "F", "Y", "j", "U", "_", "i2", "error", "CustomEvent", "confirm", "href", "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", "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", "i", "x", "start", "m"]
}
