descope 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yaml +15 -27
  3. data/.github/workflows/publish-gem.yaml +36 -0
  4. data/Gemfile +12 -14
  5. data/Gemfile.lock +40 -87
  6. data/README.md +39 -17
  7. data/examples/ruby/access_key_app.rb +4 -2
  8. data/examples/ruby/management/Gemfile.lock +2 -2
  9. data/examples/ruby/management/role_app.rb +8 -3
  10. data/examples/ruby-on-rails-api/descope/.gitignore +58 -28
  11. data/examples/ruby-on-rails-api/descope/Gemfile.lock +3 -3
  12. data/examples/ruby-on-rails-api/descope/app/assets/builds/App.css +62 -0
  13. data/examples/ruby-on-rails-api/descope/app/assets/builds/App.css.map +7 -0
  14. data/examples/ruby-on-rails-api/descope/app/assets/builds/application.css +62 -0
  15. data/examples/ruby-on-rails-api/descope/app/assets/builds/application.css.map +7 -0
  16. data/examples/ruby-on-rails-api/descope/app/assets/builds/application.js +40369 -0
  17. data/examples/ruby-on-rails-api/descope/app/assets/builds/application.js.map +7 -0
  18. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/App.css +62 -0
  19. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/App.css.map +7 -0
  20. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/App.js +27979 -0
  21. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/App.js.map +7 -0
  22. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.css +62 -0
  23. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.css.map +7 -0
  24. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.js +27118 -0
  25. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.js.map +7 -0
  26. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.css +62 -0
  27. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.css.map +7 -0
  28. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.js +27113 -0
  29. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.js.map +7 -0
  30. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.css +62 -0
  31. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.css.map +7 -0
  32. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.js +27131 -0
  33. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.js.map +7 -0
  34. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.css +62 -0
  35. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.css.map +7 -0
  36. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.js +27168 -0
  37. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.js.map +7 -0
  38. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/index.css +62 -0
  39. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/index.css.map +7 -0
  40. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/index.js +28250 -0
  41. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/index.js.map +7 -0
  42. data/examples/ruby-on-rails-api/descope/app/assets/builds/controllers/application.js +2456 -0
  43. data/examples/ruby-on-rails-api/descope/app/assets/builds/controllers/application.js.map +7 -0
  44. data/examples/ruby-on-rails-api/descope/app/assets/builds/controllers/index.js +2453 -0
  45. data/examples/ruby-on-rails-api/descope/app/assets/builds/controllers/index.js.map +7 -0
  46. data/examples/ruby-on-rails-api/descope/app/assets/builds/reportWebVitals.js +211 -0
  47. data/examples/ruby-on-rails-api/descope/app/assets/builds/reportWebVitals.js.map +7 -0
  48. data/examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.css +62 -0
  49. data/examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.css.map +7 -0
  50. data/examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.js +27973 -0
  51. data/examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.js.map +7 -0
  52. data/examples/ruby-on-rails-api/descope/package-lock.json +7 -8
  53. data/examples/ruby-on-rails-api/descope/yarn.lock +3 -3
  54. data/lib/descope/api/v1/auth.rb +21 -6
  55. data/lib/descope/api/v1/management/access_key.rb +5 -4
  56. data/lib/descope/api/v1/management/common.rb +4 -1
  57. data/lib/descope/api/v1/management/role.rb +22 -6
  58. data/lib/descope/api/v1/management/user.rb +17 -0
  59. data/lib/descope/mixins/common.rb +2 -12
  60. data/lib/descope/mixins/http.rb +1 -1
  61. data/lib/descope/version.rb +1 -1
  62. data/spec/integration/lib.descope/api/v1/auth/enchantedlink_spec.rb +81 -0
  63. data/spec/integration/lib.descope/api/v1/auth/magiclink_spec.rb +49 -0
  64. data/spec/integration/lib.descope/api/v1/auth/otp_spec.rb +38 -0
  65. data/spec/integration/lib.descope/api/v1/auth/password_spec.rb +41 -0
  66. data/spec/integration/lib.descope/api/v1/auth/totp_spec.rb +76 -0
  67. data/spec/integration/lib.descope/api/v1/management/access_key_spec.rb +62 -0
  68. data/spec/integration/lib.descope/api/v1/management/audit_spec.rb +16 -0
  69. data/spec/integration/lib.descope/api/v1/management/authz_spec.rb +187 -0
  70. data/spec/integration/lib.descope/api/v1/management/flow_spec.rb +44 -0
  71. data/spec/integration/lib.descope/api/v1/management/permissions_spec.rb +27 -0
  72. data/spec/integration/lib.descope/api/v1/management/project_spec.rb +29 -0
  73. data/spec/integration/lib.descope/api/v1/management/roles_spec.rb +116 -0
  74. data/spec/integration/lib.descope/api/v1/management/user_spec.rb +262 -0
  75. data/spec/lib.descope/api/v1/auth_spec.rb +50 -1
  76. data/spec/lib.descope/api/v1/management/access_key_spec.rb +4 -2
  77. data/spec/lib.descope/api/v1/management/role_spec.rb +35 -6
  78. data/spec/lib.descope/api/v1/management/user_spec.rb +40 -0
  79. data/spec/spec_helper.rb +9 -38
  80. data/spec/support/client_config.rb +5 -1
  81. data/spec/support/dummy_class.rb +15 -1
  82. data/spec/support/utils.rb +1 -1
  83. metadata +56 -4
  84. data/examples/ruby-on-rails-api/descope/tmp/pids/.keep +0 -0
  85. data/examples/ruby-on-rails-api/descope/tmp/storage/.keep +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../node_modules/@hotwired/stimulus/dist/stimulus.js", "../../../javascript/controllers/application.js"],
4
+ "sourcesContent": ["/*\nStimulus 3.2.1\nCopyright \u00A9 2023 Basecamp, LLC\n */\nclass EventListener {\n constructor(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n connect() {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n }\n disconnect() {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }\n bindingConnected(binding) {\n this.unorderedBindings.add(binding);\n }\n bindingDisconnected(binding) {\n this.unorderedBindings.delete(binding);\n }\n handleEvent(event) {\n const extendedEvent = extendEvent(event);\n for (const binding of this.bindings) {\n if (extendedEvent.immediatePropagationStopped) {\n break;\n }\n else {\n binding.handleEvent(extendedEvent);\n }\n }\n }\n hasBindings() {\n return this.unorderedBindings.size > 0;\n }\n get bindings() {\n return Array.from(this.unorderedBindings).sort((left, right) => {\n const leftIndex = left.index, rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n }\n}\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n }\n else {\n const { stopImmediatePropagation } = event;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation.call(this);\n },\n });\n }\n}\n\nclass Dispatcher {\n constructor(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach((eventListener) => eventListener.connect());\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach((eventListener) => eventListener.disconnect());\n }\n }\n get eventListeners() {\n return Array.from(this.eventListenerMaps.values()).reduce((listeners, map) => listeners.concat(Array.from(map.values())), []);\n }\n bindingConnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n }\n bindingDisconnected(binding, clearEventListeners = false) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n if (clearEventListeners)\n this.clearEventListenersForBinding(binding);\n }\n handleError(error, message, detail = {}) {\n this.application.handleError(error, `Error ${message}`, detail);\n }\n clearEventListenersForBinding(binding) {\n const eventListener = this.fetchEventListenerForBinding(binding);\n if (!eventListener.hasBindings()) {\n eventListener.disconnect();\n this.removeMappedEventListenerFor(binding);\n }\n }\n removeMappedEventListenerFor(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n eventListenerMap.delete(cacheKey);\n if (eventListenerMap.size == 0)\n this.eventListenerMaps.delete(eventTarget);\n }\n fetchEventListenerForBinding(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n }\n fetchEventListener(eventTarget, eventName, eventOptions) {\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n let eventListener = eventListenerMap.get(cacheKey);\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n return eventListener;\n }\n createEventListener(eventTarget, eventName, eventOptions) {\n const eventListener = new EventListener(eventTarget, eventName, eventOptions);\n if (this.started) {\n eventListener.connect();\n }\n return eventListener;\n }\n fetchEventListenerMapForEventTarget(eventTarget) {\n let eventListenerMap = this.eventListenerMaps.get(eventTarget);\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n return eventListenerMap;\n }\n cacheKey(eventName, eventOptions) {\n const parts = [eventName];\n Object.keys(eventOptions)\n .sort()\n .forEach((key) => {\n parts.push(`${eventOptions[key] ? \"\" : \"!\"}${key}`);\n });\n return parts.join(\":\");\n }\n}\n\nconst defaultActionDescriptorFilters = {\n stop({ event, value }) {\n if (value)\n event.stopPropagation();\n return true;\n },\n prevent({ event, value }) {\n if (value)\n event.preventDefault();\n return true;\n },\n self({ event, value, element }) {\n if (value) {\n return element === event.target;\n }\n else {\n return true;\n }\n },\n};\nconst descriptorPattern = /^(?:(?:([^.]+?)\\+)?(.+?)(?:\\.(.+?))?(?:@(window|document))?->)?(.+?)(?:#([^:]+?))(?::(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n const source = descriptorString.trim();\n const matches = source.match(descriptorPattern) || [];\n let eventName = matches[2];\n let keyFilter = matches[3];\n if (keyFilter && ![\"keydown\", \"keyup\", \"keypress\"].includes(eventName)) {\n eventName += `.${keyFilter}`;\n keyFilter = \"\";\n }\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName,\n eventOptions: matches[7] ? parseEventOptions(matches[7]) : {},\n identifier: matches[5],\n methodName: matches[6],\n keyFilter: matches[1] || keyFilter,\n };\n}\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n }\n else if (eventTargetName == \"document\") {\n return document;\n }\n}\nfunction parseEventOptions(eventOptions) {\n return eventOptions\n .split(\":\")\n .reduce((options, token) => Object.assign(options, { [token.replace(/^!/, \"\")]: !/^!/.test(token) }), {});\n}\nfunction stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n }\n else if (eventTarget == document) {\n return \"document\";\n }\n}\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\nfunction namespaceCamelize(value) {\n return camelize(value.replace(/--/g, \"-\").replace(/__/g, \"_\"));\n}\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\nfunction tokenize(value) {\n return value.match(/[^\\s]+/g) || [];\n}\n\nfunction isSomething(object) {\n return object !== null && object !== undefined;\n}\nfunction hasProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nconst allModifiers = [\"meta\", \"ctrl\", \"alt\", \"shift\"];\nclass Action {\n constructor(element, index, descriptor, schema) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n this.keyFilter = descriptor.keyFilter || \"\";\n this.schema = schema;\n }\n static forToken(token, schema) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content), schema);\n }\n toString() {\n const eventFilter = this.keyFilter ? `.${this.keyFilter}` : \"\";\n const eventTarget = this.eventTargetName ? `@${this.eventTargetName}` : \"\";\n return `${this.eventName}${eventFilter}${eventTarget}->${this.identifier}#${this.methodName}`;\n }\n shouldIgnoreKeyboardEvent(event) {\n if (!this.keyFilter) {\n return false;\n }\n const filters = this.keyFilter.split(\"+\");\n if (this.keyFilterDissatisfied(event, filters)) {\n return true;\n }\n const standardFilter = filters.filter((key) => !allModifiers.includes(key))[0];\n if (!standardFilter) {\n return false;\n }\n if (!hasProperty(this.keyMappings, standardFilter)) {\n error(`contains unknown key filter: ${this.keyFilter}`);\n }\n return this.keyMappings[standardFilter].toLowerCase() !== event.key.toLowerCase();\n }\n shouldIgnoreMouseEvent(event) {\n if (!this.keyFilter) {\n return false;\n }\n const filters = [this.keyFilter];\n if (this.keyFilterDissatisfied(event, filters)) {\n return true;\n }\n return false;\n }\n get params() {\n const params = {};\n const pattern = new RegExp(`^data-${this.identifier}-(.+)-param$`, \"i\");\n for (const { name, value } of Array.from(this.element.attributes)) {\n const match = name.match(pattern);\n const key = match && match[1];\n if (key) {\n params[camelize(key)] = typecast(value);\n }\n }\n return params;\n }\n get eventTargetName() {\n return stringifyEventTarget(this.eventTarget);\n }\n get keyMappings() {\n return this.schema.keyMappings;\n }\n keyFilterDissatisfied(event, filters) {\n const [meta, ctrl, alt, shift] = allModifiers.map((modifier) => filters.includes(modifier));\n return event.metaKey !== meta || event.ctrlKey !== ctrl || event.altKey !== alt || event.shiftKey !== shift;\n }\n}\nconst defaultEventNames = {\n a: () => \"click\",\n button: () => \"click\",\n form: () => \"submit\",\n details: () => \"toggle\",\n input: (e) => (e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\"),\n select: () => \"change\",\n textarea: () => \"input\",\n};\nfunction getDefaultEventNameForElement(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\nfunction error(message) {\n throw new Error(message);\n}\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n }\n catch (o_O) {\n return value;\n }\n}\n\nclass Binding {\n constructor(context, action) {\n this.context = context;\n this.action = action;\n }\n get index() {\n return this.action.index;\n }\n get eventTarget() {\n return this.action.eventTarget;\n }\n get eventOptions() {\n return this.action.eventOptions;\n }\n get identifier() {\n return this.context.identifier;\n }\n handleEvent(event) {\n const actionEvent = this.prepareActionEvent(event);\n if (this.willBeInvokedByEvent(event) && this.applyEventModifiers(actionEvent)) {\n this.invokeWithEvent(actionEvent);\n }\n }\n get eventName() {\n return this.action.eventName;\n }\n get method() {\n const method = this.controller[this.methodName];\n if (typeof method == \"function\") {\n return method;\n }\n throw new Error(`Action \"${this.action}\" references undefined method \"${this.methodName}\"`);\n }\n applyEventModifiers(event) {\n const { element } = this.action;\n const { actionDescriptorFilters } = this.context.application;\n const { controller } = this.context;\n let passes = true;\n for (const [name, value] of Object.entries(this.eventOptions)) {\n if (name in actionDescriptorFilters) {\n const filter = actionDescriptorFilters[name];\n passes = passes && filter({ name, value, event, element, controller });\n }\n else {\n continue;\n }\n }\n return passes;\n }\n prepareActionEvent(event) {\n return Object.assign(event, { params: this.action.params });\n }\n invokeWithEvent(event) {\n const { target, currentTarget } = event;\n try {\n this.method.call(this.controller, event);\n this.context.logDebugActivity(this.methodName, { event, target, currentTarget, action: this.methodName });\n }\n catch (error) {\n const { identifier, controller, element, index } = this;\n const detail = { identifier, controller, element, index, event };\n this.context.handleError(error, `invoking action \"${this.action}\"`, detail);\n }\n }\n willBeInvokedByEvent(event) {\n const eventTarget = event.target;\n if (event instanceof KeyboardEvent && this.action.shouldIgnoreKeyboardEvent(event)) {\n return false;\n }\n if (event instanceof MouseEvent && this.action.shouldIgnoreMouseEvent(event)) {\n return false;\n }\n if (this.element === eventTarget) {\n return true;\n }\n else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n }\n else {\n return this.scope.containsElement(this.action.element);\n }\n }\n get controller() {\n return this.context.controller;\n }\n get methodName() {\n return this.action.methodName;\n }\n get element() {\n return this.scope.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nclass ElementObserver {\n constructor(element, delegate) {\n this.mutationObserverInit = { attributes: true, childList: true, subtree: true };\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.refresh();\n }\n }\n pause(callback) {\n if (this.started) {\n this.mutationObserver.disconnect();\n this.started = false;\n }\n callback();\n if (!this.started) {\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n const matches = new Set(this.matchElementsInTree());\n for (const element of Array.from(this.elements)) {\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (const element of Array.from(matches)) {\n this.addElement(element);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n }\n else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n }\n processAttributeChange(element, attributeName) {\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n }\n else {\n this.removeElement(element);\n }\n }\n else if (this.matchElement(element)) {\n this.addElement(element);\n }\n }\n processRemovedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n }\n processAddedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }\n matchElement(element) {\n return this.delegate.matchElement(element);\n }\n matchElementsInTree(tree = this.element) {\n return this.delegate.matchElementsInTree(tree);\n }\n processTree(tree, processor) {\n for (const element of this.matchElementsInTree(tree)) {\n processor.call(this, element);\n }\n }\n elementFromNode(node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n }\n elementIsActive(element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n }\n else {\n return this.element.contains(element);\n }\n }\n addElement(element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n }\n removeElement(element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n }\n}\n\nclass AttributeObserver {\n constructor(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n get element() {\n return this.elementObserver.element;\n }\n get selector() {\n return `[${this.attributeName}]`;\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get started() {\n return this.elementObserver.started;\n }\n matchElement(element) {\n return element.hasAttribute(this.attributeName);\n }\n matchElementsInTree(tree) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n }\n elementMatched(element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n }\n elementUnmatched(element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n }\n elementAttributeChanged(element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n }\n}\n\nfunction add(map, key, value) {\n fetch(map, key).add(value);\n}\nfunction del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nfunction fetch(map, key) {\n let values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nfunction prune(map, key) {\n const values = map.get(key);\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\n\nclass Multimap {\n constructor() {\n this.valuesByKey = new Map();\n }\n get keys() {\n return Array.from(this.valuesByKey.keys());\n }\n get values() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((values, set) => values.concat(Array.from(set)), []);\n }\n get size() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((size, set) => size + set.size, 0);\n }\n add(key, value) {\n add(this.valuesByKey, key, value);\n }\n delete(key, value) {\n del(this.valuesByKey, key, value);\n }\n has(key, value) {\n const values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n }\n hasKey(key) {\n return this.valuesByKey.has(key);\n }\n hasValue(value) {\n const sets = Array.from(this.valuesByKey.values());\n return sets.some((set) => set.has(value));\n }\n getValuesForKey(key) {\n const values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n }\n getKeysForValue(value) {\n return Array.from(this.valuesByKey)\n .filter(([_key, values]) => values.has(value))\n .map(([key, _values]) => key);\n }\n}\n\nclass IndexedMultimap extends Multimap {\n constructor() {\n super();\n this.keysByValue = new Map();\n }\n get values() {\n return Array.from(this.keysByValue.keys());\n }\n add(key, value) {\n super.add(key, value);\n add(this.keysByValue, value, key);\n }\n delete(key, value) {\n super.delete(key, value);\n del(this.keysByValue, value, key);\n }\n hasValue(value) {\n return this.keysByValue.has(value);\n }\n getKeysForValue(value) {\n const set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n }\n}\n\nclass SelectorObserver {\n constructor(element, selector, delegate, details) {\n this._selector = selector;\n this.details = details;\n this.elementObserver = new ElementObserver(element, this);\n this.delegate = delegate;\n this.matchesByElement = new Multimap();\n }\n get started() {\n return this.elementObserver.started;\n }\n get selector() {\n return this._selector;\n }\n set selector(selector) {\n this._selector = selector;\n this.refresh();\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get element() {\n return this.elementObserver.element;\n }\n matchElement(element) {\n const { selector } = this;\n if (selector) {\n const matches = element.matches(selector);\n if (this.delegate.selectorMatchElement) {\n return matches && this.delegate.selectorMatchElement(element, this.details);\n }\n return matches;\n }\n else {\n return false;\n }\n }\n matchElementsInTree(tree) {\n const { selector } = this;\n if (selector) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(selector)).filter((match) => this.matchElement(match));\n return match.concat(matches);\n }\n else {\n return [];\n }\n }\n elementMatched(element) {\n const { selector } = this;\n if (selector) {\n this.selectorMatched(element, selector);\n }\n }\n elementUnmatched(element) {\n const selectors = this.matchesByElement.getKeysForValue(element);\n for (const selector of selectors) {\n this.selectorUnmatched(element, selector);\n }\n }\n elementAttributeChanged(element, _attributeName) {\n const { selector } = this;\n if (selector) {\n const matches = this.matchElement(element);\n const matchedBefore = this.matchesByElement.has(selector, element);\n if (matches && !matchedBefore) {\n this.selectorMatched(element, selector);\n }\n else if (!matches && matchedBefore) {\n this.selectorUnmatched(element, selector);\n }\n }\n }\n selectorMatched(element, selector) {\n this.delegate.selectorMatched(element, selector, this.details);\n this.matchesByElement.add(selector, element);\n }\n selectorUnmatched(element, selector) {\n this.delegate.selectorUnmatched(element, selector, this.details);\n this.matchesByElement.delete(selector, element);\n }\n}\n\nclass StringMapObserver {\n constructor(element, delegate) {\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, { attributes: true, attributeOldValue: true });\n this.refresh();\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n for (const attributeName of this.knownAttributeNames) {\n this.refreshAttribute(attributeName, null);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n const attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName, mutation.oldValue);\n }\n }\n refreshAttribute(attributeName, oldValue) {\n const key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n const value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key, oldValue);\n }\n if (value == null) {\n const oldValue = this.stringMap.get(attributeName);\n this.stringMap.delete(attributeName);\n if (oldValue)\n this.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n else {\n this.stringMap.set(attributeName, value);\n }\n }\n }\n stringMapKeyAdded(key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n }\n stringMapValueChanged(value, key, oldValue) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key, oldValue);\n }\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n }\n get knownAttributeNames() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n }\n get currentAttributeNames() {\n return Array.from(this.element.attributes).map((attribute) => attribute.name);\n }\n get recordedAttributeNames() {\n return Array.from(this.stringMap.keys());\n }\n}\n\nclass TokenListObserver {\n constructor(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n get started() {\n return this.attributeObserver.started;\n }\n start() {\n this.attributeObserver.start();\n }\n pause(callback) {\n this.attributeObserver.pause(callback);\n }\n stop() {\n this.attributeObserver.stop();\n }\n refresh() {\n this.attributeObserver.refresh();\n }\n get element() {\n return this.attributeObserver.element;\n }\n get attributeName() {\n return this.attributeObserver.attributeName;\n }\n elementMatchedAttribute(element) {\n this.tokensMatched(this.readTokensForElement(element));\n }\n elementAttributeValueChanged(element) {\n const [unmatchedTokens, matchedTokens] = this.refreshTokensForElement(element);\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n }\n elementUnmatchedAttribute(element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n }\n tokensMatched(tokens) {\n tokens.forEach((token) => this.tokenMatched(token));\n }\n tokensUnmatched(tokens) {\n tokens.forEach((token) => this.tokenUnmatched(token));\n }\n tokenMatched(token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n }\n tokenUnmatched(token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n }\n refreshTokensForElement(element) {\n const previousTokens = this.tokensByElement.getValuesForKey(element);\n const currentTokens = this.readTokensForElement(element);\n const firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(([previousToken, currentToken]) => !tokensAreEqual(previousToken, currentToken));\n if (firstDifferingIndex == -1) {\n return [[], []];\n }\n else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n }\n readTokensForElement(element) {\n const attributeName = this.attributeName;\n const tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n }\n}\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString\n .trim()\n .split(/\\s+/)\n .filter((content) => content.length)\n .map((content, index) => ({ element, attributeName, content, index }));\n}\nfunction zip(left, right) {\n const length = Math.max(left.length, right.length);\n return Array.from({ length }, (_, index) => [left[index], right[index]]);\n}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}\n\nclass ValueListObserver {\n constructor(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n get started() {\n return this.tokenListObserver.started;\n }\n start() {\n this.tokenListObserver.start();\n }\n stop() {\n this.tokenListObserver.stop();\n }\n refresh() {\n this.tokenListObserver.refresh();\n }\n get element() {\n return this.tokenListObserver.element;\n }\n get attributeName() {\n return this.tokenListObserver.attributeName;\n }\n tokenMatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n }\n tokenUnmatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n }\n fetchParseResultForToken(token) {\n let parseResult = this.parseResultsByToken.get(token);\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n return parseResult;\n }\n fetchValuesByTokenForElement(element) {\n let valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n }\n parseToken(token) {\n try {\n const value = this.delegate.parseValueForToken(token);\n return { value };\n }\n catch (error) {\n return { error };\n }\n }\n}\n\nclass BindingObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n start() {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n }\n stop() {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n }\n get element() {\n return this.context.element;\n }\n get identifier() {\n return this.context.identifier;\n }\n get actionAttribute() {\n return this.schema.actionAttribute;\n }\n get schema() {\n return this.context.schema;\n }\n get bindings() {\n return Array.from(this.bindingsByAction.values());\n }\n connectAction(action) {\n const binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n }\n disconnectAction(action) {\n const binding = this.bindingsByAction.get(action);\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n }\n disconnectAllActions() {\n this.bindings.forEach((binding) => this.delegate.bindingDisconnected(binding, true));\n this.bindingsByAction.clear();\n }\n parseValueForToken(token) {\n const action = Action.forToken(token, this.schema);\n if (action.identifier == this.identifier) {\n return action;\n }\n }\n elementMatchedValue(element, action) {\n this.connectAction(action);\n }\n elementUnmatchedValue(element, action) {\n this.disconnectAction(action);\n }\n}\n\nclass ValueObserver {\n constructor(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n }\n start() {\n this.stringMapObserver.start();\n this.invokeChangedCallbacksForDefaultValues();\n }\n stop() {\n this.stringMapObserver.stop();\n }\n get element() {\n return this.context.element;\n }\n get controller() {\n return this.context.controller;\n }\n getStringMapKeyForAttribute(attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n }\n stringMapKeyAdded(key, attributeName) {\n const descriptor = this.valueDescriptorMap[attributeName];\n if (!this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n }\n }\n stringMapValueChanged(value, name, oldValue) {\n const descriptor = this.valueDescriptorNameMap[name];\n if (value === null)\n return;\n if (oldValue === null) {\n oldValue = descriptor.writer(descriptor.defaultValue);\n }\n this.invokeChangedCallback(name, value, oldValue);\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n const descriptor = this.valueDescriptorNameMap[key];\n if (this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n }\n else {\n this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n }\n }\n invokeChangedCallbacksForDefaultValues() {\n for (const { key, name, defaultValue, writer } of this.valueDescriptors) {\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallback(name, writer(defaultValue), undefined);\n }\n }\n }\n invokeChangedCallback(name, rawValue, rawOldValue) {\n const changedMethodName = `${name}Changed`;\n const changedMethod = this.receiver[changedMethodName];\n if (typeof changedMethod == \"function\") {\n const descriptor = this.valueDescriptorNameMap[name];\n try {\n const value = descriptor.reader(rawValue);\n let oldValue = rawOldValue;\n if (rawOldValue) {\n oldValue = descriptor.reader(rawOldValue);\n }\n changedMethod.call(this.receiver, value, oldValue);\n }\n catch (error) {\n if (error instanceof TypeError) {\n error.message = `Stimulus Value \"${this.context.identifier}.${descriptor.name}\" - ${error.message}`;\n }\n throw error;\n }\n }\n }\n get valueDescriptors() {\n const { valueDescriptorMap } = this;\n return Object.keys(valueDescriptorMap).map((key) => valueDescriptorMap[key]);\n }\n get valueDescriptorNameMap() {\n const descriptors = {};\n Object.keys(this.valueDescriptorMap).forEach((key) => {\n const descriptor = this.valueDescriptorMap[key];\n descriptors[descriptor.name] = descriptor;\n });\n return descriptors;\n }\n hasValue(attributeName) {\n const descriptor = this.valueDescriptorNameMap[attributeName];\n const hasMethodName = `has${capitalize(descriptor.name)}`;\n return this.receiver[hasMethodName];\n }\n}\n\nclass TargetObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.targetsByName = new Multimap();\n }\n start() {\n if (!this.tokenListObserver) {\n this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n this.tokenListObserver.start();\n }\n }\n stop() {\n if (this.tokenListObserver) {\n this.disconnectAllTargets();\n this.tokenListObserver.stop();\n delete this.tokenListObserver;\n }\n }\n tokenMatched({ element, content: name }) {\n if (this.scope.containsElement(element)) {\n this.connectTarget(element, name);\n }\n }\n tokenUnmatched({ element, content: name }) {\n this.disconnectTarget(element, name);\n }\n connectTarget(element, name) {\n var _a;\n if (!this.targetsByName.has(name, element)) {\n this.targetsByName.add(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetConnected(element, name));\n }\n }\n disconnectTarget(element, name) {\n var _a;\n if (this.targetsByName.has(name, element)) {\n this.targetsByName.delete(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetDisconnected(element, name));\n }\n }\n disconnectAllTargets() {\n for (const name of this.targetsByName.keys) {\n for (const element of this.targetsByName.getValuesForKey(name)) {\n this.disconnectTarget(element, name);\n }\n }\n }\n get attributeName() {\n return `data-${this.context.identifier}-target`;\n }\n get element() {\n return this.context.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce((values, constructor) => {\n getOwnStaticArrayValues(constructor, propertyName).forEach((name) => values.add(name));\n return values;\n }, new Set()));\n}\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce((pairs, constructor) => {\n pairs.push(...getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n const ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n const definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n const definition = constructor[propertyName];\n return definition ? Object.keys(definition).map((key) => [key, definition[key]]) : [];\n}\n\nclass OutletObserver {\n constructor(context, delegate) {\n this.started = false;\n this.context = context;\n this.delegate = delegate;\n this.outletsByName = new Multimap();\n this.outletElementsByName = new Multimap();\n this.selectorObserverMap = new Map();\n this.attributeObserverMap = new Map();\n }\n start() {\n if (!this.started) {\n this.outletDefinitions.forEach((outletName) => {\n this.setupSelectorObserverForOutlet(outletName);\n this.setupAttributeObserverForOutlet(outletName);\n });\n this.started = true;\n this.dependentContexts.forEach((context) => context.refresh());\n }\n }\n refresh() {\n this.selectorObserverMap.forEach((observer) => observer.refresh());\n this.attributeObserverMap.forEach((observer) => observer.refresh());\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.disconnectAllOutlets();\n this.stopSelectorObservers();\n this.stopAttributeObservers();\n }\n }\n stopSelectorObservers() {\n if (this.selectorObserverMap.size > 0) {\n this.selectorObserverMap.forEach((observer) => observer.stop());\n this.selectorObserverMap.clear();\n }\n }\n stopAttributeObservers() {\n if (this.attributeObserverMap.size > 0) {\n this.attributeObserverMap.forEach((observer) => observer.stop());\n this.attributeObserverMap.clear();\n }\n }\n selectorMatched(element, _selector, { outletName }) {\n const outlet = this.getOutlet(element, outletName);\n if (outlet) {\n this.connectOutlet(outlet, element, outletName);\n }\n }\n selectorUnmatched(element, _selector, { outletName }) {\n const outlet = this.getOutletFromMap(element, outletName);\n if (outlet) {\n this.disconnectOutlet(outlet, element, outletName);\n }\n }\n selectorMatchElement(element, { outletName }) {\n const selector = this.selector(outletName);\n const hasOutlet = this.hasOutlet(element, outletName);\n const hasOutletController = element.matches(`[${this.schema.controllerAttribute}~=${outletName}]`);\n if (selector) {\n return hasOutlet && hasOutletController && element.matches(selector);\n }\n else {\n return false;\n }\n }\n elementMatchedAttribute(_element, attributeName) {\n const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n if (outletName) {\n this.updateSelectorObserverForOutlet(outletName);\n }\n }\n elementAttributeValueChanged(_element, attributeName) {\n const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n if (outletName) {\n this.updateSelectorObserverForOutlet(outletName);\n }\n }\n elementUnmatchedAttribute(_element, attributeName) {\n const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n if (outletName) {\n this.updateSelectorObserverForOutlet(outletName);\n }\n }\n connectOutlet(outlet, element, outletName) {\n var _a;\n if (!this.outletElementsByName.has(outletName, element)) {\n this.outletsByName.add(outletName, outlet);\n this.outletElementsByName.add(outletName, element);\n (_a = this.selectorObserverMap.get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletConnected(outlet, element, outletName));\n }\n }\n disconnectOutlet(outlet, element, outletName) {\n var _a;\n if (this.outletElementsByName.has(outletName, element)) {\n this.outletsByName.delete(outletName, outlet);\n this.outletElementsByName.delete(outletName, element);\n (_a = this.selectorObserverMap\n .get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletDisconnected(outlet, element, outletName));\n }\n }\n disconnectAllOutlets() {\n for (const outletName of this.outletElementsByName.keys) {\n for (const element of this.outletElementsByName.getValuesForKey(outletName)) {\n for (const outlet of this.outletsByName.getValuesForKey(outletName)) {\n this.disconnectOutlet(outlet, element, outletName);\n }\n }\n }\n }\n updateSelectorObserverForOutlet(outletName) {\n const observer = this.selectorObserverMap.get(outletName);\n if (observer) {\n observer.selector = this.selector(outletName);\n }\n }\n setupSelectorObserverForOutlet(outletName) {\n const selector = this.selector(outletName);\n const selectorObserver = new SelectorObserver(document.body, selector, this, { outletName });\n this.selectorObserverMap.set(outletName, selectorObserver);\n selectorObserver.start();\n }\n setupAttributeObserverForOutlet(outletName) {\n const attributeName = this.attributeNameForOutletName(outletName);\n const attributeObserver = new AttributeObserver(this.scope.element, attributeName, this);\n this.attributeObserverMap.set(outletName, attributeObserver);\n attributeObserver.start();\n }\n selector(outletName) {\n return this.scope.outlets.getSelectorForOutletName(outletName);\n }\n attributeNameForOutletName(outletName) {\n return this.scope.schema.outletAttributeForScope(this.identifier, outletName);\n }\n getOutletNameFromOutletAttributeName(attributeName) {\n return this.outletDefinitions.find((outletName) => this.attributeNameForOutletName(outletName) === attributeName);\n }\n get outletDependencies() {\n const dependencies = new Multimap();\n this.router.modules.forEach((module) => {\n const constructor = module.definition.controllerConstructor;\n const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n outlets.forEach((outlet) => dependencies.add(outlet, module.identifier));\n });\n return dependencies;\n }\n get outletDefinitions() {\n return this.outletDependencies.getKeysForValue(this.identifier);\n }\n get dependentControllerIdentifiers() {\n return this.outletDependencies.getValuesForKey(this.identifier);\n }\n get dependentContexts() {\n const identifiers = this.dependentControllerIdentifiers;\n return this.router.contexts.filter((context) => identifiers.includes(context.identifier));\n }\n hasOutlet(element, outletName) {\n return !!this.getOutlet(element, outletName) || !!this.getOutletFromMap(element, outletName);\n }\n getOutlet(element, outletName) {\n return this.application.getControllerForElementAndIdentifier(element, outletName);\n }\n getOutletFromMap(element, outletName) {\n return this.outletsByName.getValuesForKey(outletName).find((outlet) => outlet.element === element);\n }\n get scope() {\n return this.context.scope;\n }\n get schema() {\n return this.context.schema;\n }\n get identifier() {\n return this.context.identifier;\n }\n get application() {\n return this.context.application;\n }\n get router() {\n return this.application.router;\n }\n}\n\nclass Context {\n constructor(module, scope) {\n this.logDebugActivity = (functionName, detail = {}) => {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.logDebugActivity(this.identifier, functionName, detail);\n };\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n this.targetObserver = new TargetObserver(this, this);\n this.outletObserver = new OutletObserver(this, this);\n try {\n this.controller.initialize();\n this.logDebugActivity(\"initialize\");\n }\n catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n connect() {\n this.bindingObserver.start();\n this.valueObserver.start();\n this.targetObserver.start();\n this.outletObserver.start();\n try {\n this.controller.connect();\n this.logDebugActivity(\"connect\");\n }\n catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n }\n refresh() {\n this.outletObserver.refresh();\n }\n disconnect() {\n try {\n this.controller.disconnect();\n this.logDebugActivity(\"disconnect\");\n }\n catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n this.outletObserver.stop();\n this.targetObserver.stop();\n this.valueObserver.stop();\n this.bindingObserver.stop();\n }\n get application() {\n return this.module.application;\n }\n get identifier() {\n return this.module.identifier;\n }\n get schema() {\n return this.application.schema;\n }\n get dispatcher() {\n return this.application.dispatcher;\n }\n get element() {\n return this.scope.element;\n }\n get parentElement() {\n return this.element.parentElement;\n }\n handleError(error, message, detail = {}) {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.handleError(error, `Error ${message}`, detail);\n }\n targetConnected(element, name) {\n this.invokeControllerMethod(`${name}TargetConnected`, element);\n }\n targetDisconnected(element, name) {\n this.invokeControllerMethod(`${name}TargetDisconnected`, element);\n }\n outletConnected(outlet, element, name) {\n this.invokeControllerMethod(`${namespaceCamelize(name)}OutletConnected`, outlet, element);\n }\n outletDisconnected(outlet, element, name) {\n this.invokeControllerMethod(`${namespaceCamelize(name)}OutletDisconnected`, outlet, element);\n }\n invokeControllerMethod(methodName, ...args) {\n const controller = this.controller;\n if (typeof controller[methodName] == \"function\") {\n controller[methodName](...args);\n }\n }\n}\n\nfunction bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n const shadowConstructor = extend(constructor);\n const shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n const blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce((blessedProperties, blessing) => {\n const properties = blessing(constructor);\n for (const key in properties) {\n const descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n return blessedProperties;\n }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce((shadowProperties, key) => {\n const descriptor = getShadowedDescriptor(prototype, properties, key);\n if (descriptor) {\n Object.assign(shadowProperties, { [key]: descriptor });\n }\n return shadowProperties;\n }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n const shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n const shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n if (!shadowedByValue) {\n const descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n return descriptor;\n }\n}\nconst getOwnKeys = (() => {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return (object) => [...Object.getOwnPropertyNames(object), ...Object.getOwnPropertySymbols(object)];\n }\n else {\n return Object.getOwnPropertyNames;\n }\n})();\nconst extend = (() => {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, new.target);\n }\n extended.prototype = Object.create(constructor.prototype, {\n constructor: { value: extended },\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n function testReflectExtension() {\n const a = function () {\n this.a.call(this);\n };\n const b = extendWithReflect(a);\n b.prototype.a = function () { };\n return new b();\n }\n try {\n testReflectExtension();\n return extendWithReflect;\n }\n catch (error) {\n return (constructor) => class extended extends constructor {\n };\n }\n})();\n\nfunction blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor),\n };\n}\n\nclass Module {\n constructor(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n get identifier() {\n return this.definition.identifier;\n }\n get controllerConstructor() {\n return this.definition.controllerConstructor;\n }\n get contexts() {\n return Array.from(this.connectedContexts);\n }\n connectContextForScope(scope) {\n const context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n }\n disconnectContextForScope(scope) {\n const context = this.contextsByScope.get(scope);\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n }\n fetchContextForScope(scope) {\n let context = this.contextsByScope.get(scope);\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n return context;\n }\n}\n\nclass ClassMap {\n constructor(scope) {\n this.scope = scope;\n }\n has(name) {\n return this.data.has(this.getDataKey(name));\n }\n get(name) {\n return this.getAll(name)[0];\n }\n getAll(name) {\n const tokenString = this.data.get(this.getDataKey(name)) || \"\";\n return tokenize(tokenString);\n }\n getAttributeName(name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n }\n getDataKey(name) {\n return `${name}-class`;\n }\n get data() {\n return this.scope.data;\n }\n}\n\nclass DataMap {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n }\n set(key, value) {\n const name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n }\n has(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n }\n delete(key) {\n if (this.has(key)) {\n const name = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name);\n return true;\n }\n else {\n return false;\n }\n }\n getAttributeNameForKey(key) {\n return `data-${this.identifier}-${dasherize(key)}`;\n }\n}\n\nclass Guide {\n constructor(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n warn(object, key, message) {\n let warnedKeys = this.warnedKeysByObject.get(object);\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n }\n}\n\nfunction attributeValueContainsToken(attributeName, token) {\n return `[${attributeName}~=\"${token}\"]`;\n}\n\nclass TargetSet {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(targetName) {\n return this.find(targetName) != null;\n }\n find(...targetNames) {\n return targetNames.reduce((target, targetName) => target || this.findTarget(targetName) || this.findLegacyTarget(targetName), undefined);\n }\n findAll(...targetNames) {\n return targetNames.reduce((targets, targetName) => [\n ...targets,\n ...this.findAllTargets(targetName),\n ...this.findAllLegacyTargets(targetName),\n ], []);\n }\n findTarget(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n }\n findAllTargets(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n }\n getSelectorForTargetName(targetName) {\n const attributeName = this.schema.targetAttributeForScope(this.identifier);\n return attributeValueContainsToken(attributeName, targetName);\n }\n findLegacyTarget(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n }\n findAllLegacyTargets(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map((element) => this.deprecate(element, targetName));\n }\n getLegacySelectorForTargetName(targetName) {\n const targetDescriptor = `${this.identifier}.${targetName}`;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n }\n deprecate(element, targetName) {\n if (element) {\n const { identifier } = this;\n const attributeName = this.schema.targetAttribute;\n const revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n this.guide.warn(element, `target:${targetName}`, `Please replace ${attributeName}=\"${identifier}.${targetName}\" with ${revisedAttributeName}=\"${targetName}\". ` +\n `The ${attributeName} attribute is deprecated and will be removed in a future version of Stimulus.`);\n }\n return element;\n }\n get guide() {\n return this.scope.guide;\n }\n}\n\nclass OutletSet {\n constructor(scope, controllerElement) {\n this.scope = scope;\n this.controllerElement = controllerElement;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(outletName) {\n return this.find(outletName) != null;\n }\n find(...outletNames) {\n return outletNames.reduce((outlet, outletName) => outlet || this.findOutlet(outletName), undefined);\n }\n findAll(...outletNames) {\n return outletNames.reduce((outlets, outletName) => [...outlets, ...this.findAllOutlets(outletName)], []);\n }\n getSelectorForOutletName(outletName) {\n const attributeName = this.schema.outletAttributeForScope(this.identifier, outletName);\n return this.controllerElement.getAttribute(attributeName);\n }\n findOutlet(outletName) {\n const selector = this.getSelectorForOutletName(outletName);\n if (selector)\n return this.findElement(selector, outletName);\n }\n findAllOutlets(outletName) {\n const selector = this.getSelectorForOutletName(outletName);\n return selector ? this.findAllElements(selector, outletName) : [];\n }\n findElement(selector, outletName) {\n const elements = this.scope.queryElements(selector);\n return elements.filter((element) => this.matchesElement(element, selector, outletName))[0];\n }\n findAllElements(selector, outletName) {\n const elements = this.scope.queryElements(selector);\n return elements.filter((element) => this.matchesElement(element, selector, outletName));\n }\n matchesElement(element, selector, outletName) {\n const controllerAttribute = element.getAttribute(this.scope.schema.controllerAttribute) || \"\";\n return element.matches(selector) && controllerAttribute.split(\" \").includes(outletName);\n }\n}\n\nclass Scope {\n constructor(schema, element, identifier, logger) {\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n this.containsElement = (element) => {\n return element.closest(this.controllerSelector) === this.element;\n };\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n this.outlets = new OutletSet(this.documentScope, element);\n }\n findElement(selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n }\n findAllElements(selector) {\n return [\n ...(this.element.matches(selector) ? [this.element] : []),\n ...this.queryElements(selector).filter(this.containsElement),\n ];\n }\n queryElements(selector) {\n return Array.from(this.element.querySelectorAll(selector));\n }\n get controllerSelector() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n }\n get isDocumentScope() {\n return this.element === document.documentElement;\n }\n get documentScope() {\n return this.isDocumentScope\n ? this\n : new Scope(this.schema, document.documentElement, this.identifier, this.guide.logger);\n }\n}\n\nclass ScopeObserver {\n constructor(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n start() {\n this.valueListObserver.start();\n }\n stop() {\n this.valueListObserver.stop();\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n parseValueForToken(token) {\n const { element, content: identifier } = token;\n return this.parseValueForElementAndIdentifier(element, identifier);\n }\n parseValueForElementAndIdentifier(element, identifier) {\n const scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n let scope = scopesByIdentifier.get(identifier);\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n return scope;\n }\n elementMatchedValue(element, value) {\n const referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n }\n elementUnmatchedValue(element, value) {\n const referenceCount = this.scopeReferenceCounts.get(value);\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n }\n fetchScopesByIdentifierForElement(element) {\n let scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n return scopesByIdentifier;\n }\n}\n\nclass Router {\n constructor(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n get element() {\n return this.application.element;\n }\n get schema() {\n return this.application.schema;\n }\n get logger() {\n return this.application.logger;\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n get modules() {\n return Array.from(this.modulesByIdentifier.values());\n }\n get contexts() {\n return this.modules.reduce((contexts, module) => contexts.concat(module.contexts), []);\n }\n start() {\n this.scopeObserver.start();\n }\n stop() {\n this.scopeObserver.stop();\n }\n loadDefinition(definition) {\n this.unloadIdentifier(definition.identifier);\n const module = new Module(this.application, definition);\n this.connectModule(module);\n const afterLoad = definition.controllerConstructor.afterLoad;\n if (afterLoad) {\n afterLoad.call(definition.controllerConstructor, definition.identifier, this.application);\n }\n }\n unloadIdentifier(identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n this.disconnectModule(module);\n }\n }\n getContextForElementAndIdentifier(element, identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n return module.contexts.find((context) => context.element == element);\n }\n }\n proposeToConnectScopeForElementAndIdentifier(element, identifier) {\n const scope = this.scopeObserver.parseValueForElementAndIdentifier(element, identifier);\n if (scope) {\n this.scopeObserver.elementMatchedValue(scope.element, scope);\n }\n else {\n console.error(`Couldn't find or create scope for identifier: \"${identifier}\" and element:`, element);\n }\n }\n handleError(error, message, detail) {\n this.application.handleError(error, message, detail);\n }\n createScopeForElementAndIdentifier(element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n }\n scopeConnected(scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.connectContextForScope(scope);\n }\n }\n scopeDisconnected(scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }\n connectModule(module) {\n this.modulesByIdentifier.set(module.identifier, module);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach((scope) => module.connectContextForScope(scope));\n }\n disconnectModule(module) {\n this.modulesByIdentifier.delete(module.identifier);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach((scope) => module.disconnectContextForScope(scope));\n }\n}\n\nconst defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\",\n targetAttributeForScope: (identifier) => `data-${identifier}-target`,\n outletAttributeForScope: (identifier, outlet) => `data-${identifier}-${outlet}-outlet`,\n keyMappings: Object.assign(Object.assign({ enter: \"Enter\", tab: \"Tab\", esc: \"Escape\", space: \" \", up: \"ArrowUp\", down: \"ArrowDown\", left: \"ArrowLeft\", right: \"ArrowRight\", home: \"Home\", end: \"End\", page_up: \"PageUp\", page_down: \"PageDown\" }, objectFromEntries(\"abcdefghijklmnopqrstuvwxyz\".split(\"\").map((c) => [c, c]))), objectFromEntries(\"0123456789\".split(\"\").map((n) => [n, n]))),\n};\nfunction objectFromEntries(array) {\n return array.reduce((memo, [k, v]) => (Object.assign(Object.assign({}, memo), { [k]: v })), {});\n}\n\nclass Application {\n constructor(element = document.documentElement, schema = defaultSchema) {\n this.logger = console;\n this.debug = false;\n this.logDebugActivity = (identifier, functionName, detail = {}) => {\n if (this.debug) {\n this.logFormattedMessage(identifier, functionName, detail);\n }\n };\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n this.actionDescriptorFilters = Object.assign({}, defaultActionDescriptorFilters);\n }\n static start(element, schema) {\n const application = new this(element, schema);\n application.start();\n return application;\n }\n async start() {\n await domReady();\n this.logDebugActivity(\"application\", \"starting\");\n this.dispatcher.start();\n this.router.start();\n this.logDebugActivity(\"application\", \"start\");\n }\n stop() {\n this.logDebugActivity(\"application\", \"stopping\");\n this.dispatcher.stop();\n this.router.stop();\n this.logDebugActivity(\"application\", \"stop\");\n }\n register(identifier, controllerConstructor) {\n this.load({ identifier, controllerConstructor });\n }\n registerActionOption(name, filter) {\n this.actionDescriptorFilters[name] = filter;\n }\n load(head, ...rest) {\n const definitions = Array.isArray(head) ? head : [head, ...rest];\n definitions.forEach((definition) => {\n if (definition.controllerConstructor.shouldLoad) {\n this.router.loadDefinition(definition);\n }\n });\n }\n unload(head, ...rest) {\n const identifiers = Array.isArray(head) ? head : [head, ...rest];\n identifiers.forEach((identifier) => this.router.unloadIdentifier(identifier));\n }\n get controllers() {\n return this.router.contexts.map((context) => context.controller);\n }\n getControllerForElementAndIdentifier(element, identifier) {\n const context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }\n handleError(error, message, detail) {\n var _a;\n this.logger.error(`%s\\n\\n%o\\n\\n%o`, message, error, detail);\n (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n }\n logFormattedMessage(identifier, functionName, detail = {}) {\n detail = Object.assign({ application: this }, detail);\n this.logger.groupCollapsed(`${identifier} #${functionName}`);\n this.logger.log(\"details:\", Object.assign({}, detail));\n this.logger.groupEnd();\n }\n}\nfunction domReady() {\n return new Promise((resolve) => {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => resolve());\n }\n else {\n resolve();\n }\n });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n const classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce((properties, classDefinition) => {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\nfunction propertiesForClassDefinition(key) {\n return {\n [`${key}Class`]: {\n get() {\n const { classes } = this;\n if (classes.has(key)) {\n return classes.get(key);\n }\n else {\n const attribute = classes.getAttributeName(key);\n throw new Error(`Missing attribute \"${attribute}\"`);\n }\n },\n },\n [`${key}Classes`]: {\n get() {\n return this.classes.getAll(key);\n },\n },\n [`has${capitalize(key)}Class`]: {\n get() {\n return this.classes.has(key);\n },\n },\n };\n}\n\nfunction OutletPropertiesBlessing(constructor) {\n const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n return outlets.reduce((properties, outletDefinition) => {\n return Object.assign(properties, propertiesForOutletDefinition(outletDefinition));\n }, {});\n}\nfunction getOutletController(controller, element, identifier) {\n return controller.application.getControllerForElementAndIdentifier(element, identifier);\n}\nfunction getControllerAndEnsureConnectedScope(controller, element, outletName) {\n let outletController = getOutletController(controller, element, outletName);\n if (outletController)\n return outletController;\n controller.application.router.proposeToConnectScopeForElementAndIdentifier(element, outletName);\n outletController = getOutletController(controller, element, outletName);\n if (outletController)\n return outletController;\n}\nfunction propertiesForOutletDefinition(name) {\n const camelizedName = namespaceCamelize(name);\n return {\n [`${camelizedName}Outlet`]: {\n get() {\n const outletElement = this.outlets.find(name);\n const selector = this.outlets.getSelectorForOutletName(name);\n if (outletElement) {\n const outletController = getControllerAndEnsureConnectedScope(this, outletElement, name);\n if (outletController)\n return outletController;\n throw new Error(`The provided outlet element is missing an outlet controller \"${name}\" instance for host controller \"${this.identifier}\"`);\n }\n throw new Error(`Missing outlet element \"${name}\" for host controller \"${this.identifier}\". Stimulus couldn't find a matching outlet element using selector \"${selector}\".`);\n },\n },\n [`${camelizedName}Outlets`]: {\n get() {\n const outlets = this.outlets.findAll(name);\n if (outlets.length > 0) {\n return outlets\n .map((outletElement) => {\n const outletController = getControllerAndEnsureConnectedScope(this, outletElement, name);\n if (outletController)\n return outletController;\n console.warn(`The provided outlet element is missing an outlet controller \"${name}\" instance for host controller \"${this.identifier}\"`, outletElement);\n })\n .filter((controller) => controller);\n }\n return [];\n },\n },\n [`${camelizedName}OutletElement`]: {\n get() {\n const outletElement = this.outlets.find(name);\n const selector = this.outlets.getSelectorForOutletName(name);\n if (outletElement) {\n return outletElement;\n }\n else {\n throw new Error(`Missing outlet element \"${name}\" for host controller \"${this.identifier}\". Stimulus couldn't find a matching outlet element using selector \"${selector}\".`);\n }\n },\n },\n [`${camelizedName}OutletElements`]: {\n get() {\n return this.outlets.findAll(name);\n },\n },\n [`has${capitalize(camelizedName)}Outlet`]: {\n get() {\n return this.outlets.has(name);\n },\n },\n };\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n const targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce((properties, targetDefinition) => {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n return {\n [`${name}Target`]: {\n get() {\n const target = this.targets.find(name);\n if (target) {\n return target;\n }\n else {\n throw new Error(`Missing target element \"${name}\" for \"${this.identifier}\" controller`);\n }\n },\n },\n [`${name}Targets`]: {\n get() {\n return this.targets.findAll(name);\n },\n },\n [`has${capitalize(name)}Target`]: {\n get() {\n return this.targets.has(name);\n },\n },\n };\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n const propertyDescriptorMap = {\n valueDescriptorMap: {\n get() {\n return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {\n const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair, this.identifier);\n const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, { [attributeName]: valueDescriptor });\n }, {});\n },\n },\n };\n return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\nfunction propertiesForValueDefinitionPair(valueDefinitionPair, controller) {\n const definition = parseValueDefinitionPair(valueDefinitionPair, controller);\n const { key, name, reader: read, writer: write } = definition;\n return {\n [name]: {\n get() {\n const value = this.data.get(key);\n if (value !== null) {\n return read(value);\n }\n else {\n return definition.defaultValue;\n }\n },\n set(value) {\n if (value === undefined) {\n this.data.delete(key);\n }\n else {\n this.data.set(key, write(value));\n }\n },\n },\n [`has${capitalize(name)}`]: {\n get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n },\n },\n };\n}\nfunction parseValueDefinitionPair([token, typeDefinition], controller) {\n return valueDescriptorForTokenAndTypeDefinition({\n controller,\n token,\n typeDefinition,\n });\n}\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\n case Array:\n return \"array\";\n case Boolean:\n return \"boolean\";\n case Number:\n return \"number\";\n case Object:\n return \"object\";\n case String:\n return \"string\";\n }\n}\nfunction parseValueTypeDefault(defaultValue) {\n switch (typeof defaultValue) {\n case \"boolean\":\n return \"boolean\";\n case \"number\":\n return \"number\";\n case \"string\":\n return \"string\";\n }\n if (Array.isArray(defaultValue))\n return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\")\n return \"object\";\n}\nfunction parseValueTypeObject(payload) {\n const { controller, token, typeObject } = payload;\n const hasType = isSomething(typeObject.type);\n const hasDefault = isSomething(typeObject.default);\n const fullObject = hasType && hasDefault;\n const onlyType = hasType && !hasDefault;\n const onlyDefault = !hasType && hasDefault;\n const typeFromObject = parseValueTypeConstant(typeObject.type);\n const typeFromDefaultValue = parseValueTypeDefault(payload.typeObject.default);\n if (onlyType)\n return typeFromObject;\n if (onlyDefault)\n return typeFromDefaultValue;\n if (typeFromObject !== typeFromDefaultValue) {\n const propertyPath = controller ? `${controller}.${token}` : token;\n throw new Error(`The specified default value for the Stimulus Value \"${propertyPath}\" must match the defined type \"${typeFromObject}\". The provided default value of \"${typeObject.default}\" is of type \"${typeFromDefaultValue}\".`);\n }\n if (fullObject)\n return typeFromObject;\n}\nfunction parseValueTypeDefinition(payload) {\n const { controller, token, typeDefinition } = payload;\n const typeObject = { controller, token, typeObject: typeDefinition };\n const typeFromObject = parseValueTypeObject(typeObject);\n const typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n const typeFromConstant = parseValueTypeConstant(typeDefinition);\n const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type)\n return type;\n const propertyPath = controller ? `${controller}.${typeDefinition}` : token;\n throw new Error(`Unknown value type \"${propertyPath}\" for \"${token}\" value`);\n}\nfunction defaultValueForDefinition(typeDefinition) {\n const constant = parseValueTypeConstant(typeDefinition);\n if (constant)\n return defaultValuesByType[constant];\n const hasDefault = hasProperty(typeDefinition, \"default\");\n const hasType = hasProperty(typeDefinition, \"type\");\n const typeObject = typeDefinition;\n if (hasDefault)\n return typeObject.default;\n if (hasType) {\n const { type } = typeObject;\n const constantFromType = parseValueTypeConstant(type);\n if (constantFromType)\n return defaultValuesByType[constantFromType];\n }\n return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(payload) {\n const { token, typeDefinition } = payload;\n const key = `${dasherize(token)}-value`;\n const type = parseValueTypeDefinition(payload);\n return {\n type,\n key,\n name: camelize(key),\n get defaultValue() {\n return defaultValueForDefinition(typeDefinition);\n },\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(typeDefinition) !== undefined;\n },\n reader: readers[type],\n writer: writers[type] || writers.default,\n };\n}\nconst defaultValuesByType = {\n get array() {\n return [];\n },\n boolean: false,\n number: 0,\n get object() {\n return {};\n },\n string: \"\",\n};\nconst readers = {\n array(value) {\n const array = JSON.parse(value);\n if (!Array.isArray(array)) {\n throw new TypeError(`expected value of type \"array\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(array)}\"`);\n }\n return array;\n },\n boolean(value) {\n return !(value == \"0\" || String(value).toLowerCase() == \"false\");\n },\n number(value) {\n return Number(value.replace(/_/g, \"\"));\n },\n object(value) {\n const object = JSON.parse(value);\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(`expected value of type \"object\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(object)}\"`);\n }\n return object;\n },\n string(value) {\n return value;\n },\n};\nconst writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON,\n};\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\nfunction writeString(value) {\n return `${value}`;\n}\n\nclass Controller {\n constructor(context) {\n this.context = context;\n }\n static get shouldLoad() {\n return true;\n }\n static afterLoad(_identifier, _application) {\n return;\n }\n get application() {\n return this.context.application;\n }\n get scope() {\n return this.context.scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get targets() {\n return this.scope.targets;\n }\n get outlets() {\n return this.scope.outlets;\n }\n get classes() {\n return this.scope.classes;\n }\n get data() {\n return this.scope.data;\n }\n initialize() {\n }\n connect() {\n }\n disconnect() {\n }\n dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true, } = {}) {\n const type = prefix ? `${prefix}:${eventName}` : eventName;\n const event = new CustomEvent(type, { detail, bubbles, cancelable });\n target.dispatchEvent(event);\n return event;\n }\n}\nController.blessings = [\n ClassPropertiesBlessing,\n TargetPropertiesBlessing,\n ValuePropertiesBlessing,\n OutletPropertiesBlessing,\n];\nController.targets = [];\nController.outlets = [];\nController.values = {};\n\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, SelectorObserver, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, del, fetch, prune };\n", "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"],
5
+ "mappings": "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",
6
+ "names": ["application", "error", "match", "oldValue", "error", "constructor", "application", "element"]
7
+ }
@@ -0,0 +1,211 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __esm = (fn, res) => function __init() {
4
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
5
+ };
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+
11
+ // node_modules/web-vitals/dist/web-vitals.js
12
+ var web_vitals_exports = {};
13
+ __export(web_vitals_exports, {
14
+ getCLS: () => h,
15
+ getFCP: () => d,
16
+ getFID: () => L,
17
+ getLCP: () => F,
18
+ getTTFB: () => P
19
+ });
20
+ var e, t, n, i, r, a, o, u, c, f, s, m, v, d, p, l, h, T, y, g, E, S, w, L, b, F, P;
21
+ var init_web_vitals = __esm({
22
+ "node_modules/web-vitals/dist/web-vitals.js"() {
23
+ r = function(e2, t2) {
24
+ return { name: e2, value: void 0 === t2 ? -1 : t2, delta: 0, entries: [], id: "v2-".concat(Date.now(), "-").concat(Math.floor(8999999999999 * Math.random()) + 1e12) };
25
+ };
26
+ a = function(e2, t2) {
27
+ try {
28
+ if (PerformanceObserver.supportedEntryTypes.includes(e2)) {
29
+ if ("first-input" === e2 && !("PerformanceEventTiming" in self))
30
+ return;
31
+ var n2 = new PerformanceObserver(function(e3) {
32
+ return e3.getEntries().map(t2);
33
+ });
34
+ return n2.observe({ type: e2, buffered: true }), n2;
35
+ }
36
+ } catch (e3) {
37
+ }
38
+ };
39
+ o = function(e2, t2) {
40
+ var n2 = function n3(i2) {
41
+ "pagehide" !== i2.type && "hidden" !== document.visibilityState || (e2(i2), t2 && (removeEventListener("visibilitychange", n3, true), removeEventListener("pagehide", n3, true)));
42
+ };
43
+ addEventListener("visibilitychange", n2, true), addEventListener("pagehide", n2, true);
44
+ };
45
+ u = function(e2) {
46
+ addEventListener("pageshow", function(t2) {
47
+ t2.persisted && e2(t2);
48
+ }, true);
49
+ };
50
+ c = function(e2, t2, n2) {
51
+ var i2;
52
+ return function(r2) {
53
+ t2.value >= 0 && (r2 || n2) && (t2.delta = t2.value - (i2 || 0), (t2.delta || void 0 === i2) && (i2 = t2.value, e2(t2)));
54
+ };
55
+ };
56
+ f = -1;
57
+ s = function() {
58
+ return "hidden" === document.visibilityState ? 0 : 1 / 0;
59
+ };
60
+ m = function() {
61
+ o(function(e2) {
62
+ var t2 = e2.timeStamp;
63
+ f = t2;
64
+ }, true);
65
+ };
66
+ v = function() {
67
+ return f < 0 && (f = s(), m(), u(function() {
68
+ setTimeout(function() {
69
+ f = s(), m();
70
+ }, 0);
71
+ })), { get firstHiddenTime() {
72
+ return f;
73
+ } };
74
+ };
75
+ d = function(e2, t2) {
76
+ var n2, i2 = v(), o2 = r("FCP"), f2 = function(e3) {
77
+ "first-contentful-paint" === e3.name && (m2 && m2.disconnect(), e3.startTime < i2.firstHiddenTime && (o2.value = e3.startTime, o2.entries.push(e3), n2(true)));
78
+ }, s2 = window.performance && performance.getEntriesByName && performance.getEntriesByName("first-contentful-paint")[0], m2 = s2 ? null : a("paint", f2);
79
+ (s2 || m2) && (n2 = c(e2, o2, t2), s2 && f2(s2), u(function(i3) {
80
+ o2 = r("FCP"), n2 = c(e2, o2, t2), requestAnimationFrame(function() {
81
+ requestAnimationFrame(function() {
82
+ o2.value = performance.now() - i3.timeStamp, n2(true);
83
+ });
84
+ });
85
+ }));
86
+ };
87
+ p = false;
88
+ l = -1;
89
+ h = function(e2, t2) {
90
+ p || (d(function(e3) {
91
+ l = e3.value;
92
+ }), p = true);
93
+ var n2, i2 = function(t3) {
94
+ l > -1 && e2(t3);
95
+ }, f2 = r("CLS", 0), s2 = 0, m2 = [], v2 = function(e3) {
96
+ if (!e3.hadRecentInput) {
97
+ var t3 = m2[0], i3 = m2[m2.length - 1];
98
+ s2 && e3.startTime - i3.startTime < 1e3 && e3.startTime - t3.startTime < 5e3 ? (s2 += e3.value, m2.push(e3)) : (s2 = e3.value, m2 = [e3]), s2 > f2.value && (f2.value = s2, f2.entries = m2, n2());
99
+ }
100
+ }, h2 = a("layout-shift", v2);
101
+ h2 && (n2 = c(i2, f2, t2), o(function() {
102
+ h2.takeRecords().map(v2), n2(true);
103
+ }), u(function() {
104
+ s2 = 0, l = -1, f2 = r("CLS", 0), n2 = c(i2, f2, t2);
105
+ }));
106
+ };
107
+ T = { passive: true, capture: true };
108
+ y = /* @__PURE__ */ new Date();
109
+ g = function(i2, r2) {
110
+ e || (e = r2, t = i2, n = /* @__PURE__ */ new Date(), w(removeEventListener), E());
111
+ };
112
+ E = function() {
113
+ if (t >= 0 && t < n - y) {
114
+ var r2 = { entryType: "first-input", name: e.type, target: e.target, cancelable: e.cancelable, startTime: e.timeStamp, processingStart: e.timeStamp + t };
115
+ i.forEach(function(e2) {
116
+ e2(r2);
117
+ }), i = [];
118
+ }
119
+ };
120
+ S = function(e2) {
121
+ if (e2.cancelable) {
122
+ var t2 = (e2.timeStamp > 1e12 ? /* @__PURE__ */ new Date() : performance.now()) - e2.timeStamp;
123
+ "pointerdown" == e2.type ? function(e3, t3) {
124
+ var n2 = function() {
125
+ g(e3, t3), r2();
126
+ }, i2 = function() {
127
+ r2();
128
+ }, r2 = function() {
129
+ removeEventListener("pointerup", n2, T), removeEventListener("pointercancel", i2, T);
130
+ };
131
+ addEventListener("pointerup", n2, T), addEventListener("pointercancel", i2, T);
132
+ }(t2, e2) : g(t2, e2);
133
+ }
134
+ };
135
+ w = function(e2) {
136
+ ["mousedown", "keydown", "touchstart", "pointerdown"].forEach(function(t2) {
137
+ return e2(t2, S, T);
138
+ });
139
+ };
140
+ L = function(n2, f2) {
141
+ var s2, m2 = v(), d2 = r("FID"), p2 = function(e2) {
142
+ e2.startTime < m2.firstHiddenTime && (d2.value = e2.processingStart - e2.startTime, d2.entries.push(e2), s2(true));
143
+ }, l2 = a("first-input", p2);
144
+ s2 = c(n2, d2, f2), l2 && o(function() {
145
+ l2.takeRecords().map(p2), l2.disconnect();
146
+ }, true), l2 && u(function() {
147
+ var a2;
148
+ d2 = r("FID"), s2 = c(n2, d2, f2), i = [], t = -1, e = null, w(addEventListener), a2 = p2, i.push(a2), E();
149
+ });
150
+ };
151
+ b = {};
152
+ F = function(e2, t2) {
153
+ var n2, i2 = v(), f2 = r("LCP"), s2 = function(e3) {
154
+ var t3 = e3.startTime;
155
+ t3 < i2.firstHiddenTime && (f2.value = t3, f2.entries.push(e3), n2());
156
+ }, m2 = a("largest-contentful-paint", s2);
157
+ if (m2) {
158
+ n2 = c(e2, f2, t2);
159
+ var d2 = function() {
160
+ b[f2.id] || (m2.takeRecords().map(s2), m2.disconnect(), b[f2.id] = true, n2(true));
161
+ };
162
+ ["keydown", "click"].forEach(function(e3) {
163
+ addEventListener(e3, d2, { once: true, capture: true });
164
+ }), o(d2, true), u(function(i3) {
165
+ f2 = r("LCP"), n2 = c(e2, f2, t2), requestAnimationFrame(function() {
166
+ requestAnimationFrame(function() {
167
+ f2.value = performance.now() - i3.timeStamp, b[f2.id] = true, n2(true);
168
+ });
169
+ });
170
+ });
171
+ }
172
+ };
173
+ P = function(e2) {
174
+ var t2, n2 = r("TTFB");
175
+ t2 = function() {
176
+ try {
177
+ var t3 = performance.getEntriesByType("navigation")[0] || function() {
178
+ var e3 = performance.timing, t4 = { entryType: "navigation", startTime: 0 };
179
+ for (var n3 in e3)
180
+ "navigationStart" !== n3 && "toJSON" !== n3 && (t4[n3] = Math.max(e3[n3] - e3.navigationStart, 0));
181
+ return t4;
182
+ }();
183
+ if (n2.value = n2.delta = t3.responseStart, n2.value < 0 || n2.value > performance.now())
184
+ return;
185
+ n2.entries = [t3], e2(n2);
186
+ } catch (e3) {
187
+ }
188
+ }, "complete" === document.readyState ? setTimeout(t2, 0) : addEventListener("load", function() {
189
+ return setTimeout(t2, 0);
190
+ });
191
+ };
192
+ }
193
+ });
194
+
195
+ // app/javascript/reportWebVitals.js
196
+ var reportWebVitals = (onPerfEntry) => {
197
+ if (onPerfEntry && onPerfEntry instanceof Function) {
198
+ Promise.resolve().then(() => (init_web_vitals(), web_vitals_exports)).then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
199
+ getCLS(onPerfEntry);
200
+ getFID(onPerfEntry);
201
+ getFCP(onPerfEntry);
202
+ getLCP(onPerfEntry);
203
+ getTTFB(onPerfEntry);
204
+ });
205
+ }
206
+ };
207
+ var reportWebVitals_default = reportWebVitals;
208
+ export {
209
+ reportWebVitals_default as default
210
+ };
211
+ //# sourceMappingURL=/assets/reportWebVitals.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../node_modules/web-vitals/dist/web-vitals.js", "../../javascript/reportWebVitals.js"],
4
+ "sourcesContent": ["var e,t,n,i,r=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:\"v2-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12)}},a=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if(\"first-input\"===e&&!(\"PerformanceEventTiming\"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},o=function(e,t){var n=function n(i){\"pagehide\"!==i.type&&\"hidden\"!==document.visibilityState||(e(i),t&&(removeEventListener(\"visibilitychange\",n,!0),removeEventListener(\"pagehide\",n,!0)))};addEventListener(\"visibilitychange\",n,!0),addEventListener(\"pagehide\",n,!0)},u=function(e){addEventListener(\"pageshow\",(function(t){t.persisted&&e(t)}),!0)},c=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},f=-1,s=function(){return\"hidden\"===document.visibilityState?0:1/0},m=function(){o((function(e){var t=e.timeStamp;f=t}),!0)},v=function(){return f<0&&(f=s(),m(),u((function(){setTimeout((function(){f=s(),m()}),0)}))),{get firstHiddenTime(){return f}}},d=function(e,t){var n,i=v(),o=r(\"FCP\"),f=function(e){\"first-contentful-paint\"===e.name&&(m&&m.disconnect(),e.startTime<i.firstHiddenTime&&(o.value=e.startTime,o.entries.push(e),n(!0)))},s=window.performance&&performance.getEntriesByName&&performance.getEntriesByName(\"first-contentful-paint\")[0],m=s?null:a(\"paint\",f);(s||m)&&(n=c(e,o,t),s&&f(s),u((function(i){o=r(\"FCP\"),n=c(e,o,t),requestAnimationFrame((function(){requestAnimationFrame((function(){o.value=performance.now()-i.timeStamp,n(!0)}))}))})))},p=!1,l=-1,h=function(e,t){p||(d((function(e){l=e.value})),p=!0);var n,i=function(t){l>-1&&e(t)},f=r(\"CLS\",0),s=0,m=[],v=function(e){if(!e.hadRecentInput){var t=m[0],i=m[m.length-1];s&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(s+=e.value,m.push(e)):(s=e.value,m=[e]),s>f.value&&(f.value=s,f.entries=m,n())}},h=a(\"layout-shift\",v);h&&(n=c(i,f,t),o((function(){h.takeRecords().map(v),n(!0)})),u((function(){s=0,l=-1,f=r(\"CLS\",0),n=c(i,f,t)})))},T={passive:!0,capture:!0},y=new Date,g=function(i,r){e||(e=r,t=i,n=new Date,w(removeEventListener),E())},E=function(){if(t>=0&&t<n-y){var r={entryType:\"first-input\",name:e.type,target:e.target,cancelable:e.cancelable,startTime:e.timeStamp,processingStart:e.timeStamp+t};i.forEach((function(e){e(r)})),i=[]}},S=function(e){if(e.cancelable){var t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,t){var n=function(){g(e,t),r()},i=function(){r()},r=function(){removeEventListener(\"pointerup\",n,T),removeEventListener(\"pointercancel\",i,T)};addEventListener(\"pointerup\",n,T),addEventListener(\"pointercancel\",i,T)}(t,e):g(t,e)}},w=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(t){return e(t,S,T)}))},L=function(n,f){var s,m=v(),d=r(\"FID\"),p=function(e){e.startTime<m.firstHiddenTime&&(d.value=e.processingStart-e.startTime,d.entries.push(e),s(!0))},l=a(\"first-input\",p);s=c(n,d,f),l&&o((function(){l.takeRecords().map(p),l.disconnect()}),!0),l&&u((function(){var a;d=r(\"FID\"),s=c(n,d,f),i=[],t=-1,e=null,w(addEventListener),a=p,i.push(a),E()}))},b={},F=function(e,t){var n,i=v(),f=r(\"LCP\"),s=function(e){var t=e.startTime;t<i.firstHiddenTime&&(f.value=t,f.entries.push(e),n())},m=a(\"largest-contentful-paint\",s);if(m){n=c(e,f,t);var d=function(){b[f.id]||(m.takeRecords().map(s),m.disconnect(),b[f.id]=!0,n(!0))};[\"keydown\",\"click\"].forEach((function(e){addEventListener(e,d,{once:!0,capture:!0})})),o(d,!0),u((function(i){f=r(\"LCP\"),n=c(e,f,t),requestAnimationFrame((function(){requestAnimationFrame((function(){f.value=performance.now()-i.timeStamp,b[f.id]=!0,n(!0)}))}))}))}},P=function(e){var t,n=r(\"TTFB\");t=function(){try{var t=performance.getEntriesByType(\"navigation\")[0]||function(){var e=performance.timing,t={entryType:\"navigation\",startTime:0};for(var n in e)\"navigationStart\"!==n&&\"toJSON\"!==n&&(t[n]=Math.max(e[n]-e.navigationStart,0));return t}();if(n.value=n.delta=t.responseStart,n.value<0||n.value>performance.now())return;n.entries=[t],e(n)}catch(e){}},\"complete\"===document.readyState?setTimeout(t,0):addEventListener(\"load\",(function(){return setTimeout(t,0)}))};export{h as getCLS,d as getFCP,L as getFID,F as getLCP,P as getTTFB};\n", "const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n"],
5
+ "mappings": ";;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAI,GAAE,GAAE,GAAE,GAAE,GAA8J,GAA6Q,GAA0Q,GAAgF,GAAkI,GAAK,GAA8D,GAAyD,GAA+H,GAA0f,GAAK,GAAK,GAAgc,GAA0B,GAAW,GAAoE,GAA2M,GAAqW,GAA0G,GAA0V,GAAK,GAAghB;AAApsH;AAAA;AAAA,IAAY,IAAE,SAASA,IAAEC,IAAE;AAAC,aAAM,EAAC,MAAKD,IAAE,OAAM,WAASC,KAAE,KAAGA,IAAE,OAAM,GAAE,SAAQ,CAAC,GAAE,IAAG,MAAM,OAAO,KAAK,IAAI,GAAE,GAAG,EAAE,OAAO,KAAK,MAAM,gBAAc,KAAK,OAAO,CAAC,IAAE,IAAI,EAAC;AAAA,IAAC;AAAxK,IAA0K,IAAE,SAASD,IAAEC,IAAE;AAAC,UAAG;AAAC,YAAG,oBAAoB,oBAAoB,SAASD,EAAC,GAAE;AAAC,cAAG,kBAAgBA,MAAG,EAAE,4BAA2B;AAAM;AAAO,cAAIE,KAAE,IAAI,oBAAqB,SAASF,IAAE;AAAC,mBAAOA,GAAE,WAAW,EAAE,IAAIC,EAAC;AAAA,UAAC,CAAE;AAAE,iBAAOC,GAAE,QAAQ,EAAC,MAAKF,IAAE,UAAS,KAAE,CAAC,GAAEE;AAAA,QAAC;AAAA,MAAC,SAAOF,IAAE;AAAA,MAAC;AAAA,IAAC;AAArb,IAAub,IAAE,SAASA,IAAEC,IAAE;AAAC,UAAIC,KAAE,SAASA,GAAEC,IAAE;AAAC,uBAAaA,GAAE,QAAM,aAAW,SAAS,oBAAkBH,GAAEG,EAAC,GAAEF,OAAI,oBAAoB,oBAAmBC,IAAE,IAAE,GAAE,oBAAoB,YAAWA,IAAE,IAAE;AAAA,MAAG;AAAE,uBAAiB,oBAAmBA,IAAE,IAAE,GAAE,iBAAiB,YAAWA,IAAE,IAAE;AAAA,IAAC;AAA/rB,IAAisB,IAAE,SAASF,IAAE;AAAC,uBAAiB,YAAY,SAASC,IAAE;AAAC,QAAAA,GAAE,aAAWD,GAAEC,EAAC;AAAA,MAAC,GAAG,IAAE;AAAA,IAAC;AAA/wB,IAAixB,IAAE,SAASD,IAAEC,IAAEC,IAAE;AAAC,UAAIC;AAAE,aAAO,SAASC,IAAE;AAAC,QAAAH,GAAE,SAAO,MAAIG,MAAGF,QAAKD,GAAE,QAAMA,GAAE,SAAOE,MAAG,KAAIF,GAAE,SAAO,WAASE,QAAKA,KAAEF,GAAE,OAAMD,GAAEC,EAAC;AAAA,MAAG;AAAA,IAAC;AAAj5B,IAAm5B,IAAE;AAAr5B,IAAw5B,IAAE,WAAU;AAAC,aAAM,aAAW,SAAS,kBAAgB,IAAE,IAAE;AAAA,IAAC;AAAp9B,IAAs9B,IAAE,WAAU;AAAC,QAAG,SAASD,IAAE;AAAC,YAAIC,KAAED,GAAE;AAAU,YAAEC;AAAA,MAAC,GAAG,IAAE;AAAA,IAAC;AAA7gC,IAA+gC,IAAE,WAAU;AAAC,aAAO,IAAE,MAAI,IAAE,EAAE,GAAE,EAAE,GAAE,EAAG,WAAU;AAAC,mBAAY,WAAU;AAAC,cAAE,EAAE,GAAE,EAAE;AAAA,QAAC,GAAG,CAAC;AAAA,MAAC,CAAE,IAAG,EAAC,IAAI,kBAAiB;AAAC,eAAO;AAAA,MAAC,EAAC;AAAA,IAAC;AAA5oC,IAA8oC,IAAE,SAASD,IAAEC,IAAE;AAAC,UAAIC,IAAEC,KAAE,EAAE,GAAEE,KAAE,EAAE,KAAK,GAAEC,KAAE,SAASN,IAAE;AAAC,qCAA2BA,GAAE,SAAOO,MAAGA,GAAE,WAAW,GAAEP,GAAE,YAAUG,GAAE,oBAAkBE,GAAE,QAAML,GAAE,WAAUK,GAAE,QAAQ,KAAKL,EAAC,GAAEE,GAAE,IAAE;AAAA,MAAG,GAAEM,KAAE,OAAO,eAAa,YAAY,oBAAkB,YAAY,iBAAiB,wBAAwB,EAAE,CAAC,GAAED,KAAEC,KAAE,OAAK,EAAE,SAAQF,EAAC;AAAE,OAACE,MAAGD,QAAKL,KAAE,EAAEF,IAAEK,IAAEJ,EAAC,GAAEO,MAAGF,GAAEE,EAAC,GAAE,EAAG,SAASL,IAAE;AAAC,QAAAE,KAAE,EAAE,KAAK,GAAEH,KAAE,EAAEF,IAAEK,IAAEJ,EAAC,GAAE,sBAAuB,WAAU;AAAC,gCAAuB,WAAU;AAAC,YAAAI,GAAE,QAAM,YAAY,IAAI,IAAEF,GAAE,WAAUD,GAAE,IAAE;AAAA,UAAC,CAAE;AAAA,QAAC,CAAE;AAAA,MAAC,CAAE;AAAA,IAAE;AAAtoD,IAAwoD,IAAE;AAA1oD,IAA6oD,IAAE;AAA/oD,IAAkpD,IAAE,SAASF,IAAEC,IAAE;AAAC,YAAI,EAAG,SAASD,IAAE;AAAC,YAAEA,GAAE;AAAA,MAAK,CAAE,GAAE,IAAE;AAAI,UAAIE,IAAEC,KAAE,SAASF,IAAE;AAAC,YAAE,MAAID,GAAEC,EAAC;AAAA,MAAC,GAAEK,KAAE,EAAE,OAAM,CAAC,GAAEE,KAAE,GAAED,KAAE,CAAC,GAAEE,KAAE,SAAST,IAAE;AAAC,YAAG,CAACA,GAAE,gBAAe;AAAC,cAAIC,KAAEM,GAAE,CAAC,GAAEJ,KAAEI,GAAEA,GAAE,SAAO,CAAC;AAAE,UAAAC,MAAGR,GAAE,YAAUG,GAAE,YAAU,OAAKH,GAAE,YAAUC,GAAE,YAAU,OAAKO,MAAGR,GAAE,OAAMO,GAAE,KAAKP,EAAC,MAAIQ,KAAER,GAAE,OAAMO,KAAE,CAACP,EAAC,IAAGQ,KAAEF,GAAE,UAAQA,GAAE,QAAME,IAAEF,GAAE,UAAQC,IAAEL,GAAE;AAAA,QAAE;AAAA,MAAC,GAAEQ,KAAE,EAAE,gBAAeD,EAAC;AAAE,MAAAC,OAAIR,KAAE,EAAEC,IAAEG,IAAEL,EAAC,GAAE,EAAG,WAAU;AAAC,QAAAS,GAAE,YAAY,EAAE,IAAID,EAAC,GAAEP,GAAE,IAAE;AAAA,MAAC,CAAE,GAAE,EAAG,WAAU;AAAC,QAAAM,KAAE,GAAE,IAAE,IAAGF,KAAE,EAAE,OAAM,CAAC,GAAEJ,KAAE,EAAEC,IAAEG,IAAEL,EAAC;AAAA,MAAC,CAAE;AAAA,IAAE;AAAhlE,IAAklE,IAAE,EAAC,SAAQ,MAAG,SAAQ,KAAE;AAA1mE,IAA4mE,IAAE,oBAAI;AAAlnE,IAAunE,IAAE,SAASE,IAAEC,IAAE;AAAC,YAAI,IAAEA,IAAE,IAAED,IAAE,IAAE,oBAAI,QAAK,EAAE,mBAAmB,GAAE,EAAE;AAAA,IAAE;AAAzrE,IAA2rE,IAAE,WAAU;AAAC,UAAG,KAAG,KAAG,IAAE,IAAE,GAAE;AAAC,YAAIC,KAAE,EAAC,WAAU,eAAc,MAAK,EAAE,MAAK,QAAO,EAAE,QAAO,YAAW,EAAE,YAAW,WAAU,EAAE,WAAU,iBAAgB,EAAE,YAAU,EAAC;AAAE,UAAE,QAAS,SAASJ,IAAE;AAAC,UAAAA,GAAEI,EAAC;AAAA,QAAC,CAAE,GAAE,IAAE,CAAC;AAAA,MAAC;AAAA,IAAC;AAAp4E,IAAs4E,IAAE,SAASJ,IAAE;AAAC,UAAGA,GAAE,YAAW;AAAC,YAAIC,MAAGD,GAAE,YAAU,OAAK,oBAAI,SAAK,YAAY,IAAI,KAAGA,GAAE;AAAU,yBAAeA,GAAE,OAAK,SAASA,IAAEC,IAAE;AAAC,cAAIC,KAAE,WAAU;AAAC,cAAEF,IAAEC,EAAC,GAAEG,GAAE;AAAA,UAAC,GAAED,KAAE,WAAU;AAAC,YAAAC,GAAE;AAAA,UAAC,GAAEA,KAAE,WAAU;AAAC,gCAAoB,aAAYF,IAAE,CAAC,GAAE,oBAAoB,iBAAgBC,IAAE,CAAC;AAAA,UAAC;AAAE,2BAAiB,aAAYD,IAAE,CAAC,GAAE,iBAAiB,iBAAgBC,IAAE,CAAC;AAAA,QAAC,EAAEF,IAAED,EAAC,IAAE,EAAEC,IAAED,EAAC;AAAA,MAAC;AAAA,IAAC;AAAzuF,IAA2uF,IAAE,SAASA,IAAE;AAAC,OAAC,aAAY,WAAU,cAAa,aAAa,EAAE,QAAS,SAASC,IAAE;AAAC,eAAOD,GAAEC,IAAE,GAAE,CAAC;AAAA,MAAC,CAAE;AAAA,IAAC;AAAn1F,IAAq1F,IAAE,SAASC,IAAEI,IAAE;AAAC,UAAIE,IAAED,KAAE,EAAE,GAAEI,KAAE,EAAE,KAAK,GAAEC,KAAE,SAASZ,IAAE;AAAC,QAAAA,GAAE,YAAUO,GAAE,oBAAkBI,GAAE,QAAMX,GAAE,kBAAgBA,GAAE,WAAUW,GAAE,QAAQ,KAAKX,EAAC,GAAEQ,GAAE,IAAE;AAAA,MAAE,GAAEK,KAAE,EAAE,eAAcD,EAAC;AAAE,MAAAJ,KAAE,EAAEN,IAAES,IAAEL,EAAC,GAAEO,MAAG,EAAG,WAAU;AAAC,QAAAA,GAAE,YAAY,EAAE,IAAID,EAAC,GAAEC,GAAE,WAAW;AAAA,MAAC,GAAG,IAAE,GAAEA,MAAG,EAAG,WAAU;AAAC,YAAIC;AAAE,QAAAH,KAAE,EAAE,KAAK,GAAEH,KAAE,EAAEN,IAAES,IAAEL,EAAC,GAAE,IAAE,CAAC,GAAE,IAAE,IAAG,IAAE,MAAK,EAAE,gBAAgB,GAAEQ,KAAEF,IAAE,EAAE,KAAKE,EAAC,GAAE,EAAE;AAAA,MAAC,CAAE;AAAA,IAAC;AAA7qG,IAA+qG,IAAE,CAAC;AAAlrG,IAAorG,IAAE,SAASd,IAAEC,IAAE;AAAC,UAAIC,IAAEC,KAAE,EAAE,GAAEG,KAAE,EAAE,KAAK,GAAEE,KAAE,SAASR,IAAE;AAAC,YAAIC,KAAED,GAAE;AAAU,QAAAC,KAAEE,GAAE,oBAAkBG,GAAE,QAAML,IAAEK,GAAE,QAAQ,KAAKN,EAAC,GAAEE,GAAE;AAAA,MAAE,GAAEK,KAAE,EAAE,4BAA2BC,EAAC;AAAE,UAAGD,IAAE;AAAC,QAAAL,KAAE,EAAEF,IAAEM,IAAEL,EAAC;AAAE,YAAIU,KAAE,WAAU;AAAC,YAAEL,GAAE,EAAE,MAAIC,GAAE,YAAY,EAAE,IAAIC,EAAC,GAAED,GAAE,WAAW,GAAE,EAAED,GAAE,EAAE,IAAE,MAAGJ,GAAE,IAAE;AAAA,QAAE;AAAE,SAAC,WAAU,OAAO,EAAE,QAAS,SAASF,IAAE;AAAC,2BAAiBA,IAAEW,IAAE,EAAC,MAAK,MAAG,SAAQ,KAAE,CAAC;AAAA,QAAC,CAAE,GAAE,EAAEA,IAAE,IAAE,GAAE,EAAG,SAASR,IAAE;AAAC,UAAAG,KAAE,EAAE,KAAK,GAAEJ,KAAE,EAAEF,IAAEM,IAAEL,EAAC,GAAE,sBAAuB,WAAU;AAAC,kCAAuB,WAAU;AAAC,cAAAK,GAAE,QAAM,YAAY,IAAI,IAAEH,GAAE,WAAU,EAAEG,GAAE,EAAE,IAAE,MAAGJ,GAAE,IAAE;AAAA,YAAC,CAAE;AAAA,UAAC,CAAE;AAAA,QAAC,CAAE;AAAA,MAAC;AAAA,IAAC;AAAlsH,IAAosH,IAAE,SAASF,IAAE;AAAC,UAAIC,IAAEC,KAAE,EAAE,MAAM;AAAE,MAAAD,KAAE,WAAU;AAAC,YAAG;AAAC,cAAIA,KAAE,YAAY,iBAAiB,YAAY,EAAE,CAAC,KAAG,WAAU;AAAC,gBAAID,KAAE,YAAY,QAAOC,KAAE,EAAC,WAAU,cAAa,WAAU,EAAC;AAAE,qBAAQC,MAAKF;AAAE,oCAAoBE,MAAG,aAAWA,OAAID,GAAEC,EAAC,IAAE,KAAK,IAAIF,GAAEE,EAAC,IAAEF,GAAE,iBAAgB,CAAC;AAAG,mBAAOC;AAAA,UAAC,EAAE;AAAE,cAAGC,GAAE,QAAMA,GAAE,QAAMD,GAAE,eAAcC,GAAE,QAAM,KAAGA,GAAE,QAAM,YAAY,IAAI;AAAE;AAAO,UAAAA,GAAE,UAAQ,CAACD,EAAC,GAAED,GAAEE,EAAC;AAAA,QAAC,SAAOF,IAAE;AAAA,QAAC;AAAA,MAAC,GAAE,eAAa,SAAS,aAAW,WAAWC,IAAE,CAAC,IAAE,iBAAiB,QAAQ,WAAU;AAAC,eAAO,WAAWA,IAAE,CAAC;AAAA,MAAC,CAAE;AAAA,IAAC;AAAA;AAAA;;;ACA3rI,IAAM,kBAAkB,iBAAe;AACrC,MAAI,eAAe,uBAAuB,UAAU;AAClD,0EAAqB,KAAK,CAAC,EAAE,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AACzE,aAAO,WAAW;AAClB,aAAO,WAAW;AAClB,aAAO,WAAW;AAClB,aAAO,WAAW;AAClB,cAAQ,WAAW;AAAA,IACrB,CAAC;AAAA,EACH;AACF;AAEA,IAAO,0BAAQ;",
6
+ "names": ["e", "t", "n", "i", "r", "o", "f", "m", "s", "v", "h", "d", "p", "l", "a"]
7
+ }