{"version":3,"file":"index-6cf2e8d9.js","sources":["../../../node_modules/@stimulus/core/dist/event_listener.js","../../../node_modules/@stimulus/core/dist/dispatcher.js","../../../node_modules/@stimulus/core/dist/action_descriptor.js","../../../node_modules/@stimulus/core/dist/action.js","../../../node_modules/@stimulus/core/dist/binding.js","../../../node_modules/@stimulus/mutation-observers/dist/element_observer.js","../../../node_modules/@stimulus/mutation-observers/dist/attribute_observer.js","../../../node_modules/@stimulus/mutation-observers/dist/string_map_observer.js","../../../node_modules/@stimulus/multimap/dist/set_operations.js","../../../node_modules/@stimulus/multimap/dist/multimap.js","../../../node_modules/@stimulus/multimap/dist/indexed_multimap.js","../../../node_modules/@stimulus/mutation-observers/dist/token_list_observer.js","../../../node_modules/@stimulus/mutation-observers/dist/value_list_observer.js","../../../node_modules/@stimulus/core/dist/binding_observer.js","../../../node_modules/@stimulus/core/dist/value_observer.js","../../../node_modules/@stimulus/core/dist/context.js","../../../node_modules/@stimulus/core/dist/inheritable_statics.js","../../../node_modules/@stimulus/core/dist/blessing.js","../../../node_modules/@stimulus/core/dist/definition.js","../../../node_modules/@stimulus/core/dist/module.js","../../../node_modules/@stimulus/core/dist/class_map.js","../../../node_modules/@stimulus/core/dist/string_helpers.js","../../../node_modules/@stimulus/core/dist/data_map.js","../../../node_modules/@stimulus/core/dist/guide.js","../../../node_modules/@stimulus/core/dist/selectors.js","../../../node_modules/@stimulus/core/dist/target_set.js","../../../node_modules/@stimulus/core/dist/scope.js","../../../node_modules/@stimulus/core/dist/scope_observer.js","../../../node_modules/@stimulus/core/dist/router.js","../../../node_modules/@stimulus/core/dist/schema.js","../../../node_modules/@stimulus/core/dist/application.js","../../../node_modules/@stimulus/core/dist/class_properties.js","../../../node_modules/@stimulus/core/dist/target_properties.js","../../../node_modules/@stimulus/core/dist/value_properties.js","../../../node_modules/@stimulus/core/dist/controller.js","../../../node_modules/stimulus-vite-helpers/dist/index.js"],"sourcesContent":["var EventListener = /** @class */ (function () {\n function EventListener(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n };\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n };\n // Binding observer delegate\n /** @hidden */\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings.delete(binding);\n };\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n if (extendedEvent.immediatePropagationStopped) {\n break;\n }\n else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index, rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: false,\n configurable: true\n });\n return EventListener;\n}());\nexport { EventListener };\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n }\n else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function () {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}\n//# sourceMappingURL=event_listener.js.map","import { EventListener } from \"./event_listener\";\nvar Dispatcher = /** @class */ (function () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map;\n this.started = false;\n }\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) { return eventListener.connect(); });\n }\n };\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) { return eventListener.disconnect(); });\n }\n };\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function () {\n return Array.from(this.eventListenerMaps.values())\n .reduce(function (listeners, map) { return listeners.concat(Array.from(map.values())); }, []);\n },\n enumerable: false,\n configurable: true\n });\n // Binding observer delegate\n /** @hidden */\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n };\n // Error handling\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) { detail = {}; }\n this.application.handleError(error, \"Error \" + message, detail);\n };\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget, eventName = binding.eventName, eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n };\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var cacheKey = this.cacheKey(eventName, eventOptions);\n var 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 Dispatcher.prototype.createEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListener = new EventListener(eventTarget, eventName, eventOptions);\n if (this.started) {\n eventListener.connect();\n }\n return eventListener;\n };\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n if (!eventListenerMap) {\n eventListenerMap = new Map;\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n return eventListenerMap;\n };\n Dispatcher.prototype.cacheKey = function (eventName, eventOptions) {\n var parts = [eventName];\n Object.keys(eventOptions).sort().forEach(function (key) {\n parts.push(\"\" + (eventOptions[key] ? \"\" : \"!\") + key);\n });\n return parts.join(\":\");\n };\n return Dispatcher;\n}());\nexport { Dispatcher };\n//# sourceMappingURL=dispatcher.js.map","// capture nos.: 12 23 4 43 1 5 56 7 768 9 98\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\nexport function parseActionDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7]\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.split(\":\").reduce(function (options, token) {\n var _a;\n return Object.assign(options, (_a = {}, _a[token.replace(/^!/, \"\")] = !/^!/.test(token), _a));\n }, {});\n}\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n }\n else if (eventTarget == document) {\n return \"document\";\n }\n}\n//# sourceMappingURL=action_descriptor.js.map","import { parseActionDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\nvar Action = /** @class */ (function () {\n function Action(element, index, descriptor) {\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 }\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n };\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function () {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: false,\n configurable: true\n });\n return Action;\n}());\nexport { Action };\nvar defaultEventNames = {\n \"a\": function (e) { return \"click\"; },\n \"button\": function (e) { return \"click\"; },\n \"form\": function (e) { return \"submit\"; },\n \"input\": function (e) { return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\"; },\n \"select\": function (e) { return \"change\"; },\n \"textarea\": function (e) { return \"input\"; }\n};\nexport function getDefaultEventNameForElement(element) {\n var 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}\n//# sourceMappingURL=action.js.map","var Binding = /** @class */ (function () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function () {\n return this.action.index;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function () {\n return this.action.eventTarget;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventOptions\", {\n get: function () {\n return this.action.eventOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function () {\n return this.action.eventName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function () {\n var 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 enumerable: false,\n configurable: true\n });\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n }\n catch (error) {\n var _a = this, identifier = _a.identifier, controller = _a.controller, element = _a.element, index = _a.index;\n var detail = { identifier: identifier, controller: controller, element: element, index: index, event: event };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\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 Object.defineProperty(Binding.prototype, \"controller\", {\n get: function () {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function () {\n return this.action.methodName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n return Binding;\n}());\nexport { Binding };\n//# sourceMappingURL=binding.js.map","var ElementObserver = /** @class */ (function () {\n function ElementObserver(element, delegate) {\n var _this = this;\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set;\n this.mutationObserver = new MutationObserver(function (mutations) { return _this.processMutations(mutations); });\n }\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, { attributes: true, childList: true, subtree: true });\n this.refresh();\n }\n };\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n };\n // Mutation record processing\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n ElementObserver.prototype.processMutation = function (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 ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n }\n else {\n this.removeElement(element);\n }\n }\n else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n };\n // Element matching\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) { tree = this.element; }\n return this.delegate.matchElementsInTree(tree);\n };\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n }\n else {\n return this.element.contains(element);\n }\n };\n // Element tracking\n ElementObserver.prototype.addElement = function (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 ElementObserver.prototype.removeElement = function (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 return ElementObserver;\n}());\nexport { ElementObserver };\n//# sourceMappingURL=element_observer.js.map","import { ElementObserver } from \"./element_observer\";\nvar AttributeObserver = /** @class */ (function () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function () {\n return this.elementObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function () {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: false,\n configurable: true\n });\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function () {\n return this.elementObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n // Element observer delegate\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n return AttributeObserver;\n}());\nexport { AttributeObserver };\n//# sourceMappingURL=attribute_observer.js.map","var StringMapObserver = /** @class */ (function () {\n function StringMapObserver(element, delegate) {\n var _this = this;\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map;\n this.mutationObserver = new MutationObserver(function (mutations) { return _this.processMutations(mutations); });\n }\n StringMapObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, { attributes: true });\n this.refresh();\n }\n };\n StringMapObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n StringMapObserver.prototype.refresh = function () {\n if (this.started) {\n for (var _i = 0, _a = this.knownAttributeNames; _i < _a.length; _i++) {\n var attributeName = _a[_i];\n this.refreshAttribute(attributeName);\n }\n }\n };\n // Mutation record processing\n StringMapObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n StringMapObserver.prototype.processMutation = function (mutation) {\n var attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName);\n }\n };\n // State tracking\n StringMapObserver.prototype.refreshAttribute = function (attributeName) {\n var key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n var value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key);\n }\n if (value == null) {\n this.stringMap.delete(attributeName);\n this.stringMapKeyRemoved(key, attributeName);\n }\n else {\n this.stringMap.set(attributeName, value);\n }\n }\n };\n StringMapObserver.prototype.stringMapKeyAdded = function (key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n };\n StringMapObserver.prototype.stringMapValueChanged = function (value, key) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key);\n }\n };\n StringMapObserver.prototype.stringMapKeyRemoved = function (key, attributeName) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName);\n }\n };\n Object.defineProperty(StringMapObserver.prototype, \"knownAttributeNames\", {\n get: function () {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"currentAttributeNames\", {\n get: function () {\n return Array.from(this.element.attributes).map(function (attribute) { return attribute.name; });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"recordedAttributeNames\", {\n get: function () {\n return Array.from(this.stringMap.keys());\n },\n enumerable: false,\n configurable: true\n });\n return StringMapObserver;\n}());\nexport { StringMapObserver };\n//# sourceMappingURL=string_map_observer.js.map","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\n//# sourceMappingURL=set_operations.js.map","import { add, del } from \"./set_operations\";\nvar Multimap = /** @class */ (function () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) { return values.concat(Array.from(set)); }, []);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) { return size + set.size; }, 0);\n },\n enumerable: false,\n configurable: true\n });\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n Multimap.prototype.delete = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) { return set.has(value); });\n };\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey)\n .filter(function (_a) {\n var key = _a[0], values = _a[1];\n return values.has(value);\n })\n .map(function (_a) {\n var key = _a[0], values = _a[1];\n return key;\n });\n };\n return Multimap;\n}());\nexport { Multimap };\n//# sourceMappingURL=multimap.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\nvar IndexedMultimap = /** @class */ (function (_super) {\n __extends(IndexedMultimap, _super);\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n _this.keysByValue = new Map;\n return _this;\n }\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function () {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: false,\n configurable: true\n });\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n add(this.keysByValue, value, key);\n };\n IndexedMultimap.prototype.delete = function (key, value) {\n _super.prototype.delete.call(this, key, value);\n del(this.keysByValue, value, key);\n };\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n return IndexedMultimap;\n}(Multimap));\nexport { IndexedMultimap };\n//# sourceMappingURL=indexed_multimap.js.map","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\nvar TokenListObserver = /** @class */ (function () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap;\n }\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function () {\n return this.attributeObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function () {\n return this.attributeObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.attributeObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n // Attribute observer delegate\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element), unmatchedTokens = _a[0], matchedTokens = _a[1];\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n tokens.forEach(function (token) { return _this.tokenMatched(token); });\n };\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n tokens.forEach(function (token) { return _this.tokenUnmatched(token); });\n };\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n };\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens)\n .findIndex(function (_a) {\n var previousToken = _a[0], currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n if (firstDifferingIndex == -1) {\n return [[], []];\n }\n else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n return TokenListObserver;\n}());\nexport { TokenListObserver };\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) { return content.length; })\n .map(function (content, index) { return ({ element: element, attributeName: attributeName, content: content, index: index }); });\n}\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({ length: length }, function (_, index) { return [left[index], right[index]]; });\n}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}\n//# sourceMappingURL=token_list_observer.js.map","import { TokenListObserver } from \"./token_list_observer\";\nvar ValueListObserver = /** @class */ (function () {\n function ValueListObserver(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 Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function () {\n return this.tokenListObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function () {\n return this.tokenListObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.tokenListObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var 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 ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map;\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n };\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return { value: value };\n }\n catch (error) {\n return { error: error };\n }\n };\n return ValueListObserver;\n}());\nexport { ValueListObserver };\n//# sourceMappingURL=value_list_observer.js.map","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\nvar BindingObserver = /** @class */ (function () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map;\n }\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function () {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function () {\n return this.schema.actionAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function () {\n return this.context.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: false,\n configurable: true\n });\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n this.bindings.forEach(function (binding) { return _this.delegate.bindingDisconnected(binding); });\n this.bindingsByAction.clear();\n };\n // Value observer delegate\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n return BindingObserver;\n}());\nexport { BindingObserver };\n//# sourceMappingURL=binding_observer.js.map","import { StringMapObserver } from \"@stimulus/mutation-observers\";\nvar ValueObserver = /** @class */ (function () {\n function ValueObserver(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 this.invokeChangedCallbacksForDefaultValues();\n }\n ValueObserver.prototype.start = function () {\n this.stringMapObserver.start();\n };\n ValueObserver.prototype.stop = function () {\n this.stringMapObserver.stop();\n };\n Object.defineProperty(ValueObserver.prototype, \"element\", {\n get: function () {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueObserver.prototype, \"controller\", {\n get: function () {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n });\n // String map observer delegate\n ValueObserver.prototype.getStringMapKeyForAttribute = function (attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n };\n ValueObserver.prototype.stringMapValueChanged = function (attributeValue, name) {\n this.invokeChangedCallbackForValue(name);\n };\n ValueObserver.prototype.invokeChangedCallbacksForDefaultValues = function () {\n for (var _i = 0, _a = this.valueDescriptors; _i < _a.length; _i++) {\n var _b = _a[_i], key = _b.key, name_1 = _b.name, defaultValue = _b.defaultValue;\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallbackForValue(name_1);\n }\n }\n };\n ValueObserver.prototype.invokeChangedCallbackForValue = function (name) {\n var methodName = name + \"Changed\";\n var method = this.receiver[methodName];\n if (typeof method == \"function\") {\n var value = this.receiver[name];\n method.call(this.receiver, value);\n }\n };\n Object.defineProperty(ValueObserver.prototype, \"valueDescriptors\", {\n get: function () {\n var valueDescriptorMap = this.valueDescriptorMap;\n return Object.keys(valueDescriptorMap).map(function (key) { return valueDescriptorMap[key]; });\n },\n enumerable: false,\n configurable: true\n });\n return ValueObserver;\n}());\nexport { ValueObserver };\n//# sourceMappingURL=value_observer.js.map","import { BindingObserver } from \"./binding_observer\";\nimport { ValueObserver } from \"./value_observer\";\nvar Context = /** @class */ (function () {\n function Context(module, scope) {\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 try {\n this.controller.initialize();\n }\n catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n this.valueObserver.start();\n try {\n this.controller.connect();\n }\n catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n }\n catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n this.valueObserver.stop();\n this.bindingObserver.stop();\n };\n Object.defineProperty(Context.prototype, \"application\", {\n get: function () {\n return this.module.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function () {\n return this.module.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function () {\n return this.application.dispatcher;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function () {\n return this.element.parentElement;\n },\n enumerable: false,\n configurable: true\n });\n // Error handling\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) { detail = {}; }\n var _a = this, identifier = _a.identifier, controller = _a.controller, element = _a.element;\n detail = Object.assign({ identifier: identifier, controller: controller, element: element }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n return Context;\n}());\nexport { Context };\n//# sourceMappingURL=context.js.map","export function readInheritableStaticArrayValues(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (values, constructor) {\n getOwnStaticArrayValues(constructor, propertyName).forEach(function (name) { return values.add(name); });\n return values;\n }, new Set));\n}\nexport function readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor) {\n pairs.push.apply(pairs, getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n var definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n var definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(function (key) { return [key, definition[key]]; }) : [];\n}\n//# sourceMappingURL=inheritable_statics.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { readInheritableStaticArrayValues } from \"./inheritable_statics\";\n/** @hidden */\nexport function bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n var shadowConstructor = extend(constructor);\n var shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n var blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce(function (blessedProperties, blessing) {\n var properties = blessing(constructor);\n for (var key in properties) {\n var 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(function (shadowProperties, key) {\n var _a;\n var descriptor = getShadowedDescriptor(prototype, properties, key);\n if (descriptor) {\n Object.assign(shadowProperties, (_a = {}, _a[key] = descriptor, _a));\n }\n return shadowProperties;\n }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n var shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n var shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n if (!shadowedByValue) {\n var 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}\nvar getOwnKeys = (function () {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return function (object) { return __spreadArrays(Object.getOwnPropertyNames(object), Object.getOwnPropertySymbols(object)); };\n }\n else {\n return Object.getOwnPropertyNames;\n }\n})();\nvar extend = (function () {\n function extendWithReflect(constructor) {\n function extended() {\n var _newTarget = this && this instanceof extended ? this.constructor : void 0;\n return Reflect.construct(constructor, arguments, _newTarget);\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 var a = function () { this.a.call(this); };\n var 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 function (constructor) { return /** @class */ (function (_super) {\n __extends(extended, _super);\n function extended() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return extended;\n }(constructor)); };\n }\n})();\n//# sourceMappingURL=blessing.js.map","import { bless } from \"./blessing\";\n/** @hidden */\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}\n//# sourceMappingURL=definition.js.map","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\nvar Module = /** @class */ (function () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap;\n this.connectedContexts = new Set;\n }\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function () {\n return this.definition.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function () {\n return this.definition.controllerConstructor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function () {\n return Array.from(this.connectedContexts);\n },\n enumerable: false,\n configurable: true\n });\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n };\n Module.prototype.fetchContextForScope = function (scope) {\n var 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 return Module;\n}());\nexport { Module };\n//# sourceMappingURL=module.js.map","var ClassMap = /** @class */ (function () {\n function ClassMap(scope) {\n this.scope = scope;\n }\n ClassMap.prototype.has = function (name) {\n return this.data.has(this.getDataKey(name));\n };\n ClassMap.prototype.get = function (name) {\n return this.data.get(this.getDataKey(name));\n };\n ClassMap.prototype.getAttributeName = function (name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n };\n ClassMap.prototype.getDataKey = function (name) {\n return name + \"-class\";\n };\n Object.defineProperty(ClassMap.prototype, \"data\", {\n get: function () {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n return ClassMap;\n}());\nexport { ClassMap };\n//# sourceMappingURL=class_map.js.map","export function camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, char) { return char.toUpperCase(); });\n}\nexport function capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nexport function dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) { return \"-\" + char.toLowerCase(); });\n}\n//# sourceMappingURL=string_helpers.js.map","import { dasherize } from \"./string_helpers\";\nvar DataMap = /** @class */ (function () {\n function DataMap(scope) {\n this.scope = scope;\n }\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n DataMap.prototype.get = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n };\n DataMap.prototype.set = function (key, value) {\n var name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n };\n DataMap.prototype.has = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n };\n DataMap.prototype.delete = function (key) {\n if (this.has(key)) {\n var name_1 = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name_1);\n return true;\n }\n else {\n return false;\n }\n };\n DataMap.prototype.getAttributeNameForKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n return DataMap;\n}());\nexport { DataMap };\n//# sourceMappingURL=data_map.js.map","var Guide = /** @class */ (function () {\n function Guide(logger) {\n this.warnedKeysByObject = new WeakMap;\n this.logger = logger;\n }\n Guide.prototype.warn = function (object, key, message) {\n var 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 return Guide;\n}());\nexport { Guide };\n//# sourceMappingURL=guide.js.map","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}\n//# sourceMappingURL=selectors.js.map","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { attributeValueContainsToken } from \"./selectors\";\nvar TargetSet = /** @class */ (function () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function () {\n return this.scope.schema;\n },\n enumerable: false,\n configurable: true\n });\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n TargetSet.prototype.find = function () {\n var _this = this;\n var targetNames = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n return targetNames.reduce(function (target, targetName) {\n return target\n || _this.findTarget(targetName)\n || _this.findLegacyTarget(targetName);\n }, undefined);\n };\n TargetSet.prototype.findAll = function () {\n var _this = this;\n var targetNames = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n return targetNames.reduce(function (targets, targetName) { return __spreadArrays(targets, _this.findAllTargets(targetName), _this.findAllLegacyTargets(targetName)); }, []);\n };\n TargetSet.prototype.findTarget = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n };\n TargetSet.prototype.findAllTargets = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n };\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var attributeName = \"data-\" + this.identifier + \"-target\";\n return attributeValueContainsToken(attributeName, targetName);\n };\n TargetSet.prototype.findLegacyTarget = function (targetName) {\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n };\n TargetSet.prototype.findAllLegacyTargets = function (targetName) {\n var _this = this;\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(function (element) { return _this.deprecate(element, targetName); });\n };\n TargetSet.prototype.getLegacySelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n TargetSet.prototype.deprecate = function (element, targetName) {\n if (element) {\n var identifier = this.identifier;\n var attributeName = this.schema.targetAttribute;\n this.guide.warn(element, \"target:\" + targetName, \"Please replace \" + attributeName + \"=\\\"\" + identifier + \".\" + targetName + \"\\\" with data-\" + identifier + \"-target=\\\"\" + targetName + \"\\\". \" +\n (\"The \" + attributeName + \" attribute is deprecated and will be removed in a future version of Stimulus.\"));\n }\n return element;\n };\n Object.defineProperty(TargetSet.prototype, \"guide\", {\n get: function () {\n return this.scope.guide;\n },\n enumerable: false,\n configurable: true\n });\n return TargetSet;\n}());\nexport { TargetSet };\n//# sourceMappingURL=target_set.js.map","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { ClassMap } from \"./class_map\";\nimport { DataMap } from \"./data_map\";\nimport { Guide } from \"./guide\";\nimport { attributeValueContainsToken } from \"./selectors\";\nimport { TargetSet } from \"./target_set\";\nvar Scope = /** @class */ (function () {\n function Scope(schema, element, identifier, logger) {\n var _this = this;\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n this.containsElement = function (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 }\n Scope.prototype.findElement = function (selector) {\n return this.element.matches(selector)\n ? this.element\n : this.queryElements(selector).find(this.containsElement);\n };\n Scope.prototype.findAllElements = function (selector) {\n return __spreadArrays(this.element.matches(selector) ? [this.element] : [], this.queryElements(selector).filter(this.containsElement));\n };\n Scope.prototype.queryElements = function (selector) {\n return Array.from(this.element.querySelectorAll(selector));\n };\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function () {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: false,\n configurable: true\n });\n return Scope;\n}());\nexport { Scope };\n//# sourceMappingURL=scope.js.map","import { ValueListObserver } from \"@stimulus/mutation-observers\";\nvar ScopeObserver = /** @class */ (function () {\n function ScopeObserver(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 ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n });\n // Value observer delegate\n /** @hidden */\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element, identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var 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 /** @hidden */\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var 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 /** @hidden */\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var 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 ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map;\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n return scopesByIdentifier;\n };\n return ScopeObserver;\n}());\nexport { ScopeObserver };\n//# sourceMappingURL=scope_observer.js.map","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { Scope } from \"./scope\";\nimport { ScopeObserver } from \"./scope_observer\";\nvar Router = /** @class */ (function () {\n function Router(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 Object.defineProperty(Router.prototype, \"element\", {\n get: function () {\n return this.application.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"logger\", {\n get: function () {\n return this.application.logger;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function () {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function () {\n return this.modules.reduce(function (contexts, module) { return contexts.concat(module.contexts); }, []);\n },\n enumerable: false,\n configurable: true\n });\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n if (module) {\n this.disconnectModule(module);\n }\n };\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n if (module) {\n return module.contexts.find(function (context) { return context.element == element; });\n }\n };\n // Error handler delegate\n /** @hidden */\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n };\n // Scope observer delegate\n /** @hidden */\n Router.prototype.createScopeForElementAndIdentifier = function (element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n };\n /** @hidden */\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.disconnectContextForScope(scope);\n }\n };\n // Modules\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) { return module.connectContextForScope(scope); });\n };\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier.delete(module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) { return module.disconnectContextForScope(scope); });\n };\n return Router;\n}());\nexport { Router };\n//# sourceMappingURL=router.js.map","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};\n//# sourceMappingURL=schema.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\nvar Application = /** @class */ (function () {\n function Application(element, schema) {\n if (element === void 0) { element = document.documentElement; }\n if (schema === void 0) { schema = defaultSchema; }\n this.logger = console;\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, domReady()];\n case 1:\n _a.sent();\n this.dispatcher.start();\n this.router.start();\n return [2 /*return*/];\n }\n });\n });\n };\n Application.prototype.stop = function () {\n this.dispatcher.stop();\n this.router.stop();\n };\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({ identifier: identifier, controllerConstructor: controllerConstructor });\n };\n Application.prototype.load = function (head) {\n var _this = this;\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n var definitions = Array.isArray(head) ? head : __spreadArrays([head], rest);\n definitions.forEach(function (definition) { return _this.router.loadDefinition(definition); });\n };\n Application.prototype.unload = function (head) {\n var _this = this;\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n var identifiers = Array.isArray(head) ? head : __spreadArrays([head], rest);\n identifiers.forEach(function (identifier) { return _this.router.unloadIdentifier(identifier); });\n };\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function () {\n return this.router.contexts.map(function (context) { return context.controller; });\n },\n enumerable: false,\n configurable: true\n });\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n };\n // Error handling\n Application.prototype.handleError = function (error, message, detail) {\n this.logger.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n return Application;\n}());\nexport { Application };\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n }\n else {\n resolve();\n }\n });\n}\n//# sourceMappingURL=application.js.map","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\nexport function ClassPropertiesBlessing(constructor) {\n var classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce(function (properties, classDefinition) {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\nfunction propertiesForClassDefinition(key) {\n var _a;\n var name = key + \"Class\";\n return _a = {},\n _a[name] = {\n get: function () {\n var classes = this.classes;\n if (classes.has(key)) {\n return classes.get(key);\n }\n else {\n var attribute = classes.getAttributeName(key);\n throw new Error(\"Missing attribute \\\"\" + attribute + \"\\\"\");\n }\n }\n },\n _a[\"has\" + capitalize(name)] = {\n get: function () {\n return this.classes.has(key);\n }\n },\n _a;\n}\n//# sourceMappingURL=class_properties.js.map","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\nexport function TargetPropertiesBlessing(constructor) {\n var targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce(function (properties, targetDefinition) {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n var _a;\n return _a = {},\n _a[name + \"Target\"] = {\n get: function () {\n var target = this.targets.find(name);\n if (target) {\n return target;\n }\n else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n },\n _a[name + \"Targets\"] = {\n get: function () {\n return this.targets.findAll(name);\n }\n },\n _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function () {\n return this.targets.has(name);\n }\n },\n _a;\n}\n//# sourceMappingURL=target_properties.js.map","import { readInheritableStaticObjectPairs } from \"./inheritable_statics\";\nimport { camelize, capitalize, dasherize } from \"./string_helpers\";\n/** @hidden */\nexport function ValuePropertiesBlessing(constructor) {\n var valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n var propertyDescriptorMap = {\n valueDescriptorMap: {\n get: function () {\n var _this = this;\n return valueDefinitionPairs.reduce(function (result, valueDefinitionPair) {\n var _a;\n var valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n var attributeName = _this.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, (_a = {}, _a[attributeName] = valueDescriptor, _a));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n/** @hidden */\nexport function propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _a;\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var type = definition.type, key = definition.key, name = definition.name;\n var read = readers[type], write = writers[type] || writers.default;\n return _a = {},\n _a[name] = {\n get: function () {\n var value = this.data.get(key);\n if (value !== null) {\n return read(value);\n }\n else {\n return definition.defaultValue;\n }\n },\n set: function (value) {\n if (value === undefined) {\n this.data.delete(key);\n }\n else {\n this.data.set(key, write(value));\n }\n }\n },\n _a[\"has\" + capitalize(name)] = {\n get: function () {\n return this.data.has(key);\n }\n },\n _a;\n}\nfunction parseValueDefinitionPair(_a) {\n var token = _a[0], typeConstant = _a[1];\n var type = parseValueTypeConstant(typeConstant);\n return valueDescriptorForTokenAndType(token, type);\n}\nfunction parseValueTypeConstant(typeConstant) {\n switch (typeConstant) {\n case Array: return \"array\";\n case Boolean: return \"boolean\";\n case Number: return \"number\";\n case Object: return \"object\";\n case String: return \"string\";\n }\n throw new Error(\"Unknown value type constant \\\"\" + typeConstant + \"\\\"\");\n}\nfunction valueDescriptorForTokenAndType(token, type) {\n var key = dasherize(token) + \"-value\";\n return {\n type: type,\n key: key,\n name: camelize(key),\n get defaultValue() { return defaultValuesByType[type]; }\n };\n}\nvar defaultValuesByType = {\n get array() { return []; },\n boolean: false,\n number: 0,\n get object() { return {}; },\n string: \"\"\n};\nvar readers = {\n array: function (value) {\n var array = JSON.parse(value);\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n return array;\n },\n boolean: function (value) {\n return !(value == \"0\" || value == \"false\");\n },\n number: function (value) {\n return parseFloat(value);\n },\n object: function (value) {\n var object = JSON.parse(value);\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n return object;\n },\n string: function (value) {\n return value;\n }\n};\nvar 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//# sourceMappingURL=value_properties.js.map","import { ClassPropertiesBlessing } from \"./class_properties\";\nimport { TargetPropertiesBlessing } from \"./target_properties\";\nimport { ValuePropertiesBlessing } from \"./value_properties\";\nvar Controller = /** @class */ (function () {\n function Controller(context) {\n this.context = context;\n }\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function () {\n return this.context.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function () {\n return this.scope.targets;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"classes\", {\n get: function () {\n return this.scope.classes;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function () {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n Controller.prototype.initialize = function () {\n // Override in your subclass to set up initial controller state\n };\n Controller.prototype.connect = function () {\n // Override in your subclass to respond when the controller is connected to the DOM\n };\n Controller.prototype.disconnect = function () {\n // Override in your subclass to respond when the controller is disconnected from the DOM\n };\n Controller.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\n Controller.targets = [];\n Controller.values = {};\n return Controller;\n}());\nexport { Controller };\n//# sourceMappingURL=controller.js.map","// src/index.ts\nvar CONTROLLER_FILENAME_REGEX = /^(?:.*?(?:controllers|components)\\/|\\.?\\.\\/)?(.+)(?:[/_-]controller\\..+?)$/;\nfunction registerControllers(application, controllerModules) {\n application.load(definitionsFromGlob(controllerModules));\n}\nfunction definitionsFromGlob(controllerModules) {\n return Object.entries(controllerModules).map(definitionFromEntry).filter((value) => value);\n}\nfunction definitionFromEntry([name, controllerModule]) {\n const identifier = identifierForGlobKey(name);\n const controllerConstructor = controllerModule.default;\n if (identifier && typeof controllerConstructor === \"function\")\n return { identifier, controllerConstructor };\n}\nfunction identifierForGlobKey(key) {\n const logicalName = (key.match(CONTROLLER_FILENAME_REGEX) || [])[1];\n if (logicalName)\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n}\nexport {\n CONTROLLER_FILENAME_REGEX,\n definitionsFromGlob,\n identifierForGlobKey,\n registerControllers\n};\n"],"names":["EventListener","eventTarget","eventName","eventOptions","binding","event","extendedEvent","extendEvent","_i","_a","left","right","leftIndex","rightIndex","stopImmediatePropagation_1","Dispatcher","application","eventListener","listeners","map","error","message","detail","eventListenerMap","cacheKey","parts","key","descriptorPattern","parseActionDescriptorString","descriptorString","source","matches","parseEventTarget","parseEventOptions","eventTargetName","options","token","stringifyEventTarget","Action","element","index","descriptor","getDefaultEventNameForElement","eventNameSuffix","defaultEventNames","e","tagName","Binding","context","action","method","identifier","controller","ElementObserver","delegate","_this","mutations","_b","_c","mutations_1","mutation","node","attributeName","nodes","tree","processor","AttributeObserver","match","StringMapObserver","value","attribute","add","fetch","del","prune","values","Multimap","sets","set","size","__extends","this","extendStatics","d","b","p","__","_super","IndexedMultimap","TokenListObserver","unmatchedTokens","matchedTokens","tokens","previousTokens","currentTokens","firstDifferingIndex","zip","previousToken","currentToken","tokensAreEqual","tokenString","parseTokenString","content","length","_","ValueListObserver","parseResult","valuesByToken","BindingObserver","ValueObserver","receiver","attributeValue","name","name_1","defaultValue","methodName","valueDescriptorMap","Context","module","scope","readInheritableStaticArrayValues","constructor","propertyName","ancestors","getAncestorsForConstructor","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","getOwnStaticObjectPairs","definition","__spreadArrays","s","i","il","r","k","a","j","jl","bless","shadow","getBlessedProperties","properties","shadowConstructor","extend","shadowProperties","getShadowProperties","blessings","blessedProperties","blessing","prototype","getOwnKeys","getShadowedDescriptor","shadowingDescriptor","shadowedByValue","object","extendWithReflect","extended","_newTarget","testReflectExtension","blessDefinition","Module","ClassMap","camelize","char","capitalize","dasherize","DataMap","Guide","logger","warnedKeys","attributeValueContainsToken","TargetSet","targetName","targetNames","target","targets","selector","targetDescriptor","Scope","schema","ScopeObserver","scopesByIdentifier","referenceCount","Router","contexts","scopes","defaultSchema","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","reject","fulfilled","step","rejected","result","__generator","body","t","f","y","g","verb","n","v","op","Application","domReady","controllerConstructor","head","rest","definitions","identifiers","ClassPropertiesBlessing","classes","classDefinition","propertiesForClassDefinition","TargetPropertiesBlessing","targetDefinition","propertiesForTargetDefinition","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","propertiesForValueDefinitionPair","type","read","readers","write","writers","typeConstant","parseValueTypeConstant","valueDescriptorForTokenAndType","defaultValuesByType","array","writeString","writeJSON","Controller","CONTROLLER_FILENAME_REGEX","registerControllers","controllerModules","definitionsFromGlob","definitionFromEntry","controllerModule","identifierForGlobKey","logicalName"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}