{"version":3,"file":"application.js","mappings":"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","sources":["webpack://app/./node_modules/@rails/actioncable/src/adapters.js","webpack://app/./node_modules/@rails/actioncable/src/logger.js","webpack://app/./node_modules/@rails/actioncable/src/connection_monitor.js","webpack://app/./node_modules/@rails/actioncable/src/internal.js","webpack://app/./node_modules/@rails/actioncable/src/connection.js","webpack://app/./node_modules/@rails/actioncable/src/subscription.js","webpack://app/./node_modules/@rails/actioncable/src/subscription_guarantor.js","webpack://app/./node_modules/@rails/actioncable/src/subscriptions.js","webpack://app/./node_modules/@rails/actioncable/src/consumer.js","webpack://app/./node_modules/@rails/actioncable/src/index.js","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/define property getters","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/webpack/runtime/make namespace object","webpack://app/./node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js","webpack://app/./node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js","webpack://app/./node_modules/@hotwired/turbo-rails/app/javascript/turbo/snakeize.js","webpack://app/./node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js","webpack://app/./node_modules/@hotwired/turbo-rails/app/javascript/turbo/index.js","webpack://app/./node_modules/@hotwired/turbo-rails/app/javascript/turbo/fetch_requests.js","webpack://app/./node_modules/@hotwired/stimulus/dist/stimulus.js","webpack://app/./app/javascript/controllers/application.js","webpack://app/./app/javascript/controllers/index.js","webpack://app/./app/javascript/controllers/hello_controller.js","webpack://app/./node_modules/@popperjs/core/lib/enums.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://app/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://app/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://app/./node_modules/@popperjs/core/lib/utils/math.js","webpack://app/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://app/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://app/./node_modules/@popperjs/core/lib/utils/within.js","webpack://app/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://app/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://app/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://app/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://app/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://app/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://app/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://app/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://app/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://app/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://app/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://app/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://app/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://app/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://app/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://app/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://app/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://app/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://app/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://app/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://app/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://app/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://app/./node_modules/@popperjs/core/lib/createPopper.js","webpack://app/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://app/./node_modules/@popperjs/core/lib/popper.js","webpack://app/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://app/./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack://app/./node_modules/trix/dist/trix.esm.min.js","webpack://app/./node_modules/@rails/actiontext/app/assets/javascripts/actiontext.js"],"sourcesContent":["export default {\n logger: self.console,\n WebSocket: self.WebSocket\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 recordPing() {\n this.pingedAt = now()\n }\n\n recordConnect() {\n this.reconnectAttempts = 0\n this.recordPing()\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 },\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 logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${protocols}`)\n if (this.webSocket) { this.uninstallEventHandlers() }\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols)\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 // 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 switch (type) {\n case message_types.welcome:\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 this.monitor.recordPing()\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier)\n return this.subscriptions.notify(identifier, \"connected\")\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 }\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\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\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","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/*\nTurbo 7.2.4\nCopyright © 2022 37signals LLC\n */\n(function () {\n if (window.Reflect === undefined ||\n window.customElements === undefined ||\n window.customElements.polyfillWrapFlushCallback) {\n return;\n }\n const BuiltInHTMLElement = HTMLElement;\n const wrapperForTheName = {\n HTMLElement: function HTMLElement() {\n return Reflect.construct(BuiltInHTMLElement, [], this.constructor);\n },\n };\n window.HTMLElement = wrapperForTheName[\"HTMLElement\"];\n HTMLElement.prototype = BuiltInHTMLElement.prototype;\n HTMLElement.prototype.constructor = HTMLElement;\n Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement);\n})();\n\n/**\n * The MIT License (MIT)\n * \n * Copyright (c) 2019 Javan Makhmali\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all 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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n(function(prototype) {\n if (typeof prototype.requestSubmit == \"function\") return\n\n prototype.requestSubmit = function(submitter) {\n if (submitter) {\n validateSubmitter(submitter, this);\n submitter.click();\n } else {\n submitter = document.createElement(\"input\");\n submitter.type = \"submit\";\n submitter.hidden = true;\n this.appendChild(submitter);\n submitter.click();\n this.removeChild(submitter);\n }\n };\n\n function validateSubmitter(submitter, form) {\n submitter instanceof HTMLElement || raise(TypeError, \"parameter 1 is not of type 'HTMLElement'\");\n submitter.type == \"submit\" || raise(TypeError, \"The specified element is not a submit button\");\n submitter.form == form || raise(DOMException, \"The specified element is not owned by this form element\", \"NotFoundError\");\n }\n\n function raise(errorConstructor, message, name) {\n throw new errorConstructor(\"Failed to execute 'requestSubmit' on 'HTMLFormElement': \" + message + \".\", name)\n }\n})(HTMLFormElement.prototype);\n\nconst submittersByForm = new WeakMap();\nfunction findSubmitterFromClickTarget(target) {\n const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n const candidate = element ? element.closest(\"input, button\") : null;\n return (candidate === null || candidate === void 0 ? void 0 : candidate.type) == \"submit\" ? candidate : null;\n}\nfunction clickCaptured(event) {\n const submitter = findSubmitterFromClickTarget(event.target);\n if (submitter && submitter.form) {\n submittersByForm.set(submitter.form, submitter);\n }\n}\n(function () {\n if (\"submitter\" in Event.prototype)\n return;\n let prototype;\n if (\"SubmitEvent\" in window && /Apple Computer/.test(navigator.vendor)) {\n prototype = window.SubmitEvent.prototype;\n }\n else if (\"SubmitEvent\" in window) {\n return;\n }\n else {\n prototype = window.Event.prototype;\n }\n addEventListener(\"click\", clickCaptured, true);\n Object.defineProperty(prototype, \"submitter\", {\n get() {\n if (this.type == \"submit\" && this.target instanceof HTMLFormElement) {\n return submittersByForm.get(this.target);\n }\n },\n });\n})();\n\nvar FrameLoadingStyle;\n(function (FrameLoadingStyle) {\n FrameLoadingStyle[\"eager\"] = \"eager\";\n FrameLoadingStyle[\"lazy\"] = \"lazy\";\n})(FrameLoadingStyle || (FrameLoadingStyle = {}));\nclass FrameElement extends HTMLElement {\n constructor() {\n super();\n this.loaded = Promise.resolve();\n this.delegate = new FrameElement.delegateConstructor(this);\n }\n static get observedAttributes() {\n return [\"disabled\", \"complete\", \"loading\", \"src\"];\n }\n connectedCallback() {\n this.delegate.connect();\n }\n disconnectedCallback() {\n this.delegate.disconnect();\n }\n reload() {\n return this.delegate.sourceURLReloaded();\n }\n attributeChangedCallback(name) {\n if (name == \"loading\") {\n this.delegate.loadingStyleChanged();\n }\n else if (name == \"complete\") {\n this.delegate.completeChanged();\n }\n else if (name == \"src\") {\n this.delegate.sourceURLChanged();\n }\n else {\n this.delegate.disabledChanged();\n }\n }\n get src() {\n return this.getAttribute(\"src\");\n }\n set src(value) {\n if (value) {\n this.setAttribute(\"src\", value);\n }\n else {\n this.removeAttribute(\"src\");\n }\n }\n get loading() {\n return frameLoadingStyleFromString(this.getAttribute(\"loading\") || \"\");\n }\n set loading(value) {\n if (value) {\n this.setAttribute(\"loading\", value);\n }\n else {\n this.removeAttribute(\"loading\");\n }\n }\n get disabled() {\n return this.hasAttribute(\"disabled\");\n }\n set disabled(value) {\n if (value) {\n this.setAttribute(\"disabled\", \"\");\n }\n else {\n this.removeAttribute(\"disabled\");\n }\n }\n get autoscroll() {\n return this.hasAttribute(\"autoscroll\");\n }\n set autoscroll(value) {\n if (value) {\n this.setAttribute(\"autoscroll\", \"\");\n }\n else {\n this.removeAttribute(\"autoscroll\");\n }\n }\n get complete() {\n return !this.delegate.isLoading;\n }\n get isActive() {\n return this.ownerDocument === document && !this.isPreview;\n }\n get isPreview() {\n var _a, _b;\n return (_b = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.documentElement) === null || _b === void 0 ? void 0 : _b.hasAttribute(\"data-turbo-preview\");\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\nfunction expandURL(locatable) {\n return new URL(locatable.toString(), document.baseURI);\n}\nfunction getAnchor(url) {\n let anchorMatch;\n if (url.hash) {\n return url.hash.slice(1);\n }\n else if ((anchorMatch = url.href.match(/#(.*)$/))) {\n return anchorMatch[1];\n }\n}\nfunction getAction(form, submitter) {\n const action = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formaction\")) || form.getAttribute(\"action\") || form.action;\n return expandURL(action);\n}\nfunction getExtension(url) {\n return (getLastPathComponent(url).match(/\\.[^.]*$/) || [])[0] || \"\";\n}\nfunction isHTML(url) {\n return !!getExtension(url).match(/^(?:|\\.(?:htm|html|xhtml|php))$/);\n}\nfunction isPrefixedBy(baseURL, url) {\n const prefix = getPrefix(url);\n return baseURL.href === expandURL(prefix).href || baseURL.href.startsWith(prefix);\n}\nfunction locationIsVisitable(location, rootLocation) {\n return isPrefixedBy(location, rootLocation) && isHTML(location);\n}\nfunction getRequestURL(url) {\n const anchor = getAnchor(url);\n return anchor != null ? url.href.slice(0, -(anchor.length + 1)) : url.href;\n}\nfunction toCacheKey(url) {\n return getRequestURL(url);\n}\nfunction urlsAreEqual(left, right) {\n return expandURL(left).href == expandURL(right).href;\n}\nfunction getPathComponents(url) {\n return url.pathname.split(\"/\").slice(1);\n}\nfunction getLastPathComponent(url) {\n return getPathComponents(url).slice(-1)[0];\n}\nfunction getPrefix(url) {\n return addTrailingSlash(url.origin + url.pathname);\n}\nfunction addTrailingSlash(value) {\n return value.endsWith(\"/\") ? value : value + \"/\";\n}\n\nclass FetchResponse {\n constructor(response) {\n this.response = response;\n }\n get succeeded() {\n return this.response.ok;\n }\n get failed() {\n return !this.succeeded;\n }\n get clientError() {\n return this.statusCode >= 400 && this.statusCode <= 499;\n }\n get serverError() {\n return this.statusCode >= 500 && this.statusCode <= 599;\n }\n get redirected() {\n return this.response.redirected;\n }\n get location() {\n return expandURL(this.response.url);\n }\n get isHTML() {\n return this.contentType && this.contentType.match(/^(?:text\\/([^\\s;,]+\\b)?html|application\\/xhtml\\+xml)\\b/);\n }\n get statusCode() {\n return this.response.status;\n }\n get contentType() {\n return this.header(\"Content-Type\");\n }\n get responseText() {\n return this.response.clone().text();\n }\n get responseHTML() {\n if (this.isHTML) {\n return this.response.clone().text();\n }\n else {\n return Promise.resolve(undefined);\n }\n }\n header(name) {\n return this.response.headers.get(name);\n }\n}\n\nfunction isAction(action) {\n return action == \"advance\" || action == \"replace\" || action == \"restore\";\n}\n\nfunction activateScriptElement(element) {\n if (element.getAttribute(\"data-turbo-eval\") == \"false\") {\n return element;\n }\n else {\n const createdScriptElement = document.createElement(\"script\");\n const cspNonce = getMetaContent(\"csp-nonce\");\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}\nfunction copyElementAttributes(destinationElement, sourceElement) {\n for (const { name, value } of sourceElement.attributes) {\n destinationElement.setAttribute(name, value);\n }\n}\nfunction createDocumentFragment(html) {\n const template = document.createElement(\"template\");\n template.innerHTML = html;\n return template.content;\n}\nfunction dispatch(eventName, { target, cancelable, detail } = {}) {\n const event = new CustomEvent(eventName, {\n cancelable,\n bubbles: true,\n detail,\n });\n if (target && target.isConnected) {\n target.dispatchEvent(event);\n }\n else {\n document.documentElement.dispatchEvent(event);\n }\n return event;\n}\nfunction nextAnimationFrame() {\n return new Promise((resolve) => requestAnimationFrame(() => resolve()));\n}\nfunction nextEventLoopTick() {\n return new Promise((resolve) => setTimeout(() => resolve(), 0));\n}\nfunction nextMicrotask() {\n return Promise.resolve();\n}\nfunction parseHTMLDocument(html = \"\") {\n return new DOMParser().parseFromString(html, \"text/html\");\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}\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}\nfunction uuid() {\n return Array.from({ length: 36 })\n .map((_, i) => {\n if (i == 8 || i == 13 || i == 18 || i == 23) {\n return \"-\";\n }\n else if (i == 14) {\n return \"4\";\n }\n else if (i == 19) {\n return (Math.floor(Math.random() * 4) + 8).toString(16);\n }\n else {\n return Math.floor(Math.random() * 15).toString(16);\n }\n })\n .join(\"\");\n}\nfunction getAttribute(attributeName, ...elements) {\n for (const value of elements.map((element) => element === null || element === void 0 ? void 0 : element.getAttribute(attributeName))) {\n if (typeof value == \"string\")\n return value;\n }\n return null;\n}\nfunction hasAttribute(attributeName, ...elements) {\n return elements.some((element) => element && element.hasAttribute(attributeName));\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}\nfunction clearBusyState(...elements) {\n for (const element of elements) {\n if (element.localName == \"turbo-frame\") {\n element.removeAttribute(\"busy\");\n }\n element.removeAttribute(\"aria-busy\");\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 element.addEventListener(\"load\", onComplete, { once: true });\n element.addEventListener(\"error\", onComplete, { once: true });\n setTimeout(resolve, timeoutInMilliseconds);\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}\nfunction getVisitAction(...elements) {\n const action = getAttribute(\"data-turbo-action\", ...elements);\n return isAction(action) ? action : null;\n}\nfunction getMetaElement(name) {\n return document.querySelector(`meta[name=\"${name}\"]`);\n}\nfunction getMetaContent(name) {\n const element = getMetaElement(name);\n return element && element.content;\n}\nfunction setMetaContent(name, content) {\n let element = getMetaElement(name);\n if (!element) {\n element = document.createElement(\"meta\");\n element.setAttribute(\"name\", name);\n document.head.appendChild(element);\n }\n element.setAttribute(\"content\", content);\n return element;\n}\n\nvar FetchMethod;\n(function (FetchMethod) {\n FetchMethod[FetchMethod[\"get\"] = 0] = \"get\";\n FetchMethod[FetchMethod[\"post\"] = 1] = \"post\";\n FetchMethod[FetchMethod[\"put\"] = 2] = \"put\";\n FetchMethod[FetchMethod[\"patch\"] = 3] = \"patch\";\n FetchMethod[FetchMethod[\"delete\"] = 4] = \"delete\";\n})(FetchMethod || (FetchMethod = {}));\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}\nclass FetchRequest {\n constructor(delegate, method, location, body = new URLSearchParams(), target = null) {\n this.abortController = new AbortController();\n this.resolveRequestPromise = (_value) => { };\n this.delegate = delegate;\n this.method = method;\n this.headers = this.defaultHeaders;\n this.body = body;\n this.url = location;\n this.target = target;\n }\n get location() {\n return this.url;\n }\n get params() {\n return this.url.searchParams;\n }\n get entries() {\n return this.body ? Array.from(this.body.entries()) : [];\n }\n cancel() {\n this.abortController.abort();\n }\n async perform() {\n var _a, _b;\n const { fetchOptions } = this;\n (_b = (_a = this.delegate).prepareHeadersForRequest) === null || _b === void 0 ? void 0 : _b.call(_a, this.headers, this);\n await this.allowRequestToBeIntercepted(fetchOptions);\n try {\n this.delegate.requestStarted(this);\n const response = await fetch(this.url.href, fetchOptions);\n return await this.receive(response);\n }\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 }\n finally {\n this.delegate.requestFinished(this);\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 }\n else if (fetchResponse.succeeded) {\n this.delegate.requestSucceededWithResponse(this, fetchResponse);\n }\n else {\n this.delegate.requestFailedWithResponse(this, fetchResponse);\n }\n return fetchResponse;\n }\n get fetchOptions() {\n var _a;\n return {\n method: FetchMethod[this.method].toUpperCase(),\n credentials: \"same-origin\",\n headers: this.headers,\n redirect: \"follow\",\n body: this.isIdempotent ? null : this.body,\n signal: this.abortSignal,\n referrer: (_a = this.delegate.referrer) === null || _a === void 0 ? void 0 : _a.href,\n };\n }\n get defaultHeaders() {\n return {\n Accept: \"text/html, application/xhtml+xml\",\n };\n }\n get isIdempotent() {\n return this.method == FetchMethod.get;\n }\n get abortSignal() {\n return this.abortController.signal;\n }\n acceptResponseType(mimeType) {\n this.headers[\"Accept\"] = [mimeType, this.headers[\"Accept\"]].join(\", \");\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 if (event.defaultPrevented)\n await requestInterception;\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 return !event.defaultPrevented;\n }\n}\n\nclass AppearanceObserver {\n constructor(delegate, element) {\n this.started = false;\n this.intersect = (entries) => {\n const lastEntry = entries.slice(-1)[0];\n if (lastEntry === null || lastEntry === void 0 ? void 0 : lastEntry.isIntersecting) {\n this.delegate.elementAppearedInViewport(this.element);\n }\n };\n this.delegate = delegate;\n this.element = element;\n this.intersectionObserver = new IntersectionObserver(this.intersect);\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.intersectionObserver.observe(this.element);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.intersectionObserver.unobserve(this.element);\n }\n }\n}\n\nclass StreamMessage {\n constructor(fragment) {\n this.fragment = importStreamElements(fragment);\n }\n static wrap(message) {\n if (typeof message == \"string\") {\n return new this(createDocumentFragment(message));\n }\n else {\n return message;\n }\n }\n}\nStreamMessage.contentType = \"text/vnd.turbo-stream.html\";\nfunction importStreamElements(fragment) {\n for (const element of fragment.querySelectorAll(\"turbo-stream\")) {\n const streamElement = document.importNode(element, true);\n for (const inertScriptElement of streamElement.templateElement.content.querySelectorAll(\"script\")) {\n inertScriptElement.replaceWith(activateScriptElement(inertScriptElement));\n }\n element.replaceWith(streamElement);\n }\n return fragment;\n}\n\nvar FormSubmissionState;\n(function (FormSubmissionState) {\n FormSubmissionState[FormSubmissionState[\"initialized\"] = 0] = \"initialized\";\n FormSubmissionState[FormSubmissionState[\"requesting\"] = 1] = \"requesting\";\n FormSubmissionState[FormSubmissionState[\"waiting\"] = 2] = \"waiting\";\n FormSubmissionState[FormSubmissionState[\"receiving\"] = 3] = \"receiving\";\n FormSubmissionState[FormSubmissionState[\"stopping\"] = 4] = \"stopping\";\n FormSubmissionState[FormSubmissionState[\"stopped\"] = 5] = \"stopped\";\n})(FormSubmissionState || (FormSubmissionState = {}));\nvar FormEnctype;\n(function (FormEnctype) {\n FormEnctype[\"urlEncoded\"] = \"application/x-www-form-urlencoded\";\n FormEnctype[\"multipart\"] = \"multipart/form-data\";\n FormEnctype[\"plain\"] = \"text/plain\";\n})(FormEnctype || (FormEnctype = {}));\nfunction formEnctypeFromString(encoding) {\n switch (encoding.toLowerCase()) {\n case FormEnctype.multipart:\n return FormEnctype.multipart;\n case FormEnctype.plain:\n return FormEnctype.plain;\n default:\n return FormEnctype.urlEncoded;\n }\n}\nclass FormSubmission {\n constructor(delegate, formElement, submitter, mustRedirect = false) {\n this.state = FormSubmissionState.initialized;\n this.delegate = delegate;\n this.formElement = formElement;\n this.submitter = submitter;\n this.formData = buildFormData(formElement, submitter);\n this.location = expandURL(this.action);\n if (this.method == FetchMethod.get) {\n mergeFormDataEntries(this.location, [...this.body.entries()]);\n }\n this.fetchRequest = new FetchRequest(this, this.method, this.location, this.body, this.formElement);\n this.mustRedirect = mustRedirect;\n }\n static confirmMethod(message, _element, _submitter) {\n return Promise.resolve(confirm(message));\n }\n get method() {\n var _a;\n const method = ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formmethod\")) || this.formElement.getAttribute(\"method\") || \"\";\n return fetchMethodFromString(method.toLowerCase()) || FetchMethod.get;\n }\n get action() {\n var _a;\n const formElementAction = typeof this.formElement.action === \"string\" ? this.formElement.action : null;\n if ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.hasAttribute(\"formaction\")) {\n return this.submitter.getAttribute(\"formaction\") || \"\";\n }\n else {\n return this.formElement.getAttribute(\"action\") || formElementAction || \"\";\n }\n }\n get body() {\n if (this.enctype == FormEnctype.urlEncoded || this.method == FetchMethod.get) {\n return new URLSearchParams(this.stringFormData);\n }\n else {\n return this.formData;\n }\n }\n get enctype() {\n var _a;\n return formEnctypeFromString(((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formenctype\")) || this.formElement.enctype);\n }\n get isIdempotent() {\n return this.fetchRequest.isIdempotent;\n }\n get stringFormData() {\n return [...this.formData].reduce((entries, [name, value]) => {\n return entries.concat(typeof value == \"string\" ? [[name, value]] : []);\n }, []);\n }\n async start() {\n const { initialized, requesting } = FormSubmissionState;\n const confirmationMessage = getAttribute(\"data-turbo-confirm\", this.submitter, this.formElement);\n if (typeof confirmationMessage === \"string\") {\n const answer = await FormSubmission.confirmMethod(confirmationMessage, this.formElement, this.submitter);\n if (!answer) {\n return;\n }\n }\n if (this.state == initialized) {\n this.state = requesting;\n return this.fetchRequest.perform();\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 prepareHeadersForRequest(headers, request) {\n if (!request.isIdempotent) {\n const token = getCookieValue(getMetaContent(\"csrf-param\")) || getMetaContent(\"csrf-token\");\n if (token) {\n headers[\"X-CSRF-Token\"] = token;\n }\n }\n if (this.requestAcceptsTurboStreamResponse(request)) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted(_request) {\n var _a;\n this.state = FormSubmissionState.waiting;\n (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.setAttribute(\"disabled\", \"\");\n dispatch(\"turbo:submit-start\", {\n target: this.formElement,\n detail: { formSubmission: this },\n });\n this.delegate.formSubmissionStarted(this);\n }\n requestPreventedHandlingResponse(request, response) {\n this.result = { success: response.succeeded, fetchResponse: response };\n }\n requestSucceededWithResponse(request, response) {\n if (response.clientError || response.serverError) {\n this.delegate.formSubmissionFailedWithResponse(this, response);\n }\n else 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 }\n else {\n this.state = FormSubmissionState.receiving;\n this.result = { success: true, fetchResponse: response };\n this.delegate.formSubmissionSucceededWithResponse(this, response);\n }\n }\n requestFailedWithResponse(request, response) {\n this.result = { success: false, fetchResponse: response };\n this.delegate.formSubmissionFailedWithResponse(this, response);\n }\n requestErrored(request, error) {\n this.result = { success: false, error };\n this.delegate.formSubmissionErrored(this, error);\n }\n requestFinished(_request) {\n var _a;\n this.state = FormSubmissionState.stopped;\n (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.removeAttribute(\"disabled\");\n dispatch(\"turbo:submit-end\", {\n target: this.formElement,\n detail: Object.assign({ formSubmission: this }, this.result),\n });\n this.delegate.formSubmissionFinished(this);\n }\n requestMustRedirect(request) {\n return !request.isIdempotent && this.mustRedirect;\n }\n requestAcceptsTurboStreamResponse(request) {\n return !request.isIdempotent || hasAttribute(\"data-turbo-stream\", this.submitter, this.formElement);\n }\n}\nfunction buildFormData(formElement, submitter) {\n const formData = new FormData(formElement);\n const name = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"name\");\n const value = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"value\");\n if (name) {\n formData.append(name, value || \"\");\n }\n return formData;\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}\nfunction responseSucceededWithoutRedirect(response) {\n return response.statusCode == 200 && !response.redirected;\n}\nfunction mergeFormDataEntries(url, entries) {\n const searchParams = new URLSearchParams();\n for (const [name, value] of entries) {\n if (value instanceof File)\n continue;\n searchParams.append(name, value);\n }\n url.search = searchParams.toString();\n return url;\n}\n\nclass Snapshot {\n constructor(element) {\n this.element = element;\n }\n get activeElement() {\n return this.element.ownerDocument.activeElement;\n }\n get children() {\n return [...this.element.children];\n }\n hasAnchor(anchor) {\n return this.getElementForAnchor(anchor) != null;\n }\n getElementForAnchor(anchor) {\n return anchor ? this.element.querySelector(`[id='${anchor}'], a[name='${anchor}']`) : null;\n }\n get isConnected() {\n return this.element.isConnected;\n }\n get firstAutofocusableElement() {\n const inertDisabledOrHidden = \"[inert], :disabled, [hidden], details:not([open]), dialog:not([open])\";\n for (const element of this.element.querySelectorAll(\"[autofocus]\")) {\n if (element.closest(inertDisabledOrHidden) == null)\n return element;\n else\n continue;\n }\n return null;\n }\n get permanentElements() {\n return queryPermanentElementsAll(this.element);\n }\n getPermanentElementById(id) {\n return getPermanentElementById(this.element, id);\n }\n getPermanentElementMapForSnapshot(snapshot) {\n const permanentElementMap = {};\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 return permanentElementMap;\n }\n}\nfunction getPermanentElementById(node, id) {\n return node.querySelector(`#${id}[data-turbo-permanent]`);\n}\nfunction queryPermanentElementsAll(node) {\n return node.querySelectorAll(\"[id][data-turbo-permanent]\");\n}\n\nclass FormSubmitObserver {\n constructor(delegate, eventTarget) {\n this.started = false;\n this.submitCaptured = () => {\n this.eventTarget.removeEventListener(\"submit\", this.submitBubbled, false);\n this.eventTarget.addEventListener(\"submit\", this.submitBubbled, false);\n };\n this.submitBubbled = ((event) => {\n if (!event.defaultPrevented) {\n const form = event.target instanceof HTMLFormElement ? event.target : undefined;\n const submitter = event.submitter || undefined;\n if (form &&\n submissionDoesNotDismissDialog(form, submitter) &&\n submissionDoesNotTargetIFrame(form, submitter) &&\n this.delegate.willSubmitForm(form, submitter)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.delegate.formSubmitted(form, submitter);\n }\n }\n });\n this.delegate = delegate;\n this.eventTarget = eventTarget;\n }\n start() {\n if (!this.started) {\n this.eventTarget.addEventListener(\"submit\", this.submitCaptured, true);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.eventTarget.removeEventListener(\"submit\", this.submitCaptured, true);\n this.started = false;\n }\n }\n}\nfunction submissionDoesNotDismissDialog(form, submitter) {\n const method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formmethod\")) || form.getAttribute(\"method\");\n return method != \"dialog\";\n}\nfunction submissionDoesNotTargetIFrame(form, submitter) {\n const target = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formtarget\")) || form.target;\n for (const element of document.getElementsByName(target)) {\n if (element instanceof HTMLIFrameElement)\n return false;\n }\n return true;\n}\n\nclass View {\n constructor(delegate, element) {\n this.resolveRenderPromise = (_value) => { };\n this.resolveInterceptionPromise = (_value) => { };\n this.delegate = delegate;\n this.element = element;\n }\n scrollToAnchor(anchor) {\n const element = this.snapshot.getElementForAnchor(anchor);\n if (element) {\n this.scrollToElement(element);\n this.focusElement(element);\n }\n else {\n this.scrollToPosition({ x: 0, y: 0 });\n }\n }\n scrollToAnchorFromLocation(location) {\n this.scrollToAnchor(getAnchor(location));\n }\n scrollToElement(element) {\n element.scrollIntoView();\n }\n focusElement(element) {\n if (element instanceof HTMLElement) {\n if (element.hasAttribute(\"tabindex\")) {\n element.focus();\n }\n else {\n element.setAttribute(\"tabindex\", \"-1\");\n element.focus();\n element.removeAttribute(\"tabindex\");\n }\n }\n }\n scrollToPosition({ x, y }) {\n this.scrollRoot.scrollTo(x, y);\n }\n scrollToTop() {\n this.scrollToPosition({ x: 0, y: 0 });\n }\n get scrollRoot() {\n return window;\n }\n async render(renderer) {\n const { isPreview, shouldRender, newSnapshot: snapshot } = renderer;\n if (shouldRender) {\n try {\n this.renderPromise = new Promise((resolve) => (this.resolveRenderPromise = resolve));\n this.renderer = renderer;\n await this.prepareToRenderSnapshot(renderer);\n const renderInterception = new Promise((resolve) => (this.resolveInterceptionPromise = resolve));\n const options = { resume: this.resolveInterceptionPromise, render: this.renderer.renderElement };\n const immediateRender = this.delegate.allowsImmediateRender(snapshot, options);\n if (!immediateRender)\n await renderInterception;\n await this.renderSnapshot(renderer);\n this.delegate.viewRenderedSnapshot(snapshot, isPreview);\n this.delegate.preloadOnLoadLinksForView(this.element);\n this.finishRenderingSnapshot(renderer);\n }\n finally {\n delete this.renderer;\n this.resolveRenderPromise(undefined);\n delete this.renderPromise;\n }\n }\n else {\n this.invalidate(renderer.reloadReason);\n }\n }\n invalidate(reason) {\n this.delegate.viewInvalidated(reason);\n }\n async prepareToRenderSnapshot(renderer) {\n this.markAsPreview(renderer.isPreview);\n await renderer.prepareToRender();\n }\n markAsPreview(isPreview) {\n if (isPreview) {\n this.element.setAttribute(\"data-turbo-preview\", \"\");\n }\n else {\n this.element.removeAttribute(\"data-turbo-preview\");\n }\n }\n async renderSnapshot(renderer) {\n await renderer.render();\n }\n finishRenderingSnapshot(renderer) {\n renderer.finishRendering();\n }\n}\n\nclass FrameView extends View {\n invalidate() {\n this.element.innerHTML = \"\";\n }\n get snapshot() {\n return new Snapshot(this.element);\n }\n}\n\nclass LinkInterceptor {\n constructor(delegate, element) {\n this.clickBubbled = (event) => {\n if (this.respondsToEventTarget(event.target)) {\n this.clickEvent = event;\n }\n else {\n delete this.clickEvent;\n }\n };\n this.linkClicked = ((event) => {\n if (this.clickEvent && this.respondsToEventTarget(event.target) && event.target instanceof Element) {\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 this.willVisit = ((_event) => {\n delete this.clickEvent;\n });\n this.delegate = delegate;\n this.element = element;\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 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 respondsToEventTarget(target) {\n const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n return element && element.closest(\"turbo-frame, html\") == this.element;\n }\n}\n\nclass LinkClickObserver {\n constructor(delegate, eventTarget) {\n this.started = false;\n this.clickCaptured = () => {\n this.eventTarget.removeEventListener(\"click\", this.clickBubbled, false);\n this.eventTarget.addEventListener(\"click\", this.clickBubbled, false);\n };\n this.clickBubbled = (event) => {\n if (event instanceof MouseEvent && this.clickEventIsSignificant(event)) {\n const target = (event.composedPath && event.composedPath()[0]) || event.target;\n const link = this.findLinkFromClickTarget(target);\n if (link && doesNotTargetIFrame(link)) {\n const location = this.getLocationForLink(link);\n if (this.delegate.willFollowLinkToLocation(link, location, event)) {\n event.preventDefault();\n this.delegate.followedLinkToLocation(link, location);\n }\n }\n }\n };\n this.delegate = delegate;\n this.eventTarget = eventTarget;\n }\n start() {\n if (!this.started) {\n this.eventTarget.addEventListener(\"click\", this.clickCaptured, true);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.eventTarget.removeEventListener(\"click\", this.clickCaptured, true);\n this.started = false;\n }\n }\n clickEventIsSignificant(event) {\n return !((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 findLinkFromClickTarget(target) {\n if (target instanceof Element) {\n return target.closest(\"a[href]:not([target^=_]):not([download])\");\n }\n }\n getLocationForLink(link) {\n return expandURL(link.getAttribute(\"href\") || \"\");\n }\n}\nfunction doesNotTargetIFrame(anchor) {\n for (const element of document.getElementsByName(anchor.target)) {\n if (element instanceof HTMLIFrameElement)\n return false;\n }\n return true;\n}\n\nclass FormLinkClickObserver {\n constructor(delegate, element) {\n this.delegate = delegate;\n this.linkInterceptor = new LinkClickObserver(this, element);\n }\n start() {\n this.linkInterceptor.start();\n }\n stop() {\n this.linkInterceptor.stop();\n }\n willFollowLinkToLocation(link, location, originalEvent) {\n return (this.delegate.willSubmitFormLinkToLocation(link, location, originalEvent) &&\n link.hasAttribute(\"data-turbo-method\"));\n }\n followedLinkToLocation(link, location) {\n const action = location.href;\n const form = document.createElement(\"form\");\n form.setAttribute(\"data-turbo\", \"true\");\n form.setAttribute(\"action\", action);\n form.setAttribute(\"hidden\", \"\");\n const method = link.getAttribute(\"data-turbo-method\");\n if (method)\n form.setAttribute(\"method\", method);\n const turboFrame = link.getAttribute(\"data-turbo-frame\");\n if (turboFrame)\n form.setAttribute(\"data-turbo-frame\", turboFrame);\n const turboAction = link.getAttribute(\"data-turbo-action\");\n if (turboAction)\n form.setAttribute(\"data-turbo-action\", turboAction);\n const turboConfirm = link.getAttribute(\"data-turbo-confirm\");\n if (turboConfirm)\n form.setAttribute(\"data-turbo-confirm\", turboConfirm);\n const turboStream = link.hasAttribute(\"data-turbo-stream\");\n if (turboStream)\n form.setAttribute(\"data-turbo-stream\", \"\");\n this.delegate.submittedFormLinkToLocation(link, location, form);\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 constructor(delegate, permanentElementMap) {\n this.delegate = delegate;\n this.permanentElementMap = permanentElementMap;\n }\n static preservingPermanentElements(delegate, permanentElementMap, callback) {\n const bardo = new this(delegate, permanentElementMap);\n bardo.enter();\n callback();\n bardo.leave();\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 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 replaceNewPermanentElementWithPlaceholder(permanentElement) {\n const placeholder = createPlaceholderForPermanentElement(permanentElement);\n permanentElement.replaceWith(placeholder);\n }\n replaceCurrentPermanentElementWithClone(permanentElement) {\n const clone = permanentElement.cloneNode(true);\n permanentElement.replaceWith(clone);\n }\n replacePlaceholderWithPermanentElement(permanentElement) {\n const placeholder = this.getPlaceholderById(permanentElement.id);\n placeholder === null || placeholder === void 0 ? void 0 : placeholder.replaceWith(permanentElement);\n }\n getPlaceholderById(id) {\n return this.placeholders.find((element) => element.content == id);\n }\n get placeholders() {\n return [...document.querySelectorAll(\"meta[name=turbo-permanent-placeholder][content]\")];\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 constructor(currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n this.activeElement = null;\n this.currentSnapshot = currentSnapshot;\n this.newSnapshot = newSnapshot;\n this.isPreview = isPreview;\n this.willRender = willRender;\n this.renderElement = renderElement;\n this.promise = new Promise((resolve, reject) => (this.resolvingFunctions = { resolve, reject }));\n }\n get shouldRender() {\n return true;\n }\n get reloadReason() {\n return;\n }\n prepareToRender() {\n return;\n }\n finishRendering() {\n if (this.resolvingFunctions) {\n this.resolvingFunctions.resolve();\n delete this.resolvingFunctions;\n }\n }\n preservingPermanentElements(callback) {\n Bardo.preservingPermanentElements(this, this.permanentElementMap, callback);\n }\n focusFirstAutofocusableElement() {\n const element = this.connectedSnapshot.firstAutofocusableElement;\n if (elementIsFocusable(element)) {\n element.focus();\n }\n }\n enteringBardo(currentPermanentElement) {\n if (this.activeElement)\n return;\n if (currentPermanentElement.contains(this.currentSnapshot.activeElement)) {\n this.activeElement = this.currentSnapshot.activeElement;\n }\n }\n leavingBardo(currentPermanentElement) {\n if (currentPermanentElement.contains(this.activeElement) && this.activeElement instanceof HTMLElement) {\n this.activeElement.focus();\n this.activeElement = null;\n }\n }\n get connectedSnapshot() {\n return this.newSnapshot.isConnected ? this.newSnapshot : this.currentSnapshot;\n }\n get currentElement() {\n return this.currentSnapshot.element;\n }\n get newElement() {\n return this.newSnapshot.element;\n }\n get permanentElementMap() {\n return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot);\n }\n}\nfunction elementIsFocusable(element) {\n return element && typeof element.focus == \"function\";\n}\n\nclass FrameRenderer extends Renderer {\n constructor(delegate, currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n super(currentSnapshot, newSnapshot, renderElement, isPreview, willRender);\n this.delegate = delegate;\n }\n static renderElement(currentElement, newElement) {\n var _a;\n const destinationRange = document.createRange();\n destinationRange.selectNodeContents(currentElement);\n destinationRange.deleteContents();\n const frameElement = newElement;\n const sourceRange = (_a = frameElement.ownerDocument) === null || _a === void 0 ? void 0 : _a.createRange();\n if (sourceRange) {\n sourceRange.selectNodeContents(frameElement);\n currentElement.appendChild(sourceRange.extractContents());\n }\n }\n get shouldRender() {\n return true;\n }\n async render() {\n await nextAnimationFrame();\n this.preservingPermanentElements(() => {\n this.loadFrameElement();\n });\n this.scrollFrameIntoView();\n await nextAnimationFrame();\n this.focusFirstAutofocusableElement();\n await nextAnimationFrame();\n this.activateScriptElements();\n }\n loadFrameElement() {\n this.delegate.willRenderFrame(this.currentElement, this.newElement);\n this.renderElement(this.currentElement, this.newElement);\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 if (element) {\n element.scrollIntoView({ block, behavior });\n return true;\n }\n }\n return false;\n }\n activateScriptElements() {\n for (const inertScriptElement of this.newScriptElements) {\n const activatedScriptElement = activateScriptElement(inertScriptElement);\n inertScriptElement.replaceWith(activatedScriptElement);\n }\n }\n get newScriptElements() {\n return this.currentElement.querySelectorAll(\"script\");\n }\n}\nfunction readScrollLogicalPosition(value, defaultValue) {\n if (value == \"end\" || value == \"start\" || value == \"center\" || value == \"nearest\") {\n return value;\n }\n else {\n return defaultValue;\n }\n}\nfunction readScrollBehavior(value, defaultValue) {\n if (value == \"auto\" || value == \"smooth\") {\n return value;\n }\n else {\n return defaultValue;\n }\n}\n\nclass ProgressBar {\n constructor() {\n this.hiding = false;\n this.value = 0;\n this.visible = false;\n this.trickle = () => {\n this.setValue(this.value + Math.random() / 100);\n };\n this.stylesheetElement = this.createStylesheetElement();\n this.progressElement = this.createProgressElement();\n this.installStylesheetElement();\n this.setValue(0);\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 show() {\n if (!this.visible) {\n this.visible = true;\n this.installProgressElement();\n this.startTrickling();\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 setValue(value) {\n this.value = value;\n this.refresh();\n }\n installStylesheetElement() {\n document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\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 fadeProgressElement(callback) {\n this.progressElement.style.opacity = \"0\";\n setTimeout(callback, ProgressBar.animationDuration * 1.5);\n }\n uninstallProgressElement() {\n if (this.progressElement.parentNode) {\n document.documentElement.removeChild(this.progressElement);\n }\n }\n startTrickling() {\n if (!this.trickleInterval) {\n this.trickleInterval = window.setInterval(this.trickle, ProgressBar.animationDuration);\n }\n }\n stopTrickling() {\n window.clearInterval(this.trickleInterval);\n delete this.trickleInterval;\n }\n refresh() {\n requestAnimationFrame(() => {\n this.progressElement.style.width = `${10 + this.value * 90}%`;\n });\n }\n createStylesheetElement() {\n const element = document.createElement(\"style\");\n element.type = \"text/css\";\n element.textContent = ProgressBar.defaultCSS;\n if (this.cspNonce) {\n element.nonce = this.cspNonce;\n }\n return element;\n }\n createProgressElement() {\n const element = document.createElement(\"div\");\n element.className = \"turbo-progress-bar\";\n return element;\n }\n get cspNonce() {\n return getMetaContent(\"csp-nonce\");\n }\n}\nProgressBar.animationDuration = 300;\n\nclass HeadSnapshot extends Snapshot {\n constructor() {\n super(...arguments);\n this.detailsByOuterHTML = this.children\n .filter((element) => !elementIsNoscript(element))\n .map((element) => elementWithoutNonce(element))\n .reduce((result, element) => {\n const { outerHTML } = element;\n const details = outerHTML in result\n ? result[outerHTML]\n : {\n type: elementType(element),\n tracked: elementIsTracked(element),\n elements: [],\n };\n return Object.assign(Object.assign({}, result), { [outerHTML]: Object.assign(Object.assign({}, details), { elements: [...details.elements, element] }) });\n }, {});\n }\n get trackedElementSignature() {\n return Object.keys(this.detailsByOuterHTML)\n .filter((outerHTML) => this.detailsByOuterHTML[outerHTML].tracked)\n .join(\"\");\n }\n getScriptElementsNotInSnapshot(snapshot) {\n return this.getElementsMatchingTypeNotInSnapshot(\"script\", snapshot);\n }\n getStylesheetElementsNotInSnapshot(snapshot) {\n return this.getElementsMatchingTypeNotInSnapshot(\"stylesheet\", snapshot);\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 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 }\n else if (elements.length > 1) {\n return [...result, ...elements.slice(1)];\n }\n else {\n return result;\n }\n }, []);\n }\n getMetaValue(name) {\n const element = this.findMetaElementByName(name);\n return element ? element.getAttribute(\"content\") : null;\n }\n findMetaElementByName(name) {\n return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n const { elements: [element], } = this.detailsByOuterHTML[outerHTML];\n return elementIsMetaElementWithName(element, name) ? element : result;\n }, undefined);\n }\n}\nfunction elementType(element) {\n if (elementIsScript(element)) {\n return \"script\";\n }\n else if (elementIsStylesheet(element)) {\n return \"stylesheet\";\n }\n}\nfunction elementIsTracked(element) {\n return element.getAttribute(\"data-turbo-track\") == \"reload\";\n}\nfunction elementIsScript(element) {\n const tagName = element.localName;\n return tagName == \"script\";\n}\nfunction elementIsNoscript(element) {\n const tagName = element.localName;\n return tagName == \"noscript\";\n}\nfunction elementIsStylesheet(element) {\n const tagName = element.localName;\n return tagName == \"style\" || (tagName == \"link\" && element.getAttribute(\"rel\") == \"stylesheet\");\n}\nfunction elementIsMetaElementWithName(element, name) {\n const tagName = element.localName;\n return tagName == \"meta\" && element.getAttribute(\"name\") == name;\n}\nfunction elementWithoutNonce(element) {\n if (element.hasAttribute(\"nonce\")) {\n element.setAttribute(\"nonce\", \"\");\n }\n return element;\n}\n\nclass PageSnapshot extends Snapshot {\n constructor(element, headSnapshot) {\n super(element);\n this.headSnapshot = headSnapshot;\n }\n static fromHTMLString(html = \"\") {\n return this.fromDocument(parseHTMLDocument(html));\n }\n static fromElement(element) {\n return this.fromDocument(element.ownerDocument);\n }\n static fromDocument({ head, body }) {\n return new this(body, new HeadSnapshot(head));\n }\n clone() {\n const clonedElement = this.element.cloneNode(true);\n const selectElements = this.element.querySelectorAll(\"select\");\n const clonedSelectElements = clonedElement.querySelectorAll(\"select\");\n for (const [index, source] of selectElements.entries()) {\n const clone = clonedSelectElements[index];\n for (const option of clone.selectedOptions)\n option.selected = false;\n for (const option of source.selectedOptions)\n clone.options[option.index].selected = true;\n }\n for (const clonedPasswordInput of clonedElement.querySelectorAll('input[type=\"password\"]')) {\n clonedPasswordInput.value = \"\";\n }\n return new PageSnapshot(clonedElement, this.headSnapshot);\n }\n get headElement() {\n return this.headSnapshot.element;\n }\n get rootLocation() {\n var _a;\n const root = (_a = this.getSetting(\"root\")) !== null && _a !== void 0 ? _a : \"/\";\n return expandURL(root);\n }\n get cacheControlValue() {\n return this.getSetting(\"cache-control\");\n }\n get isPreviewable() {\n return this.cacheControlValue != \"no-preview\";\n }\n get isCacheable() {\n return this.cacheControlValue != \"no-cache\";\n }\n get isVisitable() {\n return this.getSetting(\"visit-control\") != \"reload\";\n }\n getSetting(name) {\n return this.headSnapshot.getMetaValue(`turbo-${name}`);\n }\n}\n\nvar TimingMetric;\n(function (TimingMetric) {\n TimingMetric[\"visitStart\"] = \"visitStart\";\n TimingMetric[\"requestStart\"] = \"requestStart\";\n TimingMetric[\"requestEnd\"] = \"requestEnd\";\n TimingMetric[\"visitEnd\"] = \"visitEnd\";\n})(TimingMetric || (TimingMetric = {}));\nvar VisitState;\n(function (VisitState) {\n VisitState[\"initialized\"] = \"initialized\";\n VisitState[\"started\"] = \"started\";\n VisitState[\"canceled\"] = \"canceled\";\n VisitState[\"failed\"] = \"failed\";\n VisitState[\"completed\"] = \"completed\";\n})(VisitState || (VisitState = {}));\nconst defaultOptions = {\n action: \"advance\",\n historyChanged: false,\n visitCachedSnapshot: () => { },\n willRender: true,\n updateHistory: true,\n shouldCacheSnapshot: true,\n acceptsStreamResponse: false,\n};\nvar SystemStatusCode;\n(function (SystemStatusCode) {\n SystemStatusCode[SystemStatusCode[\"networkFailure\"] = 0] = \"networkFailure\";\n SystemStatusCode[SystemStatusCode[\"timeoutFailure\"] = -1] = \"timeoutFailure\";\n SystemStatusCode[SystemStatusCode[\"contentTypeMismatch\"] = -2] = \"contentTypeMismatch\";\n})(SystemStatusCode || (SystemStatusCode = {}));\nclass Visit {\n constructor(delegate, location, restorationIdentifier, options = {}) {\n this.identifier = uuid();\n this.timingMetrics = {};\n this.followedRedirect = false;\n this.historyChanged = false;\n this.scrolled = false;\n this.shouldCacheSnapshot = true;\n this.acceptsStreamResponse = false;\n this.snapshotCached = false;\n this.state = VisitState.initialized;\n this.delegate = delegate;\n this.location = location;\n this.restorationIdentifier = restorationIdentifier || uuid();\n const { action, historyChanged, referrer, snapshot, snapshotHTML, response, visitCachedSnapshot, willRender, updateHistory, shouldCacheSnapshot, acceptsStreamResponse, } = Object.assign(Object.assign({}, defaultOptions), options);\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.isSamePage = this.delegate.locationWithActionIsSamePage(this.location, this.action);\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 }\n get adapter() {\n return this.delegate.adapter;\n }\n get view() {\n return this.delegate.view;\n }\n get history() {\n return this.delegate.history;\n }\n get restorationData() {\n return this.history.getRestorationDataForIdentifier(this.restorationIdentifier);\n }\n get silent() {\n return this.isSamePage;\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 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 complete() {\n if (this.state == VisitState.started) {\n this.recordTimingMetric(TimingMetric.visitEnd);\n this.state = VisitState.completed;\n this.followRedirect();\n if (!this.followedRedirect) {\n this.adapter.visitCompleted(this);\n this.delegate.visitCompleted(this);\n }\n }\n }\n fail() {\n if (this.state == VisitState.started) {\n this.state = VisitState.failed;\n this.adapter.visitFailed(this);\n }\n }\n changeHistory() {\n var _a;\n if (!this.historyChanged && this.updateHistory) {\n const actionForHistory = this.location.href === ((_a = this.referrer) === null || _a === void 0 ? void 0 : _a.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 issueRequest() {\n if (this.hasPreloadedResponse()) {\n this.simulateRequest();\n }\n else if (this.shouldIssueRequest() && !this.request) {\n this.request = new FetchRequest(this, FetchMethod.get, this.location);\n this.request.perform();\n }\n }\n simulateRequest() {\n if (this.response) {\n this.startRequest();\n this.recordResponse();\n this.finishRequest();\n }\n }\n startRequest() {\n this.recordTimingMetric(TimingMetric.requestStart);\n this.adapter.visitRequestStarted(this);\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 }\n else {\n this.adapter.visitRequestFailedWithStatusCode(this, statusCode);\n }\n }\n }\n finishRequest() {\n this.recordTimingMetric(TimingMetric.requestEnd);\n this.adapter.visitRequestFinished(this);\n }\n loadResponse() {\n if (this.response) {\n const { statusCode, responseHTML } = this.response;\n this.render(async () => {\n if (this.shouldCacheSnapshot)\n this.cacheSnapshot();\n if (this.view.renderPromise)\n await this.view.renderPromise;\n if (isSuccessful(statusCode) && responseHTML != null) {\n await this.view.renderPage(PageSnapshot.fromHTMLString(responseHTML), false, this.willRender, this);\n this.performScroll();\n this.adapter.visitRendered(this);\n this.complete();\n }\n else {\n await this.view.renderError(PageSnapshot.fromHTMLString(responseHTML), this);\n this.adapter.visitRendered(this);\n this.fail();\n }\n });\n }\n }\n getCachedSnapshot() {\n const snapshot = this.view.getCachedSnapshotForLocation(this.location) || this.getPreloadedSnapshot();\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 getPreloadedSnapshot() {\n if (this.snapshotHTML) {\n return PageSnapshot.fromHTMLString(this.snapshotHTML);\n }\n }\n hasCachedSnapshot() {\n return this.getCachedSnapshot() != null;\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.isSamePage) {\n this.adapter.visitRendered(this);\n }\n else {\n if (this.view.renderPromise)\n await this.view.renderPromise;\n await this.view.renderPage(snapshot, isPreview, this.willRender, this);\n this.performScroll();\n this.adapter.visitRendered(this);\n if (!isPreview) {\n this.complete();\n }\n }\n });\n }\n }\n followRedirect() {\n var _a;\n if (this.redirectedToLocation && !this.followedRedirect && ((_a = this.response) === null || _a === void 0 ? void 0 : _a.redirected)) {\n this.adapter.visitProposedToLocation(this.redirectedToLocation, {\n action: \"replace\",\n response: this.response,\n });\n this.followedRedirect = true;\n }\n }\n goToSamePageAnchor() {\n if (this.isSamePage) {\n this.render(async () => {\n this.cacheSnapshot();\n this.performScroll();\n this.changeHistory();\n this.adapter.visitRendered(this);\n });\n }\n }\n prepareHeadersForRequest(headers, request) {\n if (this.acceptsStreamResponse) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted() {\n this.startRequest();\n }\n requestPreventedHandlingResponse(_request, _response) { }\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 }\n else {\n this.redirectedToLocation = response.redirected ? response.location : undefined;\n this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\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 }\n else {\n this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n }\n }\n requestErrored(_request, _error) {\n this.recordResponse({\n statusCode: SystemStatusCode.networkFailure,\n redirected: false,\n });\n }\n requestFinished() {\n this.finishRequest();\n }\n performScroll() {\n if (!this.scrolled && !this.view.forceReloaded) {\n if (this.action == \"restore\") {\n this.scrollToRestoredPosition() || this.scrollToAnchor() || this.view.scrollToTop();\n }\n else {\n this.scrollToAnchor() || this.view.scrollToTop();\n }\n if (this.isSamePage) {\n this.delegate.visitScrolledToSamePageLocation(this.view.lastRenderedLocation, this.location);\n }\n this.scrolled = true;\n }\n }\n scrollToRestoredPosition() {\n const { scrollPosition } = this.restorationData;\n if (scrollPosition) {\n this.view.scrollToPosition(scrollPosition);\n return true;\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 recordTimingMetric(metric) {\n this.timingMetrics[metric] = new Date().getTime();\n }\n getTimingMetrics() {\n return Object.assign({}, this.timingMetrics);\n }\n 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 hasPreloadedResponse() {\n return typeof this.response == \"object\";\n }\n shouldIssueRequest() {\n if (this.isSamePage) {\n return false;\n }\n else if (this.action == \"restore\") {\n return !this.hasCachedSnapshot();\n }\n else {\n return this.willRender;\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 async render(callback) {\n this.cancelRender();\n await new Promise((resolve) => {\n this.frame = requestAnimationFrame(() => resolve());\n });\n await callback();\n delete this.frame;\n }\n cancelRender() {\n if (this.frame) {\n cancelAnimationFrame(this.frame);\n delete this.frame;\n }\n }\n}\nfunction isSuccessful(statusCode) {\n return statusCode >= 200 && statusCode < 300;\n}\n\nclass BrowserAdapter {\n constructor(session) {\n this.progressBar = new ProgressBar();\n this.showProgressBar = () => {\n this.progressBar.show();\n };\n this.session = session;\n }\n visitProposedToLocation(location, options) {\n this.navigator.startVisit(location, (options === null || options === void 0 ? void 0 : options.restorationIdentifier) || uuid(), options);\n }\n visitStarted(visit) {\n this.location = visit.location;\n visit.loadCachedSnapshot();\n visit.issueRequest();\n visit.goToSamePageAnchor();\n }\n visitRequestStarted(visit) {\n this.progressBar.setValue(0);\n if (visit.hasCachedSnapshot() || visit.action != \"restore\") {\n this.showVisitProgressBarAfterDelay();\n }\n else {\n this.showProgressBar();\n }\n }\n visitRequestCompleted(visit) {\n visit.loadResponse();\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 visitRequestFinished(_visit) {\n this.progressBar.setValue(1);\n this.hideVisitProgressBar();\n }\n visitCompleted(_visit) { }\n pageInvalidated(reason) {\n this.reload(reason);\n }\n visitFailed(_visit) { }\n visitRendered(_visit) { }\n formSubmissionStarted(_formSubmission) {\n this.progressBar.setValue(0);\n this.showFormProgressBarAfterDelay();\n }\n formSubmissionFinished(_formSubmission) {\n this.progressBar.setValue(1);\n this.hideFormProgressBar();\n }\n showVisitProgressBarAfterDelay() {\n this.visitProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n }\n hideVisitProgressBar() {\n this.progressBar.hide();\n if (this.visitProgressBarTimeout != null) {\n window.clearTimeout(this.visitProgressBarTimeout);\n delete this.visitProgressBarTimeout;\n }\n }\n showFormProgressBarAfterDelay() {\n if (this.formProgressBarTimeout == null) {\n this.formProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\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 reload(reason) {\n var _a;\n dispatch(\"turbo:reload\", { detail: reason });\n window.location.href = ((_a = this.location) === null || _a === void 0 ? void 0 : _a.toString()) || window.location.href;\n }\n get navigator() {\n return this.session.navigator;\n }\n}\n\nclass CacheObserver {\n constructor() {\n this.started = false;\n this.removeStaleElements = ((_event) => {\n const staleElements = [...document.querySelectorAll('[data-turbo-cache=\"false\"]')];\n for (const element of staleElements) {\n element.remove();\n }\n });\n }\n start() {\n if (!this.started) {\n this.started = true;\n addEventListener(\"turbo:before-cache\", this.removeStaleElements, false);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n removeEventListener(\"turbo:before-cache\", this.removeStaleElements, false);\n }\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 start() {\n this.linkInterceptor.start();\n this.formSubmitObserver.start();\n }\n stop() {\n this.linkInterceptor.stop();\n this.formSubmitObserver.stop();\n }\n shouldInterceptLinkClick(element, _location, _event) {\n return this.shouldRedirect(element);\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 willSubmitForm(element, submitter) {\n return (element.closest(\"turbo-frame\") == null &&\n this.shouldSubmit(element, submitter) &&\n this.shouldRedirect(element, submitter));\n }\n formSubmitted(element, submitter) {\n const frame = this.findFrameElement(element, submitter);\n if (frame) {\n frame.delegate.formSubmitted(element, submitter);\n }\n }\n shouldSubmit(form, submitter) {\n var _a;\n const action = getAction(form, submitter);\n const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n const rootLocation = expandURL((_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\");\n return this.shouldRedirect(form, submitter) && locationIsVisitable(action, rootLocation);\n }\n shouldRedirect(element, submitter) {\n const isNavigatable = element instanceof HTMLFormElement\n ? this.session.submissionIsNavigatable(element, submitter)\n : this.session.elementIsNavigatable(element);\n if (isNavigatable) {\n const frame = this.findFrameElement(element, submitter);\n return frame ? frame != element.closest(\"turbo-frame\") : false;\n }\n else {\n return false;\n }\n }\n findFrameElement(element, submitter) {\n const id = (submitter === null || submitter === void 0 ? void 0 : 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 constructor(delegate) {\n this.restorationIdentifier = uuid();\n this.restorationData = {};\n this.started = false;\n this.pageLoaded = false;\n this.onPopState = (event) => {\n if (this.shouldHandlePopState()) {\n const { turbo } = event.state || {};\n if (turbo) {\n this.location = new URL(window.location.href);\n const { restorationIdentifier } = turbo;\n this.restorationIdentifier = restorationIdentifier;\n this.delegate.historyPoppedToLocationWithRestorationIdentifier(this.location, restorationIdentifier);\n }\n }\n };\n this.onPageLoad = async (_event) => {\n await nextMicrotask();\n this.pageLoaded = true;\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n addEventListener(\"popstate\", this.onPopState, false);\n addEventListener(\"load\", this.onPageLoad, false);\n this.started = true;\n this.replace(new URL(window.location.href));\n }\n }\n stop() {\n if (this.started) {\n removeEventListener(\"popstate\", this.onPopState, false);\n removeEventListener(\"load\", this.onPageLoad, false);\n this.started = false;\n }\n }\n push(location, restorationIdentifier) {\n this.update(history.pushState, location, restorationIdentifier);\n }\n replace(location, restorationIdentifier) {\n this.update(history.replaceState, location, restorationIdentifier);\n }\n update(method, location, restorationIdentifier = uuid()) {\n const state = { turbo: { restorationIdentifier } };\n method.call(history, state, \"\", location.href);\n this.location = location;\n this.restorationIdentifier = restorationIdentifier;\n }\n getRestorationDataForIdentifier(restorationIdentifier) {\n return this.restorationData[restorationIdentifier] || {};\n }\n updateRestorationData(additionalData) {\n const { restorationIdentifier } = this;\n const restorationData = this.restorationData[restorationIdentifier];\n this.restorationData[restorationIdentifier] = Object.assign(Object.assign({}, restorationData), additionalData);\n }\n assumeControlOfScrollRestoration() {\n var _a;\n if (!this.previousScrollRestoration) {\n this.previousScrollRestoration = (_a = history.scrollRestoration) !== null && _a !== void 0 ? _a : \"auto\";\n history.scrollRestoration = \"manual\";\n }\n }\n relinquishControlOfScrollRestoration() {\n if (this.previousScrollRestoration) {\n history.scrollRestoration = this.previousScrollRestoration;\n delete this.previousScrollRestoration;\n }\n }\n shouldHandlePopState() {\n return this.pageIsLoaded();\n }\n pageIsLoaded() {\n return this.pageLoaded || document.readyState == \"complete\";\n }\n}\n\nclass Navigator {\n constructor(delegate) {\n this.delegate = delegate;\n }\n proposeVisit(location, options = {}) {\n if (this.delegate.allowsVisitingLocationWithAction(location, options.action)) {\n if (locationIsVisitable(location, this.view.snapshot.rootLocation)) {\n this.delegate.visitProposedToLocation(location, options);\n }\n else {\n window.location.href = location.toString();\n }\n }\n }\n startVisit(locatable, restorationIdentifier, options = {}) {\n this.stop();\n this.currentVisit = new Visit(this, expandURL(locatable), restorationIdentifier, Object.assign({ referrer: this.location }, options));\n this.currentVisit.start();\n }\n submitForm(form, submitter) {\n this.stop();\n this.formSubmission = new FormSubmission(this, form, submitter, true);\n this.formSubmission.start();\n }\n stop() {\n if (this.formSubmission) {\n this.formSubmission.stop();\n delete this.formSubmission;\n }\n if (this.currentVisit) {\n this.currentVisit.cancel();\n delete this.currentVisit;\n }\n }\n get adapter() {\n return this.delegate.adapter;\n }\n get view() {\n return this.delegate.view;\n }\n get history() {\n return this.delegate.history;\n }\n formSubmissionStarted(formSubmission) {\n if (typeof this.adapter.formSubmissionStarted === \"function\") {\n this.adapter.formSubmissionStarted(formSubmission);\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.method == FetchMethod.get;\n if (!shouldCacheSnapshot) {\n this.view.clearSnapshotCache();\n }\n const { statusCode, redirected } = fetchResponse;\n const action = this.getActionForFormSubmission(formSubmission);\n const visitOptions = {\n action,\n shouldCacheSnapshot,\n response: { statusCode, responseHTML, redirected },\n };\n this.proposeVisit(fetchResponse.location, visitOptions);\n }\n }\n }\n async formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n const responseHTML = await fetchResponse.responseHTML;\n if (responseHTML) {\n const snapshot = PageSnapshot.fromHTMLString(responseHTML);\n if (fetchResponse.serverError) {\n await this.view.renderError(snapshot, this.currentVisit);\n }\n else {\n await this.view.renderPage(snapshot, false, true, this.currentVisit);\n }\n this.view.scrollToTop();\n this.view.clearSnapshotCache();\n }\n }\n formSubmissionErrored(formSubmission, error) {\n console.error(error);\n }\n formSubmissionFinished(formSubmission) {\n if (typeof this.adapter.formSubmissionFinished === \"function\") {\n this.adapter.formSubmissionFinished(formSubmission);\n }\n }\n visitStarted(visit) {\n this.delegate.visitStarted(visit);\n }\n visitCompleted(visit) {\n this.delegate.visitCompleted(visit);\n }\n locationWithActionIsSamePage(location, action) {\n const anchor = getAnchor(location);\n const currentAnchor = getAnchor(this.view.lastRenderedLocation);\n const isRestorationToTop = action === \"restore\" && typeof anchor === \"undefined\";\n return (action !== \"replace\" &&\n getRequestURL(location) === getRequestURL(this.view.lastRenderedLocation) &&\n (isRestorationToTop || (anchor != null && anchor !== currentAnchor)));\n }\n visitScrolledToSamePageLocation(oldURL, newURL) {\n this.delegate.visitScrolledToSamePageLocation(oldURL, newURL);\n }\n get location() {\n return this.history.location;\n }\n get restorationIdentifier() {\n return this.history.restorationIdentifier;\n }\n getActionForFormSubmission(formSubmission) {\n const { formElement, submitter } = formSubmission;\n const action = getAttribute(\"data-turbo-action\", submitter, formElement);\n return isAction(action) ? action : \"advance\";\n }\n}\n\nvar PageStage;\n(function (PageStage) {\n PageStage[PageStage[\"initial\"] = 0] = \"initial\";\n PageStage[PageStage[\"loading\"] = 1] = \"loading\";\n PageStage[PageStage[\"interactive\"] = 2] = \"interactive\";\n PageStage[PageStage[\"complete\"] = 3] = \"complete\";\n})(PageStage || (PageStage = {}));\nclass PageObserver {\n constructor(delegate) {\n this.stage = PageStage.initial;\n this.started = false;\n this.interpretReadyState = () => {\n const { readyState } = this;\n if (readyState == \"interactive\") {\n this.pageIsInteractive();\n }\n else if (readyState == \"complete\") {\n this.pageIsComplete();\n }\n };\n this.pageWillUnload = () => {\n this.delegate.pageWillUnload();\n };\n this.delegate = delegate;\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 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 pageIsInteractive() {\n if (this.stage == PageStage.loading) {\n this.stage = PageStage.interactive;\n this.delegate.pageBecameInteractive();\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 get readyState() {\n return document.readyState;\n }\n}\n\nclass ScrollObserver {\n constructor(delegate) {\n this.started = false;\n this.onScroll = () => {\n this.updatePosition({ x: window.pageXOffset, y: window.pageYOffset });\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n addEventListener(\"scroll\", this.onScroll, false);\n this.onScroll();\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n removeEventListener(\"scroll\", this.onScroll, false);\n this.started = false;\n }\n }\n updatePosition(position) {\n this.delegate.scrollPositionChanged(position);\n }\n}\n\nclass StreamMessageRenderer {\n render({ fragment }) {\n Bardo.preservingPermanentElements(this, getPermanentElementMapForFragment(fragment), () => document.documentElement.appendChild(fragment));\n }\n enteringBardo(currentPermanentElement, newPermanentElement) {\n newPermanentElement.replaceWith(currentPermanentElement.cloneNode(true));\n }\n leavingBardo() { }\n}\nfunction getPermanentElementMapForFragment(fragment) {\n const permanentElementsInDocument = queryPermanentElementsAll(document.documentElement);\n const permanentElementMap = {};\n for (const permanentElementInDocument of permanentElementsInDocument) {\n const { id } = permanentElementInDocument;\n for (const streamElement of fragment.querySelectorAll(\"turbo-stream\")) {\n const elementInStream = getPermanentElementById(streamElement.templateElement.content, id);\n if (elementInStream) {\n permanentElementMap[id] = [permanentElementInDocument, elementInStream];\n }\n }\n }\n return permanentElementMap;\n}\n\nclass StreamObserver {\n constructor(delegate) {\n this.sources = new Set();\n this.started = false;\n this.inspectFetchResponse = ((event) => {\n const response = fetchResponseFromEvent(event);\n if (response && fetchResponseIsStream(response)) {\n event.preventDefault();\n this.receiveMessageResponse(response);\n }\n });\n this.receiveMessageEvent = (event) => {\n if (this.started && typeof event.data == \"string\") {\n this.receiveMessageHTML(event.data);\n }\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n this.started = true;\n addEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n removeEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\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 disconnectStreamSource(source) {\n if (this.streamSourceIsConnected(source)) {\n this.sources.delete(source);\n source.removeEventListener(\"message\", this.receiveMessageEvent, false);\n }\n }\n streamSourceIsConnected(source) {\n return this.sources.has(source);\n }\n async receiveMessageResponse(response) {\n const html = await response.responseHTML;\n if (html) {\n this.receiveMessageHTML(html);\n }\n }\n receiveMessageHTML(html) {\n this.delegate.receivedMessageFromStream(StreamMessage.wrap(html));\n }\n}\nfunction fetchResponseFromEvent(event) {\n var _a;\n const fetchResponse = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.fetchResponse;\n if (fetchResponse instanceof FetchResponse) {\n return fetchResponse;\n }\n}\nfunction fetchResponseIsStream(response) {\n var _a;\n const contentType = (_a = response.contentType) !== null && _a !== void 0 ? _a : \"\";\n return contentType.startsWith(StreamMessage.contentType);\n}\n\nclass ErrorRenderer extends Renderer {\n static renderElement(currentElement, newElement) {\n const { documentElement, body } = document;\n documentElement.replaceChild(newElement, body);\n }\n async render() {\n this.replaceHeadAndBody();\n this.activateScriptElements();\n }\n replaceHeadAndBody() {\n const { documentElement, head } = document;\n documentElement.replaceChild(this.newHead, head);\n this.renderElement(this.currentElement, this.newElement);\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 get newHead() {\n return this.newSnapshot.headSnapshot.element;\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 }\n else {\n document.documentElement.appendChild(newElement);\n }\n }\n get shouldRender() {\n return this.newSnapshot.isVisitable && this.trackedElementsAreIdentical;\n }\n get reloadReason() {\n if (!this.newSnapshot.isVisitable) {\n return {\n reason: \"turbo_visit_control_is_reload\",\n };\n }\n if (!this.trackedElementsAreIdentical) {\n return {\n reason: \"tracked_element_mismatch\",\n };\n }\n }\n async prepareToRender() {\n await this.mergeHead();\n }\n async render() {\n if (this.willRender) {\n this.replaceBody();\n }\n }\n finishRendering() {\n super.finishRendering();\n if (!this.isPreview) {\n this.focusFirstAutofocusableElement();\n }\n }\n get currentHeadSnapshot() {\n return this.currentSnapshot.headSnapshot;\n }\n get newHeadSnapshot() {\n return this.newSnapshot.headSnapshot;\n }\n get newElement() {\n return this.newSnapshot.element;\n }\n async mergeHead() {\n const newStylesheetElements = this.copyNewHeadStylesheetElements();\n this.copyNewHeadScriptElements();\n this.removeCurrentHeadProvisionalElements();\n this.copyNewHeadProvisionalElements();\n await newStylesheetElements;\n }\n replaceBody() {\n this.preservingPermanentElements(() => {\n this.activateNewBody();\n this.assignNewBody();\n });\n }\n get trackedElementsAreIdentical() {\n return this.currentHeadSnapshot.trackedElementSignature == this.newHeadSnapshot.trackedElementSignature;\n }\n async copyNewHeadStylesheetElements() {\n const loadingElements = [];\n for (const element of this.newHeadStylesheetElements) {\n loadingElements.push(waitForLoad(element));\n document.head.appendChild(element);\n }\n await Promise.all(loadingElements);\n }\n copyNewHeadScriptElements() {\n for (const element of this.newHeadScriptElements) {\n document.head.appendChild(activateScriptElement(element));\n }\n }\n removeCurrentHeadProvisionalElements() {\n for (const element of this.currentHeadProvisionalElements) {\n document.head.removeChild(element);\n }\n }\n copyNewHeadProvisionalElements() {\n for (const element of this.newHeadProvisionalElements) {\n document.head.appendChild(element);\n }\n }\n activateNewBody() {\n document.adoptNode(this.newElement);\n this.activateNewBodyScriptElements();\n }\n activateNewBodyScriptElements() {\n for (const inertScriptElement of this.newBodyScriptElements) {\n const activatedScriptElement = activateScriptElement(inertScriptElement);\n inertScriptElement.replaceWith(activatedScriptElement);\n }\n }\n assignNewBody() {\n this.renderElement(this.currentElement, this.newElement);\n }\n get newHeadStylesheetElements() {\n return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot);\n }\n get newHeadScriptElements() {\n return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot);\n }\n get currentHeadProvisionalElements() {\n return this.currentHeadSnapshot.provisionalElements;\n }\n get newHeadProvisionalElements() {\n return this.newHeadSnapshot.provisionalElements;\n }\n get newBodyScriptElements() {\n return this.newElement.querySelectorAll(\"script\");\n }\n}\n\nclass SnapshotCache {\n constructor(size) {\n this.keys = [];\n this.snapshots = {};\n this.size = size;\n }\n has(location) {\n return toCacheKey(location) in this.snapshots;\n }\n get(location) {\n if (this.has(location)) {\n const snapshot = this.read(location);\n this.touch(location);\n return snapshot;\n }\n }\n put(location, snapshot) {\n this.write(location, snapshot);\n this.touch(location);\n return snapshot;\n }\n clear() {\n this.snapshots = {};\n }\n read(location) {\n return this.snapshots[toCacheKey(location)];\n }\n write(location, snapshot) {\n this.snapshots[toCacheKey(location)] = snapshot;\n }\n touch(location) {\n const key = toCacheKey(location);\n const index = this.keys.indexOf(key);\n if (index > -1)\n this.keys.splice(index, 1);\n this.keys.unshift(key);\n this.trim();\n }\n trim() {\n for (const key of this.keys.splice(this.size)) {\n delete this.snapshots[key];\n }\n }\n}\n\nclass PageView extends View {\n constructor() {\n super(...arguments);\n this.snapshotCache = new SnapshotCache(10);\n this.lastRenderedLocation = new URL(location.href);\n this.forceReloaded = false;\n }\n renderPage(snapshot, isPreview = false, willRender = true, visit) {\n const renderer = new PageRenderer(this.snapshot, snapshot, PageRenderer.renderElement, isPreview, willRender);\n if (!renderer.shouldRender) {\n this.forceReloaded = true;\n }\n else {\n visit === null || visit === void 0 ? void 0 : visit.changeHistory();\n }\n return this.render(renderer);\n }\n renderError(snapshot, visit) {\n visit === null || visit === void 0 ? void 0 : visit.changeHistory();\n const renderer = new ErrorRenderer(this.snapshot, snapshot, ErrorRenderer.renderElement, false);\n return this.render(renderer);\n }\n clearSnapshotCache() {\n this.snapshotCache.clear();\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 getCachedSnapshotForLocation(location) {\n return this.snapshotCache.get(location);\n }\n get snapshot() {\n return PageSnapshot.fromElement(this.element);\n }\n}\n\nclass Preloader {\n constructor(delegate) {\n this.selector = \"a[data-turbo-preload]\";\n this.delegate = delegate;\n }\n get snapshotCache() {\n return this.delegate.navigator.view.snapshotCache;\n }\n start() {\n if (document.readyState === \"loading\") {\n return document.addEventListener(\"DOMContentLoaded\", () => {\n this.preloadOnLoadLinksForView(document.body);\n });\n }\n else {\n this.preloadOnLoadLinksForView(document.body);\n }\n }\n preloadOnLoadLinksForView(element) {\n for (const link of element.querySelectorAll(this.selector)) {\n this.preloadURL(link);\n }\n }\n async preloadURL(link) {\n const location = new URL(link.href);\n if (this.snapshotCache.has(location)) {\n return;\n }\n try {\n const response = await fetch(location.toString(), { headers: { \"VND.PREFETCH\": \"true\", Accept: \"text/html\" } });\n const responseText = await response.text();\n const snapshot = PageSnapshot.fromHTMLString(responseText);\n this.snapshotCache.put(location, snapshot);\n }\n catch (_) {\n }\n }\n}\n\nclass Session {\n constructor() {\n this.navigator = new Navigator(this);\n this.history = new History(this);\n this.preloader = new Preloader(this);\n this.view = new PageView(this, document.documentElement);\n this.adapter = new BrowserAdapter(this);\n this.pageObserver = new PageObserver(this);\n this.cacheObserver = new CacheObserver();\n this.linkClickObserver = new LinkClickObserver(this, window);\n this.formSubmitObserver = new FormSubmitObserver(this, document);\n this.scrollObserver = new ScrollObserver(this);\n this.streamObserver = new StreamObserver(this);\n this.formLinkClickObserver = new FormLinkClickObserver(this, document.documentElement);\n this.frameRedirector = new FrameRedirector(this, document.documentElement);\n this.streamMessageRenderer = new StreamMessageRenderer();\n this.drive = true;\n this.enabled = true;\n this.progressBarDelay = 500;\n this.started = false;\n this.formMode = \"on\";\n }\n start() {\n if (!this.started) {\n this.pageObserver.start();\n this.cacheObserver.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 disable() {\n this.enabled = false;\n }\n stop() {\n if (this.started) {\n this.pageObserver.stop();\n this.cacheObserver.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.started = false;\n }\n }\n registerAdapter(adapter) {\n this.adapter = adapter;\n }\n visit(location, options = {}) {\n const frameElement = options.frame ? document.getElementById(options.frame) : null;\n if (frameElement instanceof FrameElement) {\n frameElement.src = location.toString();\n frameElement.loaded;\n }\n else {\n this.navigator.proposeVisit(expandURL(location), options);\n }\n }\n connectStreamSource(source) {\n this.streamObserver.connectStreamSource(source);\n }\n disconnectStreamSource(source) {\n this.streamObserver.disconnectStreamSource(source);\n }\n renderStreamMessage(message) {\n this.streamMessageRenderer.render(StreamMessage.wrap(message));\n }\n clearCache() {\n this.view.clearSnapshotCache();\n }\n setProgressBarDelay(delay) {\n this.progressBarDelay = delay;\n }\n setFormMode(mode) {\n this.formMode = mode;\n }\n get location() {\n return this.history.location;\n }\n get restorationIdentifier() {\n return this.history.restorationIdentifier;\n }\n historyPoppedToLocationWithRestorationIdentifier(location, restorationIdentifier) {\n if (this.enabled) {\n this.navigator.startVisit(location, restorationIdentifier, {\n action: \"restore\",\n historyChanged: true,\n });\n }\n else {\n this.adapter.pageInvalidated({\n reason: \"turbo_disabled\",\n });\n }\n }\n scrollPositionChanged(position) {\n this.history.updateRestorationData({ scrollPosition: position });\n }\n willSubmitFormLinkToLocation(link, location) {\n return this.elementIsNavigatable(link) && locationIsVisitable(location, this.snapshot.rootLocation);\n }\n submittedFormLinkToLocation() { }\n willFollowLinkToLocation(link, location, event) {\n return (this.elementIsNavigatable(link) &&\n locationIsVisitable(location, this.snapshot.rootLocation) &&\n this.applicationAllowsFollowingLinkToLocation(link, location, event));\n }\n followedLinkToLocation(link, location) {\n const action = this.getActionForLink(link);\n const acceptsStreamResponse = link.hasAttribute(\"data-turbo-stream\");\n this.visit(location.href, { action, acceptsStreamResponse });\n }\n allowsVisitingLocationWithAction(location, action) {\n return this.locationWithActionIsSamePage(location, action) || this.applicationAllowsVisitingLocation(location);\n }\n visitProposedToLocation(location, options) {\n extendURLWithDeprecatedProperties(location);\n this.adapter.visitProposedToLocation(location, options);\n }\n visitStarted(visit) {\n if (!visit.acceptsStreamResponse) {\n markAsBusy(document.documentElement);\n }\n extendURLWithDeprecatedProperties(visit.location);\n if (!visit.silent) {\n this.notifyApplicationAfterVisitingLocation(visit.location, visit.action);\n }\n }\n visitCompleted(visit) {\n clearBusyState(document.documentElement);\n this.notifyApplicationAfterPageLoad(visit.getTimingMetrics());\n }\n locationWithActionIsSamePage(location, action) {\n return this.navigator.locationWithActionIsSamePage(location, action);\n }\n visitScrolledToSamePageLocation(oldURL, newURL) {\n this.notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL);\n }\n willSubmitForm(form, submitter) {\n const action = getAction(form, submitter);\n return (this.submissionIsNavigatable(form, submitter) &&\n locationIsVisitable(expandURL(action), this.snapshot.rootLocation));\n }\n formSubmitted(form, submitter) {\n this.navigator.submitForm(form, submitter);\n }\n pageBecameInteractive() {\n this.view.lastRenderedLocation = this.location;\n this.notifyApplicationAfterPageLoad();\n }\n pageLoaded() {\n this.history.assumeControlOfScrollRestoration();\n }\n pageWillUnload() {\n this.history.relinquishControlOfScrollRestoration();\n }\n receivedMessageFromStream(message) {\n this.renderStreamMessage(message);\n }\n viewWillCacheSnapshot() {\n var _a;\n if (!((_a = this.navigator.currentVisit) === null || _a === void 0 ? void 0 : _a.silent)) {\n this.notifyApplicationBeforeCachingSnapshot();\n }\n }\n allowsImmediateRender({ element }, options) {\n const event = this.notifyApplicationBeforeRender(element, options);\n const { defaultPrevented, detail: { render }, } = event;\n if (this.view.renderer && render) {\n this.view.renderer.renderElement = render;\n }\n return !defaultPrevented;\n }\n viewRenderedSnapshot(_snapshot, _isPreview) {\n this.view.lastRenderedLocation = this.history.location;\n this.notifyApplicationAfterRender();\n }\n preloadOnLoadLinksForView(element) {\n this.preloader.preloadOnLoadLinksForView(element);\n }\n viewInvalidated(reason) {\n this.adapter.pageInvalidated(reason);\n }\n frameLoaded(frame) {\n this.notifyApplicationAfterFrameLoad(frame);\n }\n frameRendered(fetchResponse, frame) {\n this.notifyApplicationAfterFrameRender(fetchResponse, frame);\n }\n applicationAllowsFollowingLinkToLocation(link, location, ev) {\n const event = this.notifyApplicationAfterClickingLinkToLocation(link, location, ev);\n return !event.defaultPrevented;\n }\n applicationAllowsVisitingLocation(location) {\n const event = this.notifyApplicationBeforeVisitingLocation(location);\n return !event.defaultPrevented;\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 notifyApplicationBeforeVisitingLocation(location) {\n return dispatch(\"turbo:before-visit\", {\n detail: { url: location.href },\n cancelable: true,\n });\n }\n notifyApplicationAfterVisitingLocation(location, action) {\n return dispatch(\"turbo:visit\", { detail: { url: location.href, action } });\n }\n notifyApplicationBeforeCachingSnapshot() {\n return dispatch(\"turbo:before-cache\");\n }\n notifyApplicationBeforeRender(newBody, options) {\n return dispatch(\"turbo:before-render\", {\n detail: Object.assign({ newBody }, options),\n cancelable: true,\n });\n }\n notifyApplicationAfterRender() {\n return dispatch(\"turbo:render\");\n }\n notifyApplicationAfterPageLoad(timing = {}) {\n return dispatch(\"turbo:load\", {\n detail: { url: this.location.href, timing },\n });\n }\n notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL) {\n dispatchEvent(new HashChangeEvent(\"hashchange\", {\n oldURL: oldURL.toString(),\n newURL: newURL.toString(),\n }));\n }\n notifyApplicationAfterFrameLoad(frame) {\n return dispatch(\"turbo:frame-load\", { target: frame });\n }\n notifyApplicationAfterFrameRender(fetchResponse, frame) {\n return dispatch(\"turbo:frame-render\", {\n detail: { fetchResponse },\n target: frame,\n cancelable: true,\n });\n }\n submissionIsNavigatable(form, submitter) {\n if (this.formMode == \"off\") {\n return false;\n }\n else {\n const submitterIsNavigatable = submitter ? this.elementIsNavigatable(submitter) : true;\n if (this.formMode == \"optin\") {\n return submitterIsNavigatable && form.closest('[data-turbo=\"true\"]') != null;\n }\n else {\n return submitterIsNavigatable && this.elementIsNavigatable(form);\n }\n }\n }\n elementIsNavigatable(element) {\n const container = element.closest(\"[data-turbo]\");\n const withinFrame = element.closest(\"turbo-frame\");\n if (this.drive || withinFrame) {\n if (container) {\n return container.getAttribute(\"data-turbo\") != \"false\";\n }\n else {\n return true;\n }\n }\n else {\n if (container) {\n return container.getAttribute(\"data-turbo\") == \"true\";\n }\n else {\n return false;\n }\n }\n }\n getActionForLink(link) {\n const action = link.getAttribute(\"data-turbo-action\");\n return isAction(action) ? action : \"advance\";\n }\n get snapshot() {\n return this.view.snapshot;\n }\n}\nfunction extendURLWithDeprecatedProperties(url) {\n Object.defineProperties(url, deprecatedLocationPropertyDescriptors);\n}\nconst deprecatedLocationPropertyDescriptors = {\n absoluteURL: {\n get() {\n return this.toString();\n },\n },\n};\n\nclass Cache {\n constructor(session) {\n this.session = session;\n }\n clear() {\n this.session.clearCache();\n }\n resetCacheControl() {\n this.setCacheControl(\"\");\n }\n exemptPageFromCache() {\n this.setCacheControl(\"no-cache\");\n }\n exemptPageFromPreview() {\n this.setCacheControl(\"no-preview\");\n }\n setCacheControl(value) {\n setMetaContent(\"turbo-cache-control\", value);\n }\n}\n\nconst StreamActions = {\n after() {\n this.targetElements.forEach((e) => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e.nextSibling); });\n },\n append() {\n this.removeDuplicateTargetChildren();\n this.targetElements.forEach((e) => e.append(this.templateContent));\n },\n before() {\n this.targetElements.forEach((e) => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e); });\n },\n prepend() {\n this.removeDuplicateTargetChildren();\n this.targetElements.forEach((e) => e.prepend(this.templateContent));\n },\n remove() {\n this.targetElements.forEach((e) => e.remove());\n },\n replace() {\n this.targetElements.forEach((e) => e.replaceWith(this.templateContent));\n },\n update() {\n this.targetElements.forEach((e) => e.replaceChildren(this.templateContent));\n },\n};\n\nconst session = new Session();\nconst cache = new Cache(session);\nconst { navigator: navigator$1 } = session;\nfunction start() {\n session.start();\n}\nfunction registerAdapter(adapter) {\n session.registerAdapter(adapter);\n}\nfunction visit(location, options) {\n session.visit(location, options);\n}\nfunction connectStreamSource(source) {\n session.connectStreamSource(source);\n}\nfunction disconnectStreamSource(source) {\n session.disconnectStreamSource(source);\n}\nfunction renderStreamMessage(message) {\n session.renderStreamMessage(message);\n}\nfunction clearCache() {\n console.warn(\"Please replace `Turbo.clearCache()` with `Turbo.cache.clear()`. The top-level function is deprecated and will be removed in a future version of Turbo.`\");\n session.clearCache();\n}\nfunction setProgressBarDelay(delay) {\n session.setProgressBarDelay(delay);\n}\nfunction setConfirmMethod(confirmMethod) {\n FormSubmission.confirmMethod = confirmMethod;\n}\nfunction setFormMode(mode) {\n session.setFormMode(mode);\n}\n\nvar Turbo = /*#__PURE__*/Object.freeze({\n __proto__: null,\n navigator: navigator$1,\n session: session,\n cache: cache,\n PageRenderer: PageRenderer,\n PageSnapshot: PageSnapshot,\n FrameRenderer: FrameRenderer,\n start: start,\n registerAdapter: registerAdapter,\n visit: visit,\n connectStreamSource: connectStreamSource,\n disconnectStreamSource: disconnectStreamSource,\n renderStreamMessage: renderStreamMessage,\n clearCache: clearCache,\n setProgressBarDelay: setProgressBarDelay,\n setConfirmMethod: setConfirmMethod,\n setFormMode: setFormMode,\n StreamActions: StreamActions\n});\n\nclass FrameController {\n constructor(element) {\n this.fetchResponseLoaded = (_fetchResponse) => { };\n this.currentFetchRequest = null;\n this.resolveVisitPromise = () => { };\n this.connected = false;\n this.hasBeenLoaded = false;\n this.ignoredAttributes = new Set();\n this.action = null;\n this.visitCachedSnapshot = ({ element }) => {\n const frame = element.querySelector(\"#\" + this.element.id);\n if (frame && this.previousFrameElement) {\n frame.replaceChildren(...this.previousFrameElement.children);\n }\n delete this.previousFrameElement;\n };\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 connect() {\n if (!this.connected) {\n this.connected = true;\n if (this.loadingStyle == FrameLoadingStyle.lazy) {\n this.appearanceObserver.start();\n }\n else {\n this.loadSourceURL();\n }\n this.formLinkClickObserver.start();\n this.linkInterceptor.start();\n this.formSubmitObserver.start();\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 }\n disabledChanged() {\n if (this.loadingStyle == FrameLoadingStyle.eager) {\n this.loadSourceURL();\n }\n }\n sourceURLChanged() {\n if (this.isIgnoringChangesTo(\"src\"))\n return;\n if (this.element.isConnected) {\n this.complete = false;\n }\n if (this.loadingStyle == FrameLoadingStyle.eager || this.hasBeenLoaded) {\n this.loadSourceURL();\n }\n }\n sourceURLReloaded() {\n const { src } = this.element;\n this.ignoringChangesToAttribute(\"complete\", () => {\n this.element.removeAttribute(\"complete\");\n });\n this.element.src = null;\n this.element.src = src;\n return this.element.loaded;\n }\n completeChanged() {\n if (this.isIgnoringChangesTo(\"complete\"))\n return;\n this.loadSourceURL();\n }\n loadingStyleChanged() {\n if (this.loadingStyle == FrameLoadingStyle.lazy) {\n this.appearanceObserver.start();\n }\n else {\n this.appearanceObserver.stop();\n this.loadSourceURL();\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 async loadResponse(fetchResponse) {\n if (fetchResponse.redirected || (fetchResponse.succeeded && fetchResponse.isHTML)) {\n this.sourceURL = fetchResponse.response.url;\n }\n try {\n const html = await fetchResponse.responseHTML;\n if (html) {\n const { body } = parseHTMLDocument(html);\n const newFrameElement = await this.extractForeignFrameElement(body);\n if (newFrameElement) {\n const snapshot = new Snapshot(newFrameElement);\n const renderer = new FrameRenderer(this, this.view.snapshot, snapshot, FrameRenderer.renderElement, false, false);\n if (this.view.renderPromise)\n await this.view.renderPromise;\n this.changeHistory();\n await this.view.render(renderer);\n this.complete = true;\n session.frameRendered(fetchResponse, this.element);\n session.frameLoaded(this.element);\n this.fetchResponseLoaded(fetchResponse);\n }\n else if (this.willHandleFrameMissingFromResponse(fetchResponse)) {\n console.warn(`A matching frame for #${this.element.id} was missing from the response, transforming into full-page Visit.`);\n this.visitResponse(fetchResponse.response);\n }\n }\n }\n catch (error) {\n console.error(error);\n this.view.invalidate();\n }\n finally {\n this.fetchResponseLoaded = () => { };\n }\n }\n elementAppearedInViewport(_element) {\n this.loadSourceURL();\n }\n willSubmitFormLinkToLocation(link) {\n return this.shouldInterceptNavigation(link);\n }\n submittedFormLinkToLocation(link, _location, form) {\n const frame = this.findFrameElement(link);\n if (frame)\n form.setAttribute(\"data-turbo-frame\", frame.id);\n }\n shouldInterceptLinkClick(element, _location, _event) {\n return this.shouldInterceptNavigation(element);\n }\n linkClickIntercepted(element, location) {\n this.navigateFrame(element, location);\n }\n willSubmitForm(element, submitter) {\n return element.closest(\"turbo-frame\") == this.element && this.shouldInterceptNavigation(element, submitter);\n }\n formSubmitted(element, submitter) {\n if (this.formSubmission) {\n this.formSubmission.stop();\n }\n this.formSubmission = new FormSubmission(this, element, submitter);\n const { fetchRequest } = this.formSubmission;\n this.prepareHeadersForRequest(fetchRequest.headers, fetchRequest);\n this.formSubmission.start();\n }\n prepareHeadersForRequest(headers, request) {\n var _a;\n headers[\"Turbo-Frame\"] = this.id;\n if ((_a = this.currentNavigationElement) === null || _a === void 0 ? void 0 : _a.hasAttribute(\"data-turbo-stream\")) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted(_request) {\n markAsBusy(this.element);\n }\n requestPreventedHandlingResponse(_request, _response) {\n this.resolveVisitPromise();\n }\n async requestSucceededWithResponse(request, response) {\n await this.loadResponse(response);\n this.resolveVisitPromise();\n }\n async requestFailedWithResponse(request, response) {\n console.error(response);\n await this.loadResponse(response);\n this.resolveVisitPromise();\n }\n requestErrored(request, error) {\n console.error(error);\n this.resolveVisitPromise();\n }\n requestFinished(_request) {\n clearBusyState(this.element);\n }\n formSubmissionStarted({ formElement }) {\n markAsBusy(formElement, this.findFrameElement(formElement));\n }\n formSubmissionSucceededWithResponse(formSubmission, response) {\n const frame = this.findFrameElement(formSubmission.formElement, formSubmission.submitter);\n frame.delegate.proposeVisitIfNavigatedWithAction(frame, formSubmission.formElement, formSubmission.submitter);\n frame.delegate.loadResponse(response);\n }\n formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n this.element.delegate.loadResponse(fetchResponse);\n }\n formSubmissionErrored(formSubmission, error) {\n console.error(error);\n }\n formSubmissionFinished({ formElement }) {\n clearBusyState(formElement, this.findFrameElement(formElement));\n }\n allowsImmediateRender({ element: newFrame }, options) {\n const event = dispatch(\"turbo:before-frame-render\", {\n target: this.element,\n detail: Object.assign({ newFrame }, options),\n cancelable: true,\n });\n const { defaultPrevented, detail: { render }, } = event;\n if (this.view.renderer && render) {\n this.view.renderer.renderElement = render;\n }\n return !defaultPrevented;\n }\n viewRenderedSnapshot(_snapshot, _isPreview) { }\n preloadOnLoadLinksForView(element) {\n session.preloadOnLoadLinksForView(element);\n }\n viewInvalidated() { }\n willRenderFrame(currentElement, _newElement) {\n this.previousFrameElement = currentElement.cloneNode(true);\n }\n async visit(url) {\n var _a;\n const request = new FetchRequest(this, FetchMethod.get, url, new URLSearchParams(), this.element);\n (_a = this.currentFetchRequest) === null || _a === void 0 ? void 0 : _a.cancel();\n this.currentFetchRequest = request;\n return new Promise((resolve) => {\n this.resolveVisitPromise = () => {\n this.resolveVisitPromise = () => { };\n this.currentFetchRequest = null;\n resolve();\n };\n request.perform();\n });\n }\n navigateFrame(element, url, submitter) {\n const frame = this.findFrameElement(element, submitter);\n this.pageSnapshot = PageSnapshot.fromElement(frame).clone();\n frame.delegate.proposeVisitIfNavigatedWithAction(frame, element, submitter);\n this.withCurrentNavigationElement(element, () => {\n frame.src = url;\n });\n }\n proposeVisitIfNavigatedWithAction(frame, element, submitter) {\n this.action = getVisitAction(submitter, element, frame);\n if (isAction(this.action)) {\n const { visitCachedSnapshot } = frame.delegate;\n frame.delegate.fetchResponseLoaded = (fetchResponse) => {\n if (frame.src) {\n const { statusCode, redirected } = fetchResponse;\n const responseHTML = frame.ownerDocument.documentElement.outerHTML;\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: this.pageSnapshot,\n };\n if (this.action)\n options.action = this.action;\n session.visit(frame.src, options);\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 willHandleFrameMissingFromResponse(fetchResponse) {\n this.element.setAttribute(\"complete\", \"\");\n const response = fetchResponse.response;\n const visit = async (url, options = {}) => {\n if (url instanceof Response) {\n this.visitResponse(url);\n }\n else {\n session.visit(url, options);\n }\n };\n const event = dispatch(\"turbo:frame-missing\", {\n target: this.element,\n detail: { response, visit },\n cancelable: true,\n });\n return !event.defaultPrevented;\n }\n async visitResponse(response) {\n const wrapped = new FetchResponse(response);\n const responseHTML = await wrapped.responseHTML;\n const { location, redirected, statusCode } = wrapped;\n return session.visit(location, { response: { redirected, statusCode, responseHTML } });\n }\n findFrameElement(element, submitter) {\n var _a;\n const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n return (_a = getFrameElementById(id)) !== null && _a !== void 0 ? _a : this.element;\n }\n async extractForeignFrameElement(container) {\n let element;\n const id = CSS.escape(this.id);\n try {\n element = activateElement(container.querySelector(`turbo-frame#${id}`), this.sourceURL);\n if (element) {\n return element;\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 }\n catch (error) {\n console.error(error);\n return new FrameElement();\n }\n return null;\n }\n formActionIsVisitable(form, submitter) {\n const action = getAction(form, submitter);\n return locationIsVisitable(expandURL(action), this.rootLocation);\n }\n shouldInterceptNavigation(element, submitter) {\n const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n if (element instanceof HTMLFormElement && !this.formActionIsVisitable(element, submitter)) {\n return false;\n }\n if (!this.enabled || id == \"_top\") {\n return false;\n }\n if (id) {\n const frameElement = getFrameElementById(id);\n if (frameElement) {\n return !frameElement.disabled;\n }\n }\n if (!session.elementIsNavigatable(element)) {\n return false;\n }\n if (submitter && !session.elementIsNavigatable(submitter)) {\n return false;\n }\n return true;\n }\n get id() {\n return this.element.id;\n }\n get enabled() {\n return !this.element.disabled;\n }\n get sourceURL() {\n if (this.element.src) {\n return this.element.src;\n }\n }\n set sourceURL(sourceURL) {\n this.ignoringChangesToAttribute(\"src\", () => {\n this.element.src = sourceURL !== null && sourceURL !== void 0 ? sourceURL : null;\n });\n }\n get loadingStyle() {\n return this.element.loading;\n }\n get isLoading() {\n return this.formSubmission !== undefined || this.resolveVisitPromise() !== undefined;\n }\n get complete() {\n return this.element.hasAttribute(\"complete\");\n }\n set complete(value) {\n this.ignoringChangesToAttribute(\"complete\", () => {\n if (value) {\n this.element.setAttribute(\"complete\", \"\");\n }\n else {\n this.element.removeAttribute(\"complete\");\n }\n });\n }\n get isActive() {\n return this.element.isActive && this.connected;\n }\n get rootLocation() {\n var _a;\n const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n const root = (_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\";\n return expandURL(root);\n }\n isIgnoringChangesTo(attributeName) {\n return this.ignoredAttributes.has(attributeName);\n }\n ignoringChangesToAttribute(attributeName, callback) {\n this.ignoredAttributes.add(attributeName);\n callback();\n this.ignoredAttributes.delete(attributeName);\n }\n withCurrentNavigationElement(element, callback) {\n this.currentNavigationElement = element;\n callback();\n delete this.currentNavigationElement;\n }\n}\nfunction getFrameElementById(id) {\n if (id != null) {\n const element = document.getElementById(id);\n if (element instanceof FrameElement) {\n return element;\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 if (element instanceof FrameElement) {\n element.connectedCallback();\n element.disconnectedCallback();\n return element;\n }\n }\n}\n\nclass StreamElement extends HTMLElement {\n static async renderElement(newElement) {\n await newElement.performAction();\n }\n async connectedCallback() {\n try {\n await this.render();\n }\n catch (error) {\n console.error(error);\n }\n finally {\n this.disconnect();\n }\n }\n async render() {\n var _a;\n return ((_a = this.renderPromise) !== null && _a !== void 0 ? _a : (this.renderPromise = (async () => {\n const event = this.beforeRenderEvent;\n if (this.dispatchEvent(event)) {\n await nextAnimationFrame();\n await event.detail.render(this);\n }\n })()));\n }\n disconnect() {\n try {\n this.remove();\n }\n catch (_a) { }\n }\n removeDuplicateTargetChildren() {\n this.duplicateChildren.forEach((c) => c.remove());\n }\n get duplicateChildren() {\n var _a;\n const existingChildren = this.targetElements.flatMap((e) => [...e.children]).filter((c) => !!c.id);\n const newChildrenIds = [...(((_a = this.templateContent) === null || _a === void 0 ? void 0 : _a.children) || [])].filter((c) => !!c.id).map((c) => c.id);\n return existingChildren.filter((c) => newChildrenIds.includes(c.id));\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 get targetElements() {\n if (this.target) {\n return this.targetElementsById;\n }\n else if (this.targets) {\n return this.targetElementsByQuery;\n }\n else {\n this.raise(\"target or targets attribute is missing\");\n }\n }\n get templateContent() {\n return this.templateElement.content.cloneNode(true);\n }\n get templateElement() {\n if (this.firstElementChild === null) {\n const template = this.ownerDocument.createElement(\"template\");\n this.appendChild(template);\n return template;\n }\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 get action() {\n return this.getAttribute(\"action\");\n }\n get target() {\n return this.getAttribute(\"target\");\n }\n get targets() {\n return this.getAttribute(\"targets\");\n }\n raise(message) {\n throw new Error(`${this.description}: ${message}`);\n }\n get description() {\n var _a, _b;\n return (_b = ((_a = this.outerHTML.match(/<[^>]+>/)) !== null && _a !== void 0 ? _a : [])[0]) !== null && _b !== void 0 ? _b : \"<turbo-stream>\";\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 get targetElementsById() {\n var _a;\n const element = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.getElementById(this.target);\n if (element !== null) {\n return [element];\n }\n else {\n return [];\n }\n }\n get targetElementsByQuery() {\n var _a;\n const elements = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.targets);\n if (elements.length !== 0) {\n return Array.prototype.slice.call(elements);\n }\n else {\n return [];\n }\n }\n}\n\nclass StreamSourceElement extends HTMLElement {\n constructor() {\n super(...arguments);\n this.streamSource = null;\n }\n connectedCallback() {\n this.streamSource = this.src.match(/^ws{1,2}:/) ? new WebSocket(this.src) : new EventSource(this.src);\n connectStreamSource(this.streamSource);\n }\n disconnectedCallback() {\n if (this.streamSource) {\n disconnectStreamSource(this.streamSource);\n }\n }\n get src() {\n return this.getAttribute(\"src\") || \"\";\n }\n}\n\nFrameElement.delegateConstructor = FrameController;\nif (customElements.get(\"turbo-frame\") === undefined) {\n customElements.define(\"turbo-frame\", FrameElement);\n}\nif (customElements.get(\"turbo-stream\") === undefined) {\n customElements.define(\"turbo-stream\", StreamElement);\n}\nif (customElements.get(\"turbo-stream-source\") === undefined) {\n customElements.define(\"turbo-stream-source\", StreamSourceElement);\n}\n\n(() => {\n let element = document.currentScript;\n if (!element)\n return;\n if (element.hasAttribute(\"data-turbo-suppress-warning\"))\n return;\n element = element.parentElement;\n while (element) {\n if (element == document.body) {\n return console.warn(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’s 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 ——\n Suppress this warning by adding a \"data-turbo-suppress-warning\" attribute to: %s\n `, element.outerHTML);\n }\n element = element.parentElement;\n }\n})();\n\nwindow.Turbo = Turbo;\nstart();\n\nexport { FrameElement, FrameLoadingStyle, FrameRenderer, PageRenderer, PageSnapshot, StreamActions, StreamElement, StreamSourceElement, cache, clearCache, connectStreamSource, disconnectStreamSource, navigator$1 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 async connectedCallback() {\n connectStreamSource(this)\n this.subscription = await subscribeTo(this.channel, { received: this.dispatchMessageEvent.bind(this) })\n }\n\n disconnectedCallback() {\n disconnectStreamSource(this)\n if (this.subscription) this.subscription.unsubscribe()\n }\n\n dispatchMessageEvent(data) {\n const event = new MessageEvent(\"message\", { data })\n return this.dispatchEvent(event)\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\ncustomElements.define(\"turbo-cable-stream-source\", TurboCableStreamSourceElement)\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\naddEventListener(\"turbo:before-fetch-request\", encodeMethodIntoRequestBody)\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 method = (submitter && submitter.formMethod) || (fetchOptions.body && fetchOptions.body.get(\"_method\")) || form.getAttribute(\"method\")\n\n if (!/get/i.test(method)) {\n if (/post/i.test(method)) {\n fetchOptions.body.delete(\"_method\")\n } else {\n fetchOptions.body.set(\"_method\", method)\n }\n\n fetchOptions.method = \"post\"\n }\n }, { once: true })\n }\n}\n","/*\nStimulus 3.2.1\nCopyright © 2022 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[1];\n let keyFilter = matches[2];\n if (keyFilter && ![\"keydown\", \"keyup\", \"keypress\"].includes(eventName)) {\n eventName += `.${keyFilter}`;\n keyFilter = \"\";\n }\n return {\n eventTarget: parseEventTarget(matches[3]),\n eventName,\n eventOptions: matches[6] ? parseEventOptions(matches[6]) : {},\n identifier: matches[4],\n methodName: matches[5],\n 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\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 isFilterTarget(event) {\n if (!this.keyFilter) {\n return false;\n }\n const filteres = this.keyFilter.split(\"+\");\n const modifiers = [\"meta\", \"ctrl\", \"alt\", \"shift\"];\n const [meta, ctrl, alt, shift] = modifiers.map((modifier) => filteres.includes(modifier));\n if (event.metaKey !== meta || event.ctrlKey !== ctrl || event.altKey !== alt || event.shiftKey !== shift) {\n return true;\n }\n const standardFilter = filteres.filter((key) => !modifiers.includes(key))[0];\n if (!standardFilter) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(this.keyMappings, standardFilter)) {\n error(`contains unknown key filter: ${this.keyFilter}`);\n }\n return this.keyMappings[standardFilter].toLowerCase() !== event.key.toLowerCase();\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}\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 if (this.willBeInvokedByEvent(event) && this.applyEventModifiers(event)) {\n this.invokeWithEvent(event);\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 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 });\n }\n else {\n continue;\n }\n }\n return passes;\n }\n invokeWithEvent(event) {\n const { target, currentTarget } = event;\n try {\n const { params } = this.action;\n const actionEvent = Object.assign(event, { params });\n this.method.call(this.controller, actionEvent);\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.isFilterTarget(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(node, attributeName) {\n const element = node;\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 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 matches = element.matches(this.selector);\n if (this.delegate.selectorMatchElement) {\n return matches && this.delegate.selectorMatchElement(element, this.details);\n }\n return matches;\n }\n matchElementsInTree(tree) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(this.selector)).filter((match) => this.matchElement(match));\n return match.concat(matches);\n }\n elementMatched(element) {\n this.selectorMatched(element);\n }\n elementUnmatched(element) {\n this.selectorUnmatched(element);\n }\n elementAttributeChanged(element, _attributeName) {\n const matches = this.matchElement(element);\n const matchedBefore = this.matchesByElement.has(this.selector, element);\n if (!matches && matchedBefore) {\n this.selectorUnmatched(element);\n }\n }\n selectorMatched(element) {\n if (this.delegate.selectorMatched) {\n this.delegate.selectorMatched(element, this.selector, this.details);\n this.matchesByElement.add(this.selector, element);\n }\n }\n selectorUnmatched(element) {\n this.delegate.selectorUnmatched(element, this.selector, this.details);\n this.matchesByElement.delete(this.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.context = context;\n this.delegate = delegate;\n this.outletsByName = new Multimap();\n this.outletElementsByName = new Multimap();\n this.selectorObserverMap = new Map();\n }\n start() {\n if (this.selectorObserverMap.size === 0) {\n this.outletDefinitions.forEach((outletName) => {\n const selector = this.selector(outletName);\n const details = { outletName };\n if (selector) {\n this.selectorObserverMap.set(outletName, new SelectorObserver(document.body, selector, this, details));\n }\n });\n this.selectorObserverMap.forEach((observer) => observer.start());\n }\n this.dependentContexts.forEach((context) => context.refresh());\n }\n stop() {\n if (this.selectorObserverMap.size > 0) {\n this.disconnectAllOutlets();\n this.selectorObserverMap.forEach((observer) => observer.stop());\n this.selectorObserverMap.clear();\n }\n }\n refresh() {\n this.selectorObserverMap.forEach((observer) => observer.refresh());\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 return (this.hasOutlet(element, outletName) &&\n element.matches(`[${this.context.application.schema.controllerAttribute}~=${outletName}]`));\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 selector(outletName) {\n return this.scope.outlets.getSelectorForOutletName(outletName);\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 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 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(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 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\" }, 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 propertiesForOutletDefinition(name) {\n const camelizedName = namespaceCamelize(name);\n return {\n [`${camelizedName}Outlet`]: {\n get() {\n const outlet = this.outlets.find(name);\n if (outlet) {\n const outletController = this.application.getControllerForElementAndIdentifier(outlet, name);\n if (outletController) {\n return outletController;\n }\n else {\n throw new Error(`Missing \"data-controller=${name}\" attribute on outlet element for \"${this.identifier}\" controller`);\n }\n }\n throw new Error(`Missing outlet element \"${name}\" for \"${this.identifier}\" controller`);\n },\n },\n [`${camelizedName}Outlets`]: {\n get() {\n const outlets = this.outlets.findAll(name);\n if (outlets.length > 0) {\n return outlets\n .map((outlet) => {\n const controller = this.application.getControllerForElementAndIdentifier(outlet, name);\n if (controller) {\n return controller;\n }\n else {\n console.warn(`The provided outlet element is missing the outlet controller \"${name}\" for \"${this.identifier}\"`, outlet);\n }\n })\n .filter((controller) => controller);\n }\n return [];\n },\n },\n [`${camelizedName}OutletElement`]: {\n get() {\n const outlet = this.outlets.find(name);\n if (outlet) {\n return outlet;\n }\n else {\n throw new Error(`Missing outlet element \"${name}\" for \"${this.identifier}\" controller`);\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 typeFromObject = parseValueTypeConstant(payload.typeObject.type);\n if (!typeFromObject)\n return;\n const defaultValueType = parseValueTypeDefault(payload.typeObject.default);\n if (typeFromObject !== defaultValueType) {\n const propertyPath = payload.controller ? `${payload.controller}.${payload.token}` : payload.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 \"${payload.typeObject.default}\" is of type \"${defaultValueType}\".`);\n }\n return typeFromObject;\n}\nfunction parseValueTypeDefinition(payload) {\n const typeFromObject = parseValueTypeObject({\n controller: payload.controller,\n token: payload.token,\n typeObject: payload.typeDefinition,\n });\n const typeFromDefaultValue = parseValueTypeDefault(payload.typeDefinition);\n const typeFromConstant = parseValueTypeConstant(payload.typeDefinition);\n const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type)\n return type;\n const propertyPath = payload.controller ? `${payload.controller}.${payload.typeDefinition}` : payload.token;\n throw new Error(`Unknown value type \"${propertyPath}\" for \"${payload.token}\" value`);\n}\nfunction defaultValueForDefinition(typeDefinition) {\n const constant = parseValueTypeConstant(typeDefinition);\n if (constant)\n return defaultValuesByType[constant];\n const defaultValue = typeDefinition.default;\n if (defaultValue !== undefined)\n return defaultValue;\n return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(payload) {\n const key = `${dasherize(payload.token)}-value`;\n const type = parseValueTypeDefinition(payload);\n return {\n type,\n key,\n name: camelize(key),\n get defaultValue() {\n return defaultValueForDefinition(payload.typeDefinition);\n },\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(payload.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);\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","import { Application } from \"@hotwired/stimulus\"\n\nconst application = Application.start()\n\n// Configure Stimulus development experience\napplication.debug = false\nwindow.Stimulus = application\n\nexport { application }\n","// This file is auto-generated by ./bin/rails stimulus:manifest:update\n// Run that command whenever you add a new controller or create them with\n// ./bin/rails generate stimulus controllerName\n\nimport { application } from \"./application\"\n\nimport HelloController from \"./hello_controller\"\napplication.register(\"hello\", HelloController)\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n this.element.textContent = \"Hello World!\"\n }\n}\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/*!\n * Bootstrap v5.2.3 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nimport * as Popper from '@popperjs/core';\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst MAX_UID = 1000000;\nconst MILLISECONDS_MULTIPLIER = 1000;\nconst TRANSITION_END = 'transitionend'; // Shout-out Angus Croll (https://goo.gl/pxwQGp)\n\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`;\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase();\n};\n/**\n * Public Util API\n */\n\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n};\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`;\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\n }\n\n return selector;\n};\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element);\n\n if (selector) {\n return document.querySelector(selector) ? selector : null;\n }\n\n return null;\n};\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n};\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n};\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false;\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0];\n }\n\n return typeof object.nodeType !== 'undefined';\n};\n\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object;\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(object);\n }\n\n return null;\n};\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; // Handle `details` element as its content may falsie appear visible when it is closed\n\n const closedDetails = element.closest('details:not([open])');\n\n if (!closedDetails) {\n return elementIsVisible;\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary');\n\n if (summary && summary.parentNode !== closedDetails) {\n return false;\n }\n\n if (summary === null) {\n return false;\n }\n }\n\n return elementIsVisible;\n};\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n\n if (element.classList.contains('disabled')) {\n return true;\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n};\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return findShadowRoot(element.parentNode);\n};\n\nconst noop = () => {};\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\n\n\nconst reflow = element => {\n element.offsetHeight; // eslint-disable-line no-unused-expressions\n};\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery;\n }\n\n return null;\n};\n\nconst DOMContentLoadedCallbacks = [];\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback();\n }\n });\n }\n\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n};\n\nconst isRTL = () => document.documentElement.dir === 'rtl';\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n};\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback();\n }\n};\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n};\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\n\n\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length;\n let index = list.indexOf(activeElement); // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\n }\n\n index += shouldGetNext ? 1 : -1;\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\nconst stripNameRegex = /\\..*/;\nconst stripUidRegex = /::\\d+$/;\nconst eventRegistry = {}; // Events storage\n\nlet uidEvent = 1;\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n};\nconst nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n\n return fn.apply(element, [event]);\n };\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue;\n }\n\n hydrateObj(event, {\n delegateTarget: target\n });\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n\n return fn.apply(target, [event]);\n }\n }\n };\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'; // todo: tooltip passes `false` instead of selector, so we need to check\n\n const callable = isDelegated ? delegationFunction : handler || delegationFunction;\n let typeEvent = getTypeEvent(originalTypeEvent);\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent;\n }\n\n return [isDelegated, callable, typeEvent];\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n\n callable = wrapFunction(callable);\n }\n\n const events = getElementEvents(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\n return;\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n fn.delegationSelector = isDelegated ? handler : null;\n fn.callable = callable;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, isDelegated);\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n\n if (!fn) {\n return;\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\n\n for (const handlerKey of Object.keys(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey];\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false);\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true);\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n const inNamespace = typeEvent !== originalTypeEvent;\n const events = getElementEvents(element);\n const storeElementEvent = events[typeEvent] || {};\n const isNamespace = originalTypeEvent.startsWith('.');\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return;\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n return;\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n }\n }\n\n for (const keyHandlers of Object.keys(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers];\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n\n const $ = getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n let jQueryEvent = null;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n\n let evt = new Event(event, {\n bubbles,\n cancelable: true\n });\n evt = hydrateObj(evt, args);\n\n if (defaultPrevented) {\n evt.preventDefault();\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault();\n }\n\n return evt;\n }\n\n};\n\nfunction hydrateObj(obj, meta) {\n for (const [key, value] of Object.entries(meta || {})) {\n try {\n obj[key] = value;\n } catch (_unused) {\n Object.defineProperty(obj, key, {\n configurable: true,\n\n get() {\n return value;\n }\n\n });\n }\n }\n\n return obj;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\nconst elementMap = new Map();\nconst Data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n\n const instanceMap = elementMap.get(element); // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\n return;\n }\n\n instanceMap.set(key, instance);\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n\n return null;\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n\n const instanceMap = elementMap.get(element);\n instanceMap.delete(key); // free up element references if there are no instances left for an element\n\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nfunction normalizeData(value) {\n if (value === 'true') {\n return true;\n }\n\n if (value === 'false') {\n return false;\n }\n\n if (value === Number(value).toString()) {\n return Number(value);\n }\n\n if (value === '' || value === 'null') {\n return null;\n }\n\n if (typeof value !== 'string') {\n return value;\n }\n\n try {\n return JSON.parse(decodeURIComponent(value));\n } catch (_unused) {\n return value;\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n\n const attributes = {};\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n }\n\n return attributes;\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {};\n }\n\n static get DefaultType() {\n return {};\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n }\n\n _configAfterMerge(config) {\n return config;\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse\n\n return { ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n };\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const property of Object.keys(configTypes)) {\n const expectedTypes = configTypes[property];\n const value = config[property];\n const valueType = isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n }\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst VERSION = '5.2.3';\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super();\n element = getElement(element);\n\n if (!element) {\n return;\n }\n\n this._element = element;\n this._config = this._getConfig(config);\n Data.set(this._element, this.constructor.DATA_KEY, this);\n } // Public\n\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null;\n }\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated);\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n } // Static\n\n\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n\n static get VERSION() {\n return VERSION;\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\n const name = component.NAME;\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n const target = getElementFromSelector(this) || this.closest(`.${name}`);\n const instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n\n instance[method]();\n });\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$f = 'alert';\nconst DATA_KEY$a = 'bs.alert';\nconst EVENT_KEY$b = `.${DATA_KEY$a}`;\nconst EVENT_CLOSE = `close${EVENT_KEY$b}`;\nconst EVENT_CLOSED = `closed${EVENT_KEY$b}`;\nconst CLASS_NAME_FADE$5 = 'fade';\nconst CLASS_NAME_SHOW$8 = 'show';\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$f;\n } // Public\n\n\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n\n if (closeEvent.defaultPrevented) {\n return;\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\n } // Private\n\n\n _destroyElement() {\n this._element.remove();\n\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nenableDismissTrigger(Alert, 'close');\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$e = 'button';\nconst DATA_KEY$9 = 'bs.button';\nconst EVENT_KEY$a = `.${DATA_KEY$9}`;\nconst DATA_API_KEY$6 = '.data-api';\nconst CLASS_NAME_ACTIVE$3 = 'active';\nconst SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\nconst EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$e;\n } // Public\n\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this);\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {\n event.preventDefault();\n const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n const data = Button.getOrCreateInstance(button);\n data.toggle();\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode.closest(selector);\n\n while (ancestor) {\n parents.push(ancestor);\n ancestor = ancestor.parentNode.closest(selector);\n }\n\n return parents;\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling;\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n\n previous = previous.previousElementSibling;\n }\n\n return [];\n },\n\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling;\n\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n\n next = next.nextElementSibling;\n }\n\n return [];\n },\n\n focusableChildren(element) {\n const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',');\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$d = 'swipe';\nconst EVENT_KEY$9 = '.bs.swipe';\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;\nconst POINTER_TYPE_TOUCH = 'touch';\nconst POINTER_TYPE_PEN = 'pen';\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\nconst SWIPE_THRESHOLD = 40;\nconst Default$c = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n};\nconst DefaultType$c = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n};\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super();\n this._element = element;\n\n if (!element || !Swipe.isSupported()) {\n return;\n }\n\n this._config = this._getConfig(config);\n this._deltaX = 0;\n this._supportPointerEvents = Boolean(window.PointerEvent);\n\n this._initEvents();\n } // Getters\n\n\n static get Default() {\n return Default$c;\n }\n\n static get DefaultType() {\n return DefaultType$c;\n }\n\n static get NAME() {\n return NAME$d;\n } // Public\n\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY$9);\n } // Private\n\n\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX;\n return;\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX;\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX;\n }\n\n this._handleSwipe();\n\n execute(this._config.endCallback);\n }\n\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX);\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n\n const direction = absDeltaX / this._deltaX;\n this._deltaX = 0;\n\n if (!direction) {\n return;\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n } // Static\n\n\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$c = 'carousel';\nconst DATA_KEY$8 = 'bs.carousel';\nconst EVENT_KEY$8 = `.${DATA_KEY$8}`;\nconst DATA_API_KEY$5 = '.data-api';\nconst ARROW_LEFT_KEY$1 = 'ArrowLeft';\nconst ARROW_RIGHT_KEY$1 = 'ArrowRight';\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next';\nconst ORDER_PREV = 'prev';\nconst DIRECTION_LEFT = 'left';\nconst DIRECTION_RIGHT = 'right';\nconst EVENT_SLIDE = `slide${EVENT_KEY$8}`;\nconst EVENT_SLID = `slid${EVENT_KEY$8}`;\nconst EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;\nconst EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;\nconst EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;\nconst EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst CLASS_NAME_CAROUSEL = 'carousel';\nconst CLASS_NAME_ACTIVE$2 = 'active';\nconst CLASS_NAME_SLIDE = 'slide';\nconst CLASS_NAME_END = 'carousel-item-end';\nconst CLASS_NAME_START = 'carousel-item-start';\nconst CLASS_NAME_NEXT = 'carousel-item-next';\nconst CLASS_NAME_PREV = 'carousel-item-prev';\nconst SELECTOR_ACTIVE = '.active';\nconst SELECTOR_ITEM = '.carousel-item';\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\nconst SELECTOR_INDICATORS = '.carousel-indicators';\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT\n};\nconst Default$b = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n};\nconst DefaultType$b = {\n interval: '(number|boolean)',\n // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n};\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._interval = null;\n this._activeElement = null;\n this._isSliding = false;\n this.touchTimeout = null;\n this._swipeHelper = null;\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\n\n this._addEventListeners();\n\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle();\n }\n } // Getters\n\n\n static get Default() {\n return Default$b;\n }\n\n static get DefaultType() {\n return DefaultType$b;\n }\n\n static get NAME() {\n return NAME$c;\n } // Public\n\n\n next() {\n this._slide(ORDER_NEXT);\n }\n\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n\n prev() {\n this._slide(ORDER_PREV);\n }\n\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element);\n }\n\n this._clearInterval();\n }\n\n cycle() {\n this._clearInterval();\n\n this._updateInterval();\n\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);\n }\n\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle());\n return;\n }\n\n this.cycle();\n }\n\n to(index) {\n const items = this._getItems();\n\n if (index > items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n\n const activeIndex = this._getItemIndex(this._getActive());\n\n if (activeIndex === index) {\n return;\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n\n this._slide(order, items[index]);\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose();\n }\n\n super.dispose();\n } // Private\n\n\n _configAfterMerge(config) {\n config.defaultInterval = config.interval;\n return config;\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());\n EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());\n }\n\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners();\n }\n }\n\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());\n }\n\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return;\n } // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n\n this.pause();\n\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout);\n }\n\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\n };\n\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n };\n this._swipeHelper = new Swipe(this._element, swipeConfig);\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n const direction = KEY_TO_DIRECTION[event.key];\n\n if (direction) {\n event.preventDefault();\n\n this._slide(this._directionToOrder(direction));\n }\n }\n\n _getItemIndex(element) {\n return this._getItems().indexOf(element);\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return;\n }\n\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement);\n\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);\n newActiveIndicator.setAttribute('aria-current', 'true');\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._getActive();\n\n if (!element) {\n return;\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n this._config.interval = elementInterval || this._config.defaultInterval;\n }\n\n _slide(order, element = null) {\n if (this._isSliding) {\n return;\n }\n\n const activeElement = this._getActive();\n\n const isNext = order === ORDER_NEXT;\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);\n\n if (nextElement === activeElement) {\n return;\n }\n\n const nextElementIndex = this._getItemIndex(nextElement);\n\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n });\n };\n\n const slideEvent = triggerEvent(EVENT_SLIDE);\n\n if (slideEvent.defaultPrevented) {\n return;\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // todo: change tests that use empty divs to avoid this check\n return;\n }\n\n const isCycling = Boolean(this._interval);\n this.pause();\n this._isSliding = true;\n\n this._setActiveIndicatorElement(nextElementIndex);\n\n this._activeElement = nextElement;\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n this._isSliding = false;\n triggerEvent(EVENT_SLID);\n };\n\n this._queueCallback(completeCallBack, activeElement, this._isAnimated());\n\n if (isCycling) {\n this.cycle();\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE);\n }\n\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element);\n }\n\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n }\n\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config);\n\n if (typeof config === 'number') {\n data.to(config);\n return;\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {\n const target = getElementFromSelector(this);\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n\n event.preventDefault();\n const carousel = Carousel.getOrCreateInstance(target);\n const slideIndex = this.getAttribute('data-bs-slide-to');\n\n if (slideIndex) {\n carousel.to(slideIndex);\n\n carousel._maybeEnableCycle();\n\n return;\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next();\n\n carousel._maybeEnableCycle();\n\n return;\n }\n\n carousel.prev();\n\n carousel._maybeEnableCycle();\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel);\n }\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$b = 'collapse';\nconst DATA_KEY$7 = 'bs.collapse';\nconst EVENT_KEY$7 = `.${DATA_KEY$7}`;\nconst DATA_API_KEY$4 = '.data-api';\nconst EVENT_SHOW$6 = `show${EVENT_KEY$7}`;\nconst EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;\nconst EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;\nconst EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;\nconst EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;\nconst CLASS_NAME_SHOW$7 = 'show';\nconst CLASS_NAME_COLLAPSE = 'collapse';\nconst CLASS_NAME_COLLAPSING = 'collapsing';\nconst CLASS_NAME_COLLAPSED = 'collapsed';\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\nconst WIDTH = 'width';\nconst HEIGHT = 'height';\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nconst SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\nconst Default$a = {\n parent: null,\n toggle: true\n};\nconst DefaultType$a = {\n parent: '(null|element)',\n toggle: 'boolean'\n};\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n\n for (const elem of toggleList) {\n const selector = getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n\n this._initializeChildren();\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n\n if (this._config.toggle) {\n this.toggle();\n }\n } // Getters\n\n\n static get Default() {\n return Default$a;\n }\n\n static get DefaultType() {\n return DefaultType$a;\n }\n\n static get NAME() {\n return NAME$b;\n } // Public\n\n\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n\n let activeChildren = []; // find active children\n\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n\n const dimension = this._getDimension();\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.style[dimension] = 0;\n\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN$6);\n };\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n\n this._queueCallback(complete, this._element, true);\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n const dimension = this._getDimension();\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n for (const trigger of this._triggerArray) {\n const element = getElementFromSelector(trigger);\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$6);\n };\n\n this._element.style[dimension] = '';\n\n this._queueCallback(complete, this._element, true);\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$7);\n } // Private\n\n\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n config.parent = getElement(config.parent);\n return config;\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);\n\n for (const element of children) {\n const selected = getElementFromSelector(element);\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); // remove children if greater depth\n\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n } // Static\n\n\n static jQueryInterface(config) {\n const _config = {};\n\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n const selector = getSelectorFromElement(this);\n const selectorElements = SelectorEngine.find(selector);\n\n for (const element of selectorElements) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$a = 'dropdown';\nconst DATA_KEY$6 = 'bs.dropdown';\nconst EVENT_KEY$6 = `.${DATA_KEY$6}`;\nconst DATA_API_KEY$3 = '.data-api';\nconst ESCAPE_KEY$2 = 'Escape';\nconst TAB_KEY$1 = 'Tab';\nconst ARROW_UP_KEY$1 = 'ArrowUp';\nconst ARROW_DOWN_KEY$1 = 'ArrowDown';\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;\nconst EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;\nconst EVENT_SHOW$5 = `show${EVENT_KEY$6}`;\nconst EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;\nconst EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst CLASS_NAME_SHOW$6 = 'show';\nconst CLASS_NAME_DROPUP = 'dropup';\nconst CLASS_NAME_DROPEND = 'dropend';\nconst CLASS_NAME_DROPSTART = 'dropstart';\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center';\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';\nconst SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)';\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;\nconst SELECTOR_MENU = '.dropdown-menu';\nconst SELECTOR_NAVBAR = '.navbar';\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav';\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\nconst PLACEMENT_TOPCENTER = 'top';\nconst PLACEMENT_BOTTOMCENTER = 'bottom';\nconst Default$9 = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n};\nconst DefaultType$9 = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n};\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._popper = null;\n this._parent = this._element.parentNode; // dropdown wrapper\n // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/\n\n this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);\n this._inNavbar = this._detectNavbar();\n } // Getters\n\n\n static get Default() {\n return Default$9;\n }\n\n static get DefaultType() {\n return DefaultType$9;\n }\n\n static get NAME() {\n return NAME$a;\n } // Public\n\n\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return;\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._createPopper(); // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n\n this._element.classList.add(CLASS_NAME_SHOW$6);\n\n EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return;\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n };\n\n this._completeHide(relatedTarget);\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n\n super.dispose();\n }\n\n update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper) {\n this._popper.update();\n }\n } // Private\n\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);\n\n if (hideEvent.defaultPrevented) {\n return;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.setAttribute('aria-expanded', 'false');\n\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);\n }\n\n _getConfig(config) {\n config = super._getConfig(config);\n\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME$a.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);\n }\n\n return config;\n }\n\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n let referenceElement = this._element;\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n\n const popperConfig = this._getPopperConfig();\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW$6);\n }\n\n _getPlacement() {\n const parentDropdown = this._parent;\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER;\n } // We need to trim the value because custom properties can also include spaces\n\n\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null;\n }\n\n _getOffset() {\n const {\n offset\n } = this._config;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n\n return offset;\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }; // Disable Popper if we have a static display or Dropdown is in Navbar\n\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // todo:v6 remove\n\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n\n return { ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n };\n }\n\n _selectMenuItem({\n key,\n target\n }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));\n\n if (!items.length) {\n return;\n } // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {\n return;\n }\n\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);\n\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle);\n\n if (!context || context._config.autoClose === false) {\n continue;\n }\n\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n\n\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n\n const relatedTarget = {\n relatedTarget: context._element\n };\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n\n context._completeHide(relatedTarget);\n }\n }\n\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n const isInput = /input|textarea/i.test(event.target.tagName);\n const isEscapeEvent = event.key === ESCAPE_KEY$2;\n const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);\n\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return;\n }\n\n if (isInput && !isEscapeEvent) {\n return;\n }\n\n event.preventDefault(); // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\n\n if (isUpOrDownEvent) {\n event.stopPropagation();\n instance.show();\n\n instance._selectMenuItem(event);\n\n return;\n }\n\n if (instance._isShown()) {\n // else is escape and we check if it is shown\n event.stopPropagation();\n instance.hide();\n getToggleButton.focus();\n }\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\nconst PROPERTY_PADDING = 'padding-right';\nconst PROPERTY_MARGIN = 'margin-right';\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body;\n } // Public\n\n\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n\n hide() {\n const width = this.getWidth();\n\n this._disableOverFlow(); // give padding to element to balance the hidden scrollbar width\n\n\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n\n\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);\n }\n\n reset() {\n this._resetElementAttributes(this._element, 'overflow');\n\n this._resetElementAttributes(this._element, PROPERTY_PADDING);\n\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);\n\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);\n }\n\n isOverflowing() {\n return this.getWidth() > 0;\n } // Private\n\n\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n\n this._element.style.overflow = 'hidden';\n }\n\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth();\n\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n\n this._saveInitialAttribute(element, styleProperty);\n\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty);\n\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue);\n }\n }\n\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty); // We only want to remove the property if the value is `null`; the value can also be zero\n\n if (value === null) {\n element.style.removeProperty(styleProperty);\n return;\n }\n\n Manipulator.removeDataAttribute(element, styleProperty);\n element.style.setProperty(styleProperty, value);\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n return;\n }\n\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel);\n }\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$9 = 'backdrop';\nconst CLASS_NAME_FADE$4 = 'fade';\nconst CLASS_NAME_SHOW$5 = 'show';\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;\nconst Default$8 = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n rootElement: 'body' // give the choice to place backdrop under different elements\n\n};\nconst DefaultType$8 = {\n className: 'string',\n clickCallback: '(function|null)',\n isAnimated: 'boolean',\n isVisible: 'boolean',\n rootElement: '(element|string)'\n};\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n } // Getters\n\n\n static get Default() {\n return Default$8;\n }\n\n static get DefaultType() {\n return DefaultType$8;\n }\n\n static get NAME() {\n return NAME$9;\n } // Public\n\n\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._append();\n\n const element = this._getElement();\n\n if (this._config.isAnimated) {\n reflow(element);\n }\n\n element.classList.add(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n }\n\n dispose() {\n if (!this._isAppended) {\n return;\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n\n this._element.remove();\n\n this._isAppended = false;\n } // Private\n\n\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n\n this._element = backdrop;\n }\n\n return this._element;\n }\n\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement);\n return config;\n }\n\n _append() {\n if (this._isAppended) {\n return;\n }\n\n const element = this._getElement();\n\n this._config.rootElement.append(element);\n\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$8 = 'focustrap';\nconst DATA_KEY$5 = 'bs.focustrap';\nconst EVENT_KEY$5 = `.${DATA_KEY$5}`;\nconst EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;\nconst TAB_KEY = 'Tab';\nconst TAB_NAV_FORWARD = 'forward';\nconst TAB_NAV_BACKWARD = 'backward';\nconst Default$7 = {\n autofocus: true,\n trapElement: null // The element to trap focus inside of\n\n};\nconst DefaultType$7 = {\n autofocus: 'boolean',\n trapElement: 'element'\n};\n/**\n * Class definition\n */\n\nclass FocusTrap extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isActive = false;\n this._lastTabNavDirection = null;\n } // Getters\n\n\n static get Default() {\n return Default$7;\n }\n\n static get DefaultType() {\n return DefaultType$7;\n }\n\n static get NAME() {\n return NAME$8;\n } // Public\n\n\n activate() {\n if (this._isActive) {\n return;\n }\n\n if (this._config.autofocus) {\n this._config.trapElement.focus();\n }\n\n EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop\n\n EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));\n this._isActive = true;\n }\n\n deactivate() {\n if (!this._isActive) {\n return;\n }\n\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$5);\n } // Private\n\n\n _handleFocusin(event) {\n const {\n trapElement\n } = this._config;\n\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return;\n }\n\n const elements = SelectorEngine.focusableChildren(trapElement);\n\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$7 = 'modal';\nconst DATA_KEY$4 = 'bs.modal';\nconst EVENT_KEY$4 = `.${DATA_KEY$4}`;\nconst DATA_API_KEY$2 = '.data-api';\nconst ESCAPE_KEY$1 = 'Escape';\nconst EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;\nconst EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;\nconst EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;\nconst EVENT_SHOW$4 = `show${EVENT_KEY$4}`;\nconst EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;\nconst EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;\nconst EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;\nconst EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;\nconst CLASS_NAME_OPEN = 'modal-open';\nconst CLASS_NAME_FADE$3 = 'fade';\nconst CLASS_NAME_SHOW$4 = 'show';\nconst CLASS_NAME_STATIC = 'modal-static';\nconst OPEN_SELECTOR$1 = '.modal.show';\nconst SELECTOR_DIALOG = '.modal-dialog';\nconst SELECTOR_MODAL_BODY = '.modal-body';\nconst SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\nconst Default$6 = {\n backdrop: true,\n focus: true,\n keyboard: true\n};\nconst DefaultType$6 = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n};\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._isShown = false;\n this._isTransitioning = false;\n this._scrollBar = new ScrollBarHelper();\n\n this._addEventListeners();\n } // Getters\n\n\n static get Default() {\n return Default$6;\n }\n\n static get DefaultType() {\n return DefaultType$6;\n }\n\n static get NAME() {\n return NAME$7;\n } // Public\n\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {\n relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n this._isTransitioning = true;\n\n this._scrollBar.hide();\n\n document.body.classList.add(CLASS_NAME_OPEN);\n\n this._adjustDialog();\n\n this._backdrop.show(() => this._showElement(relatedTarget));\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = false;\n this._isTransitioning = true;\n\n this._focustrap.deactivate();\n\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());\n }\n\n dispose() {\n for (const htmlElement of [window, this._dialog]) {\n EventHandler.off(htmlElement, EVENT_KEY$4);\n }\n\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n super.dispose();\n }\n\n handleUpdate() {\n this._adjustDialog();\n } // Private\n\n\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n });\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.scrollTop = 0;\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_SHOW$4);\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate();\n }\n\n this._isTransitioning = false;\n EventHandler.trigger(this._element, EVENT_SHOWN$4, {\n relatedTarget\n });\n };\n\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated());\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {\n if (event.key !== ESCAPE_KEY$1) {\n return;\n }\n\n if (this._config.keyboard) {\n event.preventDefault();\n this.hide();\n return;\n }\n\n this._triggerBackdropTransition();\n });\n EventHandler.on(window, EVENT_RESIZE$1, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog();\n }\n });\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n if (this._element !== event.target || this._element !== event2.target) {\n return;\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n\n return;\n }\n\n if (this._config.backdrop) {\n this.hide();\n }\n });\n });\n }\n\n _hideModal() {\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN);\n\n this._resetAdjustments();\n\n this._scrollBar.reset();\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$4);\n });\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const initialOverflowY = this._element.style.overflowY; // return if the following background transition hasn't yet completed\n\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n\n this._element.classList.add(CLASS_NAME_STATIC);\n\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC);\n\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY;\n }, this._dialog);\n }, this._dialog);\n\n this._element.focus();\n }\n /**\n * The following methods are used to handle overflowing modals\n */\n\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n const scrollbarWidth = this._scrollBar.getWidth();\n\n const isBodyOverflowing = scrollbarWidth > 0;\n\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n } // Static\n\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](relatedTarget);\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n const target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n EventHandler.one(target, EVENT_SHOW$4, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$4, () => {\n if (isVisible(this)) {\n this.focus();\n }\n });\n }); // avoid conflict when clicking modal toggler while another one is open\n\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide();\n }\n\n const data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n});\nenableDismissTrigger(Modal);\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$6 = 'offcanvas';\nconst DATA_KEY$3 = 'bs.offcanvas';\nconst EVENT_KEY$3 = `.${DATA_KEY$3}`;\nconst DATA_API_KEY$1 = '.data-api';\nconst EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst ESCAPE_KEY = 'Escape';\nconst CLASS_NAME_SHOW$3 = 'show';\nconst CLASS_NAME_SHOWING$1 = 'showing';\nconst CLASS_NAME_HIDING = 'hiding';\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nconst OPEN_SELECTOR = '.offcanvas.show';\nconst EVENT_SHOW$3 = `show${EVENT_KEY$3}`;\nconst EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;\nconst EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;\nconst EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;\nconst EVENT_RESIZE = `resize${EVENT_KEY$3}`;\nconst EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;\nconst SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\nconst Default$5 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n};\nconst DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n};\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isShown = false;\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n\n this._addEventListeners();\n } // Getters\n\n\n static get Default() {\n return Default$5;\n }\n\n static get DefaultType() {\n return DefaultType$5;\n }\n\n static get NAME() {\n return NAME$6;\n } // Public\n\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n\n this._backdrop.show();\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.classList.add(CLASS_NAME_SHOWING$1);\n\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate();\n }\n\n this._element.classList.add(CLASS_NAME_SHOW$3);\n\n this._element.classList.remove(CLASS_NAME_SHOWING$1);\n\n EventHandler.trigger(this._element, EVENT_SHOWN$3, {\n relatedTarget\n });\n };\n\n this._queueCallback(completeCallBack, this._element, true);\n }\n\n hide() {\n if (!this._isShown) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._focustrap.deactivate();\n\n this._element.blur();\n\n this._isShown = false;\n\n this._element.classList.add(CLASS_NAME_HIDING);\n\n this._backdrop.hide();\n\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$3);\n };\n\n this._queueCallback(completeCallback, this._element, true);\n }\n\n dispose() {\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n super.dispose();\n } // Private\n\n\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n\n this.hide();\n }; // 'static' option will be translated to true, and booleans will keep their value\n\n\n const isVisible = Boolean(this._config.backdrop);\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: isVisible ? clickCallback : null\n });\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return;\n }\n\n if (!this._config.keyboard) {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n\n this.hide();\n });\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n const target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$3, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus();\n }\n }); // avoid conflict when clicking a toggler of an offcanvas, while another is open\n\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide();\n }\n\n const data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show();\n }\n});\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Offcanvas.getOrCreateInstance(element).hide();\n }\n }\n});\nenableDismissTrigger(Offcanvas);\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase();\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));\n }\n\n return true;\n } // Check if a regular expression validates the attribute.\n\n\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));\n};\n\nconst DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n};\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml);\n }\n\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase();\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n continue;\n }\n\n const attributeList = [].concat(...element.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n }\n }\n\n return createdDocument.body.innerHTML;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$5 = 'TemplateFactory';\nconst Default$4 = {\n allowList: DefaultAllowlist,\n content: {},\n // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '<div></div>'\n};\nconst DefaultType$4 = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n};\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n};\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n } // Getters\n\n\n static get Default() {\n return Default$4;\n }\n\n static get DefaultType() {\n return DefaultType$4;\n }\n\n static get NAME() {\n return NAME$5;\n } // Public\n\n\n getContent() {\n return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);\n }\n\n hasContent() {\n return this.getContent().length > 0;\n }\n\n changeContent(content) {\n this._checkContent(content);\n\n this._config.content = { ...this._config.content,\n ...content\n };\n return this;\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div');\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector);\n }\n\n const template = templateWrapper.children[0];\n\n const extraClass = this._resolvePossibleFunction(this._config.extraClass);\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '));\n }\n\n return template;\n } // Private\n\n\n _typeCheckConfig(config) {\n super._typeCheckConfig(config);\n\n this._checkContent(config.content);\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({\n selector,\n entry: content\n }, DefaultContentType);\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n\n if (!templateElement) {\n return;\n }\n\n content = this._resolvePossibleFunction(content);\n\n if (!content) {\n templateElement.remove();\n return;\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement);\n\n return;\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content);\n return;\n }\n\n templateElement.textContent = content;\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;\n }\n\n _resolvePossibleFunction(arg) {\n return typeof arg === 'function' ? arg(this) : arg;\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = '';\n templateElement.append(element);\n return;\n }\n\n templateElement.textContent = element.textContent;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$4 = 'tooltip';\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\nconst CLASS_NAME_FADE$2 = 'fade';\nconst CLASS_NAME_MODAL = 'modal';\nconst CLASS_NAME_SHOW$2 = 'show';\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\nconst EVENT_MODAL_HIDE = 'hide.bs.modal';\nconst TRIGGER_HOVER = 'hover';\nconst TRIGGER_FOCUS = 'focus';\nconst TRIGGER_CLICK = 'click';\nconst TRIGGER_MANUAL = 'manual';\nconst EVENT_HIDE$2 = 'hide';\nconst EVENT_HIDDEN$2 = 'hidden';\nconst EVENT_SHOW$2 = 'show';\nconst EVENT_SHOWN$2 = 'shown';\nconst EVENT_INSERTED = 'inserted';\nconst EVENT_CLICK$1 = 'click';\nconst EVENT_FOCUSIN$1 = 'focusin';\nconst EVENT_FOCUSOUT$1 = 'focusout';\nconst EVENT_MOUSEENTER = 'mouseenter';\nconst EVENT_MOUSELEAVE = 'mouseleave';\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n};\nconst Default$3 = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 0],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"tooltip-arrow\"></div>' + '<div class=\"tooltip-inner\"></div>' + '</div>',\n title: '',\n trigger: 'hover focus'\n};\nconst DefaultType$3 = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n};\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n\n super(element, config); // Private\n\n this._isEnabled = true;\n this._timeout = 0;\n this._isHovered = null;\n this._activeTrigger = {};\n this._popper = null;\n this._templateFactory = null;\n this._newContent = null; // Protected\n\n this.tip = null;\n\n this._setListeners();\n\n if (!this._config.selector) {\n this._fixTitle();\n }\n } // Getters\n\n\n static get Default() {\n return Default$3;\n }\n\n static get DefaultType() {\n return DefaultType$3;\n }\n\n static get NAME() {\n return NAME$4;\n } // Public\n\n\n enable() {\n this._isEnabled = true;\n }\n\n disable() {\n this._isEnabled = false;\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n\n toggle() {\n if (!this._isEnabled) {\n return;\n }\n\n this._activeTrigger.click = !this._activeTrigger.click;\n\n if (this._isShown()) {\n this._leave();\n\n return;\n }\n\n this._enter();\n }\n\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));\n }\n\n this._disposePopper();\n\n super.dispose();\n }\n\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));\n const shadowRoot = findShadowRoot(this._element);\n\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n } // todo v6 remove this OR make it optional\n\n\n this._disposePopper();\n\n const tip = this._getTipElement();\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\n\n const {\n container\n } = this._config;\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));\n }\n\n this._popper = this._createPopper(tip);\n tip.classList.add(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));\n\n if (this._isHovered === false) {\n this._leave();\n }\n\n this._isHovered = false;\n };\n\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n\n hide() {\n if (!this._isShown()) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n const tip = this._getTipElement();\n\n tip.classList.remove(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n this._isHovered = null; // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return;\n }\n\n if (!this._isHovered) {\n this._disposePopper();\n }\n\n this._element.removeAttribute('aria-describedby');\n\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));\n };\n\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n\n update() {\n if (this._popper) {\n this._popper.update();\n }\n } // Protected\n\n\n _isWithContent() {\n return Boolean(this._getTitle());\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\n }\n\n return this.tip;\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml(); // todo: remove this check on v6\n\n\n if (!tip) {\n return null;\n }\n\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); // todo: on v6 the following can be achieved with CSS only\n\n tip.classList.add(`bs-${this.constructor.NAME}-auto`);\n const tipId = getUID(this.constructor.NAME).toString();\n tip.setAttribute('id', tipId);\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n\n return tip;\n }\n\n setContent(content) {\n this._newContent = content;\n\n if (this._isShown()) {\n this._disposePopper();\n\n this.show();\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content);\n } else {\n this._templateFactory = new TemplateFactory({ ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n });\n }\n\n return this._templateFactory;\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n };\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');\n } // Private\n\n\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n\n _isAnimated() {\n return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);\n }\n\n _createPopper(tip) {\n const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement;\n const attachment = AttachmentMap[placement.toUpperCase()];\n return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n\n _getOffset() {\n const {\n offset\n } = this._config;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n\n return offset;\n }\n\n _resolvePossibleFunction(arg) {\n return typeof arg === 'function' ? arg.call(this._element) : arg;\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n }, {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement);\n }\n }]\n };\n return { ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n };\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n\n context.toggle();\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);\n const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n\n context._enter();\n });\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n\n context._leave();\n });\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title');\n\n if (!title) {\n return;\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title);\n }\n\n this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility\n\n\n this._element.removeAttribute('title');\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true;\n return;\n }\n\n this._isHovered = true;\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show();\n }\n }, this._config.delay.show);\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return;\n }\n\n this._isHovered = false;\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide();\n }\n }, this._config.delay.hide);\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(handler, timeout);\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true);\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute];\n }\n }\n\n config = { ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n };\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container);\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n\n return config;\n }\n\n _getDelegateConfig() {\n const config = {};\n\n for (const key in this._config) {\n if (this.constructor.Default[key] !== this._config[key]) {\n config[key] = this._config[key];\n }\n }\n\n config.selector = false;\n config.trigger = 'manual'; // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n\n return config;\n }\n\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n\n this._popper = null;\n }\n\n if (this.tip) {\n this.tip.remove();\n this.tip = null;\n }\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n}\n/**\n * jQuery\n */\n\n\ndefineJQueryPlugin(Tooltip);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$3 = 'popover';\nconst SELECTOR_TITLE = '.popover-header';\nconst SELECTOR_CONTENT = '.popover-body';\nconst Default$2 = { ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"popover-arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div>' + '</div>',\n trigger: 'click'\n};\nconst DefaultType$2 = { ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n};\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default$2;\n }\n\n static get DefaultType() {\n return DefaultType$2;\n }\n\n static get NAME() {\n return NAME$3;\n } // Overrides\n\n\n _isWithContent() {\n return this._getTitle() || this._getContent();\n } // Private\n\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n };\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n}\n/**\n * jQuery\n */\n\n\ndefineJQueryPlugin(Popover);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$2 = 'scrollspy';\nconst DATA_KEY$2 = 'bs.scrollspy';\nconst EVENT_KEY$2 = `.${DATA_KEY$2}`;\nconst DATA_API_KEY = '.data-api';\nconst EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;\nconst EVENT_CLICK = `click${EVENT_KEY$2}`;\nconst EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nconst CLASS_NAME_ACTIVE$1 = 'active';\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\nconst SELECTOR_TARGET_LINKS = '[href]';\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\nconst SELECTOR_NAV_LINKS = '.nav-link';\nconst SELECTOR_NAV_ITEMS = '.nav-item';\nconst SELECTOR_LIST_ITEMS = '.list-group-item';\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;\nconst SELECTOR_DROPDOWN = '.dropdown';\nconst SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\nconst Default$1 = {\n offset: null,\n // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n};\nconst DefaultType$1 = {\n offset: '(number|null)',\n // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n};\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config); // this._element is the observablesContainer and config.target the menu links wrapper\n\n this._targetLinks = new Map();\n this._observableSections = new Map();\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element;\n this._activeTarget = null;\n this._observer = null;\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n };\n this.refresh(); // initialize\n } // Getters\n\n\n static get Default() {\n return Default$1;\n }\n\n static get DefaultType() {\n return DefaultType$1;\n }\n\n static get NAME() {\n return NAME$2;\n } // Public\n\n\n refresh() {\n this._initializeTargetsAndObservables();\n\n this._maybeEnableSmoothScroll();\n\n if (this._observer) {\n this._observer.disconnect();\n } else {\n this._observer = this._getNewObserver();\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section);\n }\n }\n\n dispose() {\n this._observer.disconnect();\n\n super.dispose();\n } // Private\n\n\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body; // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));\n }\n\n return config;\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return;\n } // unregister any previous listeners\n\n\n EventHandler.off(this._config.target, EVENT_CLICK);\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash);\n\n if (observableSection) {\n event.preventDefault();\n const root = this._rootElement || window;\n const height = observableSection.offsetTop - this._element.offsetTop;\n\n if (root.scrollTo) {\n root.scrollTo({\n top: height,\n behavior: 'smooth'\n });\n return;\n } // Chrome 60 doesn't support `scrollTo`\n\n\n root.scrollTop = height;\n }\n });\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n };\n return new IntersectionObserver(entries => this._observerCallback(entries), options);\n } // The logic of selection\n\n\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);\n\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop;\n\n this._process(targetElement(entry));\n };\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;\n this._previousScrollData.parentScrollTop = parentScrollTop;\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null;\n\n this._clearActiveClass(targetElement(entry));\n\n continue;\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; // if we are scrolling down, pick the bigger offsetTop\n\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry); // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n\n if (!parentScrollTop) {\n return;\n }\n\n continue;\n } // if we are scrolling up, pick the smallest offsetTop\n\n\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry);\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map();\n this._observableSections = new Map();\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue;\n }\n\n const observableSection = SelectorEngine.findOne(anchor.hash, this._element); // ensure that the observableSection exists & is visible\n\n if (isVisible(observableSection)) {\n this._targetLinks.set(anchor.hash, anchor);\n\n this._observableSections.set(anchor.hash, observableSection);\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return;\n }\n\n this._clearActiveClass(this._config.target);\n\n this._activeTarget = target;\n target.classList.add(CLASS_NAME_ACTIVE$1);\n\n this._activateParents(target);\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, {\n relatedTarget: target\n });\n }\n\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);\n return;\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n item.classList.add(CLASS_NAME_ACTIVE$1);\n }\n }\n }\n\n _clearActiveClass(parent) {\n parent.classList.remove(CLASS_NAME_ACTIVE$1);\n const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent);\n\n for (const node of activeNodes) {\n node.classList.remove(CLASS_NAME_ACTIVE$1);\n }\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = ScrollSpy.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(window, EVENT_LOAD_DATA_API$1, () => {\n for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n ScrollSpy.getOrCreateInstance(spy);\n }\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(ScrollSpy);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$1 = 'tab';\nconst DATA_KEY$1 = 'bs.tab';\nconst EVENT_KEY$1 = `.${DATA_KEY$1}`;\nconst EVENT_HIDE$1 = `hide${EVENT_KEY$1}`;\nconst EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`;\nconst EVENT_SHOW$1 = `show${EVENT_KEY$1}`;\nconst EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`;\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`;\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`;\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`;\nconst ARROW_LEFT_KEY = 'ArrowLeft';\nconst ARROW_RIGHT_KEY = 'ArrowRight';\nconst ARROW_UP_KEY = 'ArrowUp';\nconst ARROW_DOWN_KEY = 'ArrowDown';\nconst CLASS_NAME_ACTIVE = 'active';\nconst CLASS_NAME_FADE$1 = 'fade';\nconst CLASS_NAME_SHOW$1 = 'show';\nconst CLASS_DROPDOWN = 'dropdown';\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\nconst SELECTOR_DROPDOWN_MENU = '.dropdown-menu';\nconst NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)';\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]';\nconst SELECTOR_OUTER = '.nav-item, .list-group-item';\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'; // todo:v6: could be only `tab`\n\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"pill\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"list\"]`;\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element);\n this._parent = this._element.closest(SELECTOR_TAB_PANEL);\n\n if (!this._parent) {\n return; // todo: should Throw exception on v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n } // Set up initial aria attributes\n\n\n this._setInitialAttributes(this._parent, this._getChildren());\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));\n } // Getters\n\n\n static get NAME() {\n return NAME$1;\n } // Public\n\n\n show() {\n // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element;\n\n if (this._elemIsActive(innerElem)) {\n return;\n } // Search for active tab on same parent to deactivate it\n\n\n const active = this._getActiveElem();\n\n const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, {\n relatedTarget: innerElem\n }) : null;\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, {\n relatedTarget: active\n });\n\n if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {\n return;\n }\n\n this._deactivate(active, innerElem);\n\n this._activate(innerElem, active);\n } // Private\n\n\n _activate(element, relatedElem) {\n if (!element) {\n return;\n }\n\n element.classList.add(CLASS_NAME_ACTIVE);\n\n this._activate(getElementFromSelector(element)); // Search and activate/show the proper section\n\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW$1);\n return;\n }\n\n element.removeAttribute('tabindex');\n element.setAttribute('aria-selected', true);\n\n this._toggleDropDown(element, true);\n\n EventHandler.trigger(element, EVENT_SHOWN$1, {\n relatedTarget: relatedElem\n });\n };\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return;\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE);\n element.blur();\n\n this._deactivate(getElementFromSelector(element)); // Search and deactivate the shown section too\n\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW$1);\n return;\n }\n\n element.setAttribute('aria-selected', false);\n element.setAttribute('tabindex', '-1');\n\n this._toggleDropDown(element, false);\n\n EventHandler.trigger(element, EVENT_HIDDEN$1, {\n relatedTarget: relatedElem\n });\n };\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));\n }\n\n _keydown(event) {\n if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) {\n return;\n }\n\n event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n\n event.preventDefault();\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);\n const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true);\n\n if (nextActiveElement) {\n nextActiveElement.focus({\n preventScroll: true\n });\n Tab.getOrCreateInstance(nextActiveElement).show();\n }\n }\n\n _getChildren() {\n // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent);\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null;\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist');\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child);\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child);\n\n const isActive = this._elemIsActive(child);\n\n const outerElem = this._getOuterElement(child);\n\n child.setAttribute('aria-selected', isActive);\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation');\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1');\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab'); // set attributes to the related panel too\n\n\n this._setInitialAttributesOnTargetPanel(child);\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = getElementFromSelector(child);\n\n if (!target) {\n return;\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel');\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`);\n }\n }\n\n _toggleDropDown(element, open) {\n const outerElem = this._getOuterElement(element);\n\n if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n return;\n }\n\n const toggle = (selector, className) => {\n const element = SelectorEngine.findOne(selector, outerElem);\n\n if (element) {\n element.classList.toggle(className, open);\n }\n };\n\n toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);\n toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1);\n outerElem.setAttribute('aria-expanded', open);\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value);\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE);\n } // Try to get the inner element (usually the .nav-link)\n\n\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem);\n } // Try to get the outer element (usually the .nav-item)\n\n\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem;\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tab.getOrCreateInstance(this);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n Tab.getOrCreateInstance(this).show();\n});\n/**\n * Initialize on focus\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element);\n }\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tab);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME = 'toast';\nconst DATA_KEY = 'bs.toast';\nconst EVENT_KEY = `.${DATA_KEY}`;\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`;\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`;\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`;\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`;\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\nconst EVENT_SHOW = `show${EVENT_KEY}`;\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\nconst CLASS_NAME_FADE = 'fade';\nconst CLASS_NAME_HIDE = 'hide'; // @deprecated - kept here only for backwards compatibility\n\nconst CLASS_NAME_SHOW = 'show';\nconst CLASS_NAME_SHOWING = 'showing';\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n};\nconst Default = {\n animation: true,\n autohide: true,\n delay: 5000\n};\n/**\n * Class definition\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._timeout = null;\n this._hasMouseInteraction = false;\n this._hasKeyboardInteraction = false;\n\n this._setListeners();\n } // Getters\n\n\n static get Default() {\n return Default;\n }\n\n static get DefaultType() {\n return DefaultType;\n }\n\n static get NAME() {\n return NAME;\n } // Public\n\n\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW);\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._clearTimeout();\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE);\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING);\n\n EventHandler.trigger(this._element, EVENT_SHOWN);\n\n this._maybeScheduleHide();\n };\n\n this._element.classList.remove(CLASS_NAME_HIDE); // @deprecated\n\n\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING);\n\n this._queueCallback(complete, this._element, this._config.animation);\n }\n\n hide() {\n if (!this.isShown()) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE); // @deprecated\n\n\n this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW);\n\n EventHandler.trigger(this._element, EVENT_HIDDEN);\n };\n\n this._element.classList.add(CLASS_NAME_SHOWING);\n\n this._queueCallback(complete, this._element, this._config.animation);\n }\n\n dispose() {\n this._clearTimeout();\n\n if (this.isShown()) {\n this._element.classList.remove(CLASS_NAME_SHOW);\n }\n\n super.dispose();\n }\n\n isShown() {\n return this._element.classList.contains(CLASS_NAME_SHOW);\n } // Private\n\n\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return;\n }\n\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return;\n }\n\n this._timeout = setTimeout(() => {\n this.hide();\n }, this._config.delay);\n }\n\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout':\n {\n this._hasMouseInteraction = isInteracting;\n break;\n }\n\n case 'focusin':\n case 'focusout':\n {\n this._hasKeyboardInteraction = isInteracting;\n break;\n }\n }\n\n if (isInteracting) {\n this._clearTimeout();\n\n return;\n }\n\n const nextElement = event.relatedTarget;\n\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return;\n }\n\n this._maybeScheduleHide();\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true));\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false));\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true));\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false));\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout);\n this._timeout = null;\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Toast.getOrCreateInstance(this, config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\n }\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nenableDismissTrigger(Toast);\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Toast);\n\nexport { Alert, Button, Carousel, Collapse, Dropdown, Modal, Offcanvas, Popover, ScrollSpy, Tab, Toast, Tooltip };\n//# sourceMappingURL=bootstrap.esm.js.map\n","/*\nTrix 2.0.4\nCopyright © 2022 37signals, LLC\n */\nconst t={preview:{presentation:\"gallery\",caption:{name:!0,size:!0}},file:{caption:{size:!0}}},e={default:{tagName:\"div\",parse:!1},quote:{tagName:\"blockquote\",nestable:!0},heading1:{tagName:\"h1\",terminal:!0,breakOnReturn:!0,group:!1},code:{tagName:\"pre\",terminal:!0,text:{plaintext:!0}},bulletList:{tagName:\"ul\",parse:!1},bullet:{tagName:\"li\",listAttribute:\"bulletList\",group:!1,nestable:!0,test(t){return i(t.parentNode)===e[this.listAttribute].tagName}},numberList:{tagName:\"ol\",parse:!1},number:{tagName:\"li\",listAttribute:\"numberList\",group:!1,nestable:!0,test(t){return i(t.parentNode)===e[this.listAttribute].tagName}},attachmentGallery:{tagName:\"div\",exclusive:!0,terminal:!0,parse:!1,group:!1}},i=t=>{var e;return null==t||null===(e=t.tagName)||void 0===e?void 0:e.toLowerCase()},n=navigator.userAgent.match(/android\\s([0-9]+.*Chrome)/i),r=n&&parseInt(n[1]);var o={composesExistingText:/Android.*Chrome/.test(navigator.userAgent),recentAndroid:r&&r>12,samsungAndroid:r&&navigator.userAgent.match(/Android.*SM-/),forcesObjectResizing:/Trident.*rv:11/.test(navigator.userAgent),supportsInputEvents:\"undefined\"!=typeof InputEvent&&[\"data\",\"getTargetRanges\",\"inputType\"].every((t=>t in InputEvent.prototype))},s={attachFiles:\"Attach Files\",bold:\"Bold\",bullets:\"Bullets\",byte:\"Byte\",bytes:\"Bytes\",captionPlaceholder:\"Add a caption…\",code:\"Code\",heading1:\"Heading\",indent:\"Increase Level\",italic:\"Italic\",link:\"Link\",numbers:\"Numbers\",outdent:\"Decrease Level\",quote:\"Quote\",redo:\"Redo\",remove:\"Remove\",strike:\"Strikethrough\",undo:\"Undo\",unlink:\"Unlink\",url:\"URL\",urlPlaceholder:\"Enter a URL…\",GB:\"GB\",KB:\"KB\",MB:\"MB\",PB:\"PB\",TB:\"TB\"};const a=[s.bytes,s.KB,s.MB,s.GB,s.TB,s.PB];var l={prefix:\"IEC\",precision:2,formatter(t){switch(t){case 0:return\"0 \".concat(s.bytes);case 1:return\"1 \".concat(s.byte);default:let e;\"SI\"===this.prefix?e=1e3:\"IEC\"===this.prefix&&(e=1024);const i=Math.floor(Math.log(t)/Math.log(e)),n=(t/Math.pow(e,i)).toFixed(this.precision).replace(/0*$/,\"\").replace(/\\.$/,\"\");return\"\".concat(n,\" \").concat(a[i])}}};const c=function(t){for(const e in t){const i=t[e];this[e]=i}return this},h=document.documentElement,u=h.matches,d=function(t){let{onElement:e,matchingSelector:i,withCallback:n,inPhase:r,preventDefault:o,times:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=e||h,l=i,c=\"capturing\"===r,u=function(t){null!=s&&0==--s&&u.destroy();const e=p(t.target,{matchingSelector:l});null!=e&&(null==n||n.call(e,t,e),o&&t.preventDefault())};return u.destroy=()=>a.removeEventListener(t,u,c),a.addEventListener(t,u,c),u},g=function(t){let{onElement:e,bubbles:i,cancelable:n,attributes:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=null!=e?e:h;i=!1!==i,n=!1!==n;const s=document.createEvent(\"Events\");return s.initEvent(t,i,n),null!=r&&c.call(s,r),o.dispatchEvent(s)},m=function(t,e){if(1===(null==t?void 0:t.nodeType))return u.call(t,e)},p=function(t){let{matchingSelector:e,untilNode:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(;t&&t.nodeType!==Node.ELEMENT_NODE;)t=t.parentNode;if(null!=t){if(null==e)return t;if(t.closest&&null==i)return t.closest(e);for(;t&&t!==i;){if(m(t,e))return t;t=t.parentNode}}},f=t=>document.activeElement!==t&&b(t,document.activeElement),b=function(t,e){if(t&&e)for(;e;){if(e===t)return!0;e=e.parentNode}},v=function(t){var e;if(null===(e=t)||void 0===e||!e.parentNode)return;let i=0;for(t=t.previousSibling;t;)i++,t=t.previousSibling;return i},A=t=>{var e;return null==t||null===(e=t.parentNode)||void 0===e?void 0:e.removeChild(t)},x=function(t){let{onlyNodesOfType:e,usingFilter:i,expandEntityReferences:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=(()=>{switch(e){case\"element\":return NodeFilter.SHOW_ELEMENT;case\"text\":return NodeFilter.SHOW_TEXT;case\"comment\":return NodeFilter.SHOW_COMMENT;default:return NodeFilter.SHOW_ALL}})();return document.createTreeWalker(t,r,null!=i?i:null,!0===n)},y=t=>{var e;return null==t||null===(e=t.tagName)||void 0===e?void 0:e.toLowerCase()},C=function(t){let e,i,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"object\"==typeof t?(n=t,t=n.tagName):n={attributes:n};const r=document.createElement(t);if(null!=n.editable&&(null==n.attributes&&(n.attributes={}),n.attributes.contenteditable=n.editable),n.attributes)for(e in n.attributes)i=n.attributes[e],r.setAttribute(e,i);if(n.style)for(e in n.style)i=n.style[e],r.style[e]=i;if(n.data)for(e in n.data)i=n.data[e],r.dataset[e]=i;return n.className&&n.className.split(\" \").forEach((t=>{r.classList.add(t)})),n.textContent&&(r.textContent=n.textContent),n.childNodes&&[].concat(n.childNodes).forEach((t=>{r.appendChild(t)})),r};let R;const E=function(){if(null!=R)return R;R=[];for(const t in e){const i=e[t];i.tagName&&R.push(i.tagName)}return R},S=t=>D(null==t?void 0:t.firstChild),k=function(t){return E().includes(y(t))&&!E().includes(y(t.firstChild))},L=function(t){let{strict:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{strict:!0};return e?D(t):D(t)||!D(t.firstChild)&&k(t)},D=t=>w(t)&&\"block\"===(null==t?void 0:t.data),w=t=>(null==t?void 0:t.nodeType)===Node.COMMENT_NODE,T=function(t){let{name:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t)return I(t)?\"\\ufeff\"===t.data?!e||t.parentNode.dataset.trixCursorTarget===e:void 0:T(t.firstChild)},F=t=>m(t,\"[data-trix-attachment]\"),B=t=>I(t)&&\"\"===(null==t?void 0:t.data),I=t=>(null==t?void 0:t.nodeType)===Node.TEXT_NODE,P={level2Enabled:!0,getLevel(){return this.level2Enabled&&o.supportsInputEvents?2:0},pickFiles(t){const e=C(\"input\",{type:\"file\",multiple:!0,hidden:!0,id:this.fileInputId});e.addEventListener(\"change\",(()=>{t(e.files),A(e)})),A(document.getElementById(this.fileInputId)),document.body.appendChild(e),e.click()}};var N={removeBlankTableCells:!1,tableCellSeparator:\" | \",tableRowSeparator:\"\\n\"},O={bold:{tagName:\"strong\",inheritable:!0,parser(t){const e=window.getComputedStyle(t);return\"bold\"===e.fontWeight||e.fontWeight>=600}},italic:{tagName:\"em\",inheritable:!0,parser:t=>\"italic\"===window.getComputedStyle(t).fontStyle},href:{groupTagName:\"a\",parser(t){const e=\"a:not(\".concat(\"[data-trix-attachment]\",\")\"),i=t.closest(e);if(i)return i.getAttribute(\"href\")}},strike:{tagName:\"del\",inheritable:!0},frozen:{style:{backgroundColor:\"highlight\"}}},M={getDefaultHTML:()=>'<div class=\"trix-button-row\">\\n <span class=\"trix-button-group trix-button-group--text-tools\" data-trix-button-group=\"text-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bold\" data-trix-attribute=\"bold\" data-trix-key=\"b\" title=\"'.concat(s.bold,'\" tabindex=\"-1\">').concat(s.bold,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-italic\" data-trix-attribute=\"italic\" data-trix-key=\"i\" title=\"').concat(s.italic,'\" tabindex=\"-1\">').concat(s.italic,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-strike\" data-trix-attribute=\"strike\" title=\"').concat(s.strike,'\" tabindex=\"-1\">').concat(s.strike,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-link\" data-trix-attribute=\"href\" data-trix-action=\"link\" data-trix-key=\"k\" title=\"').concat(s.link,'\" tabindex=\"-1\">').concat(s.link,'</button>\\n </span>\\n\\n <span class=\"trix-button-group trix-button-group--block-tools\" data-trix-button-group=\"block-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-heading-1\" data-trix-attribute=\"heading1\" title=\"').concat(s.heading1,'\" tabindex=\"-1\">').concat(s.heading1,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-quote\" data-trix-attribute=\"quote\" title=\"').concat(s.quote,'\" tabindex=\"-1\">').concat(s.quote,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-code\" data-trix-attribute=\"code\" title=\"').concat(s.code,'\" tabindex=\"-1\">').concat(s.code,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bullet-list\" data-trix-attribute=\"bullet\" title=\"').concat(s.bullets,'\" tabindex=\"-1\">').concat(s.bullets,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-number-list\" data-trix-attribute=\"number\" title=\"').concat(s.numbers,'\" tabindex=\"-1\">').concat(s.numbers,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-decrease-nesting-level\" data-trix-action=\"decreaseNestingLevel\" title=\"').concat(s.outdent,'\" tabindex=\"-1\">').concat(s.outdent,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-increase-nesting-level\" data-trix-action=\"increaseNestingLevel\" title=\"').concat(s.indent,'\" tabindex=\"-1\">').concat(s.indent,'</button>\\n </span>\\n\\n <span class=\"trix-button-group trix-button-group--file-tools\" data-trix-button-group=\"file-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-attach\" data-trix-action=\"attachFiles\" title=\"').concat(s.attachFiles,'\" tabindex=\"-1\">').concat(s.attachFiles,'</button>\\n </span>\\n\\n <span class=\"trix-button-group-spacer\"></span>\\n\\n <span class=\"trix-button-group trix-button-group--history-tools\" data-trix-button-group=\"history-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-undo\" data-trix-action=\"undo\" data-trix-key=\"z\" title=\"').concat(s.undo,'\" tabindex=\"-1\">').concat(s.undo,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-redo\" data-trix-action=\"redo\" data-trix-key=\"shift+z\" title=\"').concat(s.redo,'\" tabindex=\"-1\">').concat(s.redo,'</button>\\n </span>\\n </div>\\n\\n <div class=\"trix-dialogs\" data-trix-dialogs>\\n <div class=\"trix-dialog trix-dialog--link\" data-trix-dialog=\"href\" data-trix-dialog-attribute=\"href\">\\n <div class=\"trix-dialog__link-fields\">\\n <input type=\"url\" name=\"href\" class=\"trix-input trix-input--dialog\" placeholder=\"').concat(s.urlPlaceholder,'\" aria-label=\"').concat(s.url,'\" required data-trix-input>\\n <div class=\"trix-button-group\">\\n <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"').concat(s.link,'\" data-trix-method=\"setAttribute\">\\n <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"').concat(s.unlink,'\" data-trix-method=\"removeAttribute\">\\n </div>\\n </div>\\n </div>\\n </div>')};const j={interval:5e3};var W=Object.freeze({__proto__:null,attachments:t,blockAttributes:e,browser:o,css:{attachment:\"attachment\",attachmentCaption:\"attachment__caption\",attachmentCaptionEditor:\"attachment__caption-editor\",attachmentMetadata:\"attachment__metadata\",attachmentMetadataContainer:\"attachment__metadata-container\",attachmentName:\"attachment__name\",attachmentProgress:\"attachment__progress\",attachmentSize:\"attachment__size\",attachmentToolbar:\"attachment__toolbar\",attachmentGallery:\"attachment-gallery\"},fileSize:l,input:P,keyNames:{8:\"backspace\",9:\"tab\",13:\"return\",27:\"escape\",37:\"left\",39:\"right\",46:\"delete\",68:\"d\",72:\"h\",79:\"o\"},lang:s,parser:N,textAttributes:O,toolbar:M,undo:j});class U{static proxyMethod(t){const{name:e,toMethod:i,toProperty:n,optional:r}=q(t);this.prototype[e]=function(){let t,o;var s,a;i?o=r?null===(s=this[i])||void 0===s?void 0:s.call(this):this[i]():n&&(o=this[n]);return r?(t=null===(a=o)||void 0===a?void 0:a[e],t?V.call(t,o,arguments):void 0):(t=o[e],V.call(t,o,arguments))}}}const q=function(t){const e=t.match(z);if(!e)throw new Error(\"can't parse @proxyMethod expression: \".concat(t));const i={name:e[4]};return null!=e[2]?i.toMethod=e[1]:i.toProperty=e[1],null!=e[3]&&(i.optional=!0),i},{apply:V}=Function.prototype,z=new RegExp(\"^(.+?)(\\\\(\\\\))?(\\\\?)?\\\\.(.+?)$\");var _,H,J;class K extends U{static box(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";return t instanceof this?t:this.fromUCS2String(null==t?void 0:t.toString())}static fromUCS2String(t){return new this(t,Y(t))}static fromCodepoints(t){return new this(Q(t),t)}constructor(t,e){super(...arguments),this.ucs2String=t,this.codepoints=e,this.length=this.codepoints.length,this.ucs2Length=this.ucs2String.length}offsetToUCS2Offset(t){return Q(this.codepoints.slice(0,Math.max(0,t))).length}offsetFromUCS2Offset(t){return Y(this.ucs2String.slice(0,Math.max(0,t))).length}slice(){return this.constructor.fromCodepoints(this.codepoints.slice(...arguments))}charAt(t){return this.slice(t,t+1)}isEqualTo(t){return this.constructor.box(t).ucs2String===this.ucs2String}toJSON(){return this.ucs2String}getCacheKey(){return this.ucs2String}toString(){return this.ucs2String}}const G=1===(null===(_=Array.from)||void 0===_?void 0:_.call(Array,\"👼\").length),$=null!=(null===(H=\" \".codePointAt)||void 0===H?void 0:H.call(\" \",0)),X=\" 👼\"===(null===(J=String.fromCodePoint)||void 0===J?void 0:J.call(String,32,128124));let Y,Q;Y=G&&$?t=>Array.from(t).map((t=>t.codePointAt(0))):function(t){const e=[];let i=0;const{length:n}=t;for(;i<n;){let r=t.charCodeAt(i++);if(55296<=r&&r<=56319&&i<n){const e=t.charCodeAt(i++);56320==(64512&e)?r=((1023&r)<<10)+(1023&e)+65536:i--}e.push(r)}return e},Q=X?t=>String.fromCodePoint(...Array.from(t||[])):function(t){return(()=>{const e=[];return Array.from(t).forEach((t=>{let i=\"\";t>65535&&(t-=65536,i+=String.fromCharCode(t>>>10&1023|55296),t=56320|1023&t),e.push(i+String.fromCharCode(t))})),e})().join(\"\")};let Z=0;class tt extends U{static fromJSONString(t){return this.fromJSON(JSON.parse(t))}constructor(){super(...arguments),this.id=++Z}hasSameConstructorAs(t){return this.constructor===(null==t?void 0:t.constructor)}isEqualTo(t){return this===t}inspect(){const t=[],e=this.contentsForInspection()||{};for(const i in e){const n=e[i];t.push(\"\".concat(i,\"=\").concat(n))}return\"#<\".concat(this.constructor.name,\":\").concat(this.id).concat(t.length?\" \".concat(t.join(\", \")):\"\",\">\")}contentsForInspection(){}toJSONString(){return JSON.stringify(this)}toUTF16String(){return K.box(this)}getCacheKey(){return this.id.toString()}}const et=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(t.length!==e.length)return!1;for(let i=0;i<t.length;i++){if(t[i]!==e[i])return!1}return!0},it=function(t){const e=t.slice(0);for(var i=arguments.length,n=new Array(i>1?i-1:0),r=1;r<i;r++)n[r-1]=arguments[r];return e.splice(...n),e},nt=/[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,rt=function(){const t=C(\"input\",{dir:\"auto\",name:\"x\",dirName:\"x.dir\"}),e=C(\"form\");e.appendChild(t);const i=function(){try{return new FormData(e).has(t.dirName)}catch(t){return!1}}(),n=function(){try{return t.matches(\":dir(ltr),:dir(rtl)\")}catch(t){return!1}}();return i?function(i){return t.value=i,new FormData(e).get(t.dirName)}:n?function(e){return t.value=e,t.matches(\":dir(rtl)\")?\"rtl\":\"ltr\"}:function(t){const e=t.trim().charAt(0);return nt.test(e)?\"rtl\":\"ltr\"}}();let ot=null,st=null,at=null,lt=null;const ct=()=>(ot||(ot=gt().concat(ut())),ot),ht=t=>e[t],ut=()=>(st||(st=Object.keys(e)),st),dt=t=>O[t],gt=()=>(at||(at=Object.keys(O)),at),mt=function(t,e){pt(t).textContent=e.replace(/%t/g,t)},pt=function(t){const e=document.createElement(\"style\");e.setAttribute(\"type\",\"text/css\"),e.setAttribute(\"data-tag-name\",t.toLowerCase());const i=ft();return i&&e.setAttribute(\"nonce\",i),document.head.insertBefore(e,document.head.firstChild),e},ft=function(){const t=bt(\"trix-csp-nonce\")||bt(\"csp-nonce\");if(t)return t.getAttribute(\"content\")},bt=t=>document.head.querySelector(\"meta[name=\".concat(t,\"]\")),vt={\"application/x-trix-feature-detection\":\"test\"},At=function(t){const e=t.getData(\"text/plain\"),i=t.getData(\"text/html\");if(!e||!i)return null==e?void 0:e.length;{const{body:t}=(new DOMParser).parseFromString(i,\"text/html\");if(t.textContent===e)return!t.querySelector(\"*\")}},xt=/Mac|^iP/.test(navigator.platform)?t=>t.metaKey:t=>t.ctrlKey,yt=t=>setTimeout(t,1),Ct=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e={};for(const i in t){const n=t[i];e[i]=n}return e},Rt=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Object.keys(t).length!==Object.keys(e).length)return!1;for(const i in t){if(t[i]!==e[i])return!1}return!0},Et=function(t){if(null!=t)return Array.isArray(t)||(t=[t,t]),[Lt(t[0]),Lt(null!=t[1]?t[1]:t[0])]},St=function(t){if(null==t)return;const[e,i]=Et(t);return Dt(e,i)},kt=function(t,e){if(null==t||null==e)return;const[i,n]=Et(t),[r,o]=Et(e);return Dt(i,r)&&Dt(n,o)},Lt=function(t){return\"number\"==typeof t?t:Ct(t)},Dt=function(t,e){return\"number\"==typeof t?t===e:Rt(t,e)};class wt extends U{constructor(){super(...arguments),this.update=this.update.bind(this),this.run=this.run.bind(this),this.selectionManagers=[]}start(){if(!this.started)return this.started=!0,\"onselectionchange\"in document?document.addEventListener(\"selectionchange\",this.update,!0):this.run()}stop(){if(this.started)return this.started=!1,document.removeEventListener(\"selectionchange\",this.update,!0)}registerSelectionManager(t){if(!this.selectionManagers.includes(t))return this.selectionManagers.push(t),this.start()}unregisterSelectionManager(t){if(this.selectionManagers=this.selectionManagers.filter((e=>e!==t)),0===this.selectionManagers.length)return this.stop()}notifySelectionManagersOfSelectionChange(){return this.selectionManagers.map((t=>t.selectionDidChange()))}update(){const t=It();if(!Tt(t,this.domRange))return this.domRange=t,this.notifySelectionManagersOfSelectionChange()}reset(){return this.domRange=null,this.update()}run(){if(this.started)return this.update(),requestAnimationFrame(this.run)}}const Tt=(t,e)=>(null==t?void 0:t.startContainer)===(null==e?void 0:e.startContainer)&&(null==t?void 0:t.startOffset)===(null==e?void 0:e.startOffset)&&(null==t?void 0:t.endContainer)===(null==e?void 0:e.endContainer)&&(null==t?void 0:t.endOffset)===(null==e?void 0:e.endOffset),Ft=new wt,Bt=function(){const t=window.getSelection();if(t.rangeCount>0)return t},It=function(){var t;const e=null===(t=Bt())||void 0===t?void 0:t.getRangeAt(0);if(e&&!Nt(e))return e},Pt=function(t){const e=window.getSelection();return e.removeAllRanges(),e.addRange(t),Ft.update()},Nt=t=>Ot(t.startContainer)||Ot(t.endContainer),Ot=t=>!Object.getPrototypeOf(t),Mt=t=>t.replace(new RegExp(\"\".concat(\"\\ufeff\"),\"g\"),\"\").replace(new RegExp(\"\".concat(\" \"),\"g\"),\" \"),jt=new RegExp(\"[^\\\\S\".concat(\" \",\"]\")),Wt=t=>t.replace(new RegExp(\"\".concat(jt.source),\"g\"),\" \").replace(/\\ {2,}/g,\" \"),Ut=function(t,e){if(t.isEqualTo(e))return[\"\",\"\"];const i=qt(t,e),{length:n}=i.utf16String;let r;if(n){const{offset:o}=i,s=t.codepoints.slice(0,o).concat(t.codepoints.slice(o+n));r=qt(e,K.fromCodepoints(s))}else r=qt(e,t);return[i.utf16String.toString(),r.utf16String.toString()]},qt=function(t,e){let i=0,n=t.length,r=e.length;for(;i<n&&t.charAt(i).isEqualTo(e.charAt(i));)i++;for(;n>i+1&&t.charAt(n-1).isEqualTo(e.charAt(r-1));)n--,r--;return{utf16String:t.slice(i,n),offset:i}};class Vt extends tt{static fromCommonAttributesOfObjects(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(!t.length)return new this;let e=Jt(t[0]),i=e.getKeys();return t.slice(1).forEach((t=>{i=e.getKeysCommonToHash(Jt(t)),e=e.slice(i)})),e}static box(t){return Jt(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(...arguments),this.values=Ht(t)}add(t,e){return this.merge(zt(t,e))}remove(t){return new Vt(Ht(this.values,t))}get(t){return this.values[t]}has(t){return t in this.values}merge(t){return new Vt(_t(this.values,Kt(t)))}slice(t){const e={};return Array.from(t).forEach((t=>{this.has(t)&&(e[t]=this.values[t])})),new Vt(e)}getKeys(){return Object.keys(this.values)}getKeysCommonToHash(t){return t=Jt(t),this.getKeys().filter((e=>this.values[e]===t.values[e]))}isEqualTo(t){return et(this.toArray(),Jt(t).toArray())}isEmpty(){return 0===this.getKeys().length}toArray(){if(!this.array){const t=[];for(const e in this.values){const i=this.values[e];t.push(t.push(e,i))}this.array=t.slice(0)}return this.array}toObject(){return Ht(this.values)}toJSON(){return this.toObject()}contentsForInspection(){return{values:JSON.stringify(this.values)}}}const zt=function(t,e){const i={};return i[t]=e,i},_t=function(t,e){const i=Ht(t);for(const t in e){const n=e[t];i[t]=n}return i},Ht=function(t,e){const i={};return Object.keys(t).sort().forEach((n=>{n!==e&&(i[n]=t[n])})),i},Jt=function(t){return t instanceof Vt?t:new Vt(t)},Kt=function(t){return t instanceof Vt?t.values:t};class Gt{static groupObjects(){let t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{depth:i,asTree:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n&&null==i&&(i=0);const r=[];return Array.from(e).forEach((e=>{var o;if(t){var s,a,l;if(null!==(s=e.canBeGrouped)&&void 0!==s&&s.call(e,i)&&null!==(a=(l=t[t.length-1]).canBeGroupedWith)&&void 0!==a&&a.call(l,e,i))return void t.push(e);r.push(new this(t,{depth:i,asTree:n})),t=null}null!==(o=e.canBeGrouped)&&void 0!==o&&o.call(e,i)?t=[e]:r.push(e)})),t&&r.push(new this(t,{depth:i,asTree:n})),r}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{depth:e,asTree:i}=arguments.length>1?arguments[1]:void 0;this.objects=t,i&&(this.depth=e,this.objects=this.constructor.groupObjects(this.objects,{asTree:i,depth:this.depth+1}))}getObjects(){return this.objects}getDepth(){return this.depth}getCacheKey(){const t=[\"objectGroup\"];return Array.from(this.getObjects()).forEach((e=>{t.push(e.getCacheKey())})),t.join(\"/\")}}class $t extends U{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.objects={},Array.from(t).forEach((t=>{const e=JSON.stringify(t);null==this.objects[e]&&(this.objects[e]=t)}))}find(t){const e=JSON.stringify(t);return this.objects[e]}}class Xt{constructor(t){this.reset(t)}add(t){const e=Yt(t);this.elements[e]=t}remove(t){const e=Yt(t),i=this.elements[e];if(i)return delete this.elements[e],i}reset(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.elements={},Array.from(t).forEach((t=>{this.add(t)})),t}}const Yt=t=>t.dataset.trixStoreKey;class Qt extends U{isPerforming(){return!0===this.performing}hasPerformed(){return!0===this.performed}hasSucceeded(){return this.performed&&this.succeeded}hasFailed(){return this.performed&&!this.succeeded}getPromise(){return this.promise||(this.promise=new Promise(((t,e)=>(this.performing=!0,this.perform(((i,n)=>{this.succeeded=i,this.performing=!1,this.performed=!0,this.succeeded?t(n):e(n)})))))),this.promise}perform(t){return t(!1)}release(){var t,e;null===(t=this.promise)||void 0===t||null===(e=t.cancel)||void 0===e||e.call(t),this.promise=null,this.performing=null,this.performed=null,this.succeeded=null}}Qt.proxyMethod(\"getPromise().then\"),Qt.proxyMethod(\"getPromise().catch\");class Zt extends U{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.object=t,this.options=e,this.childViews=[],this.rootView=this}getNodes(){return this.nodes||(this.nodes=this.createNodes()),this.nodes.map((t=>t.cloneNode(!0)))}invalidate(){var t;return this.nodes=null,this.childViews=[],null===(t=this.parentView)||void 0===t?void 0:t.invalidate()}invalidateViewForObject(t){var e;return null===(e=this.findViewForObject(t))||void 0===e?void 0:e.invalidate()}findOrCreateCachedChildView(t,e,i){let n=this.getCachedViewForObject(e);return n?this.recordChildView(n):(n=this.createChildView(...arguments),this.cacheViewForObject(n,e)),n}createChildView(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e instanceof Gt&&(i.viewClass=t,t=te);const n=new t(e,i);return this.recordChildView(n)}recordChildView(t){return t.parentView=this,t.rootView=this.rootView,this.childViews.push(t),t}getAllChildViews(){let t=[];return this.childViews.forEach((e=>{t.push(e),t=t.concat(e.getAllChildViews())})),t}findElement(){return this.findElementForObject(this.object)}findElementForObject(t){const e=null==t?void 0:t.id;if(e)return this.rootView.element.querySelector(\"[data-trix-id='\".concat(e,\"']\"))}findViewForObject(t){for(const e of this.getAllChildViews())if(e.object===t)return e}getViewCache(){return this.rootView!==this?this.rootView.getViewCache():this.isViewCachingEnabled()?(this.viewCache||(this.viewCache={}),this.viewCache):void 0}isViewCachingEnabled(){return!1!==this.shouldCacheViews}enableViewCaching(){this.shouldCacheViews=!0}disableViewCaching(){this.shouldCacheViews=!1}getCachedViewForObject(t){var e;return null===(e=this.getViewCache())||void 0===e?void 0:e[t.getCacheKey()]}cacheViewForObject(t,e){const i=this.getViewCache();i&&(i[e.getCacheKey()]=t)}garbageCollectCachedViews(){const t=this.getViewCache();if(t){const e=this.getAllChildViews().concat(this).map((t=>t.object.getCacheKey()));for(const i in t)e.includes(i)||delete t[i]}}}class te extends Zt{constructor(){super(...arguments),this.objectGroup=this.object,this.viewClass=this.options.viewClass,delete this.options.viewClass}getChildViews(){return this.childViews.length||Array.from(this.objectGroup.getObjects()).forEach((t=>{this.findOrCreateCachedChildView(this.viewClass,t,this.options)})),this.childViews}createNodes(){const t=this.createContainerElement();return this.getChildViews().forEach((e=>{Array.from(e.getNodes()).forEach((e=>{t.appendChild(e)}))})),[t]}createContainerElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.objectGroup.getDepth();return this.getChildViews()[0].createContainerElement(t)}}const{css:ee}=W;class ie extends Zt{constructor(){super(...arguments),this.attachment=this.object,this.attachment.uploadProgressDelegate=this,this.attachmentPiece=this.options.piece}createContentNodes(){return[]}createNodes(){let t;const e=t=C({tagName:\"figure\",className:this.getClassName(),data:this.getData(),editable:!1}),i=this.getHref();return i&&(t=C({tagName:\"a\",editable:!1,attributes:{href:i,tabindex:-1}}),e.appendChild(t)),this.attachment.hasContent()?t.innerHTML=this.attachment.getContent():this.createContentNodes().forEach((e=>{t.appendChild(e)})),t.appendChild(this.createCaptionElement()),this.attachment.isPending()&&(this.progressElement=C({tagName:\"progress\",attributes:{class:ee.attachmentProgress,value:this.attachment.getUploadProgress(),max:100},data:{trixMutable:!0,trixStoreKey:[\"progressElement\",this.attachment.id].join(\"/\")}}),e.appendChild(this.progressElement)),[ne(\"left\"),e,ne(\"right\")]}createCaptionElement(){const t=C({tagName:\"figcaption\",className:ee.attachmentCaption}),e=this.attachmentPiece.getCaption();if(e)t.classList.add(\"\".concat(ee.attachmentCaption,\"--edited\")),t.textContent=e;else{let e,i;const n=this.getCaptionConfig();if(n.name&&(e=this.attachment.getFilename()),n.size&&(i=this.attachment.getFormattedFilesize()),e){const i=C({tagName:\"span\",className:ee.attachmentName,textContent:e});t.appendChild(i)}if(i){e&&t.appendChild(document.createTextNode(\" \"));const n=C({tagName:\"span\",className:ee.attachmentSize,textContent:i});t.appendChild(n)}}return t}getClassName(){const t=[ee.attachment,\"\".concat(ee.attachment,\"--\").concat(this.attachment.getType())],e=this.attachment.getExtension();return e&&t.push(\"\".concat(ee.attachment,\"--\").concat(e)),t.join(\" \")}getData(){const t={trixAttachment:JSON.stringify(this.attachment),trixContentType:this.attachment.getContentType(),trixId:this.attachment.id},{attributes:e}=this.attachmentPiece;return e.isEmpty()||(t.trixAttributes=JSON.stringify(e)),this.attachment.isPending()&&(t.trixSerialize=!1),t}getHref(){if(!re(this.attachment.getContent(),\"a\"))return this.attachment.getHref()}getCaptionConfig(){var e;const i=this.attachment.getType(),n=Ct(null===(e=t[i])||void 0===e?void 0:e.caption);return\"file\"===i&&(n.name=!0),n}findProgressElement(){var t;return null===(t=this.findElement())||void 0===t?void 0:t.querySelector(\"progress\")}attachmentDidChangeUploadProgress(){const t=this.attachment.getUploadProgress(),e=this.findProgressElement();e&&(e.value=t)}}const ne=t=>C({tagName:\"span\",textContent:\"\\ufeff\",data:{trixCursorTarget:t,trixSerialize:!1}}),re=function(t,e){const i=C(\"div\");return i.innerHTML=t||\"\",i.querySelector(e)};class oe extends ie{constructor(){super(...arguments),this.attachment.previewDelegate=this}createContentNodes(){return this.image=C({tagName:\"img\",attributes:{src:\"\"},data:{trixMutable:!0}}),this.refresh(this.image),[this.image]}createCaptionElement(){const t=super.createCaptionElement(...arguments);return t.textContent||t.setAttribute(\"data-trix-placeholder\",s.captionPlaceholder),t}refresh(t){var e;t||(t=null===(e=this.findElement())||void 0===e?void 0:e.querySelector(\"img\"));if(t)return this.updateAttributesForImage(t)}updateAttributesForImage(t){const e=this.attachment.getURL(),i=this.attachment.getPreviewURL();if(t.src=i||e,i===e)t.removeAttribute(\"data-trix-serialized-attributes\");else{const i=JSON.stringify({src:e});t.setAttribute(\"data-trix-serialized-attributes\",i)}const n=this.attachment.getWidth(),r=this.attachment.getHeight();null!=n&&(t.width=n),null!=r&&(t.height=r);const o=[\"imageElement\",this.attachment.id,t.src,t.width,t.height].join(\"/\");t.dataset.trixStoreKey=o}attachmentDidChangeAttributes(){return this.refresh(this.image),this.refresh()}}class se extends Zt{constructor(){super(...arguments),this.piece=this.object,this.attributes=this.piece.getAttributes(),this.textConfig=this.options.textConfig,this.context=this.options.context,this.piece.attachment?this.attachment=this.piece.attachment:this.string=this.piece.toString()}createNodes(){let t=this.attachment?this.createAttachmentNodes():this.createStringNodes();const e=this.createElement();if(e){const i=function(t){for(;null!==(e=t)&&void 0!==e&&e.firstElementChild;){var e;t=t.firstElementChild}return t}(e);Array.from(t).forEach((t=>{i.appendChild(t)})),t=[e]}return t}createAttachmentNodes(){const t=this.attachment.isPreviewable()?oe:ie;return this.createChildView(t,this.piece.attachment,{piece:this.piece}).getNodes()}createStringNodes(){var t;if(null!==(t=this.textConfig)&&void 0!==t&&t.plaintext)return[document.createTextNode(this.string)];{const t=[],e=this.string.split(\"\\n\");for(let i=0;i<e.length;i++){const n=e[i];if(i>0){const e=C(\"br\");t.push(e)}if(n.length){const e=document.createTextNode(this.preserveSpaces(n));t.push(e)}}return t}}createElement(){let t,e,i;const n={};for(e in this.attributes){i=this.attributes[e];const o=dt(e);if(o){if(o.tagName){var r;const e=C(o.tagName);r?(r.appendChild(e),r=e):t=r=e}if(o.styleProperty&&(n[o.styleProperty]=i),o.style)for(e in o.style)i=o.style[e],n[e]=i}}if(Object.keys(n).length)for(e in t||(t=C(\"span\")),n)i=n[e],t.style[e]=i;return t}createContainerElement(){for(const t in this.attributes){const e=this.attributes[t],i=dt(t);if(i&&i.groupTagName){const n={};return n[t]=e,C(i.groupTagName,n)}}}preserveSpaces(t){return this.context.isLast&&(t=t.replace(/\\ $/,\" \")),t=t.replace(/(\\S)\\ {3}(\\S)/g,\"$1 \".concat(\" \",\" $2\")).replace(/\\ {2}/g,\"\".concat(\" \",\" \")).replace(/\\ {2}/g,\" \".concat(\" \")),(this.context.isFirst||this.context.followsWhitespace)&&(t=t.replace(/^\\ /,\" \")),t}}class ae extends Zt{constructor(){super(...arguments),this.text=this.object,this.textConfig=this.options.textConfig}createNodes(){const t=[],e=Gt.groupObjects(this.getPieces()),i=e.length-1;for(let r=0;r<e.length;r++){const o=e[r],s={};0===r&&(s.isFirst=!0),r===i&&(s.isLast=!0),le(n)&&(s.followsWhitespace=!0);const a=this.findOrCreateCachedChildView(se,o,{textConfig:this.textConfig,context:s});t.push(...Array.from(a.getNodes()||[]));var n=o}return t}getPieces(){return Array.from(this.text.getPieces()).filter((t=>!t.hasAttribute(\"blockBreak\")))}}const le=t=>/\\s$/.test(null==t?void 0:t.toString()),{css:ce}=W;class he extends Zt{constructor(){super(...arguments),this.block=this.object,this.attributes=this.block.getAttributes()}createNodes(){const t=[document.createComment(\"block\")];if(this.block.isEmpty())t.push(C(\"br\"));else{var i;const e=null===(i=ht(this.block.getLastAttribute()))||void 0===i?void 0:i.text,n=this.findOrCreateCachedChildView(ae,this.block.text,{textConfig:e});t.push(...Array.from(n.getNodes()||[])),this.shouldAddExtraNewlineElement()&&t.push(C(\"br\"))}if(this.attributes.length)return t;{let i;const{tagName:n}=e.default;this.block.isRTL()&&(i={dir:\"rtl\"});const r=C({tagName:n,attributes:i});return t.forEach((t=>r.appendChild(t))),[r]}}createContainerElement(t){let e,i;const n=this.attributes[t],{tagName:r}=ht(n);if(0===t&&this.block.isRTL()&&(e={dir:\"rtl\"}),\"attachmentGallery\"===n){const t=this.block.getBlockBreakPosition();i=\"\".concat(ce.attachmentGallery,\" \").concat(ce.attachmentGallery,\"--\").concat(t)}return C({tagName:r,className:i,attributes:e})}shouldAddExtraNewlineElement(){return/\\n\\n$/.test(this.block.toString())}}class ue extends Zt{static render(t){const e=C(\"div\"),i=new this(t,{element:e});return i.render(),i.sync(),e}constructor(){super(...arguments),this.element=this.options.element,this.elementStore=new Xt,this.setDocument(this.object)}setDocument(t){t.isEqualTo(this.document)||(this.document=this.object=t)}render(){if(this.childViews=[],this.shadowElement=C(\"div\"),!this.document.isEmpty()){const t=Gt.groupObjects(this.document.getBlocks(),{asTree:!0});Array.from(t).forEach((t=>{const e=this.findOrCreateCachedChildView(he,t);Array.from(e.getNodes()).map((t=>this.shadowElement.appendChild(t)))}))}}isSynced(){return ge(this.shadowElement,this.element)}sync(){const t=this.createDocumentFragmentForSync();for(;this.element.lastChild;)this.element.removeChild(this.element.lastChild);return this.element.appendChild(t),this.didSync()}didSync(){return this.elementStore.reset(de(this.element)),yt((()=>this.garbageCollectCachedViews()))}createDocumentFragmentForSync(){const t=document.createDocumentFragment();return Array.from(this.shadowElement.childNodes).forEach((e=>{t.appendChild(e.cloneNode(!0))})),Array.from(de(t)).forEach((t=>{const e=this.elementStore.remove(t);e&&t.parentNode.replaceChild(e,t)})),t}}const de=t=>t.querySelectorAll(\"[data-trix-store-key]\"),ge=(t,e)=>me(t.innerHTML)===me(e.innerHTML),me=t=>t.replace(/ /g,\" \");function pe(t){this.wrapped=t}function fe(t){var e,i;function n(e,i){try{var o=t[e](i),s=o.value,a=s instanceof pe;Promise.resolve(a?s.wrapped:s).then((function(t){a?n(\"return\"===e?\"return\":\"next\",t):r(o.done?\"return\":\"normal\",t)}),(function(t){n(\"throw\",t)}))}catch(t){r(\"throw\",t)}}function r(t,r){switch(t){case\"return\":e.resolve({value:r,done:!0});break;case\"throw\":e.reject(r);break;default:e.resolve({value:r,done:!1})}(e=e.next)?n(e.key,e.arg):i=null}this._invoke=function(t,r){return new Promise((function(o,s){var a={key:t,arg:r,resolve:o,reject:s,next:null};i?i=i.next=a:(e=i=a,n(t,r))}))},\"function\"!=typeof t.return&&(this.return=void 0)}function be(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}fe.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},fe.prototype.next=function(t){return this._invoke(\"next\",t)},fe.prototype.throw=function(t){return this._invoke(\"throw\",t)},fe.prototype.return=function(t){return this._invoke(\"return\",t)};class ve extends tt{static registerType(t,e){e.type=t,this.types[t]=e}static fromJSON(t){const e=this.types[t.type];if(e)return e.fromJSON(t)}constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.attributes=Vt.box(e)}copyWithAttributes(t){return new this.constructor(this.getValue(),t)}copyWithAdditionalAttributes(t){return this.copyWithAttributes(this.attributes.merge(t))}copyWithoutAttribute(t){return this.copyWithAttributes(this.attributes.remove(t))}copy(){return this.copyWithAttributes(this.attributes)}getAttribute(t){return this.attributes.get(t)}getAttributesHash(){return this.attributes}getAttributes(){return this.attributes.toObject()}hasAttribute(t){return this.attributes.has(t)}hasSameStringValueAsPiece(t){return t&&this.toString()===t.toString()}hasSameAttributesAsPiece(t){return t&&(this.attributes===t.attributes||this.attributes.isEqualTo(t.attributes))}isBlockBreak(){return!1}isEqualTo(t){return super.isEqualTo(...arguments)||this.hasSameConstructorAs(t)&&this.hasSameStringValueAsPiece(t)&&this.hasSameAttributesAsPiece(t)}isEmpty(){return 0===this.length}isSerializable(){return!0}toJSON(){return{type:this.constructor.type,attributes:this.getAttributes()}}contentsForInspection(){return{type:this.constructor.type,attributes:this.attributes.inspect()}}canBeGrouped(){return this.hasAttribute(\"href\")}canBeGroupedWith(t){return this.getAttribute(\"href\")===t.getAttribute(\"href\")}getLength(){return this.length}canBeConsolidatedWith(t){return!1}}be(ve,\"types\",{});class Ae extends Qt{constructor(t){super(...arguments),this.url=t}perform(t){const e=new Image;e.onload=()=>(e.width=this.width=e.naturalWidth,e.height=this.height=e.naturalHeight,t(!0,e)),e.onerror=()=>t(!1),e.src=this.url}}class xe extends tt{static attachmentForFile(t){const e=new this(this.attributesForFile(t));return e.setFile(t),e}static attributesForFile(t){return new Vt({filename:t.name,filesize:t.size,contentType:t.type})}static fromJSON(t){return new this(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(t),this.releaseFile=this.releaseFile.bind(this),this.attributes=Vt.box(t),this.didChangeAttributes()}getAttribute(t){return this.attributes.get(t)}hasAttribute(t){return this.attributes.has(t)}getAttributes(){return this.attributes.toObject()}setAttributes(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e=this.attributes.merge(t);var i,n,r,o;if(!this.attributes.isEqualTo(e))return this.attributes=e,this.didChangeAttributes(),null===(i=this.previewDelegate)||void 0===i||null===(n=i.attachmentDidChangeAttributes)||void 0===n||n.call(i,this),null===(r=this.delegate)||void 0===r||null===(o=r.attachmentDidChangeAttributes)||void 0===o?void 0:o.call(r,this)}didChangeAttributes(){if(this.isPreviewable())return this.preloadURL()}isPending(){return null!=this.file&&!(this.getURL()||this.getHref())}isPreviewable(){return this.attributes.has(\"previewable\")?this.attributes.get(\"previewable\"):xe.previewablePattern.test(this.getContentType())}getType(){return this.hasContent()?\"content\":this.isPreviewable()?\"preview\":\"file\"}getURL(){return this.attributes.get(\"url\")}getHref(){return this.attributes.get(\"href\")}getFilename(){return this.attributes.get(\"filename\")||\"\"}getFilesize(){return this.attributes.get(\"filesize\")}getFormattedFilesize(){const t=this.attributes.get(\"filesize\");return\"number\"==typeof t?l.formatter(t):\"\"}getExtension(){var t;return null===(t=this.getFilename().match(/\\.(\\w+)$/))||void 0===t?void 0:t[1].toLowerCase()}getContentType(){return this.attributes.get(\"contentType\")}hasContent(){return this.attributes.has(\"content\")}getContent(){return this.attributes.get(\"content\")}getWidth(){return this.attributes.get(\"width\")}getHeight(){return this.attributes.get(\"height\")}getFile(){return this.file}setFile(t){if(this.file=t,this.isPreviewable())return this.preloadFile()}releaseFile(){this.releasePreloadedFile(),this.file=null}getUploadProgress(){return null!=this.uploadProgress?this.uploadProgress:0}setUploadProgress(t){var e,i;if(this.uploadProgress!==t)return this.uploadProgress=t,null===(e=this.uploadProgressDelegate)||void 0===e||null===(i=e.attachmentDidChangeUploadProgress)||void 0===i?void 0:i.call(e,this)}toJSON(){return this.getAttributes()}getCacheKey(){return[super.getCacheKey(...arguments),this.attributes.getCacheKey(),this.getPreviewURL()].join(\"/\")}getPreviewURL(){return this.previewURL||this.preloadingURL}setPreviewURL(t){var e,i,n,r;if(t!==this.getPreviewURL())return this.previewURL=t,null===(e=this.previewDelegate)||void 0===e||null===(i=e.attachmentDidChangeAttributes)||void 0===i||i.call(e,this),null===(n=this.delegate)||void 0===n||null===(r=n.attachmentDidChangePreviewURL)||void 0===r?void 0:r.call(n,this)}preloadURL(){return this.preload(this.getURL(),this.releaseFile)}preloadFile(){if(this.file)return this.fileObjectURL=URL.createObjectURL(this.file),this.preload(this.fileObjectURL)}releasePreloadedFile(){this.fileObjectURL&&(URL.revokeObjectURL(this.fileObjectURL),this.fileObjectURL=null)}preload(t,e){if(t&&t!==this.getPreviewURL()){this.preloadingURL=t;return new Ae(t).then((i=>{let{width:n,height:r}=i;return this.getWidth()&&this.getHeight()||this.setAttributes({width:n,height:r}),this.preloadingURL=null,this.setPreviewURL(t),null==e?void 0:e()})).catch((()=>(this.preloadingURL=null,null==e?void 0:e())))}}}be(xe,\"previewablePattern\",/^image(\\/(gif|png|jpe?g)|$)/);class ye extends ve{static fromJSON(t){return new this(xe.fromJSON(t.attachment),t.attributes)}constructor(t){super(...arguments),this.attachment=t,this.length=1,this.ensureAttachmentExclusivelyHasAttribute(\"href\"),this.attachment.hasContent()||this.removeProhibitedAttributes()}ensureAttachmentExclusivelyHasAttribute(t){this.hasAttribute(t)&&(this.attachment.hasAttribute(t)||this.attachment.setAttributes(this.attributes.slice([t])),this.attributes=this.attributes.remove(t))}removeProhibitedAttributes(){const t=this.attributes.slice(ye.permittedAttributes);t.isEqualTo(this.attributes)||(this.attributes=t)}getValue(){return this.attachment}isSerializable(){return!this.attachment.isPending()}getCaption(){return this.attributes.get(\"caption\")||\"\"}isEqualTo(t){var e;return super.isEqualTo(t)&&this.attachment.id===(null==t||null===(e=t.attachment)||void 0===e?void 0:e.id)}toString(){return\"\"}toJSON(){const t=super.toJSON(...arguments);return t.attachment=this.attachment,t}getCacheKey(){return[super.getCacheKey(...arguments),this.attachment.getCacheKey()].join(\"/\")}toConsole(){return JSON.stringify(this.toString())}}be(ye,\"permittedAttributes\",[\"caption\",\"presentation\"]),ve.registerType(\"attachment\",ye);class Ce extends ve{static fromJSON(t){return new this(t.string,t.attributes)}constructor(t){super(...arguments),this.string=(t=>t.replace(/\\r\\n/g,\"\\n\"))(t),this.length=this.string.length}getValue(){return this.string}toString(){return this.string.toString()}isBlockBreak(){return\"\\n\"===this.toString()&&!0===this.getAttribute(\"blockBreak\")}toJSON(){const t=super.toJSON(...arguments);return t.string=this.string,t}canBeConsolidatedWith(t){return t&&this.hasSameConstructorAs(t)&&this.hasSameAttributesAsPiece(t)}consolidateWith(t){return new this.constructor(this.toString()+t.toString(),this.attributes)}splitAtOffset(t){let e,i;return 0===t?(e=null,i=this):t===this.length?(e=this,i=null):(e=new this.constructor(this.string.slice(0,t),this.attributes),i=new this.constructor(this.string.slice(t),this.attributes)),[e,i]}toConsole(){let{string:t}=this;return t.length>15&&(t=t.slice(0,14)+\"…\"),JSON.stringify(t.toString())}}ve.registerType(\"string\",Ce);class Re extends tt{static box(t){return t instanceof this?t:new this(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.objects=t.slice(0),this.length=this.objects.length}indexOf(t){return this.objects.indexOf(t)}splice(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return new this.constructor(it(this.objects,...e))}eachObject(t){return this.objects.map(((e,i)=>t(e,i)))}insertObjectAtIndex(t,e){return this.splice(e,0,t)}insertSplittableListAtIndex(t,e){return this.splice(e,0,...t.objects)}insertSplittableListAtPosition(t,e){const[i,n]=this.splitObjectAtPosition(e);return new this.constructor(i).insertSplittableListAtIndex(t,n)}editObjectAtIndex(t,e){return this.replaceObjectAtIndex(e(this.objects[t]),t)}replaceObjectAtIndex(t,e){return this.splice(e,1,t)}removeObjectAtIndex(t){return this.splice(t,1)}getObjectAtIndex(t){return this.objects[t]}getSplittableListInRange(t){const[e,i,n]=this.splitObjectsAtRange(t);return new this.constructor(e.slice(i,n+1))}selectSplittableList(t){const e=this.objects.filter((e=>t(e)));return new this.constructor(e)}removeObjectsInRange(t){const[e,i,n]=this.splitObjectsAtRange(t);return new this.constructor(e).splice(i,n-i+1)}transformObjectsInRange(t,e){const[i,n,r]=this.splitObjectsAtRange(t),o=i.map(((t,i)=>n<=i&&i<=r?e(t):t));return new this.constructor(o)}splitObjectsAtRange(t){let e,[i,n,r]=this.splitObjectAtPosition(Se(t));return[i,e]=new this.constructor(i).splitObjectAtPosition(ke(t)+r),[i,n,e-1]}getObjectAtPosition(t){const{index:e}=this.findIndexAndOffsetAtPosition(t);return this.objects[e]}splitObjectAtPosition(t){let e,i;const{index:n,offset:r}=this.findIndexAndOffsetAtPosition(t),o=this.objects.slice(0);if(null!=n)if(0===r)e=n,i=0;else{const t=this.getObjectAtIndex(n),[s,a]=t.splitAtOffset(r);o.splice(n,1,s,a),e=n+1,i=s.getLength()-r}else e=o.length,i=0;return[o,e,i]}consolidate(){const t=[];let e=this.objects[0];return this.objects.slice(1).forEach((i=>{var n,r;null!==(n=(r=e).canBeConsolidatedWith)&&void 0!==n&&n.call(r,i)?e=e.consolidateWith(i):(t.push(e),e=i)})),e&&t.push(e),new this.constructor(t)}consolidateFromIndexToIndex(t,e){const i=this.objects.slice(0).slice(t,e+1),n=new this.constructor(i).consolidate().toArray();return this.splice(t,i.length,...n)}findIndexAndOffsetAtPosition(t){let e,i=0;for(e=0;e<this.objects.length;e++){const n=i+this.objects[e].getLength();if(i<=t&&t<n)return{index:e,offset:t-i};i=n}return{index:null,offset:null}}findPositionAtIndexAndOffset(t,e){let i=0;for(let n=0;n<this.objects.length;n++){const r=this.objects[n];if(n<t)i+=r.getLength();else if(n===t){i+=e;break}}return i}getEndPosition(){return null==this.endPosition&&(this.endPosition=0,this.objects.forEach((t=>this.endPosition+=t.getLength()))),this.endPosition}toString(){return this.objects.join(\"\")}toArray(){return this.objects.slice(0)}toJSON(){return this.toArray()}isEqualTo(t){return super.isEqualTo(...arguments)||Ee(this.objects,null==t?void 0:t.objects)}contentsForInspection(){return{objects:\"[\".concat(this.objects.map((t=>t.inspect())).join(\", \"),\"]\")}}}const Ee=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(t.length!==e.length)return!1;let i=!0;for(let n=0;n<t.length;n++){const r=t[n];i&&!r.isEqualTo(e[n])&&(i=!1)}return i},Se=t=>t[0],ke=t=>t[1];class Le extends tt{static textForAttachmentWithAttributes(t,e){return new this([new ye(t,e)])}static textForStringWithAttributes(t,e){return new this([new Ce(t,e)])}static fromJSON(t){return new this(Array.from(t).map((t=>ve.fromJSON(t))))}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments);const e=t.filter((t=>!t.isEmpty()));this.pieceList=new Re(e)}copy(){return this.copyWithPieceList(this.pieceList)}copyWithPieceList(t){return new this.constructor(t.consolidate().toArray())}copyUsingObjectMap(t){const e=this.getPieces().map((e=>t.find(e)||e));return new this.constructor(e)}appendText(t){return this.insertTextAtPosition(t,this.getLength())}insertTextAtPosition(t,e){return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList,e))}removeTextAtRange(t){return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t))}replaceTextAtRange(t,e){return this.removeTextAtRange(e).insertTextAtPosition(t,e[0])}moveTextFromRangeToPosition(t,e){if(t[0]<=e&&e<=t[1])return;const i=this.getTextAtRange(t),n=i.getLength();return t[0]<e&&(e-=n),this.removeTextAtRange(t).insertTextAtPosition(i,e)}addAttributeAtRange(t,e,i){const n={};return n[t]=e,this.addAttributesAtRange(n,i)}addAttributesAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,(e=>e.copyWithAdditionalAttributes(t))))}removeAttributeAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,(e=>e.copyWithoutAttribute(t))))}setAttributesAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,(e=>e.copyWithAttributes(t))))}getAttributesAtPosition(t){var e;return(null===(e=this.pieceList.getObjectAtPosition(t))||void 0===e?void 0:e.getAttributes())||{}}getCommonAttributes(){const t=Array.from(this.pieceList.toArray()).map((t=>t.getAttributes()));return Vt.fromCommonAttributesOfObjects(t).toObject()}getCommonAttributesAtRange(t){return this.getTextAtRange(t).getCommonAttributes()||{}}getExpandedRangeForAttributeAtOffset(t,e){let i,n=i=e;const r=this.getLength();for(;n>0&&this.getCommonAttributesAtRange([n-1,i])[t];)n--;for(;i<r&&this.getCommonAttributesAtRange([e,i+1])[t];)i++;return[n,i]}getTextAtRange(t){return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t))}getStringAtRange(t){return this.pieceList.getSplittableListInRange(t).toString()}getStringAtPosition(t){return this.getStringAtRange([t,t+1])}startsWithString(t){return this.getStringAtRange([0,t.length])===t}endsWithString(t){const e=this.getLength();return this.getStringAtRange([e-t.length,e])===t}getAttachmentPieces(){return this.pieceList.toArray().filter((t=>!!t.attachment))}getAttachments(){return this.getAttachmentPieces().map((t=>t.attachment))}getAttachmentAndPositionById(t){let e=0;for(const n of this.pieceList.toArray()){var i;if((null===(i=n.attachment)||void 0===i?void 0:i.id)===t)return{attachment:n.attachment,position:e};e+=n.length}return{attachment:null,position:null}}getAttachmentById(t){const{attachment:e}=this.getAttachmentAndPositionById(t);return e}getRangeOfAttachment(t){const e=this.getAttachmentAndPositionById(t.id),i=e.position;if(t=e.attachment)return[i,i+1]}updateAttributesForAttachment(t,e){const i=this.getRangeOfAttachment(e);return i?this.addAttributesAtRange(t,i):this}getLength(){return this.pieceList.getEndPosition()}isEmpty(){return 0===this.getLength()}isEqualTo(t){var e;return super.isEqualTo(t)||(null==t||null===(e=t.pieceList)||void 0===e?void 0:e.isEqualTo(this.pieceList))}isBlockBreak(){return 1===this.getLength()&&this.pieceList.getObjectAtIndex(0).isBlockBreak()}eachPiece(t){return this.pieceList.eachObject(t)}getPieces(){return this.pieceList.toArray()}getPieceAtPosition(t){return this.pieceList.getObjectAtPosition(t)}contentsForInspection(){return{pieceList:this.pieceList.inspect()}}toSerializableText(){const t=this.pieceList.selectSplittableList((t=>t.isSerializable()));return this.copyWithPieceList(t)}toString(){return this.pieceList.toString()}toJSON(){return this.pieceList.toJSON()}toConsole(){return JSON.stringify(this.pieceList.toArray().map((t=>JSON.parse(t.toConsole()))))}getDirection(){return rt(this.toString())}isRTL(){return\"rtl\"===this.getDirection()}}class De extends tt{static fromJSON(t){return new this(Le.fromJSON(t.text),t.attributes)}constructor(t,e){super(...arguments),this.text=we(t||new Le),this.attributes=e||[]}isEmpty(){return this.text.isBlockBreak()}isEqualTo(t){return!!super.isEqualTo(t)||this.text.isEqualTo(null==t?void 0:t.text)&&et(this.attributes,null==t?void 0:t.attributes)}copyWithText(t){return new De(t,this.attributes)}copyWithoutText(){return this.copyWithText(null)}copyWithAttributes(t){return new De(this.text,t)}copyWithoutAttributes(){return this.copyWithAttributes(null)}copyUsingObjectMap(t){const e=t.find(this.text);return e?this.copyWithText(e):this.copyWithText(this.text.copyUsingObjectMap(t))}addAttribute(t){const e=this.attributes.concat(Ne(t));return this.copyWithAttributes(e)}removeAttribute(t){const{listAttribute:e}=ht(t),i=Me(Me(this.attributes,t),e);return this.copyWithAttributes(i)}removeLastAttribute(){return this.removeAttribute(this.getLastAttribute())}getLastAttribute(){return Oe(this.attributes)}getAttributes(){return this.attributes.slice(0)}getAttributeLevel(){return this.attributes.length}getAttributeAtLevel(t){return this.attributes[t-1]}hasAttribute(t){return this.attributes.includes(t)}hasAttributes(){return this.getAttributeLevel()>0}getLastNestableAttribute(){return Oe(this.getNestableAttributes())}getNestableAttributes(){return this.attributes.filter((t=>ht(t).nestable))}getNestingLevel(){return this.getNestableAttributes().length}decreaseNestingLevel(){const t=this.getLastNestableAttribute();return t?this.removeAttribute(t):this}increaseNestingLevel(){const t=this.getLastNestableAttribute();if(t){const e=this.attributes.lastIndexOf(t),i=it(this.attributes,e+1,0,...Ne(t));return this.copyWithAttributes(i)}return this}getListItemAttributes(){return this.attributes.filter((t=>ht(t).listAttribute))}isListItem(){var t;return null===(t=ht(this.getLastAttribute()))||void 0===t?void 0:t.listAttribute}isTerminalBlock(){var t;return null===(t=ht(this.getLastAttribute()))||void 0===t?void 0:t.terminal}breaksOnReturn(){var t;return null===(t=ht(this.getLastAttribute()))||void 0===t?void 0:t.breakOnReturn}findLineBreakInDirectionFromPosition(t,e){const i=this.toString();let n;switch(t){case\"forward\":n=i.indexOf(\"\\n\",e);break;case\"backward\":n=i.slice(0,e).lastIndexOf(\"\\n\")}if(-1!==n)return n}contentsForInspection(){return{text:this.text.inspect(),attributes:this.attributes}}toString(){return this.text.toString()}toJSON(){return{text:this.text,attributes:this.attributes}}getDirection(){return this.text.getDirection()}isRTL(){return this.text.isRTL()}getLength(){return this.text.getLength()}canBeConsolidatedWith(t){return!this.hasAttributes()&&!t.hasAttributes()&&this.getDirection()===t.getDirection()}consolidateWith(t){const e=Le.textForStringWithAttributes(\"\\n\"),i=this.getTextWithoutBlockBreak().appendText(e);return this.copyWithText(i.appendText(t.text))}splitAtOffset(t){let e,i;return 0===t?(e=null,i=this):t===this.getLength()?(e=this,i=null):(e=this.copyWithText(this.text.getTextAtRange([0,t])),i=this.copyWithText(this.text.getTextAtRange([t,this.getLength()]))),[e,i]}getBlockBreakPosition(){return this.text.getLength()-1}getTextWithoutBlockBreak(){return Ie(this.text)?this.text.getTextAtRange([0,this.getBlockBreakPosition()]):this.text.copy()}canBeGrouped(t){return this.attributes[t]}canBeGroupedWith(t,i){const n=t.getAttributes(),r=n[i],o=this.attributes[i];return o===r&&!(!1===ht(o).group&&!(()=>{if(!lt){lt=[];for(const t in e){const{listAttribute:i}=e[t];null!=i&<.push(i)}}return lt})().includes(n[i+1]))&&(this.getDirection()===t.getDirection()||t.isEmpty())}}const we=function(t){return t=Te(t),t=Be(t)},Te=function(t){let e=!1;const i=t.getPieces();let n=i.slice(0,i.length-1);const r=i[i.length-1];return r?(n=n.map((t=>t.isBlockBreak()?(e=!0,Pe(t)):t)),e?new Le([...n,r]):t):t},Fe=Le.textForStringWithAttributes(\"\\n\",{blockBreak:!0}),Be=function(t){return Ie(t)?t:t.appendText(Fe)},Ie=function(t){const e=t.getLength();if(0===e)return!1;return t.getTextAtRange([e-1,e]).isBlockBreak()},Pe=t=>t.copyWithoutAttribute(\"blockBreak\"),Ne=function(t){const{listAttribute:e}=ht(t);return e?[e,t]:[t]},Oe=t=>t.slice(-1)[0],Me=function(t,e){const i=t.lastIndexOf(e);return-1===i?t:it(t,i,1)};class je extends tt{static fromJSON(t){return new this(Array.from(t).map((t=>De.fromJSON(t))))}static fromString(t,e){const i=Le.textForStringWithAttributes(t,e);return new this([new De(i)])}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),0===t.length&&(t=[new De]),this.blockList=Re.box(t)}isEmpty(){const t=this.getBlockAtIndex(0);return 1===this.blockList.length&&t.isEmpty()&&!t.hasAttributes()}copy(){const t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).consolidateBlocks?this.blockList.consolidate().toArray():this.blockList.toArray();return new this.constructor(t)}copyUsingObjectsFromDocument(t){const e=new $t(t.getObjects());return this.copyUsingObjectMap(e)}copyUsingObjectMap(t){const e=this.getBlocks().map((e=>t.find(e)||e.copyUsingObjectMap(t)));return new this.constructor(e)}copyWithBaseBlockAttributes(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=this.getBlocks().map((e=>{const i=t.concat(e.getAttributes());return e.copyWithAttributes(i)}));return new this.constructor(e)}replaceBlock(t,e){const i=this.blockList.indexOf(t);return-1===i?this:new this.constructor(this.blockList.replaceObjectAtIndex(e,i))}insertDocumentAtRange(t,e){const{blockList:i}=t;e=Et(e);let[n]=e;const{index:r,offset:o}=this.locationFromPosition(n);let s=this;const a=this.getBlockAtPosition(n);return St(e)&&a.isEmpty()&&!a.hasAttributes()?s=new this.constructor(s.blockList.removeObjectAtIndex(r)):a.getBlockBreakPosition()===o&&n++,s=s.removeTextAtRange(e),new this.constructor(s.blockList.insertSplittableListAtPosition(i,n))}mergeDocumentAtRange(t,e){let i,n;e=Et(e);const[r]=e,o=this.locationFromPosition(r),s=this.getBlockAtIndex(o.index).getAttributes(),a=t.getBaseBlockAttributes(),l=s.slice(-a.length);if(et(a,l)){const e=s.slice(0,-a.length);i=t.copyWithBaseBlockAttributes(e)}else i=t.copy({consolidateBlocks:!0}).copyWithBaseBlockAttributes(s);const c=i.getBlockCount(),h=i.getBlockAtIndex(0);if(et(s,h.getAttributes())){const t=h.getTextWithoutBlockBreak();if(n=this.insertTextAtRange(t,e),c>1){i=new this.constructor(i.getBlocks().slice(1));const e=r+t.getLength();n=n.insertDocumentAtRange(i,e)}}else n=this.insertDocumentAtRange(i,e);return n}insertTextAtRange(t,e){e=Et(e);const[i]=e,{index:n,offset:r}=this.locationFromPosition(i),o=this.removeTextAtRange(e);return new this.constructor(o.blockList.editObjectAtIndex(n,(e=>e.copyWithText(e.text.insertTextAtPosition(t,r)))))}removeTextAtRange(t){let e;t=Et(t);const[i,n]=t;if(St(t))return this;const[r,o]=Array.from(this.locationRangeFromRange(t)),s=r.index,a=r.offset,l=this.getBlockAtIndex(s),c=o.index,h=o.offset,u=this.getBlockAtIndex(c);if(n-i==1&&l.getBlockBreakPosition()===a&&u.getBlockBreakPosition()!==h&&\"\\n\"===u.text.getStringAtPosition(h))e=this.blockList.editObjectAtIndex(c,(t=>t.copyWithText(t.text.removeTextAtRange([h,h+1]))));else{let t;const i=l.text.getTextAtRange([0,a]),n=u.text.getTextAtRange([h,u.getLength()]),r=i.appendText(n);t=s!==c&&0===a&&l.getAttributeLevel()>=u.getAttributeLevel()?u.copyWithText(r):l.copyWithText(r);const o=c+1-s;e=this.blockList.splice(s,o,t)}return new this.constructor(e)}moveTextFromRangeToPosition(t,e){let i;t=Et(t);const[n,r]=t;if(n<=e&&e<=r)return this;let o=this.getDocumentAtRange(t),s=this.removeTextAtRange(t);const a=n<e;a&&(e-=o.getLength());const[l,...c]=o.getBlocks();return 0===c.length?(i=l.getTextWithoutBlockBreak(),a&&(e+=1)):i=l.text,s=s.insertTextAtRange(i,e),0===c.length?s:(o=new this.constructor(c),e+=i.getLength(),s.insertDocumentAtRange(o,e))}addAttributeAtRange(t,e,i){let{blockList:n}=this;return this.eachBlockAtRange(i,((i,r,o)=>n=n.editObjectAtIndex(o,(function(){return ht(t)?i.addAttribute(t,e):r[0]===r[1]?i:i.copyWithText(i.text.addAttributeAtRange(t,e,r))})))),new this.constructor(n)}addAttribute(t,e){let{blockList:i}=this;return this.eachBlock(((n,r)=>i=i.editObjectAtIndex(r,(()=>n.addAttribute(t,e))))),new this.constructor(i)}removeAttributeAtRange(t,e){let{blockList:i}=this;return this.eachBlockAtRange(e,(function(e,n,r){ht(t)?i=i.editObjectAtIndex(r,(()=>e.removeAttribute(t))):n[0]!==n[1]&&(i=i.editObjectAtIndex(r,(()=>e.copyWithText(e.text.removeAttributeAtRange(t,n)))))})),new this.constructor(i)}updateAttributesForAttachment(t,e){const i=this.getRangeOfAttachment(e),[n]=Array.from(i),{index:r}=this.locationFromPosition(n),o=this.getTextAtIndex(r);return new this.constructor(this.blockList.editObjectAtIndex(r,(i=>i.copyWithText(o.updateAttributesForAttachment(t,e)))))}removeAttributeForAttachment(t,e){const i=this.getRangeOfAttachment(e);return this.removeAttributeAtRange(t,i)}insertBlockBreakAtRange(t){let e;t=Et(t);const[i]=t,{offset:n}=this.locationFromPosition(i),r=this.removeTextAtRange(t);return 0===n&&(e=[new De]),new this.constructor(r.blockList.insertSplittableListAtPosition(new Re(e),i))}applyBlockAttributeAtRange(t,e,i){const n=this.expandRangeToLineBreaksAndSplitBlocks(i);let r=n.document;i=n.range;const o=ht(t);if(o.listAttribute){r=r.removeLastListAttributeAtRange(i,{exceptAttributeName:t});const e=r.convertLineBreaksToBlockBreaksInRange(i);r=e.document,i=e.range}else r=o.exclusive?r.removeBlockAttributesAtRange(i):o.terminal?r.removeLastTerminalAttributeAtRange(i):r.consolidateBlocksAtRange(i);return r.addAttributeAtRange(t,e,i)}removeLastListAttributeAtRange(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{blockList:i}=this;return this.eachBlockAtRange(t,(function(t,n,r){const o=t.getLastAttribute();o&&ht(o).listAttribute&&o!==e.exceptAttributeName&&(i=i.editObjectAtIndex(r,(()=>t.removeAttribute(o))))})),new this.constructor(i)}removeLastTerminalAttributeAtRange(t){let{blockList:e}=this;return this.eachBlockAtRange(t,(function(t,i,n){const r=t.getLastAttribute();r&&ht(r).terminal&&(e=e.editObjectAtIndex(n,(()=>t.removeAttribute(r))))})),new this.constructor(e)}removeBlockAttributesAtRange(t){let{blockList:e}=this;return this.eachBlockAtRange(t,(function(t,i,n){t.hasAttributes()&&(e=e.editObjectAtIndex(n,(()=>t.copyWithoutAttributes())))})),new this.constructor(e)}expandRangeToLineBreaksAndSplitBlocks(t){let e;t=Et(t);let[i,n]=t;const r=this.locationFromPosition(i),o=this.locationFromPosition(n);let s=this;const a=s.getBlockAtIndex(r.index);if(r.offset=a.findLineBreakInDirectionFromPosition(\"backward\",r.offset),null!=r.offset&&(e=s.positionFromLocation(r),s=s.insertBlockBreakAtRange([e,e+1]),o.index+=1,o.offset-=s.getBlockAtIndex(r.index).getLength(),r.index+=1),r.offset=0,0===o.offset&&o.index>r.index)o.index-=1,o.offset=s.getBlockAtIndex(o.index).getBlockBreakPosition();else{const t=s.getBlockAtIndex(o.index);\"\\n\"===t.text.getStringAtRange([o.offset-1,o.offset])?o.offset-=1:o.offset=t.findLineBreakInDirectionFromPosition(\"forward\",o.offset),o.offset!==t.getBlockBreakPosition()&&(e=s.positionFromLocation(o),s=s.insertBlockBreakAtRange([e,e+1]))}return i=s.positionFromLocation(r),n=s.positionFromLocation(o),{document:s,range:t=Et([i,n])}}convertLineBreaksToBlockBreaksInRange(t){t=Et(t);let[e]=t;const i=this.getStringAtRange(t).slice(0,-1);let n=this;return i.replace(/.*?\\n/g,(function(t){e+=t.length,n=n.insertBlockBreakAtRange([e-1,e])})),{document:n,range:t}}consolidateBlocksAtRange(t){t=Et(t);const[e,i]=t,n=this.locationFromPosition(e).index,r=this.locationFromPosition(i).index;return new this.constructor(this.blockList.consolidateFromIndexToIndex(n,r))}getDocumentAtRange(t){t=Et(t);const e=this.blockList.getSplittableListInRange(t).toArray();return new this.constructor(e)}getStringAtRange(t){let e;const i=t=Et(t);return i[i.length-1]!==this.getLength()&&(e=-1),this.getDocumentAtRange(t).toString().slice(0,e)}getBlockAtIndex(t){return this.blockList.getObjectAtIndex(t)}getBlockAtPosition(t){const{index:e}=this.locationFromPosition(t);return this.getBlockAtIndex(e)}getTextAtIndex(t){var e;return null===(e=this.getBlockAtIndex(t))||void 0===e?void 0:e.text}getTextAtPosition(t){const{index:e}=this.locationFromPosition(t);return this.getTextAtIndex(e)}getPieceAtPosition(t){const{index:e,offset:i}=this.locationFromPosition(t);return this.getTextAtIndex(e).getPieceAtPosition(i)}getCharacterAtPosition(t){const{index:e,offset:i}=this.locationFromPosition(t);return this.getTextAtIndex(e).getStringAtRange([i,i+1])}getLength(){return this.blockList.getEndPosition()}getBlocks(){return this.blockList.toArray()}getBlockCount(){return this.blockList.length}getEditCount(){return this.editCount}eachBlock(t){return this.blockList.eachObject(t)}eachBlockAtRange(t,e){let i,n;t=Et(t);const[r,o]=t,s=this.locationFromPosition(r),a=this.locationFromPosition(o);if(s.index===a.index)return i=this.getBlockAtIndex(s.index),n=[s.offset,a.offset],e(i,n,s.index);for(let t=s.index;t<=a.index;t++)if(i=this.getBlockAtIndex(t),i){switch(t){case s.index:n=[s.offset,i.text.getLength()];break;case a.index:n=[0,a.offset];break;default:n=[0,i.text.getLength()]}e(i,n,t)}}getCommonAttributesAtRange(t){t=Et(t);const[e]=t;if(St(t))return this.getCommonAttributesAtPosition(e);{const e=[],i=[];return this.eachBlockAtRange(t,(function(t,n){if(n[0]!==n[1])return e.push(t.text.getCommonAttributesAtRange(n)),i.push(We(t))})),Vt.fromCommonAttributesOfObjects(e).merge(Vt.fromCommonAttributesOfObjects(i)).toObject()}}getCommonAttributesAtPosition(t){let e,i;const{index:n,offset:r}=this.locationFromPosition(t),o=this.getBlockAtIndex(n);if(!o)return{};const s=We(o),a=o.text.getAttributesAtPosition(r),l=o.text.getAttributesAtPosition(r-1),c=Object.keys(O).filter((t=>O[t].inheritable));for(e in l)i=l[e],(i===a[e]||c.includes(e))&&(s[e]=i);return s}getRangeOfCommonAttributeAtPosition(t,e){const{index:i,offset:n}=this.locationFromPosition(e),r=this.getTextAtIndex(i),[o,s]=Array.from(r.getExpandedRangeForAttributeAtOffset(t,n)),a=this.positionFromLocation({index:i,offset:o}),l=this.positionFromLocation({index:i,offset:s});return Et([a,l])}getBaseBlockAttributes(){let t=this.getBlockAtIndex(0).getAttributes();for(let e=1;e<this.getBlockCount();e++){const i=this.getBlockAtIndex(e).getAttributes(),n=Math.min(t.length,i.length);t=(()=>{const e=[];for(let r=0;r<n&&i[r]===t[r];r++)e.push(i[r]);return e})()}return t}getAttachmentById(t){for(const e of this.getAttachments())if(e.id===t)return e}getAttachmentPieces(){let t=[];return this.blockList.eachObject((e=>{let{text:i}=e;return t=t.concat(i.getAttachmentPieces())})),t}getAttachments(){return this.getAttachmentPieces().map((t=>t.attachment))}getRangeOfAttachment(t){let e=0;const i=this.blockList.toArray();for(let n=0;n<i.length;n++){const{text:r}=i[n],o=r.getRangeOfAttachment(t);if(o)return Et([e+o[0],e+o[1]]);e+=r.getLength()}}getLocationRangeOfAttachment(t){const e=this.getRangeOfAttachment(t);return this.locationRangeFromRange(e)}getAttachmentPieceForAttachment(t){for(const e of this.getAttachmentPieces())if(e.attachment===t)return e}findRangesForBlockAttribute(t){let e=0;const i=[];return this.getBlocks().forEach((n=>{const r=n.getLength();n.hasAttribute(t)&&i.push([e,e+r]),e+=r})),i}findRangesForTextAttribute(t){let{withValue:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=0,n=[];const r=[];return this.getPieces().forEach((o=>{const s=o.getLength();(function(i){return e?i.getAttribute(t)===e:i.hasAttribute(t)})(o)&&(n[1]===i?n[1]=i+s:r.push(n=[i,i+s])),i+=s})),r}locationFromPosition(t){const e=this.blockList.findIndexAndOffsetAtPosition(Math.max(0,t));if(null!=e.index)return e;{const t=this.getBlocks();return{index:t.length-1,offset:t[t.length-1].getLength()}}}positionFromLocation(t){return this.blockList.findPositionAtIndexAndOffset(t.index,t.offset)}locationRangeFromPosition(t){return Et(this.locationFromPosition(t))}locationRangeFromRange(t){if(!(t=Et(t)))return;const[e,i]=Array.from(t),n=this.locationFromPosition(e),r=this.locationFromPosition(i);return Et([n,r])}rangeFromLocationRange(t){let e;t=Et(t);const i=this.positionFromLocation(t[0]);return St(t)||(e=this.positionFromLocation(t[1])),Et([i,e])}isEqualTo(t){return this.blockList.isEqualTo(null==t?void 0:t.blockList)}getTexts(){return this.getBlocks().map((t=>t.text))}getPieces(){const t=[];return Array.from(this.getTexts()).forEach((e=>{t.push(...Array.from(e.getPieces()||[]))})),t}getObjects(){return this.getBlocks().concat(this.getTexts()).concat(this.getPieces())}toSerializableDocument(){const t=[];return this.blockList.eachObject((e=>t.push(e.copyWithText(e.text.toSerializableText())))),new this.constructor(t)}toString(){return this.blockList.toString()}toJSON(){return this.blockList.toJSON()}toConsole(){return JSON.stringify(this.blockList.toArray()).map((t=>JSON.parse(t.text.toConsole())))}}const We=function(t){const e={},i=t.getLastAttribute();return i&&(e[i]=!0),e},Ue=\"style href src width height class\".split(\" \"),qe=\"javascript:\".split(\" \"),Ve=\"script iframe\".split(\" \");class ze extends U{static sanitize(t,e){const i=new this(t,e);return i.sanitize(),i}constructor(t){let{allowedAttributes:e,forbiddenProtocols:i,forbiddenElements:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.allowedAttributes=e||Ue,this.forbiddenProtocols=i||qe,this.forbiddenElements=n||Ve,this.body=_e(t)}sanitize(){return this.sanitizeElements(),this.normalizeListElementNesting()}getHTML(){return this.body.innerHTML}getBody(){return this.body}sanitizeElements(){const t=x(this.body),e=[];for(;t.nextNode();){const i=t.currentNode;switch(i.nodeType){case Node.ELEMENT_NODE:this.elementIsRemovable(i)?e.push(i):this.sanitizeElement(i);break;case Node.COMMENT_NODE:e.push(i)}}return e.forEach((t=>A(t))),this.body}sanitizeElement(t){return t.hasAttribute(\"href\")&&this.forbiddenProtocols.includes(t.protocol)&&t.removeAttribute(\"href\"),Array.from(t.attributes).forEach((e=>{let{name:i}=e;this.allowedAttributes.includes(i)||0===i.indexOf(\"data-trix\")||t.removeAttribute(i)})),t}normalizeListElementNesting(){return Array.from(this.body.querySelectorAll(\"ul,ol\")).forEach((t=>{const e=t.previousElementSibling;e&&\"li\"===y(e)&&e.appendChild(t)})),this.body}elementIsRemovable(t){if((null==t?void 0:t.nodeType)===Node.ELEMENT_NODE)return this.elementIsForbidden(t)||this.elementIsntSerializable(t)}elementIsForbidden(t){return this.forbiddenElements.includes(y(t))}elementIsntSerializable(t){return\"false\"===t.getAttribute(\"data-trix-serialize\")&&!F(t)}}const _e=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";t=t.replace(/<\\/html[^>]*>[^]*$/i,\"</html>\");const e=document.implementation.createHTMLDocument(\"\");return e.documentElement.innerHTML=t,Array.from(e.head.querySelectorAll(\"style\")).forEach((t=>{e.body.appendChild(t)})),e.body},He=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=\"string\";return{string:t=Mt(t),attributes:e,type:i}},Je=(t,e)=>{try{return JSON.parse(t.getAttribute(\"data-trix-\".concat(e)))}catch(t){return{}}};class Ke extends U{static parse(t,e){const i=new this(t,e);return i.parse(),i}constructor(t){let{referenceElement:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.html=t,this.referenceElement=e,this.blocks=[],this.blockElements=[],this.processedElements=[]}getDocument(){return je.fromJSON(this.blocks)}parse(){try{this.createHiddenContainer();const t=ze.sanitize(this.html).getHTML();this.containerElement.innerHTML=t;const e=x(this.containerElement,{usingFilter:Ye});for(;e.nextNode();)this.processNode(e.currentNode);return this.translateBlockElementMarginsToNewlines()}finally{this.removeHiddenContainer()}}createHiddenContainer(){return this.referenceElement?(this.containerElement=this.referenceElement.cloneNode(!1),this.containerElement.removeAttribute(\"id\"),this.containerElement.setAttribute(\"data-trix-internal\",\"\"),this.containerElement.style.display=\"none\",this.referenceElement.parentNode.insertBefore(this.containerElement,this.referenceElement.nextSibling)):(this.containerElement=C({tagName:\"div\",style:{display:\"none\"}}),document.body.appendChild(this.containerElement))}removeHiddenContainer(){return A(this.containerElement)}processNode(t){switch(t.nodeType){case Node.TEXT_NODE:if(!this.isInsignificantTextNode(t))return this.appendBlockForTextNode(t),this.processTextNode(t);break;case Node.ELEMENT_NODE:return this.appendBlockForElement(t),this.processElement(t)}}appendBlockForTextNode(t){const e=t.parentNode;if(e===this.currentBlockElement&&this.isBlockElement(t.previousSibling))return this.appendStringWithAttributes(\"\\n\");if(e===this.containerElement||this.isBlockElement(e)){var i;const t=this.getBlockAttributes(e);et(t,null===(i=this.currentBlock)||void 0===i?void 0:i.attributes)||(this.currentBlock=this.appendBlockForAttributesWithElement(t,e),this.currentBlockElement=e)}}appendBlockForElement(t){const e=this.isBlockElement(t),i=b(this.currentBlockElement,t);if(e&&!this.isBlockElement(t.firstChild)){if(!this.isInsignificantTextNode(t.firstChild)||!this.isBlockElement(t.firstElementChild)){const e=this.getBlockAttributes(t);if(t.firstChild){if(i&&et(e,this.currentBlock.attributes))return this.appendStringWithAttributes(\"\\n\");this.currentBlock=this.appendBlockForAttributesWithElement(e,t),this.currentBlockElement=t}}}else if(this.currentBlockElement&&!i&&!e){const e=this.findParentBlockElement(t);if(e)return this.appendBlockForElement(e);this.currentBlock=this.appendEmptyBlock(),this.currentBlockElement=null}}findParentBlockElement(t){let{parentElement:e}=t;for(;e&&e!==this.containerElement;){if(this.isBlockElement(e)&&this.blockElements.includes(e))return e;e=e.parentElement}return null}processTextNode(t){let e=t.data;var i;Ge(t.parentNode)||(e=Wt(e),ti(null===(i=t.previousSibling)||void 0===i?void 0:i.textContent)&&(e=Qe(e)));return this.appendStringWithAttributes(e,this.getTextAttributes(t.parentNode))}processElement(t){let e;if(F(t)){if(e=Je(t,\"attachment\"),Object.keys(e).length){const i=this.getTextAttributes(t);this.appendAttachmentWithAttributes(e,i),t.innerHTML=\"\"}return this.processedElements.push(t)}switch(y(t)){case\"br\":return this.isExtraBR(t)||this.isBlockElement(t.nextSibling)||this.appendStringWithAttributes(\"\\n\",this.getTextAttributes(t)),this.processedElements.push(t);case\"img\":e={url:t.getAttribute(\"src\"),contentType:\"image\"};const i=(t=>{const e=t.getAttribute(\"width\"),i=t.getAttribute(\"height\"),n={};return e&&(n.width=parseInt(e,10)),i&&(n.height=parseInt(i,10)),n})(t);for(const t in i){const n=i[t];e[t]=n}return this.appendAttachmentWithAttributes(e,this.getTextAttributes(t)),this.processedElements.push(t);case\"tr\":if(this.needsTableSeparator(t))return this.appendStringWithAttributes(N.tableRowSeparator);break;case\"td\":if(this.needsTableSeparator(t))return this.appendStringWithAttributes(N.tableCellSeparator)}}appendBlockForAttributesWithElement(t,e){this.blockElements.push(e);const i=function(){return{text:[],attributes:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}}}(t);return this.blocks.push(i),i}appendEmptyBlock(){return this.appendBlockForAttributesWithElement([],null)}appendStringWithAttributes(t,e){return this.appendPiece(He(t,e))}appendAttachmentWithAttributes(t,e){return this.appendPiece(function(t){return{attachment:t,attributes:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},type:\"attachment\"}}(t,e))}appendPiece(t){return 0===this.blocks.length&&this.appendEmptyBlock(),this.blocks[this.blocks.length-1].text.push(t)}appendStringToTextAtIndex(t,e){const{text:i}=this.blocks[e],n=i[i.length-1];if(\"string\"!==(null==n?void 0:n.type))return i.push(He(t));n.string+=t}prependStringToTextAtIndex(t,e){const{text:i}=this.blocks[e],n=i[0];if(\"string\"!==(null==n?void 0:n.type))return i.unshift(He(t));n.string=t+n.string}getTextAttributes(t){let e;const i={};for(const n in O){const r=O[n];if(r.tagName&&p(t,{matchingSelector:r.tagName,untilNode:this.containerElement}))i[n]=!0;else if(r.parser){if(e=r.parser(t),e){let o=!1;for(const i of this.findBlockElementAncestors(t))if(r.parser(i)===e){o=!0;break}o||(i[n]=e)}}else r.styleProperty&&(e=t.style[r.styleProperty],e&&(i[n]=e))}if(F(t)){const n=Je(t,\"attributes\");for(const t in n)e=n[t],i[t]=e}return i}getBlockAttributes(t){const i=[];for(;t&&t!==this.containerElement;){for(const r in e){const o=e[r];var n;if(!1!==o.parse)if(y(t)===o.tagName)(null!==(n=o.test)&&void 0!==n&&n.call(o,t)||!o.test)&&(i.push(r),o.listAttribute&&i.push(o.listAttribute))}t=t.parentNode}return i.reverse()}findBlockElementAncestors(t){const e=[];for(;t&&t!==this.containerElement;){const i=y(t);E().includes(i)&&e.push(t),t=t.parentNode}return e}isBlockElement(t){if((null==t?void 0:t.nodeType)===Node.ELEMENT_NODE&&!F(t)&&!p(t,{matchingSelector:\"td\",untilNode:this.containerElement}))return E().includes(y(t))||\"block\"===window.getComputedStyle(t).display}isInsignificantTextNode(t){if((null==t?void 0:t.nodeType)!==Node.TEXT_NODE)return;if(!Ze(t.data))return;const{parentNode:e,previousSibling:i,nextSibling:n}=t;return $e(e.previousSibling)&&!this.isBlockElement(e.previousSibling)||Ge(e)?void 0:!i||this.isBlockElement(i)||!n||this.isBlockElement(n)}isExtraBR(t){return\"br\"===y(t)&&this.isBlockElement(t.parentNode)&&t.parentNode.lastChild===t}needsTableSeparator(t){if(N.removeBlankTableCells){var e;const i=null===(e=t.previousSibling)||void 0===e?void 0:e.textContent;return i&&/\\S/.test(i)}return t.previousSibling}translateBlockElementMarginsToNewlines(){const t=this.getMarginOfDefaultBlockElement();for(let e=0;e<this.blocks.length;e++){const i=this.getMarginOfBlockElementAtIndex(e);i&&(i.top>2*t.top&&this.prependStringToTextAtIndex(\"\\n\",e),i.bottom>2*t.bottom&&this.appendStringToTextAtIndex(\"\\n\",e))}}getMarginOfBlockElementAtIndex(t){const e=this.blockElements[t];if(e&&e.textContent&&!E().includes(y(e))&&!this.processedElements.includes(e))return Xe(e)}getMarginOfDefaultBlockElement(){const t=C(e.default.tagName);return this.containerElement.appendChild(t),Xe(t)}}const Ge=function(t){const{whiteSpace:e}=window.getComputedStyle(t);return[\"pre\",\"pre-wrap\",\"pre-line\"].includes(e)},$e=t=>t&&!ti(t.textContent),Xe=function(t){const e=window.getComputedStyle(t);if(\"block\"===e.display)return{top:parseInt(e.marginTop),bottom:parseInt(e.marginBottom)}},Ye=function(t){return\"style\"===y(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},Qe=t=>t.replace(new RegExp(\"^\".concat(jt.source,\"+\")),\"\"),Ze=t=>new RegExp(\"^\".concat(jt.source,\"*$\")).test(t),ti=t=>/\\s$/.test(t),ei=[\"contenteditable\",\"data-trix-id\",\"data-trix-store-key\",\"data-trix-mutable\",\"data-trix-placeholder\",\"tabindex\"],ii=\"[\".concat(\"data-trix-serialized-attributes\",\"]\"),ni=new RegExp(\"\\x3c!--block--\\x3e\",\"g\"),ri={\"application/json\":function(t){let e;if(t instanceof je)e=t;else{if(!(t instanceof HTMLElement))throw new Error(\"unserializable object\");e=Ke.parse(t.innerHTML).getDocument()}return e.toSerializableDocument().toJSONString()},\"text/html\":function(t){let e;if(t instanceof je)e=ue.render(t);else{if(!(t instanceof HTMLElement))throw new Error(\"unserializable object\");e=t.cloneNode(!0)}return Array.from(e.querySelectorAll(\"[data-trix-serialize=false]\")).forEach((t=>{A(t)})),ei.forEach((t=>{Array.from(e.querySelectorAll(\"[\".concat(t,\"]\"))).forEach((e=>{e.removeAttribute(t)}))})),Array.from(e.querySelectorAll(ii)).forEach((t=>{try{const e=JSON.parse(t.getAttribute(\"data-trix-serialized-attributes\"));t.removeAttribute(\"data-trix-serialized-attributes\");for(const i in e){const n=e[i];t.setAttribute(i,n)}}catch(t){}})),e.innerHTML.replace(ni,\"\")}};var oi=Object.freeze({__proto__:null});class si extends U{constructor(t,e){super(...arguments),this.attachmentManager=t,this.attachment=e,this.id=this.attachment.id,this.file=this.attachment.file}remove(){return this.attachmentManager.requestRemovalOfAttachment(this.attachment)}}si.proxyMethod(\"attachment.getAttribute\"),si.proxyMethod(\"attachment.hasAttribute\"),si.proxyMethod(\"attachment.setAttribute\"),si.proxyMethod(\"attachment.getAttributes\"),si.proxyMethod(\"attachment.setAttributes\"),si.proxyMethod(\"attachment.isPending\"),si.proxyMethod(\"attachment.isPreviewable\"),si.proxyMethod(\"attachment.getURL\"),si.proxyMethod(\"attachment.getHref\"),si.proxyMethod(\"attachment.getFilename\"),si.proxyMethod(\"attachment.getFilesize\"),si.proxyMethod(\"attachment.getFormattedFilesize\"),si.proxyMethod(\"attachment.getExtension\"),si.proxyMethod(\"attachment.getContentType\"),si.proxyMethod(\"attachment.getFile\"),si.proxyMethod(\"attachment.setFile\"),si.proxyMethod(\"attachment.releaseFile\"),si.proxyMethod(\"attachment.getUploadProgress\"),si.proxyMethod(\"attachment.setUploadProgress\");class ai extends U{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.managedAttachments={},Array.from(t).forEach((t=>{this.manageAttachment(t)}))}getAttachments(){const t=[];for(const e in this.managedAttachments){const i=this.managedAttachments[e];t.push(i)}return t}manageAttachment(t){return this.managedAttachments[t.id]||(this.managedAttachments[t.id]=new si(this,t)),this.managedAttachments[t.id]}attachmentIsManaged(t){return t.id in this.managedAttachments}requestRemovalOfAttachment(t){var e,i;if(this.attachmentIsManaged(t))return null===(e=this.delegate)||void 0===e||null===(i=e.attachmentManagerDidRequestRemovalOfAttachment)||void 0===i?void 0:i.call(e,t)}unmanageAttachment(t){const e=this.managedAttachments[t.id];return delete this.managedAttachments[t.id],e}}class li{constructor(t){this.composition=t,this.document=this.composition.document;const e=this.composition.getSelectedRange();this.startPosition=e[0],this.endPosition=e[1],this.startLocation=this.document.locationFromPosition(this.startPosition),this.endLocation=this.document.locationFromPosition(this.endPosition),this.block=this.document.getBlockAtIndex(this.endLocation.index),this.breaksOnReturn=this.block.breaksOnReturn(),this.previousCharacter=this.block.text.getStringAtPosition(this.endLocation.offset-1),this.nextCharacter=this.block.text.getStringAtPosition(this.endLocation.offset)}shouldInsertBlockBreak(){return this.block.hasAttributes()&&this.block.isListItem()&&!this.block.isEmpty()?0!==this.startLocation.offset:this.breaksOnReturn&&\"\\n\"!==this.nextCharacter}shouldBreakFormattedBlock(){return this.block.hasAttributes()&&!this.block.isListItem()&&(this.breaksOnReturn&&\"\\n\"===this.nextCharacter||\"\\n\"===this.previousCharacter)}shouldDecreaseListLevel(){return this.block.hasAttributes()&&this.block.isListItem()&&this.block.isEmpty()}shouldPrependListItem(){return this.block.isListItem()&&0===this.startLocation.offset&&!this.block.isEmpty()}shouldRemoveLastBlockAttribute(){return this.block.hasAttributes()&&!this.block.isListItem()&&this.block.isEmpty()}}class ci extends U{constructor(){super(...arguments),this.document=new je,this.attachments=[],this.currentAttributes={},this.revision=0}setDocument(t){var e,i;if(!t.isEqualTo(this.document))return this.document=t,this.refreshAttachments(),this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidChangeDocument)||void 0===i?void 0:i.call(e,t)}getSnapshot(){return{document:this.document,selectedRange:this.getSelectedRange()}}loadSnapshot(t){var e,i,n,r;let{document:o,selectedRange:s}=t;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionWillLoadSnapshot)||void 0===i||i.call(e),this.setDocument(null!=o?o:new je),this.setSelection(null!=s?s:[0,0]),null===(n=this.delegate)||void 0===n||null===(r=n.compositionDidLoadSnapshot)||void 0===r?void 0:r.call(n)}insertText(t){let{updatePosition:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{updatePosition:!0};const i=this.getSelectedRange();this.setDocument(this.document.insertTextAtRange(t,i));const n=i[0],r=n+t.getLength();return e&&this.setSelection(r),this.notifyDelegateOfInsertionAtRange([n,r])}insertBlock(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new De;const e=new je([t]);return this.insertDocument(e)}insertDocument(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new je;const e=this.getSelectedRange();this.setDocument(this.document.insertDocumentAtRange(t,e));const i=e[0],n=i+t.getLength();return this.setSelection(n),this.notifyDelegateOfInsertionAtRange([i,n])}insertString(t,e){const i=this.getCurrentTextAttributes(),n=Le.textForStringWithAttributes(t,i);return this.insertText(n,e)}insertBlockBreak(){const t=this.getSelectedRange();this.setDocument(this.document.insertBlockBreakAtRange(t));const e=t[0],i=e+1;return this.setSelection(i),this.notifyDelegateOfInsertionAtRange([e,i])}insertLineBreak(){const t=new li(this);if(t.shouldDecreaseListLevel())return this.decreaseListLevel(),this.setSelection(t.startPosition);if(t.shouldPrependListItem()){const e=new je([t.block.copyWithoutText()]);return this.insertDocument(e)}return t.shouldInsertBlockBreak()?this.insertBlockBreak():t.shouldRemoveLastBlockAttribute()?this.removeLastBlockAttribute():t.shouldBreakFormattedBlock()?this.breakFormattedBlock(t):this.insertString(\"\\n\")}insertHTML(t){const e=Ke.parse(t).getDocument(),i=this.getSelectedRange();this.setDocument(this.document.mergeDocumentAtRange(e,i));const n=i[0],r=n+e.getLength()-1;return this.setSelection(r),this.notifyDelegateOfInsertionAtRange([n,r])}replaceHTML(t){const e=Ke.parse(t).getDocument().copyUsingObjectsFromDocument(this.document),i=this.getLocationRange({strict:!1}),n=this.document.rangeFromLocationRange(i);return this.setDocument(e),this.setSelection(n)}insertFile(t){return this.insertFiles([t])}insertFiles(t){const e=[];return Array.from(t).forEach((t=>{var i;if(null!==(i=this.delegate)&&void 0!==i&&i.compositionShouldAcceptFile(t)){const i=xe.attachmentForFile(t);e.push(i)}})),this.insertAttachments(e)}insertAttachment(t){return this.insertAttachments([t])}insertAttachments(e){let i=new Le;return Array.from(e).forEach((e=>{var n;const r=e.getType(),o=null===(n=t[r])||void 0===n?void 0:n.presentation,s=this.getCurrentTextAttributes();o&&(s.presentation=o);const a=Le.textForAttachmentWithAttributes(e,s);i=i.appendText(a)})),this.insertText(i)}shouldManageDeletingInDirection(t){const e=this.getLocationRange();if(St(e)){if(\"backward\"===t&&0===e[0].offset)return!0;if(this.shouldManageMovingCursorInDirection(t))return!0}else if(e[0].index!==e[1].index)return!0;return!1}deleteInDirection(t){let e,i,n,{length:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=this.getLocationRange();let s=this.getSelectedRange();const a=St(s);if(a?i=\"backward\"===t&&0===o[0].offset:n=o[0].index!==o[1].index,i&&this.canDecreaseBlockAttributeLevel()){const t=this.getBlock();if(t.isListItem()?this.decreaseListLevel():this.decreaseBlockAttributeLevel(),this.setSelection(s[0]),t.isEmpty())return!1}return a&&(s=this.getExpandedRangeInDirection(t,{length:r}),\"backward\"===t&&(e=this.getAttachmentAtRange(s))),e?(this.editAttachment(e),!1):(this.setDocument(this.document.removeTextAtRange(s)),this.setSelection(s[0]),!i&&!n&&void 0)}moveTextFromRange(t){const[e]=Array.from(this.getSelectedRange());return this.setDocument(this.document.moveTextFromRangeToPosition(t,e)),this.setSelection(e)}removeAttachment(t){const e=this.document.getRangeOfAttachment(t);if(e)return this.stopEditingAttachment(),this.setDocument(this.document.removeTextAtRange(e)),this.setSelection(e[0])}removeLastBlockAttribute(){const[t,e]=Array.from(this.getSelectedRange()),i=this.document.getBlockAtPosition(e);return this.removeCurrentAttribute(i.getLastAttribute()),this.setSelection(t)}insertPlaceholder(){return this.placeholderPosition=this.getPosition(),this.insertString(\" \")}selectPlaceholder(){if(null!=this.placeholderPosition)return this.setSelectedRange([this.placeholderPosition,this.placeholderPosition+\" \".length]),this.getSelectedRange()}forgetPlaceholder(){this.placeholderPosition=null}hasCurrentAttribute(t){const e=this.currentAttributes[t];return null!=e&&!1!==e}toggleCurrentAttribute(t){const e=!this.currentAttributes[t];return e?this.setCurrentAttribute(t,e):this.removeCurrentAttribute(t)}canSetCurrentAttribute(t){return ht(t)?this.canSetCurrentBlockAttribute(t):this.canSetCurrentTextAttribute(t)}canSetCurrentTextAttribute(t){const e=this.getSelectedDocument();if(e){for(const t of Array.from(e.getAttachments()))if(!t.hasContent())return!1;return!0}}canSetCurrentBlockAttribute(t){const e=this.getBlock();if(e)return!e.isTerminalBlock()}setCurrentAttribute(t,e){return ht(t)?this.setBlockAttribute(t,e):(this.setTextAttribute(t,e),this.currentAttributes[t]=e,this.notifyDelegateOfCurrentAttributesChange())}setTextAttribute(t,e){const i=this.getSelectedRange();if(!i)return;const[n,r]=Array.from(i);if(n!==r)return this.setDocument(this.document.addAttributeAtRange(t,e,i));if(\"href\"===t){const t=Le.textForStringWithAttributes(e,{href:e});return this.insertText(t)}}setBlockAttribute(t,e){const i=this.getSelectedRange();if(this.canSetCurrentAttribute(t))return this.setDocument(this.document.applyBlockAttributeAtRange(t,e,i)),this.setSelection(i)}removeCurrentAttribute(t){return ht(t)?(this.removeBlockAttribute(t),this.updateCurrentAttributes()):(this.removeTextAttribute(t),delete this.currentAttributes[t],this.notifyDelegateOfCurrentAttributesChange())}removeTextAttribute(t){const e=this.getSelectedRange();if(e)return this.setDocument(this.document.removeAttributeAtRange(t,e))}removeBlockAttribute(t){const e=this.getSelectedRange();if(e)return this.setDocument(this.document.removeAttributeAtRange(t,e))}canDecreaseNestingLevel(){var t;return(null===(t=this.getBlock())||void 0===t?void 0:t.getNestingLevel())>0}canIncreaseNestingLevel(){var t;const e=this.getBlock();if(e){if(null===(t=ht(e.getLastNestableAttribute()))||void 0===t||!t.listAttribute)return e.getNestingLevel()>0;{const t=this.getPreviousBlock();if(t)return function(){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return et((arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).slice(0,t.length),t)}(t.getListItemAttributes(),e.getListItemAttributes())}}}decreaseNestingLevel(){const t=this.getBlock();if(t)return this.setDocument(this.document.replaceBlock(t,t.decreaseNestingLevel()))}increaseNestingLevel(){const t=this.getBlock();if(t)return this.setDocument(this.document.replaceBlock(t,t.increaseNestingLevel()))}canDecreaseBlockAttributeLevel(){var t;return(null===(t=this.getBlock())||void 0===t?void 0:t.getAttributeLevel())>0}decreaseBlockAttributeLevel(){var t;const e=null===(t=this.getBlock())||void 0===t?void 0:t.getLastAttribute();if(e)return this.removeCurrentAttribute(e)}decreaseListLevel(){let[t]=Array.from(this.getSelectedRange());const{index:e}=this.document.locationFromPosition(t);let i=e;const n=this.getBlock().getAttributeLevel();let r=this.document.getBlockAtIndex(i+1);for(;r&&r.isListItem()&&!(r.getAttributeLevel()<=n);)i++,r=this.document.getBlockAtIndex(i+1);t=this.document.positionFromLocation({index:e,offset:0});const o=this.document.positionFromLocation({index:i,offset:0});return this.setDocument(this.document.removeLastListAttributeAtRange([t,o]))}updateCurrentAttributes(){const t=this.getSelectedRange({ignoreLock:!0});if(t){const e=this.document.getCommonAttributesAtRange(t);if(Array.from(ct()).forEach((t=>{e[t]||this.canSetCurrentAttribute(t)||(e[t]=!1)})),!Rt(e,this.currentAttributes))return this.currentAttributes=e,this.notifyDelegateOfCurrentAttributesChange()}}getCurrentAttributes(){return c.call({},this.currentAttributes)}getCurrentTextAttributes(){const t={};for(const e in this.currentAttributes){const i=this.currentAttributes[e];!1!==i&&dt(e)&&(t[e]=i)}return t}freezeSelection(){return this.setCurrentAttribute(\"frozen\",!0)}thawSelection(){return this.removeCurrentAttribute(\"frozen\")}hasFrozenSelection(){return this.hasCurrentAttribute(\"frozen\")}setSelection(t){var e;const i=this.document.locationRangeFromRange(t);return null===(e=this.delegate)||void 0===e?void 0:e.compositionDidRequestChangingSelectionToLocationRange(i)}getSelectedRange(){const t=this.getLocationRange();if(t)return this.document.rangeFromLocationRange(t)}setSelectedRange(t){const e=this.document.locationRangeFromRange(t);return this.getSelectionManager().setLocationRange(e)}getPosition(){const t=this.getLocationRange();if(t)return this.document.positionFromLocation(t[0])}getLocationRange(t){return this.targetLocationRange?this.targetLocationRange:this.getSelectionManager().getLocationRange(t)||Et({index:0,offset:0})}withTargetLocationRange(t,e){let i;this.targetLocationRange=t;try{i=e()}finally{this.targetLocationRange=null}return i}withTargetRange(t,e){const i=this.document.locationRangeFromRange(t);return this.withTargetLocationRange(i,e)}withTargetDOMRange(t,e){const i=this.createLocationRangeFromDOMRange(t,{strict:!1});return this.withTargetLocationRange(i,e)}getExpandedRangeInDirection(t){let{length:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[i,n]=Array.from(this.getSelectedRange());return\"backward\"===t?e?i-=e:i=this.translateUTF16PositionFromOffset(i,-1):e?n+=e:n=this.translateUTF16PositionFromOffset(n,1),Et([i,n])}shouldManageMovingCursorInDirection(t){if(this.editingAttachment)return!0;const e=this.getExpandedRangeInDirection(t);return null!=this.getAttachmentAtRange(e)}moveCursorInDirection(t){let e,i;if(this.editingAttachment)i=this.document.getRangeOfAttachment(this.editingAttachment);else{const n=this.getSelectedRange();i=this.getExpandedRangeInDirection(t),e=!kt(n,i)}if(\"backward\"===t?this.setSelectedRange(i[0]):this.setSelectedRange(i[1]),e){const t=this.getAttachmentAtRange(i);if(t)return this.editAttachment(t)}}expandSelectionInDirection(t){let{length:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=this.getExpandedRangeInDirection(t,{length:e});return this.setSelectedRange(i)}expandSelectionForEditing(){if(this.hasCurrentAttribute(\"href\"))return this.expandSelectionAroundCommonAttribute(\"href\")}expandSelectionAroundCommonAttribute(t){const e=this.getPosition(),i=this.document.getRangeOfCommonAttributeAtPosition(t,e);return this.setSelectedRange(i)}selectionContainsAttachments(){var t;return(null===(t=this.getSelectedAttachments())||void 0===t?void 0:t.length)>0}selectionIsInCursorTarget(){return this.editingAttachment||this.positionIsCursorTarget(this.getPosition())}positionIsCursorTarget(t){const e=this.document.locationFromPosition(t);if(e)return this.locationIsCursorTarget(e)}positionIsBlockBreak(t){var e;return null===(e=this.document.getPieceAtPosition(t))||void 0===e?void 0:e.isBlockBreak()}getSelectedDocument(){const t=this.getSelectedRange();if(t)return this.document.getDocumentAtRange(t)}getSelectedAttachments(){var t;return null===(t=this.getSelectedDocument())||void 0===t?void 0:t.getAttachments()}getAttachments(){return this.attachments.slice(0)}refreshAttachments(){const t=this.document.getAttachments(),{added:e,removed:i}=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const i=[],n=[],r=new Set;t.forEach((t=>{r.add(t)}));const o=new Set;return e.forEach((t=>{o.add(t),r.has(t)||i.push(t)})),t.forEach((t=>{o.has(t)||n.push(t)})),{added:i,removed:n}}(this.attachments,t);return this.attachments=t,Array.from(i).forEach((t=>{var e,i;t.delegate=null,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidRemoveAttachment)||void 0===i||i.call(e,t)})),(()=>{const t=[];return Array.from(e).forEach((e=>{var i,n;e.delegate=this,t.push(null===(i=this.delegate)||void 0===i||null===(n=i.compositionDidAddAttachment)||void 0===n?void 0:n.call(i,e))})),t})()}attachmentDidChangeAttributes(t){var e,i;return this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidEditAttachment)||void 0===i?void 0:i.call(e,t)}attachmentDidChangePreviewURL(t){var e,i;return this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidChangeAttachmentPreviewURL)||void 0===i?void 0:i.call(e,t)}editAttachment(t,e){var i,n;if(t!==this.editingAttachment)return this.stopEditingAttachment(),this.editingAttachment=t,null===(i=this.delegate)||void 0===i||null===(n=i.compositionDidStartEditingAttachment)||void 0===n?void 0:n.call(i,this.editingAttachment,e)}stopEditingAttachment(){var t,e;this.editingAttachment&&(null===(t=this.delegate)||void 0===t||null===(e=t.compositionDidStopEditingAttachment)||void 0===e||e.call(t,this.editingAttachment),this.editingAttachment=null)}updateAttributesForAttachment(t,e){return this.setDocument(this.document.updateAttributesForAttachment(t,e))}removeAttributeForAttachment(t,e){return this.setDocument(this.document.removeAttributeForAttachment(t,e))}breakFormattedBlock(t){let{document:e}=t;const{block:i}=t;let n=t.startPosition,r=[n-1,n];i.getBlockBreakPosition()===t.startLocation.offset?(i.breaksOnReturn()&&\"\\n\"===t.nextCharacter?n+=1:e=e.removeTextAtRange(r),r=[n,n]):\"\\n\"===t.nextCharacter?\"\\n\"===t.previousCharacter?r=[n-1,n+1]:(r=[n,n+1],n+=1):t.startLocation.offset-1!=0&&(n+=1);const o=new je([i.removeLastAttribute().copyWithoutText()]);return this.setDocument(e.insertDocumentAtRange(o,r)),this.setSelection(n)}getPreviousBlock(){const t=this.getLocationRange();if(t){const{index:e}=t[0];if(e>0)return this.document.getBlockAtIndex(e-1)}}getBlock(){const t=this.getLocationRange();if(t)return this.document.getBlockAtIndex(t[0].index)}getAttachmentAtRange(t){const e=this.document.getDocumentAtRange(t);if(e.toString()===\"\".concat(\"\",\"\\n\"))return e.getAttachments()[0]}notifyDelegateOfCurrentAttributesChange(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.compositionDidChangeCurrentAttributes)||void 0===e?void 0:e.call(t,this.currentAttributes)}notifyDelegateOfInsertionAtRange(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidPerformInsertionAtRange)||void 0===i?void 0:i.call(e,t)}translateUTF16PositionFromOffset(t,e){const i=this.document.toUTF16String(),n=i.offsetFromUCS2Offset(t);return i.offsetToUCS2Offset(n+e)}}ci.proxyMethod(\"getSelectionManager().getPointRange\"),ci.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"),ci.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"),ci.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"),ci.proxyMethod(\"getSelectionManager().selectionIsExpanded\"),ci.proxyMethod(\"delegate?.getSelectionManager\");class hi extends U{constructor(t){super(...arguments),this.composition=t,this.undoEntries=[],this.redoEntries=[]}recordUndoEntry(t){let{context:e,consolidatable:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=this.undoEntries.slice(-1)[0];if(!i||!ui(n,t,e)){const i=this.createEntry({description:t,context:e});this.undoEntries.push(i),this.redoEntries=[]}}undo(){const t=this.undoEntries.pop();if(t){const e=this.createEntry(t);return this.redoEntries.push(e),this.composition.loadSnapshot(t.snapshot)}}redo(){const t=this.redoEntries.pop();if(t){const e=this.createEntry(t);return this.undoEntries.push(e),this.composition.loadSnapshot(t.snapshot)}}canUndo(){return this.undoEntries.length>0}canRedo(){return this.redoEntries.length>0}createEntry(){let{description:t,context:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{description:null==t?void 0:t.toString(),context:JSON.stringify(e),snapshot:this.composition.getSnapshot()}}}const ui=(t,e,i)=>(null==t?void 0:t.description)===(null==e?void 0:e.toString())&&(null==t?void 0:t.context)===JSON.stringify(i);class di{constructor(t){this.document=t.document,this.selectedRange=t.selectedRange}perform(){return this.removeBlockAttribute(),this.applyBlockAttribute()}getSnapshot(){return{document:this.document,selectedRange:this.selectedRange}}removeBlockAttribute(){return this.findRangesOfBlocks().map((t=>this.document=this.document.removeAttributeAtRange(\"attachmentGallery\",t)))}applyBlockAttribute(){let t=0;this.findRangesOfPieces().forEach((e=>{e[1]-e[0]>1&&(e[0]+=t,e[1]+=t,\"\\n\"!==this.document.getCharacterAtPosition(e[1])&&(this.document=this.document.insertBlockBreakAtRange(e[1]),e[1]<this.selectedRange[1]&&this.moveSelectedRangeForward(),e[1]++,t++),0!==e[0]&&\"\\n\"!==this.document.getCharacterAtPosition(e[0]-1)&&(this.document=this.document.insertBlockBreakAtRange(e[0]),e[0]<this.selectedRange[0]&&this.moveSelectedRangeForward(),e[0]++,t++),this.document=this.document.applyBlockAttributeAtRange(\"attachmentGallery\",!0,e))}))}findRangesOfBlocks(){return this.document.findRangesForBlockAttribute(\"attachmentGallery\")}findRangesOfPieces(){return this.document.findRangesForTextAttribute(\"presentation\",{withValue:\"gallery\"})}moveSelectedRangeForward(){this.selectedRange[0]+=1,this.selectedRange[1]+=1}}const gi=function(t){const e=new di(t);return e.perform(),e.getSnapshot()},mi=[gi];class pi{constructor(t,e,i){this.insertFiles=this.insertFiles.bind(this),this.composition=t,this.selectionManager=e,this.element=i,this.undoManager=new hi(this.composition),this.filters=mi.slice(0)}loadDocument(t){return this.loadSnapshot({document:t,selectedRange:[0,0]})}loadHTML(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";const e=Ke.parse(t,{referenceElement:this.element}).getDocument();return this.loadDocument(e)}loadJSON(t){let{document:e,selectedRange:i}=t;return e=je.fromJSON(e),this.loadSnapshot({document:e,selectedRange:i})}loadSnapshot(t){return this.undoManager=new hi(this.composition),this.composition.loadSnapshot(t)}getDocument(){return this.composition.document}getSelectedDocument(){return this.composition.getSelectedDocument()}getSnapshot(){return this.composition.getSnapshot()}toJSON(){return this.getSnapshot()}deleteInDirection(t){return this.composition.deleteInDirection(t)}insertAttachment(t){return this.composition.insertAttachment(t)}insertAttachments(t){return this.composition.insertAttachments(t)}insertDocument(t){return this.composition.insertDocument(t)}insertFile(t){return this.composition.insertFile(t)}insertFiles(t){return this.composition.insertFiles(t)}insertHTML(t){return this.composition.insertHTML(t)}insertString(t){return this.composition.insertString(t)}insertText(t){return this.composition.insertText(t)}insertLineBreak(){return this.composition.insertLineBreak()}getSelectedRange(){return this.composition.getSelectedRange()}getPosition(){return this.composition.getPosition()}getClientRectAtPosition(t){const e=this.getDocument().locationRangeFromRange([t,t+1]);return this.selectionManager.getClientRectAtLocationRange(e)}expandSelectionInDirection(t){return this.composition.expandSelectionInDirection(t)}moveCursorInDirection(t){return this.composition.moveCursorInDirection(t)}setSelectedRange(t){return this.composition.setSelectedRange(t)}activateAttribute(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this.composition.setCurrentAttribute(t,e)}attributeIsActive(t){return this.composition.hasCurrentAttribute(t)}canActivateAttribute(t){return this.composition.canSetCurrentAttribute(t)}deactivateAttribute(t){return this.composition.removeCurrentAttribute(t)}canDecreaseNestingLevel(){return this.composition.canDecreaseNestingLevel()}canIncreaseNestingLevel(){return this.composition.canIncreaseNestingLevel()}decreaseNestingLevel(){if(this.canDecreaseNestingLevel())return this.composition.decreaseNestingLevel()}increaseNestingLevel(){if(this.canIncreaseNestingLevel())return this.composition.increaseNestingLevel()}canRedo(){return this.undoManager.canRedo()}canUndo(){return this.undoManager.canUndo()}recordUndoEntry(t){let{context:e,consolidatable:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.undoManager.recordUndoEntry(t,{context:e,consolidatable:i})}redo(){if(this.canRedo())return this.undoManager.redo()}undo(){if(this.canUndo())return this.undoManager.undo()}}class fi{constructor(t){this.element=t}findLocationFromContainerAndOffset(t,e){let{strict:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{strict:!0},n=0,r=!1;const o={index:0,offset:0},s=this.findAttachmentElementParentForNode(t);s&&(t=s.parentNode,e=v(s));const a=x(this.element,{usingFilter:xi});for(;a.nextNode();){const s=a.currentNode;if(s===t&&I(t)){T(s)||(o.offset+=e);break}if(s.parentNode===t){if(n++===e)break}else if(!b(t,s)&&n>0)break;L(s,{strict:i})?(r&&o.index++,o.offset=0,r=!0):o.offset+=bi(s)}return o}findContainerAndOffsetFromLocation(t){let e,i;if(0===t.index&&0===t.offset){for(e=this.element,i=0;e.firstChild;)if(e=e.firstChild,S(e)){i=1;break}return[e,i]}let[n,r]=this.findNodeAndOffsetFromLocation(t);if(n){if(I(n))0===bi(n)?(e=n.parentNode.parentNode,i=v(n.parentNode),T(n,{name:\"right\"})&&i++):(e=n,i=t.offset-r);else{if(e=n.parentNode,!L(n.previousSibling)&&!S(e))for(;n===e.lastChild&&(n=e,e=e.parentNode,!S(e)););i=v(n),0!==t.offset&&i++}return[e,i]}}findNodeAndOffsetFromLocation(t){let e,i,n=0;for(const r of this.getSignificantNodesForIndex(t.index)){const o=bi(r);if(t.offset<=n+o)if(I(r)){if(e=r,i=n,t.offset===i&&T(e))break}else e||(e=r,i=n);if(n+=o,n>t.offset)break}return[e,i]}findAttachmentElementParentForNode(t){for(;t&&t!==this.element;){if(F(t))return t;t=t.parentNode}}getSignificantNodesForIndex(t){const e=[],i=x(this.element,{usingFilter:vi});let n=!1;for(;i.nextNode();){const o=i.currentNode;var r;if(D(o)){if(null!=r?r++:r=0,r===t)n=!0;else if(n)break}else n&&e.push(o)}return e}}const bi=function(t){if(t.nodeType===Node.TEXT_NODE){if(T(t))return 0;return t.textContent.length}return\"br\"===y(t)||F(t)?1:0},vi=function(t){return Ai(t)===NodeFilter.FILTER_ACCEPT?xi(t):NodeFilter.FILTER_REJECT},Ai=function(t){return B(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},xi=function(t){return F(t.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT};class yi{createDOMRangeFromPoint(t){let e,{x:i,y:n}=t;if(document.caretPositionFromPoint){const{offsetNode:t,offset:r}=document.caretPositionFromPoint(i,n);return e=document.createRange(),e.setStart(t,r),e}if(document.caretRangeFromPoint)return document.caretRangeFromPoint(i,n);if(document.body.createTextRange){const t=It();try{const t=document.body.createTextRange();t.moveToPoint(i,n),t.select()}catch(t){}return e=It(),Pt(t),e}}getClientRectsForDOMRange(t){const e=Array.from(t.getClientRects());return[e[0],e[e.length-1]]}}class Ci extends U{constructor(t){super(...arguments),this.didMouseDown=this.didMouseDown.bind(this),this.selectionDidChange=this.selectionDidChange.bind(this),this.element=t,this.locationMapper=new fi(this.element),this.pointMapper=new yi,this.lockCount=0,d(\"mousedown\",{onElement:this.element,withCallback:this.didMouseDown})}getLocationRange(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return!1===t.strict?this.createLocationRangeFromDOMRange(It()):t.ignoreLock?this.currentLocationRange:this.lockedLocationRange?this.lockedLocationRange:this.currentLocationRange}setLocationRange(t){if(this.lockedLocationRange)return;t=Et(t);const e=this.createDOMRangeFromLocationRange(t);e&&(Pt(e),this.updateCurrentLocationRange(t))}setLocationRangeFromPointRange(t){t=Et(t);const e=this.getLocationAtPoint(t[0]),i=this.getLocationAtPoint(t[1]);this.setLocationRange([e,i])}getClientRectAtLocationRange(t){const e=this.createDOMRangeFromLocationRange(t);if(e)return this.getClientRectsForDOMRange(e)[1]}locationIsCursorTarget(t){const e=Array.from(this.findNodeAndOffsetFromLocation(t))[0];return T(e)}lock(){0==this.lockCount++&&(this.updateCurrentLocationRange(),this.lockedLocationRange=this.getLocationRange())}unlock(){if(0==--this.lockCount){const{lockedLocationRange:t}=this;if(this.lockedLocationRange=null,null!=t)return this.setLocationRange(t)}}clearSelection(){var t;return null===(t=Bt())||void 0===t?void 0:t.removeAllRanges()}selectionIsCollapsed(){var t;return!0===(null===(t=It())||void 0===t?void 0:t.collapsed)}selectionIsExpanded(){return!this.selectionIsCollapsed()}createLocationRangeFromDOMRange(t,e){if(null==t||!this.domRangeWithinElement(t))return;const i=this.findLocationFromContainerAndOffset(t.startContainer,t.startOffset,e);if(!i)return;const n=t.collapsed?void 0:this.findLocationFromContainerAndOffset(t.endContainer,t.endOffset,e);return Et([i,n])}didMouseDown(){return this.pauseTemporarily()}pauseTemporarily(){let t;this.paused=!0;const e=()=>{if(this.paused=!1,clearTimeout(i),Array.from(t).forEach((t=>{t.destroy()})),b(document,this.element))return this.selectionDidChange()},i=setTimeout(e,200);t=[\"mousemove\",\"keydown\"].map((t=>d(t,{onElement:document,withCallback:e})))}selectionDidChange(){if(!this.paused&&!f(this.element))return this.updateCurrentLocationRange()}updateCurrentLocationRange(t){var e,i;if((null!=t?t:t=this.createLocationRangeFromDOMRange(It()))&&!kt(t,this.currentLocationRange))return this.currentLocationRange=t,null===(e=this.delegate)||void 0===e||null===(i=e.locationRangeDidChange)||void 0===i?void 0:i.call(e,this.currentLocationRange.slice(0))}createDOMRangeFromLocationRange(t){const e=this.findContainerAndOffsetFromLocation(t[0]),i=St(t)?e:this.findContainerAndOffsetFromLocation(t[1])||e;if(null!=e&&null!=i){const t=document.createRange();return t.setStart(...Array.from(e||[])),t.setEnd(...Array.from(i||[])),t}}getLocationAtPoint(t){const e=this.createDOMRangeFromPoint(t);var i;if(e)return null===(i=this.createLocationRangeFromDOMRange(e))||void 0===i?void 0:i[0]}domRangeWithinElement(t){return t.collapsed?b(this.element,t.startContainer):b(this.element,t.startContainer)&&b(this.element,t.endContainer)}}Ci.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"),Ci.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"),Ci.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"),Ci.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"),Ci.proxyMethod(\"pointMapper.getClientRectsForDOMRange\");var Ri=Object.freeze({__proto__:null,Attachment:xe,AttachmentManager:ai,AttachmentPiece:ye,Block:De,Composition:ci,Document:je,Editor:pi,HTMLParser:Ke,HTMLSanitizer:ze,LineBreakInsertion:li,LocationMapper:fi,ManagedAttachment:si,Piece:ve,PointMapper:yi,SelectionManager:Ci,SplittableList:Re,StringPiece:Ce,Text:Le,UndoManager:hi}),Ei=Object.freeze({__proto__:null});const{lang:Si,css:ki,keyNames:Li}=W,Di=function(t){return function(){const e=t.apply(this,arguments);e.do(),this.undos||(this.undos=[]),this.undos.push(e.undo)}};class wi extends U{constructor(t,e,i){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};super(...arguments),be(this,\"makeElementMutable\",Di((()=>({do:()=>{this.element.dataset.trixMutable=!0},undo:()=>delete this.element.dataset.trixMutable})))),be(this,\"addToolbar\",Di((()=>{const t=C({tagName:\"div\",className:ki.attachmentToolbar,data:{trixMutable:!0},childNodes:C({tagName:\"div\",className:\"trix-button-row\",childNodes:C({tagName:\"span\",className:\"trix-button-group trix-button-group--actions\",childNodes:C({tagName:\"button\",className:\"trix-button trix-button--remove\",textContent:Si.remove,attributes:{title:Si.remove},data:{trixAction:\"remove\"}})})})});return this.attachment.isPreviewable()&&t.appendChild(C({tagName:\"div\",className:ki.attachmentMetadataContainer,childNodes:C({tagName:\"span\",className:ki.attachmentMetadata,childNodes:[C({tagName:\"span\",className:ki.attachmentName,textContent:this.attachment.getFilename(),attributes:{title:this.attachment.getFilename()}}),C({tagName:\"span\",className:ki.attachmentSize,textContent:this.attachment.getFormattedFilesize()})]})})),d(\"click\",{onElement:t,withCallback:this.didClickToolbar}),d(\"click\",{onElement:t,matchingSelector:\"[data-trix-action]\",withCallback:this.didClickActionButton}),g(\"trix-attachment-before-toolbar\",{onElement:this.element,attributes:{toolbar:t,attachment:this.attachment}}),{do:()=>this.element.appendChild(t),undo:()=>A(t)}}))),be(this,\"installCaptionEditor\",Di((()=>{const t=C({tagName:\"textarea\",className:ki.attachmentCaptionEditor,attributes:{placeholder:Si.captionPlaceholder},data:{trixMutable:!0}});t.value=this.attachmentPiece.getCaption();const e=t.cloneNode();e.classList.add(\"trix-autoresize-clone\"),e.tabIndex=-1;const i=function(){e.value=t.value,t.style.height=e.scrollHeight+\"px\"};d(\"input\",{onElement:t,withCallback:i}),d(\"input\",{onElement:t,withCallback:this.didInputCaption}),d(\"keydown\",{onElement:t,withCallback:this.didKeyDownCaption}),d(\"change\",{onElement:t,withCallback:this.didChangeCaption}),d(\"blur\",{onElement:t,withCallback:this.didBlurCaption});const n=this.element.querySelector(\"figcaption\"),r=n.cloneNode();return{do:()=>{if(n.style.display=\"none\",r.appendChild(t),r.appendChild(e),r.classList.add(\"\".concat(ki.attachmentCaption,\"--editing\")),n.parentElement.insertBefore(r,n),i(),this.options.editCaption)return yt((()=>t.focus()))},undo(){A(r),n.style.display=null}}}))),this.didClickToolbar=this.didClickToolbar.bind(this),this.didClickActionButton=this.didClickActionButton.bind(this),this.didKeyDownCaption=this.didKeyDownCaption.bind(this),this.didInputCaption=this.didInputCaption.bind(this),this.didChangeCaption=this.didChangeCaption.bind(this),this.didBlurCaption=this.didBlurCaption.bind(this),this.attachmentPiece=t,this.element=e,this.container=i,this.options=n,this.attachment=this.attachmentPiece.attachment,\"a\"===y(this.element)&&(this.element=this.element.firstChild),this.install()}install(){this.makeElementMutable(),this.addToolbar(),this.attachment.isPreviewable()&&this.installCaptionEditor()}uninstall(){var t;let e=this.undos.pop();for(this.savePendingCaption();e;)e(),e=this.undos.pop();null===(t=this.delegate)||void 0===t||t.didUninstallAttachmentEditor(this)}savePendingCaption(){if(this.pendingCaption){const r=this.pendingCaption;var t,e,i,n;if(this.pendingCaption=null,r)null===(t=this.delegate)||void 0===t||null===(e=t.attachmentEditorDidRequestUpdatingAttributesForAttachment)||void 0===e||e.call(t,{caption:r},this.attachment);else null===(i=this.delegate)||void 0===i||null===(n=i.attachmentEditorDidRequestRemovingAttributeForAttachment)||void 0===n||n.call(i,\"caption\",this.attachment)}}didClickToolbar(t){return t.preventDefault(),t.stopPropagation()}didClickActionButton(t){var e;if(\"remove\"===t.target.getAttribute(\"data-trix-action\"))return null===(e=this.delegate)||void 0===e?void 0:e.attachmentEditorDidRequestRemovalOfAttachment(this.attachment)}didKeyDownCaption(t){var e,i;if(\"return\"===Li[t.keyCode])return t.preventDefault(),this.savePendingCaption(),null===(e=this.delegate)||void 0===e||null===(i=e.attachmentEditorDidRequestDeselectingAttachment)||void 0===i?void 0:i.call(e,this.attachment)}didInputCaption(t){this.pendingCaption=t.target.value.replace(/\\s/g,\" \").trim()}didChangeCaption(t){return this.savePendingCaption()}didBlurCaption(t){return this.savePendingCaption()}}class Ti extends U{constructor(t,e){super(...arguments),this.didFocus=this.didFocus.bind(this),this.didBlur=this.didBlur.bind(this),this.didClickAttachment=this.didClickAttachment.bind(this),this.element=t,this.composition=e,this.documentView=new ue(this.composition.document,{element:this.element}),d(\"focus\",{onElement:this.element,withCallback:this.didFocus}),d(\"blur\",{onElement:this.element,withCallback:this.didBlur}),d(\"click\",{onElement:this.element,matchingSelector:\"a[contenteditable=false]\",preventDefault:!0}),d(\"mousedown\",{onElement:this.element,matchingSelector:\"[data-trix-attachment]\",withCallback:this.didClickAttachment}),d(\"click\",{onElement:this.element,matchingSelector:\"a\".concat(\"[data-trix-attachment]\"),preventDefault:!0})}didFocus(t){var e;const i=()=>{var t,e;if(!this.focused)return this.focused=!0,null===(t=this.delegate)||void 0===t||null===(e=t.compositionControllerDidFocus)||void 0===e?void 0:e.call(t)};return(null===(e=this.blurPromise)||void 0===e?void 0:e.then(i))||i()}didBlur(t){this.blurPromise=new Promise((t=>yt((()=>{var e,i;f(this.element)||(this.focused=null,null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidBlur)||void 0===i||i.call(e));return this.blurPromise=null,t()}))))}didClickAttachment(t,e){var i,n;const r=this.findAttachmentForElement(e),o=!!p(t.target,{matchingSelector:\"figcaption\"});return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerDidSelectAttachment)||void 0===n?void 0:n.call(i,r,{editCaption:o})}getSerializableElement(){return this.isEditingAttachment()?this.documentView.shadowElement:this.element}render(){var t,e,i,n,r,o;(this.revision!==this.composition.revision&&(this.documentView.setDocument(this.composition.document),this.documentView.render(),this.revision=this.composition.revision),this.canSyncDocumentView()&&!this.documentView.isSynced())&&(null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillSyncDocumentView)||void 0===n||n.call(i),this.documentView.sync(),null===(r=this.delegate)||void 0===r||null===(o=r.compositionControllerDidSyncDocumentView)||void 0===o||o.call(r));return null===(t=this.delegate)||void 0===t||null===(e=t.compositionControllerDidRender)||void 0===e?void 0:e.call(t)}rerenderViewForObject(t){return this.invalidateViewForObject(t),this.render()}invalidateViewForObject(t){return this.documentView.invalidateViewForObject(t)}isViewCachingEnabled(){return this.documentView.isViewCachingEnabled()}enableViewCaching(){return this.documentView.enableViewCaching()}disableViewCaching(){return this.documentView.disableViewCaching()}refreshViewCache(){return this.documentView.garbageCollectCachedViews()}isEditingAttachment(){return!!this.attachmentEditor}installAttachmentEditorForAttachment(t,e){var i;if((null===(i=this.attachmentEditor)||void 0===i?void 0:i.attachment)===t)return;const n=this.documentView.findElementForObject(t);if(!n)return;this.uninstallAttachmentEditor();const r=this.composition.document.getAttachmentPieceForAttachment(t);this.attachmentEditor=new wi(r,n,this.element,e),this.attachmentEditor.delegate=this}uninstallAttachmentEditor(){var t;return null===(t=this.attachmentEditor)||void 0===t?void 0:t.uninstall()}didUninstallAttachmentEditor(){return this.attachmentEditor=null,this.render()}attachmentEditorDidRequestUpdatingAttributesForAttachment(t,e){var i,n;return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillUpdateAttachment)||void 0===n||n.call(i,e),this.composition.updateAttributesForAttachment(t,e)}attachmentEditorDidRequestRemovingAttributeForAttachment(t,e){var i,n;return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillUpdateAttachment)||void 0===n||n.call(i,e),this.composition.removeAttributeForAttachment(t,e)}attachmentEditorDidRequestRemovalOfAttachment(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidRequestRemovalOfAttachment)||void 0===i?void 0:i.call(e,t)}attachmentEditorDidRequestDeselectingAttachment(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidRequestDeselectingAttachment)||void 0===i?void 0:i.call(e,t)}canSyncDocumentView(){return!this.isEditingAttachment()}findAttachmentForElement(t){return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId,10))}}class Fi extends U{}const Bi=\"[\".concat(\"data-trix-mutable\",\"]\"),Ii={attributes:!0,childList:!0,characterData:!0,characterDataOldValue:!0,subtree:!0};class Pi extends U{constructor(t){super(t),this.didMutate=this.didMutate.bind(this),this.element=t,this.observer=new window.MutationObserver(this.didMutate),this.start()}start(){return this.reset(),this.observer.observe(this.element,Ii)}stop(){return this.observer.disconnect()}didMutate(t){var e,i;if(this.mutations.push(...Array.from(this.findSignificantMutations(t)||[])),this.mutations.length)return null===(e=this.delegate)||void 0===e||null===(i=e.elementDidMutate)||void 0===i||i.call(e,this.getMutationSummary()),this.reset()}reset(){this.mutations=[]}findSignificantMutations(t){return t.filter((t=>this.mutationIsSignificant(t)))}mutationIsSignificant(t){if(this.nodeIsMutable(t.target))return!1;for(const e of Array.from(this.nodesModifiedByMutation(t)))if(this.nodeIsSignificant(e))return!0;return!1}nodeIsSignificant(t){return t!==this.element&&!this.nodeIsMutable(t)&&!B(t)}nodeIsMutable(t){return p(t,{matchingSelector:Bi})}nodesModifiedByMutation(t){const e=[];switch(t.type){case\"attributes\":\"data-trix-mutable\"!==t.attributeName&&e.push(t.target);break;case\"characterData\":e.push(t.target.parentNode),e.push(t.target);break;case\"childList\":e.push(...Array.from(t.addedNodes||[])),e.push(...Array.from(t.removedNodes||[]))}return e}getMutationSummary(){return this.getTextMutationSummary()}getTextMutationSummary(){const{additions:t,deletions:e}=this.getTextChangesFromCharacterData(),i=this.getTextChangesFromChildList();Array.from(i.additions).forEach((e=>{Array.from(t).includes(e)||t.push(e)})),e.push(...Array.from(i.deletions||[]));const n={},r=t.join(\"\");r&&(n.textAdded=r);const o=e.join(\"\");return o&&(n.textDeleted=o),n}getMutationsByType(t){return Array.from(this.mutations).filter((e=>e.type===t))}getTextChangesFromChildList(){let t,e;const i=[],n=[];Array.from(this.getMutationsByType(\"childList\")).forEach((t=>{i.push(...Array.from(t.addedNodes||[])),n.push(...Array.from(t.removedNodes||[]))}));0===i.length&&1===n.length&&D(n[0])?(t=[],e=[\"\\n\"]):(t=Ni(i),e=Ni(n));return{additions:t.filter(((t,i)=>t!==e[i])).map(Mt),deletions:e.filter(((e,i)=>e!==t[i])).map(Mt)}}getTextChangesFromCharacterData(){let t,e;const i=this.getMutationsByType(\"characterData\");if(i.length){const n=i[0],r=i[i.length-1],o=function(t,e){let i,n;return t=K.box(t),(e=K.box(e)).length<t.length?[n,i]=Ut(t,e):[i,n]=Ut(e,t),{added:i,removed:n}}(Mt(n.oldValue),Mt(r.target.data));t=o.added,e=o.removed}return{additions:t?[t]:[],deletions:e?[e]:[]}}}const Ni=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=[];for(const i of Array.from(t))switch(i.nodeType){case Node.TEXT_NODE:e.push(i.data);break;case Node.ELEMENT_NODE:\"br\"===y(i)?e.push(\"\\n\"):e.push(...Array.from(Ni(i.childNodes)||[]))}return e};class Oi extends Qt{constructor(t){super(...arguments),this.file=t}perform(t){const e=new FileReader;return e.onerror=()=>t(!1),e.onload=()=>{e.onerror=null;try{e.abort()}catch(t){}return t(!0,this.file)},e.readAsArrayBuffer(this.file)}}class Mi{constructor(t){this.element=t}shouldIgnore(t){return!!o.samsungAndroid&&(this.previousEvent=this.event,this.event=t,this.checkSamsungKeyboardBuggyModeStart(),this.checkSamsungKeyboardBuggyModeEnd(),this.buggyMode)}checkSamsungKeyboardBuggyModeStart(){this.insertingLongTextAfterUnidentifiedChar()&&ji(this.element.innerText,this.event.data)&&(this.buggyMode=!0,this.event.preventDefault())}checkSamsungKeyboardBuggyModeEnd(){this.buggyMode&&\"insertText\"!==this.event.inputType&&(this.buggyMode=!1)}insertingLongTextAfterUnidentifiedChar(){var t;return this.isBeforeInputInsertText()&&this.previousEventWasUnidentifiedKeydown()&&(null===(t=this.event.data)||void 0===t?void 0:t.length)>50}isBeforeInputInsertText(){return\"beforeinput\"===this.event.type&&\"insertText\"===this.event.inputType}previousEventWasUnidentifiedKeydown(){var t,e;return\"keydown\"===(null===(t=this.previousEvent)||void 0===t?void 0:t.type)&&\"Unidentified\"===(null===(e=this.previousEvent)||void 0===e?void 0:e.key)}}const ji=(t,e)=>Ui(t)===Ui(e),Wi=new RegExp(\"(\".concat(\"\",\"|\").concat(\"\\ufeff\",\"|\").concat(\" \",\"|\\\\s)+\"),\"g\"),Ui=t=>t.replace(Wi,\" \").trim();class qi extends U{constructor(t){super(...arguments),this.element=t,this.mutationObserver=new Pi(this.element),this.mutationObserver.delegate=this,this.flakyKeyboardDetector=new Mi(this.element);for(const t in this.constructor.events)d(t,{onElement:this.element,withCallback:this.handlerFor(t)})}elementDidMutate(t){}editorWillSyncDocumentView(){return this.mutationObserver.stop()}editorDidSyncDocumentView(){return this.mutationObserver.start()}requestRender(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidRequestRender)||void 0===e?void 0:e.call(t)}requestReparse(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidRequestReparse)||void 0===e||e.call(t),this.requestRender()}attachFiles(t){const e=Array.from(t).map((t=>new Oi(t)));return Promise.all(e).then((t=>{this.handleInput((function(){var e,i;return null===(e=this.delegate)||void 0===e||e.inputControllerWillAttachFiles(),null===(i=this.responder)||void 0===i||i.insertFiles(t),this.requestRender()}))}))}handlerFor(t){return e=>{e.defaultPrevented||this.handleInput((()=>{if(!f(this.element)){if(this.flakyKeyboardDetector.shouldIgnore(e))return;this.eventName=t,this.constructor.events[t].call(this,e)}}))}}handleInput(t){try{var e;null===(e=this.delegate)||void 0===e||e.inputControllerWillHandleInput(),t.call(this)}finally{var i;null===(i=this.delegate)||void 0===i||i.inputControllerDidHandleInput()}}createLinkHTML(t,e){const i=document.createElement(\"a\");return i.href=t,i.textContent=e||t,i.outerHTML}}var Vi;be(qi,\"events\",{});const{browser:zi,keyNames:_i}=W;let Hi=0;class Ji extends qi{constructor(){super(...arguments),this.resetInputSummary()}setInputSummary(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.inputSummary.eventName=this.eventName;for(const e in t){const i=t[e];this.inputSummary[e]=i}return this.inputSummary}resetInputSummary(){this.inputSummary={}}reset(){return this.resetInputSummary(),Ft.reset()}elementDidMutate(t){var e,i;return this.isComposing()?null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidAllowUnhandledInput)||void 0===i?void 0:i.call(e):this.handleInput((function(){return this.mutationIsSignificant(t)&&(this.mutationIsExpected(t)?this.requestRender():this.requestReparse()),this.reset()}))}mutationIsExpected(t){let{textAdded:e,textDeleted:i}=t;if(this.inputSummary.preferDocument)return!0;const n=null!=e?e===this.inputSummary.textAdded:!this.inputSummary.textAdded,r=null!=i?this.inputSummary.didDelete:!this.inputSummary.didDelete,o=[\"\\n\",\" \\n\"].includes(e)&&!n,s=\"\\n\"===i&&!r;if(o&&!s||s&&!o){const t=this.getSelectedRange();if(t){var a;const i=o?e.replace(/\\n$/,\"\").length||-1:(null==e?void 0:e.length)||1;if(null!==(a=this.responder)&&void 0!==a&&a.positionIsBlockBreak(t[1]+i))return!0}}return n&&r}mutationIsSignificant(t){var e;const i=Object.keys(t).length>0,n=\"\"===(null===(e=this.compositionInput)||void 0===e?void 0:e.getEndData());return i||!n}getCompositionInput(){if(this.isComposing())return this.compositionInput;this.compositionInput=new Yi(this)}isComposing(){return this.compositionInput&&!this.compositionInput.isEnded()}deleteInDirection(t,e){var i;return!1!==(null===(i=this.responder)||void 0===i?void 0:i.deleteInDirection(t))?this.setInputSummary({didDelete:!0}):e?(e.preventDefault(),this.requestRender()):void 0}serializeSelectionToDataTransfer(t){var e;if(!function(t){if(null==t||!t.setData)return!1;for(const e in vt){const i=vt[e];try{if(t.setData(e,i),!t.getData(e)===i)return!1}catch(t){return!1}}return!0}(t))return;const i=null===(e=this.responder)||void 0===e?void 0:e.getSelectedDocument().toSerializableDocument();return t.setData(\"application/x-trix-document\",JSON.stringify(i)),t.setData(\"text/html\",ue.render(i).innerHTML),t.setData(\"text/plain\",i.toString().replace(/\\n$/,\"\")),!0}canAcceptDataTransfer(t){const e={};return Array.from((null==t?void 0:t.types)||[]).forEach((t=>{e[t]=!0})),e.Files||e[\"application/x-trix-document\"]||e[\"text/html\"]||e[\"text/plain\"]}getPastedHTMLUsingHiddenElement(t){const e=this.getSelectedRange(),i={position:\"absolute\",left:\"\".concat(window.pageXOffset,\"px\"),top:\"\".concat(window.pageYOffset,\"px\"),opacity:0},n=C({style:i,tagName:\"div\",editable:!0});return document.body.appendChild(n),n.focus(),requestAnimationFrame((()=>{const i=n.innerHTML;return A(n),this.setSelectedRange(e),t(i)}))}}be(Ji,\"events\",{keydown(t){this.isComposing()||this.resetInputSummary(),this.inputSummary.didInput=!0;const e=_i[t.keyCode];if(e){var i;let n=this.keys;[\"ctrl\",\"alt\",\"shift\",\"meta\"].forEach((e=>{var i;t[\"\".concat(e,\"Key\")]&&(\"ctrl\"===e&&(e=\"control\"),n=null===(i=n)||void 0===i?void 0:i[e])})),null!=(null===(i=n)||void 0===i?void 0:i[e])&&(this.setInputSummary({keyName:e}),Ft.reset(),n[e].call(this,t))}if(xt(t)){const e=String.fromCharCode(t.keyCode).toLowerCase();if(e){var n;const i=[\"alt\",\"shift\"].map((e=>{if(t[\"\".concat(e,\"Key\")])return e})).filter((t=>t));i.push(e),null!==(n=this.delegate)&&void 0!==n&&n.inputControllerDidReceiveKeyboardCommand(i)&&t.preventDefault()}}},keypress(t){if(null!=this.inputSummary.eventName)return;if(t.metaKey)return;if(t.ctrlKey&&!t.altKey)return;const e=$i(t);var i,n;return e?(null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformTyping(),null===(n=this.responder)||void 0===n||n.insertString(e),this.setInputSummary({textAdded:e,didDelete:this.selectionIsExpanded()})):void 0},textInput(t){const{data:e}=t,{textAdded:i}=this.inputSummary;if(i&&i!==e&&i.toUpperCase()===e){var n;const t=this.getSelectedRange();return this.setSelectedRange([t[0],t[1]+i.length]),null===(n=this.responder)||void 0===n||n.insertString(e),this.setInputSummary({textAdded:e}),this.setSelectedRange(t)}},dragenter(t){t.preventDefault()},dragstart(t){var e,i;return this.serializeSelectionToDataTransfer(t.dataTransfer),this.draggedRange=this.getSelectedRange(),null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidStartDrag)||void 0===i?void 0:i.call(e)},dragover(t){if(this.draggedRange||this.canAcceptDataTransfer(t.dataTransfer)){t.preventDefault();const n={x:t.clientX,y:t.clientY};var e,i;if(!Rt(n,this.draggingPoint))return this.draggingPoint=n,null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidReceiveDragOverPoint)||void 0===i?void 0:i.call(e,this.draggingPoint)}},dragend(t){var e,i;null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidCancelDrag)||void 0===i||i.call(e),this.draggedRange=null,this.draggingPoint=null},drop(t){var e,i;t.preventDefault();const n=null===(e=t.dataTransfer)||void 0===e?void 0:e.files,r=t.dataTransfer.getData(\"application/x-trix-document\"),o={x:t.clientX,y:t.clientY};if(null===(i=this.responder)||void 0===i||i.setLocationRangeFromPointRange(o),null!=n&&n.length)this.attachFiles(n);else if(this.draggedRange){var s,a;null===(s=this.delegate)||void 0===s||s.inputControllerWillMoveText(),null===(a=this.responder)||void 0===a||a.moveTextFromRange(this.draggedRange),this.draggedRange=null,this.requestRender()}else if(r){var l;const t=je.fromJSONString(r);null===(l=this.responder)||void 0===l||l.insertDocument(t),this.requestRender()}this.draggedRange=null,this.draggingPoint=null},cut(t){var e,i;if(null!==(e=this.responder)&&void 0!==e&&e.selectionIsExpanded()&&(this.serializeSelectionToDataTransfer(t.clipboardData)&&t.preventDefault(),null===(i=this.delegate)||void 0===i||i.inputControllerWillCutText(),this.deleteInDirection(\"backward\"),t.defaultPrevented))return this.requestRender()},copy(t){var e;null!==(e=this.responder)&&void 0!==e&&e.selectionIsExpanded()&&this.serializeSelectionToDataTransfer(t.clipboardData)&&t.preventDefault()},paste(t){const e=t.clipboardData||t.testClipboardData,i={clipboard:e};if(!e||Xi(t))return void this.getPastedHTMLUsingHiddenElement((t=>{var e,n,r;return i.type=\"text/html\",i.html=t,null===(e=this.delegate)||void 0===e||e.inputControllerWillPaste(i),null===(n=this.responder)||void 0===n||n.insertHTML(i.html),this.requestRender(),null===(r=this.delegate)||void 0===r?void 0:r.inputControllerDidPaste(i)}));const n=e.getData(\"URL\"),r=e.getData(\"text/html\"),o=e.getData(\"public.url-name\");if(n){var s,a,l;let t;i.type=\"text/html\",t=o?Wt(o).trim():n,i.html=this.createLinkHTML(n,t),null===(s=this.delegate)||void 0===s||s.inputControllerWillPaste(i),this.setInputSummary({textAdded:t,didDelete:this.selectionIsExpanded()}),null===(a=this.responder)||void 0===a||a.insertHTML(i.html),this.requestRender(),null===(l=this.delegate)||void 0===l||l.inputControllerDidPaste(i)}else if(At(e)){var c,h,u;i.type=\"text/plain\",i.string=e.getData(\"text/plain\"),null===(c=this.delegate)||void 0===c||c.inputControllerWillPaste(i),this.setInputSummary({textAdded:i.string,didDelete:this.selectionIsExpanded()}),null===(h=this.responder)||void 0===h||h.insertString(i.string),this.requestRender(),null===(u=this.delegate)||void 0===u||u.inputControllerDidPaste(i)}else if(r){var d,g,m;i.type=\"text/html\",i.html=r,null===(d=this.delegate)||void 0===d||d.inputControllerWillPaste(i),null===(g=this.responder)||void 0===g||g.insertHTML(i.html),this.requestRender(),null===(m=this.delegate)||void 0===m||m.inputControllerDidPaste(i)}else if(Array.from(e.types).includes(\"Files\")){var p,f,b;const t=null===(p=e.items)||void 0===p||null===(f=p[0])||void 0===f||null===(b=f.getAsFile)||void 0===b?void 0:b.call(f);if(t){var v,A,x;const e=Ki(t);!t.name&&e&&(t.name=\"pasted-file-\".concat(++Hi,\".\").concat(e)),i.type=\"File\",i.file=t,null===(v=this.delegate)||void 0===v||v.inputControllerWillAttachFiles(),null===(A=this.responder)||void 0===A||A.insertFile(i.file),this.requestRender(),null===(x=this.delegate)||void 0===x||x.inputControllerDidPaste(i)}}t.preventDefault()},compositionstart(t){return this.getCompositionInput().start(t.data)},compositionupdate(t){return this.getCompositionInput().update(t.data)},compositionend(t){return this.getCompositionInput().end(t.data)},beforeinput(t){this.inputSummary.didInput=!0},input(t){return this.inputSummary.didInput=!0,t.stopPropagation()}}),be(Ji,\"keys\",{backspace(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"backward\",t)},delete(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"forward\",t)},return(t){var e,i;return this.setInputSummary({preferDocument:!0}),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i?void 0:i.insertLineBreak()},tab(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.canIncreaseNestingLevel()&&(null===(i=this.responder)||void 0===i||i.increaseNestingLevel(),this.requestRender(),t.preventDefault())},left(t){var e;if(this.selectionIsInCursorTarget())return t.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"backward\")},right(t){var e;if(this.selectionIsInCursorTarget())return t.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"forward\")},control:{d(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"forward\",t)},h(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"backward\",t)},o(t){var e,i;return t.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.insertString(\"\\n\",{updatePosition:!1}),this.requestRender()}},shift:{return(t){var e,i;null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.insertString(\"\\n\"),this.requestRender(),t.preventDefault()},tab(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.canDecreaseNestingLevel()&&(null===(i=this.responder)||void 0===i||i.decreaseNestingLevel(),this.requestRender(),t.preventDefault())},left(t){if(this.selectionIsInCursorTarget())return t.preventDefault(),this.expandSelectionInDirection(\"backward\")},right(t){if(this.selectionIsInCursorTarget())return t.preventDefault(),this.expandSelectionInDirection(\"forward\")}},alt:{backspace(t){var e;return this.setInputSummary({preferDocument:!1}),null===(e=this.delegate)||void 0===e?void 0:e.inputControllerWillPerformTyping()}},meta:{backspace(t){var e;return this.setInputSummary({preferDocument:!1}),null===(e=this.delegate)||void 0===e?void 0:e.inputControllerWillPerformTyping()}}}),Ji.proxyMethod(\"responder?.getSelectedRange\"),Ji.proxyMethod(\"responder?.setSelectedRange\"),Ji.proxyMethod(\"responder?.expandSelectionInDirection\"),Ji.proxyMethod(\"responder?.selectionIsInCursorTarget\"),Ji.proxyMethod(\"responder?.selectionIsExpanded\");const Ki=t=>{var e,i;return null===(e=t.type)||void 0===e||null===(i=e.match(/\\/(\\w+)$/))||void 0===i?void 0:i[1]},Gi=!(null===(Vi=\" \".codePointAt)||void 0===Vi||!Vi.call(\" \",0)),$i=function(t){if(t.key&&Gi&&t.key.codePointAt(0)===t.keyCode)return t.key;{let e;if(null===t.which?e=t.keyCode:0!==t.which&&0!==t.charCode&&(e=t.charCode),null!=e&&\"escape\"!==_i[e])return K.fromCodepoints([e]).toString()}},Xi=function(t){const e=t.clipboardData;if(e){if(e.types.includes(\"text/html\")){for(const t of e.types){const i=/^CorePasteboardFlavorType/.test(t),n=/^dyn\\./.test(t)&&e.getData(t);if(i||n)return!0}return!1}{const t=e.types.includes(\"com.apple.webarchive\"),i=e.types.includes(\"com.apple.flat-rtfd\");return t||i}}};class Yi extends U{constructor(t){super(...arguments),this.inputController=t,this.responder=this.inputController.responder,this.delegate=this.inputController.delegate,this.inputSummary=this.inputController.inputSummary,this.data={}}start(t){if(this.data.start=t,this.isSignificant()){var e,i;if(\"keypress\"===this.inputSummary.eventName&&this.inputSummary.textAdded)null===(i=this.responder)||void 0===i||i.deleteInDirection(\"left\");this.selectionIsExpanded()||(this.insertPlaceholder(),this.requestRender()),this.range=null===(e=this.responder)||void 0===e?void 0:e.getSelectedRange()}}update(t){if(this.data.update=t,this.isSignificant()){const t=this.selectPlaceholder();t&&(this.forgetPlaceholder(),this.range=t)}}end(t){return this.data.end=t,this.isSignificant()?(this.forgetPlaceholder(),this.canApplyToDocument()?(this.setInputSummary({preferDocument:!0,didInput:!1}),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.setSelectedRange(this.range),null===(n=this.responder)||void 0===n||n.insertString(this.data.end),null===(r=this.responder)||void 0===r?void 0:r.setSelectedRange(this.range[0]+this.data.end.length)):null!=this.data.start||null!=this.data.update?(this.requestReparse(),this.inputController.reset()):void 0):this.inputController.reset();var e,i,n,r}getEndData(){return this.data.end}isEnded(){return null!=this.getEndData()}isSignificant(){return!zi.composesExistingText||this.inputSummary.didInput}canApplyToDocument(){var t,e;return 0===(null===(t=this.data.start)||void 0===t?void 0:t.length)&&(null===(e=this.data.end)||void 0===e?void 0:e.length)>0&&this.range}}Yi.proxyMethod(\"inputController.setInputSummary\"),Yi.proxyMethod(\"inputController.requestRender\"),Yi.proxyMethod(\"inputController.requestReparse\"),Yi.proxyMethod(\"responder?.selectionIsExpanded\"),Yi.proxyMethod(\"responder?.insertPlaceholder\"),Yi.proxyMethod(\"responder?.selectPlaceholder\"),Yi.proxyMethod(\"responder?.forgetPlaceholder\");class Qi extends qi{constructor(){super(...arguments),this.render=this.render.bind(this)}elementDidMutate(){return this.scheduledRender?this.composing?null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidAllowUnhandledInput)||void 0===e?void 0:e.call(t):void 0:this.reparse();var t,e}scheduleRender(){return this.scheduledRender?this.scheduledRender:this.scheduledRender=requestAnimationFrame(this.render)}render(){var t,e;(cancelAnimationFrame(this.scheduledRender),this.scheduledRender=null,this.composing)||(null===(e=this.delegate)||void 0===e||e.render());null===(t=this.afterRender)||void 0===t||t.call(this),this.afterRender=null}reparse(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.reparse()}insertString(){var t;let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",i=arguments.length>1?arguments[1]:void 0;return null===(t=this.delegate)||void 0===t||t.inputControllerWillPerformTyping(),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertString(e,i)}))}toggleAttributeIfSupported(t){var e;if(ct().includes(t))return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformFormatting(t),this.withTargetDOMRange((function(){var e;return null===(e=this.responder)||void 0===e?void 0:e.toggleCurrentAttribute(t)}))}activateAttributeIfSupported(t,e){var i;if(ct().includes(t))return null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformFormatting(t),this.withTargetDOMRange((function(){var i;return null===(i=this.responder)||void 0===i?void 0:i.setCurrentAttribute(t,e)}))}deleteInDirection(t){let{recordUndoEntry:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{recordUndoEntry:!0};var i;e&&(null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformTyping());const n=()=>{var e;return null===(e=this.responder)||void 0===e?void 0:e.deleteInDirection(t)},r=this.getTargetDOMRange({minLength:2});return r?this.withTargetDOMRange(r,n):n()}withTargetDOMRange(t,e){var i;return\"function\"==typeof t&&(e=t,t=this.getTargetDOMRange()),t?null===(i=this.responder)||void 0===i?void 0:i.withTargetDOMRange(t,e.bind(this)):(Ft.reset(),e.call(this))}getTargetDOMRange(){var t,e;let{minLength:i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{minLength:0};const n=null===(t=(e=this.event).getTargetRanges)||void 0===t?void 0:t.call(e);if(n&&n.length){const t=Zi(n[0]);if(0===i||t.toString().length>=i)return t}}withEvent(t,e){let i;this.event=t;try{i=e.call(this)}finally{this.event=null}return i}}be(Qi,\"events\",{keydown(t){if(xt(t)){var e;const i=rn(t);null!==(e=this.delegate)&&void 0!==e&&e.inputControllerDidReceiveKeyboardCommand(i)&&t.preventDefault()}else{let e=t.key;t.altKey&&(e+=\"+Alt\"),t.shiftKey&&(e+=\"+Shift\");const i=this.constructor.keys[e];if(i)return this.withEvent(t,i)}},paste(t){var e;let i;const n=null===(e=t.clipboardData)||void 0===e?void 0:e.getData(\"URL\");return en(t)?(t.preventDefault(),this.attachFiles(t.clipboardData.files)):nn(t)?(t.preventDefault(),i={type:\"text/plain\",string:t.clipboardData.getData(\"text/plain\")},null===(r=this.delegate)||void 0===r||r.inputControllerWillPaste(i),null===(o=this.responder)||void 0===o||o.insertString(i.string),this.render(),null===(s=this.delegate)||void 0===s?void 0:s.inputControllerDidPaste(i)):n?(t.preventDefault(),i={type:\"text/html\",html:this.createLinkHTML(n)},null===(a=this.delegate)||void 0===a||a.inputControllerWillPaste(i),null===(l=this.responder)||void 0===l||l.insertHTML(i.html),this.render(),null===(c=this.delegate)||void 0===c?void 0:c.inputControllerDidPaste(i)):void 0;var r,o,s,a,l,c},beforeinput(t){const e=this.constructor.inputTypes[t.inputType];e&&(this.withEvent(t,e),this.scheduleRender())},input(t){Ft.reset()},dragstart(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.selectionContainsAttachments()&&(t.dataTransfer.setData(\"application/x-trix-dragging\",!0),this.dragging={range:null===(i=this.responder)||void 0===i?void 0:i.getSelectedRange(),point:on(t)})},dragenter(t){tn(t)&&t.preventDefault()},dragover(t){if(this.dragging){t.preventDefault();const i=on(t);var e;if(!Rt(i,this.dragging.point))return this.dragging.point=i,null===(e=this.responder)||void 0===e?void 0:e.setLocationRangeFromPointRange(i)}else tn(t)&&t.preventDefault()},drop(t){var e,i;if(this.dragging)return t.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillMoveText(),null===(i=this.responder)||void 0===i||i.moveTextFromRange(this.dragging.range),this.dragging=null,this.scheduleRender();if(tn(t)){var n;t.preventDefault();const e=on(t);return null===(n=this.responder)||void 0===n||n.setLocationRangeFromPointRange(e),this.attachFiles(t.dataTransfer.files)}},dragend(){var t;this.dragging&&(null===(t=this.responder)||void 0===t||t.setSelectedRange(this.dragging.range),this.dragging=null)},compositionend(t){this.composing&&(this.composing=!1,o.recentAndroid||this.scheduleRender())}}),be(Qi,\"keys\",{ArrowLeft(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageMovingCursorInDirection(\"backward\"))return this.event.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"backward\")},ArrowRight(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageMovingCursorInDirection(\"forward\"))return this.event.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"forward\")},Backspace(){var t,e,i;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageDeletingInDirection(\"backward\"))return this.event.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.deleteInDirection(\"backward\"),this.render()},Tab(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.canIncreaseNestingLevel())return this.event.preventDefault(),null===(e=this.responder)||void 0===e||e.increaseNestingLevel(),this.render()},\"Tab+Shift\"(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.canDecreaseNestingLevel())return this.event.preventDefault(),null===(e=this.responder)||void 0===e||e.decreaseNestingLevel(),this.render()}}),be(Qi,\"inputTypes\",{deleteByComposition(){return this.deleteInDirection(\"backward\",{recordUndoEntry:!1})},deleteByCut(){return this.deleteInDirection(\"backward\")},deleteByDrag(){return this.event.preventDefault(),this.withTargetDOMRange((function(){var t;this.deleteByDragRange=null===(t=this.responder)||void 0===t?void 0:t.getSelectedRange()}))},deleteCompositionText(){return this.deleteInDirection(\"backward\",{recordUndoEntry:!1})},deleteContent(){return this.deleteInDirection(\"backward\")},deleteContentBackward(){return this.deleteInDirection(\"backward\")},deleteContentForward(){return this.deleteInDirection(\"forward\")},deleteEntireSoftLine(){return this.deleteInDirection(\"forward\")},deleteHardLineBackward(){return this.deleteInDirection(\"backward\")},deleteHardLineForward(){return this.deleteInDirection(\"forward\")},deleteSoftLineBackward(){return this.deleteInDirection(\"backward\")},deleteSoftLineForward(){return this.deleteInDirection(\"forward\")},deleteWordBackward(){return this.deleteInDirection(\"backward\")},deleteWordForward(){return this.deleteInDirection(\"forward\")},formatBackColor(){return this.activateAttributeIfSupported(\"backgroundColor\",this.event.data)},formatBold(){return this.toggleAttributeIfSupported(\"bold\")},formatFontColor(){return this.activateAttributeIfSupported(\"color\",this.event.data)},formatFontName(){return this.activateAttributeIfSupported(\"font\",this.event.data)},formatIndent(){var t;if(null!==(t=this.responder)&&void 0!==t&&t.canIncreaseNestingLevel())return this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.increaseNestingLevel()}))},formatItalic(){return this.toggleAttributeIfSupported(\"italic\")},formatJustifyCenter(){return this.toggleAttributeIfSupported(\"justifyCenter\")},formatJustifyFull(){return this.toggleAttributeIfSupported(\"justifyFull\")},formatJustifyLeft(){return this.toggleAttributeIfSupported(\"justifyLeft\")},formatJustifyRight(){return this.toggleAttributeIfSupported(\"justifyRight\")},formatOutdent(){var t;if(null!==(t=this.responder)&&void 0!==t&&t.canDecreaseNestingLevel())return this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.decreaseNestingLevel()}))},formatRemove(){this.withTargetDOMRange((function(){for(const i in null===(t=this.responder)||void 0===t?void 0:t.getCurrentAttributes()){var t,e;null===(e=this.responder)||void 0===e||e.removeCurrentAttribute(i)}}))},formatSetBlockTextDirection(){return this.activateAttributeIfSupported(\"blockDir\",this.event.data)},formatSetInlineTextDirection(){return this.activateAttributeIfSupported(\"textDir\",this.event.data)},formatStrikeThrough(){return this.toggleAttributeIfSupported(\"strike\")},formatSubscript(){return this.toggleAttributeIfSupported(\"sub\")},formatSuperscript(){return this.toggleAttributeIfSupported(\"sup\")},formatUnderline(){return this.toggleAttributeIfSupported(\"underline\")},historyRedo(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerWillPerformRedo()},historyUndo(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerWillPerformUndo()},insertCompositionText(){return this.composing=!0,this.insertString(this.event.data)},insertFromComposition(){return this.composing=!1,this.insertString(this.event.data)},insertFromDrop(){const t=this.deleteByDragRange;var e;if(t)return this.deleteByDragRange=null,null===(e=this.delegate)||void 0===e||e.inputControllerWillMoveText(),this.withTargetDOMRange((function(){var e;return null===(e=this.responder)||void 0===e?void 0:e.moveTextFromRange(t)}))},insertFromPaste(){var t;const{dataTransfer:e}=this.event,i={dataTransfer:e},n=e.getData(\"URL\"),r=e.getData(\"text/html\");if(n){var o;let t;this.event.preventDefault(),i.type=\"text/html\";const r=e.getData(\"public.url-name\");t=r?Wt(r).trim():n,i.html=this.createLinkHTML(n,t),null===(o=this.delegate)||void 0===o||o.inputControllerWillPaste(i),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertHTML(i.html)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(i)}}else if(At(e)){var s;i.type=\"text/plain\",i.string=e.getData(\"text/plain\"),null===(s=this.delegate)||void 0===s||s.inputControllerWillPaste(i),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertString(i.string)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(i)}}else if(r){var a;this.event.preventDefault(),i.type=\"text/html\",i.html=r,null===(a=this.delegate)||void 0===a||a.inputControllerWillPaste(i),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertHTML(i.html)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(i)}}else if(null!==(t=e.files)&&void 0!==t&&t.length){var l;i.type=\"File\",i.file=e.files[0],null===(l=this.delegate)||void 0===l||l.inputControllerWillPaste(i),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertFile(i.file)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(i)}}},insertFromYank(){return this.insertString(this.event.data)},insertLineBreak(){return this.insertString(\"\\n\")},insertLink(){return this.activateAttributeIfSupported(\"href\",this.event.data)},insertOrderedList(){return this.toggleAttributeIfSupported(\"number\")},insertParagraph(){var t;return null===(t=this.delegate)||void 0===t||t.inputControllerWillPerformTyping(),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertLineBreak()}))},insertReplacementText(){return this.insertString(this.event.dataTransfer.getData(\"text/plain\"),{updatePosition:!1})},insertText(){var t;return this.insertString(this.event.data||(null===(t=this.event.dataTransfer)||void 0===t?void 0:t.getData(\"text/plain\")))},insertTranspose(){return this.insertString(this.event.data)},insertUnorderedList(){return this.toggleAttributeIfSupported(\"bullet\")}});const Zi=function(t){const e=document.createRange();return e.setStart(t.startContainer,t.startOffset),e.setEnd(t.endContainer,t.endOffset),e},tn=t=>{var e;return Array.from((null===(e=t.dataTransfer)||void 0===e?void 0:e.types)||[]).includes(\"Files\")},en=function(t){const e=t.clipboardData;if(e)return e.types.includes(\"Files\")&&1===e.types.length&&e.files.length>=1},nn=function(t){const e=t.clipboardData;if(e)return e.types.includes(\"text/plain\")&&1===e.types.length},rn=function(t){const e=[];return t.altKey&&e.push(\"alt\"),t.shiftKey&&e.push(\"shift\"),e.push(t.key),e},on=t=>({x:t.clientX,y:t.clientY}),sn=\"\".concat(\"[data-trix-attribute]\",\", \").concat(\"[data-trix-action]\"),an=\"\".concat(\"[data-trix-dialog]\",\"[data-trix-active]\"),ln=\"\".concat(\"[data-trix-dialog]\",\" [data-trix-method]\"),cn=\"\".concat(\"[data-trix-dialog]\",\" [data-trix-input]\"),hn=(t,e)=>(e||(e=dn(t)),t.querySelector(\"[data-trix-input][name='\".concat(e,\"']\"))),un=t=>t.getAttribute(\"data-trix-action\"),dn=t=>t.getAttribute(\"data-trix-attribute\")||t.getAttribute(\"data-trix-dialog-attribute\");class gn extends U{constructor(t){super(t),this.didClickActionButton=this.didClickActionButton.bind(this),this.didClickAttributeButton=this.didClickAttributeButton.bind(this),this.didClickDialogButton=this.didClickDialogButton.bind(this),this.didKeyDownDialogInput=this.didKeyDownDialogInput.bind(this),this.element=t,this.attributes={},this.actions={},this.resetDialogInputs(),d(\"mousedown\",{onElement:this.element,matchingSelector:\"[data-trix-action]\",withCallback:this.didClickActionButton}),d(\"mousedown\",{onElement:this.element,matchingSelector:\"[data-trix-attribute]\",withCallback:this.didClickAttributeButton}),d(\"click\",{onElement:this.element,matchingSelector:sn,preventDefault:!0}),d(\"click\",{onElement:this.element,matchingSelector:ln,withCallback:this.didClickDialogButton}),d(\"keydown\",{onElement:this.element,matchingSelector:cn,withCallback:this.didKeyDownDialogInput})}didClickActionButton(t,e){var i;null===(i=this.delegate)||void 0===i||i.toolbarDidClickButton(),t.preventDefault();const n=un(e);return this.getDialog(n)?this.toggleDialog(n):null===(r=this.delegate)||void 0===r?void 0:r.toolbarDidInvokeAction(n);var r}didClickAttributeButton(t,e){var i;null===(i=this.delegate)||void 0===i||i.toolbarDidClickButton(),t.preventDefault();const n=dn(e);var r;this.getDialog(n)?this.toggleDialog(n):null===(r=this.delegate)||void 0===r||r.toolbarDidToggleAttribute(n);return this.refreshAttributeButtons()}didClickDialogButton(t,e){const i=p(e,{matchingSelector:\"[data-trix-dialog]\"});return this[e.getAttribute(\"data-trix-method\")].call(this,i)}didKeyDownDialogInput(t,e){if(13===t.keyCode){t.preventDefault();const i=e.getAttribute(\"name\"),n=this.getDialog(i);this.setAttribute(n)}if(27===t.keyCode)return t.preventDefault(),this.hideDialog()}updateActions(t){return this.actions=t,this.refreshActionButtons()}refreshActionButtons(){return this.eachActionButton(((t,e)=>{t.disabled=!1===this.actions[e]}))}eachActionButton(t){return Array.from(this.element.querySelectorAll(\"[data-trix-action]\")).map((e=>t(e,un(e))))}updateAttributes(t){return this.attributes=t,this.refreshAttributeButtons()}refreshAttributeButtons(){return this.eachAttributeButton(((t,e)=>(t.disabled=!1===this.attributes[e],this.attributes[e]||this.dialogIsVisible(e)?(t.setAttribute(\"data-trix-active\",\"\"),t.classList.add(\"trix-active\")):(t.removeAttribute(\"data-trix-active\"),t.classList.remove(\"trix-active\")))))}eachAttributeButton(t){return Array.from(this.element.querySelectorAll(\"[data-trix-attribute]\")).map((e=>t(e,dn(e))))}applyKeyboardCommand(t){const e=JSON.stringify(t.sort());for(const t of Array.from(this.element.querySelectorAll(\"[data-trix-key]\"))){const i=t.getAttribute(\"data-trix-key\").split(\"+\");if(JSON.stringify(i.sort())===e)return g(\"mousedown\",{onElement:t}),!0}return!1}dialogIsVisible(t){const e=this.getDialog(t);if(e)return e.hasAttribute(\"data-trix-active\")}toggleDialog(t){return this.dialogIsVisible(t)?this.hideDialog():this.showDialog(t)}showDialog(t){var e,i;this.hideDialog(),null===(e=this.delegate)||void 0===e||e.toolbarWillShowDialog();const n=this.getDialog(t);n.setAttribute(\"data-trix-active\",\"\"),n.classList.add(\"trix-active\"),Array.from(n.querySelectorAll(\"input[disabled]\")).forEach((t=>{t.removeAttribute(\"disabled\")}));const r=dn(n);if(r){const e=hn(n,t);e&&(e.value=this.attributes[r]||\"\",e.select())}return null===(i=this.delegate)||void 0===i?void 0:i.toolbarDidShowDialog(t)}setAttribute(t){const e=dn(t),i=hn(t,e);return i.willValidate&&!i.checkValidity()?(i.setAttribute(\"data-trix-validate\",\"\"),i.classList.add(\"trix-validate\"),i.focus()):(null===(n=this.delegate)||void 0===n||n.toolbarDidUpdateAttribute(e,i.value),this.hideDialog());var n}removeAttribute(t){var e;const i=dn(t);return null===(e=this.delegate)||void 0===e||e.toolbarDidRemoveAttribute(i),this.hideDialog()}hideDialog(){const t=this.element.querySelector(an);var e;if(t)return t.removeAttribute(\"data-trix-active\"),t.classList.remove(\"trix-active\"),this.resetDialogInputs(),null===(e=this.delegate)||void 0===e?void 0:e.toolbarDidHideDialog((t=>t.getAttribute(\"data-trix-dialog\"))(t))}resetDialogInputs(){Array.from(this.element.querySelectorAll(cn)).forEach((t=>{t.setAttribute(\"disabled\",\"disabled\"),t.removeAttribute(\"data-trix-validate\"),t.classList.remove(\"trix-validate\")}))}getDialog(t){return this.element.querySelector(\"[data-trix-dialog=\".concat(t,\"]\"))}}class mn extends Fi{constructor(t){let{editorElement:e,document:i,html:n}=t;super(...arguments),this.editorElement=e,this.selectionManager=new Ci(this.editorElement),this.selectionManager.delegate=this,this.composition=new ci,this.composition.delegate=this,this.attachmentManager=new ai(this.composition.getAttachments()),this.attachmentManager.delegate=this,this.inputController=2===P.getLevel()?new Qi(this.editorElement):new Ji(this.editorElement),this.inputController.delegate=this,this.inputController.responder=this.composition,this.compositionController=new Ti(this.editorElement,this.composition),this.compositionController.delegate=this,this.toolbarController=new gn(this.editorElement.toolbarElement),this.toolbarController.delegate=this,this.editor=new pi(this.composition,this.selectionManager,this.editorElement),i?this.editor.loadDocument(i):this.editor.loadHTML(n)}registerSelectionManager(){return Ft.registerSelectionManager(this.selectionManager)}unregisterSelectionManager(){return Ft.unregisterSelectionManager(this.selectionManager)}render(){return this.compositionController.render()}reparse(){return this.composition.replaceHTML(this.editorElement.innerHTML)}compositionDidChangeDocument(t){if(this.notifyEditorElement(\"document-change\"),!this.handlingInput)return this.render()}compositionDidChangeCurrentAttributes(t){return this.currentAttributes=t,this.toolbarController.updateAttributes(this.currentAttributes),this.updateCurrentActions(),this.notifyEditorElement(\"attributes-change\",{attributes:this.currentAttributes})}compositionDidPerformInsertionAtRange(t){this.pasting&&(this.pastedRange=t)}compositionShouldAcceptFile(t){return this.notifyEditorElement(\"file-accept\",{file:t})}compositionDidAddAttachment(t){const e=this.attachmentManager.manageAttachment(t);return this.notifyEditorElement(\"attachment-add\",{attachment:e})}compositionDidEditAttachment(t){this.compositionController.rerenderViewForObject(t);const e=this.attachmentManager.manageAttachment(t);return this.notifyEditorElement(\"attachment-edit\",{attachment:e}),this.notifyEditorElement(\"change\")}compositionDidChangeAttachmentPreviewURL(t){return this.compositionController.invalidateViewForObject(t),this.notifyEditorElement(\"change\")}compositionDidRemoveAttachment(t){const e=this.attachmentManager.unmanageAttachment(t);return this.notifyEditorElement(\"attachment-remove\",{attachment:e})}compositionDidStartEditingAttachment(t,e){return this.attachmentLocationRange=this.composition.document.getLocationRangeOfAttachment(t),this.compositionController.installAttachmentEditorForAttachment(t,e),this.selectionManager.setLocationRange(this.attachmentLocationRange)}compositionDidStopEditingAttachment(t){this.compositionController.uninstallAttachmentEditor(),this.attachmentLocationRange=null}compositionDidRequestChangingSelectionToLocationRange(t){if(!this.loadingSnapshot||this.isFocused())return this.requestedLocationRange=t,this.compositionRevisionWhenLocationRangeRequested=this.composition.revision,this.handlingInput?void 0:this.render()}compositionWillLoadSnapshot(){this.loadingSnapshot=!0}compositionDidLoadSnapshot(){this.compositionController.refreshViewCache(),this.render(),this.loadingSnapshot=!1}getSelectionManager(){return this.selectionManager}attachmentManagerDidRequestRemovalOfAttachment(t){return this.removeAttachment(t)}compositionControllerWillSyncDocumentView(){return this.inputController.editorWillSyncDocumentView(),this.selectionManager.lock(),this.selectionManager.clearSelection()}compositionControllerDidSyncDocumentView(){return this.inputController.editorDidSyncDocumentView(),this.selectionManager.unlock(),this.updateCurrentActions(),this.notifyEditorElement(\"sync\")}compositionControllerDidRender(){this.requestedLocationRange&&(this.compositionRevisionWhenLocationRangeRequested===this.composition.revision&&this.selectionManager.setLocationRange(this.requestedLocationRange),this.requestedLocationRange=null,this.compositionRevisionWhenLocationRangeRequested=null),this.renderedCompositionRevision!==this.composition.revision&&(this.runEditorFilters(),this.composition.updateCurrentAttributes(),this.notifyEditorElement(\"render\")),this.renderedCompositionRevision=this.composition.revision}compositionControllerDidFocus(){return this.isFocusedInvisibly()&&this.setLocationRange({index:0,offset:0}),this.toolbarController.hideDialog(),this.notifyEditorElement(\"focus\")}compositionControllerDidBlur(){return this.notifyEditorElement(\"blur\")}compositionControllerDidSelectAttachment(t,e){return this.toolbarController.hideDialog(),this.composition.editAttachment(t,e)}compositionControllerDidRequestDeselectingAttachment(t){const e=this.attachmentLocationRange||this.composition.document.getLocationRangeOfAttachment(t);return this.selectionManager.setLocationRange(e[1])}compositionControllerWillUpdateAttachment(t){return this.editor.recordUndoEntry(\"Edit Attachment\",{context:t.id,consolidatable:!0})}compositionControllerDidRequestRemovalOfAttachment(t){return this.removeAttachment(t)}inputControllerWillHandleInput(){this.handlingInput=!0,this.requestedRender=!1}inputControllerDidRequestRender(){this.requestedRender=!0}inputControllerDidHandleInput(){if(this.handlingInput=!1,this.requestedRender)return this.requestedRender=!1,this.render()}inputControllerDidAllowUnhandledInput(){return this.notifyEditorElement(\"change\")}inputControllerDidRequestReparse(){return this.reparse()}inputControllerWillPerformTyping(){return this.recordTypingUndoEntry()}inputControllerWillPerformFormatting(t){return this.recordFormattingUndoEntry(t)}inputControllerWillCutText(){return this.editor.recordUndoEntry(\"Cut\")}inputControllerWillPaste(t){return this.editor.recordUndoEntry(\"Paste\"),this.pasting=!0,this.notifyEditorElement(\"before-paste\",{paste:t})}inputControllerDidPaste(t){return t.range=this.pastedRange,this.pastedRange=null,this.pasting=null,this.notifyEditorElement(\"paste\",{paste:t})}inputControllerWillMoveText(){return this.editor.recordUndoEntry(\"Move\")}inputControllerWillAttachFiles(){return this.editor.recordUndoEntry(\"Drop Files\")}inputControllerWillPerformUndo(){return this.editor.undo()}inputControllerWillPerformRedo(){return this.editor.redo()}inputControllerDidReceiveKeyboardCommand(t){return this.toolbarController.applyKeyboardCommand(t)}inputControllerDidStartDrag(){this.locationRangeBeforeDrag=this.selectionManager.getLocationRange()}inputControllerDidReceiveDragOverPoint(t){return this.selectionManager.setLocationRangeFromPointRange(t)}inputControllerDidCancelDrag(){this.selectionManager.setLocationRange(this.locationRangeBeforeDrag),this.locationRangeBeforeDrag=null}locationRangeDidChange(t){return this.composition.updateCurrentAttributes(),this.updateCurrentActions(),this.attachmentLocationRange&&!kt(this.attachmentLocationRange,t)&&this.composition.stopEditingAttachment(),this.notifyEditorElement(\"selection-change\")}toolbarDidClickButton(){if(!this.getLocationRange())return this.setLocationRange({index:0,offset:0})}toolbarDidInvokeAction(t){return this.invokeAction(t)}toolbarDidToggleAttribute(t){if(this.recordFormattingUndoEntry(t),this.composition.toggleCurrentAttribute(t),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarDidUpdateAttribute(t,e){if(this.recordFormattingUndoEntry(t),this.composition.setCurrentAttribute(t,e),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarDidRemoveAttribute(t){if(this.recordFormattingUndoEntry(t),this.composition.removeCurrentAttribute(t),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarWillShowDialog(t){return this.composition.expandSelectionForEditing(),this.freezeSelection()}toolbarDidShowDialog(t){return this.notifyEditorElement(\"toolbar-dialog-show\",{dialogName:t})}toolbarDidHideDialog(t){return this.thawSelection(),this.editorElement.focus(),this.notifyEditorElement(\"toolbar-dialog-hide\",{dialogName:t})}freezeSelection(){if(!this.selectionFrozen)return this.selectionManager.lock(),this.composition.freezeSelection(),this.selectionFrozen=!0,this.render()}thawSelection(){if(this.selectionFrozen)return this.composition.thawSelection(),this.selectionManager.unlock(),this.selectionFrozen=!1,this.render()}canInvokeAction(t){return!!this.actionIsExternal(t)||!(null===(e=this.actions[t])||void 0===e||null===(i=e.test)||void 0===i||!i.call(this));var e,i}invokeAction(t){return this.actionIsExternal(t)?this.notifyEditorElement(\"action-invoke\",{actionName:t}):null===(e=this.actions[t])||void 0===e||null===(i=e.perform)||void 0===i?void 0:i.call(this);var e,i}actionIsExternal(t){return/^x-./.test(t)}getCurrentActions(){const t={};for(const e in this.actions)t[e]=this.canInvokeAction(e);return t}updateCurrentActions(){const t=this.getCurrentActions();if(!Rt(t,this.currentActions))return this.currentActions=t,this.toolbarController.updateActions(this.currentActions),this.notifyEditorElement(\"actions-change\",{actions:this.currentActions})}runEditorFilters(){let t=this.composition.getSnapshot();if(Array.from(this.editor.filters).forEach((e=>{const{document:i,selectedRange:n}=t;t=e.call(this.editor,t)||{},t.document||(t.document=i),t.selectedRange||(t.selectedRange=n)})),e=t,i=this.composition.getSnapshot(),!kt(e.selectedRange,i.selectedRange)||!e.document.isEqualTo(i.document))return this.composition.loadSnapshot(t);var e,i}updateInputElement(){const t=function(t,e){const i=ri[e];if(i)return i(t);throw new Error(\"unknown content type: \".concat(e))}(this.compositionController.getSerializableElement(),\"text/html\");return this.editorElement.setInputElementValue(t)}notifyEditorElement(t,e){switch(t){case\"document-change\":this.documentChangedSinceLastRender=!0;break;case\"render\":this.documentChangedSinceLastRender&&(this.documentChangedSinceLastRender=!1,this.notifyEditorElement(\"change\"));break;case\"change\":case\"attachment-add\":case\"attachment-edit\":case\"attachment-remove\":this.updateInputElement()}return this.editorElement.notify(t,e)}removeAttachment(t){return this.editor.recordUndoEntry(\"Delete Attachment\"),this.composition.removeAttachment(t),this.render()}recordFormattingUndoEntry(t){const e=ht(t),i=this.selectionManager.getLocationRange();if(e||!St(i))return this.editor.recordUndoEntry(\"Formatting\",{context:this.getUndoContext(),consolidatable:!0})}recordTypingUndoEntry(){return this.editor.recordUndoEntry(\"Typing\",{context:this.getUndoContext(this.currentAttributes),consolidatable:!0})}getUndoContext(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return[this.getLocationContext(),this.getTimeContext(),...Array.from(e)]}getLocationContext(){const t=this.selectionManager.getLocationRange();return St(t)?t[0].index:t}getTimeContext(){return j.interval>0?Math.floor((new Date).getTime()/j.interval):0}isFocused(){var t;return this.editorElement===(null===(t=this.editorElement.ownerDocument)||void 0===t?void 0:t.activeElement)}isFocusedInvisibly(){return this.isFocused()&&!this.getLocationRange()}get actions(){return this.constructor.actions}}be(mn,\"actions\",{undo:{test(){return this.editor.canUndo()},perform(){return this.editor.undo()}},redo:{test(){return this.editor.canRedo()},perform(){return this.editor.redo()}},link:{test(){return this.editor.canActivateAttribute(\"href\")}},increaseNestingLevel:{test(){return this.editor.canIncreaseNestingLevel()},perform(){return this.editor.increaseNestingLevel()&&this.render()}},decreaseNestingLevel:{test(){return this.editor.canDecreaseNestingLevel()},perform(){return this.editor.decreaseNestingLevel()&&this.render()}},attachFiles:{test:()=>!0,perform(){return P.pickFiles(this.editor.insertFiles)}}}),mn.proxyMethod(\"getSelectionManager().setLocationRange\"),mn.proxyMethod(\"getSelectionManager().getLocationRange\");var pn=Object.freeze({__proto__:null,AttachmentEditorController:wi,CompositionController:Ti,Controller:Fi,EditorController:mn,InputController:qi,Level0InputController:Ji,Level2InputController:Qi,ToolbarController:gn}),fn=Object.freeze({__proto__:null,MutationObserver:Pi,SelectionChangeObserver:wt}),bn=Object.freeze({__proto__:null,FileVerificationOperation:Oi,ImagePreloadOperation:Ae});mt(\"trix-toolbar\",\"%t {\\n display: block;\\n}\\n\\n%t {\\n white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n background-color: #ffdddd;\\n}\");class vn extends HTMLElement{connectedCallback(){\"\"===this.innerHTML&&(this.innerHTML=M.getDefaultHTML())}}let An=0;const xn=function(t){if(!t.hasAttribute(\"contenteditable\"))return t.setAttribute(\"contenteditable\",\"\"),function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.times=1,d(t,e)}(\"focus\",{onElement:t,withCallback:()=>yn(t)})},yn=function(t){return Cn(t),Rn(t)},Cn=function(t){var e,i;if(null!==(e=(i=document).queryCommandSupported)&&void 0!==e&&e.call(i,\"enableObjectResizing\"))return document.execCommand(\"enableObjectResizing\",!1,!1),d(\"mscontrolselect\",{onElement:t,preventDefault:!0})},Rn=function(t){var i,n;if(null!==(i=(n=document).queryCommandSupported)&&void 0!==i&&i.call(n,\"DefaultParagraphSeparator\")){const{tagName:t}=e.default;if([\"div\",\"p\"].includes(t))return document.execCommand(\"DefaultParagraphSeparator\",!1,t)}},En=o.forcesObjectResizing?{display:\"inline\",width:\"auto\"}:{display:\"inline-block\",width:\"1px\"};mt(\"trix-editor\",\"%t {\\n display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n pointer-events: none;\\n white-space: pre-line;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \".concat(\"[data-trix-attachment]\",\" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \").concat(\"[data-trix-attachment]\",\" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \").concat(\"[data-trix-attachment]\",\" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \").concat(En.display,\" !important;\\n width: \").concat(En.width,\" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\"));class Sn extends HTMLElement{get trixId(){return this.hasAttribute(\"trix-id\")?this.getAttribute(\"trix-id\"):(this.setAttribute(\"trix-id\",++An),this.trixId)}get labels(){const t=[];this.id&&this.ownerDocument&&t.push(...Array.from(this.ownerDocument.querySelectorAll(\"label[for='\".concat(this.id,\"']\"))||[]));const e=p(this,{matchingSelector:\"label\"});return e&&[this,null].includes(e.control)&&t.push(e),t}get toolbarElement(){var t;if(this.hasAttribute(\"toolbar\"))return null===(t=this.ownerDocument)||void 0===t?void 0:t.getElementById(this.getAttribute(\"toolbar\"));if(this.parentNode){const t=\"trix-toolbar-\".concat(this.trixId);this.setAttribute(\"toolbar\",t);const e=C(\"trix-toolbar\",{id:t});return this.parentNode.insertBefore(e,this),e}}get form(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.form}get inputElement(){var t;if(this.hasAttribute(\"input\"))return null===(t=this.ownerDocument)||void 0===t?void 0:t.getElementById(this.getAttribute(\"input\"));if(this.parentNode){const t=\"trix-input-\".concat(this.trixId);this.setAttribute(\"input\",t);const e=C(\"input\",{type:\"hidden\",id:t});return this.parentNode.insertBefore(e,this.nextElementSibling),e}}get editor(){var t;return null===(t=this.editorController)||void 0===t?void 0:t.editor}get name(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.name}get value(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.value}set value(t){var e;this.defaultValue=t,null===(e=this.editor)||void 0===e||e.loadHTML(this.defaultValue)}notify(t,e){if(this.editorController)return g(\"trix-\".concat(t),{onElement:this,attributes:e})}setInputElementValue(t){this.inputElement&&(this.inputElement.value=t)}connectedCallback(){this.hasAttribute(\"data-trix-internal\")||(xn(this),function(t){if(!t.hasAttribute(\"role\"))t.setAttribute(\"role\",\"textbox\")}(this),function(t){if(t.hasAttribute(\"aria-label\")||t.hasAttribute(\"aria-labelledby\"))return;const e=function(){const e=Array.from(t.labels).map((e=>{if(!e.contains(t))return e.textContent})).filter((t=>t)),i=e.join(\" \");return i?t.setAttribute(\"aria-label\",i):t.removeAttribute(\"aria-label\")};e(),d(\"focus\",{onElement:t,withCallback:e})}(this),this.editorController||(g(\"trix-before-initialize\",{onElement:this}),this.editorController=new mn({editorElement:this,html:this.defaultValue=this.value}),requestAnimationFrame((()=>g(\"trix-initialize\",{onElement:this})))),this.editorController.registerSelectionManager(),this.registerResetListener(),this.registerClickListener(),function(t){if(!document.querySelector(\":focus\")&&t.hasAttribute(\"autofocus\")&&document.querySelector(\"[autofocus]\")===t)t.focus()}(this))}disconnectedCallback(){var t;return null===(t=this.editorController)||void 0===t||t.unregisterSelectionManager(),this.unregisterResetListener(),this.unregisterClickListener()}registerResetListener(){return this.resetListener=this.resetBubbled.bind(this),window.addEventListener(\"reset\",this.resetListener,!1)}unregisterResetListener(){return window.removeEventListener(\"reset\",this.resetListener,!1)}registerClickListener(){return this.clickListener=this.clickBubbled.bind(this),window.addEventListener(\"click\",this.clickListener,!1)}unregisterClickListener(){return window.removeEventListener(\"click\",this.clickListener,!1)}resetBubbled(t){if(!t.defaultPrevented&&t.target===this.form)return this.reset()}clickBubbled(t){if(t.defaultPrevented)return;if(this.contains(t.target))return;const e=p(t.target,{matchingSelector:\"label\"});return e&&Array.from(this.labels).includes(e)?this.focus():void 0}reset(){this.value=this.defaultValue}}const kn={VERSION:\"2.0.4\",config:W,core:oi,models:Ri,views:Ei,controllers:pn,observers:fn,operations:bn,elements:Object.freeze({__proto__:null,TrixEditorElement:Sn,TrixToolbarElement:vn}),filters:Object.freeze({__proto__:null,Filter:di,attachmentGalleryFilter:gi})};Object.assign(kn,Ri),window.Trix=kn,setTimeout((function(){customElements.get(\"trix-toolbar\")||customElements.define(\"trix-toolbar\",vn),customElements.get(\"trix-editor\")||customElements.define(\"trix-editor\",Sn)}),0);export{kn as default};\n//# sourceMappingURL=trix.esm.min.js.map\n","var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar activestorage = {exports: {}};\n\n(function (module, exports) {\n(function(global, factory) {\n factory(exports) ;\n})(commonjsGlobal, (function(exports) {\n var sparkMd5 = {\n exports: {}\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 var SparkMD5 = sparkMd5.exports;\n const fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n class 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 function getMetaValue(name) {\n const element = findElement(document.head, `meta[name=\"${name}\"]`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n function 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 function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n }\n function 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 function 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 class BlobRecord {\n constructor(file, checksum, url) {\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 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 class 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 let id = 0;\n class DirectUpload {\n constructor(file, url, delegate) {\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\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);\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 function notify(object, methodName, ...messages) {\n if (object && typeof object[methodName] == \"function\") {\n return object[methodName](...messages);\n }\n }\n class 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 * 100;\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 }\n }\n const inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n class 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 const processingAttribute = \"data-direct-uploads-processing\";\n const submitButtonsByForm = new WeakMap;\n let started = false;\n function 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 function didClick(event) {\n const {target: target} = event;\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n function 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 function 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 function disable(input) {\n input.disabled = true;\n }\n function enable(input) {\n input.disabled = false;\n }\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n setTimeout(autostart, 1);\n exports.DirectUpload = DirectUpload;\n exports.start = start;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n}));\n}(activestorage, activestorage.exports));\n\nclass AttachmentUpload {\n constructor(attachment, element) {\n this.attachment = attachment;\n this.element = element;\n this.directUpload = new activestorage.exports.DirectUpload(attachment.file, this.directUploadUrl, this);\n }\n\n start() {\n this.directUpload.create(this.directUploadDidComplete.bind(this));\n }\n\n directUploadWillStoreFileWithXHR(xhr) {\n xhr.upload.addEventListener(\"progress\", event => {\n const progress = event.loaded / event.total * 100;\n this.attachment.setUploadProgress(progress);\n });\n }\n\n directUploadDidComplete(error, attributes) {\n if (error) {\n throw new Error(`Direct upload failed: ${error}`)\n }\n\n this.attachment.setAttributes({\n sgid: attributes.attachable_sgid,\n url: this.createBlobUrl(attributes.signed_id, attributes.filename)\n });\n }\n\n createBlobUrl(signedId, filename) {\n return this.blobUrlTemplate\n .replace(\":signed_id\", signedId)\n .replace(\":filename\", encodeURIComponent(filename))\n }\n\n get directUploadUrl() {\n return this.element.dataset.directUploadUrl\n }\n\n get blobUrlTemplate() {\n return this.element.dataset.blobUrlTemplate\n }\n}\n\naddEventListener(\"trix-attachment-add\", event => {\n const { attachment, target } = event;\n\n if (attachment.file) {\n const upload = new AttachmentUpload(attachment, target);\n upload.start();\n }\n});\n"],"names":["logger","self","console","WebSocket","log","messages","this","enabled","push","Date","now","adapters","getTime","secondsSince","time","ConnectionMonitor","constructor","connection","visibilityDidChange","bind","reconnectAttempts","start","isRunning","startedAt","stoppedAt","startPolling","addEventListener","staleThreshold","stop","stopPolling","removeEventListener","recordPing","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","clearTimeout","pollTimeout","setTimeout","reconnectIfStale","getPollInterval","reconnectionBackoffRate","Math","pow","min","random","connectionIsStale","refreshedAt","disconnectedRecently","reopen","document","visibilityState","isOpen","message_types","protocols","supportedProtocols","slice","length","indexOf","Connection","consumer","open","subscriptions","monitor","disconnected","send","data","webSocket","JSON","stringify","isActive","getState","uninstallEventHandlers","url","installEventHandlers","close","allowReconnect","error","reopenDelay","getProtocol","protocol","isState","isProtocolSupported","call","states","state","readyState","toLowerCase","eventName","events","handler","prototype","message","event","identifier","reason","reconnect","type","parse","welcome","reload","disconnect","ping","confirmation","confirmSubscription","notify","rejection","reject","notifyAll","willAttemptReconnect","Subscription","params","mixin","object","properties","key","value","extend","perform","action","command","unsubscribe","remove","pendingSubscriptions","guarantee","subscription","startGuaranteeing","forget","filter","s","stopGuaranteeing","retrySubscribing","retryTimeout","map","subscribe","Subscriptions","guarantor","create","channelName","channel","add","ensureActiveConnection","findAll","sendCommand","callbackName","args","undefined","Consumer","_url","createWebSocketURL","connect","test","a","createElement","href","replace","createConsumer","getConfig","name","element","head","querySelector","getAttribute","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","d","definition","o","Object","defineProperty","enumerable","get","obj","prop","hasOwnProperty","r","Symbol","toStringTag","window","Reflect","customElements","polyfillWrapFlushCallback","BuiltInHTMLElement","HTMLElement","construct","setPrototypeOf","raise","errorConstructor","requestSubmit","submitter","form","TypeError","DOMException","validateSubmitter","click","hidden","appendChild","removeChild","HTMLFormElement","submittersByForm","WeakMap","clickCaptured","target","Element","Node","parentElement","candidate","closest","findSubmitterFromClickTarget","set","FrameLoadingStyle","FetchMethod","FormSubmissionState","FormEnctype","TimingMetric","VisitState","Event","navigator","vendor","SubmitEvent","FrameElement","super","loaded","Promise","resolve","delegate","delegateConstructor","observedAttributes","connectedCallback","disconnectedCallback","sourceURLReloaded","attributeChangedCallback","loadingStyleChanged","completeChanged","sourceURLChanged","disabledChanged","src","setAttribute","removeAttribute","loading","lazy","eager","disabled","hasAttribute","autoscroll","complete","isLoading","ownerDocument","isPreview","_a","_b","documentElement","expandURL","locatable","URL","toString","baseURI","getAnchor","anchorMatch","hash","match","getAction","locationIsVisitable","location","rootLocation","baseURL","prefix","origin","pathname","endsWith","getPrefix","startsWith","isPrefixedBy","split","getPathComponents","getLastPathComponent","getRequestURL","anchor","toCacheKey","FetchResponse","response","succeeded","ok","failed","clientError","statusCode","serverError","redirected","isHTML","contentType","status","header","responseText","clone","text","responseHTML","headers","isAction","activateScriptElement","createdScriptElement","cspNonce","getMetaContent","nonce","textContent","async","destinationElement","sourceElement","attributes","copyElementAttributes","dispatch","cancelable","detail","CustomEvent","bubbles","isConnected","dispatchEvent","nextAnimationFrame","requestAnimationFrame","parseHTMLDocument","html","DOMParser","parseFromString","unindent","strings","values","lines","reduce","result","string","i","interpolate","indent","line","join","uuid","Array","from","_","floor","attributeName","elements","markAsBusy","localName","clearBusyState","waitForLoad","timeoutInMilliseconds","onComplete","once","getHistoryMethodForAction","history","replaceState","pushState","getMetaElement","content","FetchRequest","method","body","URLSearchParams","abortController","AbortController","resolveRequestPromise","_value","defaultHeaders","searchParams","entries","cancel","abort","fetchOptions","prepareHeadersForRequest","allowRequestToBeIntercepted","requestStarted","fetch","receive","willDelegateErrorHandling","requestErrored","requestFinished","fetchResponse","defaultPrevented","requestPreventedHandlingResponse","requestSucceededWithResponse","requestFailedWithResponse","toUpperCase","credentials","redirect","isIdempotent","signal","abortSignal","referrer","Accept","acceptResponseType","mimeType","requestInterception","resume","request","AppearanceObserver","started","intersect","lastEntry","isIntersecting","elementAppearedInViewport","intersectionObserver","IntersectionObserver","observe","unobserve","StreamMessage","fragment","querySelectorAll","streamElement","importNode","inertScriptElement","templateElement","replaceWith","importStreamElements","static","template","innerHTML","createDocumentFragment","FormSubmission","formElement","mustRedirect","initialized","formData","FormData","append","buildFormData","File","search","mergeFormDataEntries","fetchRequest","_element","_submitter","confirm","post","put","patch","delete","fetchMethodFromString","formElementAction","enctype","urlEncoded","stringFormData","encoding","multipart","plain","formEnctypeFromString","concat","requesting","confirmationMessage","confirmMethod","stopping","stopped","token","cookieName","cookie","find","decodeURIComponent","getCookieValue","requestAcceptsTurboStreamResponse","_request","waiting","formSubmission","formSubmissionStarted","success","formSubmissionFailedWithResponse","requestMustRedirect","responseSucceededWithoutRedirect","Error","formSubmissionErrored","receiving","formSubmissionSucceededWithResponse","assign","formSubmissionFinished","some","Snapshot","activeElement","children","hasAnchor","getElementForAnchor","firstAutofocusableElement","permanentElements","queryPermanentElementsAll","getPermanentElementById","id","getPermanentElementMapForSnapshot","snapshot","permanentElementMap","currentPermanentElement","newPermanentElement","node","FormSubmitObserver","eventTarget","submitCaptured","submitBubbled","submissionDoesNotDismissDialog","getElementsByName","HTMLIFrameElement","submissionDoesNotTargetIFrame","willSubmitForm","preventDefault","stopImmediatePropagation","formSubmitted","View","resolveRenderPromise","resolveInterceptionPromise","scrollToAnchor","scrollToElement","focusElement","scrollToPosition","x","y","scrollToAnchorFromLocation","scrollIntoView","focus","scrollRoot","scrollTo","scrollToTop","renderer","shouldRender","newSnapshot","renderPromise","prepareToRenderSnapshot","renderInterception","options","render","renderElement","allowsImmediateRender","renderSnapshot","viewRenderedSnapshot","preloadOnLoadLinksForView","finishRenderingSnapshot","invalidate","reloadReason","viewInvalidated","markAsPreview","prepareToRender","finishRendering","FrameView","LinkInterceptor","clickBubbled","respondsToEventTarget","clickEvent","linkClicked","shouldInterceptLinkClick","originalEvent","linkClickIntercepted","willVisit","_event","LinkClickObserver","MouseEvent","clickEventIsSignificant","composedPath","link","findLinkFromClickTarget","doesNotTargetIFrame","getLocationForLink","willFollowLinkToLocation","followedLinkToLocation","isContentEditable","which","altKey","ctrlKey","metaKey","shiftKey","FormLinkClickObserver","linkInterceptor","willSubmitFormLinkToLocation","turboFrame","turboAction","turboConfirm","submittedFormLinkToLocation","Bardo","callback","bardo","enter","leave","enteringBardo","replaceNewPermanentElementWithPlaceholder","replaceCurrentPermanentElementWithClone","replacePlaceholderWithPermanentElement","leavingBardo","permanentElement","placeholder","createPlaceholderForPermanentElement","cloneNode","getPlaceholderById","placeholders","Renderer","currentSnapshot","willRender","promise","resolvingFunctions","preservingPermanentElements","focusFirstAutofocusableElement","connectedSnapshot","elementIsFocusable","contains","currentElement","newElement","FrameRenderer","destinationRange","createRange","selectNodeContents","deleteContents","frameElement","sourceRange","extractContents","loadFrameElement","scrollFrameIntoView","activateScriptElements","willRenderFrame","firstElementChild","block","behavior","defaultValue","readScrollBehavior","newScriptElements","activatedScriptElement","ProgressBar","hiding","visible","trickle","setValue","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","installStylesheetElement","defaultCSS","animationDuration","show","installProgressElement","startTrickling","hide","fadeProgressElement","uninstallProgressElement","stopTrickling","refresh","insertBefore","firstChild","style","width","opacity","parentNode","trickleInterval","setInterval","clearInterval","className","HeadSnapshot","arguments","detailsByOuterHTML","elementIsNoscript","elementWithoutNonce","outerHTML","details","elementType","tracked","elementIsTracked","trackedElementSignature","keys","getScriptElementsNotInSnapshot","getElementsMatchingTypeNotInSnapshot","getStylesheetElementsNotInSnapshot","matchedType","provisionalElements","getMetaValue","findMetaElementByName","elementIsMetaElementWithName","elementIsScript","tagName","elementIsStylesheet","PageSnapshot","headSnapshot","fromDocument","clonedElement","selectElements","clonedSelectElements","index","source","option","selectedOptions","selected","clonedPasswordInput","headElement","getSetting","cacheControlValue","isPreviewable","isCacheable","isVisitable","defaultOptions","historyChanged","visitCachedSnapshot","updateHistory","shouldCacheSnapshot","acceptsStreamResponse","SystemStatusCode","PageStage","Visit","restorationIdentifier","timingMetrics","followedRedirect","scrolled","snapshotCached","snapshotHTML","isSamePage","locationWithActionIsSamePage","adapter","view","restorationData","getRestorationDataForIdentifier","silent","recordTimingMetric","visitStart","visitStarted","cancelRender","canceled","visitEnd","completed","followRedirect","visitCompleted","fail","visitFailed","changeHistory","update","issueRequest","hasPreloadedResponse","simulateRequest","shouldIssueRequest","startRequest","recordResponse","finishRequest","requestStart","visitRequestStarted","isSuccessful","visitRequestCompleted","visitRequestFailedWithStatusCode","requestEnd","visitRequestFinished","loadResponse","cacheSnapshot","renderPage","fromHTMLString","performScroll","visitRendered","renderError","getCachedSnapshot","getCachedSnapshotForLocation","getPreloadedSnapshot","hasCachedSnapshot","loadCachedSnapshot","redirectedToLocation","visitProposedToLocation","goToSamePageAnchor","_response","contentTypeMismatch","_error","networkFailure","forceReloaded","scrollToRestoredPosition","visitScrolledToSamePageLocation","lastRenderedLocation","scrollPosition","metric","getTimingMetrics","then","frame","cancelAnimationFrame","BrowserAdapter","session","progressBar","showProgressBar","startVisit","visit","showVisitProgressBarAfterDelay","timeoutFailure","context","_visit","hideVisitProgressBar","pageInvalidated","_formSubmission","showFormProgressBarAfterDelay","hideFormProgressBar","visitProgressBarTimeout","progressBarDelay","formProgressBarTimeout","CacheObserver","removeStaleElements","staleElements","FrameRedirector","formSubmitObserver","_location","shouldRedirect","findFrameElement","shouldSubmit","meta","submissionIsNavigatable","elementIsNavigatable","History","pageLoaded","onPopState","shouldHandlePopState","turbo","historyPoppedToLocationWithRestorationIdentifier","onPageLoad","updateRestorationData","additionalData","assumeControlOfScrollRestoration","previousScrollRestoration","scrollRestoration","relinquishControlOfScrollRestoration","pageIsLoaded","Navigator","proposeVisit","allowsVisitingLocationWithAction","currentVisit","submitForm","clearSnapshotCache","visitOptions","getActionForFormSubmission","currentAnchor","isRestorationToTop","oldURL","newURL","PageObserver","stage","initial","interpretReadyState","pageIsInteractive","pageIsComplete","pageWillUnload","interactive","pageBecameInteractive","ScrollObserver","onScroll","updatePosition","pageXOffset","pageYOffset","position","scrollPositionChanged","StreamMessageRenderer","permanentElementsInDocument","permanentElementInDocument","elementInStream","getPermanentElementMapForFragment","StreamObserver","sources","Set","inspectFetchResponse","fetchResponseFromEvent","fetchResponseIsStream","receiveMessageResponse","receiveMessageEvent","receiveMessageHTML","connectStreamSource","streamSourceIsConnected","disconnectStreamSource","has","receivedMessageFromStream","wrap","ErrorRenderer","replaceChild","replaceHeadAndBody","newHead","replaceableElement","scriptElements","PageRenderer","HTMLBodyElement","trackedElementsAreIdentical","mergeHead","replaceBody","currentHeadSnapshot","newHeadSnapshot","newStylesheetElements","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","activateNewBody","assignNewBody","loadingElements","newHeadStylesheetElements","all","newHeadScriptElements","currentHeadProvisionalElements","newHeadProvisionalElements","adoptNode","activateNewBodyScriptElements","newBodyScriptElements","SnapshotCache","size","snapshots","read","touch","write","clear","splice","unshift","trim","PageView","snapshotCache","viewWillCacheSnapshot","cachedSnapshot","fromElement","Preloader","selector","preloadURL","extendURLWithDeprecatedProperties","defineProperties","deprecatedLocationPropertyDescriptors","absoluteURL","StreamActions","after","targetElements","forEach","e","templateContent","nextSibling","removeDuplicateTargetChildren","before","prepend","replaceChildren","preloader","pageObserver","cacheObserver","linkClickObserver","scrollObserver","streamObserver","formLinkClickObserver","frameRedirector","streamMessageRenderer","drive","formMode","disable","registerAdapter","getElementById","renderStreamMessage","clearCache","setProgressBarDelay","delay","setFormMode","mode","applicationAllowsFollowingLinkToLocation","getActionForLink","applicationAllowsVisitingLocation","notifyApplicationAfterVisitingLocation","notifyApplicationAfterPageLoad","notifyApplicationAfterVisitingSamePageLocation","notifyApplicationBeforeCachingSnapshot","notifyApplicationBeforeRender","_snapshot","_isPreview","notifyApplicationAfterRender","frameLoaded","notifyApplicationAfterFrameLoad","frameRendered","notifyApplicationAfterFrameRender","ev","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","newBody","timing","HashChangeEvent","submitterIsNavigatable","container","withinFrame","cache","resetCacheControl","setCacheControl","exemptPageFromCache","exemptPageFromPreview","setMetaContent","navigator$1","Turbo","freeze","__proto__","warn","setConfirmMethod","getFrameElementById","activateElement","currentURL","left","right","urlsAreEqual","StreamElement","performAction","beforeRenderEvent","duplicateChildren","c","existingChildren","flatMap","newChildrenIds","includes","actionFunction","targetElementsById","targets","targetElementsByQuery","HTMLTemplateElement","description","newStream","StreamSourceElement","streamSource","EventSource","setConsumer","newConsumer","walk","RegExp","isArray","acc","camel","m","fetchResponseLoaded","_fetchResponse","currentFetchRequest","resolveVisitPromise","connected","hasBeenLoaded","ignoredAttributes","previousFrameElement","appearanceObserver","loadingStyle","loadSourceURL","isIgnoringChangesTo","ignoringChangesToAttribute","sourceURL","newFrameElement","extractForeignFrameElement","willHandleFrameMissingFromResponse","visitResponse","shouldInterceptNavigation","navigateFrame","currentNavigationElement","proposeVisitIfNavigatedWithAction","newFrame","_newElement","pageSnapshot","withCurrentNavigationElement","getVisitAction","Response","wrapped","CSS","escape","formActionIsVisitable","define","currentScript","TurboCableStreamSourceElement","getConsumer","subscribeTo","received","dispatchMessageEvent","MessageEvent","signed_stream_name","dataset","formMethod","EventListener","eventOptions","unorderedBindings","bindingConnected","binding","bindingDisconnected","handleEvent","extendedEvent","immediatePropagationStopped","extendEvent","bindings","hasBindings","sort","leftIndex","rightIndex","Dispatcher","application","eventListenerMaps","Map","eventListeners","eventListener","listeners","fetchEventListenerForBinding","clearEventListeners","clearEventListenersForBinding","handleError","removeMappedEventListenerFor","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","fetchEventListener","createEventListener","parts","defaultActionDescriptorFilters","stopPropagation","prevent","descriptorPattern","camelize","char","namespaceCamelize","capitalize","charAt","dasherize","Action","descriptor","schema","defaultEventNames","getDefaultEventNameForElement","methodName","keyFilter","descriptorString","matches","eventTargetName","parseActionDescriptorString","eventFilter","isFilterTarget","filteres","modifiers","ctrl","alt","shift","modifier","standardFilter","keyMappings","pattern","typecast","button","input","select","textarea","o_O","Binding","willBeInvokedByEvent","applyEventModifiers","invokeWithEvent","controller","actionDescriptorFilters","passes","currentTarget","actionEvent","logDebugActivity","KeyboardEvent","scope","containsElement","ElementObserver","mutationObserverInit","childList","subtree","mutationObserver","MutationObserver","mutations","processMutations","pause","takeRecords","matchElementsInTree","removeElement","addElement","mutation","processMutation","processAttributeChange","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","nodeType","ELEMENT_NODE","elementMatched","elementUnmatched","AttributeObserver","elementObserver","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","Multimap","valuesByKey","prune","del","hasKey","hasValue","getValuesForKey","getKeysForValue","_key","_values","SelectorObserver","matchesByElement","selectorMatchElement","selectorMatched","selectorUnmatched","_attributeName","matchedBefore","StringMapObserver","stringMap","attributeOldValue","knownAttributeNames","refreshAttribute","oldValue","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","attribute","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","unmatchedTokens","matchedTokens","refreshTokensForElement","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","max","zip","findIndex","previousToken","currentToken","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","connectAction","disconnectAction","forToken","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","invokeChangedCallback","writer","valueDescriptorNameMap","valueDescriptors","rawValue","rawOldValue","changedMethodName","changedMethod","reader","descriptors","hasMethodName","TargetObserver","targetsByName","disconnectAllTargets","connectTarget","disconnectTarget","targetConnected","targetDisconnected","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","getOwnStaticArrayValues","getPrototypeOf","reverse","OutletObserver","outletsByName","outletElementsByName","selectorObserverMap","outletDefinitions","outletName","observer","dependentContexts","disconnectAllOutlets","_selector","outlet","getOutlet","connectOutlet","getOutletFromMap","disconnectOutlet","hasOutlet","controllerAttribute","outletConnected","outletDisconnected","outlets","getSelectorForOutletName","outletDependencies","dependencies","router","modules","controllerConstructor","dependentControllerIdentifiers","identifiers","contexts","getControllerForElementAndIdentifier","Context","functionName","bindingObserver","dispatcher","valueObserver","targetObserver","outletObserver","initialize","invokeControllerMethod","getOwnKeys","getOwnPropertySymbols","getOwnPropertyNames","extendWithReflect","extended","b","testReflectExtension","Module","shadowConstructor","shadowProperties","shadowingDescriptor","getOwnPropertyDescriptor","getShadowedDescriptor","getShadowProperties","shadow","blessedProperties","blessing","getBlessedProperties","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","ClassMap","getDataKey","getAll","getAttributeName","getAttributeNameForKey","DataMap","Guide","warnedKeysByObject","warnedKeys","attributeValueContainsToken","TargetSet","targetName","targetNames","findTarget","findLegacyTarget","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","targetAttributeForScope","getLegacySelectorForTargetName","deprecate","targetDescriptor","targetAttribute","revisedAttributeName","guide","OutletSet","controllerElement","outletNames","findOutlet","findAllOutlets","outletAttributeForScope","queryElements","matchesElement","Scope","classes","controllerSelector","documentScope","isDocumentScope","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","loadDefinition","unloadIdentifier","connectModule","afterLoad","disconnectModule","getContextForElementAndIdentifier","defaultSchema","tab","esc","space","up","down","home","end","objectFromEntries","n","array","memo","k","v","parseValueDefinitionPair","typeDefinition","payload","typeFromObject","parseValueTypeConstant","typeObject","defaultValueType","parseValueTypeDefault","default","parseValueTypeObject","typeFromDefaultValue","typeFromConstant","parseValueTypeDefinition","constant","defaultValuesByType","defaultValueForDefinition","hasCustomDefaultValue","readers","writers","valueDescriptorForTokenAndTypeDefinition","Boolean","Number","String","boolean","number","writeJSON","Controller","shouldLoad","_identifier","_application","blessings","classDefinition","targetDefinition","valueDefinitionPairs","pairs","getOwnStaticObjectPairs","readInheritableStaticObjectPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","propertiesForValueDefinitionPair","outletDefinition","camelizedName","outletController","propertiesForOutletDefinition","debug","logFormattedMessage","register","load","registerActionOption","rest","unload","controllers","onerror","groupCollapsed","groupEnd","Stimulus","bottom","auto","basePlacements","clippingParents","viewport","popper","reference","variationPlacements","placement","beforeRead","afterRead","beforeMain","main","afterMain","beforeWrite","afterWrite","modifierPhases","getNodeName","nodeName","getWindow","defaultView","isElement","isHTMLElement","isShadowRoot","ShadowRoot","phase","fn","_ref","styles","effect","_ref2","initialStyles","strategy","top","margin","arrow","property","requires","getBasePlacement","round","getUAString","uaData","userAgentData","brands","item","brand","version","userAgent","isLayoutViewport","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","offsetHeight","height","visualViewport","addVisualOffsets","offsetLeft","offsetTop","getLayoutRect","abs","parent","child","rootNode","getRootNode","next","isSameNode","host","getComputedStyle","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getOffsetParent","isFirefox","currentNode","css","transform","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mergePaddingObject","paddingObject","expandToHashMap","hashMap","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","axis","len","padding","rects","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","clientHeight","clientWidth","centerToReference","center","offset","axisProp","centerOffset","_options$element","requiresIfExists","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","passive","instance","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","scrollLeft","scrollTop","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getScrollParent","listScrollParents","list","_element$ownerDocumen","isBody","updatedList","rectToClientRect","rect","getClientRectFromMixedType","clippingParent","layoutViewport","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","direction","getDocumentRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","boundary","_options$rootBoundary","rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","mainClippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","getClippingRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","_i","fittingPlacement","reset","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_len","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","order","visited","dep","depModifier","debounce","pending","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","merged","orderModifiers","current","existing","_ref3$options","cleanupFn","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","destroy","onFirstUpdate","createPopper","TRANSITION_END","getSelector","hrefAttribute","getSelectorFromElement","getElementFromSelector","triggerTransitionEnd","jquery","getElement","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","summary","isDisabled","classList","findShadowRoot","attachShadow","root","noop","reflow","getjQuery","jQuery","DOMContentLoadedCallbacks","isRTL","dir","defineJQueryPlugin","plugin","$","NAME","JQUERY_NO_CONFLICT","jQueryInterface","Constructor","noConflict","execute","executeAfterTransition","transitionElement","waitForTransition","emulatedDuration","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","getTransitionDurationFromElement","called","getNextActiveElement","shouldGetNext","isCycleAllowed","listLength","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","makeEventUid","uid","getElementEvents","findHandler","callable","delegationSelector","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","addHandler","oneOff","wrapFunction","relatedTarget","delegateTarget","handlers","previousFunction","domElements","domElement","hydrateObj","EventHandler","off","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","elementEvent","keyHandlers","trigger","jQueryEvent","nativeDispatch","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","evt","_unused","configurable","elementMap","Data","instanceMap","normalizeData","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","bsKeys","pureKey","getDataAttribute","Config","Default","DefaultType","_getConfig","config","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","jsonConfig","configTypes","expectedTypes","valueType","BaseComponent","_config","DATA_KEY","dispose","EVENT_KEY","_queueCallback","isAnimated","getInstance","VERSION","enableDismissTrigger","component","getOrCreateInstance","EVENT_KEY$b","EVENT_CLOSE","EVENT_CLOSED","Alert","_destroyElement","each","SELECTOR_DATA_TOGGLE$5","Button","toggle","SelectorEngine","findOne","parents","ancestor","prev","previous","previousElementSibling","nextElementSibling","focusableChildren","focusables","el","EVENT_KEY$9","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","Default$c","endCallback","leftCallback","rightCallback","DefaultType$c","Swipe","isSupported","_deltaX","_supportPointerEvents","PointerEvent","_initEvents","_start","_eventIsPointerPenTouch","clientX","touches","_end","_handleSwipe","_move","absDeltaX","pointerType","maxTouchPoints","EVENT_KEY$8","DATA_API_KEY$5","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN$1","EVENT_MOUSEENTER$1","EVENT_MOUSELEAVE$1","EVENT_DRAG_START","EVENT_LOAD_DATA_API$3","EVENT_CLICK_DATA_API$5","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE$2","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","KEY_TO_DIRECTION","Default$b","interval","keyboard","ride","DefaultType$b","Carousel","_interval","_activeElement","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","_addEventListeners","cycle","_slide","nextWhenVisible","_clearInterval","_updateInterval","_maybeEnableCycle","to","items","_getItems","activeIndex","_getItemIndex","_getActive","defaultInterval","_keydown","_addTouchEventListeners","img","swipeConfig","_directionToOrder","_setActiveIndicatorElement","activeIndicator","newActiveIndicator","elementInterval","parseInt","isNext","nextElement","nextElementIndex","triggerEvent","_orderToDirection","isCycling","directionalClassName","orderClassName","_isAnimated","carousel","slideIndex","carousels","EVENT_KEY$7","EVENT_SHOW$6","EVENT_SHOWN$6","EVENT_HIDE$6","EVENT_HIDDEN$6","EVENT_CLICK_DATA_API$4","CLASS_NAME_SHOW$7","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_DEEPER_CHILDREN","SELECTOR_DATA_TOGGLE$4","Default$a","DefaultType$a","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","_isShown","activeChildren","_getFirstLevelChildren","activeInstance","dimension","_getDimension","scrollSize","triggerArray","selectorElements","NAME$a","EVENT_KEY$6","DATA_API_KEY$3","ARROW_UP_KEY$1","ARROW_DOWN_KEY$1","EVENT_HIDE$5","EVENT_HIDDEN$5","EVENT_SHOW$5","EVENT_SHOWN$5","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW$6","SELECTOR_DATA_TOGGLE$3","SELECTOR_DATA_TOGGLE_SHOWN","SELECTOR_MENU","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$9","autoClose","display","popperConfig","DefaultType$9","Dropdown","_popper","_parent","_menu","_inNavbar","_detectNavbar","_createPopper","_completeHide","referenceElement","_getPopperConfig","_getPlacement","parentDropdown","isEnd","_getOffset","popperData","defaultBsPopperConfig","_selectMenuItem","openToggles","isMenuTarget","isInput","isEscapeEvent","isUpOrDownEvent","getToggleButton","dataApiKeydownHandler","clearMenus","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","PROPERTY_PADDING","PROPERTY_MARGIN","ScrollBarHelper","getWidth","documentWidth","innerWidth","_disableOverFlow","_setElementAttributes","calculatedValue","_resetElementAttributes","isOverflowing","_saveInitialAttribute","styleProperty","scrollbarWidth","_applyManipulationCallback","setProperty","actualValue","removeProperty","callBack","sel","NAME$9","CLASS_NAME_SHOW$5","EVENT_MOUSEDOWN","Default$8","clickCallback","rootElement","DefaultType$8","Backdrop","_isAppended","_append","_getElement","_emulateAnimation","backdrop","EVENT_KEY$5","EVENT_FOCUSIN$2","EVENT_KEYDOWN_TAB","TAB_NAV_BACKWARD","Default$7","autofocus","trapElement","DefaultType$7","FocusTrap","_isActive","_lastTabNavDirection","activate","_handleFocusin","_handleKeydown","deactivate","EVENT_KEY$4","EVENT_HIDE$4","EVENT_HIDE_PREVENTED$1","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_RESIZE$1","EVENT_CLICK_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_KEYDOWN_DISMISS$1","EVENT_CLICK_DATA_API$2","CLASS_NAME_OPEN","CLASS_NAME_SHOW$4","CLASS_NAME_STATIC","Default$6","DefaultType$6","Modal","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_scrollBar","_adjustDialog","_showElement","_hideModal","htmlElement","handleUpdate","modalBody","_triggerBackdropTransition","event2","_resetAdjustments","isModalOverflowing","initialOverflowY","isBodyOverflowing","paddingLeft","paddingRight","showEvent","alreadyOpen","EVENT_KEY$3","DATA_API_KEY$1","EVENT_LOAD_DATA_API$2","CLASS_NAME_SHOW$3","CLASS_NAME_SHOWING$1","CLASS_NAME_HIDING","OPEN_SELECTOR","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_HIDE$3","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$3","EVENT_RESIZE","EVENT_CLICK_DATA_API$1","EVENT_KEYDOWN_DISMISS","Default$5","DefaultType$5","Offcanvas","blur","uriAttributes","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","nodeValue","attributeRegex","regex","DefaultAllowlist","area","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","li","ol","p","pre","small","span","sub","sup","strong","u","ul","Default$4","allowList","extraClass","sanitize","sanitizeFn","DefaultType$4","DefaultContentType","entry","TemplateFactory","getContent","_resolvePossibleFunction","hasContent","changeContent","_checkContent","toHtml","templateWrapper","_maybeSanitize","_setContent","arg","_putElementInTemplate","unsafeHtml","sanitizeFunction","createdDocument","elementName","attributeList","allowedAttributes","sanitizeHtml","DISALLOWED_ATTRIBUTES","CLASS_NAME_FADE$2","CLASS_NAME_SHOW$2","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$3","animation","customClass","title","DefaultType$3","Tooltip","_isEnabled","_timeout","_isHovered","_activeTrigger","_templateFactory","_newContent","tip","_setListeners","_fixTitle","enable","toggleEnabled","_leave","_enter","_hideModalHandler","_disposePopper","_isWithContent","isInTheDom","_getTipElement","_isWithActiveTrigger","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","tipId","getUID","setContent","_initializeOnDelegatedTarget","_getDelegateConfig","attachment","triggers","eventIn","eventOut","_setTimeout","timeout","dataAttributes","dataAttribute","Default$2","DefaultType$2","Popover","_getContent","EVENT_KEY$2","EVENT_ACTIVATE","EVENT_CLICK","EVENT_LOAD_DATA_API$1","CLASS_NAME_ACTIVE$1","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LINKS","SELECTOR_LINK_ITEMS","Default$1","rootMargin","smoothScroll","threshold","DefaultType$1","ScrollSpy","_targetLinks","_observableSections","_rootElement","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","_getNewObserver","section","observableSection","_observerCallback","targetElement","_process","userScrollsDown","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","_activateParents","listGroup","activeNodes","spy","EVENT_KEY$1","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","EVENT_KEYDOWN","EVENT_LOAD_DATA_API","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","CLASS_NAME_ACTIVE","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","NOT_SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DATA_TOGGLE","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","_setInitialAttributes","_getChildren","innerElem","_elemIsActive","active","_getActiveElem","hideEvent","_deactivate","_activate","relatedElem","_toggleDropDown","nextActiveElement","preventScroll","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","EVENT_MOUSEOVER","EVENT_MOUSEOUT","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","isShown","_onInteraction","isInteracting","t","preview","presentation","caption","file","quote","nestable","heading1","terminal","breakOnReturn","group","plaintext","bulletList","bullet","listAttribute","numberList","attachmentGallery","exclusive","composesExistingText","recentAndroid","samsungAndroid","forcesObjectResizing","supportsInputEvents","InputEvent","attachFiles","bold","bullets","byte","bytes","captionPlaceholder","italic","numbers","outdent","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","l","precision","formatter","toFixed","h","onElement","matchingSelector","withCallback","inPhase","times","g","createEvent","initEvent","untilNode","f","previousSibling","A","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","C","editable","contenteditable","childNodes","R","E","S","D","L","strict","w","COMMENT_NODE","T","I","trixCursorTarget","F","B","TEXT_NODE","P","level2Enabled","getLevel","pickFiles","multiple","fileInputId","files","N","removeBlankTableCells","tableCellSeparator","tableRowSeparator","O","inheritable","parser","fontWeight","fontStyle","groupTagName","frozen","backgroundColor","M","getDefaultHTML","j","W","attachments","blockAttributes","browser","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","fileSize","keyNames","lang","textAttributes","toolbar","U","toMethod","toProperty","optional","q","V","z","Function","H","J","K","fromUCS2String","Y","Q","ucs2String","codepoints","ucs2Length","offsetToUCS2Offset","offsetFromUCS2Offset","fromCodepoints","isEqualTo","box","toJSON","getCacheKey","G","codePointAt","X","fromCodePoint","charCodeAt","fromCharCode","Z","tt","fromJSON","hasSameConstructorAs","inspect","contentsForInspection","toJSONString","toUTF16String","et","it","nt","rt","dirName","ot","st","at","lt","ct","gt","ut","ht","dt","mt","pt","ft","bt","vt","At","getData","xt","platform","yt","Ct","Rt","Et","Lt","St","Dt","kt","wt","run","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","It","Tt","domRange","startContainer","startOffset","endContainer","endOffset","Ft","Bt","getSelection","rangeCount","getRangeAt","Nt","Pt","removeAllRanges","addRange","Ot","Mt","jt","Wt","Ut","qt","utf16String","Vt","Jt","getKeys","getKeysCommonToHash","Ht","merge","zt","_t","Kt","toArray","isEmpty","toObject","Gt","depth","asTree","canBeGrouped","canBeGroupedWith","objects","groupObjects","getObjects","getDepth","$t","Xt","Yt","trixStoreKey","Qt","isPerforming","performing","hasPerformed","performed","hasSucceeded","hasFailed","getPromise","release","proxyMethod","Zt","childViews","rootView","getNodes","createNodes","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","te","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","objectGroup","getChildViews","createContainerElement","ee","ie","uploadProgressDelegate","attachmentPiece","piece","createContentNodes","getClassName","getHref","tabindex","createCaptionElement","isPending","class","getUploadProgress","trixMutable","ne","getCaption","getCaptionConfig","getFilename","getFormattedFilesize","createTextNode","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","re","findProgressElement","attachmentDidChangeUploadProgress","oe","previewDelegate","image","updateAttributesForImage","getURL","getPreviewURL","getHeight","attachmentDidChangeAttributes","se","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","isLast","isFirst","followsWhitespace","ae","getPieces","le","ce","he","createComment","getLastAttribute","shouldAddExtraNewlineElement","getBlockBreakPosition","ue","sync","elementStore","setDocument","shadowElement","getBlocks","isSynced","ge","createDocumentFragmentForSync","lastChild","didSync","de","me","pe","fe","done","_invoke","return","be","writable","asyncIterator","throw","ve","types","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","copy","getAttributesHash","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","Ae","Image","onload","naturalWidth","naturalHeight","xe","attributesForFile","setFile","filename","filesize","releaseFile","didChangeAttributes","setAttributes","previewablePattern","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","catch","ye","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","registerType","Ce","consolidateWith","splitAtOffset","Re","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","Se","ke","getObjectAtPosition","findIndexAndOffsetAtPosition","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","Ee","Le","pieceList","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributes","fromCommonAttributesOfObjects","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getAttachmentById","getRangeOfAttachment","updateAttributesForAttachment","eachPiece","getPieceAtPosition","toSerializableText","getDirection","De","we","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","Ne","Me","removeLastAttribute","Oe","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","decreaseNestingLevel","increaseNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","textForStringWithAttributes","getTextWithoutBlockBreak","Ie","Te","Be","Pe","Fe","blockBreak","je","blockList","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","removeAttributeForAttachment","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","range","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","We","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","getAttachmentPieceForAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","toSerializableDocument","Ue","qe","Ve","ze","forbiddenProtocols","forbiddenElements","_e","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","elementIsRemovable","sanitizeElement","elementIsForbidden","elementIsntSerializable","implementation","createHTMLDocument","He","Je","Ke","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","Ye","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","Ge","ti","Qe","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","needsTableSeparator","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","findBlockElementAncestors","Ze","$e","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","Xe","whiteSpace","marginTop","marginBottom","FILTER_REJECT","FILTER_ACCEPT","ei","ii","ni","ri","oi","si","attachmentManager","requestRemovalOfAttachment","ai","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","composition","getSelectedRange","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","ci","currentAttributes","revision","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","insertText","notifyDelegateOfInsertionAtRange","insertBlock","insertDocument","insertString","getCurrentTextAttributes","insertBlockBreak","insertLineBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","insertHTML","replaceHTML","getLocationRange","insertFile","insertFiles","compositionShouldAcceptFile","attachmentForFile","insertAttachments","insertAttachment","textForAttachmentWithAttributes","shouldManageDeletingInDirection","shouldManageMovingCursorInDirection","deleteInDirection","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","moveTextFromRange","removeAttachment","stopEditingAttachment","removeCurrentAttribute","insertPlaceholder","placeholderPosition","getPosition","selectPlaceholder","setSelectedRange","forgetPlaceholder","hasCurrentAttribute","toggleCurrentAttribute","setCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","getSelectedDocument","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","canDecreaseNestingLevel","canIncreaseNestingLevel","getPreviousBlock","ignoreLock","getCurrentAttributes","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","withTargetDOMRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","moveCursorInDirection","expandSelectionInDirection","expandSelectionForEditing","expandSelectionAroundCommonAttribute","selectionContainsAttachments","getSelectedAttachments","selectionIsInCursorTarget","positionIsCursorTarget","locationIsCursorTarget","positionIsBlockBreak","added","removed","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","hi","undoEntries","redoEntries","recordUndoEntry","consolidatable","ui","createEntry","pop","canUndo","canRedo","di","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","gi","mi","pi","selectionManager","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","fi","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","xi","bi","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","vi","Ai","yi","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","setStart","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","Ci","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","setLocationRangeFromPointRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","collapsed","selectionIsExpanded","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","setEnd","Ri","Attachment","AttachmentManager","AttachmentPiece","Block","Composition","Document","Editor","HTMLParser","HTMLSanitizer","LineBreakInsertion","LocationMapper","ManagedAttachment","Piece","PointMapper","SelectionManager","SplittableList","StringPiece","Text","UndoManager","Ei","Si","ki","Li","Di","do","undos","wi","trixAction","didClickToolbar","didClickActionButton","tabIndex","didInputCaption","didKeyDownCaption","didChangeCaption","didBlurCaption","editCaption","install","makeElementMutable","addToolbar","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","attachmentEditorDidRequestRemovalOfAttachment","keyCode","attachmentEditorDidRequestDeselectingAttachment","Ti","didFocus","didBlur","didClickAttachment","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","compositionControllerWillUpdateAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","Fi","Bi","Ii","characterData","characterDataOldValue","Pi","didMutate","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","additions","deletions","getTextChangesFromCharacterData","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","Ni","Oi","FileReader","readAsArrayBuffer","Mi","shouldIgnore","previousEvent","checkSamsungKeyboardBuggyModeStart","checkSamsungKeyboardBuggyModeEnd","buggyMode","insertingLongTextAfterUnidentifiedChar","ji","innerText","inputType","isBeforeInputInsertText","previousEventWasUnidentifiedKeydown","Ui","Wi","qi","flakyKeyboardDetector","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","Vi","zi","Hi","Ji","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","compositionInput","getEndData","getCompositionInput","Yi","isEnded","serializeSelectionToDataTransfer","setData","canAcceptDataTransfer","Files","getPastedHTMLUsingHiddenElement","keydown","didInput","keyName","inputControllerDidReceiveKeyboardCommand","keypress","$i","inputControllerWillPerformTyping","textInput","dragenter","dragstart","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","clientY","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","inputControllerWillMoveText","fromJSONString","cut","clipboardData","inputControllerWillCutText","paste","testClipboardData","clipboard","Xi","inputControllerWillPaste","inputControllerDidPaste","getAsFile","Ki","compositionstart","compositionupdate","compositionend","beforeinput","backspace","control","Gi","charCode","inputController","isSignificant","canApplyToDocument","Qi","scheduledRender","composing","reparse","scheduleRender","afterRender","toggleAttributeIfSupported","inputControllerWillPerformFormatting","activateAttributeIfSupported","getTargetDOMRange","minLength","getTargetRanges","Zi","withEvent","rn","en","nn","inputTypes","dragging","point","tn","ArrowLeft","ArrowRight","Backspace","deleteByComposition","deleteByCut","deleteByDrag","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","formatBold","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertTranspose","insertUnorderedList","sn","an","ln","cn","hn","dn","un","gn","didClickAttributeButton","didClickDialogButton","didKeyDownDialogInput","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","mn","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","pn","AttachmentEditorController","CompositionController","EditorController","InputController","Level0InputController","Level2InputController","ToolbarController","SelectionChangeObserver","bn","FileVerificationOperation","ImagePreloadOperation","vn","An","Cn","queryCommandSupported","execCommand","Rn","En","Sn","labels","inputElement","editorController","yn","xn","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","kn","core","models","views","observers","operations","TrixEditorElement","TrixToolbarElement","Filter","attachmentGalleryFilter","Trix","globalThis","global","activestorage","sparkMd5","undefined$1","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","tmp","lo","substring","md51_array","subarray","Uint8Array","rhex","hex","toUtf8","str","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","concatenateArrayBuffers","first","second","byteLength","buffer","hexToBinaryString","substr","SparkMD5","clamp","val","num","targetArray","sourceArray","begin","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","setState","hashBinary","factory","fileSlice","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","ceil","chunkIndex","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","eventInit","BlobRecord","checksum","content_type","byte_size","xhr","XMLHttpRequest","responseType","setRequestHeader","csrfToken","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","BlobUpload","DirectUpload","upload","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","uploadRequestDidProgress","progress","total","alert","directUploadWillCreateBlobWithXHR","directUploadWillStoreFileWithXHR","DirectUploadsController","inputs","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","ActiveStorage","AttachmentUpload","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"sourceRoot":""}