{"version":3,"file":"js/872-aadcd413271fb0227115.js","mappings":"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","sources":["webpack://shoryudo/./node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","webpack://shoryudo/./node_modules/@hotwired/stimulus/dist/stimulus.js","webpack://shoryudo/./node_modules/iframe-resizer/index.js","webpack://shoryudo/./node_modules/iframe-resizer/js/iframeResizer.contentWindow.js","webpack://shoryudo/./node_modules/iframe-resizer/js/iframeResizer.js","webpack://shoryudo/./node_modules/sortablejs/modular/sortable.esm.js","webpack://shoryudo/./node_modules/turbolinks/dist/turbolinks.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","/*\nStimulus 3.2.1\nCopyright © 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","const iframeResize = require('./js/iframeResizer')\n\nmodule.exports = {\n iframeResize: iframeResize,\n iframeResizer: iframeResize, // Backwards compatibility\n contentWindow: require('./js/iframeResizer.contentWindow')\n}\n","/*\n * File: iframeResizer.contentWindow.js\n * Desc: Include this file in any page being loaded into an iframe\n * to force the iframe to resize to the content size.\n * Requires: iframeResizer.js on host page.\n * Doc: https://github.com/davidjbradshaw/iframe-resizer\n * Author: David J. Bradshaw - dave@bradshaw.net\n *\n */\n\n// eslint-disable-next-line sonarjs/cognitive-complexity, no-shadow-restricted-names\n;(function (undefined) {\n if (typeof window === 'undefined') return // don't run for server side render\n\n var autoResize = true,\n base = 10,\n bodyBackground = '',\n bodyMargin = 0,\n bodyMarginStr = '',\n bodyObserver = null,\n bodyPadding = '',\n calculateWidth = false,\n doubleEventList = { resize: 1, click: 1 },\n eventCancelTimer = 128,\n firstRun = true,\n height = 1,\n heightCalcModeDefault = 'bodyOffset',\n heightCalcMode = heightCalcModeDefault,\n initLock = true,\n initMsg = '',\n inPageLinks = {},\n interval = 32,\n intervalTimer = null,\n logging = false,\n mouseEvents = false,\n msgID = '[iFrameSizer]', // Must match host page msg ID\n msgIdLen = msgID.length,\n myID = '',\n resetRequiredMethods = {\n max: 1,\n min: 1,\n bodyScroll: 1,\n documentElementScroll: 1\n },\n resizeFrom = 'child',\n sendPermit = true,\n target = window.parent,\n targetOriginDefault = '*',\n tolerance = 0,\n triggerLocked = false,\n triggerLockedTimer = null,\n throttledTimer = 16,\n width = 1,\n widthCalcModeDefault = 'scroll',\n widthCalcMode = widthCalcModeDefault,\n win = window,\n onMessage = function () {\n warn('onMessage function not defined')\n },\n onReady = function () {},\n onPageInfo = function () {},\n customCalcMethods = {\n height: function () {\n warn('Custom height calculation function not defined')\n return document.documentElement.offsetHeight\n },\n width: function () {\n warn('Custom width calculation function not defined')\n return document.body.scrollWidth\n }\n },\n eventHandlersByName = {},\n passiveSupported = false\n\n function noop() {}\n\n try {\n var options = Object.create(\n {},\n {\n passive: {\n // eslint-disable-next-line getter-return\n get: function () {\n passiveSupported = true\n }\n }\n }\n )\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop, options)\n } catch (error) {\n /* */\n }\n\n function addEventListener(el, evt, func, options) {\n el.addEventListener(evt, func, passiveSupported ? options || {} : false)\n }\n\n function removeEventListener(el, evt, func) {\n el.removeEventListener(evt, func, false)\n }\n\n function capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1)\n }\n\n // Based on underscore.js\n function throttle(func) {\n var context,\n args,\n result,\n timeout = null,\n previous = 0,\n later = function () {\n previous = Date.now()\n timeout = null\n result = func.apply(context, args)\n if (!timeout) {\n // eslint-disable-next-line no-multi-assign\n context = args = null\n }\n }\n\n return function () {\n var now = Date.now()\n\n if (!previous) {\n previous = now\n }\n\n var remaining = throttledTimer - (now - previous)\n\n context = this\n args = arguments\n\n if (remaining <= 0 || remaining > throttledTimer) {\n if (timeout) {\n clearTimeout(timeout)\n timeout = null\n }\n\n previous = now\n result = func.apply(context, args)\n\n if (!timeout) {\n // eslint-disable-next-line no-multi-assign\n context = args = null\n }\n } else if (!timeout) {\n timeout = setTimeout(later, remaining)\n }\n\n return result\n }\n }\n\n function formatLogMsg(msg) {\n return msgID + '[' + myID + '] ' + msg\n }\n\n function log(msg) {\n if (logging && 'object' === typeof window.console) {\n // eslint-disable-next-line no-console\n console.log(formatLogMsg(msg))\n }\n }\n\n function warn(msg) {\n if ('object' === typeof window.console) {\n // eslint-disable-next-line no-console\n console.warn(formatLogMsg(msg))\n }\n }\n\n function init() {\n readDataFromParent()\n log('Initialising iFrame (' + window.location.href + ')')\n readDataFromPage()\n setMargin()\n setBodyStyle('background', bodyBackground)\n setBodyStyle('padding', bodyPadding)\n injectClearFixIntoBodyElement()\n checkHeightMode()\n checkWidthMode()\n stopInfiniteResizingOfIFrame()\n setupPublicMethods()\n setupMouseEvents()\n startEventListeners()\n inPageLinks = setupInPageLinks()\n sendSize('init', 'Init message from host page')\n onReady()\n }\n\n function readDataFromParent() {\n function strBool(str) {\n return 'true' === str\n }\n\n var data = initMsg.slice(msgIdLen).split(':')\n\n myID = data[0]\n bodyMargin = undefined === data[1] ? bodyMargin : Number(data[1]) // For V1 compatibility\n calculateWidth = undefined === data[2] ? calculateWidth : strBool(data[2])\n logging = undefined === data[3] ? logging : strBool(data[3])\n interval = undefined === data[4] ? interval : Number(data[4])\n autoResize = undefined === data[6] ? autoResize : strBool(data[6])\n bodyMarginStr = data[7]\n heightCalcMode = undefined === data[8] ? heightCalcMode : data[8]\n bodyBackground = data[9]\n bodyPadding = data[10]\n tolerance = undefined === data[11] ? tolerance : Number(data[11])\n inPageLinks.enable = undefined === data[12] ? false : strBool(data[12])\n resizeFrom = undefined === data[13] ? resizeFrom : data[13]\n widthCalcMode = undefined === data[14] ? widthCalcMode : data[14]\n mouseEvents = undefined === data[15] ? mouseEvents : strBool(data[15])\n }\n\n function depricate(key) {\n var splitName = key.split('Callback')\n\n if (splitName.length === 2) {\n var name =\n 'on' + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1)\n this[name] = this[key]\n delete this[key]\n warn(\n \"Deprecated: '\" +\n key +\n \"' has been renamed '\" +\n name +\n \"'. The old method will be removed in the next major version.\"\n )\n }\n }\n\n function readDataFromPage() {\n function readData() {\n var data = window.iFrameResizer\n\n log('Reading data from page: ' + JSON.stringify(data))\n Object.keys(data).forEach(depricate, data)\n\n onMessage = 'onMessage' in data ? data.onMessage : onMessage\n onReady = 'onReady' in data ? data.onReady : onReady\n targetOriginDefault =\n 'targetOrigin' in data ? data.targetOrigin : targetOriginDefault\n heightCalcMode =\n 'heightCalculationMethod' in data\n ? data.heightCalculationMethod\n : heightCalcMode\n widthCalcMode =\n 'widthCalculationMethod' in data\n ? data.widthCalculationMethod\n : widthCalcMode\n }\n\n function setupCustomCalcMethods(calcMode, calcFunc) {\n if ('function' === typeof calcMode) {\n log('Setup custom ' + calcFunc + 'CalcMethod')\n customCalcMethods[calcFunc] = calcMode\n calcMode = 'custom'\n }\n\n return calcMode\n }\n\n if (\n 'iFrameResizer' in window &&\n Object === window.iFrameResizer.constructor\n ) {\n readData()\n heightCalcMode = setupCustomCalcMethods(heightCalcMode, 'height')\n widthCalcMode = setupCustomCalcMethods(widthCalcMode, 'width')\n }\n\n log('TargetOrigin for parent set to: ' + targetOriginDefault)\n }\n\n function chkCSS(attr, value) {\n if (-1 !== value.indexOf('-')) {\n warn('Negative CSS value ignored for ' + attr)\n value = ''\n }\n return value\n }\n\n function setBodyStyle(attr, value) {\n if (undefined !== value && '' !== value && 'null' !== value) {\n document.body.style[attr] = value\n log('Body ' + attr + ' set to \"' + value + '\"')\n }\n }\n\n function setMargin() {\n // If called via V1 script, convert bodyMargin from int to str\n if (undefined === bodyMarginStr) {\n bodyMarginStr = bodyMargin + 'px'\n }\n\n setBodyStyle('margin', chkCSS('margin', bodyMarginStr))\n }\n\n function stopInfiniteResizingOfIFrame() {\n document.documentElement.style.height = ''\n document.body.style.height = ''\n log('HTML & body height set to \"auto\"')\n }\n\n function manageTriggerEvent(options) {\n var listener = {\n add: function (eventName) {\n function handleEvent() {\n sendSize(options.eventName, options.eventType)\n }\n\n eventHandlersByName[eventName] = handleEvent\n\n addEventListener(window, eventName, handleEvent, { passive: true })\n },\n remove: function (eventName) {\n var handleEvent = eventHandlersByName[eventName]\n delete eventHandlersByName[eventName]\n\n removeEventListener(window, eventName, handleEvent)\n }\n }\n\n if (options.eventNames && Array.prototype.map) {\n options.eventName = options.eventNames[0]\n options.eventNames.map(listener[options.method])\n } else {\n listener[options.method](options.eventName)\n }\n\n log(\n capitalizeFirstLetter(options.method) +\n ' event listener: ' +\n options.eventType\n )\n }\n\n function manageEventListeners(method) {\n manageTriggerEvent({\n method: method,\n eventType: 'Animation Start',\n eventNames: ['animationstart', 'webkitAnimationStart']\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Animation Iteration',\n eventNames: ['animationiteration', 'webkitAnimationIteration']\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Animation End',\n eventNames: ['animationend', 'webkitAnimationEnd']\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Input',\n eventName: 'input'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Mouse Up',\n eventName: 'mouseup'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Mouse Down',\n eventName: 'mousedown'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Orientation Change',\n eventName: 'orientationchange'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Print',\n eventNames: ['afterprint', 'beforeprint']\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Ready State Change',\n eventName: 'readystatechange'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Touch Start',\n eventName: 'touchstart'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Touch End',\n eventName: 'touchend'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Touch Cancel',\n eventName: 'touchcancel'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Transition Start',\n eventNames: [\n 'transitionstart',\n 'webkitTransitionStart',\n 'MSTransitionStart',\n 'oTransitionStart',\n 'otransitionstart'\n ]\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Transition Iteration',\n eventNames: [\n 'transitioniteration',\n 'webkitTransitionIteration',\n 'MSTransitionIteration',\n 'oTransitionIteration',\n 'otransitioniteration'\n ]\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Transition End',\n eventNames: [\n 'transitionend',\n 'webkitTransitionEnd',\n 'MSTransitionEnd',\n 'oTransitionEnd',\n 'otransitionend'\n ]\n })\n if ('child' === resizeFrom) {\n manageTriggerEvent({\n method: method,\n eventType: 'IFrame Resized',\n eventName: 'resize'\n })\n }\n }\n\n function checkCalcMode(calcMode, calcModeDefault, modes, type) {\n if (calcModeDefault !== calcMode) {\n if (!(calcMode in modes)) {\n warn(\n calcMode + ' is not a valid option for ' + type + 'CalculationMethod.'\n )\n calcMode = calcModeDefault\n }\n log(type + ' calculation method set to \"' + calcMode + '\"')\n }\n\n return calcMode\n }\n\n function checkHeightMode() {\n heightCalcMode = checkCalcMode(\n heightCalcMode,\n heightCalcModeDefault,\n getHeight,\n 'height'\n )\n }\n\n function checkWidthMode() {\n widthCalcMode = checkCalcMode(\n widthCalcMode,\n widthCalcModeDefault,\n getWidth,\n 'width'\n )\n }\n\n function startEventListeners() {\n if (true === autoResize) {\n manageEventListeners('add')\n setupMutationObserver()\n } else {\n log('Auto Resize disabled')\n }\n }\n\n // function stopMsgsToParent() {\n // log('Disable outgoing messages')\n // sendPermit = false\n // }\n\n // function removeMsgListener() {\n // log('Remove event listener: Message')\n // removeEventListener(window, 'message', receiver)\n // }\n\n function disconnectMutationObserver() {\n if (null !== bodyObserver) {\n /* istanbul ignore next */ // Not testable in PhantonJS\n bodyObserver.disconnect()\n }\n }\n\n function stopEventListeners() {\n manageEventListeners('remove')\n disconnectMutationObserver()\n clearInterval(intervalTimer)\n }\n\n // function teardown() {\n // stopMsgsToParent()\n // removeMsgListener()\n // if (true === autoResize) stopEventListeners()\n // }\n\n function injectClearFixIntoBodyElement() {\n var clearFix = document.createElement('div')\n clearFix.style.clear = 'both'\n // Guard against the following having been globally redefined in CSS.\n clearFix.style.display = 'block'\n clearFix.style.height = '0'\n document.body.appendChild(clearFix)\n }\n\n function setupInPageLinks() {\n function getPagePosition() {\n return {\n x:\n window.pageXOffset === undefined\n ? document.documentElement.scrollLeft\n : window.pageXOffset,\n y:\n window.pageYOffset === undefined\n ? document.documentElement.scrollTop\n : window.pageYOffset\n }\n }\n\n function getElementPosition(el) {\n var elPosition = el.getBoundingClientRect(),\n pagePosition = getPagePosition()\n\n return {\n x: parseInt(elPosition.left, 10) + parseInt(pagePosition.x, 10),\n y: parseInt(elPosition.top, 10) + parseInt(pagePosition.y, 10)\n }\n }\n\n function findTarget(location) {\n function jumpToTarget(target) {\n var jumpPosition = getElementPosition(target)\n\n log(\n 'Moving to in page link (#' +\n hash +\n ') at x: ' +\n jumpPosition.x +\n ' y: ' +\n jumpPosition.y\n )\n sendMsg(jumpPosition.y, jumpPosition.x, 'scrollToOffset') // X&Y reversed at sendMsg uses height/width\n }\n\n var hash = location.split('#')[1] || location, // Remove # if present\n hashData = decodeURIComponent(hash),\n target =\n document.getElementById(hashData) ||\n document.getElementsByName(hashData)[0]\n\n if (undefined === target) {\n log(\n 'In page link (#' +\n hash +\n ') not found in iFrame, so sending to parent'\n )\n sendMsg(0, 0, 'inPageLink', '#' + hash)\n } else {\n jumpToTarget(target)\n }\n }\n\n function checkLocationHash() {\n var hash = window.location.hash\n var href = window.location.href\n\n if ('' !== hash && '#' !== hash) {\n findTarget(href)\n }\n }\n\n function bindAnchors() {\n function setupLink(el) {\n function linkClicked(e) {\n e.preventDefault()\n\n /* jshint validthis:true */\n findTarget(this.getAttribute('href'))\n }\n\n if ('#' !== el.getAttribute('href')) {\n addEventListener(el, 'click', linkClicked)\n }\n }\n\n Array.prototype.forEach.call(\n document.querySelectorAll('a[href^=\"#\"]'),\n setupLink\n )\n }\n\n function bindLocationHash() {\n addEventListener(window, 'hashchange', checkLocationHash)\n }\n\n function initCheck() {\n // Check if page loaded with location hash after init resize\n setTimeout(checkLocationHash, eventCancelTimer)\n }\n\n function enableInPageLinks() {\n /* istanbul ignore else */ // Not testable in phantonJS\n if (Array.prototype.forEach && document.querySelectorAll) {\n log('Setting up location.hash handlers')\n bindAnchors()\n bindLocationHash()\n initCheck()\n } else {\n warn(\n 'In page linking not fully supported in this browser! (See README.md for IE8 workaround)'\n )\n }\n }\n\n if (inPageLinks.enable) {\n enableInPageLinks()\n } else {\n log('In page linking not enabled')\n }\n\n return {\n findTarget: findTarget\n }\n }\n\n function setupMouseEvents() {\n if (mouseEvents !== true) return\n\n function sendMouse(e) {\n sendMsg(0, 0, e.type, e.screenY + ':' + e.screenX)\n }\n\n function addMouseListener(evt, name) {\n log('Add event listener: ' + name)\n addEventListener(window.document, evt, sendMouse)\n }\n\n addMouseListener('mouseenter', 'Mouse Enter')\n addMouseListener('mouseleave', 'Mouse Leave')\n }\n\n function setupPublicMethods() {\n log('Enable public methods')\n\n win.parentIFrame = {\n autoResize: function autoResizeF(resize) {\n if (true === resize && false === autoResize) {\n autoResize = true\n startEventListeners()\n } else if (false === resize && true === autoResize) {\n autoResize = false\n stopEventListeners()\n }\n sendMsg(0, 0, 'autoResize', JSON.stringify(autoResize))\n return autoResize\n },\n\n close: function closeF() {\n sendMsg(0, 0, 'close')\n // teardown()\n },\n\n getId: function getIdF() {\n return myID\n },\n\n getPageInfo: function getPageInfoF(callback) {\n if ('function' === typeof callback) {\n onPageInfo = callback\n sendMsg(0, 0, 'pageInfo')\n } else {\n onPageInfo = function () {}\n sendMsg(0, 0, 'pageInfoStop')\n }\n },\n\n moveToAnchor: function moveToAnchorF(hash) {\n inPageLinks.findTarget(hash)\n },\n\n reset: function resetF() {\n resetIFrame('parentIFrame.reset')\n },\n\n scrollTo: function scrollToF(x, y) {\n sendMsg(y, x, 'scrollTo') // X&Y reversed at sendMsg uses height/width\n },\n\n scrollToOffset: function scrollToF(x, y) {\n sendMsg(y, x, 'scrollToOffset') // X&Y reversed at sendMsg uses height/width\n },\n\n sendMessage: function sendMessageF(msg, targetOrigin) {\n sendMsg(0, 0, 'message', JSON.stringify(msg), targetOrigin)\n },\n\n setHeightCalculationMethod: function setHeightCalculationMethodF(\n heightCalculationMethod\n ) {\n heightCalcMode = heightCalculationMethod\n checkHeightMode()\n },\n\n setWidthCalculationMethod: function setWidthCalculationMethodF(\n widthCalculationMethod\n ) {\n widthCalcMode = widthCalculationMethod\n checkWidthMode()\n },\n\n setTargetOrigin: function setTargetOriginF(targetOrigin) {\n log('Set targetOrigin: ' + targetOrigin)\n targetOriginDefault = targetOrigin\n },\n\n size: function sizeF(customHeight, customWidth) {\n var valString =\n '' + (customHeight || '') + (customWidth ? ',' + customWidth : '')\n sendSize(\n 'size',\n 'parentIFrame.size(' + valString + ')',\n customHeight,\n customWidth\n )\n }\n }\n }\n\n function initInterval() {\n if (0 !== interval) {\n log('setInterval: ' + interval + 'ms')\n intervalTimer = setInterval(function () {\n sendSize('interval', 'setInterval: ' + interval)\n }, Math.abs(interval))\n }\n }\n\n // Not testable in PhantomJS\n /* istanbul ignore next */\n function setupBodyMutationObserver() {\n function addImageLoadListners(mutation) {\n function addImageLoadListener(element) {\n if (false === element.complete) {\n log('Attach listeners to ' + element.src)\n element.addEventListener('load', imageLoaded, false)\n element.addEventListener('error', imageError, false)\n elements.push(element)\n }\n }\n\n if (mutation.type === 'attributes' && mutation.attributeName === 'src') {\n addImageLoadListener(mutation.target)\n } else if (mutation.type === 'childList') {\n Array.prototype.forEach.call(\n mutation.target.querySelectorAll('img'),\n addImageLoadListener\n )\n }\n }\n\n function removeFromArray(element) {\n elements.splice(elements.indexOf(element), 1)\n }\n\n function removeImageLoadListener(element) {\n log('Remove listeners from ' + element.src)\n element.removeEventListener('load', imageLoaded, false)\n element.removeEventListener('error', imageError, false)\n removeFromArray(element)\n }\n\n function imageEventTriggered(event, type, typeDesc) {\n removeImageLoadListener(event.target)\n sendSize(type, typeDesc + ': ' + event.target.src)\n }\n\n function imageLoaded(event) {\n imageEventTriggered(event, 'imageLoad', 'Image loaded')\n }\n\n function imageError(event) {\n imageEventTriggered(event, 'imageLoadFailed', 'Image load failed')\n }\n\n function mutationObserved(mutations) {\n sendSize(\n 'mutationObserver',\n 'mutationObserver: ' + mutations[0].target + ' ' + mutations[0].type\n )\n\n // Deal with WebKit / Blink asyncing image loading when tags are injected into the page\n mutations.forEach(addImageLoadListners)\n }\n\n function createMutationObserver() {\n var target = document.querySelector('body'),\n config = {\n attributes: true,\n attributeOldValue: false,\n characterData: true,\n characterDataOldValue: false,\n childList: true,\n subtree: true\n }\n\n observer = new MutationObserver(mutationObserved)\n\n log('Create body MutationObserver')\n observer.observe(target, config)\n\n return observer\n }\n\n var elements = [],\n MutationObserver =\n window.MutationObserver || window.WebKitMutationObserver,\n observer = createMutationObserver()\n\n return {\n disconnect: function () {\n if ('disconnect' in observer) {\n log('Disconnect body MutationObserver')\n observer.disconnect()\n elements.forEach(removeImageLoadListener)\n }\n }\n }\n }\n\n function setupMutationObserver() {\n var forceIntervalTimer = 0 > interval\n\n // Not testable in PhantomJS\n /* istanbul ignore if */ if (\n window.MutationObserver ||\n window.WebKitMutationObserver\n ) {\n if (forceIntervalTimer) {\n initInterval()\n } else {\n bodyObserver = setupBodyMutationObserver()\n }\n } else {\n log('MutationObserver not supported in this browser!')\n initInterval()\n }\n }\n\n // document.documentElement.offsetHeight is not reliable, so\n // we have to jump through hoops to get a better value.\n function getComputedStyle(prop, el) {\n var retVal = 0\n el = el || document.body // Not testable in phantonJS\n\n retVal = document.defaultView.getComputedStyle(el, null)\n retVal = null === retVal ? 0 : retVal[prop]\n\n return parseInt(retVal, base)\n }\n\n function chkEventThottle(timer) {\n if (timer > throttledTimer / 2) {\n throttledTimer = 2 * timer\n log('Event throttle increased to ' + throttledTimer + 'ms')\n }\n }\n\n // Idea from https://github.com/guardian/iframe-messenger\n function getMaxElement(side, elements) {\n var elementsLength = elements.length,\n elVal = 0,\n maxVal = 0,\n Side = capitalizeFirstLetter(side),\n timer = Date.now()\n\n for (var i = 0; i < elementsLength; i++) {\n elVal =\n elements[i].getBoundingClientRect()[side] +\n getComputedStyle('margin' + Side, elements[i])\n if (elVal > maxVal) {\n maxVal = elVal\n }\n }\n\n timer = Date.now() - timer\n\n log('Parsed ' + elementsLength + ' HTML elements')\n log('Element position calculated in ' + timer + 'ms')\n\n chkEventThottle(timer)\n\n return maxVal\n }\n\n function getAllMeasurements(dimensions) {\n return [\n dimensions.bodyOffset(),\n dimensions.bodyScroll(),\n dimensions.documentElementOffset(),\n dimensions.documentElementScroll()\n ]\n }\n\n function getTaggedElements(side, tag) {\n function noTaggedElementsFound() {\n warn('No tagged elements (' + tag + ') found on page')\n return document.querySelectorAll('body *')\n }\n\n var elements = document.querySelectorAll('[' + tag + ']')\n\n if (elements.length === 0) noTaggedElementsFound()\n\n return getMaxElement(side, elements)\n }\n\n function getAllElements() {\n return document.querySelectorAll('body *')\n }\n\n var getHeight = {\n bodyOffset: function getBodyOffsetHeight() {\n return (\n document.body.offsetHeight +\n getComputedStyle('marginTop') +\n getComputedStyle('marginBottom')\n )\n },\n\n offset: function () {\n return getHeight.bodyOffset() // Backwards compatibility\n },\n\n bodyScroll: function getBodyScrollHeight() {\n return document.body.scrollHeight\n },\n\n custom: function getCustomWidth() {\n return customCalcMethods.height()\n },\n\n documentElementOffset: function getDEOffsetHeight() {\n return document.documentElement.offsetHeight\n },\n\n documentElementScroll: function getDEScrollHeight() {\n return document.documentElement.scrollHeight\n },\n\n max: function getMaxHeight() {\n return Math.max.apply(null, getAllMeasurements(getHeight))\n },\n\n min: function getMinHeight() {\n return Math.min.apply(null, getAllMeasurements(getHeight))\n },\n\n grow: function growHeight() {\n return getHeight.max() // Run max without the forced downsizing\n },\n\n lowestElement: function getBestHeight() {\n return Math.max(\n getHeight.bodyOffset() || getHeight.documentElementOffset(),\n getMaxElement('bottom', getAllElements())\n )\n },\n\n taggedElement: function getTaggedElementsHeight() {\n return getTaggedElements('bottom', 'data-iframe-height')\n }\n },\n getWidth = {\n bodyScroll: function getBodyScrollWidth() {\n return document.body.scrollWidth\n },\n\n bodyOffset: function getBodyOffsetWidth() {\n return document.body.offsetWidth\n },\n\n custom: function getCustomWidth() {\n return customCalcMethods.width()\n },\n\n documentElementScroll: function getDEScrollWidth() {\n return document.documentElement.scrollWidth\n },\n\n documentElementOffset: function getDEOffsetWidth() {\n return document.documentElement.offsetWidth\n },\n\n scroll: function getMaxWidth() {\n return Math.max(getWidth.bodyScroll(), getWidth.documentElementScroll())\n },\n\n max: function getMaxWidth() {\n return Math.max.apply(null, getAllMeasurements(getWidth))\n },\n\n min: function getMinWidth() {\n return Math.min.apply(null, getAllMeasurements(getWidth))\n },\n\n rightMostElement: function rightMostElement() {\n return getMaxElement('right', getAllElements())\n },\n\n taggedElement: function getTaggedElementsWidth() {\n return getTaggedElements('right', 'data-iframe-width')\n }\n }\n\n function sizeIFrame(\n triggerEvent,\n triggerEventDesc,\n customHeight,\n customWidth\n ) {\n function resizeIFrame() {\n height = currentHeight\n width = currentWidth\n\n sendMsg(height, width, triggerEvent)\n }\n\n function isSizeChangeDetected() {\n function checkTolarance(a, b) {\n var retVal = Math.abs(a - b) <= tolerance\n return !retVal\n }\n\n currentHeight =\n undefined === customHeight ? getHeight[heightCalcMode]() : customHeight\n currentWidth =\n undefined === customWidth ? getWidth[widthCalcMode]() : customWidth\n\n return (\n checkTolarance(height, currentHeight) ||\n (calculateWidth && checkTolarance(width, currentWidth))\n )\n }\n\n function isForceResizableEvent() {\n return !(triggerEvent in { init: 1, interval: 1, size: 1 })\n }\n\n function isForceResizableCalcMode() {\n return (\n heightCalcMode in resetRequiredMethods ||\n (calculateWidth && widthCalcMode in resetRequiredMethods)\n )\n }\n\n function logIgnored() {\n log('No change in size detected')\n }\n\n function checkDownSizing() {\n if (isForceResizableEvent() && isForceResizableCalcMode()) {\n resetIFrame(triggerEventDesc)\n } else if (!(triggerEvent in { interval: 1 })) {\n logIgnored()\n }\n }\n\n var currentHeight, currentWidth\n\n if (isSizeChangeDetected() || 'init' === triggerEvent) {\n lockTrigger()\n resizeIFrame()\n } else {\n checkDownSizing()\n }\n }\n\n var sizeIFrameThrottled = throttle(sizeIFrame)\n\n function sendSize(triggerEvent, triggerEventDesc, customHeight, customWidth) {\n function recordTrigger() {\n if (!(triggerEvent in { reset: 1, resetPage: 1, init: 1 })) {\n log('Trigger event: ' + triggerEventDesc)\n }\n }\n\n function isDoubleFiredEvent() {\n return triggerLocked && triggerEvent in doubleEventList\n }\n\n if (isDoubleFiredEvent()) {\n log('Trigger event cancelled: ' + triggerEvent)\n } else {\n recordTrigger()\n if (triggerEvent === 'init') {\n sizeIFrame(triggerEvent, triggerEventDesc, customHeight, customWidth)\n } else {\n sizeIFrameThrottled(\n triggerEvent,\n triggerEventDesc,\n customHeight,\n customWidth\n )\n }\n }\n }\n\n function lockTrigger() {\n if (!triggerLocked) {\n triggerLocked = true\n log('Trigger event lock on')\n }\n clearTimeout(triggerLockedTimer)\n triggerLockedTimer = setTimeout(function () {\n triggerLocked = false\n log('Trigger event lock off')\n log('--')\n }, eventCancelTimer)\n }\n\n function triggerReset(triggerEvent) {\n height = getHeight[heightCalcMode]()\n width = getWidth[widthCalcMode]()\n\n sendMsg(height, width, triggerEvent)\n }\n\n function resetIFrame(triggerEventDesc) {\n var hcm = heightCalcMode\n heightCalcMode = heightCalcModeDefault\n\n log('Reset trigger event: ' + triggerEventDesc)\n lockTrigger()\n triggerReset('reset')\n\n heightCalcMode = hcm\n }\n\n function sendMsg(height, width, triggerEvent, msg, targetOrigin) {\n function setTargetOrigin() {\n if (undefined === targetOrigin) {\n targetOrigin = targetOriginDefault\n } else {\n log('Message targetOrigin: ' + targetOrigin)\n }\n }\n\n function sendToParent() {\n var size = height + ':' + width,\n message =\n myID +\n ':' +\n size +\n ':' +\n triggerEvent +\n (undefined === msg ? '' : ':' + msg)\n\n log('Sending message to host page (' + message + ')')\n target.postMessage(msgID + message, targetOrigin)\n }\n\n if (true === sendPermit) {\n setTargetOrigin()\n sendToParent()\n }\n }\n\n function receiver(event) {\n var processRequestFromParent = {\n init: function initFromParent() {\n initMsg = event.data\n target = event.source\n\n init()\n firstRun = false\n setTimeout(function () {\n initLock = false\n }, eventCancelTimer)\n },\n\n reset: function resetFromParent() {\n if (initLock) {\n log('Page reset ignored by init')\n } else {\n log('Page size reset by host page')\n triggerReset('resetPage')\n }\n },\n\n resize: function resizeFromParent() {\n sendSize('resizeParent', 'Parent window requested size check')\n },\n\n moveToAnchor: function moveToAnchorF() {\n inPageLinks.findTarget(getData())\n },\n inPageLink: function inPageLinkF() {\n this.moveToAnchor()\n }, // Backward compatibility\n\n pageInfo: function pageInfoFromParent() {\n var msgBody = getData()\n log('PageInfoFromParent called from parent: ' + msgBody)\n onPageInfo(JSON.parse(msgBody))\n log(' --')\n },\n\n message: function messageFromParent() {\n var msgBody = getData()\n\n log('onMessage called from parent: ' + msgBody)\n // eslint-disable-next-line sonarjs/no-extra-arguments\n onMessage(JSON.parse(msgBody))\n log(' --')\n }\n }\n\n function isMessageForUs() {\n return msgID === ('' + event.data).slice(0, msgIdLen) // ''+ Protects against non-string messages\n }\n\n function getMessageType() {\n return event.data.split(']')[1].split(':')[0]\n }\n\n function getData() {\n return event.data.slice(event.data.indexOf(':') + 1)\n }\n\n function isMiddleTier() {\n return (\n (!(typeof module !== 'undefined' && module.exports) &&\n 'iFrameResize' in window) ||\n (window.jQuery !== undefined &&\n 'iFrameResize' in window.jQuery.prototype)\n )\n }\n\n function isInitMsg() {\n // Test if this message is from a child below us. This is an ugly test, however, updating\n // the message format would break backwards compatibility.\n return event.data.split(':')[2] in { true: 1, false: 1 }\n }\n\n function callFromParent() {\n var messageType = getMessageType()\n\n if (messageType in processRequestFromParent) {\n processRequestFromParent[messageType]()\n } else if (!isMiddleTier() && !isInitMsg()) {\n warn('Unexpected message (' + event.data + ')')\n }\n }\n\n function processMessage() {\n if (false === firstRun) {\n callFromParent()\n } else if (isInitMsg()) {\n processRequestFromParent.init()\n } else {\n log(\n 'Ignored message of type \"' +\n getMessageType() +\n '\". Received before initialization.'\n )\n }\n }\n\n if (isMessageForUs()) {\n processMessage()\n }\n }\n\n // Normally the parent kicks things off when it detects the iFrame has loaded.\n // If this script is async-loaded, then tell parent page to retry init.\n function chkLateLoaded() {\n if ('loading' !== document.readyState) {\n window.parent.postMessage('[iFrameResizerChild]Ready', '*')\n }\n }\n\n // Setup if not already running\n if (!('iframeResizer' in window)) {\n window.iframeChildListener = function (data) {\n receiver({ data, sameDomian: true })\n }\n addEventListener(window, 'message', receiver)\n addEventListener(window, 'readystatechange', chkLateLoaded)\n chkLateLoaded()\n }\n\n \n})()\n","/*\n * File: iframeResizer.js\n * Desc: Force iframes to size to content.\n * Requires: iframeResizer.contentWindow.js to be loaded into the target frame.\n * Doc: https://github.com/davidjbradshaw/iframe-resizer\n * Author: David J. Bradshaw - dave@bradshaw.net\n * Contributor: Jure Mav - jure.mav@gmail.com\n * Contributor: Reed Dadoune - reed@dadoune.com\n */\n\n// eslint-disable-next-line sonarjs/cognitive-complexity, no-shadow-restricted-names\n;(function (undefined) {\n if (typeof window === 'undefined') return // don't run for server side render\n\n // var VERSION = '4.3.11'\n\n var count = 0,\n destroyObserver,\n logEnabled = false,\n hiddenCheckEnabled = false,\n msgHeader = 'message',\n msgHeaderLen = msgHeader.length,\n msgId = '[iFrameSizer]', // Must match iframe msg ID\n msgIdLen = msgId.length,\n pagePosition = null,\n requestAnimationFrame = window.requestAnimationFrame,\n resetRequiredMethods = Object.freeze({\n max: 1,\n scroll: 1,\n bodyScroll: 1,\n documentElementScroll: 1\n }),\n settings = {},\n timer = null,\n defaults = Object.freeze({\n autoResize: true,\n bodyBackground: null,\n bodyMargin: null,\n bodyMarginV1: 8,\n bodyPadding: null,\n checkOrigin: true,\n inPageLinks: false,\n enablePublicMethods: true,\n heightCalculationMethod: 'bodyOffset',\n id: 'iFrameResizer',\n interval: 32,\n license: '1jqr0si6pnt',\n log: false,\n maxHeight: Infinity,\n maxWidth: Infinity,\n minHeight: 0,\n minWidth: 0,\n mouseEvents: true,\n resizeFrom: 'parent',\n scrolling: false,\n sizeHeight: true,\n sizeWidth: false,\n warningTimeout: 5000,\n tolerance: 0,\n widthCalculationMethod: 'scroll',\n onClose: function () {\n return true\n },\n onClosed: function () {},\n onInit: function () {},\n onMessage: function () {\n warn('onMessage function not defined')\n },\n onMouseEnter: function () {},\n onMouseLeave: function () {},\n onResized: function () {},\n onScroll: function () {\n return true\n }\n })\n\n function getMutationObserver() {\n return (\n window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n )\n }\n\n function addEventListener(el, evt, func) {\n el.addEventListener(evt, func, false)\n }\n\n function removeEventListener(el, evt, func) {\n el.removeEventListener(evt, func, false)\n }\n\n function setupRequestAnimationFrame() {\n var vendors = ['moz', 'webkit', 'o', 'ms']\n var x\n\n // Remove vendor prefixing if prefixed and break early if not\n for (x = 0; x < vendors.length && !requestAnimationFrame; x += 1) {\n requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']\n }\n\n if (requestAnimationFrame) {\n // Firefox extension content-scripts have a globalThis object that is not the same as window.\n // Binding `requestAnimationFrame` to window allows the function to work and prevents errors\n // being thrown when run in that context, and should be a no-op in every other context.\n requestAnimationFrame = requestAnimationFrame.bind(window)\n } else {\n log('setup', 'RequestAnimationFrame not supported')\n }\n }\n\n function getMyID(iframeId) {\n var retStr = 'Host page: ' + iframeId\n\n if (window.top !== window.self) {\n retStr =\n window.parentIFrame && window.parentIFrame.getId\n ? window.parentIFrame.getId() + ': ' + iframeId\n : 'Nested host page: ' + iframeId\n }\n\n return retStr\n }\n\n function formatLogHeader(iframeId) {\n return msgId + '[' + getMyID(iframeId) + ']'\n }\n\n function isLogEnabled(iframeId) {\n return settings[iframeId] ? settings[iframeId].log : logEnabled\n }\n\n function log(iframeId, msg) {\n output('log', iframeId, msg, isLogEnabled(iframeId))\n }\n\n function info(iframeId, msg) {\n output('info', iframeId, msg, isLogEnabled(iframeId))\n }\n\n function warn(iframeId, msg) {\n output('warn', iframeId, msg, true)\n }\n\n function output(type, iframeId, msg, enabled) {\n if (true === enabled && 'object' === typeof window.console) {\n // eslint-disable-next-line no-console\n console[type](formatLogHeader(iframeId), msg)\n }\n }\n\n function iFrameListener(event) {\n function resizeIFrame() {\n function resize() {\n setSize(messageData)\n setPagePosition(iframeId)\n on('onResized', messageData)\n }\n\n ensureInRange('Height')\n ensureInRange('Width')\n\n syncResize(resize, messageData, 'init')\n }\n\n function processMsg() {\n var data = msg.slice(msgIdLen).split(':')\n var height = data[1] ? parseInt(data[1], 10) : 0\n var iframe = settings[data[0]] && settings[data[0]].iframe\n var compStyle = getComputedStyle(iframe)\n\n return {\n iframe: iframe,\n id: data[0],\n height: height + getPaddingEnds(compStyle) + getBorderEnds(compStyle),\n width: data[2],\n type: data[3]\n }\n }\n\n function getPaddingEnds(compStyle) {\n if (compStyle.boxSizing !== 'border-box') {\n return 0\n }\n var top = compStyle.paddingTop ? parseInt(compStyle.paddingTop, 10) : 0\n var bot = compStyle.paddingBottom\n ? parseInt(compStyle.paddingBottom, 10)\n : 0\n return top + bot\n }\n\n function getBorderEnds(compStyle) {\n if (compStyle.boxSizing !== 'border-box') {\n return 0\n }\n var top = compStyle.borderTopWidth\n ? parseInt(compStyle.borderTopWidth, 10)\n : 0\n var bot = compStyle.borderBottomWidth\n ? parseInt(compStyle.borderBottomWidth, 10)\n : 0\n return top + bot\n }\n\n function ensureInRange(Dimension) {\n var max = Number(settings[iframeId]['max' + Dimension]),\n min = Number(settings[iframeId]['min' + Dimension]),\n dimension = Dimension.toLowerCase(),\n size = Number(messageData[dimension])\n\n log(iframeId, 'Checking ' + dimension + ' is in range ' + min + '-' + max)\n\n if (size < min) {\n size = min\n log(iframeId, 'Set ' + dimension + ' to min value')\n }\n\n if (size > max) {\n size = max\n log(iframeId, 'Set ' + dimension + ' to max value')\n }\n\n messageData[dimension] = '' + size\n }\n\n function isMessageFromIFrame() {\n function checkAllowedOrigin() {\n function checkList() {\n var i = 0,\n retCode = false\n\n log(\n iframeId,\n 'Checking connection is from allowed list of origins: ' +\n checkOrigin\n )\n\n for (; i < checkOrigin.length; i++) {\n if (checkOrigin[i] === origin) {\n retCode = true\n break\n }\n }\n return retCode\n }\n\n function checkSingle() {\n var remoteHost = settings[iframeId] && settings[iframeId].remoteHost\n log(iframeId, 'Checking connection is from: ' + remoteHost)\n return origin === remoteHost\n }\n\n return checkOrigin.constructor === Array ? checkList() : checkSingle()\n }\n\n var origin = event.origin,\n checkOrigin = settings[iframeId] && settings[iframeId].checkOrigin\n\n if (checkOrigin && '' + origin !== 'null' && !checkAllowedOrigin()) {\n throw new Error(\n 'Unexpected message received from: ' +\n origin +\n ' for ' +\n messageData.iframe.id +\n '. Message was: ' +\n event.data +\n '. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.'\n )\n }\n\n return true\n }\n\n function isMessageForUs() {\n return (\n msgId === ('' + msg).slice(0, msgIdLen) &&\n msg.slice(msgIdLen).split(':')[0] in settings\n ) // ''+Protects against non-string msg\n }\n\n function isMessageFromMetaParent() {\n // Test if this message is from a parent above us. This is an ugly test, however, updating\n // the message format would break backwards compatibility.\n var retCode = messageData.type in { true: 1, false: 1, undefined: 1 }\n\n if (retCode) {\n log(iframeId, 'Ignoring init message from meta parent page')\n }\n\n return retCode\n }\n\n function getMsgBody(offset) {\n return msg.slice(msg.indexOf(':') + msgHeaderLen + offset)\n }\n\n function forwardMsgFromIFrame(msgBody) {\n log(\n iframeId,\n 'onMessage passed: {iframe: ' +\n messageData.iframe.id +\n ', message: ' +\n msgBody +\n '}'\n )\n\n on('onMessage', {\n iframe: messageData.iframe,\n message: JSON.parse(msgBody)\n })\n\n log(iframeId, '--')\n }\n\n function getPageInfo() {\n var bodyPosition = document.body.getBoundingClientRect(),\n iFramePosition = messageData.iframe.getBoundingClientRect()\n\n return JSON.stringify({\n iframeHeight: iFramePosition.height,\n iframeWidth: iFramePosition.width,\n clientHeight: Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n ),\n clientWidth: Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n ),\n offsetTop: parseInt(iFramePosition.top - bodyPosition.top, 10),\n offsetLeft: parseInt(iFramePosition.left - bodyPosition.left, 10),\n scrollTop: window.pageYOffset,\n scrollLeft: window.pageXOffset,\n documentHeight: document.documentElement.clientHeight,\n documentWidth: document.documentElement.clientWidth,\n windowHeight: window.innerHeight,\n windowWidth: window.innerWidth\n })\n }\n\n function sendPageInfoToIframe(iframe, iframeId) {\n function debouncedTrigger() {\n trigger('Send Page Info', 'pageInfo:' + getPageInfo(), iframe, iframeId)\n }\n debounceFrameEvents(debouncedTrigger, 32, iframeId)\n }\n\n function startPageInfoMonitor() {\n function setListener(type, func) {\n function sendPageInfo() {\n if (settings[id]) {\n sendPageInfoToIframe(settings[id].iframe, id)\n } else {\n stop()\n }\n }\n\n ;['scroll', 'resize'].forEach(function (evt) {\n log(id, type + evt + ' listener for sendPageInfo')\n func(window, evt, sendPageInfo)\n })\n }\n\n function stop() {\n setListener('Remove ', removeEventListener)\n }\n\n function start() {\n setListener('Add ', addEventListener)\n }\n\n var id = iframeId // Create locally scoped copy of iFrame ID\n\n start()\n\n if (settings[id]) {\n settings[id].stopPageInfo = stop\n }\n }\n\n function stopPageInfoMonitor() {\n if (settings[iframeId] && settings[iframeId].stopPageInfo) {\n settings[iframeId].stopPageInfo()\n delete settings[iframeId].stopPageInfo\n }\n }\n\n function checkIFrameExists() {\n var retBool = true\n\n if (null === messageData.iframe) {\n warn(iframeId, 'IFrame (' + messageData.id + ') not found')\n retBool = false\n }\n return retBool\n }\n\n function getElementPosition(target) {\n var iFramePosition = target.getBoundingClientRect()\n\n getPagePosition(iframeId)\n\n return {\n x: Math.floor(Number(iFramePosition.left) + Number(pagePosition.x)),\n y: Math.floor(Number(iFramePosition.top) + Number(pagePosition.y))\n }\n }\n\n function scrollRequestFromChild(addOffset) {\n /* istanbul ignore next */ // Not testable in Karma\n function reposition() {\n pagePosition = newPosition\n scrollTo()\n log(iframeId, '--')\n }\n\n function calcOffset() {\n return {\n x: Number(messageData.width) + offset.x,\n y: Number(messageData.height) + offset.y\n }\n }\n\n function scrollParent() {\n if (window.parentIFrame) {\n window.parentIFrame['scrollTo' + (addOffset ? 'Offset' : '')](\n newPosition.x,\n newPosition.y\n )\n } else {\n warn(\n iframeId,\n 'Unable to scroll to requested position, window.parentIFrame not found'\n )\n }\n }\n\n var offset = addOffset\n ? getElementPosition(messageData.iframe)\n : { x: 0, y: 0 },\n newPosition = calcOffset()\n\n log(\n iframeId,\n 'Reposition requested from iFrame (offset x:' +\n offset.x +\n ' y:' +\n offset.y +\n ')'\n )\n\n if (window.top === window.self) {\n reposition()\n } else {\n scrollParent()\n }\n }\n\n function scrollTo() {\n if (false === on('onScroll', pagePosition)) {\n unsetPagePosition()\n } else {\n setPagePosition(iframeId)\n }\n }\n\n function findTarget(location) {\n function jumpToTarget() {\n var jumpPosition = getElementPosition(target)\n\n log(\n iframeId,\n 'Moving to in page link (#' +\n hash +\n ') at x: ' +\n jumpPosition.x +\n ' y: ' +\n jumpPosition.y\n )\n pagePosition = {\n x: jumpPosition.x,\n y: jumpPosition.y\n }\n\n scrollTo()\n log(iframeId, '--')\n }\n\n function jumpToParent() {\n if (window.parentIFrame) {\n window.parentIFrame.moveToAnchor(hash)\n } else {\n log(\n iframeId,\n 'In page link #' +\n hash +\n ' not found and window.parentIFrame not found'\n )\n }\n }\n\n var hash = location.split('#')[1] || '',\n hashData = decodeURIComponent(hash),\n target =\n document.getElementById(hashData) ||\n document.getElementsByName(hashData)[0]\n\n if (target) {\n jumpToTarget()\n } else if (window.top === window.self) {\n log(iframeId, 'In page link #' + hash + ' not found')\n } else {\n jumpToParent()\n }\n }\n\n function onMouse(event) {\n var mousePos = {}\n\n if (Number(messageData.width) === 0 && Number(messageData.height) === 0) {\n var data = getMsgBody(9).split(':')\n mousePos = {\n x: data[1],\n y: data[0]\n }\n } else {\n mousePos = {\n x: messageData.width,\n y: messageData.height\n }\n }\n\n on(event, {\n iframe: messageData.iframe,\n screenX: Number(mousePos.x),\n screenY: Number(mousePos.y),\n type: messageData.type\n })\n }\n\n function on(funcName, val) {\n return chkEvent(iframeId, funcName, val)\n }\n\n function actionMsg() {\n if (settings[iframeId] && settings[iframeId].firstRun) firstRun()\n\n switch (messageData.type) {\n case 'close': {\n closeIFrame(messageData.iframe)\n break\n }\n\n case 'message': {\n forwardMsgFromIFrame(getMsgBody(6))\n break\n }\n\n case 'mouseenter': {\n onMouse('onMouseEnter')\n break\n }\n\n case 'mouseleave': {\n onMouse('onMouseLeave')\n break\n }\n\n case 'autoResize': {\n settings[iframeId].autoResize = JSON.parse(getMsgBody(9))\n break\n }\n\n case 'scrollTo': {\n scrollRequestFromChild(false)\n break\n }\n\n case 'scrollToOffset': {\n scrollRequestFromChild(true)\n break\n }\n\n case 'pageInfo': {\n sendPageInfoToIframe(\n settings[iframeId] && settings[iframeId].iframe,\n iframeId\n )\n startPageInfoMonitor()\n break\n }\n\n case 'pageInfoStop': {\n stopPageInfoMonitor()\n break\n }\n\n case 'inPageLink': {\n findTarget(getMsgBody(9))\n break\n }\n\n case 'reset': {\n resetIFrame(messageData)\n break\n }\n\n case 'init': {\n resizeIFrame()\n on('onInit', messageData.iframe)\n break\n }\n\n default: {\n if (\n Number(messageData.width) === 0 &&\n Number(messageData.height) === 0\n ) {\n warn(\n 'Unsupported message received (' +\n messageData.type +\n '), this is likely due to the iframe containing a later ' +\n 'version of iframe-resizer than the parent page'\n )\n } else {\n resizeIFrame()\n }\n }\n }\n }\n\n function hasSettings(iframeId) {\n var retBool = true\n\n if (!settings[iframeId]) {\n retBool = false\n warn(\n messageData.type +\n ' No settings for ' +\n iframeId +\n '. Message was: ' +\n msg\n )\n }\n\n return retBool\n }\n\n function iFrameReadyMsgReceived() {\n // eslint-disable-next-line no-restricted-syntax, guard-for-in\n for (var iframeId in settings) {\n trigger(\n 'iFrame requested init',\n createOutgoingMsg(iframeId),\n settings[iframeId].iframe,\n iframeId\n )\n }\n }\n\n function firstRun() {\n if (settings[iframeId]) {\n settings[iframeId].firstRun = false\n }\n }\n\n var msg = event.data,\n messageData = {},\n iframeId = null\n\n if ('[iFrameResizerChild]Ready' === msg) {\n iFrameReadyMsgReceived()\n } else if (isMessageForUs()) {\n messageData = processMsg()\n iframeId = messageData.id\n if (settings[iframeId]) {\n settings[iframeId].loaded = true\n }\n\n if (!isMessageFromMetaParent() && hasSettings(iframeId)) {\n log(iframeId, 'Received: ' + msg)\n\n if (checkIFrameExists() && isMessageFromIFrame()) {\n actionMsg()\n }\n }\n } else {\n info(iframeId, 'Ignored: ' + msg)\n }\n }\n\n function chkEvent(iframeId, funcName, val) {\n var func = null,\n retVal = null\n\n if (settings[iframeId]) {\n func = settings[iframeId][funcName]\n\n if ('function' === typeof func) {\n retVal = func(val)\n } else {\n throw new TypeError(\n funcName + ' on iFrame[' + iframeId + '] is not a function'\n )\n }\n }\n\n return retVal\n }\n\n function removeIframeListeners(iframe) {\n var iframeId = iframe.id\n delete settings[iframeId]\n }\n\n function closeIFrame(iframe) {\n var iframeId = iframe.id\n if (chkEvent(iframeId, 'onClose', iframeId) === false) {\n log(iframeId, 'Close iframe cancelled by onClose event')\n return\n }\n log(iframeId, 'Removing iFrame: ' + iframeId)\n\n try {\n // Catch race condition error with React\n if (iframe.parentNode) {\n iframe.parentNode.removeChild(iframe)\n }\n } catch (error) {\n warn(error)\n }\n\n chkEvent(iframeId, 'onClosed', iframeId)\n log(iframeId, '--')\n removeIframeListeners(iframe)\n if (destroyObserver) {\n destroyObserver.disconnect()\n destroyObserver = null\n }\n }\n\n function getPagePosition(iframeId) {\n if (null === pagePosition) {\n pagePosition = {\n x:\n window.pageXOffset === undefined\n ? document.documentElement.scrollLeft\n : window.pageXOffset,\n y:\n window.pageYOffset === undefined\n ? document.documentElement.scrollTop\n : window.pageYOffset\n }\n log(\n iframeId,\n 'Get page position: ' + pagePosition.x + ',' + pagePosition.y\n )\n }\n }\n\n function setPagePosition(iframeId) {\n if (null !== pagePosition) {\n window.scrollTo(pagePosition.x, pagePosition.y)\n log(\n iframeId,\n 'Set page position: ' + pagePosition.x + ',' + pagePosition.y\n )\n unsetPagePosition()\n }\n }\n\n function unsetPagePosition() {\n pagePosition = null\n }\n\n function resetIFrame(messageData) {\n function reset() {\n setSize(messageData)\n trigger('reset', 'reset', messageData.iframe, messageData.id)\n }\n\n log(\n messageData.id,\n 'Size reset requested by ' +\n ('init' === messageData.type ? 'host page' : 'iFrame')\n )\n getPagePosition(messageData.id)\n syncResize(reset, messageData, 'reset')\n }\n\n function setSize(messageData) {\n function setDimension(dimension) {\n if (!messageData.id) {\n log('undefined', 'messageData id not set')\n return\n }\n messageData.iframe.style[dimension] = messageData[dimension] + 'px'\n log(\n messageData.id,\n 'IFrame (' +\n iframeId +\n ') ' +\n dimension +\n ' set to ' +\n messageData[dimension] +\n 'px'\n )\n }\n\n function chkZero(dimension) {\n // FireFox sets dimension of hidden iFrames to zero.\n // So if we detect that set up an event to check for\n // when iFrame becomes visible.\n\n /* istanbul ignore next */ // Not testable in PhantomJS\n if (!hiddenCheckEnabled && '0' === messageData[dimension]) {\n hiddenCheckEnabled = true\n log(iframeId, 'Hidden iFrame detected, creating visibility listener')\n fixHiddenIFrames()\n }\n }\n\n function processDimension(dimension) {\n setDimension(dimension)\n chkZero(dimension)\n }\n\n var iframeId = messageData.iframe.id\n\n if (settings[iframeId]) {\n if (settings[iframeId].sizeHeight) {\n processDimension('height')\n }\n if (settings[iframeId].sizeWidth) {\n processDimension('width')\n }\n }\n }\n\n function syncResize(func, messageData, doNotSync) {\n /* istanbul ignore if */ // Not testable in PhantomJS\n if (\n doNotSync !== messageData.type &&\n requestAnimationFrame &&\n // including check for jasmine because had trouble getting spy to work in unit test using requestAnimationFrame\n !window.jasmine\n ) {\n log(messageData.id, 'Requesting animation frame')\n requestAnimationFrame(func)\n } else {\n func()\n }\n }\n\n function trigger(calleeMsg, msg, iframe, id, noResponseWarning) {\n function postMessageToIFrame() {\n var target = settings[id] && settings[id].targetOrigin\n log(\n id,\n '[' +\n calleeMsg +\n '] Sending msg to iframe[' +\n id +\n '] (' +\n msg +\n ') targetOrigin: ' +\n target\n )\n iframe.contentWindow.postMessage(msgId + msg, target)\n }\n\n function iFrameNotFound() {\n warn(id, '[' + calleeMsg + '] IFrame(' + id + ') not found')\n }\n\n function chkAndSend() {\n if (\n iframe &&\n 'contentWindow' in iframe &&\n null !== iframe.contentWindow\n ) {\n // Null test for PhantomJS\n postMessageToIFrame()\n } else {\n iFrameNotFound()\n }\n }\n\n function warnOnNoResponse() {\n function warning() {\n if (settings[id] && !settings[id].loaded && !errorShown) {\n errorShown = true\n warn(\n id,\n 'IFrame has not responded within ' +\n settings[id].warningTimeout / 1000 +\n ' seconds. Check iFrameResizer.contentWindow.js has been loaded in iFrame. This message can be ignored if everything is working, or you can set the warningTimeout option to a higher value or zero to suppress this warning.'\n )\n }\n }\n\n if (\n !!noResponseWarning &&\n settings[id] &&\n !!settings[id].warningTimeout\n ) {\n settings[id].msgTimeout = setTimeout(\n warning,\n settings[id].warningTimeout\n )\n }\n }\n\n var errorShown = false\n\n id = id || iframe.id\n\n if (settings[id]) {\n chkAndSend()\n warnOnNoResponse()\n }\n }\n\n function createOutgoingMsg(iframeId) {\n return (\n iframeId +\n ':' +\n settings[iframeId].bodyMarginV1 +\n ':' +\n settings[iframeId].sizeWidth +\n ':' +\n settings[iframeId].log +\n ':' +\n settings[iframeId].interval +\n ':' +\n settings[iframeId].enablePublicMethods +\n ':' +\n settings[iframeId].autoResize +\n ':' +\n settings[iframeId].bodyMargin +\n ':' +\n settings[iframeId].heightCalculationMethod +\n ':' +\n settings[iframeId].bodyBackground +\n ':' +\n settings[iframeId].bodyPadding +\n ':' +\n settings[iframeId].tolerance +\n ':' +\n settings[iframeId].inPageLinks +\n ':' +\n settings[iframeId].resizeFrom +\n ':' +\n settings[iframeId].widthCalculationMethod +\n ':' +\n settings[iframeId].mouseEvents\n )\n }\n\n function isNumber(value) {\n return typeof value === 'number'\n }\n\n function setupIFrame(iframe, options) {\n function setLimits() {\n function addStyle(style) {\n var styleValue = settings[iframeId][style]\n if (Infinity !== styleValue && 0 !== styleValue) {\n iframe.style[style] = isNumber(styleValue)\n ? styleValue + 'px'\n : styleValue\n log(iframeId, 'Set ' + style + ' = ' + iframe.style[style])\n }\n }\n\n function chkMinMax(dimension) {\n if (\n settings[iframeId]['min' + dimension] >\n settings[iframeId]['max' + dimension]\n ) {\n throw new Error(\n 'Value for min' +\n dimension +\n ' can not be greater than max' +\n dimension\n )\n }\n }\n\n chkMinMax('Height')\n chkMinMax('Width')\n\n addStyle('maxHeight')\n addStyle('minHeight')\n addStyle('maxWidth')\n addStyle('minWidth')\n }\n\n function newId() {\n var id = (options && options.id) || defaults.id + count++\n if (null !== document.getElementById(id)) {\n id += count++\n }\n return id\n }\n\n function ensureHasId(iframeId) {\n if (typeof iframeId !== 'string') {\n throw new TypeError('Invaild id for iFrame. Expected String')\n }\n\n if ('' === iframeId) {\n // eslint-disable-next-line no-multi-assign\n iframe.id = iframeId = newId()\n logEnabled = (options || {}).log\n log(\n iframeId,\n 'Added missing iframe ID: ' + iframeId + ' (' + iframe.src + ')'\n )\n }\n\n return iframeId\n }\n\n function setScrolling() {\n log(\n iframeId,\n 'IFrame scrolling ' +\n (settings[iframeId] && settings[iframeId].scrolling\n ? 'enabled'\n : 'disabled') +\n ' for ' +\n iframeId\n )\n iframe.style.overflow =\n false === (settings[iframeId] && settings[iframeId].scrolling)\n ? 'hidden'\n : 'auto'\n switch (settings[iframeId] && settings[iframeId].scrolling) {\n case 'omit': {\n break\n }\n\n case true: {\n iframe.scrolling = 'yes'\n break\n }\n\n case false: {\n iframe.scrolling = 'no'\n break\n }\n\n default: {\n iframe.scrolling = settings[iframeId]\n ? settings[iframeId].scrolling\n : 'no'\n }\n }\n }\n\n // The V1 iFrame script expects an int, where as in V2 expects a CSS\n // string value such as '1px 3em', so if we have an int for V2, set V1=V2\n // and then convert V2 to a string PX value.\n function setupBodyMarginValues() {\n if (\n 'number' ===\n typeof (settings[iframeId] && settings[iframeId].bodyMargin) ||\n '0' === (settings[iframeId] && settings[iframeId].bodyMargin)\n ) {\n settings[iframeId].bodyMarginV1 = settings[iframeId].bodyMargin\n settings[iframeId].bodyMargin =\n '' + settings[iframeId].bodyMargin + 'px'\n }\n }\n\n function checkReset() {\n // Reduce scope of firstRun to function, because IE8's JS execution\n // context stack is borked and this value gets externally\n // changed midway through running this function!!!\n var firstRun = settings[iframeId] && settings[iframeId].firstRun,\n resetRequertMethod =\n settings[iframeId] &&\n settings[iframeId].heightCalculationMethod in resetRequiredMethods\n\n if (!firstRun && resetRequertMethod) {\n resetIFrame({ iframe: iframe, height: 0, width: 0, type: 'init' })\n }\n }\n\n function setupIFrameObject() {\n if (settings[iframeId]) {\n settings[iframeId].iframe.iFrameResizer = {\n close: closeIFrame.bind(null, settings[iframeId].iframe),\n\n removeListeners: removeIframeListeners.bind(\n null,\n settings[iframeId].iframe\n ),\n\n resize: trigger.bind(\n null,\n 'Window resize',\n 'resize',\n settings[iframeId].iframe\n ),\n\n moveToAnchor: function (anchor) {\n trigger(\n 'Move to anchor',\n 'moveToAnchor:' + anchor,\n settings[iframeId].iframe,\n iframeId\n )\n },\n\n sendMessage: function (message) {\n message = JSON.stringify(message)\n trigger(\n 'Send Message',\n 'message:' + message,\n settings[iframeId].iframe,\n iframeId\n )\n }\n }\n }\n }\n\n // We have to call trigger twice, as we can not be sure if all\n // iframes have completed loading when this code runs. The\n // event listener also catches the page changing in the iFrame.\n function init(msg) {\n function iFrameLoaded() {\n trigger('iFrame.onload', msg, iframe, undefined, true)\n checkReset()\n }\n\n function createDestroyObserver(MutationObserver) {\n if (!iframe.parentNode) {\n return null\n }\n\n var destroyObserver = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n var removedNodes = Array.prototype.slice.call(mutation.removedNodes) // Transform NodeList into an Array\n removedNodes.forEach(function (removedNode) {\n if (removedNode === iframe) {\n closeIFrame(iframe)\n }\n })\n })\n })\n destroyObserver.observe(iframe.parentNode, {\n childList: true\n })\n return destroyObserver\n }\n\n var MutationObserver = getMutationObserver()\n if (MutationObserver) {\n destroyObserver = createDestroyObserver(MutationObserver)\n }\n\n addEventListener(iframe, 'load', iFrameLoaded)\n trigger('init', msg, iframe, undefined, true)\n }\n\n function checkOptions(options) {\n if ('object' !== typeof options) {\n throw new TypeError('Options is not an object')\n }\n }\n\n function copyOptions(options) {\n // eslint-disable-next-line no-restricted-syntax\n for (var option in defaults) {\n if (Object.prototype.hasOwnProperty.call(defaults, option)) {\n settings[iframeId][option] = Object.prototype.hasOwnProperty.call(\n options,\n option\n )\n ? options[option]\n : defaults[option]\n }\n }\n }\n\n function getTargetOrigin(remoteHost) {\n return '' === remoteHost ||\n null !== remoteHost.match(/^(about:blank|javascript:|file:\\/\\/)/)\n ? '*'\n : remoteHost\n }\n\n function depricate(key) {\n var splitName = key.split('Callback')\n\n if (splitName.length === 2) {\n var name =\n 'on' + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1)\n this[name] = this[key]\n delete this[key]\n warn(\n iframeId,\n \"Deprecated: '\" +\n key +\n \"' has been renamed '\" +\n name +\n \"'. The old method will be removed in the next major version.\"\n )\n }\n }\n\n function processOptions(options) {\n options = options || {}\n\n settings[iframeId] = Object.create(null) // Protect against prototype attacks\n settings[iframeId].iframe = iframe\n settings[iframeId].firstRun = true\n settings[iframeId].remoteHost =\n iframe.src && iframe.src.split('/').slice(0, 3).join('/')\n\n checkOptions(options)\n Object.keys(options).forEach(depricate, options)\n copyOptions(options)\n\n if (settings[iframeId]) {\n settings[iframeId].targetOrigin =\n true === settings[iframeId].checkOrigin\n ? getTargetOrigin(settings[iframeId].remoteHost)\n : '*'\n }\n }\n\n function beenHere() {\n return iframeId in settings && 'iFrameResizer' in iframe\n }\n\n var iframeId = ensureHasId(iframe.id)\n\n if (beenHere()) {\n warn(iframeId, 'Ignored iFrame, already setup.')\n } else {\n processOptions(options)\n setScrolling()\n setLimits()\n setupBodyMarginValues()\n init(createOutgoingMsg(iframeId))\n setupIFrameObject()\n }\n }\n\n function debouce(fn, time) {\n if (null === timer) {\n timer = setTimeout(function () {\n timer = null\n fn()\n }, time)\n }\n }\n\n var frameTimer = {}\n function debounceFrameEvents(fn, time, frameId) {\n if (!frameTimer[frameId]) {\n frameTimer[frameId] = setTimeout(function () {\n frameTimer[frameId] = null\n fn()\n }, time)\n }\n }\n\n // Not testable in PhantomJS\n /* istanbul ignore next */\n\n function fixHiddenIFrames() {\n function checkIFrames() {\n function checkIFrame(settingId) {\n function chkDimension(dimension) {\n return (\n '0px' ===\n (settings[settingId] && settings[settingId].iframe.style[dimension])\n )\n }\n\n function isVisible(el) {\n return null !== el.offsetParent\n }\n\n if (\n settings[settingId] &&\n isVisible(settings[settingId].iframe) &&\n (chkDimension('height') || chkDimension('width'))\n ) {\n trigger(\n 'Visibility change',\n 'resize',\n settings[settingId].iframe,\n settingId\n )\n }\n }\n\n Object.keys(settings).forEach(function (key) {\n checkIFrame(key)\n })\n }\n\n function mutationObserved(mutations) {\n log(\n 'window',\n 'Mutation observed: ' + mutations[0].target + ' ' + mutations[0].type\n )\n debouce(checkIFrames, 16)\n }\n\n function createMutationObserver() {\n var target = document.querySelector('body'),\n config = {\n attributes: true,\n attributeOldValue: false,\n characterData: true,\n characterDataOldValue: false,\n childList: true,\n subtree: true\n },\n observer = new MutationObserver(mutationObserved)\n\n observer.observe(target, config)\n }\n\n var MutationObserver = getMutationObserver()\n if (MutationObserver) {\n createMutationObserver()\n }\n }\n\n function resizeIFrames(event) {\n function resize() {\n sendTriggerMsg('Window ' + event, 'resize')\n }\n\n log('window', 'Trigger event: ' + event)\n debouce(resize, 16)\n }\n\n // Not testable in PhantomJS\n /* istanbul ignore next */\n function tabVisible() {\n function resize() {\n sendTriggerMsg('Tab Visible', 'resize')\n }\n\n if ('hidden' !== document.visibilityState) {\n log('document', 'Trigger event: Visibility change')\n debouce(resize, 16)\n }\n }\n\n function sendTriggerMsg(eventName, event) {\n function isIFrameResizeEnabled(iframeId) {\n return (\n settings[iframeId] &&\n 'parent' === settings[iframeId].resizeFrom &&\n settings[iframeId].autoResize &&\n !settings[iframeId].firstRun\n )\n }\n\n Object.keys(settings).forEach(function (iframeId) {\n if (isIFrameResizeEnabled(iframeId)) {\n trigger(eventName, event, settings[iframeId].iframe, iframeId)\n }\n })\n }\n\n function setupEventListeners() {\n addEventListener(window, 'message', iFrameListener)\n\n addEventListener(window, 'resize', function () {\n resizeIFrames('resize')\n })\n\n addEventListener(document, 'visibilitychange', tabVisible)\n\n addEventListener(document, '-webkit-visibilitychange', tabVisible)\n }\n\n function factory() {\n function init(options, element) {\n function chkType() {\n if (!element.tagName) {\n throw new TypeError('Object is not a valid DOM element')\n } else if ('IFRAME' !== element.tagName.toUpperCase()) {\n throw new TypeError(\n 'Expected