{
  "version": 3,
  "sources": ["../../../node_modules/@rails/actioncable/src/adapters.js", "../../../node_modules/@rails/actioncable/src/logger.js", "../../../node_modules/@rails/actioncable/src/connection_monitor.js", "../../../node_modules/@rails/actioncable/src/internal.js", "../../../node_modules/@rails/actioncable/src/connection.js", "../../../node_modules/@rails/actioncable/src/subscription.js", "../../../node_modules/@rails/actioncable/src/subscription_guarantor.js", "../../../node_modules/@rails/actioncable/src/subscriptions.js", "../../../node_modules/@rails/actioncable/src/consumer.js", "../../../node_modules/@rails/actioncable/src/index.js", "../../../node_modules/highcharts/highcharts.js", "../../../node_modules/@rails/ujs/app/assets/javascripts/rails-ujs.esm.js", "../../../node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/snakeize.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/fetch_requests.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/index.js", "../../../node_modules/@hotwired/stimulus/dist/stimulus.js", "../../../node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js", "../../../node_modules/tslib/tslib.es6.js", "../../../node_modules/@appsignal/javascript/src/error.ts", "../../../node_modules/@appsignal/javascript/src/hashmap.ts", "../../../node_modules/@appsignal/javascript/src/version.ts", "../../../node_modules/@appsignal/javascript/src/environment.ts", "../../../node_modules/@appsignal/javascript/src/transports/xdomain.ts", "../../../node_modules/@appsignal/javascript/src/transports/xhr.ts", "../../../node_modules/@appsignal/javascript/src/transports/fetch.ts", "../../../node_modules/@appsignal/javascript/src/transports/node.ts", "../../../node_modules/@appsignal/javascript/src/api.ts", "../../../node_modules/@appsignal/javascript/src/serializable.ts", "../../../node_modules/@appsignal/javascript/src/span.ts", "../../../node_modules/@appsignal/javascript/src/queue.ts", "../../../node_modules/@appsignal/javascript/src/dispatcher.ts", "../../../node_modules/@appsignal/javascript/src/index.ts", "../../../node_modules/@appsignal/stimulus/src/index.ts", "../../javascript/controllers/application.js", "../../../node_modules/tailwindcss-stimulus-components/dist/tailwindcss-stimulus-components.module.js", "../../../node_modules/@rails/activestorage/app/assets/javascripts/activestorage.esm.js", "../../javascript/direct_uploads.js", "../../javascript/controllers/admin/payment_searches_controller.js", "../../javascript/controllers/admin/stats_chart_controller.js", "../../javascript/controllers/admin/auth_controller.js", "../../javascript/controllers/admin/retailer_bank_exclusions.js", "../../javascript/controllers/immediate_input_submit_controller.js", "../../javascript/controllers/localtime_format_controller.js", "../../javascript/controllers/admin/bulk_controller.js", "../../javascript/controllers/admin/draggable_controller.js", "../../javascript/controllers/toggle_controller.js", "../../javascript/controllers/disable_controller.js", "../../javascript/controllers/admin/reorder_controller.js", "../../javascript/controllers/admin/combobox_controller.js", "../../javascript/controllers/clipboard_controller.js", "../../javascript/controllers/admin/color_preview_controller.js", "../../javascript/controllers/admin/cashback_percent_controller.js", "../../javascript/controllers/jump_controller.js", "../../javascript/controllers/popover_controller.js", "../../javascript/controllers/panzoom_controller.js", "../../javascript/admin.js"],
  "sourcesContent": ["export default {\n  logger: typeof console !== \"undefined\" ? console : undefined,\n  WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined,\n}\n", "import adapters from \"./adapters\"\n\n// The logger is disabled by default. You can enable it with:\n//\n//   ActionCable.logger.enabled = true\n//\n//   Example:\n//\n//   import * as ActionCable from '@rails/actioncable'\n//\n//   ActionCable.logger.enabled = true\n//   ActionCable.logger.log('Connection Established.')\n//\n\nexport default {\n  log(...messages) {\n    if (this.enabled) {\n      messages.push(Date.now())\n      adapters.logger.log(\"[ActionCable]\", ...messages)\n    }\n  },\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring the cable connection is in good health by validating the heartbeat pings sent from the server, and attempting\n// revival reconnections if things go astray. Internal class, not intended for direct user manipulation.\n\nconst now = () => new Date().getTime()\n\nconst secondsSince = time => (now() - time) / 1000\n\nclass ConnectionMonitor {\n  constructor(connection) {\n    this.visibilityDidChange = this.visibilityDidChange.bind(this)\n    this.connection = connection\n    this.reconnectAttempts = 0\n  }\n\n  start() {\n    if (!this.isRunning()) {\n      this.startedAt = now()\n      delete this.stoppedAt\n      this.startPolling()\n      addEventListener(\"visibilitychange\", this.visibilityDidChange)\n      logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`)\n    }\n  }\n\n  stop() {\n    if (this.isRunning()) {\n      this.stoppedAt = now()\n      this.stopPolling()\n      removeEventListener(\"visibilitychange\", this.visibilityDidChange)\n      logger.log(\"ConnectionMonitor stopped\")\n    }\n  }\n\n  isRunning() {\n    return this.startedAt && !this.stoppedAt\n  }\n\n  recordMessage() {\n    this.pingedAt = now()\n  }\n\n  recordConnect() {\n    this.reconnectAttempts = 0\n    delete this.disconnectedAt\n    logger.log(\"ConnectionMonitor recorded connect\")\n  }\n\n  recordDisconnect() {\n    this.disconnectedAt = now()\n    logger.log(\"ConnectionMonitor recorded disconnect\")\n  }\n\n  // Private\n\n  startPolling() {\n    this.stopPolling()\n    this.poll()\n  }\n\n  stopPolling() {\n    clearTimeout(this.pollTimeout)\n  }\n\n  poll() {\n    this.pollTimeout = setTimeout(() => {\n      this.reconnectIfStale()\n      this.poll()\n    }\n    , this.getPollInterval())\n  }\n\n  getPollInterval() {\n    const { staleThreshold, reconnectionBackoffRate } = this.constructor\n    const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10))\n    const jitterMax = this.reconnectAttempts === 0 ? 1.0 : reconnectionBackoffRate\n    const jitter = jitterMax * Math.random()\n    return staleThreshold * 1000 * backoff * (1 + jitter)\n  }\n\n  reconnectIfStale() {\n    if (this.connectionIsStale()) {\n      logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`)\n      this.reconnectAttempts++\n      if (this.disconnectedRecently()) {\n        logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`)\n      } else {\n        logger.log(\"ConnectionMonitor reopening\")\n        this.connection.reopen()\n      }\n    }\n  }\n\n  get refreshedAt() {\n    return this.pingedAt ? this.pingedAt : this.startedAt\n  }\n\n  connectionIsStale() {\n    return secondsSince(this.refreshedAt) > this.constructor.staleThreshold\n  }\n\n  disconnectedRecently() {\n    return this.disconnectedAt && (secondsSince(this.disconnectedAt) < this.constructor.staleThreshold)\n  }\n\n  visibilityDidChange() {\n    if (document.visibilityState === \"visible\") {\n      setTimeout(() => {\n        if (this.connectionIsStale() || !this.connection.isOpen()) {\n          logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`)\n          this.connection.reopen()\n        }\n      }\n      , 200)\n    }\n  }\n\n}\n\nConnectionMonitor.staleThreshold = 6 // Server::Connections::BEAT_INTERVAL * 2 (missed two pings)\nConnectionMonitor.reconnectionBackoffRate = 0.15\n\nexport default ConnectionMonitor\n", "export default {\n  \"message_types\": {\n    \"welcome\": \"welcome\",\n    \"disconnect\": \"disconnect\",\n    \"ping\": \"ping\",\n    \"confirmation\": \"confirm_subscription\",\n    \"rejection\": \"reject_subscription\"\n  },\n  \"disconnect_reasons\": {\n    \"unauthorized\": \"unauthorized\",\n    \"invalid_request\": \"invalid_request\",\n    \"server_restart\": \"server_restart\",\n    \"remote\": \"remote\"\n  },\n  \"default_mount_path\": \"/cable\",\n  \"protocols\": [\n    \"actioncable-v1-json\",\n    \"actioncable-unsupported\"\n  ]\n}\n", "import adapters from \"./adapters\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport INTERNAL from \"./internal\"\nimport logger from \"./logger\"\n\n// Encapsulate the cable connection held by the consumer. This is an internal class not intended for direct user manipulation.\n\nconst {message_types, protocols} = INTERNAL\nconst supportedProtocols = protocols.slice(0, protocols.length - 1)\n\nconst indexOf = [].indexOf\n\nclass Connection {\n  constructor(consumer) {\n    this.open = this.open.bind(this)\n    this.consumer = consumer\n    this.subscriptions = this.consumer.subscriptions\n    this.monitor = new ConnectionMonitor(this)\n    this.disconnected = true\n  }\n\n  send(data) {\n    if (this.isOpen()) {\n      this.webSocket.send(JSON.stringify(data))\n      return true\n    } else {\n      return false\n    }\n  }\n\n  open() {\n    if (this.isActive()) {\n      logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`)\n      return false\n    } else {\n      const socketProtocols = [...protocols, ...this.consumer.subprotocols || []]\n      logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`)\n      if (this.webSocket) { this.uninstallEventHandlers() }\n      this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols)\n      this.installEventHandlers()\n      this.monitor.start()\n      return true\n    }\n  }\n\n  close({allowReconnect} = {allowReconnect: true}) {\n    if (!allowReconnect) { this.monitor.stop() }\n    // Avoid closing websockets in a \"connecting\" state due to Safari 15.1+ bug. See: https://github.com/rails/rails/issues/43835#issuecomment-1002288478\n    if (this.isOpen()) {\n      return this.webSocket.close()\n    }\n  }\n\n  reopen() {\n    logger.log(`Reopening WebSocket, current state is ${this.getState()}`)\n    if (this.isActive()) {\n      try {\n        return this.close()\n      } catch (error) {\n        logger.log(\"Failed to reopen WebSocket\", error)\n      }\n      finally {\n        logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`)\n        setTimeout(this.open, this.constructor.reopenDelay)\n      }\n    } else {\n      return this.open()\n    }\n  }\n\n  getProtocol() {\n    if (this.webSocket) {\n      return this.webSocket.protocol\n    }\n  }\n\n  isOpen() {\n    return this.isState(\"open\")\n  }\n\n  isActive() {\n    return this.isState(\"open\", \"connecting\")\n  }\n\n  triedToReconnect() {\n    return this.monitor.reconnectAttempts > 0\n  }\n\n  // Private\n\n  isProtocolSupported() {\n    return indexOf.call(supportedProtocols, this.getProtocol()) >= 0\n  }\n\n  isState(...states) {\n    return indexOf.call(states, this.getState()) >= 0\n  }\n\n  getState() {\n    if (this.webSocket) {\n      for (let state in adapters.WebSocket) {\n        if (adapters.WebSocket[state] === this.webSocket.readyState) {\n          return state.toLowerCase()\n        }\n      }\n    }\n    return null\n  }\n\n  installEventHandlers() {\n    for (let eventName in this.events) {\n      const handler = this.events[eventName].bind(this)\n      this.webSocket[`on${eventName}`] = handler\n    }\n  }\n\n  uninstallEventHandlers() {\n    for (let eventName in this.events) {\n      this.webSocket[`on${eventName}`] = function() {}\n    }\n  }\n\n}\n\nConnection.reopenDelay = 500\n\nConnection.prototype.events = {\n  message(event) {\n    if (!this.isProtocolSupported()) { return }\n    const {identifier, message, reason, reconnect, type} = JSON.parse(event.data)\n    this.monitor.recordMessage()\n    switch (type) {\n      case message_types.welcome:\n        if (this.triedToReconnect()) {\n          this.reconnectAttempted = true\n        }\n        this.monitor.recordConnect()\n        return this.subscriptions.reload()\n      case message_types.disconnect:\n        logger.log(`Disconnecting. Reason: ${reason}`)\n        return this.close({allowReconnect: reconnect})\n      case message_types.ping:\n        return null\n      case message_types.confirmation:\n        this.subscriptions.confirmSubscription(identifier)\n        if (this.reconnectAttempted) {\n          this.reconnectAttempted = false\n          return this.subscriptions.notify(identifier, \"connected\", {reconnected: true})\n        } else {\n          return this.subscriptions.notify(identifier, \"connected\", {reconnected: false})\n        }\n      case message_types.rejection:\n        return this.subscriptions.reject(identifier)\n      default:\n        return this.subscriptions.notify(identifier, \"received\", message)\n    }\n  },\n\n  open() {\n    logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`)\n    this.disconnected = false\n    if (!this.isProtocolSupported()) {\n      logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\")\n      return this.close({allowReconnect: false})\n    }\n  },\n\n  close(event) {\n    logger.log(\"WebSocket onclose event\")\n    if (this.disconnected) { return }\n    this.disconnected = true\n    this.monitor.recordDisconnect()\n    return this.subscriptions.notifyAll(\"disconnected\", {willAttemptReconnect: this.monitor.isRunning()})\n  },\n\n  error() {\n    logger.log(\"WebSocket onerror event\")\n  }\n}\n\nexport default Connection\n", "// A new subscription is created through the ActionCable.Subscriptions instance available on the consumer.\n// It provides a number of callbacks and a method for calling remote procedure calls on the corresponding\n// Channel instance on the server side.\n//\n// An example demonstrates the basic functionality:\n//\n//   App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\", {\n//     connected() {\n//       // Called once the subscription has been successfully completed\n//     },\n//\n//     disconnected({ willAttemptReconnect: boolean }) {\n//       // Called when the client has disconnected with the server.\n//       // The object will have an `willAttemptReconnect` property which\n//       // says whether the client has the intention of attempting\n//       // to reconnect.\n//     },\n//\n//     appear() {\n//       this.perform('appear', {appearing_on: this.appearingOn()})\n//     },\n//\n//     away() {\n//       this.perform('away')\n//     },\n//\n//     appearingOn() {\n//       $('main').data('appearing-on')\n//     }\n//   })\n//\n// The methods #appear and #away forward their intent to the remote AppearanceChannel instance on the server\n// by calling the `perform` method with the first parameter being the action (which maps to AppearanceChannel#appear/away).\n// The second parameter is a hash that'll get JSON encoded and made available on the server in the data parameter.\n//\n// This is how the server component would look:\n//\n//   class AppearanceChannel < ApplicationActionCable::Channel\n//     def subscribed\n//       current_user.appear\n//     end\n//\n//     def unsubscribed\n//       current_user.disappear\n//     end\n//\n//     def appear(data)\n//       current_user.appear on: data['appearing_on']\n//     end\n//\n//     def away\n//       current_user.away\n//     end\n//   end\n//\n// The \"AppearanceChannel\" name is automatically mapped between the client-side subscription creation and the server-side Ruby class name.\n// The AppearanceChannel#appear/away public methods are exposed automatically to client-side invocation through the perform method.\n\nconst extend = function(object, properties) {\n  if (properties != null) {\n    for (let key in properties) {\n      const value = properties[key]\n      object[key] = value\n    }\n  }\n  return object\n}\n\nexport default class Subscription {\n  constructor(consumer, params = {}, mixin) {\n    this.consumer = consumer\n    this.identifier = JSON.stringify(params)\n    extend(this, mixin)\n  }\n\n  // Perform a channel action with the optional data passed as an attribute\n  perform(action, data = {}) {\n    data.action = action\n    return this.send(data)\n  }\n\n  send(data) {\n    return this.consumer.send({command: \"message\", identifier: this.identifier, data: JSON.stringify(data)})\n  }\n\n  unsubscribe() {\n    return this.consumer.subscriptions.remove(this)\n  }\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring channel subscribe command is confirmed, retrying until confirmation is received.\n// Internal class, not intended for direct user manipulation.\n\nclass SubscriptionGuarantor {\n  constructor(subscriptions) {\n    this.subscriptions = subscriptions\n    this.pendingSubscriptions = []\n  }\n\n  guarantee(subscription) {\n    if(this.pendingSubscriptions.indexOf(subscription) == -1){ \n      logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`)\n      this.pendingSubscriptions.push(subscription) \n    }\n    else {\n      logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`)\n    }\n    this.startGuaranteeing()\n  }\n\n  forget(subscription) {\n    logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`)\n    this.pendingSubscriptions = (this.pendingSubscriptions.filter((s) => s !== subscription))\n  }\n\n  startGuaranteeing() {\n    this.stopGuaranteeing()\n    this.retrySubscribing()\n  }\n  \n  stopGuaranteeing() {\n    clearTimeout(this.retryTimeout)\n  }\n\n  retrySubscribing() {\n    this.retryTimeout = setTimeout(() => {\n      if (this.subscriptions && typeof(this.subscriptions.subscribe) === \"function\") {\n        this.pendingSubscriptions.map((subscription) => {\n          logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`)\n          this.subscriptions.subscribe(subscription)\n        })\n      }\n    }\n    , 500)\n  }\n}\n\nexport default SubscriptionGuarantor", "import Subscription from \"./subscription\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport logger from \"./logger\"\n\n// Collection class for creating (and internally managing) channel subscriptions.\n// The only method intended to be triggered by the user is ActionCable.Subscriptions#create,\n// and it should be called through the consumer like so:\n//\n//   App = {}\n//   App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n//   App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n\nexport default class Subscriptions {\n  constructor(consumer) {\n    this.consumer = consumer\n    this.guarantor = new SubscriptionGuarantor(this)\n    this.subscriptions = []\n  }\n\n  create(channelName, mixin) {\n    const channel = channelName\n    const params = typeof channel === \"object\" ? channel : {channel}\n    const subscription = new Subscription(this.consumer, params, mixin)\n    return this.add(subscription)\n  }\n\n  // Private\n\n  add(subscription) {\n    this.subscriptions.push(subscription)\n    this.consumer.ensureActiveConnection()\n    this.notify(subscription, \"initialized\")\n    this.subscribe(subscription)\n    return subscription\n  }\n\n  remove(subscription) {\n    this.forget(subscription)\n    if (!this.findAll(subscription.identifier).length) {\n      this.sendCommand(subscription, \"unsubscribe\")\n    }\n    return subscription\n  }\n\n  reject(identifier) {\n    return this.findAll(identifier).map((subscription) => {\n      this.forget(subscription)\n      this.notify(subscription, \"rejected\")\n      return subscription\n    })\n  }\n\n  forget(subscription) {\n    this.guarantor.forget(subscription)\n    this.subscriptions = (this.subscriptions.filter((s) => s !== subscription))\n    return subscription\n  }\n\n  findAll(identifier) {\n    return this.subscriptions.filter((s) => s.identifier === identifier)\n  }\n\n  reload() {\n    return this.subscriptions.map((subscription) =>\n      this.subscribe(subscription))\n  }\n\n  notifyAll(callbackName, ...args) {\n    return this.subscriptions.map((subscription) =>\n      this.notify(subscription, callbackName, ...args))\n  }\n\n  notify(subscription, callbackName, ...args) {\n    let subscriptions\n    if (typeof subscription === \"string\") {\n      subscriptions = this.findAll(subscription)\n    } else {\n      subscriptions = [subscription]\n    }\n\n    return subscriptions.map((subscription) =>\n      (typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined))\n  }\n\n  subscribe(subscription) {\n    if (this.sendCommand(subscription, \"subscribe\")) {\n      this.guarantor.guarantee(subscription)\n    }\n  }\n\n  confirmSubscription(identifier) {\n    logger.log(`Subscription confirmed ${identifier}`)\n    this.findAll(identifier).map((subscription) =>\n      this.guarantor.forget(subscription))\n  }\n\n  sendCommand(subscription, command) {\n    const {identifier} = subscription\n    return this.consumer.send({command, identifier})\n  }\n}\n", "import Connection from \"./connection\"\nimport Subscriptions from \"./subscriptions\"\n\n// The ActionCable.Consumer establishes the connection to a server-side Ruby Connection object. Once established,\n// the ActionCable.ConnectionMonitor will ensure that its properly maintained through heartbeats and checking for stale updates.\n// The Consumer instance is also the gateway to establishing subscriptions to desired channels through the #createSubscription\n// method.\n//\n// The following example shows how this can be set up:\n//\n//   App = {}\n//   App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n//   App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n//\n// When a consumer is created, it automatically connects with the server.\n//\n// To disconnect from the server, call\n//\n//   App.cable.disconnect()\n//\n// and to restart the connection:\n//\n//   App.cable.connect()\n//\n// Any channel subscriptions which existed prior to disconnecting will\n// automatically resubscribe.\n\nexport default class Consumer {\n  constructor(url) {\n    this._url = url\n    this.subscriptions = new Subscriptions(this)\n    this.connection = new Connection(this)\n    this.subprotocols = []\n  }\n\n  get url() {\n    return createWebSocketURL(this._url)\n  }\n\n  send(data) {\n    return this.connection.send(data)\n  }\n\n  connect() {\n    return this.connection.open()\n  }\n\n  disconnect() {\n    return this.connection.close({allowReconnect: false})\n  }\n\n  ensureActiveConnection() {\n    if (!this.connection.isActive()) {\n      return this.connection.open()\n    }\n  }\n\n  addSubProtocol(subprotocol) {\n    this.subprotocols = [...this.subprotocols, subprotocol]\n  }\n}\n\nexport function createWebSocketURL(url) {\n  if (typeof url === \"function\") {\n    url = url()\n  }\n\n  if (url && !/^wss?:/i.test(url)) {\n    const a = document.createElement(\"a\")\n    a.href = url\n    // Fix populating Location properties in IE. Otherwise, protocol will be blank.\n    a.href = a.href // eslint-disable-line\n    a.protocol = a.protocol.replace(\"http\", \"ws\")\n    return a.href\n  } else {\n    return url\n  }\n}\n", "import Connection from \"./connection\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport Consumer, { createWebSocketURL } from \"./consumer\"\nimport INTERNAL from \"./internal\"\nimport Subscription from \"./subscription\"\nimport Subscriptions from \"./subscriptions\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport adapters from \"./adapters\"\nimport logger from \"./logger\"\n\nexport {\n  Connection,\n  ConnectionMonitor,\n  Consumer,\n  INTERNAL,\n  Subscription,\n  Subscriptions,\n  SubscriptionGuarantor,\n  adapters,\n  createWebSocketURL,\n  logger,\n}\n\nexport function createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n  return new Consumer(url)\n}\n\nexport function getConfig(name) {\n  const element = document.head.querySelector(`meta[name='action-cable-${name}']`)\n  if (element) {\n    return element.getAttribute(\"content\")\n  }\n}\n", "!/**\n * Highcharts JS v13.0.0 (2026-06-11)\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;var r,a,n,h,l,d,c,p,g,u,f,m,x,y,b,v,k,w,M,C,S,T,A,P,L={};L.d=(t,e)=>{for(var i in e)L.o(e,i)&&!L.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},L.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var O={};L.d(O,{default:()=>or}),(r=g||(g={})).SVG_NS=\"http://www.w3.org/2000/svg\",r.product=\"Highcharts\",r.version=\"13.0.0\",r.win=\"u\">typeof window?window:{},r.doc=r.win.document,r.svg=!!r.doc?.createElementNS?.(r.SVG_NS,\"svg\")?.createSVGRect,r.pageLang=r.doc?.documentElement?.closest(\"[lang]\")?.lang,r.userAgent=r.win.navigator?.userAgent||\"\",r.isChrome=r.win.chrome,r.isFirefox=-1!==r.userAgent.indexOf(\"Firefox\"),r.isMS=/(edge|msie|trident)/i.test(r.userAgent)&&!r.win.opera,r.isSafari=!r.isChrome&&-1!==r.userAgent.indexOf(\"Safari\"),r.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(r.userAgent),r.isWebKit=-1!==r.userAgent.indexOf(\"AppleWebKit\"),r.deg2rad=2*Math.PI/360,r.marginNames=[\"plotTop\",\"marginRight\",\"marginBottom\",\"plotLeft\"],r.noop=function(){},r.supportsPassiveEvents=function(){let t=!1;if(!r.isMS){let e=Object.defineProperty({},\"passive\",{get:function(){t=!0}});r.win.addEventListener&&r.win.removeEventListener&&(r.win.addEventListener(\"testPassive\",r.noop,e),r.win.removeEventListener(\"testPassive\",r.noop,e))}return t}(),r.charts=[],r.composed=[],r.dateFormats={},r.seriesTypes={},r.symbolSizes={},r.chartCount=0;let E=g,I={dark:{backgroundColor:\"#141414\",neutralColor:\"#ffffff\",highlightColor:\"#2caffe\"},light:{backgroundColor:\"#ffffff\",neutralColor:\"#000000\",highlightColor:\"#0022ff\",positiveColor:\"#06b535\",negativeColor:\"#f21313\"}},{doc:D,win:B}=E;function N(t,e,i,s={}){let o=\"function\"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,\"hcEvents\")||(o.hcEvents={});let r=o.hcEvents;E.Point&&t instanceof E.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,i,!!E.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf(\"touch\"):s.passive,capture:!1}),r[e]||(r[e]=[]);let n={fn:i,order:\"number\"==typeof s.order?s.order:1/0};return r[e].push(n),r[e].sort((t,e)=>t.order-e.order),function(){tw(t,e,i)}}function z(t){let e=t.length,i=t[0];for(;e--;)t[e]<i&&(i=t[e]);return i}function R(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i}function W(t,e,i){let s,o=th(e)&&!j(i),r=(e,i)=>{j(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||\"class\"!==i||(s=t.getAttribute(i+\"Name\")):t.removeAttribute(i)};return th(e)?r(i,e):tu(e,r),s}function H(t,e,i){return t>e?t<i?t:i:e}function G(t,e){return t>1e14?t:parseFloat(t.toPrecision(e||14))}function X(t,e,i,s,o){let r=D.createElement(t);return e&&_(r,e),o&&Y(r,{padding:\"0\",border:\"none\",margin:\"0\"}),i&&Y(r,i),s&&s.appendChild(r),r}function F(t,e=0,i){let s=e%2/2,o=i?-1:1;return(Math.round(t*o-s)+s)*o}function Y(t,e){_(t.style,e)}function j(t){return null!=t}function $(t,e,i){tu(t,function(s,o){s!==e&&s?.destroy&&s.destroy(),(s?.destroy||!i)&&delete t[o]})}function V(t){t?.parentElement?.removeChild(t)}function U(t,e,i,s){let o={};return!function t(e,o,r,a){let n=i?o:e;tu(e,function(i,h){if(!a&&s&&s.indexOf(h)>-1&&o[h]){i=tM(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 tc(i,!0)&&!i.nodeType?(r[h]=tl(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 Z(t,e){let i=t.length;for(;i--;)if(t[i]===e){t.splice(i,1);break}}function _(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function K(t,e){let i=function(){};return i.prototype=new t,_(i.prototype,e),i}function q(t,e,i,s){if(i=i||{},D?.createEvent&&(t.dispatchEvent||t.fireEvent&&t!==E)){let s=D.createEvent(\"Events\");s.initEvent(e,!0,!0),i=_(s,i),t.dispatchEvent?t.dispatchEvent(i):t.fireEvent(e,i)}else if(t.hcEvents){i.target||_(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 J=(t=\"\")=>({center:.5,right:1,middle:.5,bottom:1})[t]||0;function Q(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 tt(t){return Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function te(t,e){let i=t.split(\".\");for(;i.length&&j(e);){let t=i.shift();if(void 0===t||\"__proto__\"===t)return;if(\"this\"===t){let t;return tc(e)&&(t=e[\"@this\"]),t??e}let s=e[t.replace(/[\\\\'\"]/g,\"\")];if(!j(s)||\"function\"==typeof s||\"number\"==typeof s.nodeType||s===B)return;e=s}return e}function ti(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-(ti(t,\"padding-left\",!0)||0)-(ti(t,\"padding-right\",!0)||0))}if(\"height\"===e)return Math.max(0,Math.min(t.offsetHeight,t.scrollHeight)-(ti(t,\"padding-top\",!0)||0)-(ti(t,\"padding-bottom\",!0)||0));let o=B.getComputedStyle(t,void 0);return o&&(s=o.getPropertyValue(e),tx(i,\"opacity\"!==e)&&(s=ty(s))),s}let ts=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 to(t){j(t)&&clearTimeout(t)}function tr(t){return tc(t)&&\"number\"==typeof t.nodeType}function ta(t){let e=t?.constructor;return!!(tc(t,!0)&&!tr(t)&&e?.name&&\"Object\"!==e.name)}function tn(t){return\"number\"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function th(t){return\"string\"==typeof t}function tl(t){let e=Object.prototype.toString.call(t);return\"[object Array]\"===e||\"[object Array Iterator]\"===e}function td(t){return\"function\"==typeof t}function tc(t,e){return!!t&&\"object\"==typeof t&&(!e||!tl(t))}function tp(t,...e){let i,s=[t,...e],o={},r=function(t,e){return\"object\"!=typeof t&&(t={}),tu(e,function(i,s){\"__proto__\"!==s&&\"constructor\"!==s&&(!tc(i,!0)||ta(i)||tr(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 tg(t,e,i,s,o){let r,a=t;i=tx(i,tt(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 G(a*i,-Math.round(Math.log(.001)/Math.LN10))}function tu(t,e,i){for(let s in t)Object.hasOwnProperty.call(t,s)&&e.call(i||t[s],t[s],s,t)}function tf(t){let e=D.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(B.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(B.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}}function tm(t,e,i){return Array((e||2)+1-String(t).replace(\"-\",\"\").length).join(i||\"0\")+t}function tx(){let t=arguments,e=t.length;for(let i=0;i<e;i++){let e=t[i];if(null!=e)return e}}function ty(t,e){return parseInt(t,e||10)}function tb(t,e){return 0>t.indexOf(e)&&!!t.push(e)}function tv(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)}function tk(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 tw(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,tu(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 tM(t){return tl(t)?t:[t]}function tC(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 tS(t,e,i){return e>0?setTimeout(t,e,i):(t.call(0,i),-1)}function tT(t){return th(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)}let{charts:tA,win:tP}=E;function tL(t,e,i,s){let o=e?\"Highcharts error\":\"Highcharts warning\";32===t&&(t=`${o}: Deprecated member`);let r=tn(t),a=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t=\"\";r&&(a+=\"?\"),tu(s,function(e,i){t+=`\n - ${i}: ${e}`,r&&(a+=encodeURI(i)+\"=\"+encodeURI(e))}),a+=t}q(E,\"displayError\",{chart:i,code:t,message:a,params:s},function(){if(e)throw Error(a);tP.console&&-1===tL.messages.indexOf(a)&&console.warn(a)}),tL.messages.push(a)}function tO(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]||tn(s)&&s<tx(e[i].options.index,e[i]._i)||e[i].options.isInternal){e.splice(i,0,t);break}return i}(tL||(tL={})).messages=[];let tE={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 tI=(i=Math.random().toString(36).substring(2,9)+\"-\",s=0,function(){return\"highcharts-\"+(t?\"\":i)+s++});tP.jQuery&&(tP.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new E[th(t[0])?t.shift():\"Chart\"](this[0],t[0],t[1]),this):tA[W(this[0],\"data-highcharts-chart\")]});let{pageLang:tD,win:tB}=E,tN=E.isSafari&&tB.Intl&&!tB.Intl.DateTimeFormat.prototype.formatRange,tz=class{constructor(t,e){this.options={timezone:\"UTC\"},this.variableTimezone=!1,this.Date=tB.Date,this.update(t),this.lang=e}update(t={}){this.dTLCache={},this.options=t=tp(!0,this.options,t);let{timezoneOffset:e,useUTC:i,locale:s}=t;this.Date=t.Date||tB.Date||Date;let o=t.timezone;j(i)&&(o=i?\"UTC\":void 0),e&&e%60==0&&(o=\"Etc/GMT\"+(e>0?\"+\":\"\")+e/60),this.variableTimezone=\"UTC\"!==o&&o?.indexOf(\"Etc/GMT\")!==0,this.timezone=o,this.lang&&s&&(this.lang.locale=s),[\"months\",\"shortMonths\",\"weekdays\",\"shortWeekdays\"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:\"UTC\"};s[e?\"month\":\"weekday\"]=i?\"short\":\"long\",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*24*36e5*t))})}toParts(t){let[e,i,s,o,r,a,n]=this.dateTimeFormat({weekday:\"narrow\",day:\"numeric\",month:\"numeric\",year:\"numeric\",hour:\"numeric\",minute:\"numeric\",second:\"numeric\"},t,\"es\").split(/(?:, | |\\/|:)/g);return[+o,s-1,+i,+r,+a,+n,Math.floor(Number(t)||0)%1e3,\"DLMXJVS\".indexOf(e)]}dateTimeFormat(t,e,i=this.options.locale||tD){let s=JSON.stringify(t)+i;th(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)?(tL(34),t.timeZone=\"UTC\",o=new Intl.DateTimeFormat(i,t)):tL(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)&&_(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,a){let n=this.Date.UTC(t,e,i,s,o||0,r||0,a||0);if(\"UTC\"!==this.timezone){let t=this.getTimezoneOffset(n);if(n+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(s<5||s>20)){let e=this.getTimezoneOffset(n);t!==e?n+=e-t:t-36e5!==this.getTimezoneOffset(n-36e5)||tN||(n-=36e5)}}return n}parse(t){if(!th(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(tn(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(tn(a))return a}return 0}dateFormat(t,e,i){let s=this.lang;if(!j(e)||isNaN(e))return s?.invalidDate||\"\";if(th(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(th(t)&&-1!==t.indexOf(\"%\")){let i=this,[o,r,a,n,h,l,d,c]=this.toParts(e),p=s?.weekdays||this.weekdays,g=s?.shortWeekdays||this.shortWeekdays,u=s?.months||this.months,f=s?.shortMonths||this.shortMonths;tu(_({a:g?g[c]:p[c].substr(0,3),A:p[c],d:tm(a),e:tm(a,2,\" \"),w:c,v:s?.weekFrom??\"\",b:f[r],B:u[r],m:tm(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:tm(n),k:n,I:tm(n%12||12),l:n%12||12,M:tm(h),p:n<12?\"AM\":\"PM\",P:n<12?\"am\":\"pm\",S:tm(l),L:tm(d,3)},E.dateFormats),function(s,o){if(th(t))for(;-1!==t.indexOf(\"%\"+o);)t=t.replace(\"%\"+o,\"function\"==typeof s?s.call(i,e,i):s)})}else if(tc(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(_({timeZone:s},t),e)+r}return i?tT(t):t}resolveDTLFormat(t){return tc(t,!0)?tc(t,!0)&&void 0===t.main?{main:t}:t:{main:(t=tM(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 tE){if(t&&t===tE.week&&+this.dateFormat(\"%w\",e)===i&&o.substr(6)===r.substr(6)){n=\"week\";break}if(t&&tE[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}},tR=class extends tz{getBoundaryTicks(t,e,i,s){let o={};if(e===tE.year)return o;let r=j(i)&&j(s),a=e<tE.hour,n=e<tE.day,h=e<tE.month,l=e>=tE.hour?9e5:e>=tE.minute?6e4:e>=tE.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===tE.month){o[p]=\"year\",d=!1;continue}if(e===tE.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),j(e)){if(u=a>=tE.second?0:r*Math.floor(u/r),a>=tE.second&&(g=a>=tE.minute?0:r*Math.floor(g/r)),a>=tE.minute&&(p=a>=tE.hour?0:r*Math.floor(p/r)),a>=tE.hour&&(c=a>=tE.day?0:r*Math.floor(c/r)),a>=tE.day&&(d=a>=tE.month?1:Math.max(1,r*Math.floor(d/r))),a>=tE.month&&(l=a>=tE.year?0:r*Math.floor(l/r)),a>=tE.year&&(h-=h%r),a===tE.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&&j(i)&&(f=i-e>4*tE.month||this.getTimezoneOffset(e)!==this.getTimezoneOffset(i));let t=e,n=1;for(;t<i;)o.push(t),a===tE.year?t=this.makeTime(h+n*r,0):a===tE.month?t=this.makeTime(h,l+n*r):f&&(a===tE.day||a===tE.week)?t=this.makeTime(h,l,d+n*r*(a===tE.day?1:7)):f&&a===tE.hour&&r>1?t=this.makeTime(h,l,d,c+n*r):t+=a*r,n++;o.push(t)}return o.info=_(t,{boundaryTicks:this.getBoundaryTicks(o,a,n,i),totalRange:a*r}),o}},{isTouchDevice:tW}=E,tH={palette:I,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(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:tW?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\"}},tG=new tR(tH.time,tH.lang),tX={defaultOptions:tH,defaultTime:tG,getOptions:function(){return tH},setOptions:function(t){return q(E,\"setOptions\",{options:t}),tp(!0,tH,t),t.time&&tG.update(tH.time),t.lang&&\"locale\"in t.lang&&tG.update({locale:t.lang.locale}),t.lang?.chartTitle&&(tH.title={...tH.title,text:t.lang.chartTitle}),tH}},{win:tF}=E,tY=(t,e,i)=>0===i?t:1===i?e:`color-mix(in srgb,${t},${e} ${100*i}%)`,tj=t=>th(t)&&!!t&&\"none\"!==t;class t${static parse(t){return t?new t$(t):t$.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;const r=E.Color;if(r&&r!==t$)return new r(t);if(\"object\"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new t$(t[1]));else if(\"string\"==typeof t)for(this.input=t=t$.names[t.toLowerCase()]||t,s=t$.parsers.length;s--&&!i;)(e=(o=t$.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=tp(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&&tn(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(tn(t)&&0!==t)if(tn(e[0]))for(let i=0;i<3;i++)e[i]+=ty(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);else t$.useColorMix&&tj(this.input)&&(this.output=tY(this.input,t>0?\"white\":\"black\",Math.abs(t)));return this}setOpacity(t){return tn(this.rgba[0])?this.rgba[3]=t:t$.useColorMix&&tj(this.input)&&(this.output=tY(this.input,\"#0000\",1-t)),this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!tn(i[0])||!tn(s[0]))return t$.useColorMix&&tj(this.input)&&tj(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(\",\")+\")\"}}t$.names={white:\"#ffffff\",black:\"#000000\"},t$.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[ty(t[1]),ty(t[2]),ty(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[ty(t[1]),ty(t[2]),ty(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[ty(t[1]+t[1],16),ty(t[2]+t[2],16),ty(t[3]+t[3],16),j(t[4])?ty(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[ty(t[1],16),ty(t[2],16),ty(t[3],16),j(t[4])?ty(t[4],16)/255:1]}}],t$.useColorMix=tF.CSS?.supports(\"color\",\"color-mix(in srgb,red,blue 9%)\"),t$.None=new t$(\"\");let{parse:tV}=t$,{win:tU}=E;class tZ{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t?.[0],i=t?.[1],s=this.now||0,o=[];if(1!==s&&e&&i)if(e.length===i.length&&s<1)for(let t=0;t<i.length;t++){let r=e[t],a=i[t],n=[];for(let t=0;t<a.length;t++){let e=r[t],i=a[t];tn(e)&&tn(i)&&(\"A\"!==a[0]||4!==t&&5!==t)?n[t]=e+s*(i-e):n[t]=i}o.push(n)}else o=i;else o=this.toD||[];this.elem.attr(\"d\",o,void 0,!0)}update(){let t=this.elem,e=this.prop,i=this.now,s=this.options.step;this[e+\"Setter\"]?this[e+\"Setter\"]():t.attr?t.element&&t.attr(e,i,null,!0):t.style[e]=i+this.unit,s&&s.call(t,i,this)}run(t,e,i){let s=this,o=s.options,r=function(t){return!r.stopped&&s.step(t)},a=tU.requestAnimationFrame||function(t){setTimeout(t,13)},n=function(){for(let t=0;t<tZ.timers.length;t++)tZ.timers[t]()||tZ.timers.splice(t--,1);tZ.timers.length&&a(n)};t!==e||this.elem[\"forceAnimate:\"+this.prop]?(this.startTime=+new Date,this.start=t,this.end=e,this.unit=i,this.now=this.start,this.pos=0,r.elem=this.elem,r.prop=this.prop,r()&&1===tZ.timers.push(r)&&a(n)):(delete o.curAnim[this.prop],o.complete&&0===Object.keys(o.curAnim).length&&o.complete.call(this.elem))}step(t){let e,i,s=+new Date,o=this.options,r=this.elem,a=o.complete,n=o.duration,h=o.curAnim;return r.attr&&!r.element?e=!1:t||s>=n+this.startTime?(this.now=this.end,this.pos=1,this.update(),h[this.prop]=!0,i=!0,tu(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&&tn(l)&&(d=r.length+l*n,p?(u(g,r),f(r)):(u(r,g),f(g))),[g,r]}fillSetter(){tZ.prototype.strokeSetter.apply(this,arguments)}strokeSetter(){this.elem.attr(this.prop,tV(this.start).tweenTo(tV(this.end),this.pos),void 0,!0)}}function t_(t){return tc(t)?tp({duration:500,defer:0},t):{duration:500*!!t,defer:0}}function tK(t,e){let i=tZ.timers.length;for(;i--;)tZ.timers[i].elem!==t||e&&e!==tZ.timers[i].prop||(tZ.timers[i].stopped=!0)}tZ.timers=[];let tq={animate:function(t,e,i){let s,o=\"\",r,a,n;tc(i)||(n=arguments,i={duration:n[2],easing:n[3],complete:n[4]}),tn(i.duration)||(i.duration=400),i.easing=\"function\"==typeof i.easing?i.easing:Math[i.easing]||Math.easeInOutSine,i.curAnim=tp(e),tu(e,function(n,h){tK(t,h),a=new tZ(t,i,h),r=void 0,\"d\"===h&&tl(e.d)?(a.paths=a.initPath(t,t.pathArray,e.d),a.toD=e.d,s=0,r=1):t.attr?s=t.attr(h):(s=parseFloat(ti(t,h))||0,\"opacity\"!==h&&(o=\"px\")),r||(r=n),\"string\"==typeof r&&r.match(\"px\")&&(r=r.replace(/px/g,\"\")),a.run(s,r,o)})},animObject:t_,getDeferredAnimation:function(t,e,i){let s=t_(e),o=i?[i]:t.series,r=0,a=0;return o.forEach(t=>{let i=t_(t.options.animation);r=tc(e)&&j(e.defer)?s.defer:Math.max(r,i.duration+i.defer),a=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-a),duration:Math.min(r,a)}},setAnimation:function(t,e){e.renderer.globalAnimation=tx(t,e.options.chart.animation,!0)},stop:tK},{SVG_NS:tJ,win:tQ}=E,{trustedTypes:t0}=tQ,t1=t0&&td(t0.createPolicy)&&t0.createPolicy(\"highcharts\",{createHTML:t=>t}),t2=t1?t1.createHTML(\"\"):\"\";class t5{static filterUserAttributes(t){return tu(t,(e,i)=>{let s=!0;-1===t5.allowedAttributes.indexOf(i)&&(s=!1),-1!==[\"background\",\"dynsrc\",\"href\",\"lowsrc\",\"src\"].indexOf(i)&&(s=th(e)&&t5.allowedReferences.some(t=>0===e.indexOf(t))),s||(tL(33,!1,void 0,{\"Invalid attribute in config\":`${i}`}),delete t[i]),th(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=t5.emptyHTML,e&&new t5(e).addToDOM(t)}constructor(t){this.nodes=\"string\"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return tM(e).forEach(function(e){let o,r=e.tagName,a=e.textContent?E.doc.createTextNode(e.textContent):void 0,n=t5.bypassHTMLFiltering;if(r)if(\"#text\"===r)o=a;else if(-1!==t5.allowedTags.indexOf(r)||n){let s=\"svg\"===r?tJ:i.namespaceURI||tJ,h=E.doc.createElementNS(s,r),l=e.attributes||{};tu(e,function(t,e){\"tagName\"!==e&&\"attributes\"!==e&&\"children\"!==e&&\"style\"!==e&&\"textContent\"!==e&&(l[e]=t)}),W(h,n?l:t5.filterUserAttributes(l)),e.style&&Y(h,e.style),a&&h.appendChild(a),t(e.children||[],h),o=h}else tL(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(t1?t1.createHTML(t):t,\"text/html\")}catch{}if(!e){let i=X(\"div\");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),o={tagName:i};\"#text\"===i&&(o.textContent=t.textContent||\"\");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{\"data-style\"===e.name?o.style=t5.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}}t5.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\",\"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\"],t5.allowedReferences=[\"https://\",\"http://\",\"mailto:\",\"/\",\"../\",\"./\",\"#\"],t5.allowedTags=[\"#text\",\"a\",\"abbr\",\"b\",\"br\",\"button\",\"caption\",\"circle\",\"clipPath\",\"code\",\"dd\",\"defs\",\"div\",\"dl\",\"dt\",\"em\",\"feComponentTransfer\",\"feComposite\",\"feDropShadow\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feMerge\",\"feMergeNode\",\"feMorphology\",\"feOffset\",\"filter\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"hr\",\"i\",\"img\",\"li\",\"linearGradient\",\"marker\",\"ol\",\"p\",\"path\",\"pattern\",\"pre\",\"rect\",\"small\",\"span\",\"stop\",\"strong\",\"style\",\"sub\",\"sup\",\"svg\",\"table\",\"tbody\",\"td\",\"text\",\"textPath\",\"th\",\"thead\",\"title\",\"tr\",\"tspan\",\"u\",\"ul\"],t5.emptyHTML=t2,t5.bypassHTMLFiltering=!1;let{defaultOptions:t3,defaultTime:t6}=tX,{pageLang:t9}=E,t4={add:(t,e)=>t+e,divide:(t,e)=>0!==e?G(t/e):\"\",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!tl(t)&&t.map((i,s)=>t7(e.body,_(tc(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)=>G(t*e,15),ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:tT,unless:t=>!t},t8={};function t7(t=\"\",e,i){let s=/\\{([^{}]+)\\}/g,o=/\\(([^()]+)\\)/g,r=[],a=/f$/,n=/\\.(\\d)/,h=i?.options?.lang||t3.lang,l=i?.time||t6,d=i?.numberFormatter||et.bind(i),c=(t=\"\")=>{let i;return\"true\"===t||\"false\"!==t&&((i=Number(t)).toString()===t?i:/^[\"'].+[\"']$/.test(t)?t.slice(1,-1):te(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(\"#\",\"\");t4[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=t4[m].length;p--;)t.unshift(c(o[p+1]));r=t4[m].apply(e,t),s.isBlock&&\"boolean\"==typeof r&&(r=t7(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)&&th(r)&&(r=`\"${r}\"`)}t=t.replace(s.find,tx(r,\"\"))}),f?t7(t,e,i):t}function et(t,e,i,s){e*=1;let o,r,[a,n]=(t=+t||0).toString().split(\"e\").map(Number),h=this?.options?.lang||t3.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):tn(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),tn(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),\"\"===s&&(c.useGrouping=!1);let p=s||i,g=p?\"en\":this?.locale||h.locale||t9,u=JSON.stringify(c)+g;return o=(t8[u]??(t8[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 ee={dateFormat:function(t,e,i){return t6.dateFormat(t,e,i)},format:t7,helpers:t4,numberFormat:et};(u||(u={})).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,f=0;for(c=h;c--;)f+=e[c].size;if(f>r){if(tC(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&&f>r;){let i=t.shift();if(!i)break;g=e[c=Math.floor((i[0]+i[1])/2)],tb(l,c)&&(f-=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;f>r&&c>=0;)g=e[c],tb(l,c)&&(f-=g.size),c--;l.sort((t,e)=>e-t).forEach(t=>d.apply(n,e.splice(t,1)))}for(tC(e,a),e=e.map(t=>({size:t.size,targets:[t.target],align:tx(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=H(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))}),tC(o,a),o};let ei=u,{animate:es,animObject:eo,stop:er}=tq,{deg2rad:ea,doc:en,svg:eh,SVG_NS:el,win:ed,isFirefox:ec}=E;class ep{_defaultGetter(t){let e=tx(this[t+\"Value\"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\\d\\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e,i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&\"text\"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?\"\":this.attr(\"class\")||\"\";return(t=(t||\"\").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(\" \"))!==i&&this.attr(\"class\",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o=this.renderer,r=o.alignedObjects,a=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let n=!i||th(i)?i||\"renderer\":void 0;n&&(a&&tb(r,this),i=void 0);let h=tx(i,o[n],o),l=(h.x||0)+(t.x||0)+((h.width||0)-(t.width||0))*J(t.align),d=(h.y||0)+(t.y||0)+((h.height||0)-(t.height||0))*J(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=eo(tx(e,this.renderer.globalAnimation,!0)),o=s.defer;return en.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),tS(()=>{this.element&&es(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),tu(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&&E.svg){this.fakeTS=!0,o=o.replace(/(^[\\d\\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=en.createElementNS(el,\"tspan\");W(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=en.createElementNS(el,\"tspan\");a.textContent=\"\u200B\",W(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=ep.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):(tu(t,function(e,i){l=!1,s||er(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=tI()+\"-\",i=this.renderer.createElement(\"clipPath\").attr({id:e}).add(this.renderer.defs);_(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=F(i,e),n=F(s,e);return _(t,{x:a,y:n,width:F(o,e)-a,height:F(r,e)-n}),j(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;q(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,tl(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:\"userSpaceOnUse\"}),\"radialGradient\"===r&&c&&!j(a.gradientUnits)&&(n=a,a=tp(a,s.getRadialAttr(c,n),{gradientUnits:\"userSpaceOnUse\"})),tu(a,function(t,e){\"id\"!==e&&g.push(e,t)}),tu(l,function(t){g.push(t)}),h[g=g.join(\",\")])p=h[g].attr(\"id\");else{a.id=p=tI();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=t$.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&&tu(t,function(t,s){e&&e[s]!==t&&(i[s]=t,a=!0)}),a){e&&(t=_(e,i)),null===t.width||\"auto\"===t.width?delete this.textWidth:\"text\"===s.nodeName.toLowerCase()&&t.width&&(r=this.textWidth=ty(t.width)),_(this.styles,t),r&&!eh&&o.forExport&&delete t.width;let a=ec&&t.fontSize||null;a&&(tn(a)||/^\\d+$/.test(a))&&(t.fontSize+=\"px\");let n=tp(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)),Y(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]=\"\"+ty(s[e])*tx(i,NaN);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,er(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&&Z(i.alignedObjects,t),tu(t,(e,i)=>{(t[i]?.parentGroup===t||-1!==[\"connector\",\"foreignObject\"].indexOf(i))&&t[i]?.destroy?.(),delete t[i]})}dSetter(t,e,i){tl(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=tx(e,this.rotation,0),g=a.styledMode?r&&ep.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&&Y(e,{display:t})},td(o)&&o(\"none\"),i=r.getBBox?_({},r.getBBox()):{width:r.offsetWidth,height:r.offsetHeight,x:0,y:0},td(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};q(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(j(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=J(a),c=Number(this.element.getAttribute(\"y\")||0)-(n?0:s),p=e*ea,g=(e-90)*ea,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,A=T-m,P=s+c-d*x-k+w+c*b,L=P+x,O=L-r*b,E=O-x,I=Math.min(C,S,T,A),D=Math.min(P,L,O,E),B=Math.max(C,S,T,A)-I,N=Math.max(P,L,O,E)-D;return{x:I,y:D,width:B,height:N,polygon:[[C,P],[S,L],[T,O],[A,E]]}}getStyle(t){return ed.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=el,this.element=\"div\"===e||\"body\"===e?X(e):en.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},q(this,\"afterInit\")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=N(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(th(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=tp(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},tc(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=ty(t):\"\"!==t&&(W(i=en.createElementNS(el,\"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;ep.symbolCustomAttribs.forEach(function(i){e[i]=tx(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]||en.createElementNS(this.SVG_NS,\"title\");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=tk(tx(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})`];j(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)+\")\"),(j(n)||j(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(j(t)?(i.setAttribute(\"data-z-index\",t),t*=1,this[e]===t&&(p=!1)):j(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=!j(l=(h=n[g]).getAttribute(\"data-z-index\")),h!==i&&(j(t)&&t<0&&c&&!a&&!g?(r.insertBefore(i,n[g]),d=!0):(j(t)&&parseFloat(l||\"\")<=t||c&&(!j(t)||t>=0))&&(r.insertBefore(i,n[g+1]),d=!0));d||(r.insertBefore(i,n[3*!!a]),d=!0)}return d}}ep.symbolCustomAttribs=[\"anchorX\",\"anchorY\",\"clockwise\",\"end\",\"height\",\"innerR\",\"r\",\"start\",\"width\",\"x\",\"y\"],ep.prototype.strokeSetter=ep.prototype.fillSetter,ep.prototype.yGetter=ep.prototype.xGetter,ep.prototype.matrixSetter=ep.prototype.rotationOriginXSetter=ep.prototype.rotationOriginYSetter=ep.prototype.rotationSetter=ep.prototype.scaleXSetter=ep.prototype.scaleYSetter=ep.prototype.translateXSetter=ep.prototype.translateYSetter=ep.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let eg=ep,{charts:eu}=E,ef=[\"#2caffe\",\"#544fc5\",\"#00e272\",\"#fe6a35\",\"#6b8abc\",\"#d568fb\",\"#2ee0ca\",\"#fa4b42\",\"#feb56a\",\"#91e8e1\"],em=[null,\"#00e272\",\"#efdf00\"];class ex{constructor(t,e){this.defaultOptions=I,this.options=tp(I),this.cssVars={light:{},dark:{}},this.renderer=t,this.update(e)}injectCSS(t){let e,i,s,{cssVars:o,renderer:r}=this,a=Object.keys(U(t,this.defaultOptions)).length>0,n=Math.max(t.colors?.length||0,ef.length),h=\"light\",l=(t,e)=>{th(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 t$(i?.neutralColor||\"\"),a=new t$(i?.backgroundColor||\"\"),d=new t$(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?em:[])?.[s]||ef[s]||\"#888a\",`color${s}`);tu(i,l),tu(s,l),\"light\"===e&&_(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 tu(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=eu?.[this.renderer.chartIndex];t=tp(!0,this.options,t),i&&(i.options.palette=t),!1!==t.injectCSS&&this.injectCSS(t),e&&(th(t.colorScheme)&&[\"light\",\"dark\",\"inherit\"].includes(t.colorScheme)?e.style.colorScheme=t.colorScheme:e.style.removeProperty(\"color-scheme\"))}}class ey extends eg{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=ey.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=J(t);this.textAlign=t,e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&tn(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=tp(t),ey.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 eg.prototype.css.call(this,t)}destroy(){tw(this.element,\"mouseenter\"),tw(this.element,\"mouseleave\"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),eg.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=tx(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:tx(this.textStr,\"\"),x:this.x||0,y:this.y||0}),this.box&&j(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){tn(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=(!tn(this.widthSetting)||!tn(this.heightSetting)||this.textAlign)&&j(e.textStr)?e.getBBox(void 0,0):ey.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(_(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)+J(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=tn(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=tx(this.paddingLeft,t),i=tx(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 eb(t,e,i,s,o){let r=[];if(o){let a=o.start||0,n=o.end||0,h=tx(o.r,i),l=tx(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=tx(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=tx(o.longArc,n-a-Math.PI<1e-4?0:1),y=[\"A\",h,l,0,x,tx(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),j(c)&&((y=[\"A\",c,c,0,x,j(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 ev(t,e,i,s,o){return o?.r?ek(t,e,i,s,o):[[\"M\",t,e],[\"L\",t+i,e],[\"L\",t+i,e+s],[\"L\",t,e+s],[\"Z\"]]}function ek(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\"]]}ey.emptyBBox={width:0,height:0,x:0,y:0},ey.textProps=[\"color\",\"direction\",\"fontFamily\",\"fontSize\",\"fontStyle\",\"fontWeight\",\"lineClamp\",\"lineHeight\",\"textAlign\",\"textDecoration\",\"textOutline\",\"textOverflow\",\"whiteSpace\",\"width\"];let ew={arc:eb,callout:function(t,e,i,s,o){let r=Math.min(o?.r||0,i,s),a=r+6,n=o?.anchorX,h=o?.anchorY||0,l=ek(t,e,i,s,{r});if(!tn(n)||n<i&&n>0&&h<s&&h>0)return l;if(t+n>i-a)if(h>e+a&&h<e+s-a)l.splice(3,1,[\"L\",t+i,h-6],[\"L\",t+i+6,h],[\"L\",t+i,h+6],[\"L\",t+i,e+s-r]);else if(n<i){let o=h<e+a,d=o?e:e+s;l.splice(o?2:5,0,[\"L\",n,h],[\"L\",t+i-r,d])}else l.splice(3,1,[\"L\",t+i,s/2],[\"L\",n,h],[\"L\",t+i,s/2],[\"L\",t+i,e+s-r]);else if(t+n<a)if(h>e+a&&h<e+s-a)l.splice(7,1,[\"L\",t,h+6],[\"L\",t-6,h],[\"L\",t,h-6],[\"L\",t,e+r]);else if(n>0){let i=h<e+a,o=i?e:e+s;l.splice(i?1:6,0,[\"L\",n,h],[\"L\",t+r,o])}else l.splice(7,1,[\"L\",t,s/2],[\"L\",n,h],[\"L\",t,s/2],[\"L\",t,e+r]);else h>s&&n<i-a?l.splice(5,1,[\"L\",n+6,e+s],[\"L\",n,e+s+6],[\"L\",n-6,e+s],[\"L\",t+r,e+s]):h<0&&n>a&&l.splice(1,1,[\"L\",n-6,e],[\"L\",n,e-6],[\"L\",n+6,e],[\"L\",i-r,e]);return l},circle:function(t,e,i,s){return eb(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:ev,roundedRect:ek,square:ev,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:eM,SVG_NS:eC,win:eS}=E,eT=(t,e)=>t.substring(0,e)+\"\u2026\",eA=class{constructor(t){const 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=tx(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 t5(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(eM.createTextNode(this.unescapeEntities(s)));th(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t,e=this.svgElement,i=W(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)),W(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?.replace(\"\u2026\",\"\")+\"\u2026\");break}n.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(eM.createTextNode(e),t);let s=eM.createElementNS(eC,\"tspan\");s.textContent=\"\u200B\",W(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===eS.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===eS.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\"),_(i,{attributes:o,style:a}),r&&r.filter(t=>\"#text\"!==t.tagName).forEach(e)};t.forEach(e),q(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 tu(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,\"g\"),s))}),t}},{defaultOptions:eP}=tX,{charts:eL,deg2rad:eO,doc:eE,isFirefox:eI,isMS:eD,isWebKit:eB,noop:eN,SVG_NS:ez,symbolSizes:eR,win:eW}=E;class eH{constructor(t,e,i,s,o,r,a,n,h){let l,d;this.x=0,this.y=0;const c=this.createElement(\"svg\").attr({version:\"1.1\",class:\"highcharts-root\"}),p=c.element;t.appendChild(p),W(t,\"dir\",\"ltr\"),-1===t.innerHTML.indexOf(\"xmlns\")&&W(p,\"xmlns\",this.SVG_NS),this.box=p,this.boxWrapper=c,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement(\"desc\").add().element.appendChild(eE.createTextNode(\"Created with Highcharts 13.0.0\")),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=c.getStyle(\"font-size\"),this.setSize(e,i,!1),a||(c.css(this.getStyle(s||{})),this.palette=new ex(this,n||eP.palette)),eI&&t.getBoundingClientRect&&((l=function(){Y(t,{left:0,top:0}),d=t.getBoundingClientRect(),Y(t,{left:Math.ceil(d.left)-d.left+\"px\",top:Math.ceil(d.top)-d.top+\"px\"})})(),this.unSubPixelFix=N(eW,\"resize\",l))}definition(t){return new t5([t]).addToDOM(this.defs.element)}getReferenceURL(){if((eI||eB)&&eE.getElementsByTagName(\"base\").length){if(!j(e)){let t=tI(),i=new t5([{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(eE.body);Y(i,{position:\"fixed\",top:0,left:0,zIndex:9e5});let s=eE.elementFromPoint(6,6);e=s?.id===\"hitme\",eE.body.removeChild(i)}if(e)return tk(eW.location.href.split(\"#\")[0],[/<[^>]*>/g,\"\"],[/([\\('\\)])/g,\"\\\\$1\"],[/ /g,\"%20\"])}return\"\"}getStyle(t){return this.style=_({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(),$(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=tp({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 eA(t).buildSVG()}getContrast(t){if(\"transparent\"===t)return\"#000000\";let e=t$.parse(t).rgba,i=\" clamp(0,calc(9e9*(0.5 - (0.2126*r + 0.7152*g + 0.0722*b))),1)\";if(tn(e[0])||!t$.useColorMix){let t=e.map(t=>{let e=t/255;return e<=.04?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*t[0]+.7152*t[1]+.0722*t[2];return 1.05/(i+.05)>(i+.05)/.05?\"#FFFFFF\":\"#000000\"}return\"color(from \"+t+\" srgb\"+i+i+i+\")\"}button(t,e,i,s,o={},r,a,n,h,l){let d=this.label(t,e,i,h,void 0,void 0,l,void 0,\"button\"),c=this.styledMode,p=arguments,g=0;o=tp(eP.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o[\"stroke-width\"]);let u=o.states||{},f=o.style||{};delete o.states,delete o.style;let m=[t5.filterUserAttributes(o)],x=[f];return c||[\"hover\",\"select\",\"disabled\"].forEach((t,e)=>{m.push(tp(m[0],t5.filterUserAttributes(p[e+5]||u[t]||{}))),x.push(m[e+1].style),delete m[e+1].style}),N(d.element,eD?\"mouseover\":\"mouseenter\",function(){3!==g&&d.setState(1)}),N(d.element,eD?\"mouseout\":\"mouseleave\",function(){3!==g&&d.setState(g)}),d.setState=(t=0)=>{if(1!==t&&(d.state=g=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\"+[\"normal\",\"hover\",\"pressed\",\"disabled\"][t]),!c){d.attr(m[t]);let e=x[t];tc(e)&&d.css(e)}},d.attr(m[0]),!c&&(d.css(_({cursor:\"default\"},f)),l&&d.text.css({pointerEvents:\"none\"})),d.on(\"touchstart\",t=>t.stopPropagation()).on(\"click\",function(t){3!==g&&s?.call(d,t)})}crispLine(t,e){let[i,s]=t;return j(i[1])&&i[1]===s[1]&&(i[1]=s[1]=F(i[1],e)),j(i[2])&&i[2]===s[2]&&(i[2]=s[2]=F(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:\"none\"};return tl(t)?e.d=t:tc(t)&&_(e,t),this.createElement(\"path\").attr(e)}circle(t,e,i){let s=tc(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;tc(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=tc(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,_(a,n.crisp(a))),a.fill=\"none\"),n.rSetter=function(t,e,i){n.r=t,W(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:tx(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\"};tn(e)&&(a.x=e),tn(i)&&(a.y=i),tn(s)&&(a.width=s),tn(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 eW.Image;N(e,\"load\",h),e.src=t,e.complete&&h({})}else n.attr({href:t});return n}symbol(t,e,i,s,o,r){let a,n,h,l,d=this,c=/^url\\((.*?)\\)$/,p=c.test(t),g=!p&&(this.symbols[t]?t:\"circle\"),u=g&&this.symbols[g];if(u)\"number\"==typeof e&&(n=u.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),d.styledMode||a.attr(\"fill\",\"none\"),_(a,{symbolName:g||void 0,x:e,y:i,width:s,height:o}),r&&_(a,r);else if(p){h=t.match(c)[1];let s=a=this.image(h);s.imgwidth=tx(r?.width,eR[h]?.width),s.imgheight=tx(r?.height,eR[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),W(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)}}),j(e)&&s.attr({x:e,y:i}),s.isImg=!0,j(s.imgwidth)&&j(s.imgheight)?l(s):(s.attr({width:0,height:0}),X(\"img\",{onload:function(){let t=eL[d.chartIndex];0===this.width&&(Y(this,{position:\"absolute\",top:\"-999em\"}),eE.body.appendChild(this)),eR[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)),j(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=tn(t)?t:ty(eg.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++)th(i[0])&&tn(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 ey(this,t,e,i,s,o,r,a,n,h)}alignElements(){this.alignedObjects.forEach(t=>t.align())}}_(eH.prototype,{Element:eg,SVG_NS:ez,escapes:{\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",\"'\":\"&#39;\",'\"':\"&quot;\"},symbols:ew,draw:eN}),E.Renderer=eH;let{composed:eG,isFirefox:eX}=E;class eF extends eg{static compose(t){tb(eG,\"HTMLElement\")&&(t.prototype.html=function(t,e,i){return new eF(this,\"div\").attr({text:t,x:Math.round(e),y:Math.round(i)})})}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=ty(o)||void 0,e=!0),t?.textOverflow===\"ellipsis\"&&(t.overflow=\"hidden\",t.whiteSpace=\"nowrap\"),t?.lineClamp?(t.display=\"-webkit-box\",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient=\"vertical\",t.overflow=\"hidden\"):t?.lineClamp===0&&(t.display=\"inline-block\"),tn(Number(t?.fontSize))&&(t.fontSize+=\"px\"),_(this.styles,t),Y(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:(Y(e,{width:\"\",whiteSpace:h||\"nowrap\"}),e.offsetWidth),u=[r,l,e.innerHTML,d,this.textAlign].join(\",\");if(Y(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)&&(Y(e,{width:(r||a||t>i)&&tn(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(!j(r)&&!this.textWidth&&this.textPxLength||e.offsetWidth,t,J(l))),super.updateTransform(),tn(c)&&tn(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\"}),Y(e,{display:n,textAlign:l})):eX&&i.attr({width:0,height:0}),this.cTT=u}add(t){let{foreignObject:e,renderer:i}=this;return e.add(t),super.add(i.createElement(\"body\").attr({xmlns:\"http://www.w3.org/1999/xhtml\"}).css({background:\"transparent\",margin:\"0 3px 0 0\"}).add(e)),this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.oldTextWidth,t5.setElementHTML(this.element,t??\"\"),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let eY=eF.prototype;eY.ySetter=eY.xSetter,(a=f||(f={})).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,distance:15,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)\"},a.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 ej=f;(m||(m={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},tu(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(tw(t,i,t.eventOptions[i]),delete t.eventOptions[i]),td(e)&&(t.eventOptions[i]=e,N(t,i,e,{order:0})))})};let e$=m,{deg2rad:eV}=E,eU=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,q(this,\"init\"),i||s||this.addLabel()}addLabel(){let t=this,e=t.axis,i=e.options,s=e.chart,o=e.categories,r=e.logarithmic,a=e.names,n=t.pos,h=tx(t.options?.labels,i.labels),l=e.tickPositions,d=n===l[0],c=n===l[l.length-1],p=l.info,g=p?.boundaryTicks[n],u=i.dateTimeLabelFormats,f=t.label,m,x,y,b=this.parameters.category||(o?tx(o[n],a[n],n):n);if(r&&tn(b)&&(b=G(r.lin2log(b))),e.dateTime&&u)if(p){let t=p.unitName,e={millisecond:\"hour\",second:\"hour\",minute:\"hour\",hour:\"day\",day:\"month\",week:\"month\",month:\"year\",year:\"year\"}[t],o=!i.grid?.enabled&&g&&e&&u[e]?.boundary||u[t];m=(x=s.time.resolveDTLFormat(o)).main}else tn(b)&&(m=e.dateTime.getXDateFormat(b,u||{}));t.isFirst=d,t.isLast=c,t.boundary=g;let v={axis:e,chart:s,dateTimeLabelFormat:m,boundary:g,isFirst:d,isLast:c,pos:n,tick:t,tickPositionInfo:p,value:b};q(this,\"labelFormat\",v);let k=t=>h.formatter?h.formatter.call(t,t):h.format?(t.text=e.defaultLabelFormatter.call(t),ee.format(h.format,t,s)):e.defaultLabelFormatter.call(t),w=k.call(v,v),M=x?.list;M?t.shortenLabel=function(){for(y=0;y<M.length;y++)if(_(v,{dateTimeLabelFormat:M[y]}),f.attr({text:k.call(v,v)}),f.getBBox().width<e.getSlotWidth(t)-2*(h.padding||0))return;f.attr({text:\"\"})}:t.shortenLabel=void 0,f?f.textStr!==w&&(!f.textWidth||h.style.width||f.styles.width||f.css({width:void 0}),f.attr({text:w}),f.textPxLength=f.getBBox().width):(t.label=f=t.createLabel(w,h),t.rotation=0)}createLabel(t,e,i){let s=this.axis,{renderer:o,styledMode:r}=s.chart,a=e.style.whiteSpace,n=j(t)&&e.enabled?o.text(t,i?.x,i?.y,e.useHTML).add(s.labelGroup):void 0;return n&&(r||n.css(tp(e.style)),n.textPxLength=n.getBBox().width,!r&&a&&n.css({whiteSpace:a})),n}destroy(){$(this,this.axis)}getPosition(t,e,i,s){let o=this.axis,r=o.chart,a=s&&r.oldChartHeight||r.chartHeight,n={x:t?G(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):G(a-o.translate(e+i,void 0,void 0,s)-o.transB)};return n.y=H(n.y,-1e9,1e9),q(this,\"afterGetPosition\",{pos:n}),n}getLabelPosition(t,e,i,s,o,r,a,n){let h,l,d=this.axis,c=d.transA,p=d.isLinked&&d.linkedParent?d.linkedParent.reversed:d.reversed,g=d.staggerLines,u=d.tickRotCorr||{x:0,y:0},f=s||d.reserveSpaceDefault?0:-d.labelOffset*(\"center\"===d.labelAlign?.5:1),m=o.distance,x={};return h=0===d.side?i.rotation?-m:-i.getBBox().height:2===d.side?u.y+m:Math.cos(i.rotation*eV)*(u.y-i.getBBox(!1,0).height/2),j(o.y)&&(h=0===d.side&&d.horiz?o.y+h:o.y),t=t+tx(o.x,[0,1,0,-1][d.side]*m)+f+u.x-(r&&s?r*c*(p?-1:1):0),e=e+h-(r&&!s?r*c*(p?1:-1):0),g&&(l=a/(n||1)%g,d.opposite&&(l=g-l-1),e+=l*(d.labelOffset/g)),x.x=t,x.y=Math.round(e),q(this,\"afterGetLabelPosition\",{pos:x,tickmarkOffset:r,index:a}),x}getLabelSize(){return this.label?this.label.getBBox()[this.axis.horiz?\"height\":\"width\"]:0}getMarkPath(t,e,i,s,o=!1,r){return r.crispLine([[\"M\",t,e],[\"L\",t+(o?0:-i),e+(o?i:0)]],s)}handleOverflow(t){let e=this.axis,i=e.options.labels,s=t.x,o=e.chart.chartWidth,r=e.chart.spacing,a=tx(e.labelLeft,Math.min(e.pos,r[3])),n=tx(e.labelRight,Math.max(e.isRadial?0:e.pos+e.len,o-r[1])),h=this.label,l=this.rotation,d=J(e.labelAlign||h.attr(\"align\")),c=h.getBBox().width,p=e.getSlotWidth(this),g=p,u=1,f;l||\"justify\"!==i.overflow?l<0&&s-d*c<a?f=Math.round(s/Math.cos(l*eV)-a):l>0&&s+d*c>n&&(f=Math.round((o-s)/Math.cos(l*eV))):(s-d*c<a?g=t.x+g*(1-d)-a:s+(1-d)*c>n&&(g=n-t.x+g*d,u=-1),(g=Math.min(p,g))<p&&\"center\"===e.labelAlign&&(t.x+=u*(p-g-d*(p-Math.min(c,g)))),(c>g||e.autoRotation&&h?.styles?.width)&&(f=g)),f&&h&&(this.shortenLabel?this.shortenLabel():h.css(_({},{width:Math.floor(f)+\"px\",lineClamp:+!e.isRadial})))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,a=tx(this.tickmarkOffset,s.tickmarkOffset),n=this.getPosition(o,r,a,e),h=n.x,l=n.y,d=s.pos,c=d+s.len,p=o?h:l,g=tx(i,this.label?.newOpacity,1);!s.chart.polar&&(G(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,q(this,\"afterRender\")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,a=this.type,n=tx(this.tickmarkOffset,i.tickmarkOffset),h=i.chart.renderer,l=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,g=s.gridLineDashStyle;\"minor\"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,g=s.minorGridLineDashStyle),l||(i.chart.styledMode||(o.stroke=p,o[\"stroke-width\"]=c||0,o.dashstyle=g),a||(o.zIndex=1),t&&(e=0),this.gridLine=l=h.path().attr(o).addClass(\"highcharts-\"+(a?a+\"-\":\"\")+\"grid-line\").add(i.gridGroup)),l&&(d=i.getPlotLinePath({value:r+n,lineWidth:l.strokeWidth(),force:\"pass\",old:t,acrossPanes:!1}))&&l[t||this.isNew?\"attr\":\"animate\"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,a=i.tickSize(r?r+\"Tick\":\"tick\"),n=t.x,h=t.y,l=tx(s[\"minor\"!==r?\"tickWidth\":\"minorTickWidth\"],!r&&i.isXAxis?1:0),d=s[\"minor\"!==r?\"tickColor\":\"minorTickColor\"],c=this.mark,p=!c;a&&(i.opposite&&(a[0]=-a[0]),!c&&(this.mark=c=o.path().addClass(\"highcharts-\"+(r?r+\"-\":\"\")+\"tick\").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,\"stroke-width\":l})),c[p?\"attr\":\"animate\"]({d:this.getMarkPath(n,h,a[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,a=o.options,n=this.label,h=a.labels,l=h.step,d=tx(this.tickmarkOffset,o.tickmarkOffset),c=t.x,p=t.y,g=!0;n&&tn(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&&tn(t.y)?(t.opacity=i,n[this.isNewLabel?\"attr\":\"animate\"](t).show(!0),this.isNewLabel=!1):(n.hide(),this.isNewLabel=!0))}},{animObject:eZ}=tq,{xAxis:e_,yAxis:eK}=ej,{parse:eq}=t$,{defaultOptions:eJ}=tX,{registerEventOptions:eQ}=e$,{deg2rad:e0}=E,e1=(t,e)=>tg(e,void 0,void 0,tx(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);_(eJ,{xAxis:e_,yAxis:tp(e_,eK)});class e2{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,q(this,\"init\",{userOptions:e}),this.opposite=tx(e.opposite,this.opposite),this.side=tx(e.side,this.side,o?2*!this.opposite:this.opposite?1:3),this.setOptions(e);let r=this.options,a=r.labels;this.type??(this.type=r.type||\"linear\"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),q(this,\"afterSetType\"),this.userOptions=e,this.minPixelPadding=0,this.reversed=tx(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames=\"category\"===this.type||!0===r.categories,this.categories=tl(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[]),this.namesMap||(this.namesMap={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=j(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.max=void 0,this.min=void 0;let n=tx(r.crosshair,tM(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),tO(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!j(this.reversed)&&(this.reversed=!0),this.labelRotation=tn(a.rotation)?a.rotation:void 0,eQ(this,r),q(this,\"afterInit\")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=tp(e,\"yAxis\"===this.coll?{title:{text:this.chart.options.lang.yAxisTitle}}:{},eJ[this.coll],t),q(this,\"afterSetOptions\",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,e=this.chart,{numberFormatter:i}=e,s=tn(this.value)?this.value:NaN,o=t.chart.time,r=t.categories,a=this.dateTimeLabelFormat,n=eJ.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;q(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,tn(a)||a instanceof Date||(o=o.filter(tn),a=(t=i.getXExtremes(o)).min,n=t.max),o.length&&(e.dataMin=Math.min(tx(e.dataMin,a),a),e.dataMax=Math.max(tx(e.dataMax,n),n)));else{let t=i.applyExtremes();tn(t.dataMin)&&(a=t.dataMin,e.dataMin=Math.min(tx(e.dataMin,a),a)),tn(t.dataMax)&&(n=t.dataMax,e.dataMax=Math.max(tx(e.dataMax,n),n)),j(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),q(this,\"afterGetSeriesExtremes\")}translate(t,e,i,s,o,r){let a=this.linkedParent||this,n=s&&a.old?a.old.min:a.min;if(!tn(n))return NaN;let h=a.minPixelPadding,l=(a.isOrdinal||a.brokenAxis?.hasBreaks||a.logarithmic&&o)&&!!a.lin2val,d=1,c=0,p=s&&a.old?a.old.transA:a.transA,g=0;return p||(p=a.transA),i&&(d*=-1,c=a.len),a.reversed&&(d*=-1,c-=d*(a.sector||a.len)),e?(g=(t=t*d+c-h)/p+n,l&&(g=a.lin2val(g))):(l&&(t=a.val2lin(t)),g=d*(t-n)*p+c+d*h+(tn(r)?p*r:0),a.isRadial||(g=G(g))),g}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,o=e.top,r=t.old,a=t.value,n=t.lineWidth,h=r&&i.oldChartHeight||i.chartHeight,l=r&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,g,u,f,m,x;function y(t,e,i){return\"pass\"!==p&&(t<e||t>i)&&(p?t=H(t,e,i):x=!0),t}let b={value:a,lineWidth:n,old:r,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return q(this,\"getPlotLinePath\",b,function(t){g=f=(c=H(c=tx(c,e.translate(a,void 0,void 0,r)),-1e9,1e9))+d,u=m=h-c-d,tn(c)?e.horiz?(u=o,m=h-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),g=f=y(g,s,s+e.width)):(g=s,f=l-e.right+(i.scrollablePixelsX||0),u=m=y(u,o,o+e.height)):(x=!0,p=!1),t.path=x&&!p?void 0:i.renderer.crispLine([[\"M\",g,u],[\"L\",f,m]],n||1)}),b.path}getLinearTickPositions(t,e,i){let s,o,r,a=G(Math.floor(e/t)*t),n=G(Math.ceil(i/t)*t),h=[];if(G(a+t)===a&&(r=20),this.single)return[e];for(s=a;s<=n&&(h.push(s),(s=G(s+t,r))!==o);)o=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?tx(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=j(t.min)||j(t.max)||j(t.floor)||j(t.ceiling)?null:Math.min(5*(Q(this.series.map(t=>{let e=t.getColumn(\"x\");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),tn(s)&&tn(o)&&tn(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=R(h))+r,i.parse(t.max)??o+r],n&&(l[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=z(l))-o<r&&(h[0]=s-r,h[1]=i.parse(t.min)??s-r,o=R(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&&j(s)&&t.reserveSpace()&&(e=j(e)?Math.min(e,s):s)}),i.length&&(i.sort((t,e)=>t-e),t=Q([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t,e){let i,s=tl(this.options.categories),{name:o,series:r}=t,a=s?this.categories:this.names,n=this.namesMap;return r.requireSorting=!1,j(e)||(e=this.uniqueNames&&a?s?a.indexOf(o):n[o]??-1:r.autoIncrement()),-1===e?!s&&a&&(i=a.length):tn(e)&&(i=e),void 0!==i?(this.names[i]=t.name,n[t.name]=i):i=tn(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?tx(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&&th(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,q(this,\"afterSetAxisTranslation\")}minFromRange(){let{max:t,min:e}=this;return tn(t)&&tn(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=tn(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:g,floor:u,linkedTo:f,softMax:m,softMin:x}=h,y=tn(f)&&i[this.coll]?.[f],b=h.tickPixelInterval,v=h.maxPadding,k=h.minPadding,w=0,M,C=tn(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,S,T,A,P;if(r||e||y||this.getTickAmount(),A=tx(this.userMin,d.parse(h.min)),P=tx(this.userMax,d.parse(h.max)),y?(this.linkedParent=y,M=y.getExtremes(),this.min=tx(M.min,M.dataMin),this.max=tx(M.max,M.dataMax),this.type!==y.type&&tL(11,!0,i)):(l&&j(c)&&tn(s)&&tn(o)&&(o>=c?(S=c,k=0):s<=c&&(T=c,v=0)),this.min=tx(A,S,o),this.max=tx(P,T,s)),tn(this.max)&&tn(this.min)&&(n&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,tx(o,this.min))&&tL(10,!0,i),this.min=G(n.log2lin(this.min),16),this.max=G(n.log2lin(this.max),16)),this.range&&tn(o)&&(this.userMin=this.min=A=Math.max(o,this.minFromRange()||0),this.userMax=P=this.max,this.range=void 0)),q(this,\"foundExtremes\"),this.adjustForMinRange(),tn(this.min)&&tn(this.max)){if(!tn(this.userMin)&&tn(x)&&x<this.min&&(this.min=A=x),!tn(this.userMax)&&tn(m)&&m>this.max&&(this.max=P=m),e||this.axisPointRange||this.stacking?.usePercentage||y||(w=this.max-this.min)&&(!j(A)&&k&&(this.min-=w*k),!j(P)&&v&&(this.max+=w*v)),!tn(this.userMin)&&tn(u)&&(this.min=Math.max(this.min,u)),!tn(this.userMax)&&tn(g)&&(this.max=Math.min(this.max,g)),l&&tn(o)&&tn(s)){let t=c||0;!j(A)&&this.min<t&&o>=t?this.min=h.minRange?Math.min(t,this.max-p):t:!j(P)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(j(h.min)?this.max=this.min:j(h.max)&&(this.min=this.max)),w=this.max-this.min}if(this.min!==this.max&&tn(this.min)&&tn(this.max)?y&&!C&&b===y.options.tickPixelInterval?this.tickInterval=C=y.tickInterval:this.tickInterval=tx(C,this.tickAmount?w/Math.max(this.tickAmount-1,1):void 0,e?1:w*b/Math.max(this.len,b)):this.tickInterval=1,a&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),q(this,\"postProcessData\",{hasExtremesChanged:t})}this.setAxisTranslation(),q(this,\"initialAxisTranslation\"),this.pointRange&&!C&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let L=tx(h.minTickInterval,r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!C&&L&&this.tickInterval<L&&(this.tickInterval=L),r||n||C||(this.tickInterval=e1(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&&j(this.min)&&!this.tickAmount&&(this.min%1==0||!1!==t.allowDecimals),e)n=e.slice();else if(tn(this.min)&&tn(this.max)){if(!this.ordinal?.positions&&(this.max-this.min)/this.tickInterval>Math.max(2*this.len,200))n=[this.min,this.max],tL(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=e1(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.isLinked&&tn(this.min)&&tn(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()),q(this,\"afterSetTickPositions\")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(q(this,\"trimTicks\"),!this.isLinked||!this.grid){if(e&&tn(s))this.min=s;else if(t.length)for(;this.min-r>t[0];)t.shift();if(i&&tn(o))this.max=o;else for(;this.max+r<t[t.length-1];)t.pop();0===t.length&&j(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);tn(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((!tn(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData||t.xAxis?.isDirty))&&this.getSeriesExtremes(),tn(this.threshold)){let t=H((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;j(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=tx(t.threshold,t.softThreshold?0:null),d,c,p=t.tickInterval,g,u=()=>r.push(G(r[r.length-1]+p)),f=()=>r.unshift(G(r[0]-p));if(tn(n)&&(g=0===n?0:1===n?a-1:Math.round(H(n*(a-1),1,a-2)),o.reversed&&(g=a-1-g)),t.hasData()&&tn(s)&&tn(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(tn(g)&&tn(t.threshold)){for(;r[g]!==l||r.length!==a||r[0]>s||r[r.length-1]<i;){for(r.length=0,r.push(t.threshold);r.length<a;)void 0===r[g]||r[g]>t.threshold?f():u();if(p>8*t.tickInterval)break;p*=2}n()}else if(h<a){for(;r.length<a;)r.length%2||s===l?u():f();n()}if(j(e)){for(c=d=r.length;c--;)(3===e&&c%2==1||e<=2&&c>0&&c<d-1)&&r.splice(c,1);t.finalTickAmt=void 0}}}setScale(){let{coll:t,stacking:e}=this,i=!1,s=!1;this.series.forEach(t=>{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis?.isDirty||!1}),this.setAxisSize();let o=this.len!==this.old?.len;o||i||s||this.isLinked||this.forceRedraw||this.userMin!==this.old?.userMin||this.userMax!==this.old?.userMax||this.alignToOthers()?(e&&\"yAxis\"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&\"xAxis\"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,q(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),q(this,\"setExtremes\",o=_(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(tv(tx(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),r=this.height=Math.round(tv(tx(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),a=this.top=Math.round(tv(tx(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),n=this.left=Math.round(tv(tx(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?G(t.lin2log(this.min)):this.min,max:t?G(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s<t&&(t=s),this.translate(t,0,1,0,1)}autoLabelAlign(t){let e=((t-90*this.side)%360+360)%360,i={align:\"center\"};return q(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=tx(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 q(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=G(.8*this.labelMetrics().h),n=Math.max(this.max-this.min,0),h=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>n&&t!==1/0&&o!==1/0&&n&&(i=Math.ceil(n/s)),G(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(tn(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(e0*i))))+Math.abs(i/360))<c&&(c=e,d=i,l=t)}}else l=h(.75*a);return this.autoRotation=p,this.labelRotation=tx(d,tn(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&&tn(t.slotWidth))return t.slotWidth;if(i&&s.step<2&&!this.isRadial)return s.rotation?0:(this.staggerLines||1)*this.len/o;if(!i){let t=s.style.width;if(void 0!==t)return parseInt(String(t),10);if(!this.opposite&&r)return r-e.spacing[3]}return .33*e.chartWidth}renderUnsquish(){let t=this.chart,e=t.renderer,i=this.tickPositions,s=this.ticks,o=this.options.labels,r=o.style,a=this.horiz,n=this.getSlotWidth(),h=Math.max(1,Math.round(n-(a?2*(o.padding||0):o.distance||0))),l={},d=this.labelMetrics(),c=r.lineClamp,p,g=c??(Math.floor(this.len/(i.length*d.h))||1),u=0;th(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(_(a,{width:`${p}px`,lineClamp:g})):(i.styles.width||i.textWidth||i.styles.lineClamp)&&!a.width&&!o&&i.css({width:\"auto\",lineClamp:0}),e.rotation=l.rotation)},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&j(this.min)&&j(this.max)}addTitle(t){let e,i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,a=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:\"left\",middle:\"center\",high:\"right\"}:{low:o?\"right\":\"left\",middle:\"center\",high:o?\"left\":\"right\"})[r.align]),this.axisTitle=i.text(r.text||\"\",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass(\"highcharts-axis-title\"),a||this.axisTitle.css(tp(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),a||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+\"px\"}),this.axisTitle[t?\"show\":\"hide\"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new eU(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,a)=>o.g(e).attr({zIndex:a}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:\"\")+(s.className||\"\")).add(t);this.axisGroup||(this.gridGroup=r(\"grid\",\"-grid\",s.gridZIndex).clip(this.clippable?e.plotClipInner:void 0),this.axisGroup=r(\"axis\",\"\",s.zIndex),this.labelGroup=r(\"axis-labels\",\"-labels\",s.labels.zIndex))}shuffleTicks(){let t=this.ticks,e=this.old?.names;if(\"category\"===this.type&&e){e.forEach((i,s)=>{let o=this.namesMap[i];j(o)&&s!==o&&(t[s]&&(t[s].pos=o,this.isDirty=!0),t[o]&&-1===this.names.indexOf(e[o])&&(t[o].pos=NaN))});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=tn(i.crossing),c=t.axisOffset,p=t.clipOffset,g=[-1,1,1,-1][s],u=this.tickRotCorr||{x:0,y:0},f=0,m,x=0,y,b=0,v=0,k,w,M;if(this.showAxis=m=n||i.showEmpty,this.staggerLines=this.horiz&&l.staggerLines||void 0,this.createGroups(),n||this.isLinked?(this.shuffleTicks(),r.forEach(this.generateTick.bind(this)),this.renderUnsquish(),f=Math.abs((u=this.tickRotCorr).x),M=this.reserveSpaceDefault=0===s||2===s||({1:\"left\",3:\"right\"})[s]===this.labelAlign,(l.reserveSpace??(!d&&null)??(\"center\"===this.labelAlign||null)??M)&&r.forEach(function(t){v=Math.max(o[t].getLabelSize(),v)}),this.staggerLines&&(v*=this.staggerLines),!e&&tn(this.labelRotation)&&M&&(v-=f),this.labelOffset=v*(this.opposite?-1:1)):tu(o,function(t,e){t.destroy(),delete o[e]}),h?.text&&!1!==h.enabled&&(this.addTitle(m),m&&!d&&!1!==h.reserveSpace&&(this.titleOffset=x=this.axisTitle.getBBox()[e?\"height\":\"width\"],b=j(y=h.offset)?0:tx(h.margin,e?5:10))),this.renderLine(),this.offset=g*(tn(i.offset)?i.offset:c[s]?c[s]+(i.margin||0):0),w=0===s?-this.labelMetrics().h:2===s?u.y:0,k=Math.abs(v)+b,v&&(k-=w,k+=g*(e?l.y??u.y+g*l.distance:l.x??(M?g*(l.distance-f):u.x+g*l.distance)),!e&&!M&&\"center\"===this.labelAlign&&tn(this.labelRotation)&&(k+=f)),this.axisTitleMargin=y??k,this.maxLabelDimensions=this.getMaxLabelDimensions?.(o,r),\"colorAxis\"!==a&&p){let t=this.tickSize(\"tick\");c[s]=Math.max(c[s],(this.axisTitleMargin||0)+x+g*this.offset,k,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)}q(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;this.axisLine||(this.axisLine=t.renderer.path().addClass(\"highcharts-axis-line\").attr(t.styledMode?{}:{stroke:i.lineColor,\"stroke-width\":i.lineWidth,zIndex:7}).clip(this.clippable&&e<=0?t.plotClipOuter:void 0).add(this.axisGroup))}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 q(this,\"afterGetTitlePosition\",{titlePosition:f}),f}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new eU(this,t,\"minor\")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid?.isColumn)&&(o[t]||(o[t]=new eU(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e,i=this,s=i.chart,o=i.logarithmic,r=s.renderer,a=i.options,n=i.isLinked,h=i.tickPositions,l=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,g=a.stackLabels,u=a.alternateGridColor,f=a.crossing,m=i.tickmarkOffset,x=i.axisLine,y=i.showAxis,b=eZ(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[d,c,p].forEach(function(t){tu(t,function(t){t.isActive=!1})}),tn(f)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(f,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||n){let r=i.chart.hasRendered&&i.old&&tn(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),h.length&&(h.forEach(function(t,e){i.renderTick(t,e,r)}),m&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new eU(i,-1,null,!0)),d[-1].render(-1))),u&&h.forEach(function(r,a){e=void 0!==h[a+1]?h[a+1]+m:i.max-m,a%2==0&&r<i.max&&e<=i.max+(s.polar?-m:m)&&(p[r]||(p[r]=new E.PlotLineOrBand(i,{})),t=r+m,p[r].options={from:o?o.lin2log(t):t,to:o?o.lin2log(e):e,color:u,className:\"highcharts-alternate-grid\"},p[r].render(),p[r].isActive=!0)}),i._addedPlotLB||(i._addedPlotLB=!0,(a.plotLines||[]).concat(a.plotBands||[]).forEach(function(t){i.addPlotBandOrLine(t)}))}[d,c,p].forEach(function(t){let e=[],i=b.duration;tu(t,function(t,i){t.isActive||(t.render(i,!1,0),t.isActive=!1,e.push(i))}),tS(function(){let i=e.length;for(;i--;)t[e[i]]&&!t[e[i]].isActive&&(t[e[i]].destroy(),delete t[e[i]])},t!==p&&s.hasRendered&&i?i:0)}),x&&(x[x.isPlaced?\"animate\":\"attr\"]({d:this.getLinePath(x.strokeWidth())}),x.isPlaced=!0,x[y?\"show\":\"hide\"](y)),l&&y&&(l[l.isNew?\"attr\":\"animate\"](i.getTitlePosition(l)),l.isNew=!1),g?.enabled&&i.stacking&&i.stacking.renderStackTotals(),this.old||this.saveOld(),i.isDirty=!1,q(this,\"afterRender\")}redraw(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(t){t.render()})),this.series.forEach(function(t){t.isDirty=!0})}saveOld(){this.old=tn(this.min)?{len:this.len,max:this.max,min:this.min,names:this.names.slice(),transA:this.transA,userMax:this.userMax,userMin:this.userMin}:void 0}getKeepProps(){return this.keepProps||e2.keepProps}destroy(t){let e=this,i=e.plotLinesAndBands,s=this.eventOptions;if(q(this,\"destroy\",{keepEvents:t}),t||tw(e),[e.ticks,e.minorTicks,e.alternateBands].forEach(function(t){$(t)}),i){let t=i.length;for(;t--;)i[t].destroy()}for(let t in[\"axisLine\",\"axisTitle\",\"axisGroup\",\"gridGroup\",\"labelGroup\",\"cross\",\"scrollbar\"].forEach(function(t){e[t]&&(e[t]=e[t].destroy())}),e.plotLinesAndBandsGroups)e.plotLinesAndBandsGroups[t]=e.plotLinesAndBandsGroups[t].destroy();tu(e,function(t,i){-1===e.getKeepProps().indexOf(i)&&delete e[i]}),this.eventOptions=s}drawCrosshair(t,e){let i,s,o,r,a=this.crosshair,n=a?.snap??!0,h=this.chart,l=this.cross;if(q(this,\"drawCrosshair\",{e:t,point:e}),t||(t=this.cross?.e),a&&!1!==(j(e)||!n)){if(clearTimeout(this.crossShowTimer),n?j(e)&&(s=tx(\"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),j(s)&&(r={value:e&&(this.isXAxis?e.x:tx(e.stackY,e.y)),translatedValue:s},h.polar&&_(r,{isCrosshair:!0,chartX:t?.chartX,chartY:t?.chartY,point:e}),i=this.getPlotLinePath(r)||null),!j(i))return void this.hideCrosshair();o=this.categories&&!this.isRadial,this.crossShowTimer=tS(()=>{let e=this.cross;e||(this.cross=e=h.renderer.path().addClass(\"highcharts-crosshair highcharts-crosshair-\"+(o?\"category \":\"thin \")+(a.className||\"\")).attr({zIndex:tx(a.zIndex,2)}).clip(!1===a.clip?void 0:h.plotClipInner).add(),!h.styledMode&&(e.attr({stroke:a.color||(o?eq(\"var(--highcharts-highlight-color-20)\").setOpacity(.25).get():\"var(--highcharts-neutral-color-20)\"),\"stroke-width\":tx(a.width,1)}).css({\"pointer-events\":\"none\"}),a.dashStyle&&e.attr({dashstyle:a.dashStyle}))),e.show().animate({d:i},eZ(a?.animation)),o&&!a.width&&e.attr({\"stroke-width\":this.transA}),this.cross&&(this.cross.e=t)},(!l||\"hidden\"===l.attr(\"visibility\"))&&a.showDelay||0)}else this.hideCrosshair();q(this,\"afterDrawCrosshair\",{e:t,point:e})}hideCrosshair(){clearTimeout(this.crossShowTimer),this.cross&&this.cross.hide(),q(this,\"afterHideCrosshair\")}update(t,e){let i=this.chart;t=tp(this.userOptions,t),this.destroy(!0),this.init(i,t),i.isDirtyBox=!0,tx(e,!0)&&i.redraw()}remove(t){let e=this.chart,i=this.coll,s=this.series,o=s.length;for(;o--;)s[o]&&s[o].remove(!1);Z(e.axes,this),Z(e[i]||[],this),e.orderItems(i),this.destroy(),e.isDirtyBox=!0,tx(t,!0)&&e.redraw()}setTitle(t,e){this.update({title:t},e)}setCategories(t,e){this.update({categories:t},e)}}e2.keepProps=[\"coll\",\"extKey\",\"hcEvents\",\"len\",\"names\",\"series\",\"userMax\",\"userMin\"],!function(t){function e(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function i(){if(\"datetime\"!==this.type){this.dateTime=void 0;return}this.dateTime||(this.dateTime=new s(this))}t.compose=function(t){return t.keepProps.includes(\"dateTime\")||(t.keepProps.push(\"dateTime\"),t.prototype.getTimeTicks=e,N(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=tE[s[0]],r=s[1],a,n;for(a=0;a<i.length;a++)if(o=tE[(s=i[a])[0]],r=s[1],i[a+1]){let e=(o*r[r.length-1]+tE[i[a+1][0]])/2;if(t<=e){n=e/t;break}}o===tE.year&&t<5*o&&(r=[1,2,5]);let h=tg(t/o,r,\"year\"===s[0]?Math.max(tt(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}(x||(x={}));let e5=x;!function(t){function e(){\"logarithmic\"!==this.type?this.logarithmic=void 0:this.logarithmic??(this.logarithmic=new s(this))}function i(){let t=this.logarithmic;t&&(this.lin2val=function(e){return t.lin2log(e)},this.val2lin=function(e){return t.log2lin(e)})}t.compose=function(t){return t.keepProps.includes(\"logarithmic\")||(t.keepProps.push(\"logarithmic\"),N(t,\"afterSetType\",e),N(t,\"afterInit\",i)),t};class s{constructor(t){this.axis=t}getLogTickPositions(t,e,i,s){let o=this.axis,r=o.len,a=o.options,n=[];if(s||(this.minorAutoInterval=void 0),t>=.5)t=Math.round(t),n=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,a,h,l,d,c,p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;r<i+1&&!c;r++)for(a=0,h=o.length;a<h&&!c;a++)(l=this.log2lin(this.lin2log(r)*o[a]))>e&&(!s||d<=i)&&void 0!==d&&n.push(d),d>i&&(c=!0),d=l}else{let h=this.lin2log(e),l=this.lin2log(i),d=s?o.getMinorTickInterval():a.tickInterval,c=a.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=tg(t=tx(\"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}(y||(y={}));let e3=y;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,\"plotBands\")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,\"plotLines\")}function r(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,a=!tn(this.min)||!tn(this.max)||t<this.min&&e<this.min||t>this.max&&e>this.max,n=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),h,l=1,d;if(n&&s)for(a&&(d=n.toString()===s.toString(),l=0),h=0;h<n.length;h+=2){let t=n[h],e=n[h+1],i=s[h],a=s[h+1];(\"M\"===t[0]||\"L\"===t[0])&&(\"M\"===e[0]||\"L\"===e[0])&&(\"M\"===i[0]||\"L\"===i[0])&&(\"M\"===a[0]||\"L\"===a[0])&&(r&&i[1]===t[1]?(i[1]+=l,a[1]+=l):r||i[2]!==t[2]||(i[2]+=l,a[2]+=l),o.push([\"M\",t[1],t[2]],[\"L\",e[1],e[2]],[\"L\",a[1],a[2]],[\"L\",i[1],i[2]],[\"Z\"])),o.isFlat=d}return o}function a(t){this.removePlotBandOrLine(t)}function n(t){let e=this.plotLinesAndBands,i=this.options,s=this.userOptions;if(e){let o=e.length;for(;o--;)e[o].id===t&&e[o].destroy();[i.plotLines||[],s.plotLines||[],i.plotBands||[],s.plotBands||[]].forEach(function(e){for(o=e.length;o--;)e[o]?.id===t&&Z(e,e[o])})}}function h(t){this.removePlotBandOrLine(t)}t.compose=function(t,l){let d=l.prototype;return d.addPlotBand||(e=t,_(d,{addPlotBand:i,addPlotLine:o,addPlotBandOrLine:s,getPlotBandPath:r,removePlotBand:a,removePlotLine:h,removePlotBandOrLine:n})),l}}(b||(b={}));let e6=b;class e9{static compose(t,e){return N(t,\"afterInit\",function(){this.labelCollectors.push(()=>{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t})}),e6.compose(e9,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){q(this,\"render\");let{axis:t,options:e}=this,{chart:i,horiz:s,logarithmic:o}=t,{color:r,events:a,zIndex:n=0}=e,{renderer:h,time:l}=t.chart,d={},c=l.parse(e.to),p=l.parse(e.from),g=l.parse(e.value),u=e.borderWidth,f=e.label,{label:m,svgElem:x}=this,y=[],b,v=j(p)&&j(c),k=j(g),w=!x,M={class:\"highcharts-plot-\"+(v?\"band \":\"line \")+(e.className||\"\")},C=v?\"bands\":\"lines\";if(!i.styledMode&&(k?(M.stroke=r||\"var(--highcharts-neutral-color-40)\",M[\"stroke-width\"]=tx(e.width,1),e.dashStyle&&(M.dashstyle=e.dashStyle)):v&&(M.fill=r||\"var(--highcharts-highlight-color-10)\",u&&(M.stroke=e.borderColor,M[\"stroke-width\"]=u))),d.zIndex=n,C+=\"-\"+n,(b=t.plotLinesAndBandsGroups[C])||(t.plotLinesAndBandsGroups[C]=b=h.g(\"plot-\"+C).clip(i.plotClipOuter).attr(d).add()),x||(this.svgElem=x=h.path().attr(M).add(b)),j(g))y=t.getPlotLinePath({value:o?.log2lin(g)??g,lineWidth:x.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(j(p)&&j(c)))return;y=t.getPlotBandPath(o?.log2lin(p)??p,o?.log2lin(c)??c,e)}return!this.eventsAdded&&a&&(tu(a,(t,e)=>{x?.on(e,t=>{a[e].apply(this,[t,this])})}),this.eventsAdded=!0),(w||!x.d)&&y?.length?x.attr({d:y}):x&&(y?(x.show(),x.animate({d:y})):x.d&&(x.hide(),m&&(this.label=m=m.destroy()))),f&&(j(f.text)||j(f.formatter))&&y?.length&&t.width>0&&t.height>0&&!y.isFlat?(f=tp({align:s&&v?\"center\":void 0,x:s?!v&&4:10,verticalAlign:!s&&v?\"middle\":void 0,y:s?v?16:10:v?6:-4,rotation:s&&!v?90:0,...v?{inside:!0}:{}},f),this.renderLabel(f,y,v,n)):m&&m.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,a=t.inside,n=this.label;n||(this.label=n=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:\"highcharts-plot-\"+(i?\"band\":\"line\")+\"-label \"+(t.className||\"\"),zIndex:s}),o.chart.styledMode||n.css(tp({color:o.chart.options.title?.style?.color,fontSize:\"0.8em\",textOverflow:i&&!a?\"\":\"ellipsis\"},t.style)),n.add());let h=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],l=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=z(h),c=z(l),p=R(h)-d;n.align(t,!1,{x:d,y:c,width:p,height:R(l)-c}),n.alignAttr.y-=r.fontMetrics(n).b,(!n.alignValue||\"left\"===n.alignValue||j(a))&&n.css({width:(t.style?.width||(i&&a?p:90===n.rotation?o.height-(n.alignAttr.y-o.top):(t.clip?o.width+o.left:o.chart.chartWidth)-n.alignAttr.x))+\"px\"}),n.show(!0)}getLabelText(t){return j(t.formatter)?t.formatter.call(this,this):t.text}destroy(){Z(this.axis.plotLinesAndBands,this),delete this.axis,$(this)}}let{animObject:e4}=tq,{format:e8}=ee,{composed:e7,dateFormats:it,doc:ie,isSafari:ii}=E,{distribute:is}=ei,io=t=>{clearTimeout(t.hideTimer),clearTimeout(t.showTimer)};class ir{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||tM(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),V(this.container)),to(this.hideTimer),io(this)}getAnchor(t,e){let i,{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if(t=tM(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 q(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-\"+tx(t.colorIndex,o.colorIndex),r?.className].filter(th).join(\" \")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,a=this.container,n=this.chart.renderer;if(this.label){let t=!this.label.hasClass(\"highcharts-label\");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style;this.container=a=E.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(),Y(a,{position:\"absolute\",top:\"1px\",pointerEvents:\"none\",zIndex:Math.max(o.style.zIndex||0,(e?.zIndex||0)+3)}),this.renderer=n=new eH(a,0,0,e,void 0,void 0,n.styledMode)}if(r?this.label=n.g(\"tooltip\"):(this.label=n.label(\"\",t,e,o.shape||\"callout\",void 0,void 0,o.useHTML,void 0,\"tooltip\").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,\"stroke-width\":o.borderWidth??+!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&&E.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=ie,{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&&tx(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},A=()=>{!1!==C.apply(0,b)?!1!==S.apply(0,v)||k||(T(!0),A()):k?g.x=g.y=0:(T(!0),A())};return(n&&!d||this.len>1)&&T(),A(),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)*J(n.align)+n.x,y:d.y+(d.height-e)*J(n.verticalAlign)+(!a&&n.y||0)}}hide(t){let e=this;io(this),t=tx(t,this.options.hideDelay),this.isHidden||(this.hideTimer=tS(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=tx(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=e4(!o&&!this.isHidden&&!r.fixed&&r.animation),n=o||(this.len||0)>1,h={x:t,y:e};n?h.anchorX=h.anchorY=NaN:(h.anchorX=i,h.anchorY=s),a.step=()=>this.drawTracker(),this.getLabel().animate(h,a)}refresh(t,e){let i=this,{chart:s,options:o,pointer:r,shared:a}=this,n=tM(t),h=n[0],l=o.format,d=o.formatter||i.defaultFormatter,c=s.styledMode,p=i.allowShared;if(!o.enabled||!h.series)return;io(this),i.allowShared=!(!tl(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],f=g[1];a&&i.allowShared&&(r.applyInactiveState(n),n.forEach(t=>t.setState(\"hover\")),h.points=n),this.len=n.length;let m=th(l)?e8(l,h,s):d.call(h,i,h);h.points=void 0;let x=h.series;this.distance=tx(x.tooltipOptions.distance,16),!1===m?this.hide():this.showTimer=tS(()=>{if(i.split&&i.allowShared)i.renderSplit(m,n);else{let t=u,a=f;if(e&&r.isDirectTouch&&(t=e.chartX-s.plotLeft,a=e.chartY-s.plotTop),!(s.polar||!1===x.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:tl(m)?m.join(\"\"):m}),this.outside&&t.attr({x:H(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),c||t.attr({stroke:o.borderColor||h.color||x.color||\"var(--highcharts-neutral-color-60)\"}),i.updatePosition({plotX:u,plotY:f,negative:h.negative,ttBelow:h.ttBelow,series:x,h:g[2]||0})}}i.isHidden&&i.label&&i.label.attr({opacity:1}).show(),i.isHidden=!1},i.isHidden&&o.showDelay||0),q(this,\"refresh\")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:a,plotLeft:n,plotTop:h,scrollablePixelsY:l=0,scrollablePixelsX:d,styledMode:c},distance:p,options:g,options:{fixed:u,position:f,positioner:m},pointer:x}=i,{scrollLeft:y=0,scrollTop:b=0}=s.scrollablePlotArea?.scrollingContainer||{},v=i.outside&&\"number\"!=typeof d?ie.documentElement.getBoundingClientRect():{left:y,right:y+o,top:b,bottom:b+r},k=i.getLabel(),w=this.renderer||s.renderer,M=!!s.xAxis[0]?.opposite,{left:C,top:S}=x.getChartPosition(),T=m||u,A=h+b,P=0,L=a-l,O=function(t,e,s,o,r=[0,0],a=!0){let n,h;if(s.isHeader)h=M?0:L,n=H(r[0]-t/2,v.left,v.right-t-(i.outside?C:0));else if(u&&s){let o=i.getFixedPosition(t,e,s);n=o.x,h=o.y-A}else h=r[1]-A,n=H(n=a?r[0]-t-p:r[0]+p,a?n:v.left,v.right);return{x:n,y:h}};th(t)&&(t=[!1,t]);let E=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&\"\"!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:a,series:{}},l=r.isHeader,d=l?i:r.series,f=d.tt=function(t,e,s){let o=t,{isHeader:r,series:a}=e,n=a.tooltipOptions||g,h=r?tp(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=w.label(\"\",0,0,h.shape||(u&&!r?\"rect\":\"callout\"),void 0,void 0,n.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(k)}return o.isActive=!0,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()),x=f.getBBox(),y=x.width+f.strokeWidth();l&&(P=x.height+g.header.distance,L+=P,M&&(A-=P));let{anchorX:b,anchorY:C}=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+H(o,-p,t.len+p),l.shouldShowTooltip(0,s.pos-h+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=H(e,v.left-p,v.right+p),anchorY:i}}(r);if(\"number\"==typeof C){let e=x.height+1,s=(m||O).call(i,y,e,r,i,[b,C]);t.push({align:T?0:void 0,anchorX:b,anchorY:C,boxWidth:y,point:r,rank:tx(s.rank,+!!l),size:e,target:s.y,tt:f,x:s.x})}else f.isActive=!1}return t},[]);!T&&E.some(t=>{let{outside:e}=i,s=(e?C:0)+t.anchorX;return s<v.left&&s+t.boxWidth<v.right||s<C-v.left+t.boxWidth&&v.right-s>s})&&(E=E.map(t=>{let{x:e,y:i}=O.call(this,t.boxWidth,t.size,t.point,void 0,[t.anchorX,t.anchorY],!1);return _(t,{target:i,x:e})})),i.cleanSplit(),is(E,L);let I={left:C,right:C};E.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&C+e<I.left&&(I.left=C+e),i.outside&&I.left+s>I.right&&(I.right=C+e))}),E.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:a}}=t,n={visibility:void 0===r?\"hidden\":\"inherit\",x:e,y:(r||0)+A+(u&&f.y||0),anchorX:s,anchorY:o};if(i.outside&&e<s){let t=C-I.left;t>0&&(n.x=a?(I.right-I.left)/2:e+t,n.anchorX=s+t)}t.tt.attr(n)});let{container:D,outside:B,renderer:N}=i;if(B&&D&&N){let{width:t,height:e,x:i,y:s}=k.getBBox();N.setSize(t+i,e+s,!1),D.style.left=I.left+\"px\",D.style.top=S+\"px\"}ii&&k.attr({opacity:1===k.opacity?.999:1})}drawTracker(){let t=this;if(!this.shouldStickOnContact()){t.tracker&&(t.tracker=t.tracker.destroy());return}let e=t.chart,i=t.label,s=t.shared?e.hoverPoints:e.hoverPoint;if(!i||!s)return;let o={x:0,y:0,width:0,height:0},r=this.getAnchor(s),a=i.getBBox();r[0]+=e.plotLeft-(i.translateX||0),r[1]+=e.plotTop-(i.translateY||0),o.x=Math.min(0,r[0]),o.y=Math.min(0,r[1]),o.width=r[0]<0?Math.max(Math.abs(r[0]),a.width-r[0]):Math.max(Math.abs(r[0]),a.width),o.height=r[1]<0?Math.max(Math.abs(r[1]),a.height-Math.abs(r[1])):Math.max(Math.abs(r[1]),a.height),t.tracker?t.tracker.attr(o):(t.tracker=i.renderer.rect(o).addClass(\"highcharts-tracker\").add(i),N(t.tracker.element,\"mouseenter\",()=>io(t)),e.styledMode||t.tracker.attr({fill:\"rgba(0,0,0,0)\"}))}styledModeFormat(t){return t.replace('style=\"font-size: 0.8em\"','class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g,'class=\"highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}\"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o?.dateTime,a={isFooter:e,point:t},n=s.xDateFormat||\"\",h=s[e?\"footerFormat\":\"headerFormat\"];return q(this,\"headerFormatter\",a,function(e){if(r&&!n&&tn(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(tc(n)){let t=n;it[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=e8(h,t,this.chart)}),a.text||\"\"}update(t){this.destroy(),this.init(this.chart,tp(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:n=0,width:h=0}=this.getLabel(),{fixed:l,positioner:d}=o,{left:c,top:p,scaleX:g,scaleY:u}=r.getChartPosition(),f=(d||l&&this.getFixedPosition||this.getPosition).call(this,h,n,t,this),m=E.doc,x=(t.plotX||0)+e.plotLeft,y=(t.plotY||0)+e.plotTop,b;if(a&&i){if(f.x+=c,f.y+=p,d||l){let{scrollLeft:t=0,scrollTop:i=0}=e.scrollablePlotArea?.scrollingContainer||{};f.x+=t,f.y+=i}b=(o.borderWidth??+!l)+2*s+2,a.setSize(H(h+b,0,m.documentElement.clientWidth)-1,n+b,!1),(1!==g||1!==u)&&(Y(i,{transform:`scale(${g}, ${u})`}),x*=g,y*=u),x+=c-f.x,y+=p-f.y}this.move(Math.round(f.x),Math.round(f.y||0),x,y)}}(n=ir||(ir={})).compose=function(t){tb(e7,\"Core.Tooltip\")&&N(t,\"afterInit\",function(){let t=this.chart;t.options.tooltip&&(t.tooltip=new n(t,t.options.tooltip,this))})};let ia=ir,{animObject:ih}=tq,{defaultOptions:il}=tX,{format:id}=ee;class ic{constructor(t,e,i){this.formatPrefix=\"point\",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=tI()),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,q(this,\"afterInit\")}applyOptions(t,e,i){let s=this.series,o=s.options.pointValKey||s.pointValKey;return _(this,t=ic.prototype.optionsToObject.call(this,t)),this.options?this.options=s.chart.options.chart.allowMutatingData?_(this.options,t):tp(this.options,t):this.options=t,o&&(this.y=ic.prototype.getNestedProperty.call(this,o)),tn(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(){if(!this.condemned){let t=this,e=t.series,i=e.chart,s=i.hoverPoints,{duration:o}=ih(t.series.chart.renderer.globalAnimation),r=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(tw(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),s&&(t.setState(),Z(s,t),s.length||(i.hoverPoints=void 0)),t===i.hoverPoint&&t.onMouseOut(),o&&e.condemnedPoints?(e.condemnedPoints.push(this),this.graphic?.addClass(\"highcharts-point-condemned\"),setTimeout(r,o)):r(),i.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)}),q(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.\")?te(t,this.options):this[t]}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||\"y\",s,o=0;for(s=e[0];this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s?.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}isValid(){return(tn(this.x)||this.x instanceof Date)&&tn(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(tn(t)||null===t)r[s[0]]=t;else if(tl(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&&(ic.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&&tn(e)&&tn(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){return i.split(\".\").reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:tc(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=[\"y\"],tooltipOptions:s}=this.series,{valueDecimals:o=\"\",valuePrefix:r=\"\",valueSuffix:a=\"\"}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e=\"{point.\"+e,(r||a)&&(t=t.replace(RegExp(e+\"}\",\"g\"),r+e+\"}\"+a)),t=t.replace(RegExp(e+\"}\",\"g\"),e+\":,.\"+o+\"f}\")}),id(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);let s=a&&o.hasMockGraphic,d=o.index,c=null===o.y?!s:s;a&&c&&(o.graphic=a.destroy(),delete o.hasMockGraphic),tc(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 p=o.optionsToObject(t);!r.hasProcessedDataTable&&(r.dataTable.setRow(p,d),l&&(l[d]=tc(l[d],!0)||tc(t,!0)?o.options:t??l[d])),r.isDirty=r.isDirtyData=!0,\"x\"in p&&(th(p.x)&&(r.xColumnIsNumbers=void 0),o.x=r.getX(p.x),o.isNull=o.isValid&&!o.isValid(),r.xColumn&&(r.xColumn[d]=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=tx(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=tp(this.series.options.point,this.options),i=e.events?.[t];td(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=N(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(tw(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=il.plotOptions[i.type].marker&&i.options.marker,a=r&&!1===r.enabled,n=r?.states?.[t||\"normal\"]||{},h=!1===n.enabled,l=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,g,u,f,m=i.stateMarkerGraphic,x;if((t=t||\"\")===this.state&&!e||this.selected&&\"select\"!==t||!1===o.enabled||t&&(h||a&&!1===n.enabled)||t&&l.states&&l.states[t]&&!1===l.states[t].enabled)return;if(this.state=t,c&&(g=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass(\"highcharts-point-\"+s),t&&this.graphic.addClass(\"highcharts-point-\"+t),!d.styledMode){u=i.pointAttribs(this,t),f=tx(d.options.chart.animation,o.animation);let e=u.opacity;i.options.inactiveOtherPoints&&tn(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,tx(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,tp(r,n)).add(i.markerGroup),m.currentSymbol=x)),!d.styledMode&&m&&\"inactive\"!==this.state&&m.attr(i.pointAttribs(this,t))),m&&(m[t&&this.isInside?\"show\":\"hide\"](),m.element.point=this,m.addClass(this.getClassName(),!0));let y=o.halo,b=this.graphic||m,v=b?.visibility||\"inherit\";y?.size&&b&&\"hidden\"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?\"animate\":\"attr\"]({d:this.haloPath(y.size)}),p.attr({class:\"highcharts-halo highcharts-color-\"+tx(this.colorIndex,i.colorIndex)+(this.className?\" \"+this.className:\"\"),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(_({fill:this.color||i.color,\"fill-opacity\":y.opacity},t5.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),q(this,\"afterSetState\",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(F(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let ip=ic,{charts:ig,composed:iu,isTouchDevice:im}=E,ix=(t,e)=>!j(e)||t[`${e}Key`];class iy{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=[],!E.chartCount&&(iy.unbindDocumentMouseUp.forEach(t=>t.unbind()),iy.unbindDocumentMouseUp.length=0,iy.unbindDocumentTouchEnd&&(iy.unbindDocumentTouchEnd=iy.unbindDocumentTouchEnd())),tu(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:\"rect\"};return q(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=tc(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&&ix(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 q(this,\"getSelectionBox\",e),e.result}drop(t){let e,{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(\"xAxis\"===t.coll&&this.zoomX||\"yAxis\"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}tn(i.index)&&(this.selectionMarker=s.destroy())}i&&tn(i.index)&&(Y(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);tc(l,!0)&&l.series&&(!tc(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&&tn(o.x)&&tn(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=tf(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)&&tx(t.options.enableMouseTracking,!0)},h=e,l,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};q(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=ts(t.points,function(t){return t.x===c.x&&(!t.isNull||!!e)});tc(i)&&(t.boosted&&t.boost&&(i=t.boost.getPoint(i)),a.push(i))}):a.push(c)),q(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=W(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(),q(this,\"afterInit\")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):tx(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return _(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\")?(q(i.series,\"click\",_(s,{point:i})),e.hoverPoint&&i.firePointEvent(\"click\",s)):(_(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&q(e,\"click\",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),E.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}=ig[tx(iy.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?.(),ig[tx(iy.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&&(q(i,\"touchpan\",{originalEvent:t,touches:r},()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:e(r),from:e(o),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,a=i.tooltip,n=a?.shared?r:o;t&&n&&tM(n).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?a&&n&&tM(n).length&&(a.refresh(n),a.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),a&&a.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip?.options.enabled?s.tooltip:void 0,a=!!r&&r.shared,n=e||s.hoverPoint,h=n?.series||s.hoverSeries,l=(!t||\"touchmove\"!==t.type)&&(!!e||h?.directTouch&&this.isDirectTouch),d=this.getHoverData(n,h,o,l,a,t);n=d.hoverPoint,h=d.hoverSeries;let c=d.hoverPoints,p=h?.tooltipOptions.followPointer&&!h.tooltipOptions.split,g=a&&h&&!h.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r?.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==h&&h.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState(\"hover\")}),s.hoverPoint&&s.hoverPoint.firePointEvent(\"mouseOut\"),!n.series)return;s.hoverPoints=c,s.hoverPoint=n,n.firePointEvent(\"mouseOver\",void 0,()=>{r&&n&&r.refresh(g?c:n,t)})}else if(p&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=N(s.container.ownerDocument,\"mousemove\",t=>ig[iy.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=ts(c,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(N(t,\"mouseenter\",this.onContainerMouseEnter.bind(this)),N(t,\"mouseleave\",this.onContainerMouseLeave.bind(this))),iy.unbindDocumentMouseUp.some(t=>t.doc===e)||iy.unbindDocumentMouseUp.push({doc:e,unbind:N(e,\"mouseup\",this.onDocumentMouseUp.bind(this))});let s=i(this.chart.renderTo);for(;s&&\"BODY\"!==s.tagName;)this.eventsToUnbind.push(N(s,\"scroll\",()=>{delete this.chartPosition})),s=i(s);this.eventsToUnbind.push(N(t,\"touchstart\",this.onContainerTouchStart.bind(this),{passive:!1}),N(t,\"touchmove\",this.onContainerTouchMove.bind(this),{passive:!1})),iy.unbindDocumentTouchEnd||(iy.unbindDocumentTouchEnd=N(e,\"touchend\",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),N(this.chart,\"redraw\",this.setPointerCapture.bind(this))}setPointerCapture(){if(!im)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(N(i,\"pointerdown\",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),N(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=E.charts[tx(iy.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||(iy.hoverChartIndex=e.index)}touch(t,e){let i,s,{chart:o,pinchDown:r=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?((s=o.isInsidePlot(t.chartX-o.plotLeft,t.chartY-o.plotTop,{visiblePlotOnly:!0}))&&!o.exporting?.openMenu?(e&&this.runPointActions(t),\"touchmove\"===t.type&&(this.hasPinchMoved=i=!!r[0]&&Math.pow(r[0].chartX-t.chartX,2)+Math.pow(r[0].chartY-t.chartY,2)>=16),tx(i,!0)&&this.pinch(t)):e&&this.reset(),(o.tooltip?.options.followTouchMove??!0)&&s&&t.preventDefault()):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=tx(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)&&ix(t,e.zooming.key)}}iy.unbindDocumentMouseUp=[],(h=iy||(iy={})).compose=function(t){tb(iu,\"Core.Pointer\")&&N(t,\"beforeRender\",function(){this.pointer=new h(this,this.options)})};let ib=iy,{setLength:iv,splice:ik}={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}}},iw=class{constructor(t={}){this.isDataTable=!0,this.autoId=!t.id,this.columns={},this.id=t.id||tI(),this.rowCount=0,this.versionTag=tI();let e=0;tu(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,tu(this.columns,(e,i)=>{e.length!==t&&(this.columns[i]=iv(e,t))})}deleteRows(t,e=1){if(e>0&&t<this.rowCount){let i=0;tu(this.columns,(s,o)=>{this.columns[o]=ik(s,t,e).array,i=s.length}),this.rowCount=i}q(this,\"afterDeleteRows\",{rowIndex:t,rowCount:e}),this.versionTag=tI()}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;tu(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(q(this,\"afterSetColumns\"),this.versionTag=tI())}setRow(t,e=this.rowCount,i,s){var o;let{columns:r}=this,a=i?this.rowCount+1:e+1,n=Object.keys(t);if(s?.addColumns!==!1)for(let t=0,e=n.length;t<e;t++)r[o=n[t]]||(r[o]=Array(this.rowCount));tu(r,(s,o)=>{s&&(i?s=ik(s,e,0,!0,[t[o]]).array:s[e]=o in t?t[o]:s[e],r[o]=s)}),this.applyRowCount(Math.max(a,this.rowCount)),s?.silent||(q(this,\"afterSetRows\",{rowIndex:e}),this.versionTag=tI())}getModified(){return this.modified||this}};var iM=v||(v={});function iC(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(tx(m.radius,d),d);0===l.indexOf(\"url\")&&(m=tp(m,{width:h,height:h}),t=0),s.symbol=f=c.symbol(l,n/2-t,g-t,2*t,2*t,_({context:\"legend\"},m)).addClass(\"highcharts-point\").add(p),f.isMarker=!0}}iM.areaMarker=function(t,e){iC.call(this,t,e,!0)},iM.lineMarker=iC;let iS=v,{defaultOptions:iT}=tX;var iA=k||(k={});function iP(t,e){let i=iT.plotOptions||{},s=e.defaultOptions,o=e.prototype;return o.type=t,o.pointClass||(o.pointClass=ip),!iA.seriesTypes[t]&&(s&&(i[t]=s),iA.seriesTypes[t]=e,!0)}iA.seriesTypes=E.seriesTypes,iA.registerSeriesType=iP,iA.seriesType=function(t,e,i,s,o){let r=iT.plotOptions||{};if(e=e||\"\",r[t]=tp(r[e],i),delete iA.seriesTypes[t],iP(t,K(iA.seriesTypes[e]||E.Series,s)),iA.seriesTypes[t].prototype.type=t,o){class e extends ip{}_(e.prototype,o),iA.seriesTypes[t].prototype.pointClass=e}return iA.seriesTypes[t]};let iL=k,{animObject:iO,setAnimation:iE}=tq,{defaultOptions:iI}=tX,{registerEventOptions:iD}=e$,{svg:iB,win:iN}=E,{seriesTypes:iz}=iL,{format:iR}=ee;class iW{constructor(){this.zoneAxis=\"y\"}init(t,e){let i;q(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=o.dataTable?.isDataTable?o.dataTable:new iw(o.dataTable)),this.linkedSeries=[],this.bindAxes(),_(this,{name:o.name,state:\"\",visible:r,selected:!0===o.selected}),iD(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=tx(i?._i,-1)+1,this.opacity=this.options.opacity,t.orderItems(\"series\",tO(this,s)),this.points||this.data||this.setData(o.data,!1),q(this,\"afterInit\")}is(t){return iz[t]&&this instanceof iz[t]}bindAxes(){let t,e=this,i=e.options,s=e.chart;q(this,\"bindAxes\",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,(tx(i[o],0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(tO(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||tL(18,!0,s)})}),q(this,\"afterBindAxes\")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e,i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,a=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=tx(this.pointInterval,i.pointInterval,1),o&&tn(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&&tn(t)?a+e:(this.xIncrement=a+e,a)}setOptions(t){let e,i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=tp(t),a=i.styledMode,n={plotOptions:s,userOptions:r};q(this,\"setOptions\",n);let h=n.plotOptions[this.type],l=o.plotOptions||{},d=l.series||{},c=iI.plotOptions[this.type]||{},p=l[this.type]||{};h.dataLabels=this.mergeArrays(c.dataLabels,h.dataLabels),this.userOptions=n.userOptions;let g=tp(h,s.series,p,r),{negativeColor:u,negativeFillColor:f,zoneAxis:m=\"y\",zones:x}=g,y=(x||[]).map(t=>({...t}));return this.tooltipOptions=tp(iI.tooltip,iI.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=tx(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&&j(y[y.length-1].value)&&y.push(a?{}:{color:this.color,fillColor:this.fillColor}),q(this,\"afterSetOptions\",{options:g}),g}getName(){let{chart:t,options:e}=this,{dataMapping:i,name:s}=e,o=i?.y||i?.value,r=th(o)?o:o?.column;return s??(th(r)?r:iR(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&&(j(o=tx(\"color\"===t?this.options.colorIndex:void 0,this[a]))?s=o:(r.series.length||(r[n]=0),s=r[n]%h,r[n]+=1),i&&(e=i[s])),void 0!==s&&(this[a]=s),this[t]=e}getColor(){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||iI.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];j(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)&&j(e)?this.xAxis.nameToX({name:e,series:this},t):void 0===t||tn(t)&&this.options.relativeXValue?this.autoIncrement(t):(\"string\"==typeof t&&tn(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,g,u,f=0,m=!0;this.xIncrement=null,delete this.xColumn;let x=o.getColumn(\"x\"),y=o.getColumn(\"id\"),b=n?.matchByName?o.getColumn(\"name\"):void 0,v=o.getColumn(\"index\");for(g=0;g<o.rowCount;g++){let r=x?.[g],u=y?.[g],m=b?.[g],k=v?.[g],[w,M]=u&&e?[u,e]:m&&i?[m,i]:j(k)&&s?[k,s]:j(r)&&t?[r,t]:[],C=-1;if(M){if(-1===(C=M.indexOf(w,f))){let e=x?.[g],i=t?.length??o.rowCount;for(;i&&t&&\"number\"==typeof e&&t[i-1]>e;)i--;l.push({newIndex:i,oldIndex:g})}else h[C]&&(d.push({newIndex:C,oldIndex:g}),h[C].touched=!0,a&&(f=C+1));(!c||g!==C||n?.enabled||this.hasDerivedData)&&(p=!0)}else l.push({newIndex:g,oldIndex:g})}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)}),g=h.length;g--;)(u=h[g])&&!u.touched&&(u.destroy(),h.splice(g,1));this.isDirtyData=this.isDirty=!0}else if(c&&!n?.enabled){for(g=0;g<o.rowCount;g++)if(!h[g].destroyed&&!h[g].condemned){let t=o.getRowObject(g);t&&(Object.keys(t).forEach(e=>{j(t[e])||delete t[e]}),Object.keys(t).length&&h[g].update(t,!1,void 0,!1))}}else m=!1;if(h.forEach(t=>{t&&(t.touched=!1)}),!m)return!1;let k=this.getColumn(\"x\");return null===this.xIncrement&&k.length&&(this.xIncrement=R(k),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=tp(!0,t)),t=a||t,this.xIncrement=null,delete this.xColumn,delete this.xColumnIsNumbers,n!==h.dataTable&&delete n.columns.x,this.colorCounter=0,tl(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(th(this.getColumn(\"y\")[0])&&tL(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}tl(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=>!!(tl(t)&&(i||tn(t[0])));if(tn(s)&&tn(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))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=>{tb(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=th(o)?0===e&&r[o]:((o?.dataTable||0)===e||a&&o?.dataTable===a)&&(tn(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(N(t,\"afterSetRows\",t=>{let i=t.rowIndex;if(tn(i)){let t=iw.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(N(t,\"afterDeleteRows\",t=>{let{rowCount:e,rowIndex:i}=t;if(tn(i)){for(let t=i+e-1;t>=i;t--)this.removePoint(t,!1);o()}})),s.push(N(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 iw:e.getColumn(e.pointValKey||\"y\").length&&(m[0]<u||m[l-1]>f)&&(x=(d=this.cropData(i,u,f)).modified,p=d.start,c=!0))),m=this.getColumn(\"x\",!0),{modified:x,cropped:c,cropStart:p,closestPointRange:Q([h?m.map(h.log2lin):m],()=>e.requireSorting&&!y&&tL(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,q(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 iw({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,_(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,q(this,\"afterGeneratePoints\")}getXExtremes(t){return{min:z(t),max:R(t)}}getExtremes(t,e){let{xAxis:i,yAxis:s}=this,o=e||this.getExtremesFromAll||this.options.getExtremesFromAll,r=o&&this.cropped?this.dataTable:this.dataTable.getModified(),a=r.rowCount,n=t||this.stackedYData,h=n?[n]:(this.keysAffectYAxis||this.pointArrayMap||[\"y\"])?.map(t=>r.getColumn(t,!0)||[])||[],l=this.getColumn(\"x\",!0),d=[],c=this.requireSorting&&!this.is(\"column\")?1:0,p=!!s&&s.positiveValuesOnly,g=o||this.cropped||!i,u,f,m,x=0,y=0;for(i&&(x=(u=i.getExtremes()).min,y=u.max),m=0;m<a;m++)if(f=l[m],g||(l[m+c]||f)>=x&&(l[m-c]||f)<=y)for(let t of h){let e=t[m];tn(e)&&(e>0||!p)&&d.push(e)}let b={activeYData:d,dataMin:z(d),dataMax:R(d)};return q(this,\"afterGetExtremes\",{dataExtremes:b}),b}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o<s;){if(j(t[o]))return t[o];o+=i}}translate(){this.generatePoints();let{options:t,xAxis:e,yAxis:i}=this,{stacking:s,threshold:o}=t,{hasRendered:r,polar:a}=this.chart,n=this.points.concat(this.condemnedPoints),h=n.length,l=this.pointPlacementToXValue(),d=!!l,c=t.startFromThreshold?o:0,p=t?.nullInteraction&&i.len,g,u,f,m,x=Number.MAX_VALUE;function y(t){return H(t,-1e9,1e9)}let b=(t,i)=>{let s=e.translate(t,!1,!1,i,!0,l);return tn(s)?G(y(s)):void 0},v=(t,e,s)=>{if(tn(t)&&void 0!==e.plotX){let e=i.translate(t,!1,!0,s,!0);return tn(e)?y(e):void 0}if(!tn(t)&&p)return p};for(g=0;g<h;g++){let t=n[g],h=t.x,p,k,w=t.y,M=t.low,C=s&&i.stacking?.stacks[(this.negStacks&&w<(c?0:o)?\"-\":\"\")+this.stackKey];t.plotX=u=b(h),s&&this.visible&&C&&C[h]&&(m=this.getStackIndicator(m,h,this.index),!t.isNull&&m.key&&(k=(p=C[h]).points[m.key]),p&&tl(k)&&(M=k[0],w=k[1],M===c&&m.key===C[h].base&&(M=tx(tn(o)?o:i.min)),i.positiveValuesOnly&&j(M)&&M<=0&&(M=void 0),t.total=t.stackTotal=tx(p.total),t.percentage=j(t.y)&&p.total?t.y/p.total*100:void 0,t.stackY=w,this.irregularWidths||p.setOffset(this.pointXOffset||0,this.barW||0,void 0,void 0,void 0,this.xAxis))),t.yBottom=j(M)?y(i.translate(M,!1,!0,!1,!0)):void 0,this.dataModify&&(w=this.dataModify.modifyValue(w,g)),t.plotY=v(w,t),t.origin=!r||t.graphic||a?void 0:{x:b(h,!0),y:v(w,t,!0)},t.isInside=this.isPointInside(t),t.clientX=d?G(e.translate(h,!1,!1,!1,!0,l)):u,t.negative=(t.y||0)<(o||0),!t.isNull&&!1!==t.visible&&tn(u)&&(tn(f)&&(x=Math.min(x,Math.abs(u-f))),f=u),t.zone=this.zones.length?t.getZone():void 0}this.closestPointRangePx=x,q(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&&!!tn(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=iO(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(),tu(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path=\"url(#${t.id})\"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,q(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=tx(p.enabled,!f||!!f.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e<t.length;e++){o=(s=(i=t[e]).graphic)?\"animate\":\"attr\",r=i.marker||{},a=!!i.marker;let c=i.isNull;if((m&&!j(r.enabled)||r.enabled)&&(!c||g)&&!1!==i.visible){let t=tx(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=tx(o.radius,s?.radius);e&&(n=s?.states?.[e],h=o.states?.[e],l=tx(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 tn(l)&&d&&(i.crisp&&(d[0]=F(d[0],t.hasImage?0:\"rect\"===r?s?.lineWidth||0:1)),a.x=d[0]-l,a.y=d[1]-l),l&&(a.width=a.height=2*l),a}pointAttribs(t,e){let i=this.options,s=i.marker,o=t?.options,r=o?.marker||{},a=o?.color,n=t?.color,h=t?.zone?.color,l,d,c=this.color,p,g,u=tx(r.lineWidth,s.lineWidth),f=t?.isNull&&i.nullInteraction?0:1;return c=a||h||n||c,p=r.fillColor||s.fillColor||c,g=r.lineColor||s.lineColor||c,e=e||\"normal\",l=s.states[e]||{},u=tx((d=r.states&&r.states[e]||{}).lineWidth,l.lineWidth,u+tx(d.lineWidthPlus,l.lineWidthPlus,0)),p=d.fillColor||l.fillColor||p,g=d.lineColor||l.lineColor||g,f=tx(d.opacity,l.opacity,f),{stroke:g,\"stroke-width\":u,fill:p,opacity:t?.condemned||t?.isInside===!1?0:f}}destroy(t){let e,i,s=this,o=s.chart,r=/AppleWebKit\\/533/.test(iN.navigator.userAgent),a=s.data||[];for(q(s,\"destroy\",{keepEventsForUpdate:t}),this.removeEvents(t),(s.axisTypes||[]).forEach(function(t){i=s[t],i?.series&&(Z(i.series,s),i.isDirty=i.forceRedraw=!0)}),s.legendItem&&s.chart.legend.destroyItem(s),e=a.length;e--;)a[e]?.destroy?.();for(let t of s.zones||[])$(t,void 0,!0);to(s.animationTimeout),tu(s,function(t,e){t instanceof eg&&!t.survive&&t[r&&\"group\"===e?\"hide\":\"destroy\"]()}),o.hoverSeries===s&&(o.hoverSeries=void 0),Z(o.series,s),o.orderItems(\"series\"),tu(s,function(e,i){t&&\"hcEvents\"===i||delete s[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:a,zoneAxis:n}=this,{inverted:h,renderer:l}=e,d=this[`${n}Axis`],{isXAxis:c,len:p=0,minPointOffset:g=0}=d||{},u=(i?.strokeWidth()||0)/2+1,f=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:o,value:r}=t,a=i-s;o?.push([\"L\",e,Math.abs(a)<u?i-u*(a<0||0===a&&j(r)?-1:1):s])};if(s.length&&(i||t)&&d&&tn(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=H(d.toPixels(tx(t.value,e),!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),\"y\"===n&&o.length<r.len)for(let t of o){let{plotX:e,plotY:i,zone:o}=t,r=o&&s[s.indexOf(o)-1];o&&f(o,e,i),r&&f(r,e,i)}let m=[],x=d.toPixels(d.getExtremes().min-g,!0);s.forEach(e=>{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:n,simpleClip:d}=e,p=0,g=0,f=r.len,y=a.len;c?(p=o,f=x):(g=o,y=x);let b=[[\"M\",p,g],[\"L\",f,g],[\"L\",f,y],[\"L\",p,y],[\"Z\"]],v=[b[0],...s,b[1],b[2],...m,b[3],b[4]];m=s.reverse(),x=o,h&&(u(v),t&&u(b)),n?(n.animate({d:v}),d?.animate({d:b})):(n=e.clip=l.path(v),t&&(d=e.simpleClip=l.path(b))),i&&e.graph?.clip(n),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],a=!r,n={visibility:i,zIndex:s||.1};return j(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 \"+(j(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};q(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||tw(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=iO(i.animation),r=t.visible?\"inherit\":\"hidden\",a=i.zIndex,n=e.seriesGroup,h=t.finishedAnimating?0:o.duration;q(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=tS(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,q(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,tS(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,v=r.kdAxisArray[s%o],k=b,w=!1;l=e[a],g=b[a],u=j(l)&&j(g)?l-g:null,f=e[n],m=b[n],x=j(f)&&j(m)?f-m:0,y=d&&b.marker?.radius||0,b.dist=Math.sqrt((u&&u*u||0)+x*x)-y,b.distX=j(u)?Math.abs(u)-y:Number.MAX_VALUE;let M=(e[v]||0)-(b[v]||0)+(d&&b.marker?.radius||0),C=M<0?\"left\":\"right\",S=M<0?\"right\":\"left\";return i[C]&&([k,w]=c(b,t(e,i[C],s+1,o),h)),i[S]&&p(Math.sqrt(M*M),k[h],w)&&(k=c(k,t(e,i[S],s+1,o),h)[0]),k}(t,this.kdTree,l,l)}pointPlacementToXValue(){let{options:t,xAxis:e}=this,i=t.pointPlacement;return\"between\"===i&&(i=e.reversed?-.5:.5),tn(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,\"+(iB?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))})),q(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=tx(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(j).forEach(t=>{t.shift()}),d.deleteRows(0))),!1!==o&&q(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(j).forEach(e=>{e.splice(t,1)}),n.deleteRows(t),n.modified=n,h?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};iE(i,o),e=tx(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),tx(t,!0)&&r.redraw(e)}!1!==i?q(o,\"remove\",null,a):a()}update(t,e){q(this,\"update\",{options:t=U(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=iz[r].prototype,h=i.finishedAnimating&&{animation:!1},l={},d=t.data||t.dataTable,c,p,g=iW.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,iW.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&&_(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=tp(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(iz[u]){if(m=u!==i.type,i.remove(!1,!1,!1,!0),m)if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,iz[u].prototype);else{let t=Object.hasOwnProperty.call(i,\"hcEvents\")&&i.hcEvents;for(p in n)i[p]=void 0;_(i,iz[u].prototype),t?i.hcEvents=t:delete i.hcEvents}}else tL(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),q(this,\"afterUpdate\"),tx(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=tx(s?.[this.type]?.[t],s?.series?.[t]);return o&&!j(r)?i!==o:i!==tx(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),q(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(),q(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=tx(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||h+(a[t].lineWidthPlus||0),l=tx(a[t].opacity,l)),s&&!s.dashstyle&&tn(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(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let a=t?\"show\":\"hide\";[\"group\",\"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),q(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),q(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):iS[s]?.call(this,t,e)}}iW.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\"},iW.types=iL.seriesTypes,iW.registerType=iL.registerSeriesType,iW.keepProps=[\"colorIndex\",\"eventOptions\",\"navigatorSeries\",\"symbolIndex\",\"baseSeries\"],iW.keepPropsForPoints=[\"data\",\"isDirtyData\",\"isDirtyCanvas\",\"points\",\"condemnedPoints\",\"dataTable\",\"hasProcessedDataTable\",\"xIncrement\",\"cropped\",\"_hasPointMarkers\",\"hasDataLabels\",\"nodes\",\"layout\",\"level\",\"mapMap\",\"mapData\",\"minY\",\"maxY\",\"minX\",\"maxX\",\"transformGroups\"],_(iW.prototype,{axisTypes:[\"xAxis\",\"yAxis\"],coll:\"series\",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:[\"clientX\",\"plotY\"],parallelArrays:[\"x\",\"y\"],pointClass:ip,requireSorting:!0,sorted:!0}),iL.series=iW;let iH=iW,{animObject:iG,setAnimation:iX}=tq,{registerEventOptions:iF}=e$,{composed:iY,marginNames:ij}=E,{distribute:i$}=ei,{format:iV}=ee;class iU{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(),iF(this,e),N(this.chart,\"endResize\",function(){this.legend.positionCheckboxes()})),N(this.chart,\"render\",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=tx(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=tp(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=tx(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(tp(!0,this.options,t)),\"events\"in this.options&&iF(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,tx(e,!0)&&i.redraw(),q(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 iH||t instanceof ip)&&(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(tp(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,q(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=()=>{q(this,\"afterPositionItem\",{item:t})};e[j(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=V(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,Y(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?iV(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?tx(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(tp(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=tx(o.symbolHeight,this.fontMetrics.f),o.squareSymbol&&(this.symbolWidth=tx(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?tv(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?tx(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&&tx(i.showInLegend,!j(i.linkedTo)&&void 0,!0)&&(t=t.concat(e.legendItem?.labels||(\"point\"===i.legendType?e.data:e)))}),q(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)&&!j(t[a])&&(i[ij[a]]=Math.max(i[ij[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=ts(a?t.points:t.points.slice(0).reverse(),function(t){return tn(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),i$(i,e.plotHeight)))t=o.item.legendItem||{},tn(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=tv(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(),tC(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,tv(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(),q(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=tp(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(tp(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=tx(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=tx(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&&iX(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(),tS(()=>{q(this,\"afterScroll\",{currentPage:l})},iG(tx(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof ip,n=t instanceof iH,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(tp(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),q(s,\"itemClick\",{browserEvent:e,legendItem:t,context:s},i),a?t.firePointEvent(\"legendItemClick\",{browserEvent:e}):n&&q(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),N(t.checkbox,\"click\",function(e){let i=e.target;q(t.series||t,\"checkboxClick\",{checked:i.checked,item:t},function(){t.select()})})}}(l=iU||(iU={})).compose=function(t){tb(iY,\"Core.Legend\")&&N(t,\"beforeMargins\",function(){this.legend=new l(this,this.options.legend)})};let iZ=iU,{animate:i_,animObject:iK,setAnimation:iq}=tq,{defaultOptions:iJ}=tX,{numberFormat:iQ}=ee,{registerEventOptions:i0}=e$,{charts:i1,doc:i2,marginNames:i5,win:i3}=E,{seriesTypes:i6}=iL;class i9{static chart(t,e,i){let s=new i9(t,e,i);return s.promise||s}constructor(t,e,i){if(this.sharedClips={},!i2)return void tL(36,!1,this);const s=[...arguments];(th(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:tx(t.zoomType,e.type),key:tx(t.zoomKey,e.key),pinchType:tx(t.pinchType,e.pinchType),singleTouch:tx(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:tp(e.resetButton,t.resetZoomButton)}}init(t,e){q(this,\"init\",{args:arguments},function(){let i=tp(iJ,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=_({},t),(this.renderTo=th(o)?i2.getElementById(o):o)||tL(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 tR(_(i.time||{},{locale:this.locale}),i.lang),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||iQ).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=i1.length,this.dataTable=this.getDataTable(i),i1.push(this),E.chartCount++,i0(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),q(this,\"afterInit\"),this.firstRender()})}getDataTable(t){return(t.dataTable?tM(t.dataTable):[]).map(t=>t.isDataTable?t:new iw(t))}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=i6[i];s||tL(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]=tM(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?tM(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 iH&&(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}=tp(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 q(this,\"afterIsInsidePlot\",u),u.isInsidePlot}redraw(t){q(this,\"beforeRedraw\");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,a=this.renderer,n=a.isHidden(),h=[],l,d,c,p=this.isDirtyBox,g=this.isDirtyLegend,u;for(a.rootFontSize=a.boxWrapper.getStyle(\"font-size\"),this.setResponsive&&this.setResponsive(!1),iq(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((u=i[c]).options.stacking||u.options.centerInCategory)&&(d=!0,u.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(u=i[c]).options.stacking&&(u.isDirty=!0);i.forEach(function(t){t.isDirty&&(\"point\"===t.options.legendType?(\"function\"==typeof t.updateTotals&&t.updateTotals(),g=!0):r&&(r.labelFormatter||r.labelFormat)&&(g=!0)),t.isDirtyData&&q(t,\"updatedData\")}),g&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins(),e.forEach(function(t){t.isDirty&&(p=!0)}),e.forEach(function(t){let e=t.min+\",\"+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){q(t,\"afterSetExtremes\",_(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(p||d)&&t.redraw()}),p&&this.drawChartBox(),q(this,\"predraw\"),i.forEach(function(t){(p||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),a.draw(),e.forEach(t=>{t.saveOld()}),q(this,\"redraw\"),q(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=ts(this.axes,i)||ts(this.series,i);for(let t=0;!s&&t<e.length;t++)s=ts(e[t].points||[],i);return s}createAxes(){let t=this.userOptions;for(let e of(q(this,\"createAxes\"),[\"xAxis\",\"yAxis\"]))for(let i of t[e]=tM(t[e]||{}))new e2(this,i,e);q(this,\"afterCreateAxes\")}getSelectedPoints(){return this.series.reduce((t,e)=>(e.getPointsCollection().forEach(e=>{tx(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]=tp(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:\"highcharts-\"+t,zIndex:s.zIndex||4}).css({textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(_(\"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=tp(o),n=i?.textPxLength||0;if(i&&r){q(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=tp({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*J(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,q(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:ti(this.renderTo,\"width\",!0)||0,height:ti(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,tv(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e?.style;)e.hcOrigStyle&&(Y(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(i2.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e?.style&&(i2.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,i2.body.appendChild(e)),(\"none\"===ti(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),Y(e,i),e.offsetWidth||e.style.setProperty(\"display\",\"block\",\"important\")),(e=e.parentNode)!==i2.body););}setClassName(t){this.container.className=\"highcharts-container \"+(t||\"\")}getContainer(){let t,e=this.options,i=e.chart,s=\"data-highcharts-chart\",o=tI(),r=this.renderTo,a=ty(W(r,s));tn(a)&&i1[a]&&i1[a].hasRendered&&i1[a].destroy(),W(r,s,this.index),r.innerHTML=t5.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,h=this.chartWidth;this.styledMode||Y(r,{overflow:\"hidden\"}),this.styledMode||(t=_({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||Y(l,{width:tx(i.style?.width,h+\"px\")})),this._cursor=l.style.cursor,this.renderer=new eH(l,h,n,void 0,i.forExport,e.exporting?.allowHTML,this.styledMode,e.palette,this.index),this.containerBox=this.getContainerBox(),iq(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;q(this,\"afterGetContainer\")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!j(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!j(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend?.display&&this.legend.adjustMargins(i,e),q(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),i5.forEach((i,o)=>{j(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return U(this.userOptions,iJ)}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)&&(to(e.reflowTimeout),e.reflowTimeout=tS(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=N(i3,\"resize\",e);N(this,\"destroy\",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,iq(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?i_:Y)(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,q(s,\"resize\"),setTimeout(()=>{s&&q(s,\"endResize\")},iK(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()}q(this,\"afterSetChartSize\",{skipAxes:t})}resetMargins(){q(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=tc(s)?s:[s,s,s,s];[\"Top\",\"Right\",\"Bottom\",\"Left\"].forEach((s,r)=>{t[i][r]=e[`${i}${s}`]??o[r]})}),i5.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(),P=tp(w.crisp(g,-A));if(d&&!b){let t=d[0]-A/2,e=d[3]-A/2;P.x-=e,P.y-=t,P.width+=e+d[1]-A/2,P.height+=t+d[2]-A/2}w[T](P),[\"plotClipOuter\",\"plotClipInner\"].forEach((e,i)=>{let s=t[e],o=i?-A:A;s?.[r?T:\"attr\"]({x:P.x-o/2,y:P.y-o/2,width:P.width+o,height:P.height+o,r:r?r+o/2:0}),s?.parentGroup?.attr({display:r?\"\":\"none\"})}),t.isDirtyBox=!1,q(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=i6[o.type],i=o[a]||e&&e.prototype[a],t=r?.length;!i&&t--;)(e=i6[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=th(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)}),q(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(),q(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 eU(e,0,\"\",!0),r=o.createLabel(\"x\",i);if(o.destroy(),r&&tx(i.reserveSpace,!tn(t.crossing))&&(a=r.getBBox().height+i.distance+Math.max(tn(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=tp(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||\"\"),0,0,i.useHTML).addClass(\"highcharts-credits\").on(\"click\",function(t){q(e,\"creditsClick\",t,()=>{i.href&&(i3.location.href=i.href)})}).attr({align:i.position.align,zIndex:8}),i.events?.click&&N(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(q(e,\"destroy\"),e.renderer.forExport?Z(i1,e):i1[e.index]=void 0,E.chartCount--,e.renderTo.removeAttribute(\"data-highcharts-chart\"),tw(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=t5.emptyHTML,tw(o),r&&V(o)),tu(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=tl(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),q(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),q(this,\"load\"),q(this,\"render\"),j(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||tL('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\"!==i3.getComputedStyle(this.container).zIndex&&tL(35,!1,this)}addSeries(t,e,i){let s,o=this;return t&&(e=tx(e,!0),q(o,\"addSeries\",{options:t},function(){s=o.initSeries(t),o.isDirtyLegend=!0,o.linkSeries(),q(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 e2(this,e.axis,t);return tx(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&&Y(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),N(e,\"redraw\",r)),a.className=\"highcharts-loading\",t5.setElementHTML(n,tx(t,i.lang.loading,\"\")),!e.styledMode&&(Y(a,_(o,{zIndex:10})),Y(n,s?.labelStyle??{}),e.loadingShown||(Y(a,{opacity:0,display:\"\"}),i_(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||i_(e,{opacity:0},{duration:t.loading?.hideDuration??100,complete:function(){Y(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=[];q(n,\"update\",{options:t}),l||n.setResponsive(!1,!0),t=U(t,n.options),n.userOptions=tp(n.userOptions,t);let c=t.chart;c&&(tp(!0,n.options.chart,c),this.setZoomOptions(),\"className\"in c&&n.setClassName(c.className),(\"inverted\"in c||\"polar\"in c||\"type\"in c)&&(n.propFromSeries(),o=!0),\"alignTicks\"in c&&(o=!0),\"events\"in c&&i0(this,c),tu(c,function(t,e){-1!==n.propsRequireUpdateSeries.indexOf(\"chart.\"+e)&&(r=!0),-1!==n.propsRequireDirtyBox.indexOf(e)&&(n.isDirtyBox=!0),-1!==n.propsRequireReflow.indexOf(e)&&(n.isDirtyBox=!0,l||(a=!0))}),!n.styledMode&&c.style&&n.renderer.setStyle(n.options.chart.style||{})),!n.styledMode&&t.colors&&(this.options.colors=t.colors),tu(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)&&tp(!0,n.options[i],t[i]),\"chart\"!==i&&-1!==n.propsRequireUpdateSeries.indexOf(i)&&(r=!0)}),this.collectionsWithUpdate.forEach(e=>{t[e]&&(tM(t[e]).forEach((t,s)=>{let o;if(!t)return;let r=j(t.id);r&&(o=n.get(t.id)),!o&&n[e]&&(o=n[e][tx(t.index,s)])&&(r&&j(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 p=c?.width,g=c&&(th(c.height)?tv(c.height,p||n.chartWidth):c.height);a||tn(p)&&p!==n.chartWidth||tn(g)&&g!==n.chartHeight?n.setSize(p,g,s):tx(e,!0)&&n.redraw(s),q(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?null:\"plotBox\";function r(){t.zoomOut()}q(this,\"beforeShowResetZoom\",null,function(){t.resetZoomButton=t.renderer.button(e.resetZoom,null,null,r,s).attr({align:i.position.align,title:e.resetZoomTitle}).addClass(\"highcharts-reset-zoom\").add().align(i.position,!1,o)}),q(this,\"afterShowResetZoom\")}zoomOut(){q(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),q(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\"}),Y(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,{inverted:l,time:d}=this;this.hoverPoints?.forEach(t=>t.setState()),q(this,\"transform\",t);let c=t.hasZoomed||!1,p,g;for(let t of e){let{horiz:e,len:u,minPointOffset:f=0,options:m,reversed:x}=t,y=e?\"width\":\"height\",b=e?\"x\":\"y\",v=tx(a[y],t.len),k=tx(s[y],t.len),w=10>Math.abs(v)?1:v/k,M=(s[b]||0)+k/2-t.pos,C=M-((a[b]??t.pos)+v/2-t.pos)/w,S=x&&!l||!x&&l?-1:1;if(!o&&(M<0||M>t.len))continue;let T=t.chart.polar||t.isOrdinal&&w<=1?0:f*S||0,A=t.toValue(C,!0),P=t.toValue(C+u/w,!0),L=A+T,O=P-T,E=t.allExtremes;if(r&&r[t.coll].push({axis:t,min:Math.min(A,P),max:Math.max(A,P)}),L>O&&([L,O]=[O,L]),1===w&&!o&&\"yAxis\"===t.coll&&!E){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn(e.pointValKey||\"y\")||[],!0);E??(E={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),tn(t.dataMin)&&tn(t.dataMax)&&(E.dataMin=Math.min(t.dataMin,E.dataMin),E.dataMax=Math.max(t.dataMax,E.dataMax))}t.allExtremes=E}let{dataMin:I,dataMax:D,min:B,max:N}=_(t.getExtremes(),E||{}),z=d.parse(m.min),R=d.parse(m.max),W=I??z,H=D??R,G=O-L,X=t.categories?0:Math.min(G,H-W),F=W-X*(j(z)?0:m.minPadding),Y=H+X*(j(R)?0:m.maxPadding),$=t.allowZoomOutside||1===w||\"zoom\"!==n&&w>1,V=Math.min(z??F,F,$?B:F),U=Math.max(R??Y,Y,$?N:Y);(!t.isOrdinal||1!==w||o)&&(L<V&&(L=V,w>=1&&(O=L+G)),O>U&&(O=U,w>=1&&(L=O-G)),(o||t.series.length&&(L!==B||O!==N)&&L>=V&&O<=U)&&(r?r[t.coll].push({axis:t,min:L,max:O}):(t.isPanning=\"zoom\"!==n,t.isPanning&&\"mousewheel\"!==n&&(g=!0),t.setExtremes(o?void 0:L,o?void 0:O,!1,!1,{move:C,trigger:n,scale:w}),!o&&(L>V||O<U)&&(p=h)),c=!0),this.hasCartesianSeries||o||(p=h),i&&(this[e?\"mouseDownX\":\"mouseDownY\"]=i[e?\"chartX\":\"chartY\"]))}return c&&(r?q(this,\"selection\",r,()=>{delete t.selection,t.trigger=\"zoom\",this.transform(t)}):(!p||g||this.resetZoomButton?!p&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw(\"zoom\"===n&&(this.options.chart.animation??this.pointCount<100)))),c}}_(i9.prototype,{callbacks:[],collectionsWithInit:{xAxis:[i9.prototype.addAxis,[!0]],yAxis:[i9.prototype.addAxis,[!1]],series:[i9.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{stop:i4}=tq,{composed:i8}=E;function i7(){(this.scrollablePixelsX||this.scrollablePixelsY)&&!this.scrollablePlotArea&&(this.scrollablePlotArea=new se(this)),this.scrollablePlotArea?.applyFixed()}function st(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class se{static compose(t,e,i){tb(i8,\"ScrollablePlotArea\")&&(N(t,\"afterInit\",st),N(e,\"afterSetChartSize\",t=>this.afterSetSize(t.target,t)),N(e,\"render\",i7),N(i,\"show\",st))}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=tp(t.plotBox),h.width=t.plotWidth+=i,n[l?\"height\":\"width\"]+=i,o=!0)):a&&(t.scrollablePixelsY=s=Math.max(0,a-t.chartHeight),j(s)&&(t.scrollablePlotBox=tp(t.plotBox),h.height=t.plotHeight+=s,n[l?\"width\":\"height\"]+=s,o=!1)),j(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;const 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;const 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 eH(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),Y(t.renderTo,{overflow:\"visible\"}),N(t,\"afterShowResetZoom\",o),N(t,\"afterApplyDrilldown\",o),N(t,\"afterLayOutTitles\",o),N(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()),i4(t.container),Y(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}),Y(s,{width:`${r}px`,height:`${a}px`}),j(i)||(s.scrollLeft=p*u,s.scrollTop=g*f);let y=d-o[0]-1,b=l-o[3]-1,v=d+h+o[2]+1,k=l+c+o[1]+1,w=l+c-p,M=d+h-g,C=[[\"M\",0,0]];p?C=[[\"M\",0,y],[\"L\",l-1,y],[\"L\",l-1,v],[\"L\",0,v],[\"Z\"],[\"M\",w,y],[\"L\",r,y],[\"L\",r,v],[\"L\",w,v],[\"Z\"]]:g&&(C=[[\"M\",b,0],[\"L\",b,d-1],[\"L\",k,d-1],[\"L\",k,0],[\"Z\"],[\"M\",b,M],[\"L\",b,a],[\"L\",k,a],[\"L\",k,M],[\"Z\"]]),\"adjustHeight\"!==t.redrawTrigger&&this.mask.attr({d:C})}moveFixedElements(){let t,{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,a=se.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)`])tb(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)`])Z(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\"})}}se.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:si}=ee,{series:ss}=iL,so=class{constructor(t,e,i,s,o){const r=t.chart.inverted,a=t.reversed;this.axis=t;const n=this.isNegative=!!i!=!!a;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?n?\"left\":\"right\":\"center\"),verticalAlign:e.verticalAlign||(r?\"middle\":n?\"bottom\":\"top\"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?n?\"right\":\"left\":\"center\")}destroy(){$(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=(s?si(s,this,e):i.formatter?.call(this,this))||\"\";if(this.label)this.label.attr({text:o,visibility:\"hidden\"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,\"stack-labels\");let s={r:i.borderRadius||0,text:o,padding:tx(i.padding,5),visibility:\"hidden\"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s[\"stroke-width\"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,q(this,\"afterRender\")}setOffset(t,e,i,s,o,r){let{alignOptions:a,axis:n,label:h,options:l,textAlign:d}=this,c=n.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:g}=a;if(h&&p){let t=h.getBBox(void 0,0),e=h.padding,i=\"justify\"===tx(l.overflow,\"justify\"),s;a.x=l.x||0,a.y=l.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:g,textAlign:d});p.x-=o,p.y-=r,h.align(a,!1,p),(s=c.isInsidePlot(h.alignAttr.x+a.x+o,h.alignAttr.y+a.y+r))||(i=!1),i&&ss.prototype.justifyDataLabel.call(n,h,a,h.alignAttr,t,p),h.attr({x:h.alignAttr.x,y:h.alignAttr.y,rotation:l.rotation,rotationOriginX:t.width*J(l.textAlign||\"center\"),rotationOriginY:t.height/2}),tx(!i&&l.crop,!0)&&(s=tn(h.x)&&tn(h.y)&&c.isInsidePlot(h.x-e+(h.width||0),h.y)&&c.isInsidePlot(h.x+e,h.y)),h[s?\"show\":\"hide\"]()}q(this,\"afterSetOffset\",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*J(i)-1),y:t.height/2*2*(1-J(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:a,boxBottom:n}=t,h=e.stacking.usePercentage?100:tx(s,this.total,0),l=e.toPixels(h),d=t.xAxis||i.xAxis[0],c=tx(o,d.translate(this.x))+r,p=Math.abs(l-e.toPixels(n||tn(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),g=i.inverted,u=this.isNegative;return g?{x:(u?l:l-p)-i.plotLeft,y:d.height-c-a+d.top-i.plotTop,width:p,height:a}:{x:c+d.transB-i.plotLeft,y:(u?l-p:l)-i.plotTop,width:a,height:p}}},{getDeferredAnimation:sr}=tq,{series:{prototype:sa}}=iL;function sn(){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,tx(e.options.stack,\"\"),t?i.top:i.left,t?i.height:i.width].join(\",\"))})}function sh(){let t=this.stacking;if(t){let e=t.stacks;tu(e,(t,i)=>{$(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function sl(){this.stacking||(this.stacking=new sf(this))}function sd(t,e,i,s){return!j(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 sc(){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 sp(t,e,i){let s=e.total?100/e.total:0;t[0]=G(t[0]*s),t[1]=G(t[1]*s),this.stackedYData[i]=t[1]}function sg(t){(this.is(\"column\")||this.is(\"columnrange\"))&&(this.options.centerInCategory&&this.chart.series.length>1?sa.setStackedPoints.call(this,t,\"group\"):t.stacking.resetStacks())}function su(t,e){let i,s,o,r,a,n,h,l=e||this.options.stacking;if(!l||!this.reserveSpace()||(({group:\"xAxis\"})[l]||\"yAxis\")!==t.coll)return;let d=this.getColumn(\"x\",!0),c=this.getColumn(this.pointValKey||\"y\",!0),p=[],g=c.length,u=this.options,f=u.threshold||0,m=u.startFromThreshold?f:0,x=u.stack,y=e?`${this.type},${l}`:this.stackKey||\"\",b=\"-\"+y,v=this.negStacks,k=t.stacking,w=k.stacks,M=k.oldStacks;for(k.stacksTouched+=1,h=0;h<g;h++){let e=d[h]||0,g=c[h],u=tn(g)&&g||0;n=(i=this.getStackIndicator(i,e,this.index)).key||\"\",w[a=(s=v&&u<(m?0:f))?b:y]||(w[a]={}),w[a][e]||(M[a]?.[e]?(w[a][e]=M[a][e],w[a][e].total=null):w[a][e]=new so(t,t.options.stackLabels,!!s,e,x)),o=w[a][e],null!==g?(o.points[n]=o.points[this.index]=[tx(o.cumulative,m)],j(o.cumulative)||(o.base=n),o.touched=k.stacksTouched,i.index>0&&!1===this.singleStacks&&(o.points[n][0]=o.points[this.index+\",\"+e+\",0\"][0])):(delete o.points[n],delete o.points[this.index]);let C=o.total||0;\"percent\"===l?(r=s?y:b,C=v&&w[r]?.[e]?(r=w[r][e]).total=Math.max(r.total||0,C)+Math.abs(u):G(C+Math.abs(u))):\"group\"===l?tn(g)&&C++:C=G(C+u),\"group\"===l?o.cumulative=(C||1)-1:o.cumulative=G(tx(o.cumulative,m)+u),o.total=C,null!==g&&(o.points[n].push(o.cumulative),p[h]=o.cumulative,o.hasValidPoints=!0)}\"percent\"===l&&(k.usePercentage=!0),\"group\"!==l&&(this.stackedYData=p),k.oldStacks={}}class sf{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();q(i,\"afterBuildStacks\")}cleanStacks(){this.oldStacks&&(this.stacks=this.oldStacks,tu(this.stacks,t=>{tu(t,t=>{t.cumulative=t.total})}))}resetStacks(){tu(this.stacks,t=>{tu(t,(e,i)=>{tn(e.touched)&&e.touched<this.stacksTouched?(e.destroy(),delete t[i]):(e.total=null,e.cumulative=null)})})}renderStackTotals(){let t=this.axis,e=t.chart,i=e.renderer,s=this.stacks,o=sr(e,t.options.stackLabels?.animation||!1),r=this.stackTotalGroup=this.stackTotalGroup||i.g(\"stack-labels\").attr({zIndex:6,opacity:0}).add();r.translate(e.plotLeft,e.plotTop),tu(s,t=>{tu(t,t=>{t.render(r)})}),r.animate({opacity:1},o)}}(w||(w={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(N(t,\"init\",sl),N(t,\"destroy\",sh),s.getStacks=sn,o.getStackIndicator=sd,o.modifyStacks=sc,o.percentStacker=sp,o.setGroupedPoints=sg,o.setStackedPoints=su)};let sm=w;class sx extends iH{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=tc(t.shadow)?tp(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&&!j(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}}sx.defaultOptions=tp(iH.defaultOptions,{legendSymbol:\"lineMarker\"}),iL.registerSeriesType(\"line\",sx);let{seriesTypes:{line:sy}}=iL;class sb extends sy{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=sy.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=tx(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,v=!0;f&&(x||m)?(y=(m?f[0]:f[1])+x,b=f[0]+x,v=!!m):!a&&u&&(u.isNull||!j(u.plotY))&&(y=b=p),void 0!==y&&(l.push({plotX:e,plotY:null===y?g:n.getThreshold(y),isNull:v,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||!j(t[o].plotY),e=tx(t[o].rectPlotX,t[o].plotX),s=a?tx(t[o].yBottom,g):g,(!i||u)&&(u||f(o,o-1,\"left\"),i&&!a&&u||(l.push(t[o]),h.push({x:o,plotX:e,plotY:s})),u||f(o,o+1,\"right\"));let m=o.call(this,l,!0,!0);h.reversed=!0;let x=o.call(this,h,!0,!0),y=x[0];y&&\"M\"===y[0]&&(x[0]=[\"L\",y[1],y[2]]);let b=m.concat(x);b.length&&b.push([\"Z\"]);let v=o.call(this,l,!1,u);return this.chart.series.length>1&&a&&l.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=m.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,a=r.stacking.stacks[this.stackKey],n={},h=r.series,l=h.length,d=r.options.reversedStacks?1:-1,c=h.indexOf(e),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];tu(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}}sb.defaultOptions=tp(sy.defaultOptions,{threshold:0,legendSymbol:\"areaMarker\"}),_(sb.prototype,{singleStacks:!1}),iL.registerSeriesType(\"area\",sb);let{line:sv}=iL.seriesTypes;class sk extends sv{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\",tx(l.rightContX,l.plotX,0),tx(l.rightContY,l.plotY,0),tx(s,n,0),tx(o,h,0),n,h];return l.rightContX=l.rightContY=void 0,p}}sk.defaultOptions=tp(sv.defaultOptions),iL.registerSeriesType(\"spline\",sk);let sw=sk,{area:sM,area:{prototype:sC}}=iL.seriesTypes;class sS extends sw{}sS.defaultOptions=tp(sw.defaultOptions,sM.defaultOptions),_(sS.prototype,{getGraphPath:sC.getGraphPath,getStackPoints:sC.getStackPoints,drawGraph:sC.drawGraph}),iL.registerSeriesType(\"areaspline\",sS);let{animObject:sT}=tq,{parse:sA}=t$,{noop:sP}=E;class sL extends iH{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=H(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},_(sT(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,tx(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=F(e+s,o,r)-(e=F(e,o,r)),this.options.crisp&&(i=F(t+i,o)-(t=F(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;tu(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&&tl(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(j(s)){if(tn(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),f=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(f=Math.ceil(f)),iH.prototype.translate.apply(t),t.points.concat(t.condemnedPoints).forEach(function(s){let o=s.yBottom??u,m=999+Math.abs(o),x=s.plotX||0,y=H(s.plotY,-m,a.len+m),b,v=Math.min(y,o),k=Math.max(y,o)-v,w=d,M=x+c,C=f;h&&Math.abs(k)<h&&(k=h,b=!a.reversed&&!s.negative||a.reversed&&s.negative,tn(n)&&tn(g)&&s.y===n&&g<=n&&(a.min||0)<n&&(p!==g||(a.max||0)<=n)&&(b=!b,s.negative=!s.negative),v=Math.abs(v-u)>h?o-(b?h:0):u-(b?h:0)),j(s.options.pointWidth)&&(M-=Math.round(((w=C=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(M=t.adjustForMissingColumns(M,w,s,l)),s.barX=M,s.pointWidth=w,s.tooltipPos=e.inverted?[H(a.len+a.pos-e.plotLeft-y,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-M-C/2,k]:[r.left-e.plotLeft+M+C/2,H(y+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),k],s.shapeType=t.pointClass.prototype.shapeType||\"roundedRect\",s.shapeArgs=t.crispCol(M,v,C,s.isNull?0:k)}),q(this,\"afterColumnTranslate\")}drawGraph(){this.group[this.dense?\"addClass\":\"removeClass\"](\"highcharts-dense-data\")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||\"borderColor\",r=s[\"stroke-width\"]||\"borderWidth\",a,n,h,l=t&&t.color||this.color,d=t&&t[o]||i[o]||l,c=t&&t.options.dashStyle||i.dashStyle,p=t?.[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=tp(i.states[e],t.options.states?.[e]||{})).brightness,l=a.color||void 0!==h&&sA(l).brighten(a.brightness).get()||l,d=a[o]||d,p=a[r]||p,c=a.dashStyle||c,g=tx(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(tn(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=tp(e,t.getOrigin(t.origin,e)),a||(o.opacity=0),c=!0,p=\"animate\"),t.graphic=d=n[t.shapeType](o).add(t.group||i.group)}c&&d[p](tp(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=tl(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),q(this,\"afterDrawTracker\")}remove(){let t=this,e=t.chart;e.hasRendered&&e.series.forEach(function(e){e.type===t.type&&(e.isDirty=!0)}),iH.prototype.remove.apply(t,arguments)}}sL.defaultOptions=tp(iH.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)\"}),_(sL.prototype,{directTouch:!0,getSymbol:sP,negStacks:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"]}),iL.registerSeriesType(\"column\",sL);let sO=sL,{getDeferredAnimation:sE}=tq,{format:sI}=ee;!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=J(i.align),m=J(i.verticalAlign),x=t.pos(),y=j(l)&&j(d)&&r.isInsidePlot(l,Math.round(d),{inverted:a,paneCoordinates:!0,series:this}),b=this.visible&&t.visible&&j(l)&&(this.forceDL||n||y||tx(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=_({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),_(i,{width:l.width,height:l.height});let y=0,v=0;tn(p)&&!i.inside&&(y=p*(1-2*f),v=p*(1-2*m)),e.align(tp(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){q(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(th(a)&&a||th(r)&&r||\"var(--highcharts-background-color)\"),d=[],c=h(e),{animation:p,defer:g}=c[0],u=g?sE(i,p,e):{defer:0,duration:0};q(this,\"drawDataLabels\"),e.hasDataLabels?.()&&t.concat(e.condemnedPoints).forEach(t=>{let r=t.dataLabels||[],a=t.color||e.color;tM(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=tM(n.padding||0),y,b,v,k={},w=r[h],M=!w,C;if(c&&(b=j(y=tx(n[t.formatPrefix+\"Format\"],n.format))?sI(y,t,i):(n[t.formatPrefix+\"Formatter\"]||n.formatter).call(t,n,t),v=n.rotation,!i.styledMode&&(m.color=tx(n.color,m.color,th(e.color)?e.color:void 0,\"var(--highcharts-neutral-color-100)\"),\"contrast\"===m.color?(\"none\"!==p&&(C=p),t.contrastColor=o.getContrast(\"auto\"!==C&&\"contrast\"!==C&&th(C)&&C||(th(a)?a:\"\")),m.color=C&&\"contrast\"!==C||n.inside||0>ty(f||0)||s.stacking?t.contrastColor:l):delete t.contrastColor,s.cursor&&(m.cursor=s.cursor)),k={r:n.borderRadius??3,rotation:v,padding:x[0],paddingLeft:x[3%x.length],paddingRight:x[1%x.length],zIndex:1},i.styledMode||(k.fill=\"auto\"===p?t.color:p,k.stroke=\"auto\"===g?t.color:g,k[\"stroke-width\"]=n.borderWidth),tu(k,(t,e)=>{void 0===t&&delete k[e]})),!w||c&&j(b)&&!!(w.div||w.text?.foreignObject)==!!n.useHTML&&(w.rotation&&n.rotation||w.rotation===n.rotation)||(w=void 0,M=!0),c&&j(b)&&\"\"!==b&&(w?k.text=b:(w=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\":\"\")),w)){w.options=n,w.attr(k),i.styledMode?m.width&&w.css({width:m.width,textOverflow:m.textOverflow,whiteSpace:m.whiteSpace}):w.css(m).shadow(n.shadow),q(w,\"beforeAddingDataLabel\",{labelOptions:n,point:t});let s=d[h]=d[h]||this.initDataLabels(h,u,n);w.added||w.add(s),e.alignDataLabel(t,w,n,void 0,M),w.isActive=!0,r[h]&&r[h]!==w&&r[h].destroy(),r[h]=w}});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}),q(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(tl(t)&&!tl(e))i=t.map(function(t){return tp(t,e)});else if(tl(e)&&!tl(t))i=e.map(function(e){return tp(t,e)});else if(tl(t)||tl(e)){if(tl(t)&&tl(e))for(s=Math.max(t.length,e.length);s--;)i[s]=tp(t[s],e[s])}else i=tp(t,e);return i}function h(t){let e=t.chart.options.plotOptions;return tM(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)}}(M||(M={}));let sD=M,{composed:sB}=E,{series:sN}=iL;function sz(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=tp(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\"),sN.prototype.alignDataLabel.call(this,t,e,i,s,o),i.inside&&t.contrastColor&&e.css({color:t.contrastColor})}(C||(C={})).compose=function(t){sD.compose(sN),tb(sB,\"ColumnDataLabel\")&&(t.prototype.alignDataLabel=sz)};let sR=C;class sW extends sO{}sW.defaultOptions=tp(sO.defaultOptions,{}),_(sW.prototype,{inverted:!0}),iL.registerSeriesType(\"bar\",sW);let{column:sH,line:sG}=iL.seriesTypes;class sX extends sG{applyJitter(){let t=this,e=this.options.jitter,i=this.points.length;e&&this.points.forEach(function(s,o){[\"x\",\"y\"].forEach(function(r,a){if(e[r]&&!s.isNull){let n=`plot${r.toUpperCase()}`,h=t[`${r}Axis`],l=e[r]*h.transA;if(h&&!h.logarithmic){let t,e=Math.max(0,(s[n]||0)-l),d=Math.min(h.len,(s[n]||0)+l);s[n]=e+(d-e)*((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())}}sX.defaultOptions=tp(sG.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/>\"}}),_(sX.prototype,{allowOutsidePlotInteraction:!0,drawTracker:sH.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:[\"group\",\"markerGroup\",\"dataLabelsGroup\"]}),N(sX,\"afterTranslate\",function(){this.applyJitter()}),iL.registerSeriesType(\"scatter\",sX);let{deg2rad:sF}=E;(d=S||(S={})).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=[tx(r?.[0],\"50%\"),tx(r?.[1],\"50%\"),tx(l&&l<0?void 0:t.size,\"100%\"),tx(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]=tv(p,[s,o,a,g[2]][c])+(h?i:0);return g[3]>g[2]&&(g[3]=g[2]),tn(n)&&2*n<g[2]&&n>0&&(g[3]=g[2]-2*n),q(this,\"afterGetCenter\",{positions:g}),g},d.getStartAndEndRadians=function(t,e){let i=tn(t)?t:0,s=tn(e)&&e>i&&e-i<360?e:i+360;return{start:sF*(i+-90),end:sF*(s+-90)}};let sY=S,{setAnimation:sj}=tq;class s$ extends ip{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);const s=t=>{this.slice(\"select\"===t.type)};N(this,\"select\",s),N(this,\"unselect\",s)}isValid(){return tn(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;sj(i,s.chart),e=tx(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$.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=tv(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:sV}=sY,{noop:sU}=E;class sZ extends iH{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:tx(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:ew.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(H((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||tp(!0,n,i),tp(!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){q(this,\"translate\"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=sV(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}q(this,\"afterTranslate\")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s<e;s++)(o=t[s]).isValid()&&(!i||o.visible)&&(r+=o.y);for(s=0,this.total=r;s<e;s++)(o=t[s]).percentage=r>0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}sZ.defaultOptions=tp(iH.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}}}),_(sZ.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:sO.prototype.drawTracker,getCenter:sY.getCenter,getSymbol:sU,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:sO.prototype.pointAttribs,pointClass:s$,requireSorting:!1,searchPoint:sU,trackerGroups:[\"group\",\"dataLabelsGroup\"]}),iL.registerSeriesType(\"pie\",sZ);let{composed:s_,noop:sK}=E,{distribute:sq}=ei,{series:sJ}=iL;!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,g,u,f,m=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:\"auto\"}).css({width:\"auto\",textOverflow:\"clip\"}),t.shortened=!1)})}),sJ.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=n[2]/2,o=e.options,r=tv(o?.distance||0,s);0===i&&d[t.half].push(t),!j(o?.style?.width)&&e.getBBox().width>a&&(e.css({width:Math.round(.7*a)+\"px\"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),m=Math.max(m,r)})}),d.forEach((e,a)=>{let d=e.length,g=[],x,y,b=0,v;d&&(t.sortByAngle(e,a-.5),m>0&&(x=Math.max(0,l-h-m),y=Math.min(l+h+m,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,l-h-s.distance),s.bottom=Math.min(l+h+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},g.push(t.distributeBox))})}),sq(g,v=y+b-x,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(l=>{let d=l.options||{},m=i.distributeBox,x=l.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=l.lineHeight||21,k=(v-l.getBBox().height)/2,w=0,M=y,C=\"inherit\";if(x){if(g&&j(m)&&x.distance>0&&(void 0===m.pos?C=\"hidden\":(f=m.size,M=p.radialDistributionY(i,l))),d.justify)w=p.justify(i,l,h,n);else switch(d.alignTo){case\"connectors\":w=p.alignToConnectors(e,a,s,r);break;case\"plotEdges\":w=p.alignToPlotEdges(l,a,s,r);break;default:w=p.radialDistributionX(t,i,M-k,y,l)}if(x.attribs={visibility:C,align:x.alignment},x.posAttribs={x:w+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:M+(d.y||0)-v/2},x.computed.x=w,x.computed.y=M-k,tx(d.crop,!0)){let t;w-(u=l.getBBox().width)<b&&1===a?(t=Math.round(u-w+b),c[3]=Math.max(t,c[3])):w+u>s-b&&0===a&&(t=Math.round(w+u-s+b),c[1]=Math.max(t,c[1])),M-f/2<0?c[0]=Math.max(Math.round(-M+f/2),c[0]):M+f/2>o&&(c[2]=Math.max(Math.round(M+f/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===R(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(tn(a)){let h;g=s.connector,n&&n.distance>0?(h=!g,g||(s.connector=g=i.renderer.path().addClass(\"highcharts-data-label-connector  highcharts-color-\"+e.colorIndex+(e.className?\" \"+e.className:\"\")).add(t.dataLabelsGroups?.[o])),i.styledMode||g.attr({\"stroke-width\":a,stroke:r||e.color||\"var(--highcharts-neutral-color-60)\"}),g[h?\"attr\":\"animate\"]({d:e.getConnectorPath(s)}),g.attr({visibility:n.attribs?.visibility})):g&&(s.connector=g.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+\"px\",textOverflow:t.options?.style?.textOverflow||\"ellipsis\"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?\"animate\":\"attr\"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,a=null!==i.size;return!a&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=H(r,o,e[2]-Math.max(t[0],t[2])):(r=H(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,tv(i.innerSize||0,r)),r),this.translate(e),this.drawDataLabels&&this.drawDataLabels()):a=!0),a}t.compose=function(t){if(sD.compose(sJ),tb(s_,\"PieDataLabel\")){let a=t.prototype;a.dataLabelPositioners=e,a.alignDataLabel=sK,a.drawDataLabels=s,a.getDataLabelPosition=i,a.placeDataLabels=o,a.verifyDataLabelOverflow=r}}}(T||(T={}));let sQ=T;(c=A||(A={})).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}},c.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},c.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},c.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:s0}=A;function s1(t,e){let i,s=!1;return t&&(i=t.newOpacity,t.oldOpacity!==i&&(t.hasClass(\"highcharts-data-label\")?(t[i?\"removeClass\":\"addClass\"](\"highcharts-data-label-hidden\"),s=!0,t[t.isOld||t.placed?\"animate\":\"attr\"]({opacity:i},void 0,function(){e.styledMode||t.css({pointerEvents:i?\"auto\":\"none\"})}),q(e,\"afterHideOverlappingLabel\")):t.attr({opacity:i})),t.isOld=!0),s}let{defaultOptions:s2}=tX,{noop:s5}=E,s3={radius:0,scope:\"stack\",where:void 0},s6=s5,s9=s5;function s4(t,e,i,s,o={}){let r=s6(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(tv(o.borderRadius||0,l-h),(l-h)/2,l*g/(1+g)),0),f=Math.min(u,p/Math.PI*2*h),m=r.length-1;for(;m--;)(a||0!==m&&3!==m)&&(n||1!==m&&2!==m)&&!function(t,e,i){let s,o,r,a=t[e],n=t[e+1];if(\"Z\"===n[0]&&(n=t[0]),(\"M\"===a[0]||\"L\"===a[0])&&\"A\"===n[0]?(s=a,o=n,r=!0):\"A\"===a[0]&&(\"M\"===n[0]||\"L\"===n[0])&&(s=n,o=a),s&&o&&o.params){let a=o[1],n=o[5],h=o.params,{start:l,end:d,cx:c,cy:p}=h,g=n?a-i:a+i,u=g?Math.asin(i/g):0,f=n?u:-u,m=Math.cos(u)*g;r?(h.start=l+f,s[1]=c+m*Math.cos(l),s[2]=p+m*Math.sin(l),t.splice(e+1,0,[\"A\",i,i,0,0,1,c+a*Math.cos(h.start),p+a*Math.sin(h.start)])):(h.end=d-f,o[6]=c+a*Math.cos(h.end),o[7]=p+a*Math.sin(h.end),t.splice(e+1,0,[\"A\",i,i,0,0,1,c+m*Math.cos(d),p+m*Math.sin(d)])),o[4]=Math.abs(h.end-h.start)<Math.PI?0:1}}(r,m,m>1?f:u);return r}function s8(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i=\"percent\"===t.stacking,s=s2.plotOptions?.[this.type]?.borderRadius,o=s7(t.borderRadius,tc(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(tv(o.radius,n),n/2,\"all\"===g?c/2:1/0)||0;\"end\"===g&&(p&&(d-=u),c+=u),_(a,{brBoxHeight:c,brBoxY:d,r:u})}}}}function s7(t,e){return tc(t)||(t={radius:t||0}),tp(s3,e,t)}function ot(){let t=s7(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=tv(t.radius,(i.r||0)-(i.innerR||0)))}}function oe(t,e,i,s,o={}){let r=s9(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 oi(t,e){let i=t.condition;(i.callback||function(){return this.chartWidth<=tx(i.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=tx(i.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=tx(i.minWidth,0)&&this.chartHeight>=tx(i.minHeight,0)}).call(this,this)&&e.push(t._id)}function os(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=tI()),this.matchResponsiveRule(t,o)},this);let a=tp(...o.map(t=>ts(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=U(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)}(P||(P={})).compose=function(t){let e=t.prototype;return e.matchResponsiveRule||_(e,{matchResponsiveRule:oi,setResponsive:os}),t};let oo=P;E.AST=t5,E.Axis=e2,E.Chart=i9,E.Color=t$,E.DataLabel=sD,E.DataTable=iw,E.DataTableCore=iw,E.Fx=tZ,E.HTMLElement=eF,E.Legend=iZ,E.LegendSymbol=iS,E.PlotLineOrBand=e9,E.Point=ip,E.Pointer=ib,E.Series=iH,E.SeriesRegistry=iL,E.StackItem=so,E.SVGElement=eg,E.SVGRenderer=eH,E.Templating=ee,E.Tick=eU,E.Time=tR,E.Tooltip=ia,E.addEvent=N,E.animObject=tq.animObject,E.animate=tq.animate,E.arrayMax=R,E.arrayMin=z,E.attr=W,E.chart=i9.chart,E.clamp=H,E.color=t$.parse,E.correctFloat=G,E.createElement=X,E.css=Y,E.crisp=F,E.dateFormat=ee.dateFormat,E.defaultOptions=tX.defaultOptions,E.defined=j,E.destroyObjectProperties=$,E.diffObjects=U,E.discardElement=V,E.distribute=ei.distribute,E.erase=Z,E.error=tL,E.extend=_,E.extendClass=K,E.find=ts,E.fireEvent=q,E.format=ee.format,E.getAlignFactor=J,E.getClosestDistance=Q,E.getDeferredAnimation=tq.getDeferredAnimation,E.getMagnitude=tt,E.getNestedProperty=te,E.getOptions=tX.getOptions,E.getStyle=ti,E.insertItem=tO,E.isArray=tl,E.isClass=ta,E.isDOMElement=tr,E.isFunction=td,E.isNumber=tn,E.isObject=tc,E.isString=th,E.internalClearTimeout=to,E.merge=tp,E.normalizeTickInterval=tg,E.numberFormat=ee.numberFormat,E.objectEach=tu,E.offset=tf,E.pad=tm,E.pick=tx,E.pushUnique=tb,E.pInt=ty,E.relativeLength=tv,E.removeEvent=tw,E.replaceNested=tk,E.seriesType=iL.seriesType,E.setAnimation=tq.setAnimation,E.setOptions=tX.setOptions,E.splat=tM,E.stableSort=tC,E.stop=tq.stop,E.syncTimeout=tS,E.time=tX.defaultTime,E.ucfirst=tT,E.timers=tZ.timers,E.timeUnits=tE,E.uniqueKey=tI,E.useSerialIds=function(e){return t=tx(e,t)},E.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;N(t,\"afterColumnTranslate\",s8,{order:9}),N(s,\"afterTranslate\",ot),e.symbolCustomAttribs.push(\"borderRadius\",\"brBoxHeight\",\"brBoxY\",\"brEnd\",\"brStart\"),s6=o.arc,s9=o.roundedRect,o.arc=s4,o.roundedRect=oe}}(E.Series,E.SVGElement,E.SVGRenderer),sR.compose(E.Series.types.column),sD.compose(E.Series),e5.compose(E.Axis),eF.compose(E.SVGRenderer),iZ.compose(E.Chart),e3.compose(E.Axis),(o=(p=E.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(s0({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=J(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&&s1(e,this)&&(l=!0);l&&q(this,\"afterHideAllOverlappingLabels\")},N(p,\"render\",function(){let t=this,e=[];for(let i of t.labelCollectors||[])e=e.concat(i());for(let i of t.yAxis||[])i.stacking&&i.options.stackLabels&&!i.options.stackLabels.allowOverlap&&tu(i.stacking.stacks,t=>{tu(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=s=>{for(let o of s)o.visible&&(o.dataLabels||[]).forEach(s=>{let r=s.options||{};s.labelrank=tx(r.labelrank,o.labelrank,o.shapeArgs?.height),r.allowOverlap??(i.is(\"pie\")&&Number(r.distance)>0)?(s.oldOpacity=s.opacity,s.newOpacity=1,s1(s,t)):e.push(s)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)})),sQ.compose(E.Series.types.pie),e9.compose(E.Chart,E.Axis),ib.compose(E.Chart),oo.compose(E.Chart),se.compose(E.Axis,E.Chart,E.Series),sm.compose(E.Axis,E.Chart,E.Series),ia.compose(E.Pointer);let or=E;return O.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// A way to always scroll/jump to the same place when redirecting from a link\n// is to add an anchor tag to your links. (#tabs for ex).\n// This controller adds the chosen to-value as an anchor to all a elements\n// within your controller block. Just make sure you also have an element with\n// an id the same as your to-value present to jump to.\n//\n// for ex:\n// <div data-controller=\"jump\" data-jump-to-value=\"tabs\" id=\"tabs\">\n\nexport default class extends Controller {\n  static values = { to: String };\n\n  connect () {\n    if (this.toValue) {\n      this.element.querySelectorAll('a').forEach(link => {\n        const newHref = link.href + `#${this.toValue}`;\n        link.href = newHref;\n      });\n    }\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\n// A simple popover controller that 'copies' the template on top in the body\n// so it will always hover over the rest of your page.\n//\n// Needs a data-popover-target=\"template\" attribute to target the content that needs to be shown.\n// For the rest a show/hide to toggle the popover. this can be done with for ex. click or mouseover/mouseout.\nexport default class extends Controller {\n  static targets = ['template'];\n  EXTRA_MARGIN = 40;\n\n  connect () {\n    this.template = this.templateTarget;\n  }\n\n  show (evt) {\n    const target = evt.target;\n\n    const targetRect = target.getBoundingClientRect();\n    const bodyRect = document.body.getBoundingClientRect();\n    const windowWidth = window.innerWidth;\n\n    if (!this.popup) {\n      this.popup = this.template.cloneNode(true);\n    }\n\n    // To get the absolute x and y pos of the element the tooltip should position to.\n    const posX = targetRect.x - bodyRect.x;\n    // Add the height (offsetHeight) so the tooltip hang under. Normally it positions at top left.\n    const posY = targetRect.y - bodyRect.y + target.offsetHeight;\n    const popupStyle = `transform: translate(${posX}px, ${posY}px);`;\n\n    document.body.insertAdjacentElement('afterbegin', this.popup);\n    this.popup.classList.remove('hidden');\n\n    const popupRect = this.popup.getBoundingClientRect();\n    // To prevent part of the popup going out the right side of the screen when the popup is close to the edge.\n    // This we add a max-with witht the remaining screen space minus a little bit.\n    const extraPopupWidth = (posX + popupRect.width) - (windowWidth - this.EXTRA_MARGIN);\n\n    this.popup.style = `${popupStyle} max-width: ${popupRect.width - extraPopupWidth}px;`;\n  }\n\n  hide () {\n    this.popup.remove();\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\n// A simple panzoom controller that can pan and zoom the element of the data-controller attribute. It should work on a\n// lot of html elements. Panning happens with left mouse pressed and zooming with scrollwheel or scroll (two fingers) on\n// a macbook trackpad.\n//\n// Set up for ex:\n// <div data-controller=\"panzoom\" class=\"flex items-center justify-center h-screen\">\n//   <div class=\"flex absolute top-10 right-10 flex-col gap-2\">\n//     <div class=\"bg-white p-2 z-20 rounded text-center\" data-action=\"click->panzoom#reset\">Reset</div>\n//     <div class=\"bg-white p-4 z-20 rounded text-center\" data-action=\"click->panzoom#zoomIn\">+</div>\n//     <div class=\"bg-white p-4 z-20 rounded text-center\" data-action=\"click->panzoom#zoomOut\">-</div>\n//   </div>\n//   <%= image_tag(@id_verification.id_document, class: \"cursor-zoom-in z-10\", \"data-panzoom-target\": \"zoomable\") %>\n//   <div class=\"h-screen w-screen absolute z-0\" data-action=\"click->modal#close\"></div>\n// </div>\n\nexport default class extends Controller {\n  static values = {\n    transformMatrix: { type: Object, default: { scaleX: 1.0, skewX: 0.0, skewY: 0.0, scaleY: 1.0, transX: 0.0, transY: 0.0 } },\n    panning: { type: Boolean, default: false },\n    oldX: { type: Number, default: 0.0 },\n    oldY: { type: Number, default: 0.0 },\n    scrollZoomIncrement: { type: Number, default: 0.03 }\n  };\n\n  static targets = ['zoomable'];\n\n  // Set the input matrix as the transformMatrixValue and set it on the element style\n  updateTransformMatrix (matrix) {\n    this.transformMatrixValue = matrix;\n    const matrixList = Object.values(matrix);\n    const str = `matrix(${matrixList.join(', ')})`;\n    this.zoomableTarget.style.transform = str;\n  }\n\n  // Apply the difference (delta) of the panned movement to matrix (and element style)\n  applyTranslate (dx, dy) {\n    // These matrix values can overwrite each other in different controller instances so better make a true clone\n    const newTransformObject = structuredClone(this.transformMatrixValue);\n    newTransformObject.transX += dx;\n    newTransformObject.transY += dy;\n    this.updateTransformMatrix(newTransformObject);\n  }\n\n  // Apply the scale difference to our element\n  applyScale (deltaScale, x, y) {\n    // These matrix values can overwrite each other in different controller instances so better make a true clone\n    const newTransformObject = structuredClone(this.transformMatrixValue);\n    // width and height of the element\n    const width = this.zoomableTarget.width ? this.zoomableTarget.width : this.zoomableTarget.offsetWidth;\n    const height = this.zoomableTarget.height ? this.zoomableTarget.height : this.zoomableTarget.offsetHeight;\n    // divide so we can scale from the center instead of the top left corner\n    const transX = x - (width / 2);\n    const transY = y - (height / 2);\n\n    // first translate to mouse position\n    this.applyTranslate(transX, transY);\n    // scale the element with scroll increment (+ a bit extra so we can scale exponentionally)\n    deltaScale = deltaScale * newTransformObject.scaleX;\n    newTransformObject.scaleX += deltaScale;\n    newTransformObject.scaleY += deltaScale;\n    this.updateTransformMatrix(newTransformObject);\n    // translate back so it looks like we scale from the mouse position (with the scale offset incorporated in the translation)\n    this.applyTranslate(-(transX * deltaScale), -(transY * deltaScale));\n  }\n\n  startPanning (e) {\n    e.preventDefault();\n    this.zoomableTarget.style.cursor = 'grab';\n    this.panningValue = true;\n    this.oldXValue = e.clientX;\n    this.oldYValue = e.clientY;\n  }\n\n  stopPanning (e) {\n    this.zoomableTarget.style.cursor = 'zoom-in';\n    this.panningValue = false;\n  }\n\n  pan (e) {\n    if (this.panningValue) {\n      // get difference of mouse movement based on current mouse position - the old mouse position\n      const deltaX = e.clientX - this.oldXValue;\n      const deltaY = e.clientY - this.oldYValue;\n      // apply\n      this.applyTranslate(deltaX, deltaY);\n      // set the old mouse position to the current mouse position\n      this.oldXValue = e.clientX;\n      this.oldYValue = e.clientY;\n    }\n  }\n\n  zoomIn () {\n    this.applyScale(0.3, this.zoomableTarget.offsetWidth / 2, this.zoomableTarget.offsetHeight / 2);\n  }\n\n  zoomOut () {\n    this.applyScale(-0.3, this.zoomableTarget.offsetWidth / 2, this.zoomableTarget.offsetHeight / 2);\n  }\n\n  reset () {\n    this.updateTransformMatrix({ scaleX: 1.0, skewX: 0.0, skewY: 0.0, scaleY: 1.0, transX: 0.0, transY: 0.0 });\n  }\n\n  scroll (e) {\n    // Get zoom direction\n    // The event.detail shows a signed integer which is 1 (or -1 on the other direction) for a touch event and\n    // 3 for mouse scroll. The zooming was initially a bit fast for touchpads, but fine for mouse scroll. This can now\n    // make a distinction between the two and speed accordingly.\n    const delta = this.scrollZoomIncrementValue * (e.wheelData || -e.detail);\n    if (delta < 0) {\n      this.zoomableTarget.style.cursor = 'zoom-out';\n    } else {\n      this.zoomableTarget.style.cursor = 'zoom-in';\n    }\n    // Increment or decrement based on scroll direction and pass the mouse position offset of the element as well\n    // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/offsetX\n    this.applyScale(delta, e.offsetX, e.offsetY);\n  }\n\n  connect () {\n    this.zoomableTarget.addEventListener('mousedown', this.startPanning.bind(this));\n    this.zoomableTarget.addEventListener('mouseup', this.stopPanning.bind(this));\n    this.zoomableTarget.addEventListener('mouseleave', this.stopPanning.bind(this));\n    this.zoomableTarget.addEventListener('mousemove', this.pan.bind(this));\n    this.zoomableTarget.addEventListener('DOMMouseScroll', this.scroll.bind(this), false);\n    this.zoomableTarget.addEventListener('mousewheel', this.scroll.bind(this), false);\n  }\n\n  disconnect () {\n    this.zoomableTarget.removeEventListener('mousedown', this.startPanning.bind(this));\n    this.zoomableTarget.removeEventListener('mouseup', this.stopPanning.bind(this));\n    this.zoomableTarget.removeEventListener('mouseleave', this.stopPanning.bind(this));\n    this.zoomableTarget.removeEventListener('mousemove', this.pan.bind(this));\n    this.zoomableTarget.removeEventListener('DOMMouseScroll', this.scroll.bind(this), false);\n    this.zoomableTarget.removeEventListener('mousewheel', this.scroll.bind(this), false);\n    this.zoomableTarget.style.cursor = null;\n  }\n}\n", "/* eslint camelcase: \"off\" */\n/* eslint import/first: \"off\" */\n\nimport Rails from '@rails/ujs';\nimport '@hotwired/turbo-rails';\nimport { application } from './controllers/application';\nimport { Alert, Dropdown, Tabs, Slideover, Modal } from 'tailwindcss-stimulus-components';\nimport * as ActiveStorage from '@rails/activestorage';\nimport './direct_uploads.js'; // If we want to use this in places like web for instance, also import it there.\n\n// Enable Rails' Unobtrusive JavaScript (UJS) helpers\nRails.start();\nActiveStorage.start();\n\n// Import and register TailwindCSS Components\napplication.register('alert', Alert);\napplication.register('dropdown', Dropdown);\napplication.register('tabs', Tabs);\napplication.register('slideover', Slideover);\napplication.register('modal', Modal);\n\nimport Admin__PaymentSearchesController from './controllers/admin/payment_searches_controller.js';\napplication.register('admin--payment-searches', Admin__PaymentSearchesController);\n\nimport Admin__StatsChartController from './controllers/admin/stats_chart_controller.js';\napplication.register('admin--stats-chart', Admin__StatsChartController);\n\nimport Admin__AuthController from './controllers/admin/auth_controller.js';\napplication.register('admin--auth', Admin__AuthController);\n\nimport Admin__RetailerBankExclusionsController from './controllers/admin/retailer_bank_exclusions.js';\napplication.register('admin--retailer-bank-exclusions', Admin__RetailerBankExclusionsController);\n\nimport ImmediateInputSubmitController from './controllers/immediate_input_submit_controller.js';\napplication.register('immediate-input-submit', ImmediateInputSubmitController);\n\nimport LocaltimeFormatController from './controllers/localtime_format_controller.js';\napplication.register('localtime-format', LocaltimeFormatController);\n\nimport Admin__BulkController from './controllers/admin/bulk_controller.js';\napplication.register('admin--bulk', Admin__BulkController);\n\nimport Admin__DraggableController from './controllers/admin/draggable_controller.js';\napplication.register('admin--draggable', Admin__DraggableController);\n\nimport ToggleController from './controllers/toggle_controller.js';\napplication.register('toggle', ToggleController);\n\nimport DisableController from './controllers/disable_controller.js';\napplication.register('disable', DisableController);\n\nimport Admin__ReorderController from './controllers/admin/reorder_controller.js';\napplication.register('admin--reorder', Admin__ReorderController);\n\nimport Admin__ComboboxController from './controllers/admin/combobox_controller.js';\napplication.register('admin--combobox', Admin__ComboboxController);\n\nimport ClipboardController from './controllers/clipboard_controller.js';\napplication.register('clipboard', ClipboardController);\n\nimport Admin__ColorPreviewController from './controllers/admin/color_preview_controller.js';\napplication.register('admin--color-preview', Admin__ColorPreviewController);\n\nimport Admin__CashbackPercentController from './controllers/admin/cashback_percent_controller.js';\napplication.register('admin--cashback-percent', Admin__CashbackPercentController);\n\nimport JumpController from './controllers/jump_controller.js';\napplication.register('jump', JumpController);\n\nimport PopoverController from './controllers/popover_controller.js';\napplication.register('popover', PopoverController);\n\nimport PanzoomController from './controllers/panzoom_controller.js';\napplication.register('panzoom', PanzoomController);\n"],
  "mappings": "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",
  "names": ["consumer", "error", "consumer", "consumer", "subscription", "_a", "_b", "i", "n", "h", "l", "d", "c", "p", "g", "u", "f", "m", "x", "b", "v", "w", "C", "T", "L", "t", "e", "I", "s", "o", "r", "a", "$", "V", "y", "_c", "k", "M", "S", "A", "P", "O", "E", "D", "B", "N", "_d", "_e", "_f", "id", "_g", "_h", "i2", "z", "R", "W", "H", "G", "X", "F", "Y", "U", "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", "x", "start", "m"]
}
