{"version":3,"file":"index-12850049.js","sources":["../../../node_modules/@hotwired/stimulus/dist/stimulus.js","../../../app/javascript/controllers/agent/consideration_job_controller.js","../../../app/javascript/controllers/agent/job_controller.js","../../../app/javascript/controllers/api_loader/plugin.js","../../../app/javascript/controllers/api_loader/plugin_controller.js","../../../app/javascript/controllers/apply_controller.js","../../../app/javascript/controllers/bookmarked_company_controller.js","../../../app/javascript/controllers/candidates/account_setting_controller.js","../../../app/javascript/controllers/candidates/company_account_follow_controller.js","../../../app/javascript/controllers/candidates/email_setting_controller.js","../../../app/javascript/controllers/candidates/notification_setting_controller.js","../../../app/javascript/controllers/candidates/violation_report_controller.js","../../../app/javascript/controllers/candidates/withdrawal_controller.js","../../../node_modules/swiper/modules/scrollbar.mjs","../../../node_modules/swiper/modules/autoplay.mjs","../../../app/javascript/controllers/carousel_controller.js","../../../app/javascript/controllers/counter_controller.js","../../../app/javascript/controllers/dropdown-search-condition_controller.js","../../../app/javascript/controllers/favorite_controller.js","../../../app/javascript/controllers/job_controller.js","../../../app/javascript/controllers/notification_controller.js","../../../app/javascript/controllers/propositions_controller.js","../../../node_modules/quill/dist/quill.js","../../../app/javascript/controllers/quill-editor_controller.js","../../../app/javascript/controllers/recently_job_controller.js","../../../app/javascript/controllers/root-modal_controller.js","../../../app/javascript/controllers/scout_controller.js","../../../app/javascript/controllers/search-condition_controller.js","../../../app/javascript/controllers/story-detail_controller.js","../../../node_modules/lodash.debounce/index.js","../../../app/javascript/controllers/story_controller.js","../../../node_modules/just-validate/dist/just-validate.es.js","../../../app/javascript/controllers/validate-message-form_controller.js","../../../app/javascript/controllers/validation-form/input_controller.js","../../../node_modules/stimulus-vite-helpers/dist/index.js","../../../node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","../../../node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js","../../../app/javascript/channels/message_notifications_channel.js","../../../app/javascript/controllers/index.js"],"sourcesContent":["/*\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","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [\"applyModal\", \"modalCompanyName\", \"modalJobName\", 'btnOpenApplyModal', 'btnCloseApplyModal'];\n\n onActionJobLike(event) {\n event.preventDefault();\n\n const url = event.params.url;\n const jobId = event.params.jobId;\n const currentFavoriteBtn = document.getElementById('js-favorite-button-' + jobId);\n currentFavoriteBtn.classList.add('btn-disabled');\n const method = event.params.method;\n const jobLikeId = event.params.jobLikeId;\n const isApply = event.params.isApply;\n const currentBtn = event.target;\n const formData = new FormData();\n formData.append(\"job_id\", jobId);\n formData.append(\"job_like_id\", jobLikeId);\n formData.append(\"is_apply\", isApply);\n Rails.ajax({\n type: method,\n url: url,\n dataType: \"json\",\n data: formData,\n success: (response) => {\n currentFavoriteBtn.outerHTML = response.body.innerHTML;\n },\n error: (error) => {\n alert('繧ィ繝ゥ繝シ縺檎匱逕溘@縺セ縺励◆縲ゅ�繝シ繧ク繧偵Μ繝ュ繝シ繝峨@縺ヲ縺上□縺輔>縲�');\n },\n complete: () => {\n currentFavoriteBtn.classList.remove('btn-disabled');\n }\n });\n }\n\n onOpenModal(event) {\n const modalId = event.params.modalId;\n const jobId = event.params.jobId;\n const companyName = event.params.companyName;\n const jobName = event.params.jobName;\n\n this.modalCompanyNameTarget.textContent = companyName;\n this.modalJobNameTarget.textContent = jobName;\n\n this.applyModalTarget.dataset.jobId = jobId;\n this.btnOpenApplyModalTarget.click();\n }\n\n onApplyJob(event) {\n event.preventDefault();\n const url = event.params.url;\n const jobId = this.applyModalTarget.dataset.jobId;\n const currentApplyBtn = document.getElementById('js-apply-button-' + jobId);\n const favoriteBtn = document.getElementById('js-favorite-button-' + jobId);\n const method = event.params.method;\n const formData = new FormData();\n formData.append(\"job_id\", jobId);\n Rails.ajax({\n type: method,\n url: url,\n dataType: \"json\",\n data: formData,\n success: (response) => {\n currentApplyBtn.outerHTML = response.body.innerHTML;\n favoriteBtn.classList.add('d-none');\n this.btnCloseApplyModalTarget.click();\n },\n error: (error) => {\n this.btnCloseApplyModalTarget.click();\n alert('繧ィ繝ゥ繝シ縺檎匱逕溘@縺セ縺励◆縲ゅ�繝シ繧ク繧偵Μ繝ュ繝シ繝峨@縺ヲ縺上□縺輔>縲�');\n }\n });\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['favoriteBtn', 'applyBtn', 'modalApply', 'btnCloseDeclineModal', 'btnOpenDeclineModal', 'declinedBtn']\n static values = { url: String }\n\n connect = () => {\n // AF-MATCHING-1131 No.4: Show modal after logged in\n const urlParams = new URLSearchParams(window.location.search);\n const action = urlParams.get('action');\n const localStorageItem = JSON.parse(localStorage.getItem(\"interview_apply_modal\"));\n\n if (localStorageItem) {\n if (this.hasApplyBtnTarget) {\n this.applyBtnTarget.click();\n }\n localStorage.removeItem(\"interview_apply_modal\");\n localStorage.removeItem(\"interview_modal_id\");\n } else if (action === 'interview_apply_modal') {\n // Remove action param from URL\n urlParams.delete('action');\n const params = urlParams.toString();\n const newUrl = params ? `${window.location.pathname}?${params}` : window.location.pathname;\n window.history.replaceState({}, '', newUrl);\n\n const isLoggedIn = localStorage.getItem('access_token').length > 0\n if (isLoggedIn) this.applyBtnTarget.click();\n }\n }\n\n onActionJobLike(event) {\n event.preventDefault();\n this.favoriteBtnTarget.classList.add('btn-disabled');\n const url = event.params.url;\n const jobId = event.params.jobId;\n const method = event.params.method;\n const jobLikeId = event.params.jobLikeId;\n const formData = new FormData();\n formData.append(\"job_id\", jobId);\n formData.append(\"job_like_id\", jobLikeId);\n Rails.ajax({\n type: method,\n url: url,\n dataType: \"json\",\n data: formData,\n success: (response) => {\n this.favoriteBtnTarget.innerHTML = response.body.querySelector('.js-btn-agent-job-like').innerHTML;\n },\n error: (error) => {\n alert('繧ィ繝ゥ繝シ縺檎匱逕溘@縺セ縺励◆縲ゅ�繝シ繧ク繧偵Μ繝ュ繝シ繝峨@縺ヲ縺上□縺輔>縲�');\n },\n complete: () => {\n this.favoriteBtnTarget.classList.remove('btn-disabled');\n }\n });\n }\n\n onGuestSubmitApplyJob = () => {\n localStorage.setItem(\"redirect_url\", window.location.pathname + window.location.search);\n window.location.href = event.currentTarget.dataset.urlParam;\n }\n\n onOpenModal(event) {\n const modalId = event.params.modalId;\n this.modalApplyTarget.dataset.applyBtnId = event.currentTarget.id;\n this._toggleModal(modalId);\n }\n\n onCloseModal(event) {\n const modalId = event.params.modalId;\n this._toggleModal(modalId);\n }\n\n onApplyJob(event) {\n event.preventDefault();\n\n const currentBtnApply = document.getElementById(this.modalApplyTarget.dataset.applyBtnId);\n currentBtnApply.classList.add('btn-disabled');\n\n const url = event.params.url;\n const jobId = event.params.jobId;\n const jobTitle = event.params.jobTitle;\n const companyName = event.params.companyName;\n const method = event.params.method;\n const formData = new FormData();\n formData.append(\"job_id\", jobId);\n formData.append(\"job_title\", jobTitle);\n formData.append(\"company_name\", companyName);\n Rails.ajax({\n type: method,\n url: url,\n dataType: \"json\",\n data: formData,\n success: (response) => {\n const textSpan = currentBtnApply.querySelector('.js-text-btn-apply');\n if (textSpan) {\n textSpan.textContent = \"蠢懷供貂医∩\";\n this.favoriteBtnTarget.classList.add('d-none');\n this.btnOpenDeclineModalTarget.classList.add('d-none')\n } else {\n this.favoriteBtnTarget.classList.add('d-none');\n currentBtnApply.classList.add('pe-none');\n const imgElement = currentBtnApply.querySelector('img');\n if (imgElement) {\n const newSrc = imgElement.src.replace('icon-apply.svg', 'icon-apply-grey.svg');\n imgElement.src = newSrc;\n }\n }\n this._toggleModal('agentApplyJobModal');\n },\n error: (error) => {\n alert('繧ィ繝ゥ繝シ縺檎匱逕溘@縺セ縺励◆縲ゅ�繝シ繧ク繧偵Μ繝ュ繝シ繝峨@縺ヲ縺上□縺輔>縲�');\n }\n });\n }\n\n onDeclineJob(event) {\n event.preventDefault();\n const url = event.params.url;\n const matchingId = event.params.matchingId;\n const method = event.params.method;\n const formData = new FormData();\n const btnApplyPC = document.getElementById('applyBtnJobPc');\n const btnApplySP = document.getElementById('applyJobBtnSp');\n formData.append(\"matching_id\", matchingId);\n\n Rails.ajax({\n type: method,\n url: url,\n dataType: \"json\",\n data: formData,\n success: (response) => {\n this.favoriteBtnTarget.classList.add('d-none');\n this.btnOpenDeclineModalTarget.classList.add('d-none')\n btnApplyPC.classList.remove('d-md-flex');\n btnApplyPC.classList.add('d-none');\n btnApplySP.classList.add('d-none');\n this.declinedBtnTarget.classList.remove('d-none');\n this.btnCloseDeclineModalTarget.click();\n },\n error: (error) => {\n alert('繧ィ繝ゥ繝シ縺檎匱逕溘@縺セ縺励◆縲ゅ�繝シ繧ク繧偵Μ繝ュ繝シ繝峨@縺ヲ縺上□縺輔>縲�');\n }\n });\n }\n\n _toggleModal(id) {\n const modalElement = document.getElementById(id);\n const backdrop = document.createElement('div');\n backdrop.className = 'modal-backdrop fade show';\n\n if (modalElement.classList.contains('show')) {\n modalElement.classList.remove('show');\n document.body.classList.remove('modal-open');\n modalElement.style.display = 'none';\n document.querySelectorAll('.modal-backdrop.fade.show').forEach(el => el.remove());\n } else {\n modalElement.classList.add('show');\n document.body.classList.add('modal-open');\n modalElement.style.display = 'block';\n document.body.appendChild(backdrop);\n }\n }\n}\n","export default class ApiLoaderPlugin {\n static DEFAULTS = {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': document.querySelector('meta[name=\"csrf-token\"]')?.content\n }\n }\n\n constructor(element, options = {}) {\n this.element = element\n this.options = this.buildRequestOptions(options)\n this.endpoint = this.buildEndpointWithQuery(element.dataset.apiEndpoint, element.dataset.apiQuery)\n this.dataPath = element.dataset.dataPath\n this.templateSuccessId = element.dataset.templateSuccessId\n this.templateLoadingId = element.dataset.templateLoadingId\n this.templateErrorId = element.dataset.templateErrorId\n this.responseType = element.dataset.responseType || 'json'\n\n this.contentElement = this.element.querySelector('[data-api-loader-target=\"content\"]')\n if (!this.contentElement) {\n throw new Error('Missing content target element for API Loader')\n }\n\n this.initialize()\n }\n\n buildEndpointWithQuery(endpoint, queryString) {\n if (!endpoint) return null\n if (!queryString) return endpoint\n\n try {\n const queryParams = JSON.parse(queryString)\n const searchParams = new URLSearchParams()\n\n const flattenParams = (obj, prefix = '') => {\n Object.entries(obj).forEach(([key, value]) => {\n const finalKey = prefix ? `${prefix}[${key}]` : key\n\n if (Array.isArray(value)) {\n value.forEach(v => searchParams.append(`${finalKey}[]`, v))\n } else if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n flattenParams(value, finalKey)\n } else {\n searchParams.append(finalKey, value.toString())\n }\n }\n })\n }\n\n flattenParams(queryParams)\n const queryStr = searchParams.toString()\n return queryStr ? `${endpoint}?${queryStr}` : endpoint\n } catch (error) {\n console.error('Invalid query params:', error)\n return endpoint\n }\n }\n\n buildRequestOptions(options) {\n const finalOptions = {\n ...ApiLoaderPlugin.DEFAULTS,\n ...options,\n headers: {\n ...ApiLoaderPlugin.DEFAULTS.headers,\n ...(options.headers || {})\n }\n }\n\n // Ch盻� thテェm body n蘯ソu khテエng ph蘯」i GET ho蘯キc HEAD\n const method = (finalOptions.method || 'GET').toUpperCase()\n if (method === 'GET' || method === 'HEAD') {\n delete finalOptions.body\n } else if (finalOptions.body && typeof finalOptions.body === 'object') {\n finalOptions.body = JSON.stringify(finalOptions.body)\n }\n\n return finalOptions\n }\n\n initialize() {\n this.showLoading()\n this.fetchData()\n }\n\n async fetchData() {\n try {\n const response = await fetch(this.endpoint, this.options)\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`)\n }\n\n const data = this.responseType === 'json' ? await response.json() : await response.text()\n this.handleSuccess(data)\n } catch (error) {\n this.handleError(error)\n }\n }\n\n handleSuccess(data) {\n if (this.responseType === 'json') {\n const finalData = this.dataPath ? this.getNestedValue(data, this.dataPath) : data\n this.renderTemplate(finalData)\n\n const event = new CustomEvent('api-loader:success', {\n detail: { data: finalData },\n bubbles: true\n })\n this.element.dispatchEvent(event)\n } else {\n this.contentElement.innerHTML = data\n this.initializeControllers()\n\n const event = new CustomEvent('api-loader:success', {\n detail: { data },\n bubbles: true\n })\n this.element.dispatchEvent(event)\n }\n }\n\n handleError(error) {\n if (this.templateErrorId) {\n const template = document.getElementById(this.templateErrorId)\n if (template) {\n this.contentElement.innerHTML = template.innerHTML\n }\n }\n console.error('Error:', error)\n }\n\n showLoading() {\n if (this.templateLoadingId) {\n const template = document.getElementById(this.templateLoadingId)\n if (template) {\n this.contentElement.innerHTML = template.innerHTML\n }\n }\n }\n\n renderTemplate(data) {\n const template = document.getElementById(this.templateSuccessId)\n if (!template) return\n\n if (Array.isArray(data)) {\n this.contentElement.innerHTML = data.map(item => this.processTemplate(template.innerHTML, item)).join('')\n } else {\n this.contentElement.innerHTML = this.processTemplate(template.innerHTML, data)\n }\n\n this.initializeControllers()\n }\n\n processTemplate(template, data) {\n return template.replace(/\\{\\{(.*?)\\}\\}/g, (match, key) => {\n const trimmedKey = key.trim()\n return this.getNestedValue(data, trimmedKey) || ''\n })\n }\n\n getNestedValue(obj, path) {\n return path.split('.').reduce((current, key) => current?.[key], obj)\n }\n\n initializeControllers() {\n if (window.Stimulus) {\n const controllers = this.element.querySelectorAll('[data-controller]')\n controllers.forEach(controller => {\n window.Stimulus.getControllerForElementAndIdentifier(controller,\n controller.dataset.controller)?.initialize()\n })\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport ApiLoaderPlugin from \"./plugin\"\n\nexport default class extends Controller {\n connect() {\n this.loader = new ApiLoaderPlugin(this.element, {\n method: this.element.dataset.method,\n headers: this.getHeaders(),\n body: this.getRequestBody()\n })\n }\n\n getHeaders() {\n try {\n return JSON.parse(this.element.dataset.headers || '{}')\n } catch {\n return ApiLoaderPlugin.DEFAULTS.headers\n }\n }\n\n getRequestBody() {\n try {\n return JSON.parse(this.element.dataset.body || '{}')\n } catch {\n return null\n }\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['form', 'messageAttachmentName', 'entries', 'pagination', 'replyForm', 'title', 'text', 'inputFile']\n\n onScroll() {\n if (this.debouncedScroll) {\n clearTimeout(this.debouncedScroll);\n }\n\n this.debouncedScroll = setTimeout(() => {\n const nextPage = this.paginationTarget.querySelector(\"a[rel='next']\");\n if (nextPage == null) { return }\n\n const url = nextPage.href;\n const body = document.body;\n const html = document.documentElement;\n const height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n\n if (window.pageYOffset >= height - window.innerHeight - 1) {\n this.loadMore(url)\n }\n }, 200);\n }\n\n loadMore(url) {\n Rails.ajax({\n type: \"GET\",\n url: url,\n dataType: \"json\",\n success: (response) => {\n this.entriesTarget.insertAdjacentHTML(\"beforeend\", response.entries);\n this.paginationTarget.innerHTML = response.pagination\n }\n });\n }\n\n onSubmitForm = () => {\n this.formTarget.submit();\n }\n\n showApplyMessage(event) {\n event.preventDefault();\n const target = event.currentTarget;\n const appliesDetail = target.closest('.apply-detail');\n const applyMessages = appliesDetail.querySelector('.apply-detail-messages');\n const appliesDetailJobPage = appliesDetail.querySelector('.apply-detail-job-page');\n const showJobDetailDiv = target.closest('.child-link').previousElementSibling;\n const jobDetailLink = target.closest('.col').querySelector('.job-detail');\n\n applyMessages.classList.remove('d-none');\n this.updateClassList(target, jobDetailLink, showJobDetailDiv);\n appliesDetailJobPage.classList.add('d-none');\n }\n\n showJobDetail(event) {\n event.preventDefault();\n const target = event.currentTarget;\n const appliesDetail = target.closest('.apply-detail');\n const applyMessages = appliesDetail.querySelector('.apply-detail-messages');\n const appliesDetailJobPage = appliesDetail.querySelector('.apply-detail-job-page');\n const showApplyMessageDiv = target.closest('.child-link').nextElementSibling;\n const applyMessageLink = target.closest('.col').querySelector('.apply-messages');\n\n appliesDetailJobPage.classList.remove('d-none');\n this.updateClassList(target, applyMessageLink, showApplyMessageDiv);\n applyMessages.classList.add('d-none');\n }\n\n updateClassList(target, targetParent, elementSibling) {\n target.closest('.child-link').classList.add('border-info', 'border-2', 'border-bottom');\n target.classList.remove('color-grey-70');\n target.classList.add('color-blue-primary');\n targetParent.classList.remove('color-blue-primary');\n targetParent.classList.add('color-grey-70');\n elementSibling.classList.remove('border-info');\n }\n\n fileOnchange(event) {\n const attachmentFile = event.target.files[0];\n if (attachmentFile) {\n let fileName = attachmentFile.name;\n fileName = fileName.length > 20 ? fileName.slice(0, 17) + '...' + fileName.substring(fileName.lastIndexOf('.')) : fileName;\n this.messageAttachmentNameTarget.innerHTML = fileName;\n this.messageAttachmentNameTarget.nextSibling.classList.remove('d-none')\n } else {\n this.messageAttachmentNameTarget.innerHTML = '';\n }\n }\n\n onResetAttachFile() {\n this.messageAttachmentNameTarget.nextSibling.classList.add('d-none')\n this.messageAttachmentNameTarget.innerHTML = '';\n this.inputFileTarget.value = '';\n const errorElement = this.inputFileTarget.nextSibling;\n if(errorElement) {\n errorElement.remove();\n }\n }\n\n onCountCharacters(event) {\n const characters = event.currentTarget.value.length;\n const counterId = event.params.attribute;\n const maxTextLength = event.params.maxTextLength;\n const counter = document.querySelector(`span[data-counter=\"${counterId}\"]`);\n counter.textContent = characters;\n counter.classList.toggle('text-danger', characters > maxTextLength);\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [\"entries\", \"pagination\"];\n\n connect() {\n this._checkNavigation()\n const interviewModalId = localStorage.getItem(\"interview_modal_id\");\n const interviewButton = document.getElementById(\"js-candidate-apply-job-\" + interviewModalId);\n\n if (interviewButton) {\n this._showInterviewModal(interviewButton);\n }\n }\n\n _checkNavigation() {\n if (performance.getEntriesByType) {\n const navigation = performance.getEntriesByType('navigation')[0]\n if (navigation.type === 'back_forward' || navigation.type === 2) {\n this._updateItemsStates();\n }\n } else if (performance.navigation) {\n if (performance.navigation.type === performance.navigation.TYPE_BACK_FORWARD) {\n this._updateItemsStates();\n }\n }\n }\n\n onScroll() {\n if (this.debouncedScroll) {\n clearTimeout(this.debouncedScroll);\n }\n\n this.debouncedScroll = setTimeout(() => {\n const nextPage = this.paginationTarget.querySelector(\"a[rel='next']\");\n if (nextPage == null) { return }\n\n const url = nextPage.href;\n const body = document.body;\n const html = document.documentElement;\n const height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n\n if (window.pageYOffset >= height - window.innerHeight - 10) {\n this._loadMore(url)\n }\n }, 200);\n }\n\n onBookmarkedCompany(event) {\n event.preventDefault();\n const propositionId = event.params.propositionId\n Rails.ajax({\n type: \"PUT\",\n url: event.params.url,\n dataType: \"json\",\n success: (response) => {\n document.getElementById(`favorite-button-${propositionId}`).innerHTML = response.favourite_btn;\n },\n error: (xhr, status, error) => {\n switch (error.status) {\n case 404:\n const element = document.getElementById('js-candidate-apply-job-' + propositionId);\n const favButton = document.getElementById('fav-btn-' + propositionId);\n const closeEl = document.getElementById('job-suspended-' + propositionId);\n favButton.classList.add('disabled', 'bg-grey-03', 'border-0');\n favButton.attributes.removeNamedItem('data-action');\n element.classList.remove('btn-primary');\n element.classList.add('disabled', 'bg-grey-03', 'border-0', 'btn-outline-secondary');\n element.attributes.removeNamedItem('data-bs-target');\n closeEl.classList.toggle('d-none');\n break;\n case 500:\n alert('繧オ繝シ繝舌�蜀�Κ縺ァ繧ィ繝ゥ繝シ縺檎匱逕溘@縺セ縺励◆縲よ凾髢薙r縺翫>縺ヲ蜀榊コヲ縺願ゥヲ縺励¥縺�縺輔>縲�');\n break;\n default:\n console.error(`Unexpected error: ${error.status}`);\n }\n }\n });\n }\n\n onCreateApplyJob(event) {\n const url = event.params.url;\n const propositionId = event.params.propositionId;\n const parent = event.target.closest('.modal');\n const message = parent.querySelector('textarea').value;\n const formData = new FormData();\n formData.append('message', message);\n\n Rails.ajax({\n type: \"PUT\",\n url: url,\n data: formData,\n dataType: \"json\",\n success: () => {\n this._toggleModal('js-favorite-company-' + propositionId);\n this._toggleModal('js-apply-success-' + propositionId);\n const element = document.getElementById('js-candidate-apply-job-' + propositionId);\n const favButton = document.getElementById('fav-btn-' + propositionId);\n const applyTag = document.getElementById('apply-tag-' + propositionId);\n const applyTagSpan = document.createElement('span');\n\n favButton.remove();\n element.textContent = '髱「隲�セ晞�シ貂医∩';\n element.classList.remove('btn-primary');\n element.classList.add('disabled', 'bg-grey-03', 'border-0', 'btn-outline-secondary');\n element.attributes.removeNamedItem('data-bs-target');\n applyTagSpan.classList.add('bg-orange', 'rounded-pill', 'px-2', 'py-1', 'color-white-primary', 'size-10', 'lh-10', 'h-18x', 'me-2', 'd-flex', 'align-items-center');\n applyTagSpan.textContent = '蠢懷供貂医∩';\n applyTag.appendChild(applyTagSpan);\n },\n error: (xhr, status, error) => {\n switch (error.status) {\n case 401:\n case 404:\n const errorMessage = JSON.parse(error.responseText).message;\n alert(errorMessage);\n window.location.reload();\n break;\n case 422:\n const errorResponse = JSON.parse(error.response);\n const errorActions = {\n message: () => {\n const parentEl = document.getElementById('js-favorite-company-' + propositionId);\n const inputEl = parentEl.querySelector('textarea');\n inputEl.classList.add('is-invalid');\n },\n id: () => {\n alert(errorResponse.error.id);\n }\n };\n\n Object.keys(errorResponse.error).forEach(key => {\n if (errorActions[key]) {\n errorActions[key]();\n } else {\n console.log(`Unhandled error key: ${key}`);\n }\n });\n break;\n case 500:\n alert('繧オ繝シ繝舌�蜀�Κ縺ァ繧ィ繝ゥ繝シ縺檎匱逕溘@縺セ縺励◆縲よ凾髢薙r縺翫>縺ヲ蜀榊コヲ縺願ゥヲ縺励¥縺�縺輔>縲�');\n break;\n default:\n console.error(`Unexpected error: ${error.status}`);\n }\n }\n });\n }\n\n onCloseModal(event) {\n const id = event.target.closest('.modal').id\n this._toggleModal(id);\n document.querySelectorAll('.modal-backdrop').forEach((element) => {\n element.classList.remove('modal-backdrop', 'fade', 'show')\n });\n document.body.style.overflow = '';\n }\n\n onSaveInterviewModal = () => {\n localStorage.setItem(\"redirect_url\", window.location.pathname);\n localStorage.setItem(\"interview_modal_id\", event.params.propositionId);\n }\n\n // private\n\n _loadMore(url) {\n Rails.ajax({\n type: 'GET',\n url: url,\n dataType: 'json',\n success: (response) => {\n this.entriesTarget.insertAdjacentHTML(\"beforeend\", response.entries);\n this.paginationTarget.innerHTML = response.pagination\n }\n });\n }\n\n _toggleModal = (id) => {\n const modalElement = document.getElementById(`${id}`);\n if (modalElement.classList.contains('show')) {\n modalElement.classList.remove('show');\n document.body.classList.remove('modal-open');\n modalElement.style.display = 'none';\n } else {\n modalElement.classList.add('show');\n document.body.classList.add('modal-open');\n modalElement.style.display = 'block';\n }\n }\n\n _showInterviewModal = (button) => {\n const interviewModal = JSON.parse(localStorage.getItem(\"interview_apply_modal\"));\n if (button && interviewModal) {\n button.click();\n localStorage.removeItem(\"interview_apply_modal\");\n localStorage.removeItem(\"interview_modal_id\");\n }\n }\n\n _updateItemsStates(event) {\n const url = window.location.pathname;\n Rails.ajax({\n type: 'GET',\n url: `${url}?=_${new Date().getTime()}`,\n dataType: 'json',\n success: (response) => {\n this.entriesTarget.innerHTML = response.entries;\n }\n });\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n onShowPassword(event) {\n const togglePassword = event.target;\n const passwordInput = togglePassword.parentNode.querySelector('.js-password');\n const passwordType = passwordInput.type;\n\n togglePassword.classList.toggle('fa-eye-slash');\n togglePassword.classList.toggle('fa-eye');\n passwordInput.type = passwordType === 'password' ? 'text' : 'password';\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['itemChecked']\n\n onChangeCompanyAccountFollow = (event) => {\n const companyAccountFollowId = event.target.value;\n const url = event.params.url\n Rails.ajax({\n url: `${url}?id=${companyAccountFollowId}`,\n type: 'patch'\n });\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['form']\n\n onChangeStatus(event) {\n event.preventDefault();\n const checkbox = event.target;\n Rails.ajax({\n url: this.formTarget.action,\n type: 'PATCH',\n data: new FormData(this.formTarget),\n success: (response) => {\n checkbox.checked = !checkbox.checked;\n checkbox.classList.remove('is-valid');\n }\n });\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['listCompany', 'listBlockedCompany', 'input', 'itemChecked', 'inputNameCompanies']\n static values = {\n urlNotification: String,\n urlBlockCompany: String\n }\n\n connect() {\n document.addEventListener(\"click\", this._handleDocumentClick.bind(this));\n }\n\n disconnect() {\n document.removeEventListener(\"click\", this._handleDocumentClick.bind(this));\n }\n\n onChangeStatus = (event) => {\n const data = `is_like_received=${this.itemCheckedTarget.checked}`\n Rails.ajax({\n url: event.params.url,\n type: 'patch',\n data: data,\n contentType: 'application/json',\n success: (response) => {\n }\n });\n }\n\n onAddBlockCompany = (event) => {\n const parentItem = event.target.parentNode;\n const corporateNumber = parentItem.dataset['corporate_number']\n const companyName = parentItem.dataset['company_name']\n const address = parentItem.dataset['location']\n const form = new FormData();\n form.append('blocked_company', corporateNumber);\n form.append('blocked_company_name', companyName);\n form.append('address', address);\n const blockItem = this.listCompanyTarget.querySelector(`#company-corporate-number-${corporateNumber}`);\n const parentNode = blockItem.parentNode\n const htmlContainer = document.querySelector('.js-company-blocked');\n\n Rails.ajax({\n url: this.urlBlockCompanyValue,\n type: 'post',\n data: form,\n contentType: 'multipart/form-data',\n success: (response) => {\n this._removeItemCompany(parentNode, blockItem);\n const documentHtml = response.documentElement.querySelector('.js-company-blocked').innerHTML;\n htmlContainer.innerHTML = documentHtml;\n }\n });\n }\n\n onFetchCompanies = () => {\n const data = this.inputTarget.value;\n const htmlContainer = document.querySelector('.js-list-company');\n const loadingElement = document.querySelector('.loading-blocked-company')\n htmlContainer.innerHTML = loadingElement.innerHTML;\n loadingElement.classList.toggle('d-none')\n\n this._loadCompanies(data, htmlContainer);\n }\n\n _loadCompanies = (data, htmlContainer) => {\n Rails.ajax({\n url: `${this.urlNotificationValue}?blocked_company_name=${data}`,\n type: 'get',\n success: (response) => {\n this._removeMessageError();\n const documentHtml = response.documentElement.querySelector('.js-list-company').innerHTML;\n htmlContainer.innerHTML = documentHtml;\n const listCompany = document.querySelector('.company-item.list-group-item');\n if (!listCompany) {\n const message =\n `<div class='message_error'>\n <p class=\"text-danger m-0 pt-2\">莨夂、セ縺瑚ヲ九▽縺九j縺セ縺帙s</p>\n </div>`;\n const newDiv = document.createElement('div');\n newDiv.innerHTML = message\n this.listCompanyTarget.appendChild(newDiv);\n }\n },\n error: (xhr, status, error) => {\n this._removeMessageError();\n const errorMessage = `\n <div class='message_error'>\n <p class=\"text-danger m-0 pt-2\">迴セ蝨ィ荳譎ら噪縺ォ繝悶Ο繝�け莨∵・ュ縺ョ讀懃エ「縺悟茜逕ィ縺ァ縺阪∪縺帙s縲�</p>\n <p class=\"text-danger\">縺励�繧峨¥譎る俣縺檎オ碁℃縺励※縺九i蜀榊コヲ縺願ゥヲ縺励¥縺�縺輔>縲�</p>\n </div>\n `;\n const newDiv = document.createElement('div');\n newDiv.innerHTML = errorMessage\n const searchElement = document.querySelector('.js-search-company');\n searchElement.appendChild(newDiv);\n }\n });\n }\n\n onRemoveBlockedCompany = (event) => {\n const companyID = event.target.dataset['companyId'];\n const blockedItem = this.listBlockedCompanyTarget.querySelector(`#company-blocked-id-${companyID}`);\n const parentNode = blockedItem.parentNode\n\n Rails.ajax({\n url: `/candidates/settings/resume_blocked_company?id=${companyID}`,\n type: 'delete',\n success: (response) => {\n this._removeItemCompanyBlocked(parentNode, blockedItem);\n }\n });\n }\n\n _removeItemCompany = (parentNode, blockItem) => {\n parentNode.remove();\n }\n\n _removeItemCompanyBlocked = (parentNode, blockItem) => {\n parentNode.removeChild(blockItem);\n }\n\n _handleDocumentClick = (event) => {\n if (!this.inputNameCompaniesTarget.contains(event.target) && !this.listCompanyTarget.contains(event.target) && !event.target.parentNode.className.includes('company-item')) {\n const listCompany = document.querySelector('.company-item.list-group-item');\n if (listCompany) { listCompany.parentNode.remove(); }\n }\n }\n _removeMessageError = () => {\n const errorr_messsage = document.querySelector('.message_error');\n if (errorr_messsage !== null) errorr_messsage.style.display = 'none';\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [\"form\", \"btnOpenSuccessModal\", \"btnCloseApplyModal\", \"btnOpenConfirmModal\"];\n\n onReportViolation(event) {\n event.preventDefault();\n\n const method = event.params.method;\n const url = event.params.url;\n const form = this.formTarget;\n const formData = new FormData(form);\n Rails.ajax({\n type: method,\n url: url,\n dataType: \"json\",\n data: formData,\n success: (response) => {\n if (response.success) {\n this.btnOpenSuccessModalTarget.click();\n } else {\n this.formTarget.innerHTML = response.body.querySelector(`#${this.formTarget.id}`).innerHTML;\n this.btnCloseApplyModalTarget.click();\n }\n },\n error: (error) => {\n this.btnCloseApplyModalTarget.click();\n alert('繧ィ繝ゥ繝シ縺檎匱逕溘@縺セ縺励◆縲ゅ�繝シ繧ク繧偵Μ繝ュ繝シ繝峨@縺ヲ縺上□縺輔>縲�');\n }\n });\n }\n\n onValidateForm(event) {\n event.preventDefault();\n\n const url = event.params.url;\n const method = event.params.method;\n const form = this.formTarget;\n const formData = new FormData(form);\n Rails.ajax({\n type: method,\n url: url,\n dataType: \"json\",\n data: formData,\n success: (response) => {\n if (response.success) {\n this.btnOpenConfirmModalTarget.click();\n } else {\n this.formTarget.innerHTML = response.body.querySelector(`#${this.formTarget.id}`).innerHTML;\n }\n },\n error: (error) => {\n alert('繧ィ繝ゥ繝シ縺檎匱逕溘@縺セ縺励◆縲ゅ�繝シ繧ク繧偵Μ繝ュ繝シ繝峨@縺ヲ縺上□縺輔>縲�');\n }\n });\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [\"form\", \"submitButton\", \"withdrawalPlatform\"];\n static values = { platform: String };\n\n onChangeAgreement(event) {\n const isChecked = event.target.checked;\n this.submitButtonTarget.disabled = !isChecked;\n if (isChecked) {\n this.submitButtonTarget.classList.remove(\"btn-disabled\")\n } else {\n this.submitButtonTarget.classList.add(\"btn-disabled\")\n }\n }\n\n onChangeWithdrawPlatform(event) {\n const checkboxes = this.element.querySelectorAll(\"input.js-platform[type='checkbox']\");\n const checkedValues = Array.from(checkboxes)\n .filter(checkbox => checkbox.checked)\n .map(checkbox => checkbox.value);\n\n let platformValue;\n if (checkedValues.length === 2) {\n platformValue = 'both';\n } else if (checkedValues.length === 1) {\n platformValue = checkedValues[0];\n } else {\n platformValue = '';\n }\n\n this.withdrawalPlatformTarget.value = platformValue;\n }\n\n onSubmit(event) {\n const isPlatformAgent = JSON.parse(event.target.dataset.isPlatformAgent);\n const isPlatformDirect = JSON.parse(event.target.dataset.isPlatformDirect);\n const isWithdrawBothPlatform = this.withdrawalPlatformTarget.value === 'both';\n event.preventDefault();\n Rails.ajax({\n url: this.formTarget.action,\n type: 'POST',\n data: new FormData(this.formTarget),\n dataType: 'json',\n success: (response) => {\n this.formTarget.innerHTML = response.entries;\n if (response.status === 200) {\n if (isPlatformAgent || isPlatformDirect || isWithdrawBothPlatform) {\n this._toggleModal('withdrawalPlatformModal');\n } else {\n this._toggleModal('changePlatformModal');\n }\n }\n },\n error: (response) => {\n window.location.reload();\n }\n })\n }\n\n _toggleModal(id) {\n const modalElement = document.getElementById(id);\n const backdrop = document.createElement('div');\n backdrop.className = 'modal-backdrop fade show';\n\n if (modalElement.classList.contains('show')) {\n modalElement.classList.remove('show');\n document.body.classList.remove('modal-open');\n modalElement.style.display = 'none';\n document.querySelectorAll('.modal-backdrop.fade.show').forEach(el => el.remove());\n } else {\n modalElement.classList.add('show');\n document.body.classList.add('modal-open');\n modalElement.style.display = 'block';\n document.body.appendChild(backdrop);\n }\n }\n\n onCloseModal(event) {\n this._toggleModal(`${event.target.dataset.modalId}`);\n }\n}\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { m as makeElementsArray, i as classesToTokens, c as createElement, n as nextTick, b as elementOffset } from '../shared/utils.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\n\nfunction Scrollbar(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n if (!el.length) return;\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass));\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));\n }\n disableDraggable();\n }\n on('changeDirection', () => {\n if (!swiper.scrollbar || !swiper.scrollbar.el) return;\n const params = swiper.params.scrollbar;\n let {\n el\n } = swiper.scrollbar;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock changeDirection', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}\n\nexport { Scrollbar as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","import { Controller } from '@hotwired/stimulus'\nimport Swiper from 'swiper'\nimport 'swiper/css'\nimport 'swiper/css/navigation'\nimport { Navigation, Pagination, Scrollbar, Autoplay } from 'swiper/modules';\n\nexport default class extends Controller {\n static targets = ['swiperWrapper', 'navigation', 'pagination']\n static values = {\n breakpoint: Array,\n spacebetween: Array,\n initialSlides: Array,\n waitForData: { type: Boolean, default: false },\n slideWidth: { type: String, default: null },\n autoplay: { type: Boolean, default: false },\n autoplayDelay: { type: Number, default: 2500 },\n autoplayDisableOnInteraction: { type: Boolean, default: false }\n }\n\n connect() {\n if (this.waitForDataValue) {\n this.element.addEventListener('api-loader:success', this.initializeSwiper.bind(this))\n } else {\n this.initializeSwiper()\n }\n }\n\n disconnect() {\n if (this.swiper) {\n this.swiper.destroy()\n }\n if (this.waitForDataValue) {\n this.element.removeEventListener('api-loader:success', this.initializeSwiper.bind(this))\n }\n }\n\n initializeSwiper() {\n setTimeout(() => {\n if (this.swiper) {\n this.swiper.destroy()\n }\n\n this.configure()\n }, 0)\n }\n\n configure() {\n const swiperConfig = {\n modules: [Navigation, Pagination, Scrollbar, Autoplay],\n centeredSlides: screen.width < 1024,\n slidesPerView: \"auto\",\n loop: true,\n keyboard: {\n enabled: true\n },\n pagination: {\n el: \".swiper-pagination-bullets-primary\",\n clickable: true,\n enabled: true,\n },\n\n breakpoints: {\n 390: {\n slidesPerView: this.getOptimalSlidesPerView(0),\n spaceBetween: this.spacebetweenValue[0] || 10,\n initialSlide: this.initialSlidesValue[0]\n },\n\n 640: {\n slidesPerView: this.getOptimalSlidesPerView(1),\n spaceBetween: this.spacebetweenValue[1] || 10,\n initialSlide: this.initialSlidesValue[1]\n },\n\n 1024: {\n slidesPerView: this.getOptimalSlidesPerView(2),\n spaceBetween: this.spacebetweenValue[2] || 10,\n initialSlide: this.initialSlidesValue[2]\n }\n },\n\n on: {\n init: (swiper) => {\n this.updateNavigationVisibility(swiper);\n },\n resize: (swiper) => {\n this.updateNavigationVisibility(swiper);\n }\n }\n }\n\n if (this.autoplayValue) {\n swiperConfig.autoplay = {\n delay: this.autoplayDelayValue,\n disableOnInteraction: this.autoplayDisableOnInteractionValue\n }\n }\n\n this.swiper = new Swiper(this.swiperWrapperTarget.getAttribute('data-klass-component'), swiperConfig);\n }\n\n updateNavigationVisibility(swiper) {\n const totalSlides = swiper.slides.length;\n const slidesPerView = this.getCurrentSlidesPerView();\n const shouldShowNavigation = totalSlides > slidesPerView;\n\n // Handle slide width\n const slides = this.swiperWrapperTarget.querySelectorAll('.swiper-slide');\n if (totalSlides < slidesPerView) {\n slides.forEach(slide => {\n // Reset class width\n slide.classList.remove('w-18d75', 'w-sm-20d75');\n\n // Add class width\n if (this.hasSlideWidthValue && this.slideWidthValue) {\n slide.classList.add(this.slideWidthValue);\n } else {\n slide.classList.add('w-18d75', 'w-sm-20d75'); // Default classes\n }\n });\n }\n\n // Handle show navigation\n this.navigationTargets.forEach(nav => {\n nav.classList.toggle('default-no-pagination', !shouldShowNavigation);\n });\n\n if (this.hasPaginationTarget) {\n this.paginationTarget.classList.toggle('default-no-pagination', !shouldShowNavigation);\n }\n }\n\n getCurrentSlidesPerView() {\n const width = window.innerWidth;\n if (width >= 1024) {\n return this.breakpointValue[2];\n } else if (width >= 640) {\n return this.breakpointValue[1];\n } else {\n return this.breakpointValue[0] === \"auto\" ? 1 : this.breakpointValue[0];\n }\n }\n\n onPrev() {\n if (this.swiper) {\n this.swiper.slidePrev()\n }\n }\n\n onNext() {\n if (this.swiper) {\n this.swiper.slideNext()\n }\n }\n\n getOptimalSlidesPerView(breakpointIndex) {\n const totalSlides = this.swiperWrapperTarget.querySelectorAll('.swiper-slide').length;\n const requestedSlidesPerView = this.breakpointValue[breakpointIndex];\n\n return totalSlides < requestedSlidesPerView ? \"auto\" : requestedSlidesPerView;\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['counter']\n\n connect() {\n this.updateAllCounters()\n }\n\n updateAllCounters() {\n this.counterTargets.forEach(counter => {\n const input = this.element.querySelector(`[data-counter-attribute-param=\"${counter.dataset.counter}\"]`)\n if (input) {\n this.updateCounter(counter, input.value.length, parseInt(input.dataset.counterMaxTextLengthParam))\n }\n })\n }\n\n updateCounter(counter, characters, maxTextLength) {\n counter.textContent = characters\n counter.classList.toggle('text-danger', characters > maxTextLength)\n }\n\n onCountCharacters(event) {\n const { currentTarget, params } = event\n const characters = currentTarget.value.length\n const counter = this.counterTargets.find(target => target.dataset.counter === params.attribute)\n\n if (counter) {\n this.updateCounter(counter, characters, parseInt(params.maxTextLength))\n }\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus';\nimport { V1_GET_JOBS_AGENT, AGENT_SEARCH_PATH } from \"@/constant/routers/path\";\n\nexport default class extends Controller {\n static targets = [\n 'form',\n 'modal',\n 'items',\n 'prefectures',\n 'cities',\n 'prefectureChildren',\n 'itemOccupationChecked',\n 'itemPrefectureChecked',\n 'jobCount'\n ];\n\n connect() {\n this.onSearchCountJob();\n this.setupAccordionListeners();\n }\n\n setupAccordionListeners() {\n document.querySelectorAll('.accordion-button').forEach(button => {\n button.addEventListener('show.bs.collapse', (event) => {\n const parentCheckbox = event.target.closest('.accordion-item').querySelector('input[type=\"checkbox\"]');\n if (parentCheckbox && parentCheckbox.checked) {\n event.preventDefault();\n }\n });\n });\n }\n\n // Modal髢「騾」縺ョ繝。繧ス繝�ラ\n onOpenModal() {\n this.removeModalBackdrop();\n }\n\n onCloseModal() {\n this.removeModalBackdrop();\n document.body.style.overflow = \"\";\n }\n\n onCloseDropdown() {\n document.querySelector('.dropdown-search-condition').classList.remove('show');\n }\n\n // 繝√ぉ繝�け繝懊ャ繧ッ繧ケ髢「騾」縺ョ繝。繧ス繝�ラ\n toggleChildCheckboxes(event) {\n const { parentId } = event.target.dataset;\n const isChecked = event.target.checked;\n \n const childCheckboxes = document.querySelectorAll(`input[type=\"checkbox\"][data-parent-id=\"${parentId}\"]`);\n childCheckboxes.forEach(checkbox => checkbox.checked = isChecked);\n\n // 蟄舌メ繧ァ繝�け繝懊ャ繧ッ繧ケ縺後☆縺ケ縺ヲ螟悶l縺溷�エ蜷医∬ヲェ繝√ぉ繝�け繝懊ャ繧ッ繧ケ繧ょ、悶☆\n if (!isChecked) {\n const allChildrenUnchecked = Array.from(childCheckboxes).every(checkbox => !checkbox.checked);\n if (allChildrenUnchecked) {\n event.target.checked = false;\n }\n }\n }\n\n checkParentCheckbox(event) {\n const { parentId } = event.target.dataset;\n const parentCheckbox = document.querySelector(`input[type=\"checkbox\"][data-parent-id=\"${parentId}\"]`);\n const childCheckboxesArray = Array.from(document.querySelectorAll(`input[type=\"checkbox\"][data-parent-id=\"${parentId}\"]`)).filter((input) => input.value !== parentId);\n \n // 蟄舌メ繧ァ繝�け繝懊ャ繧ッ繧ケ縺後☆縺ケ縺ヲ螟悶l縺溷�エ蜷医∬ヲェ繝√ぉ繝�け繝懊ャ繧ッ繧ケ繧ょ、悶☆\n const allChildrenUnchecked = childCheckboxesArray.every(checkbox => !checkbox.checked);\n if (allChildrenUnchecked) {\n parentCheckbox.checked = false;\n } else {\n parentCheckbox.checked = true;\n }\n }\n\n onDisableCity(event) {\n const cityItems = document.getElementsByClassName(`parent_${event.target.id}`);\n Array.from(cityItems).forEach(item => {\n item.disabled = !event.target.checked;\n });\n }\n\n // 菫晏ュ倬未騾」縺ョ繝。繧ス繝�ラ\n onSaveOccupation(event) {\n const contentHTML = this.generateOccupationContent(event);\n this.itemOccupationCheckedTarget.innerHTML = contentHTML;\n this.onSearchCountJob();\n }\n\n onSavePrefecture(event) {\n const contentHTML = this.generatePrefectureContent(event);\n this.itemPrefectureCheckedTarget.innerHTML = contentHTML;\n this.onSearchCountJob();\n }\n\n onSaveItem(event, item) {\n if (!item.querySelector('input').checked) return '';\n \n const label = item.querySelector('.form-check-label').textContent;\n const id = item.querySelector('input').value;\n return this.createBadgeElement(label, event.params.attribute, id);\n }\n\n // 蜑企勁髢「騾」縺ョ繝。繧ス繝�ラ\n onRemove(event) {\n event.target.parentNode.remove();\n document.getElementById(event.params.checkbox).checked = false;\n this.onSearchCountJob();\n }\n\n onRemovePrefecture() {\n event.target.parentNode.remove();\n const checkbox = document.getElementById(event.params.checkbox);\n checkbox.checked = false;\n \n document.querySelectorAll(`.parent_${event.params.checkbox}:checked`)\n .forEach(item => item.checked = false);\n \n this.onSearchCountJob();\n }\n\n // 讀懃エ「髢「騾」縺ョ繝。繧ス繝�ラ\n onSearchCountJob() {\n const form = new FormData(this.formTarget);\n const formData = new FormData();\n this._getFormDataSearchCondition(form, formData);\n // URLSearchParams繧ェ繝悶ず繧ァ繧ッ繝医r菴懈�\n const params = new URLSearchParams();\n \n // 蜿主�ID縺九i螳滄圀縺ョ驥鷹。搾シ井ク��蜊倅ス搾シ峨∈縺ョ螟画鋤繝槭ャ繝予n const incomeMap = {\n '1': 150,\n '2': 200,\n '3': 250,\n '4': 300,\n '5': 350,\n '6': 400,\n '7': 450,\n '8': 500,\n '9': 550,\n '10': 600,\n '11': 650,\n '12': 700,\n '13': 750,\n '14': 800,\n '15': 850,\n '16': 900,\n '17': 950,\n '18': 1000,\n '19': 1100,\n '20': 1200,\n '21': 1300,\n '22': 1400,\n '23': 1500,\n '24': 1600,\n '25': 1700,\n '26': 1800,\n '27': 1900,\n '28': 2000,\n '29': 2500,\n '30': 3000,\n '31': 3500,\n '32': 4000,\n '33': 4500,\n '34': 5000,\n '35': null\n };\n\n let wageRange = [null, null]\n for (const [key, value] of formData.entries()) {\n if (key === 'wage_min' && value) {\n const amount = incomeMap[value] || value;\n wageRange[0] = amount\n } else if (key === 'wage_max' && value) {\n const amount = incomeMap[value] || value;\n wageRange[1] = amount\n } else if (key === 'job_types[]' && value) {\n params.append('filter[have_hrc_job_types_any][]', value);\n } else if (key === 'prefectures[]' && value) {\n params.append('filter[with_prefecture][]', value);\n } else if (value) {\n params.append(key, value);\n }\n }\n if (wageRange[0] || wageRange[1]) {\n params.append('filter[with_wage_range][]', wageRange[0]);\n params.append('filter[with_wage_range][]', wageRange[1]);\n }\n \n params.append('include[]', 'corporation');\n params.append('include[]', 'prefectures');\n params.append('include[]', 'hrc_skills');\n params.append('include[]', 'hrc_job_types');\n params.append('include[]', 'corporation.corporation_industries');\n \n params.append('sort', '-publication_date_senavi');\n params.append('page[size]', 0); // 繧ォ繧ヲ繝ウ繝亥、繧貞叙繧九□縺代↑縺ョ縺ァ繝壹�繧ク繧オ繧、繧コ繧�0縺ォ縺吶k�医ヱ繝輔か繝シ繝槭Φ繧ケ謾ケ蝟�シ噂n params.append('page[number]', 1);\n \n const queryString = params.toString();\n const url = V1_GET_JOBS_AGENT + \"?\" + queryString;\n \n Rails.ajax({\n type: \"GET\",\n url,\n dataType: \"json\",\n success: (response) => {\n const { data: { meta: { total_records } } } = response;\n this.updateJobCount(this.jobCountTarget, total_records);\n },\n error: (error) => {\n this.updateJobCount(this.jobCountTarget, 0);\n }\n });\n }\n\n onSearchCondition(event) {\n event.preventDefault();\n const form = new FormData(this.formTarget);\n const formData = new FormData();\n this._getFormDataSearchCondition(form, formData);\n \n formData.append('include[]', 'corporation');\n formData.append('include[]', 'prefectures');\n formData.append('include[]', 'hrc_skills');\n formData.append('include[]', 'hrc_job_types');\n formData.append('include[]', 'corporation.corporation_industries');\n \n const queryString = new URLSearchParams(formData).toString();\n const url = AGENT_SEARCH_PATH + \"&\" + queryString;\n window.location.href = url\n }\n\n // 繝ヲ繝シ繝�ぅ繝ェ繝�ぅ繝。繧ス繝�ラ\n removeModalBackdrop() {\n document.querySelectorAll(\".modal-backdrop\").forEach(element => {\n element.classList.remove(\"modal-backdrop\", \"fade\", \"show\");\n });\n }\n\n createBadgeElement(label, attribute, id) {\n return `<span class='badge bg-light border text-dark fw-normal size-12 lh-12'> ${label}\n <button class='btn-close btn-close-primary size-10 ms-2 color-primary' type='button' \n data-action='click->dropdown-search-condition#onRemove' \n data-dropdown-search-condition-checkbox-param='${attribute}_${id}'></button></span>`;\n }\n\n generateOccupationContent(event) {\n let contentHTML = '';\n\n this.itemsTargets.forEach(item => {\n if (item.querySelector('input').checked) {\n contentHTML += this.onSaveItem(event, item);\n }\n });\n\n return contentHTML;\n }\n\n generatePrefectureContent(event) {\n let contentHTML = '';\n \n this.prefecturesTargets.forEach(item => {\n if (item.querySelector('input').checked) {\n const prefectureId = item.querySelector('input').value;\n const prefectureLabel = item.querySelector(`.form-check-label[for='prefecture_id_${prefectureId}']`).textContent;\n let prefectureContent = prefectureLabel;\n\n item.querySelectorAll(`input[name='prefecture_${prefectureId}_city']`).forEach(city => {\n if (city.checked) {\n const cityLabel = item.querySelector(`.form-check-label[for='prefecture_id_${city.value}']`).textContent;\n prefectureContent += `/${cityLabel}`;\n }\n });\n\n contentHTML += this.createBadgeElement(prefectureContent, event.params.attribute, prefectureId);\n }\n });\n\n return contentHTML;\n }\n\n getFormDataForSearch() {\n const form = new FormData(this.formTarget);\n const formData = new FormData();\n \n const occupations = this.getOccupationIds(form);\n const prefectures = this.getPrefectureIds(form);\n const cities = this.getCityIds(form, prefectures);\n const { min_income, max_income } = this.getAnnualIncome(form);\n\n occupations.forEach(occupation => formData.append(\"job_types[]\", occupation));\n prefectures.forEach(prefecture => formData.append(\"prefectures[]\", prefecture));\n cities.forEach(city => formData.append(\"cities[]\", city));\n\n if (min_income) formData.append('min_annual_income', min_income);\n if (max_income) formData.append('max_annual_income', max_income);\n\n return formData;\n }\n\n // 繝輔か繝シ繝�繝��繧ソ蜿門セ励Γ繧ス繝�ラ\n getOccupationIds(form) {\n return form.getAll('occupation_ids');\n }\n\n getPrefectureIds(form) {\n return form.getAll('prefecture_ids');\n }\n\n getCityIds(form, prefectures) {\n return prefectures.flatMap(prefecture => \n form.getAll(`prefecture_${prefecture}_city`)\n );\n }\n\n getAnnualIncome(form) {\n return {\n min_income: form.get('min_income_id'),\n max_income: form.get('max_income_id')\n };\n }\n\n // 繧「繝九Γ繝シ繧キ繝ァ繝ウ髢「騾」縺ョ繝。繧ス繝�ラ\n updateJobCount(element, number) {\n let upto = 0;\n const jump = Math.floor(number / 100) + 1;\n \n const counts = setInterval(() => {\n upto = Math.min(upto + jump, number);\n element.textContent = upto;\n \n if (upto === number) {\n clearInterval(counts);\n }\n }, 20);\n };\n\n _getFormDataSearchCondition(form, formData) {\n const occupations = this.getOccupationIds(form) || [];\n const prefectures = this.getPrefectureIds(form) || [];\n const cities = this.getCityIds(form, prefectures) || [];\n const annualIncome = this.getAnnualIncome(form) || [];\n occupations.forEach(occupation => formData.append(\"job_types[]\", occupation));\n prefectures.forEach(prefecture => formData.append(\"prefectures[]\", prefecture));\n if (annualIncome.min_income != '') {\n formData.append('wage_min', annualIncome.min_income);\n }\n if (annualIncome.max_income != '') {\n formData.append('wage_max', annualIncome.max_income);\n }\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['favoriteBtn', 'favoriteCheckedBtn']\n\n onUpdateJobLike(event) {\n event.preventDefault();\n const jobId = event.params.jobId;\n const propositionId = event.params.propositionId;\n if (!propositionId) {\n this._createJobLike(jobId, event)\n } else {\n this._updateJobLike(propositionId)\n }\n }\n\n _createJobLike(jobId, event) {\n const formData = new FormData();\n formData.append('proposition_form[job_id]', jobId)\n\n Rails.ajax({\n type: \"POST\",\n url: '/v1/propositions',\n dataType: \"json\",\n data: formData,\n success: (response) => {\n this.favoriteBtnTarget.classList.toggle('d-none');\n this.favoriteCheckedBtnTarget.classList.toggle('d-none');\n this.favoriteBtnTarget.dataset.favoritePropositionIdParam = response?.data?.proposition?.id\n },\n error: (response) => {\n if (response.code === 'unauthorized') {\n window.location.href = '/candidate/login'\n }\n }\n });\n }\n\n _updateJobLike(propositionId) {\n Rails.ajax({\n type: \"PUT\",\n url: `/v1/propositions/${propositionId}`,\n dataType: \"json\",\n success: (response) => {\n this.favoriteBtnTarget.classList.toggle('d-none');\n this.favoriteCheckedBtnTarget.classList.toggle('d-none');\n },\n error: (response) => {\n if (response.code === 'unauthorized') {\n window.location.href = '/candidate/login'\n }\n }\n });\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [\"form\", \"buttonApply\"]\n\n connect = () => {\n this._autoShowModal()\n }\n\n onShowJobApplicationModal = (event) => {\n this._toggleModal('js-apply-job-modal')\n }\n\n onSubmitJobApply = (event) => {\n event.preventDefault();\n const jobId = event.currentTarget.dataset.propositionJobIdParam\n const url = this.formTarget.action + '?job_id=' + jobId\n const method = this.formTarget.method\n const formData = new FormData(this.formTarget);\n\n Rails.ajax({\n url: url,\n type: method,\n data: formData,\n success: (response) => {\n if (response.status === 200) {\n this._toggleModal(\"js-apply-job-modal\")\n this._toggleModal(\"js-apply-job-success-modal\")\n } else {\n const createForm = document.getElementById('js-apply-job-modal')\n const newForm = response.body.querySelector(\"#new_propositions_job_applications_create_form\")\n createForm.querySelector(\"#new_propositions_job_applications_create_form\").replaceWith(newForm)\n const accordionButton = document.querySelector('[data-bs-target=\"#apply-message\"]');\n const accordionContent = document.querySelector('#apply-message');\n this._openAccordion(accordionButton, accordionContent);\n }\n },\n error: (xhr, status, error) => {\n switch (error.status) {\n case 404:\n const errorMessage = JSON.parse(error.responseText).message;\n alert(errorMessage);\n window.location.reload();\n break;\n case 500:\n alert('繧オ繝シ繝舌�蜀�Κ縺ァ繧ィ繝ゥ繝シ縺檎匱逕溘@縺セ縺励◆縲よ凾髢薙r縺翫>縺ヲ蜀榊コヲ縺願ゥヲ縺励¥縺�縺輔>縲�');\n break;\n default:\n console.error(`Unexpected error: ${error.status}`);\n }\n }\n });\n }\n\n onCloseModal = (event) => {\n event.preventDefault();\n const modalElementSuccess = document.getElementById('js-apply-job-success-modal');\n modalElementSuccess.classList.remove(\"show\");\n document.body.classList.remove(\"modal-open\");\n modalElementSuccess.style.display = \"none\";\n window.location.reload()\n }\n\n onSaveModalApply = () => {\n localStorage.setItem(\"redirect_url\", window.location.pathname);\n localStorage.setItem(\"form_validation\", true);\n }\n\n onGuestSubmitApplyJob = () => {\n localStorage.setItem(\"redirect_url\", window.location.pathname);\n const applyMessage = document.querySelector('#apply-message textarea');\n if (applyMessage) localStorage.setItem(\"apply_message\", applyMessage.value);\n window.location.href = event.currentTarget.dataset.urlParam;\n }\n\n // private\n\n _autoShowModal = () => {\n if (this.hasButtonApplyTarget) {\n const urlParams = new URLSearchParams(window.location.search);\n const action = urlParams.get('action');\n const localStorageItem = JSON.parse(localStorage.getItem(\"interview_apply_modal\"));\n const isLoggedIn = localStorage.getItem('access_token').length > 0\n\n if (!isLoggedIn) return\n\n if (localStorageItem) {\n this._onShowModalApply(this.buttonApplyTarget, true);\n localStorage.removeItem(\"interview_apply_modal\");\n localStorage.removeItem(\"interview_modal_id\");\n } else if (action === 'interview_apply_modal') {\n this._onShowModalApply(this.buttonApplyTarget, true);\n urlParams.delete('action');\n const params = urlParams.toString();\n const newUrl = params ? `${window.location.pathname}?${params}` : window.location.pathname;\n window.history.replaceState({}, '', newUrl);\n }\n }\n }\n\n _toggleModal = (id) => {\n const modalElement = document.getElementById(`${id}`);\n if (modalElement.classList.contains(\"show\")) {\n modalElement.classList.remove(\"show\");\n document.body.classList.remove(\"modal-open\");\n modalElement.style.display = \"none\";\n } else {\n modalElement.classList.add(\"show\");\n document.body.classList.add(\"modal-open\");\n modalElement.style.display = \"block\";\n }\n }\n\n _onShowModalApply = (button, isShowModal = false) => {\n const applyMessage = document.querySelector('#apply-message textarea');\n if (button && isShowModal) {\n button.click();\n if (localStorage.getItem('apply_message')) {\n const accordionButton = document.querySelector('[data-bs-target=\"#apply-message\"]');\n const accordionContent = document.querySelector('#apply-message');\n this._openAccordion(accordionButton, accordionContent);\n applyMessage.value = localStorage.getItem(\"apply_message\");\n localStorage.removeItem(\"apply_message\");\n }\n }\n }\n\n _openAccordion(accordionButton, accordionContent) {\n accordionContent.classList.add('show');\n accordionButton.classList.remove('collapsed');\n accordionButton.setAttribute('aria-expanded', 'true');\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['notice'];\n\n onCloseModal = () => {\n this.noticeTarget.remove();\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['favourite', 'favouriteBtn']\n static values = { url: String }\n\n connect() {\n document.addEventListener('DOMContentLoaded', this._load_job_like.bind(this));\n }\n\n disconnect() {\n document.removeEventListener('DOMContentLoaded', this._load_job_like.bind(this));\n }\n\n onCreateJobLike(event) {\n event.preventDefault();\n const url = event.params.url;\n const jobId = event.params.jobId;\n const formData = new FormData();\n formData.append('proposition_form[job_id]', jobId)\n\n Rails.ajax({\n type: \"POST\",\n url: url,\n dataType: \"json\",\n data: formData,\n success: (response) => {\n this.favouriteTarget.innerHTML = response.favourite;\n this.favouriteBtnTarget.innerHTML = response.favourite_btn;\n }\n });\n }\n\n onUpdateJobLike(event) {\n event.preventDefault();\n const url = event.params.url;\n\n Rails.ajax({\n type: \"PUT\",\n url: url,\n dataType: \"json\",\n success: (response) => {\n this.favouriteTarget.innerHTML = response.favourite;\n this.favouriteBtnTarget.innerHTML = response.favourite_btn;\n }\n });\n }\n\n _load_job_like() {\n const url = this.urlValue;\n const uniqueUrl = `${url}?_=${new Date().getTime()}`;\n Rails.ajax({\n type: \"GET\",\n url: uniqueUrl,\n dataType: \"json\",\n success: (response) => {\n if (this.hasFavouriteTarget)\n this.favouriteTarget.innerHTML = response.favourite;\n this.favouriteBtnTarget.innerHTML = response.favourite_btn;\n }\n });\n }\n}\n","/*!\n * Quill Editor v1.3.6\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = target[name];\n\t\t\t\tcopy = options[name];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\ttarget[name] = extend(deep, clone, copy);\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\ttarget[name] = copy;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('<div class=\\'ql-editor\\' style=\"white-space: normal;\">' + html + '<p><br></p></div>');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.6\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n var _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n child = new Buffer(parent.length);\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '生', '\\uD83D\\uDC2F' === '星'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\</g, '><'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with <o:p> </o:p>\n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"5 7 3 9 5 11\\\"></polyline> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"13 7 15 9 13 11\\\"></polyline> <line class=ql-stroke x1=10 x2=8 y1=5 y2=13></line> </svg>\";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['<a class=\"ql-preview\" target=\"_blank\" href=\"about:blank\"></a>', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-action\"></a>', '<a class=\"ql-remove\"></a>'].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=13 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=9 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=14 x2=4 y1=14 y2=14></line> <line class=ql-stroke x1=12 x2=6 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=5 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=9 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=3 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=3 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <g class=\\\"ql-fill ql-color-label\\\"> <polygon points=\\\"6 6.868 6 6 5 6 5 7 5.942 7 6 6.868\\\"></polygon> <rect height=1 width=1 x=4 y=4></rect> <polygon points=\\\"6.817 5 6 5 6 6 6.38 6 6.817 5\\\"></polygon> <rect height=1 width=1 x=2 y=6></rect> <rect height=1 width=1 x=3 y=5></rect> <rect height=1 width=1 x=4 y=7></rect> <polygon points=\\\"4 11.439 4 11 3 11 3 12 3.755 12 4 11.439\\\"></polygon> <rect height=1 width=1 x=2 y=12></rect> <rect height=1 width=1 x=2 y=9></rect> <rect height=1 width=1 x=2 y=15></rect> <polygon points=\\\"4.63 10 4 10 4 11 4.192 11 4.63 10\\\"></polygon> <rect height=1 width=1 x=3 y=8></rect> <path d=M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z></path> <path d=M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z></path> <path d=M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z></path> <rect height=1 width=1 x=12 y=2></rect> <rect height=1 width=1 x=11 y=3></rect> <path d=M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z></path> <rect height=1 width=1 x=2 y=3></rect> <rect height=1 width=1 x=6 y=2></rect> <rect height=1 width=1 x=3 y=2></rect> <rect height=1 width=1 x=5 y=3></rect> <rect height=1 width=1 x=9 y=2></rect> <rect height=1 width=1 x=15 y=14></rect> <polygon points=\\\"13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174\\\"></polygon> <rect height=1 width=1 x=13 y=7></rect> <rect height=1 width=1 x=15 y=5></rect> <rect height=1 width=1 x=14 y=6></rect> <rect height=1 width=1 x=15 y=8></rect> <rect height=1 width=1 x=14 y=9></rect> <path d=M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z></path> <rect height=1 width=1 x=14 y=3></rect> <polygon points=\\\"12 6.868 12 6 11.62 6 12 6.868\\\"></polygon> <rect height=1 width=1 x=15 y=2></rect> <rect height=1 width=1 x=12 y=5></rect> <rect height=1 width=1 x=13 y=4></rect> <polygon points=\\\"12.933 9 13 9 13 8 12.495 8 12.933 9\\\"></polygon> <rect height=1 width=1 x=9 y=14></rect> <rect height=1 width=1 x=8 y=15></rect> <path d=M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z></path> <rect height=1 width=1 x=5 y=15></rect> <path d=M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z></path> <rect height=1 width=1 x=11 y=15></rect> <path d=M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z></path> <rect height=1 width=1 x=14 y=15></rect> <rect height=1 width=1 x=15 y=11></rect> </g> <polyline class=ql-stroke points=\\\"5.5 13 9 5 12.5 13\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=11 y2=11></line> </svg>\";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=4 y=5></rect> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=11 y=5></rect> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M7,8c0,4.031-3,5-3,5></path> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M14,8c0,4.031-3,5-3,5></path> </svg>\";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z></path> <path class=ql-stroke d=M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z></path> </svg>\";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=5 x2=13 y1=3 y2=3></line> <line class=ql-stroke x1=6 x2=9.35 y1=12 y2=3></line> <line class=ql-stroke x1=11 x2=15 y1=11 y2=15></line> <line class=ql-stroke x1=15 x2=11 y1=11 y2=15></line> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=7 x=2 y=14></rect> </svg>\";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-color-label ql-stroke ql-transparent\\\" x1=3 x2=15 y1=15 y2=15></line> <polyline class=ql-stroke points=\\\"5.5 11 9 3 12.5 11\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=9 y2=9></line> </svg>\";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"3 11 5 9 3 7 3 11\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=15 x2=11 y1=4 y2=4></line> <path class=ql-fill d=M11,3a3,3,0,0,0,0,6h1V3H11Z></path> <rect class=ql-fill height=11 width=1 x=11 y=4></rect> <rect class=ql-fill height=11 width=1 x=13 y=4></rect> </svg>\";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"15 12 13 10 15 8 15 12\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=9 x2=5 y1=4 y2=4></line> <path class=ql-fill d=M5,3A3,3,0,0,0,5,9H6V3H5Z></path> <rect class=ql-fill height=11 width=1 x=5 y=4></rect> <rect class=ql-fill height=11 width=1 x=7 y=4></rect> </svg>\";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M14,16H4a1,1,0,0,1,0-2H14A1,1,0,0,1,14,16Z /> <path class=ql-fill d=M14,4H4A1,1,0,0,1,4,2H14A1,1,0,0,1,14,4Z /> <rect class=ql-fill x=3 y=6 width=12 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M13,16H5a1,1,0,0,1,0-2h8A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H5A1,1,0,0,1,5,2h8A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=2 y=6 width=14 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15,8H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,8Z /> <path class=ql-fill d=M15,12H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,12Z /> <path class=ql-fill d=M15,16H5a1,1,0,0,1,0-2H15A1,1,0,0,1,15,16Z /> <path class=ql-fill d=M15,4H5A1,1,0,0,1,5,2H15A1,1,0,0,1,15,4Z /> <rect class=ql-fill x=2 y=6 width=8 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M5,8H3A1,1,0,0,1,3,6H5A1,1,0,0,1,5,8Z /> <path class=ql-fill d=M5,12H3a1,1,0,0,1,0-2H5A1,1,0,0,1,5,12Z /> <path class=ql-fill d=M13,16H3a1,1,0,0,1,0-2H13A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H3A1,1,0,0,1,3,2H13A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=8 y=6 width=8 height=6 rx=1 ry=1 transform=\\\"translate(24 18) rotate(-180)\\\"/> </svg>\";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z></path> <rect class=ql-fill height=1.6 rx=0.8 ry=0.8 width=5 x=5.15 y=6.2></rect> <path class=ql-fill d=M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z></path> </svg>\";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Zm6.06787,9.209H14.98975V7.59863a.54085.54085,0,0,0-.605-.60547h-.62744a1.01119,1.01119,0,0,0-.748.29688L11.645,8.56641a.5435.5435,0,0,0-.022.8584l.28613.30762a.53861.53861,0,0,0,.84717.0332l.09912-.08789a1.2137,1.2137,0,0,0,.2417-.35254h.02246s-.01123.30859-.01123.60547V13.209H12.041a.54085.54085,0,0,0-.605.60547v.43945a.54085.54085,0,0,0,.605.60547h4.02686a.54085.54085,0,0,0,.605-.60547v-.43945A.54085.54085,0,0,0,16.06787,13.209Z /> </svg>\";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M16.73975,13.81445v.43945a.54085.54085,0,0,1-.605.60547H11.855a.58392.58392,0,0,1-.64893-.60547V14.0127c0-2.90527,3.39941-3.42187,3.39941-4.55469a.77675.77675,0,0,0-.84717-.78125,1.17684,1.17684,0,0,0-.83594.38477c-.2749.26367-.561.374-.85791.13184l-.4292-.34082c-.30811-.24219-.38525-.51758-.1543-.81445a2.97155,2.97155,0,0,1,2.45361-1.17676,2.45393,2.45393,0,0,1,2.68408,2.40918c0,2.45312-3.1792,2.92676-3.27832,3.93848h2.79443A.54085.54085,0,0,1,16.73975,13.81445ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z /> </svg>\";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=13 y1=4 y2=4></line> <line class=ql-stroke x1=5 x2=11 y1=14 y2=14></line> <line class=ql-stroke x1=8 x2=10 y1=14 y2=4></line> </svg>\";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=10 width=12 x=3 y=4></rect> <circle class=ql-fill cx=6 cy=7 r=1></circle> <polyline class=\\\"ql-even ql-fill\\\" points=\\\"5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=\\\"ql-fill ql-stroke\\\" points=\\\"3 7 3 11 5 9 3 7\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"5 7 5 11 3 9 5 7\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=11 y1=7 y2=11></line> <path class=\\\"ql-even ql-stroke\\\" d=M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z></path> <path class=\\\"ql-even ql-stroke\\\" d=M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z></path> </svg>\";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=7 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=7 x2=15 y1=14 y2=14></line> <line class=\\\"ql-stroke ql-thin\\\" x1=2.5 x2=4.5 y1=5.5 y2=5.5></line> <path class=ql-fill d=M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z></path> <path class=\\\"ql-stroke ql-thin\\\" d=M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156></path> <path class=\\\"ql-stroke ql-thin\\\" d=M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109></path> </svg>\";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=6 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=6 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=6 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=3 y1=4 y2=4></line> <line class=ql-stroke x1=3 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=3 y1=14 y2=14></line> </svg>\";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=9 x2=15 y1=4 y2=4></line> <polyline class=ql-stroke points=\\\"3 4 4 5 6 3\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=14 y2=14></line> <polyline class=ql-stroke points=\\\"3 14 4 15 6 13\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"3 9 4 10 6 8\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z /> <path class=ql-fill d=M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z /> </svg>\";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z /> <path class=ql-fill d=M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z /> </svg>\";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-stroke ql-thin\\\" x1=15.5 x2=2.5 y1=8.5 y2=9.5></line> <path class=ql-fill d=M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z></path> <path class=ql-fill d=M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z></path> </svg>\";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3></path> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=12 x=3 y=15></rect> </svg>\";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=12 width=12 x=3 y=3></rect> <rect class=ql-fill height=12 width=1 x=5 y=3></rect> <rect class=ql-fill height=12 width=1 x=12 y=3></rect> <rect class=ql-fill height=2 width=8 x=5 y=8></rect> <rect class=ql-fill height=1 width=3 x=3 y=5></rect> <rect class=ql-fill height=1 width=3 x=3 y=7></rect> <rect class=ql-fill height=1 width=3 x=3 y=10></rect> <rect class=ql-fill height=1 width=3 x=3 y=12></rect> <rect class=ql-fill height=1 width=3 x=12 y=5></rect> <rect class=ql-fill height=1 width=3 x=12 y=7></rect> <rect class=ql-fill height=1 width=3 x=12 y=10></rect> <rect class=ql-fill height=1 width=3 x=12 y=12></rect> </svg>\";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=ql-stroke points=\\\"7 11 9 13 11 11 7 11\\\"></polygon> <polygon class=ql-stroke points=\\\"7 7 9 5 11 7 7 7\\\"></polygon> </svg>\";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['<span class=\"ql-tooltip-arrow\"></span>', '<div class=\"ql-tooltip-editor\">', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-close\"></a>', '</div>'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus';\nimport Quill from 'quill';\n\nexport default class extends Controller {\n static targets = ['entries', 'htmlContent'];\n\n connect() {\n if (this.hasEntriesTarget) {\n this.quillInit();\n }\n }\n\n quillInit() {\n const quill = new Quill(this.entriesTarget);\n let content = this.entriesTarget.textContent;\n try {\n let parsedContent = JSON.parse(content);\n if (parsedContent && parsedContent.ops) {\n parsedContent.ops = parsedContent.ops.filter(op => !(op.insert && typeof op.insert === 'object' && op.insert.image));\n quill.setContents(parsedContent.ops);\n }\n } catch (e) {\n quill.setText(content);\n }\n const justHtml = quill.root.innerHTML;\n this.htmlContentTarget.innerHTML = justHtml;\n this.truncateContent();\n }\n \n truncateContent() {\n const htmlContent = this.htmlContentTarget;\n let textContent = htmlContent.textContent || htmlContent.innerText || \"\";\n if (htmlContent.dataset.maxTextLength && textContent.length > parseInt(htmlContent.dataset.maxTextLength)) {\n textContent = textContent.substr(0, parseInt(htmlContent.dataset.maxTextLength)) + '...';\n htmlContent.textContent = textContent;\n }\n }\n}\n","// job_history_controller.js\nimport { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"similarJobs\"]\n static values = {\n jobId: String,\n title: String,\n occupation: String,\n income: String,\n place: String,\n industry: String,\n skill: String,\n companyId: String,\n platform: { type: String, default: 'direct' },\n incomeIcon: String,\n placeIcon: String,\n occupationIcon: String,\n industryIcon: String,\n skillIcon: String\n }\n\n connect() {\n this.saveJobHistory()\n this.loadRecentJobs()\n }\n\n saveJobHistory() {\n if (!this.jobIdValue?.trim()) return;\n\n const jobHistory = JSON.parse(localStorage.getItem('recentlyJob') || '[]')\n\n // Check if job already exists\n const existingJobIndex = jobHistory.findIndex(job => job.jobId === this.jobIdValue)\n if (existingJobIndex > -1) {\n jobHistory.splice(existingJobIndex, 1)\n }\n\n // Add new job to front of array\n jobHistory.unshift({\n platform: this.platformValue,\n jobId: this.jobIdValue,\n title: this.titleValue,\n occupation: this.occupationValue,\n income: this.incomeValue,\n place: this.placeValue,\n industry: this.industryValue,\n skill: this.skillValue,\n companyId: this.companyIdValue\n })\n\n // Keep only 5 most recent\n if (jobHistory.length > 6) {\n jobHistory.pop()\n }\n\n localStorage.setItem('recentlyJob', JSON.stringify(jobHistory))\n }\n\n loadRecentJobs() {\n const jobHistory = JSON.parse(localStorage.getItem('recentlyJob') || '[]')\n if (jobHistory.length === 0) {\n this.similarJobsTarget.classList.add('d-none')\n return\n }\n\n // Return if current job is only job in history\n if (jobHistory.length === 1 && jobHistory[0].jobId === this.jobIdValue) {\n this.similarJobsTarget.classList.add('d-none')\n return\n }\n\n const recentJobs = jobHistory\n .filter(job => job.jobId !== this.jobIdValue)\n .slice(0, 5) // Show max 4 other jobs\n\n if (recentJobs.length > 0) {\n this.similarJobsTarget.querySelector('.similar-jobs').innerHTML = this.buildJobsHtml(recentJobs)\n }\n }\n\n buildJobsHtml(jobs) {\n return jobs.map(job => `\n <section class=\"size-12 border-top py-2 px-3\">\n <a href=\"/jobs/${job.jobId}?${job.platform}=true\" class=\"link-info text-black text-decoration-none mb-0\" target=\"_blank\" rel=\"noopener\">\n <h4 class=\"fw-bold size-12 lh-18 text-decoration-none text-break\">${job.title}</h4>\n <div class=\"d-block gap-2\">\n ${this.buildAttributeHtml(job.income, this.incomeIconValue, 'Income icon')}\n ${this.buildAttributeHtml(job.place, this.placeIconValue, 'Place icon')}\n ${this.buildAttributeHtml(job.occupation, this.occupationIconValue, 'jobType icon')}\n ${this.buildAttributeHtml(job.industry, this.industryIconValue, 'Industry icon')}\n ${this.buildAttributeHtml(job.skill, this.skillIconValue, 'Skill icon')}\n </div>\n </a>\n </section>\n `).join('')\n }\n\n buildAttributeHtml(value, icon, alt) {\n if (!value) return ''\n\n return `\n <div class=\"job-attribute d-flex align-items-center\">\n <img src=\"${icon}\" alt=\"${alt}\" class=\"pe-1 py-1\">\n <span class=\"text-truncate\">${value}</span>\n </div>\n `\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus';\nimport { V1_JOBS_PATH, AGENT_SEARCH_PATH } from \"@/constant/routers/path\";\n\nexport default class extends Controller {\n static targets = ['form', 'modal', 'items', 'prefectures', 'cities', 'prefectureChildren',\n 'itemOccupationChecked', 'itemPrefectureChecked', 'jobCount'];\n\n connect() {\n this.onSearchCountJob();\n }\n\n onSaveOccupation(event) {\n let $itemChecked = this.itemOccupationCheckedTarget;\n let contentHTML = '';\n this.itemsTargets.map(item => {\n if (item.querySelector('input').checked) {\n contentHTML += this.onSaveItem(event, item);\n }\n })\n $itemChecked.innerHTML = contentHTML;\n this.onSearchCountJob();\n }\n\n onSavePrefecture(event) {\n let $itemChecked = this.itemPrefectureCheckedTarget;\n let contentHTML = '';\n this.prefecturesTargets.map(item => {\n if (item.querySelector('input').checked) {\n contentHTML += this.onSaveItem(event, item);\n }\n })\n $itemChecked.innerHTML = contentHTML;\n this.onSearchCountJob();\n }\n\n onSaveItem(e, item) {\n let tag = '';\n if (item.querySelector('input').checked) {\n let label = item.querySelector('.form-check-label').textContent;\n let id = item.querySelector('input').value;\n tag = \"<span class='badge bg-light border text-dark fw-normal size-12 lh-12 p-3'> \" + label +\n \"<button class='btn-close btn-close-primary size-10 ms-2 color-primary' type='button' data-action='click->root-modal#onRemove' data-root-modal-checkbox-param='\" + e.params.attribute + \"_\" + id + \"'></button></span>\";\n }\n\n return tag;\n }\n\n onRemove(event) {\n event.target.parentNode.remove();\n document.getElementById(event.params.checkbox).checked = false;\n this.onSearchCountJob();\n }\n\n onSearchCountJob() {\n const form = new FormData(this.formTarget);\n const formData = new FormData();\n this._getFormDataSearchCondition(form, formData);\n const queryString = new URLSearchParams(formData).toString();\n const url = V1_JOBS_PATH + \"?\" + queryString;\n\n Rails.ajax({\n type: \"GET\",\n url: url,\n dataType: \"json\",\n success: (response) => {\n const { data: { pagy: { count } } } = response;\n this.updateJobCount(this.jobCountTarget, count);\n }\n });\n }\n\n onSearchCondition() {\n event.preventDefault();\n const form = new FormData(this.formTarget);\n const formData = new FormData();\n this._getFormDataSearchCondition(form, formData);\n const queryString = new URLSearchParams(formData).toString();\n const url = AGENT_SEARCH_PATH + \"&\" + queryString;\n\n window.location.href = url\n }\n\n updateJobCount = (element, number) => {\n let upto = 0;\n const jump = Math.floor(number / 100) + 1;\n const counts = setInterval(() => {\n upto += jump;\n if (upto > number) {\n upto = number;\n }\n element.textContent = upto;\n if (upto === number) {\n clearInterval(counts);\n }\n }, 20);\n };\n\n getOccupationIds(form) {\n return form.getAll(\"occupation_ids\");\n }\n\n getPrefectureIds(form) {\n return form.getAll(\"prefecture_ids\");\n }\n\n getCityIds(form, prefectures) {\n let cityIds = []\n prefectures.forEach(item => {\n cityIds = cityIds.concat(form.getAll('prefecture_' + item + '_city'))\n })\n return cityIds\n }\n\n getAnnualIncome(form) {\n let minIncome = form.get(\"roots_index_form[annual_min_income_id]\");\n let maxIncome = form.get(\"roots_index_form[annual_max_income_id]\");\n\n return { min_income: minIncome, max_income: maxIncome }\n }\n\n onDisableCity(event) {\n const citiyItems = document.getElementsByClassName(`parent_${event.target.id}`);\n const prefectureChecked = event.target.checked;\n Array.from(citiyItems).forEach(item => {\n if (prefectureChecked) {\n item.disabled = false\n } else {\n item.disabled = true\n }\n })\n }\n\n _getFormDataSearchCondition(form, formData) {\n const occupations = this.getOccupationIds(form) || [];\n const prefectures = this.getPrefectureIds(form) || [];\n const cities = this.getCityIds(form, prefectures) || [];\n const annualIncome = this.getAnnualIncome(form) || [];\n occupations.forEach(occupation => formData.append(\"job_types[]\", occupation));\n prefectures.forEach(prefecture => formData.append(\"prefectures[]\", prefecture));\n cities.forEach(city => formData.append(\"cities[]\", city));\n if (annualIncome.min_income != '') {\n formData.append('min_annual_income', annualIncome.min_income);\n }\n\n if (annualIncome.max_income != '') {\n formData.append('max_annual_income', annualIncome.max_income);\n }\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['form', 'messageAttachmentName', 'inputFile']\n\n onSubmitForm = () => {\n this.formTarget.submit();\n }\n\n showScoutMessage(event) {\n event.preventDefault();\n const target = event.currentTarget;\n const scoutsDetail = target.closest('.scouts-detail');\n const scoutsDetailScoutMessages = scoutsDetail.querySelector('.scouts-detail__scout-messages');\n const scoutsDetailJobPage = scoutsDetail.querySelector('.scouts-detail__job-page');\n const showJobDetailDiv = target.closest('.child_link').nextElementSibling;\n const jobDetailLink = target.closest('.col').querySelector('.job-detail');\n\n scoutsDetailScoutMessages.classList.remove('d-none');\n target.closest('.child_link').classList.add('border-info', 'border-2', 'border-bottom');\n target.classList.remove('color-grey-70');\n target.classList.add('color-blue-primary');\n jobDetailLink.classList.remove('color-blue-primary');\n jobDetailLink.classList.add('color-grey-70');\n scoutsDetailJobPage.classList.add('d-none');\n showJobDetailDiv.classList.remove('border-info', 'border-2', 'border-bottom');\n }\n\n showJobDetail(event) {\n event.preventDefault();\n const target = event.currentTarget;\n const scoutsDetail = target.closest('.scouts-detail');\n const scoutsDetailScoutMessages = scoutsDetail.querySelector('.scouts-detail__scout-messages');\n const scoutsDetailJobPage = scoutsDetail.querySelector('.scouts-detail__job-page');\n const showScoutMessageDiv = target.closest('.child_link').previousElementSibling;\n const applyMessageLink = target.closest('.col').querySelector('.scout-messages');\n\n scoutsDetailJobPage.classList.remove('d-none');\n target.closest('.child_link').classList.add('border-info', 'border-2', 'border-bottom');\n target.classList.remove('color-grey-70');\n target.classList.add('color-blue-primary');\n applyMessageLink.classList.remove('color-blue-primary');\n applyMessageLink.classList.add('color-grey-70');\n scoutsDetailScoutMessages.classList.add('d-none');\n showScoutMessageDiv.classList.remove('border-info', 'border-2', 'border-bottom');\n }\n\n fileOnchange(event) {\n const attachmentFile = event.target.files[0];\n if (attachmentFile) {\n let fileName = attachmentFile.name;\n fileName = fileName.length > 20 ? fileName.slice(0, 17) + '...' + fileName.substring(fileName.lastIndexOf('.')) : fileName;\n this.messageAttachmentNameTarget.innerHTML = fileName;\n this.messageAttachmentNameTarget.nextSibling.classList.remove('d-none');\n } else {\n this.messageAttachmentNameTarget.innerHTML = '';\n }\n }\n\n onResetAttachFile() {\n this.messageAttachmentNameTarget.nextSibling.classList.add('d-none')\n this.messageAttachmentNameTarget.innerHTML = '';\n this.inputFileTarget.value = '';\n const errorElement = this.inputFileTarget.nextSibling;\n if(errorElement) {\n errorElement.remove();\n }\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus';\nimport { V1_GET_JOBS_AGENT, V1_SAVE_CONDITION_JOB_SEARCH, AGENT_SEARCH_PATH } from \"@/constant/routers/path\";\n\n\nexport default class extends Controller {\n static targets = ['form', 'modal', 'items', 'prefectures', 'cities', 'prefectureChildren', 'industries', 'skills',\n 'jobFeatures', 'itemOccupationChecked', 'itemPrefectureChecked', 'itemIndustryChecked',\n 'itemSkillChecked', 'itemJobFeatureChecked', 'jobCount', 'freeWord', 'title'];\n\n connect() {\n if (this.hasFormTarget) {\n this.onSearchCountJob();\n this.titleTarget.value = this._getCurrentDate();\n }\n }\n\n onOpen(event) {\n const btnRegisterFooter = document.getElementById('btnRegisterFooter');\n if (btnRegisterFooter) {\n btnRegisterFooter.style.zIndex = 2;\n }\n const newDiv = document.createElement(\"div\");\n newDiv.classList.add(\"modal-backdrop\", \"fade\", \"show\");\n document.body.appendChild(newDiv)\n document.body.style.overflow = \"hidden\";\n document.body.style.paddingRight = \"0px\";\n this._toggleModal(`searchCondition`)\n document.querySelectorAll('.modal-backdrop').forEach(backdrop => backdrop.remove());\n }\n\n onToggleModal(event) {\n this._toggleModal(event.params.id)\n }\n\n _toggleModal(id) {\n const modalElement = document.getElementById(`${id}`);\n if (modalElement.classList.contains(\"show\")) {\n modalElement.classList.remove(\"show\");\n document.body.classList.remove(\"modal-open\");\n modalElement.style.display = \"none\";\n } else {\n modalElement.classList.add(\"show\");\n document.body.classList.add(\"modal-open\");\n modalElement.style.display = \"block\";\n }\n }\n\n onCloseModal() {\n const btnRegisterFooter = document.getElementById('btnRegisterFooter');\n if (btnRegisterFooter) {\n btnRegisterFooter.style.zIndex = 1030;\n }\n document.querySelectorAll(\".modal-backdrop\").forEach((element) => {\n element.classList.remove(\"modal-backdrop\", \"fade\", \"show\")\n });\n this._toggleModal(`searchCondition`)\n document.body.style.overflow = \"\";\n }\n\n onSaveOccupation(event) {\n let $itemChecked = this.itemOccupationCheckedTarget;\n let contentHTML = '';\n this.itemsTargets.map(item => {\n if (item.querySelector('input').checked) {\n contentHTML += this.onSaveItem(event, item);\n }\n })\n $itemChecked.innerHTML = contentHTML;\n this.onSearchCountJob();\n this._toggleModal(event.params.id);\n }\n\n onSavePrefecture(event) {\n let $itemChecked = this.itemPrefectureCheckedTarget;\n let contentHTML = '';\n this.prefecturesTargets.map(item => {\n if (item.querySelector('input').checked) {\n let prefectureContent = '';\n const prefectureId = item.querySelector('input').value\n prefectureContent += item.querySelector(\".form-check-label[for='prefecture_sp_id_\" + prefectureId + \"']\").textContent\n item.querySelectorAll(\"input[name='prefecture_\" + prefectureId + \"_city']\").forEach(city => {\n const cityId = city.value\n if (city.checked) {\n prefectureContent += '/' + item.querySelector(\".form-check-label[for='prefecture_sp_id_\" + cityId + \"']\").textContent\n }\n })\n contentHTML += \"<span class='badge bg-light border text-dark fw-normal size-12 lh-12'> \" + prefectureContent +\n \"<button class='btn-close btn-close-primary size-10 ms-2 color-primary' type='button' data-action='click->search-condition#onRemovePrefecture' data-search-condition-checkbox-param='\" + event.params.attribute + \"_\" + prefectureId + \"'></button></span>\";\n }\n })\n $itemChecked.innerHTML = contentHTML;\n this.onSearchCountJob();\n this._toggleModal(event.params.id);\n }\n\n onSaveIndustry(event) {\n let $itemChecked = this.itemIndustryCheckedTarget;\n let contentHTML = '';\n this.industriesTargets.map(item => {\n if (item.querySelector('input').checked) {\n contentHTML += this.onSaveItem(event, item);\n }\n })\n $itemChecked.innerHTML = contentHTML;\n this.onSearchCountJob();\n this._toggleModal(event.params.id);\n }\n\n onSaveSkill(event) {\n let $itemChecked = this.itemSkillCheckedTarget;\n let contentHTML = '';\n this.skillsTargets.map(item => {\n if (item.querySelector('input').checked) {\n contentHTML += this.onSaveItem(event, item);\n }\n })\n $itemChecked.innerHTML = contentHTML;\n this.onSearchCountJob();\n this._toggleModal(event.params.id);\n }\n\n onSaveJobFeature(event) {\n let $itemChecked = this.itemJobFeatureCheckedTarget;\n let contentHTML = '';\n this.jobFeaturesTargets.map(item => {\n if (item.querySelector('input').checked) {\n contentHTML += this.onSaveItem(event, item);\n }\n })\n $itemChecked.innerHTML = contentHTML;\n this.onSearchCountJob();\n this._toggleModal(event.params.id);\n }\n\n onSearchFreeWord() {\n event.preventDefault();\n this.onSearchCountJob();\n }\n\n onClearSearchCondition() {\n document.getElementById('form-search-condition').reset();\n this.itemOccupationCheckedTarget.querySelectorAll('span').forEach(e => e.remove());\n this.itemPrefectureCheckedTarget.querySelectorAll('span').forEach(e => e.remove());\n //this.itemIndustryCheckedTarget.querySelectorAll('span').forEach(e => e.remove());\n //this.itemSkillCheckedTarget.querySelectorAll('span').forEach(e => e.remove());\n this.itemJobFeatureCheckedTarget.querySelectorAll('span').forEach(e => e.remove());\n this.onSearchCountJob();\n }\n\n onSearchCountJob() {\n const form = new FormData(this.formTarget);\n const formData = new FormData();\n this._getFormDataSearchCondition(form, formData);\n const params = new URLSearchParams(formData)\n\n // 蜿主�ID縺九i螳滄圀縺ョ驥鷹。搾シ井ク��蜊倅ス搾シ峨∈縺ョ螟画鋤繝槭ャ繝予n const incomeMap = {\n '1': 150,\n '2': 200,\n '3': 250,\n '4': 300,\n '5': 350,\n '6': 400,\n '7': 450,\n '8': 500,\n '9': 550,\n '10': 600,\n '11': 650,\n '12': 700,\n '13': 750,\n '14': 800,\n '15': 850,\n '16': 900,\n '17': 950,\n '18': 1000,\n '19': 1100,\n '20': 1200,\n '21': 1300,\n '22': 1400,\n '23': 1500,\n '24': 1600,\n '25': 1700,\n '26': 1800,\n '27': 1900,\n '28': 2000,\n '29': 2500,\n '30': 3000,\n '31': 3500,\n '32': 4000,\n '33': 4500,\n '34': 5000,\n '35': null\n };\n\n for (const [key, value] of formData.entries()) {\n if (key === 'wage_min' && value) {\n const amount = incomeMap[value] || value;\n params.append('filter[wage_min][gteq]', amount);\n } else if (key === 'wage_max' && value) {\n const amount = incomeMap[value] || value;\n params.append('filter[wage_max][lteq]', amount);\n } else if (key === 'job_types[]' && value) {\n params.append('filter[have_hrc_job_types_any][]', value);\n } else if (key === 'prefectures[]' && value) {\n params.append('filter[with_prefecture][]', value);\n // 繧ッ繧、繝�け繧オ繝シ繝√°繧峨せ繧ュ繝ォ繝サ讌ュ遞ョ繝サ繧ュ繝シ繝ッ繝シ繝峨r謖�ョ壹☆繧九→\n // 諢丞峙縺励↑縺�Μ繝繧、繝ャ繧ッ繝医′逋コ逕溘☆繧九◆繧√√さ繝。繝ウ繝医い繧ヲ繝�\n // https://aim-f.backlog.com/view/MATCH-472#comment-515099358\n //} else if (key === 'keywords' && value) {\n // params.append('keywords', value);\n //} else if (key === 'skills' && value) {\n // params.append('filter[have_hrc_skills_any][]', value);\n //} else if (key === 'industries' && value) {\n // params.append('filter[have_corporation_industries_any][]', value);\n } else if (value) {\n params.append(key, value);\n }\n }\n \n params.append('include[]', 'corporation');\n params.append('include[]', 'prefectures');\n params.append('include[]', 'hrc_job_types');\n //params.append('include[]', 'hrc_skills');\n //params.append('include[]', 'corporation.corporation_industries');\n \n params.append('sort', '-publication_date_senavi');\n params.append('page[size]', 0); // 繧ォ繧ヲ繝ウ繝亥、繧貞叙繧九□縺代↑縺ョ縺ァ繝壹�繧ク繧オ繧、繧コ繧�0縺ォ縺吶k�医ヱ繝輔か繝シ繝槭Φ繧ケ謾ケ蝟�シ噂n params.append('page[number]', 1);\n\n const queryString = params.toString();\n const url = V1_GET_JOBS_AGENT + \"?\" + queryString;\n\n Rails.ajax({\n type: \"GET\",\n url: url,\n dataType: \"json\",\n success: (response) => {\n const { data: { meta: { total_records } } } = response;\n this.updateJobCount(this.jobCountTarget, total_records);\n }\n });\n }\n\n onSearchCondition() {\n event.preventDefault();\n const form = new FormData(this.formTarget);\n const formData = new FormData();\n this._getFormDataSearchCondition(form, formData);\n\n // URLSearchParams繧剃スソ逕ィ縺励※隍�焚縺ョ蜷後§繧ュ繝シ繧呈戟縺、繝代Λ繝。繝シ繧ソ繧貞�逅�\n const searchParams = new URLSearchParams();\n \n // 譌「蟄倥�繝代Λ繝。繝シ繧ソ繧偵さ繝斐�\n for (const [key, value] of formData.entries()) {\n // 繝代Λ繝。繝シ繧ソ蜷阪r螟画鋤\n // 繧ッ繧、繝�け繧オ繝シ繝√°繧峨せ繧ュ繝ォ繝サ讌ュ遞ョ繝サ繧ュ繝シ繝ッ繝シ繝峨r謖�ョ壹☆繧九→\n // 諢丞峙縺励↑縺�Μ繝繧、繝ャ繧ッ繝医′逋コ逕溘☆繧九◆繧√√さ繝。繝ウ繝医い繧ヲ繝�\n // https://aim-f.backlog.com/view/MATCH-472#comment-515099358\n //if (key === 'filter[have_corporation_industries_any][]') {\n // searchParams.append('industries', value);\n //} else if (key === 'filter[have_hrc_skills_any][]') {\n // searchParams.append('skills', value);\n if (key === 'job_types[]') {\n searchParams.append('job_types', value);\n } else if (key === 'prefectures[]') {\n searchParams.append('prefectures', value);\n } else {\n searchParams.append(key, value);\n }\n }\n \n const queryString = searchParams.toString();\n \n let url;\n if (AGENT_SEARCH_PATH.includes('?')) {\n url = AGENT_SEARCH_PATH + '&' + queryString;\n } else {\n url = AGENT_SEARCH_PATH + '?' + queryString;\n }\n window.location.replace(url);\n }\n\n onSaveSearchCondition() {\n const form = new FormData(this.formTarget);\n const formData = new FormData();\n this._getFormDataSearchCondition(form, formData);\n formData.append('title', this.titleTarget.value)\n const url = V1_SAVE_CONDITION_JOB_SEARCH;\n\n Rails.ajax({\n type: \"POST\",\n url: url,\n dataType: \"json\",\n data: formData,\n success: () => {\n document.querySelector('#save-condition-success')?.remove();\n document.getElementById('form-search-condition').insertAdjacentHTML('beforebegin', '<div class=\"alert alert-success alert-dismissible fade show rounded-0 m-0\"' +\n 'id=\"save-condition-success\" role=\"alert\">譖エ譁ー縺梧ュ」蟶ク縺ォ螳御コ�@縺セ縺励◆縲�<button aria-label=\"Close\" class=\"btn-close\" data-bs-dismiss=\"alert\"></button></div>')\n },\n error: (response) => {\n if (response.code == 'unauthorized') {\n window.location.href = '/candidate/login'\n }\n else {\n document.querySelector('#save-condition-fail')?.remove();\n document.getElementById('form-search-condition').insertAdjacentHTML('beforebegin', '<div class=\"alert alert-danger alert-dismissible fade show rounded-0 m-0\"' +\n 'id=\"save-condition-fail\" role=\"alert\">譖エ譁ー縺御クュ譁ュ縺輔l縺セ縺励◆縲�<button aria-label=\"Close\" class=\"btn-close\" data-bs-dismiss=\"alert\"></button></div>')\n }\n }\n });\n this._toggleModal(event.params.id);\n }\n\n getFreeWord() {\n if (this.freeWordTarget) {\n return this.freeWordTarget.value\n }\n }\n\n getOccupationIds(form) {\n return form.getAll('occupation_ids');\n }\n\n getPrefectureIds(form) {\n return form.getAll('prefecture_ids');\n }\n\n getCityIds(form, prefectures) {\n let cityIds = []\n prefectures.forEach(item => {\n cityIds = cityIds.concat(form.getAll('prefecture_' + item + '_city'))\n })\n return cityIds\n }\n\n getIndustryIds(form) {\n return form.getAll('insdustry_ids');\n }\n\n getSkillIds(form) {\n return form.getAll('skill_ids');\n }\n\n getJobFeatureIds(form) {\n return form.getAll('job_feature_ids');\n }\n\n getAnnualIncome(form) {\n let minIncome = form.get('min_income_id');\n let maxIncome = form.get('max_income_id');\n\n return { min_income: minIncome, max_income: maxIncome }\n }\n\n getEmploymentType(form) {\n return form.getAll('employment_type_ids')\n }\n\n onSaveItem(e, item) {\n let tag = '';\n if (item.querySelector('input').checked) {\n let label = item.querySelector('.form-check-label').textContent;\n let id = item.querySelector('input').value;\n tag = \"<span class='badge bg-light border text-dark fw-normal size-12 lh-12'> \" + label +\n \"<button class='btn-close btn-close-primary size-10 ms-2 color-primary' type='button' data-action='click->search-condition#onRemove' data-search-condition-checkbox-param='\" + e.params.attribute + \"_\" + id + \"'></button></span>\";\n }\n\n return tag;\n }\n\n onRemove(event) {\n event.target.parentNode.remove();\n document.getElementById(event.params.checkbox).checked = false;\n this.onSearchCountJob();\n }\n\n onRemovePrefecture() {\n event.target.parentNode.remove();\n document.getElementById(event.params.checkbox).checked = false;\n document.querySelectorAll(`.parent_${event.params.checkbox}:checked`).forEach(item => {\n item.checked = false;\n });\n this.onSearchCountJob();\n }\n\n onDisableCity(event) {\n const citiyItems = document.getElementsByClassName(`parent_${event.target.id}`);\n const prefectureChecked = event.target.checked;\n Array.from(citiyItems).forEach(item => {\n if (prefectureChecked) {\n item.disabled = false\n } else {\n item.disabled = true\n }\n })\n }\n\n updateJobCount = (element, number) => {\n let upto = 0;\n const jump = Math.floor(number / 100) + 1;\n const counts = setInterval(() => {\n upto += jump;\n if (upto > number) {\n upto = number;\n }\n element.textContent = upto;\n if (upto === number) {\n clearInterval(counts);\n }\n }, 20);\n };\n\n _getFormDataSearchCondition(form, formData) {\n const occupations = this.getOccupationIds(form) || [];\n const prefectures = this.getPrefectureIds(form) || [];\n const cities = this.getCityIds(form, prefectures) || [];\n const annualIncome = this.getAnnualIncome(form) || [];\n // 繧ッ繧、繝�け繧オ繝シ繝√°繧峨せ繧ュ繝ォ繝サ讌ュ遞ョ繝サ繧ュ繝シ繝ッ繝シ繝峨r謖�ョ壹☆繧九→\n // 諢丞峙縺励↑縺�Μ繝繧、繝ャ繧ッ繝医′逋コ逕溘☆繧九◆繧√√さ繝。繝ウ繝医い繧ヲ繝�\n // https://aim-f.backlog.com/view/MATCH-472#comment-515099358\n //const freeWords = (this.getFreeWord() || '').trim().split(/[\\s縲]+/) || [];\n //const industries = this.getIndustryIds(form) || [];\n //const skills = this.getSkillIds(form) || [];\n\n occupations.forEach(occupation => formData.append(\"job_types[]\", occupation));\n prefectures.forEach(prefecture => formData.append(\"prefectures[]\", prefecture));\n // 繧ッ繧、繝�け繧オ繝シ繝√°繧峨せ繧ュ繝ォ繝サ讌ュ遞ョ繝サ繧ュ繝シ繝ッ繝シ繝峨r謖�ョ壹☆繧九→\n // 諢丞峙縺励↑縺�Μ繝繧、繝ャ繧ッ繝医′逋コ逕溘☆繧九◆繧∝ソ懈・蟇セ蠢懊→縺励※繧ウ繝。繝ウ繝医い繧ヲ繝�\n // https://aim-f.backlog.com/view/MATCH-472#comment-515099358\n //industries.forEach(industry => formData.append(\"filter[have_corporation_industries_any][]\", industry));\n //skills.forEach(skill => formData.append(\"filter[have_hrc_skills_any][]\", skill));\n //freeWords.forEach(freeWord => formData.append(\"filter[contain_keywords_any][]\", freeWord));\n if (annualIncome.min_income != '') {\n formData.append('wage_min', annualIncome.min_income);\n }\n if (annualIncome.max_income != '') {\n formData.append('wage_max', annualIncome.max_income);\n }\n }\n\n _getCurrentDate() {\n const currentDate = new Date();\n const month = String(currentDate.getMonth() + 1).padStart(2, '0');\n const day = String(currentDate.getDate()).padStart(2, '0')\n const time = String(currentDate.getHours()).padStart(2, '0') + ':' + String(currentDate.getMinutes()).padStart(2, '0') + ':' + String(currentDate.getSeconds()).padStart(2, '0')\n\n return currentDate.getFullYear() + '/' + month + '/' + day + ' ' + time\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus';\nimport Quill from 'quill';\n\nexport default class extends Controller {\n static targets = ['htmlContent'];\n\n connect() {\n this.quillInit();\n }\n\n quillInit() {\n let fontSizeStyle = Quill.import('attributors/style/size');\n fontSizeStyle.whitelist = this.sizeWhiteList;\n Quill.register(fontSizeStyle, true);\n\n const quill = new Quill(this.htmlContentTarget);\n quill.setContents(JSON.parse(this.htmlContentTarget.textContent));\n\n const htmlContent = this.htmlContentTarget;\n const justHtml = quill.root.innerHTML;\n htmlContent.innerHTML = justHtml;\n }\n\n get sizeWhiteList() {\n return [\n '8px',\n '9px',\n '10px',\n '11px',\n '12px',\n '13px',\n '14px',\n '15px',\n '16px',\n '17px',\n '18px',\n '19px',\n '20px',\n '21px',\n '22px',\n '24px',\n '26px',\n '28px',\n '30px',\n '32px',\n ]\n }\n}\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus'\nimport debounce from 'lodash.debounce'\n\nexport default class extends Controller {\n static targets = [\"entries\", \"pagination\", \"likeStory\"];\n\n connect() {\n this.save = debounce(this.save, 700);\n }\n\n onScroll() {\n const screenWidth = window.innerWidth;\n if (screenWidth > 576) { return }\n\n const nextPage = this.paginationTarget.querySelector(\"a[rel='next']\");\n if (nextPage == null) { return }\n\n const url = nextPage.href;\n const body = document.body;\n const html = document.documentElement;\n const height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n\n if (window.pageYOffset >= height - window.innerHeight - 1) {\n this.loadMore(url)\n }\n }\n\n async loadMore(url) {\n Rails.ajax({\n type: \"GET\",\n url: url,\n dataType: \"json\",\n success: (response) => {\n this.entriesTarget.insertAdjacentHTML(\"beforeend\", response.entries);\n this.paginationTarget.innerHTML = response.pagination\n }\n });\n }\n\n onLikeStory(event) {\n const candidateId = event.params.candidateId\n if (!candidateId) {\n return window.location.href = '/candidate/login'\n }\n const image = event.currentTarget.parentNode;\n this._loadLikeStory(image)\n this.save(event);\n }\n\n onLikeStoryDetail(event) {\n this.onLikeStory(event);\n\n const btnStory = document.querySelector('.btn-like-story');\n this._loadLikeStory(btnStory);\n\n btnStory.dataset.storyLikeParam = btnStory.dataset.storyLikeParam === 'false' ? true : false;\n }\n\n onLikeButtonStoryDetail(event) {\n this.onLikeStory(event);\n event.currentTarget.dataset.storyLikeParam = !event.params.like;\n\n const image = document.querySelector('.like-story');\n this._loadLikeStory(image)\n }\n\n save(event) {\n const isLikeStatus = !event.params.like;\n const method = isLikeStatus ? \"DELETE\" : \"PATCH\";\n const url = event.params.url;\n Rails.ajax({\n type: method,\n url: url,\n dataType: \"json\"\n });\n }\n\n _loadLikeStory(image) {\n const amountLike = image.querySelector('.js-count-like');\n const unlikeStory = image.querySelector('.js-unlike-story');\n const likeStory = image.querySelector('.js-like-story');\n\n const isUnlikeStoryDisabled = unlikeStory.classList.contains('disabled-image');\n const increment = isUnlikeStoryDisabled ? -1 : 1;\n\n amountLike.textContent = parseInt(amountLike.textContent) + increment;\n unlikeStory.classList.toggle('disabled-image');\n likeStory.classList.toggle('disabled-image');\n }\n}\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nconst EMAIL_REGEXP = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\nconst INTEGER_REGEXP = /^-?[0-9]\\d*$/;\nconst PASSWORD_REGEXP = /^(?=.*[A-Za-z])(?=.*\\d).{8,}$/;\nconst STRONG_PASSWORD_REGEXP = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$/;\nconst isEmpty = (value) => {\n let newVal = value;\n if (typeof value === \"string\") {\n newVal = value.trim();\n }\n return !newVal;\n};\nconst isEmail = (value) => {\n return EMAIL_REGEXP.test(value);\n};\nconst isLengthMoreThanMax = (value, len) => {\n return value.length > len;\n};\nconst isLengthLessThanMin = (value, len) => {\n return value.length < len;\n};\nconst isNumber = (value) => {\n if (typeof value !== \"string\") {\n return false;\n }\n return !isNaN(+value) && !isNaN(parseFloat(value));\n};\nconst isInteger = (value) => {\n return INTEGER_REGEXP.test(value);\n};\nconst isPassword = (value) => {\n return PASSWORD_REGEXP.test(value);\n};\nconst isStrongPassword = (value) => {\n return STRONG_PASSWORD_REGEXP.test(value);\n};\nconst isNumberMoreThanMax = (value, len) => {\n return value > len;\n};\nconst isNumberLessThanMin = (value, len) => {\n return value < len;\n};\nconst isInvalidOrEmptyString = (value) => {\n return typeof value !== \"string\" || value === \"\";\n};\nvar Rules = /* @__PURE__ */ ((Rules2) => {\n Rules2[\"Required\"] = \"required\";\n Rules2[\"Email\"] = \"email\";\n Rules2[\"MinLength\"] = \"minLength\";\n Rules2[\"MaxLength\"] = \"maxLength\";\n Rules2[\"Password\"] = \"password\";\n Rules2[\"Number\"] = \"number\";\n Rules2[\"Integer\"] = \"integer\";\n Rules2[\"MaxNumber\"] = \"maxNumber\";\n Rules2[\"MinNumber\"] = \"minNumber\";\n Rules2[\"StrongPassword\"] = \"strongPassword\";\n Rules2[\"CustomRegexp\"] = \"customRegexp\";\n Rules2[\"MinFilesCount\"] = \"minFilesCount\";\n Rules2[\"MaxFilesCount\"] = \"maxFilesCount\";\n Rules2[\"Files\"] = \"files\";\n return Rules2;\n})(Rules || {});\nvar GroupRules = /* @__PURE__ */ ((GroupRules2) => {\n GroupRules2[\"Required\"] = \"required\";\n return GroupRules2;\n})(GroupRules || {});\nvar CustomStyleTagIds = /* @__PURE__ */ ((CustomStyleTagIds2) => {\n CustomStyleTagIds2[\"Label\"] = \"label\";\n CustomStyleTagIds2[\"LabelArrow\"] = \"labelArrow\";\n return CustomStyleTagIds2;\n})(CustomStyleTagIds || {});\nconst defaultDictionary = [\n {\n key: Rules.Required,\n dict: {\n en: \"The field is required\"\n }\n },\n {\n key: Rules.Email,\n dict: {\n en: \"Email has invalid format\"\n }\n },\n {\n key: Rules.MaxLength,\n dict: {\n en: \"The field must contain a maximum of :value characters\"\n }\n },\n {\n key: Rules.MinLength,\n dict: {\n en: \"The field must contain a minimum of :value characters\"\n }\n },\n {\n key: Rules.Password,\n dict: {\n en: \"Password must contain minimum eight characters, at least one letter and one number\"\n }\n },\n {\n key: Rules.StrongPassword,\n dict: {\n en: \"Password should contain minimum eight characters, at least one uppercase letter, one lowercase letter, one number and one special character\"\n }\n },\n {\n key: Rules.Number,\n dict: {\n en: \"Value should be a number\"\n }\n },\n {\n key: Rules.MaxNumber,\n dict: {\n en: \"Number should be less or equal than :value\"\n }\n },\n {\n key: Rules.MinNumber,\n dict: {\n en: \"Number should be more or equal than :value\"\n }\n },\n {\n key: Rules.MinFilesCount,\n dict: {\n en: \"Files count should be more or equal than :value\"\n }\n },\n {\n key: Rules.MaxFilesCount,\n dict: {\n en: \"Files count should be less or equal than :value\"\n }\n },\n {\n key: Rules.Files,\n dict: {\n en: \"Uploaded files have one or several invalid properties (extension/size/type etc).\"\n }\n }\n];\nconst DEFAULT_ERROR_FIELD_MESSAGE = \"Value is incorrect\";\nconst isPromise = (val) => typeof val === \"object\" && val !== null && \"then\" in val && typeof val.then === \"function\";\nconst getNodeParents = (el) => {\n let elem = el;\n const els = [];\n while (elem) {\n els.unshift(elem);\n elem = elem.parentNode;\n }\n return els;\n};\nconst getClosestParent = (groups, parents) => {\n const reversedParents = [...parents].reverse();\n for (let i = 0, len = reversedParents.length; i < len; ++i) {\n const parent = reversedParents[i];\n for (const key in groups) {\n const group = groups[key];\n if (group.groupElem === parent) {\n return [key, group];\n }\n }\n }\n return null;\n};\nconst getClassList = (classList) => {\n if (Array.isArray(classList)) {\n return classList.filter((cls) => cls.length > 0);\n }\n if (typeof classList === \"string\" && classList.trim()) {\n return [...classList.split(\" \").filter((cls) => cls.length > 0)];\n }\n return [];\n};\nconst isElement = (element) => {\n return element instanceof Element || element instanceof HTMLDocument;\n};\nconst errorLabelCss = `.just-validate-error-label[data-tooltip=true]{position:fixed;padding:4px 8px;background:#423f3f;color:#fff;white-space:nowrap;z-index:10;border-radius:4px;transform:translateY(-5px)}.just-validate-error-label[data-tooltip=true]:before{content:'';width:0;height:0;border-left:solid 5px transparent;border-right:solid 5px transparent;border-bottom:solid 5px #423f3f;position:absolute;z-index:3;display:block;bottom:-5px;transform:rotate(180deg);left:calc(50% - 5px)}.just-validate-error-label[data-tooltip=true][data-direction=left]{transform:translateX(-5px)}.just-validate-error-label[data-tooltip=true][data-direction=left]:before{right:-7px;bottom:auto;left:auto;top:calc(50% - 2px);transform:rotate(90deg)}.just-validate-error-label[data-tooltip=true][data-direction=right]{transform:translateX(5px)}.just-validate-error-label[data-tooltip=true][data-direction=right]:before{right:auto;bottom:auto;left:-7px;top:calc(50% - 2px);transform:rotate(-90deg)}.just-validate-error-label[data-tooltip=true][data-direction=bottom]{transform:translateY(5px)}.just-validate-error-label[data-tooltip=true][data-direction=bottom]:before{right:auto;bottom:auto;left:calc(50% - 5px);top:-5px;transform:rotate(0)}`;\nconst TOOLTIP_ARROW_HEIGHT = 5;\nconst defaultGlobalConfig = {\n errorFieldStyle: {\n color: \"#b81111\",\n border: \"1px solid #B81111\"\n },\n errorFieldCssClass: \"just-validate-error-field\",\n successFieldCssClass: \"just-validate-success-field\",\n errorLabelStyle: {\n color: \"#b81111\"\n },\n errorLabelCssClass: \"just-validate-error-label\",\n successLabelCssClass: \"just-validate-success-label\",\n focusInvalidField: true,\n lockForm: true,\n testingMode: false,\n validateBeforeSubmitting: false,\n submitFormAutomatically: false\n};\nclass JustValidate {\n constructor(form, globalConfig, dictLocale) {\n __publicField(this, \"form\", null);\n __publicField(this, \"fields\", {});\n __publicField(this, \"groupFields\", {});\n __publicField(this, \"errors\", {});\n __publicField(this, \"isValid\", false);\n __publicField(this, \"isSubmitted\", false);\n __publicField(this, \"globalConfig\", defaultGlobalConfig);\n __publicField(this, \"errorLabels\", {});\n __publicField(this, \"successLabels\", {});\n __publicField(this, \"eventListeners\", []);\n __publicField(this, \"dictLocale\", defaultDictionary);\n __publicField(this, \"currentLocale\", \"en\");\n __publicField(this, \"customStyleTags\", {});\n __publicField(this, \"onSuccessCallback\");\n __publicField(this, \"onFailCallback\");\n __publicField(this, \"onValidateCallback\");\n __publicField(this, \"tooltips\", []);\n __publicField(this, \"lastScrollPosition\");\n __publicField(this, \"isScrollTick\");\n __publicField(this, \"fieldIds\", /* @__PURE__ */ new Map());\n __publicField(this, \"getKeyByFieldSelector\", (field) => {\n return this.fieldIds.get(field);\n });\n __publicField(this, \"getFieldSelectorByKey\", (key) => {\n for (const [fieldSelector, k] of this.fieldIds) {\n if (key === k) {\n return fieldSelector;\n }\n }\n return void 0;\n });\n __publicField(this, \"getCompatibleFields\", () => {\n const fields = {};\n Object.keys(this.fields).forEach((key) => {\n let newKey = key;\n const fieldSelector = this.getFieldSelectorByKey(key);\n if (typeof fieldSelector === \"string\") {\n newKey = fieldSelector;\n }\n fields[newKey] = { ...this.fields[key] };\n });\n return fields;\n });\n __publicField(this, \"setKeyByFieldSelector\", (field) => {\n if (this.fieldIds.has(field)) {\n return this.fieldIds.get(field);\n }\n const key = String(this.fieldIds.size + 1);\n this.fieldIds.set(field, key);\n return key;\n });\n __publicField(this, \"refreshAllTooltips\", () => {\n this.tooltips.forEach((item) => {\n item.refresh();\n });\n });\n __publicField(this, \"handleDocumentScroll\", () => {\n this.lastScrollPosition = window.scrollY;\n if (!this.isScrollTick) {\n window.requestAnimationFrame(() => {\n this.refreshAllTooltips();\n this.isScrollTick = false;\n });\n this.isScrollTick = true;\n }\n });\n __publicField(this, \"formSubmitHandler\", (ev) => {\n ev.preventDefault();\n this.isSubmitted = true;\n this.validateHandler(ev);\n });\n __publicField(this, \"handleFieldChange\", (target) => {\n let foundKey;\n for (const key in this.fields) {\n const field = this.fields[key];\n if (field.elem === target) {\n foundKey = key;\n break;\n }\n }\n if (!foundKey) {\n return;\n }\n this.fields[foundKey].touched = true;\n this.validateField(foundKey, true);\n });\n __publicField(this, \"handleGroupChange\", (target) => {\n let foundKey;\n for (const key in this.groupFields) {\n const group = this.groupFields[key];\n if (group.elems.find((elem) => elem === target)) {\n foundKey = key;\n break;\n }\n }\n if (!foundKey) {\n return;\n }\n this.groupFields[foundKey].touched = true;\n this.validateGroup(foundKey, true);\n });\n __publicField(this, \"handlerChange\", (ev) => {\n if (!ev.target) {\n return;\n }\n this.handleFieldChange(ev.target);\n this.handleGroupChange(ev.target);\n this.renderErrors();\n });\n this.initialize(form, globalConfig, dictLocale);\n }\n initialize(form, globalConfig, dictLocale) {\n this.form = null;\n this.errors = {};\n this.isValid = false;\n this.isSubmitted = false;\n this.globalConfig = defaultGlobalConfig;\n this.errorLabels = {};\n this.successLabels = {};\n this.eventListeners = [];\n this.customStyleTags = {};\n this.tooltips = [];\n this.currentLocale = \"en\";\n if (typeof form === \"string\") {\n const elem = document.querySelector(form);\n if (!elem) {\n throw Error(\n `Form with ${form} selector not found! Please check the form selector`\n );\n }\n this.setForm(elem);\n } else if (form instanceof HTMLFormElement) {\n this.setForm(form);\n } else {\n throw Error(\n `Form selector is not valid. Please specify a string selector or a DOM element.`\n );\n }\n this.globalConfig = { ...defaultGlobalConfig, ...globalConfig };\n if (dictLocale) {\n this.dictLocale = [...dictLocale, ...defaultDictionary];\n }\n if (this.isTooltip()) {\n const styleTag = document.createElement(\"style\");\n styleTag.textContent = errorLabelCss;\n this.customStyleTags[CustomStyleTagIds.Label] = document.head.appendChild(styleTag);\n this.addListener(\"scroll\", document, this.handleDocumentScroll);\n }\n }\n getLocalisedString(rule, ruleValue, customMsg) {\n var _a;\n const search = customMsg != null ? customMsg : rule;\n let localisedStr = (_a = this.dictLocale.find((item) => item.key === search)) == null ? void 0 : _a.dict[this.currentLocale];\n if (!localisedStr) {\n if (customMsg) {\n localisedStr = customMsg;\n }\n }\n if (localisedStr && ruleValue !== void 0) {\n switch (rule) {\n case Rules.MaxLength:\n case Rules.MinLength:\n case Rules.MaxNumber:\n case Rules.MinNumber:\n case Rules.MinFilesCount:\n case Rules.MaxFilesCount:\n localisedStr = localisedStr.replace(\":value\", String(ruleValue));\n }\n }\n return localisedStr || customMsg || DEFAULT_ERROR_FIELD_MESSAGE;\n }\n getFieldErrorMessage(fieldRule, elem) {\n const msg = typeof fieldRule.errorMessage === \"function\" ? fieldRule.errorMessage(this.getElemValue(elem), this.fields) : fieldRule.errorMessage;\n return this.getLocalisedString(fieldRule.rule, fieldRule.value, msg);\n }\n getFieldSuccessMessage(successMessage, elem) {\n const msg = typeof successMessage === \"function\" ? successMessage(this.getElemValue(elem), this.fields) : successMessage;\n return this.getLocalisedString(void 0, void 0, msg);\n }\n getGroupErrorMessage(groupRule) {\n return this.getLocalisedString(\n groupRule.rule,\n void 0,\n groupRule.errorMessage\n );\n }\n getGroupSuccessMessage(groupRule) {\n if (!groupRule.successMessage) {\n return void 0;\n }\n return this.getLocalisedString(\n void 0,\n void 0,\n groupRule.successMessage\n );\n }\n setFieldInvalid(key, fieldRule) {\n this.fields[key].isValid = false;\n this.fields[key].errorMessage = this.getFieldErrorMessage(\n fieldRule,\n this.fields[key].elem\n );\n }\n setFieldValid(key, successMessage) {\n this.fields[key].isValid = true;\n if (successMessage !== void 0) {\n this.fields[key].successMessage = this.getFieldSuccessMessage(\n successMessage,\n this.fields[key].elem\n );\n }\n }\n setGroupInvalid(key, groupRule) {\n this.groupFields[key].isValid = false;\n this.groupFields[key].errorMessage = this.getGroupErrorMessage(groupRule);\n }\n setGroupValid(key, groupRule) {\n this.groupFields[key].isValid = true;\n this.groupFields[key].successMessage = this.getGroupSuccessMessage(groupRule);\n }\n getElemValue(elem) {\n switch (elem.type) {\n case \"checkbox\":\n return elem.checked;\n case \"file\":\n return elem.files;\n default:\n return elem.value;\n }\n }\n validateGroupRule(key, elems, groupRule) {\n switch (groupRule.rule) {\n case GroupRules.Required: {\n if (elems.every((elem) => !elem.checked)) {\n this.setGroupInvalid(key, groupRule);\n } else {\n this.setGroupValid(key, groupRule);\n }\n }\n }\n }\n validateFieldRule(key, elem, fieldRule, afterInputChanged = false) {\n const ruleValue = fieldRule.value;\n const elemValue = this.getElemValue(elem);\n if (fieldRule.plugin) {\n const result = fieldRule.plugin(\n elemValue,\n this.getCompatibleFields()\n );\n if (!result) {\n this.setFieldInvalid(key, fieldRule);\n }\n return;\n }\n switch (fieldRule.rule) {\n case Rules.Required: {\n if (isEmpty(elemValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.Email: {\n if (isInvalidOrEmptyString(elemValue)) {\n break;\n }\n if (!isEmail(elemValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.MaxLength: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof ruleValue !== \"number\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] should be a number. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (isInvalidOrEmptyString(elemValue)) {\n break;\n }\n if (isLengthMoreThanMax(elemValue, ruleValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.MinLength: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof ruleValue !== \"number\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] should be a number. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (isInvalidOrEmptyString(elemValue)) {\n break;\n }\n if (isLengthLessThanMin(elemValue, ruleValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.Password: {\n if (isInvalidOrEmptyString(elemValue)) {\n break;\n }\n if (!isPassword(elemValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.StrongPassword: {\n if (isInvalidOrEmptyString(elemValue)) {\n break;\n }\n if (!isStrongPassword(elemValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.Number: {\n if (isInvalidOrEmptyString(elemValue)) {\n break;\n }\n if (!isNumber(elemValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.Integer: {\n if (isInvalidOrEmptyString(elemValue)) {\n break;\n }\n if (!isInteger(elemValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.MaxNumber: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof ruleValue !== \"number\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field should be a number. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (isInvalidOrEmptyString(elemValue)) {\n break;\n }\n const num = +elemValue;\n if (Number.isNaN(num) || isNumberMoreThanMax(num, ruleValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.MinNumber: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof ruleValue !== \"number\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field should be a number. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (isInvalidOrEmptyString(elemValue)) {\n break;\n }\n const num = +elemValue;\n if (Number.isNaN(num) || isNumberLessThanMin(num, ruleValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.CustomRegexp: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n return;\n }\n let regexp;\n try {\n regexp = new RegExp(ruleValue);\n } catch (e) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] should be a valid regexp. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n const str = String(elemValue);\n if (str !== \"\" && !regexp.test(str)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.MinFilesCount: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof ruleValue !== \"number\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field should be a number. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (Number.isFinite(elemValue == null ? void 0 : elemValue.length) && elemValue.length < ruleValue) {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n break;\n }\n case Rules.MaxFilesCount: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof ruleValue !== \"number\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field should be a number. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (Number.isFinite(elemValue == null ? void 0 : elemValue.length) && elemValue.length > ruleValue) {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n break;\n }\n case Rules.Files: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n return;\n }\n if (typeof ruleValue !== \"object\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field should be an object. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n return;\n }\n const filesConfig = ruleValue.files;\n if (typeof filesConfig !== \"object\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field should be an object with files array. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n return;\n }\n const isFilePropsInvalid = (file, fileConfig) => {\n const minSizeInvalid = Number.isFinite(fileConfig.minSize) && file.size < fileConfig.minSize;\n const maxSizeInvalid = Number.isFinite(fileConfig.maxSize) && file.size > fileConfig.maxSize;\n const nameInvalid = Array.isArray(fileConfig.names) && !fileConfig.names.includes(file.name);\n const extInvalid = Array.isArray(fileConfig.extensions) && !fileConfig.extensions.includes(\n file.name.split(\".\")[file.name.split(\".\").length - 1]\n );\n const typeInvalid = Array.isArray(fileConfig.types) && !fileConfig.types.includes(file.type);\n return minSizeInvalid || maxSizeInvalid || nameInvalid || extInvalid || typeInvalid;\n };\n if (typeof elemValue === \"object\" && elemValue !== null) {\n for (let fileIdx = 0, len = elemValue.length; fileIdx < len; ++fileIdx) {\n const file = elemValue.item(fileIdx);\n if (!file) {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n const filesInvalid = isFilePropsInvalid(file, filesConfig);\n if (filesInvalid) {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n }\n }\n break;\n }\n default: {\n if (typeof fieldRule.validator !== \"function\") {\n console.error(\n `Validator for custom rule for [${key}] field should be a function. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n return;\n }\n const result = fieldRule.validator(\n elemValue,\n this.getCompatibleFields()\n );\n if (typeof result !== \"boolean\" && typeof result !== \"function\") {\n console.error(\n `Validator return value for [${key}] field should be boolean or function. It will be cast to boolean.`\n );\n }\n if (typeof result === \"function\") {\n if (afterInputChanged) {\n this.fields[key].asyncCheckPending = true;\n } else {\n this.fields[key].asyncCheckPending = false;\n const promise = result();\n if (!isPromise(promise)) {\n console.error(\n `Validator function for custom rule for [${key}] field should return a Promise. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n return;\n }\n return promise.then((resp) => {\n if (!resp) {\n this.setFieldInvalid(key, fieldRule);\n }\n }).catch(() => {\n this.setFieldInvalid(key, fieldRule);\n });\n }\n }\n if (!result) {\n this.setFieldInvalid(key, fieldRule);\n }\n }\n }\n }\n isFormValid() {\n let isValid = true;\n for (let i = 0, len = Object.values(this.fields).length; i < len; ++i) {\n const item = Object.values(this.fields)[i];\n if (item.isValid === void 0) {\n isValid = void 0;\n break;\n }\n if (item.isValid === false) {\n isValid = false;\n break;\n }\n }\n for (let i = 0, len = Object.values(this.groupFields).length; i < len; ++i) {\n const item = Object.values(this.groupFields)[i];\n if (item.isValid === void 0) {\n isValid = void 0;\n break;\n }\n if (item.isValid === false) {\n isValid = false;\n break;\n }\n }\n return isValid;\n }\n validateField(key, afterInputChanged = false) {\n var _a;\n const field = this.fields[key];\n field.isValid = true;\n const promises = [];\n [...field.rules].reverse().forEach((rule) => {\n const res = this.validateFieldRule(\n key,\n field.elem,\n rule,\n afterInputChanged\n );\n if (isPromise(res)) {\n promises.push(res);\n }\n });\n if (field.isValid) {\n this.setFieldValid(key, (_a = field.config) == null ? void 0 : _a.successMessage);\n }\n return Promise.allSettled(promises).finally(() => {\n var _a2;\n if (afterInputChanged) {\n (_a2 = this.onValidateCallback) == null ? void 0 : _a2.call(this, {\n isValid: this.isFormValid(),\n isSubmitted: this.isSubmitted,\n fields: this.getCompatibleFields(),\n groups: { ...this.groupFields }\n });\n }\n });\n }\n revalidateField(fieldSelector) {\n if (typeof fieldSelector !== \"string\" && !isElement(fieldSelector)) {\n throw Error(\n `Field selector is not valid. Please specify a string selector or a valid DOM element.`\n );\n }\n const key = this.getKeyByFieldSelector(fieldSelector);\n if (!key || !this.fields[key]) {\n console.error(`Field not found. Check the field selector.`);\n return Promise.reject();\n }\n return new Promise((resolve) => {\n this.validateField(key, true).finally(() => {\n this.clearFieldStyle(key);\n this.clearFieldLabel(key);\n this.renderFieldError(key, true);\n resolve(!!this.fields[key].isValid);\n });\n });\n }\n revalidateGroup(groupSelector) {\n if (typeof groupSelector !== \"string\" && !isElement(groupSelector)) {\n throw Error(\n `Group selector is not valid. Please specify a string selector or a valid DOM element.`\n );\n }\n const key = this.getKeyByFieldSelector(groupSelector);\n if (!key || !this.groupFields[key]) {\n console.error(`Group not found. Check the group selector.`);\n return Promise.reject();\n }\n return new Promise((resolve) => {\n this.validateGroup(key).finally(() => {\n this.clearFieldLabel(key);\n this.renderGroupError(key, true);\n resolve(!!this.groupFields[key].isValid);\n });\n });\n }\n validateGroup(key, afterInputChanged = false) {\n const group = this.groupFields[key];\n const promises = [];\n [...group.rules].reverse().forEach((rule) => {\n const res = this.validateGroupRule(key, group.elems, rule);\n if (isPromise(res)) {\n promises.push(res);\n }\n });\n return Promise.allSettled(promises).finally(() => {\n var _a;\n if (afterInputChanged) {\n (_a = this.onValidateCallback) == null ? void 0 : _a.call(this, {\n isValid: this.isFormValid(),\n isSubmitted: this.isSubmitted,\n fields: this.getCompatibleFields(),\n groups: { ...this.groupFields }\n });\n }\n });\n }\n focusInvalidField() {\n for (const key in this.fields) {\n const field = this.fields[key];\n if (!field.isValid) {\n setTimeout(() => field.elem.focus(), 0);\n break;\n }\n }\n }\n afterSubmitValidation(forceRevalidation = false) {\n this.renderErrors(forceRevalidation);\n if (this.globalConfig.focusInvalidField) {\n this.focusInvalidField();\n }\n }\n validate(forceRevalidation = false) {\n return new Promise((resolve) => {\n const promises = [];\n Object.keys(this.fields).forEach((key) => {\n const promise = this.validateField(key);\n if (isPromise(promise)) {\n promises.push(promise);\n }\n });\n Object.keys(this.groupFields).forEach((key) => {\n const promise = this.validateGroup(key);\n if (isPromise(promise)) {\n promises.push(promise);\n }\n });\n Promise.allSettled(promises).then(() => {\n var _a;\n this.afterSubmitValidation(forceRevalidation);\n (_a = this.onValidateCallback) == null ? void 0 : _a.call(this, {\n isValid: this.isFormValid(),\n isSubmitted: this.isSubmitted,\n fields: this.getCompatibleFields(),\n groups: { ...this.groupFields }\n });\n resolve(!!promises.length);\n });\n });\n }\n revalidate() {\n return new Promise((resolve) => {\n this.validateHandler(void 0, true).finally(() => {\n if (this.globalConfig.focusInvalidField) {\n this.focusInvalidField();\n }\n resolve(this.isValid);\n });\n });\n }\n validateHandler(ev, forceRevalidation = false) {\n if (this.globalConfig.lockForm) {\n this.lockForm();\n }\n return this.validate(forceRevalidation).finally(() => {\n var _a, _b, _c;\n if (this.globalConfig.lockForm) {\n this.unlockForm();\n }\n if (this.isValid) {\n (_a = this.onSuccessCallback) == null ? void 0 : _a.call(this, ev);\n if (this.globalConfig.submitFormAutomatically) {\n (_b = ev == null ? void 0 : ev.currentTarget) == null ? void 0 : _b.submit();\n }\n } else {\n (_c = this.onFailCallback) == null ? void 0 : _c.call(this, this.getCompatibleFields(), this.groupFields);\n }\n });\n }\n setForm(form) {\n this.form = form;\n this.form.setAttribute(\"novalidate\", \"novalidate\");\n this.removeListener(\"submit\", this.form, this.formSubmitHandler);\n this.addListener(\"submit\", this.form, this.formSubmitHandler);\n }\n addListener(type, elem, handler) {\n elem.addEventListener(type, handler);\n this.eventListeners.push({ type, elem, func: handler });\n }\n removeListener(type, elem, handler) {\n elem.removeEventListener(type, handler);\n this.eventListeners = this.eventListeners.filter(\n (item) => item.type !== type || item.elem !== elem\n );\n }\n addField(fieldSelector, rules, config) {\n if (typeof fieldSelector !== \"string\" && !isElement(fieldSelector)) {\n throw Error(\n `Field selector is not valid. Please specify a string selector or a valid DOM element.`\n );\n }\n let elem;\n if (typeof fieldSelector === \"string\") {\n elem = this.form.querySelector(fieldSelector);\n } else {\n elem = fieldSelector;\n }\n if (!elem) {\n throw Error(\n `Field doesn't exist in the DOM! Please check the field selector.`\n );\n }\n if (!Array.isArray(rules) || !rules.length) {\n throw Error(\n `Rules argument should be an array and should contain at least 1 element.`\n );\n }\n rules.forEach((item) => {\n if (!(\"rule\" in item || \"validator\" in item || \"plugin\" in item)) {\n throw Error(\n `Rules argument must contain at least one rule or validator property.`\n );\n }\n if (!item.validator && !item.plugin && (!item.rule || !Object.values(Rules).includes(item.rule))) {\n throw Error(\n `Rule should be one of these types: ${Object.values(Rules).join(\n \", \"\n )}. Provided value: ${item.rule}`\n );\n }\n });\n const key = this.setKeyByFieldSelector(fieldSelector);\n this.fields[key] = {\n elem,\n rules,\n isValid: void 0,\n touched: false,\n config\n };\n this.setListeners(elem);\n if (this.isSubmitted || this.globalConfig.validateBeforeSubmitting) {\n this.validateField(key);\n }\n return this;\n }\n removeField(fieldSelector) {\n if (typeof fieldSelector !== \"string\" && !isElement(fieldSelector)) {\n throw Error(\n `Field selector is not valid. Please specify a string selector or a valid DOM element.`\n );\n }\n const key = this.getKeyByFieldSelector(fieldSelector);\n if (!key || !this.fields[key]) {\n console.error(`Field not found. Check the field selector.`);\n return this;\n }\n const type = this.getListenerType(this.fields[key].elem.type);\n this.removeListener(type, this.fields[key].elem, this.handlerChange);\n this.clearErrors();\n delete this.fields[key];\n return this;\n }\n removeGroup(group) {\n if (typeof group !== \"string\") {\n throw Error(\n `Group selector is not valid. Please specify a string selector.`\n );\n }\n const key = this.getKeyByFieldSelector(group);\n if (!key || !this.groupFields[key]) {\n console.error(`Group not found. Check the group selector.`);\n return this;\n }\n this.groupFields[key].elems.forEach((elem) => {\n const type = this.getListenerType(elem.type);\n this.removeListener(type, elem, this.handlerChange);\n });\n this.clearErrors();\n delete this.groupFields[key];\n return this;\n }\n addRequiredGroup(groupField, errorMessage, config, successMessage) {\n if (typeof groupField !== \"string\" && !isElement(groupField)) {\n throw Error(\n `Group selector is not valid. Please specify a string selector or a valid DOM element.`\n );\n }\n let elem;\n if (typeof groupField === \"string\") {\n elem = this.form.querySelector(groupField);\n } else {\n elem = groupField;\n }\n if (!elem) {\n throw Error(`Group selector not found! Please check the group selector.`);\n }\n const inputs = elem.querySelectorAll(\"input\");\n const childrenInputs = Array.from(inputs).filter((input) => {\n const parent = getClosestParent(this.groupFields, getNodeParents(input));\n if (!parent) {\n return true;\n }\n return parent[1].elems.find((elem2) => elem2 !== input);\n });\n const key = this.setKeyByFieldSelector(groupField);\n this.groupFields[key] = {\n rules: [\n {\n rule: GroupRules.Required,\n errorMessage,\n successMessage\n }\n ],\n groupElem: elem,\n elems: childrenInputs,\n touched: false,\n isValid: void 0,\n config\n };\n inputs.forEach((input) => {\n this.setListeners(input);\n });\n return this;\n }\n getListenerType(type) {\n switch (type) {\n case \"checkbox\":\n case \"select-one\":\n case \"file\":\n case \"radio\": {\n return \"change\";\n }\n default: {\n return \"input\";\n }\n }\n }\n setListeners(elem) {\n const type = this.getListenerType(elem.type);\n this.removeListener(type, elem, this.handlerChange);\n this.addListener(type, elem, this.handlerChange);\n }\n clearFieldLabel(key) {\n var _a, _b;\n (_a = this.errorLabels[key]) == null ? void 0 : _a.remove();\n (_b = this.successLabels[key]) == null ? void 0 : _b.remove();\n }\n clearFieldStyle(key) {\n var _a, _b, _c, _d;\n const field = this.fields[key];\n const errorStyle = ((_a = field.config) == null ? void 0 : _a.errorFieldStyle) || this.globalConfig.errorFieldStyle;\n Object.keys(errorStyle).forEach((key2) => {\n field.elem.style[key2] = \"\";\n });\n const successStyle = ((_b = field.config) == null ? void 0 : _b.successFieldStyle) || this.globalConfig.successFieldStyle || {};\n Object.keys(successStyle).forEach((key2) => {\n field.elem.style[key2] = \"\";\n });\n field.elem.classList.remove(\n ...getClassList(\n ((_c = field.config) == null ? void 0 : _c.errorFieldCssClass) || this.globalConfig.errorFieldCssClass\n ),\n ...getClassList(\n ((_d = field.config) == null ? void 0 : _d.successFieldCssClass) || this.globalConfig.successFieldCssClass\n )\n );\n }\n clearErrors() {\n var _a, _b;\n Object.keys(this.errorLabels).forEach(\n (key) => this.errorLabels[key].remove()\n );\n Object.keys(this.successLabels).forEach(\n (key) => this.successLabels[key].remove()\n );\n for (const key in this.fields) {\n this.clearFieldStyle(key);\n }\n for (const key in this.groupFields) {\n const group = this.groupFields[key];\n const errorStyle = ((_a = group.config) == null ? void 0 : _a.errorFieldStyle) || this.globalConfig.errorFieldStyle;\n Object.keys(errorStyle).forEach((key2) => {\n group.elems.forEach((elem) => {\n var _a2;\n elem.style[key2] = \"\";\n elem.classList.remove(\n ...getClassList(\n ((_a2 = group.config) == null ? void 0 : _a2.errorFieldCssClass) || this.globalConfig.errorFieldCssClass\n )\n );\n });\n });\n const successStyle = ((_b = group.config) == null ? void 0 : _b.successFieldStyle) || this.globalConfig.successFieldStyle || {};\n Object.keys(successStyle).forEach((key2) => {\n group.elems.forEach((elem) => {\n var _a2;\n elem.style[key2] = \"\";\n elem.classList.remove(\n ...getClassList(\n ((_a2 = group.config) == null ? void 0 : _a2.successFieldCssClass) || this.globalConfig.successFieldCssClass\n )\n );\n });\n });\n }\n this.tooltips = [];\n }\n isTooltip() {\n return !!this.globalConfig.tooltip;\n }\n lockForm() {\n const elems = this.form.querySelectorAll(\n \"input, textarea, button, select\"\n );\n for (let i = 0, len = elems.length; i < len; ++i) {\n elems[i].setAttribute(\n \"data-just-validate-fallback-disabled\",\n elems[i].disabled ? \"true\" : \"false\"\n );\n elems[i].setAttribute(\"disabled\", \"disabled\");\n elems[i].style.pointerEvents = \"none\";\n elems[i].style.webkitFilter = \"grayscale(100%)\";\n elems[i].style.filter = \"grayscale(100%)\";\n }\n }\n unlockForm() {\n const elems = this.form.querySelectorAll(\n \"input, textarea, button, select\"\n );\n for (let i = 0, len = elems.length; i < len; ++i) {\n if (elems[i].getAttribute(\"data-just-validate-fallback-disabled\") !== \"true\") {\n elems[i].removeAttribute(\"disabled\");\n }\n elems[i].style.pointerEvents = \"\";\n elems[i].style.webkitFilter = \"\";\n elems[i].style.filter = \"\";\n }\n }\n renderTooltip(elem, errorLabel, position) {\n var _a;\n const { top, left, width, height } = elem.getBoundingClientRect();\n const errorLabelRect = errorLabel.getBoundingClientRect();\n const pos = position || ((_a = this.globalConfig.tooltip) == null ? void 0 : _a.position);\n switch (pos) {\n case \"left\": {\n errorLabel.style.top = `${top + height / 2 - errorLabelRect.height / 2}px`;\n errorLabel.style.left = `${left - errorLabelRect.width - TOOLTIP_ARROW_HEIGHT}px`;\n break;\n }\n case \"top\": {\n errorLabel.style.top = `${top - errorLabelRect.height - TOOLTIP_ARROW_HEIGHT}px`;\n errorLabel.style.left = `${left + width / 2 - errorLabelRect.width / 2}px`;\n break;\n }\n case \"right\": {\n errorLabel.style.top = `${top + height / 2 - errorLabelRect.height / 2}px`;\n errorLabel.style.left = `${left + width + TOOLTIP_ARROW_HEIGHT}px`;\n break;\n }\n case \"bottom\": {\n errorLabel.style.top = `${top + height + TOOLTIP_ARROW_HEIGHT}px`;\n errorLabel.style.left = `${left + width / 2 - errorLabelRect.width / 2}px`;\n break;\n }\n }\n errorLabel.dataset.direction = pos;\n const refresh = () => {\n this.renderTooltip(elem, errorLabel, position);\n };\n return {\n refresh\n };\n }\n createErrorLabelElem(key, errorMessage, config) {\n const errorLabel = document.createElement(\"div\");\n errorLabel.innerHTML = errorMessage;\n const customErrorLabelStyle = this.isTooltip() ? config == null ? void 0 : config.errorLabelStyle : (config == null ? void 0 : config.errorLabelStyle) || this.globalConfig.errorLabelStyle;\n Object.assign(errorLabel.style, customErrorLabelStyle);\n errorLabel.classList.add(\n ...getClassList(\n (config == null ? void 0 : config.errorLabelCssClass) || this.globalConfig.errorLabelCssClass\n ),\n \"just-validate-error-label\"\n );\n if (this.isTooltip()) {\n errorLabel.dataset.tooltip = \"true\";\n }\n if (this.globalConfig.testingMode) {\n errorLabel.dataset.testId = `error-label-${key}`;\n }\n this.errorLabels[key] = errorLabel;\n return errorLabel;\n }\n createSuccessLabelElem(key, successMessage, config) {\n if (successMessage === void 0) {\n return null;\n }\n const successLabel = document.createElement(\"div\");\n successLabel.innerHTML = successMessage;\n const customSuccessLabelStyle = (config == null ? void 0 : config.successLabelStyle) || this.globalConfig.successLabelStyle;\n Object.assign(successLabel.style, customSuccessLabelStyle);\n successLabel.classList.add(\n ...getClassList(\n (config == null ? void 0 : config.successLabelCssClass) || this.globalConfig.successLabelCssClass\n ),\n \"just-validate-success-label\"\n );\n if (this.globalConfig.testingMode) {\n successLabel.dataset.testId = `success-label-${key}`;\n }\n this.successLabels[key] = successLabel;\n return successLabel;\n }\n renderErrorsContainer(label, errorsContainer) {\n const container = errorsContainer || this.globalConfig.errorsContainer;\n if (typeof container === \"string\") {\n const elem = this.form.querySelector(container);\n if (elem) {\n elem.appendChild(label);\n return true;\n } else {\n console.error(\n `Error container with ${container} selector not found. Errors will be rendered as usual`\n );\n }\n }\n if (container instanceof Element) {\n container.appendChild(label);\n return true;\n }\n if (container !== void 0) {\n console.error(\n `Error container not found. It should be a string or existing Element. Errors will be rendered as usual`\n );\n }\n return false;\n }\n renderGroupLabel(elem, label, errorsContainer, isSuccess) {\n if (!isSuccess) {\n const renderedInErrorsContainer = this.renderErrorsContainer(\n label,\n errorsContainer\n );\n if (renderedInErrorsContainer) {\n return;\n }\n }\n elem.appendChild(label);\n }\n renderFieldLabel(elem, label, errorsContainer, isSuccess) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (!isSuccess) {\n const renderedInErrorsContainer = this.renderErrorsContainer(\n label,\n errorsContainer\n );\n if (renderedInErrorsContainer) {\n return;\n }\n }\n if (elem.type === \"checkbox\" || elem.type === \"radio\") {\n const labelElem = document.querySelector(\n `label[for=\"${elem.getAttribute(\"id\")}\"]`\n );\n if (((_b = (_a = elem.parentElement) == null ? void 0 : _a.tagName) == null ? void 0 : _b.toLowerCase()) === \"label\") {\n (_d = (_c = elem.parentElement) == null ? void 0 : _c.parentElement) == null ? void 0 : _d.appendChild(label);\n } else if (labelElem) {\n (_e = labelElem.parentElement) == null ? void 0 : _e.appendChild(label);\n } else {\n (_f = elem.parentElement) == null ? void 0 : _f.appendChild(label);\n }\n } else {\n (_g = elem.parentElement) == null ? void 0 : _g.appendChild(label);\n }\n }\n showLabels(fields, isError) {\n Object.keys(fields).forEach((fieldName, i) => {\n const error = fields[fieldName];\n const key = this.getKeyByFieldSelector(fieldName);\n if (!key || !this.fields[key]) {\n console.error(`Field not found. Check the field selector.`);\n return;\n }\n const field = this.fields[key];\n field.isValid = !isError;\n this.clearFieldStyle(key);\n this.clearFieldLabel(key);\n this.renderFieldError(key, false, error);\n if (i === 0 && this.globalConfig.focusInvalidField) {\n setTimeout(() => field.elem.focus(), 0);\n }\n });\n }\n showErrors(fields) {\n if (typeof fields !== \"object\") {\n throw Error(\n \"[showErrors]: Errors should be an object with key: value format\"\n );\n }\n this.showLabels(fields, true);\n }\n showSuccessLabels(fields) {\n if (typeof fields !== \"object\") {\n throw Error(\n \"[showSuccessLabels]: Labels should be an object with key: value format\"\n );\n }\n this.showLabels(fields, false);\n }\n renderFieldError(key, forced = false, message) {\n var _a, _b, _c, _d, _e, _f;\n const field = this.fields[key];\n if (field.isValid === false) {\n this.isValid = false;\n }\n if (field.isValid === void 0 || !forced && !this.isSubmitted && !field.touched && message === void 0) {\n return;\n }\n if (field.isValid) {\n if (!field.asyncCheckPending) {\n const successLabel = this.createSuccessLabelElem(\n key,\n message !== void 0 ? message : field.successMessage,\n field.config\n );\n if (successLabel) {\n this.renderFieldLabel(\n field.elem,\n successLabel,\n (_a = field.config) == null ? void 0 : _a.errorsContainer,\n true\n );\n }\n field.elem.classList.add(\n ...getClassList(\n ((_b = field.config) == null ? void 0 : _b.successFieldCssClass) || this.globalConfig.successFieldCssClass\n )\n );\n }\n return;\n }\n field.elem.classList.add(\n ...getClassList(\n ((_c = field.config) == null ? void 0 : _c.errorFieldCssClass) || this.globalConfig.errorFieldCssClass\n )\n );\n const errorLabel = this.createErrorLabelElem(\n key,\n message !== void 0 ? message : field.errorMessage,\n field.config\n );\n this.renderFieldLabel(\n field.elem,\n errorLabel,\n (_d = field.config) == null ? void 0 : _d.errorsContainer\n );\n if (this.isTooltip()) {\n this.tooltips.push(\n this.renderTooltip(\n field.elem,\n errorLabel,\n (_f = (_e = field.config) == null ? void 0 : _e.tooltip) == null ? void 0 : _f.position\n )\n );\n }\n }\n renderGroupError(key, force = true) {\n var _a, _b, _c, _d;\n const group = this.groupFields[key];\n if (group.isValid === false) {\n this.isValid = false;\n }\n if (group.isValid === void 0 || !force && !this.isSubmitted && !group.touched) {\n return;\n }\n if (group.isValid) {\n group.elems.forEach((elem) => {\n var _a2, _b2;\n Object.assign(\n elem.style,\n ((_a2 = group.config) == null ? void 0 : _a2.successFieldStyle) || this.globalConfig.successFieldStyle\n );\n elem.classList.add(\n ...getClassList(\n ((_b2 = group.config) == null ? void 0 : _b2.successFieldCssClass) || this.globalConfig.successFieldCssClass\n )\n );\n });\n const successLabel = this.createSuccessLabelElem(\n key,\n group.successMessage,\n group.config\n );\n if (successLabel) {\n this.renderGroupLabel(\n group.groupElem,\n successLabel,\n (_a = group.config) == null ? void 0 : _a.errorsContainer,\n true\n );\n }\n return;\n }\n this.isValid = false;\n group.elems.forEach((elem) => {\n var _a2, _b2;\n Object.assign(\n elem.style,\n ((_a2 = group.config) == null ? void 0 : _a2.errorFieldStyle) || this.globalConfig.errorFieldStyle\n );\n elem.classList.add(\n ...getClassList(\n ((_b2 = group.config) == null ? void 0 : _b2.errorFieldCssClass) || this.globalConfig.errorFieldCssClass\n )\n );\n });\n const errorLabel = this.createErrorLabelElem(\n key,\n group.errorMessage,\n group.config\n );\n this.renderGroupLabel(\n group.groupElem,\n errorLabel,\n (_b = group.config) == null ? void 0 : _b.errorsContainer\n );\n if (this.isTooltip()) {\n this.tooltips.push(\n this.renderTooltip(\n group.groupElem,\n errorLabel,\n (_d = (_c = group.config) == null ? void 0 : _c.tooltip) == null ? void 0 : _d.position\n )\n );\n }\n }\n renderErrors(forceRevalidation = false) {\n if (!this.isSubmitted && !forceRevalidation && !this.globalConfig.validateBeforeSubmitting) {\n return;\n }\n this.clearErrors();\n this.isValid = true;\n for (const key in this.groupFields) {\n this.renderGroupError(key);\n }\n for (const key in this.fields) {\n this.renderFieldError(key);\n }\n }\n destroy() {\n this.eventListeners.forEach((event) => {\n this.removeListener(event.type, event.elem, event.func);\n });\n Object.keys(this.customStyleTags).forEach((key) => {\n this.customStyleTags[key].remove();\n });\n this.clearErrors();\n if (this.globalConfig.lockForm) {\n this.unlockForm();\n }\n }\n refresh() {\n this.destroy();\n if (!this.form) {\n console.error(\"Cannot initialize the library! Form is not defined\");\n } else {\n this.initialize(this.form, this.globalConfig);\n Object.keys(this.fields).forEach((key) => {\n const fieldSelector = this.getFieldSelectorByKey(key);\n if (fieldSelector) {\n this.addField(\n fieldSelector,\n [...this.fields[key].rules],\n this.fields[key].config\n );\n }\n });\n }\n }\n setCurrentLocale(locale) {\n if (typeof locale !== \"string\" && locale !== void 0) {\n console.error(\"Current locale should be a string\");\n return;\n }\n this.currentLocale = locale;\n if (this.isSubmitted) {\n this.validate();\n }\n }\n onSuccess(callback) {\n this.onSuccessCallback = callback;\n return this;\n }\n onFail(callback) {\n this.onFailCallback = callback;\n return this;\n }\n onValidate(callback) {\n this.onValidateCallback = callback;\n return this;\n }\n}\nexport {\n CustomStyleTagIds,\n GroupRules,\n Rules,\n JustValidate as default\n};\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus';\nimport JustValidate from 'just-validate';\n\nexport default class extends Controller {\n static targets = ['form', 'title', 'text', 'file'];\n static values = {\n wait: { type: Number, default: 500 }\n }\n\n connect() {\n this.canSubmit = true;\n const validate = new JustValidate(\n this.formTarget,\n {\n errorFieldCssClass: ['is-invalid'],\n }\n );\n\n validate\n .addField(this.titleTarget, [\n {\n rule: 'required',\n errorMessage: '繧ソ繧、繝医Ν縺ッ蠢��磯��岼縺ァ縺�',\n },\n {\n rule: 'maxLength',\n value: 255,\n errorMessage: '繧ソ繧、繝医Ν縺ッ255譁�ュ嶺サ・蜀�〒蜈・蜉帙@縺ヲ縺上□縺輔>',\n }\n ])\n .addField(this.textTarget, [\n {\n rule: 'required',\n errorMessage: '譛ャ譁��蠢��磯��岼縺ァ縺�',\n },\n {\n rule: 'maxLength',\n value: 1000,\n errorMessage: '譛ャ譁��1000譁�ュ嶺サ・蜀�〒蜈・蜉帙@縺ヲ縺上□縺輔>',\n }\n ])\n .addField(this.fileTarget, [\n {\n rule: 'files',\n value: {\n files: {\n extensions: ['png', 'jpeg', 'jpg', 'pdf', 'xlsx', 'docx']\n },\n },\n errorMessage: '繝輔ぃ繧、繝ォ縺ョ諡。蠑オ蟄舌′豁」縺励¥縺ゅj縺セ縺帙s縲Qng縲)peg縲)pg縲}df縲』lsx縲‥ocx縺ョ縺�★繧後°縺ョ繝輔ぃ繧、繝ォ繧帝∈謚槭@縺ヲ縺上□縺輔>縲�',\n },\n ])\n .onSuccess(( event ) => {\n this.onSubmitForm(event);\n });\n }\n\n onSubmitForm(event) {\n if (this.canSubmit) {\n event.target.submit();\n this.canSubmit = false;\n\n setTimeout(() => {\n this.canSubmit = true;\n }, this.waitValue);\n } else {\n event.preventDefault();\n }\n }\n}\n","// @ts-nocheck\nimport { Controller } from '@hotwired/stimulus';\nimport { object, string } from 'yup';\n\nexport default class extends Controller {\n static targets = ['input', 'errors'];\n static values = {\n title: String,\n maxLength: { type: Number, default: 255 },\n maxLengthString: { type: String, default: '' }\n }\n\n connect() {\n this.initializeSchema();\n }\n\n initializeSchema() {\n const maxLengthMessage = `${this.titleValue}縺ッ${this.maxLengthStringValue || this.maxLengthValue}譁�ュ嶺サ・蜀�〒蜈・蜉帙@縺ヲ縺上□縺輔>`;\n this.inputSchema = object({\n text: string().test(\n 'maxLength',\n maxLengthMessage,\n value => value.length <= this.maxLengthValue\n )\n });\n }\n\n onChange() {\n this.validateInput();\n }\n\n validateInput() {\n try {\n this.clearErrors();\n this.inputSchema.validateSync({ text: this.inputTarget.value }, { abortEarly: false });\n } catch (error) {\n this.displayErrors(error);\n }\n }\n\n clearErrors() {\n this.errorsTarget.innerHTML = '';\n this.inputTarget.classList.remove('is-invalid');\n }\n\n displayErrors(error) {\n const errorMessages = error.inner.map(err => err.message);\n const errorElement = this.createErrorElement(errorMessages);\n this.errorsTarget.appendChild(errorElement);\n }\n\n createErrorElement(messages) {\n const divElement = document.createElement('div');\n divElement.className = 'invalid-feedback size-14 d-block fw-400';\n divElement.textContent = messages.join(', ');\n return divElement;\n }\n}\n","// src/index.ts\nvar CONTROLLER_FILENAME_REGEX = /^(?:.*?(?:controllers|components)\\/|\\.?\\.\\/)?(.+)(?:[/_-]controller\\..+?)$/;\nfunction registerControllers(application, controllerModules) {\n application.load(definitionsFromGlob(controllerModules));\n}\nfunction definitionsFromGlob(controllerModules) {\n return Object.entries(controllerModules).map(definitionFromEntry).filter((value) => value);\n}\nfunction definitionFromEntry([name, controllerModule]) {\n const identifier = identifierForGlobKey(name);\n const controllerConstructor = controllerModule.default;\n if (identifier && typeof controllerConstructor === \"function\")\n return { identifier, controllerConstructor };\n}\nfunction identifierForGlobKey(key) {\n const logicalName = (key.match(CONTROLLER_FILENAME_REGEX) || [])[1];\n if (logicalName)\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n}\nexport {\n CONTROLLER_FILENAME_REGEX,\n definitionsFromGlob,\n identifierForGlobKey,\n registerControllers\n};\n","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n\n(function() {\n var context = this;\n\n (function() {\n (function() {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n\n }).call(this);\n }).call(context);\n\n var Rails = context.Rails;\n\n (function() {\n (function() {\n var nonce;\n\n nonce = null;\n\n Rails.loadCSPNonce = function() {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function() {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n\n }).call(this);\n (function() {\n var expando, m;\n\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function(element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function(element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function(element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n\n Rails.isContentEditable = function(element) {\n var isEditable;\n isEditable = false;\n while (true) {\n if (element.isContentEditable) {\n isEditable = true;\n break;\n }\n element = element.parentElement;\n if (!element) {\n break;\n }\n }\n return isEditable;\n };\n\n Rails.$ = function(selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n\n }).call(this);\n (function() {\n var $, csrfParam, csrfToken;\n\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function() {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function() {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function(xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function() {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if ((token != null) && (param != null)) {\n return $('form input[name=\"' + param + '\"]').forEach(function(input) {\n return input.value = token;\n });\n }\n };\n\n }).call(this);\n (function() {\n var CustomEvent, fire, matches, preventDefault;\n\n matches = Rails.matches;\n\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function() {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n }\n return result;\n };\n }\n\n fire = Rails.fire = function(obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function(e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function(element, selector, eventType, handler) {\n return element.addEventListener(eventType, function(e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n\n }).call(this);\n (function() {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function(options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function() {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if ((options.beforeSend != null) && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n\n createXHR = function(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function() {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n\n processResponse = function(response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n\n Rails.href = function(element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function(url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !(((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host) || (originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host));\n } catch (error) {\n e = error;\n return true;\n }\n };\n\n }).call(this);\n (function() {\n var matches, toArray;\n\n matches = Rails.matches;\n\n toArray = function(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function(element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function(input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function(option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function(param) {\n if (param.name != null) {\n return (encodeURIComponent(param.name)) + \"=\" + (encodeURIComponent(param.value));\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function(form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function(el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n\n }).call(this);\n (function() {\n var allowAction, fire, stopEverything;\n\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function(e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function(message, element) {\n return confirm(message);\n };\n\n allowAction = function(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n\n }).call(this);\n (function() {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isContentEditable, isXhrRedirect, matches, setData, stopEverything;\n\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements, isContentEditable = Rails.isContentEditable;\n\n Rails.handleDisabledElement = function(e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function(e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (isContentEditable(element)) {\n return;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function(e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (isContentEditable(element)) {\n return;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n\n }).call(this);\n (function() {\n var isContentEditable, stopEverything;\n\n stopEverything = Rails.stopEverything;\n\n isContentEditable = Rails.isContentEditable;\n\n Rails.handleMethod = function(e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n if (isContentEditable(this)) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"<input name='_method' value='\" + method + \"' type='hidden' />\";\n if ((csrfParam != null) && (csrfToken != null) && !Rails.isCrossDomain(href)) {\n formContent += \"<input name='\" + csrfParam + \"' value='\" + csrfToken + \"' type='hidden' />\";\n }\n formContent += '<input type=\"submit\" />';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n\n }).call(this);\n (function() {\n var ajax, fire, getData, isContentEditable, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,\n slice = [].slice;\n\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement, isContentEditable = Rails.isContentEditable;\n\n isRemote = function(element) {\n var value;\n value = element.getAttribute('data-remote');\n return (value != null) && value !== 'false';\n };\n\n Rails.handleRemote = function(e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n if (isContentEditable(element)) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: (withCredentials != null) && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function(e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function(e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = (e.button != null) && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n\n }).call(this);\n (function() {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if ((typeof jQuery !== \"undefined\" && jQuery !== null) && (jQuery.ajax != null)) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function(options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function() {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function() {\n $(Rails.formEnableSelector).forEach(function(el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function(el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function(e) {\n return setTimeout((function() {\n return disableElement(e);\n }), 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);\n","var adapters = {\n logger: self.console,\n WebSocket: self.WebSocket\n};\n\nvar logger = {\n log(...messages) {\n if (this.enabled) {\n messages.push(Date.now());\n adapters.logger.log(\"[ActionCable]\", ...messages);\n }\n }\n};\n\nconst now = () => (new Date).getTime();\n\nconst secondsSince = time => (now() - time) / 1e3;\n\nclass ConnectionMonitor {\n constructor(connection) {\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`);\n }\n }\n stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n }\n isRunning() {\n return this.startedAt && !this.stoppedAt;\n }\n recordPing() {\n this.pingedAt = now();\n }\n recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n }\n recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n }\n startPolling() {\n this.stopPolling();\n this.poll();\n }\n stopPolling() {\n clearTimeout(this.pollTimeout);\n }\n poll() {\n this.pollTimeout = setTimeout((() => {\n this.reconnectIfStale();\n this.poll();\n }), this.getPollInterval());\n }\n getPollInterval() {\n const {staleThreshold: staleThreshold, reconnectionBackoffRate: reconnectionBackoffRate} = this.constructor;\n const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10));\n const jitterMax = this.reconnectAttempts === 0 ? 1 : reconnectionBackoffRate;\n const jitter = jitterMax * Math.random();\n return staleThreshold * 1e3 * backoff * (1 + jitter);\n }\n reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`);\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`);\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n }\n get refreshedAt() {\n return this.pingedAt ? this.pingedAt : this.startedAt;\n }\n connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold;\n }\n disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n }\n visibilityDidChange() {\n if (document.visibilityState === \"visible\") {\n setTimeout((() => {\n if (this.connectionIsStale() || !this.connection.isOpen()) {\n logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`);\n this.connection.reopen();\n }\n }), 200);\n }\n }\n}\n\nConnectionMonitor.staleThreshold = 6;\n\nConnectionMonitor.reconnectionBackoffRate = .15;\n\nvar INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\",\n remote: \"remote\"\n },\n default_mount_path: \"/cable\",\n protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n};\n\nconst {message_types: message_types, protocols: protocols} = INTERNAL;\n\nconst supportedProtocols = protocols.slice(0, protocols.length - 1);\n\nconst indexOf = [].indexOf;\n\nclass Connection {\n constructor(consumer) {\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n }\n open() {\n if (this.isActive()) {\n logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`);\n return false;\n } else {\n const socketProtocols = [ ...protocols, ...this.consumer.subprotocols || [] ];\n logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`);\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n }\n close({allowReconnect: allowReconnect} = {\n allowReconnect: true\n }) {\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isOpen()) {\n return this.webSocket.close();\n }\n }\n reopen() {\n logger.log(`Reopening WebSocket, current state is ${this.getState()}`);\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`);\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n }\n getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n }\n isOpen() {\n return this.isState(\"open\");\n }\n isActive() {\n return this.isState(\"open\", \"connecting\");\n }\n triedToReconnect() {\n return this.monitor.reconnectAttempts > 0;\n }\n isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n }\n isState(...states) {\n return indexOf.call(states, this.getState()) >= 0;\n }\n getState() {\n if (this.webSocket) {\n for (let state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n return null;\n }\n installEventHandlers() {\n for (let eventName in this.events) {\n const handler = this.events[eventName].bind(this);\n this.webSocket[`on${eventName}`] = handler;\n }\n }\n uninstallEventHandlers() {\n for (let eventName in this.events) {\n this.webSocket[`on${eventName}`] = function() {};\n }\n }\n}\n\nConnection.reopenDelay = 500;\n\nConnection.prototype.events = {\n message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n const {identifier: identifier, message: message, reason: reason, reconnect: reconnect, type: type} = JSON.parse(event.data);\n switch (type) {\n case message_types.welcome:\n if (this.triedToReconnect()) {\n this.reconnectAttempted = true;\n }\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(`Disconnecting. Reason: ${reason}`);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return this.monitor.recordPing();\n\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier);\n if (this.reconnectAttempted) {\n this.reconnectAttempted = false;\n return this.subscriptions.notify(identifier, \"connected\", {\n reconnected: true\n });\n } else {\n return this.subscriptions.notify(identifier, \"connected\", {\n reconnected: false\n });\n }\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open() {\n logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`);\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close(event) {\n logger.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error() {\n logger.log(\"WebSocket onerror event\");\n }\n};\n\nconst extend = function(object, properties) {\n if (properties != null) {\n for (let key in properties) {\n const value = properties[key];\n object[key] = value;\n }\n }\n return object;\n};\n\nclass Subscription {\n constructor(consumer, params = {}, mixin) {\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n perform(action, data = {}) {\n data.action = action;\n return this.send(data);\n }\n send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n }\n unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n }\n}\n\nclass SubscriptionGuarantor {\n constructor(subscriptions) {\n this.subscriptions = subscriptions;\n this.pendingSubscriptions = [];\n }\n guarantee(subscription) {\n if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`);\n this.pendingSubscriptions.push(subscription);\n } else {\n logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`);\n }\n this.startGuaranteeing();\n }\n forget(subscription) {\n logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`);\n this.pendingSubscriptions = this.pendingSubscriptions.filter((s => s !== subscription));\n }\n startGuaranteeing() {\n this.stopGuaranteeing();\n this.retrySubscribing();\n }\n stopGuaranteeing() {\n clearTimeout(this.retryTimeout);\n }\n retrySubscribing() {\n this.retryTimeout = setTimeout((() => {\n if (this.subscriptions && typeof this.subscriptions.subscribe === \"function\") {\n this.pendingSubscriptions.map((subscription => {\n logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`);\n this.subscriptions.subscribe(subscription);\n }));\n }\n }), 500);\n }\n}\n\nclass Subscriptions {\n constructor(consumer) {\n this.consumer = consumer;\n this.guarantor = new SubscriptionGuarantor(this);\n this.subscriptions = [];\n }\n create(channelName, mixin) {\n const channel = channelName;\n const params = typeof channel === \"object\" ? channel : {\n channel: channel\n };\n const subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n }\n add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.subscribe(subscription);\n return subscription;\n }\n remove(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n }\n reject(identifier) {\n return this.findAll(identifier).map((subscription => {\n this.forget(subscription);\n this.notify(subscription, \"rejected\");\n return subscription;\n }));\n }\n forget(subscription) {\n this.guarantor.forget(subscription);\n this.subscriptions = this.subscriptions.filter((s => s !== subscription));\n return subscription;\n }\n findAll(identifier) {\n return this.subscriptions.filter((s => s.identifier === identifier));\n }\n reload() {\n return this.subscriptions.map((subscription => this.subscribe(subscription)));\n }\n notifyAll(callbackName, ...args) {\n return this.subscriptions.map((subscription => this.notify(subscription, callbackName, ...args)));\n }\n notify(subscription, callbackName, ...args) {\n let subscriptions;\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [ subscription ];\n }\n return subscriptions.map((subscription => typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined));\n }\n subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription);\n }\n }\n confirmSubscription(identifier) {\n logger.log(`Subscription confirmed ${identifier}`);\n this.findAll(identifier).map((subscription => this.guarantor.forget(subscription)));\n }\n sendCommand(subscription, command) {\n const {identifier: identifier} = subscription;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n }\n}\n\nclass Consumer {\n constructor(url) {\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n this.subprotocols = [];\n }\n get url() {\n return createWebSocketURL(this._url);\n }\n send(data) {\n return this.connection.send(data);\n }\n connect() {\n return this.connection.open();\n }\n disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n }\n ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n }\n addSubProtocol(subprotocol) {\n this.subprotocols = [ ...this.subprotocols, subprotocol ];\n }\n}\n\nfunction createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n if (url && !/^wss?:/i.test(url)) {\n const a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n}\n\nfunction createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n return new Consumer(url);\n}\n\nfunction getConfig(name) {\n const element = document.head.querySelector(`meta[name='action-cable-${name}']`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n}\n\nexport { Connection, ConnectionMonitor, Consumer, INTERNAL, Subscription, SubscriptionGuarantor, Subscriptions, adapters, createConsumer, createWebSocketURL, getConfig, logger };\n","import { createConsumer } from \"@rails/actioncable\";\nimport { COMPANY_SOCKET_PATH } from '@/configs';\nimport Rails from \"@rails/ujs\";\n\nconst consumer = createConsumer(COMPANY_SOCKET_PATH)\n\nconsumer.subscriptions.create(\"MessageNotificationsChannel\", {\n received(data) {\n const candidate_id = data.candidate_id;\n Rails.ajax({\n type: \"GET\",\n url: `/message/notifications?candidate_id=${candidate_id}`,\n dataType: \"json\",\n success: (response) => {\n //menu-footer\n if (document.getElementById(\"js-footer-message-notification-apply\") && response) {\n document.getElementById(\"js-footer-message-notification-scout\").innerHTML = response.num_scouted;\n\n if (response?.num_applicants && Number(response.num_applicants) > 0) {\n document.getElementById(\"js-footer-message-notification-apply\").classList.remove(\"d-none\");\n }\n\n if (response?.num_like && Number(response.num_like) > 0) {\n document.getElementById(\"js-footer-message-notification-favorite\").classList.remove(\"d-none\");\n }\n }\n\n //menu-header\n if (document.getElementById(\"js-header-message-notification-apply\") && response) {\n document.getElementById(\"js-header-message-notification-scout\").innerHTML = response.num_scouted;\n\n if (response?.num_applicants && Number(response.num_applicants) > 0) {\n document.getElementById(\"js-header-message-notification-apply\").classList.remove(\"d-none\");\n }\n\n if (response?.num_like && Number(response.num_like) > 0) {\n document.getElementById(\"js-header-message-notification-favorite\").classList.remove(\"d-none\");\n }\n }\n }\n });\n }\n});\n","import { Application } from '@hotwired/stimulus'\nimport { registerControllers } from 'stimulus-vite-helpers'\nimport Rails from \"@rails/ujs\";\nimport \"../channels\";\n\nconst application = Application.start();\nconst controllers = import.meta.globEager('./**/*_controller.js')\nregisterControllers(application, controllers)\nwindow.Rails = Rails;\n"],"names":["EventListener","eventTarget","eventName","eventOptions","binding","event","extendedEvent","extendEvent","left","right","leftIndex","rightIndex","stopImmediatePropagation","Dispatcher","application","eventListener","listeners","map","clearEventListeners","error","message","detail","eventListenerMap","cacheKey","parts","key","defaultActionDescriptorFilters","value","element","descriptorPattern","parseActionDescriptorString","descriptorString","matches","keyFilter","parseEventTarget","parseEventOptions","eventTargetName","options","token","stringifyEventTarget","camelize","_","char","namespaceCamelize","capitalize","dasherize","tokenize","isSomething","object","hasProperty","property","allModifiers","Action","index","descriptor","schema","getDefaultEventNameForElement","eventFilter","filters","standardFilter","params","pattern","name","match","typecast","meta","ctrl","alt","shift","modifier","defaultEventNames","e","tagName","Binding","context","action","actionEvent","method","actionDescriptorFilters","controller","passes","filter","target","currentTarget","identifier","ElementObserver","delegate","mutations","callback","mutation","attributeName","nodes","node","tree","processor","AttributeObserver","add","fetch","del","prune","values","Multimap","set","size","_key","_values","SelectorObserver","selector","details","selectors","_attributeName","matchedBefore","StringMapObserver","oldValue","attribute","TokenListObserver","unmatchedTokens","matchedTokens","tokens","previousTokens","currentTokens","firstDifferingIndex","zip","previousToken","currentToken","tokensAreEqual","tokenString","parseTokenString","content","length","ValueListObserver","parseResult","valuesByToken","BindingObserver","ValueObserver","receiver","defaultValue","writer","rawValue","rawOldValue","changedMethodName","changedMethod","valueDescriptorMap","descriptors","hasMethodName","TargetObserver","_a","readInheritableStaticArrayValues","constructor","propertyName","ancestors","getAncestorsForConstructor","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","getOwnStaticObjectPairs","definition","OutletObserver","outletName","observer","_selector","outlet","hasOutlet","hasOutletController","_element","selectorObserver","attributeObserver","dependencies","module","identifiers","Context","scope","functionName","methodName","args","bless","shadow","getBlessedProperties","properties","shadowConstructor","extend","shadowProperties","getShadowProperties","blessedProperties","blessing","prototype","getOwnKeys","getShadowedDescriptor","shadowingDescriptor","extendWithReflect","extended","testReflectExtension","b","blessDefinition","Module","ClassMap","DataMap","Guide","logger","warnedKeys","attributeValueContainsToken","TargetSet","targetName","targetNames","targets","targetDescriptor","revisedAttributeName","OutletSet","controllerElement","outletNames","outlets","controllerAttribute","Scope","ScopeObserver","scopesByIdentifier","referenceCount","Router","contexts","afterLoad","defaultSchema","objectFromEntries","c","n","array","memo","k","v","Application","domReady","controllerConstructor","head","rest","resolve","ClassPropertiesBlessing","classDefinition","propertiesForClassDefinition","classes","OutletPropertiesBlessing","outletDefinition","propertiesForOutletDefinition","getOutletController","getControllerAndEnsureConnectedScope","outletController","camelizedName","outletElement","TargetPropertiesBlessing","targetDefinition","propertiesForTargetDefinition","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","result","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","propertiesForValueDefinitionPair","read","write","typeDefinition","valueDescriptorForTokenAndTypeDefinition","parseValueTypeConstant","constant","parseValueTypeDefault","parseValueTypeObject","payload","typeObject","hasType","hasDefault","fullObject","onlyType","onlyDefault","typeFromObject","typeFromDefaultValue","propertyPath","parseValueTypeDefinition","typeFromConstant","type","defaultValueForDefinition","defaultValuesByType","constantFromType","readers","writers","writeString","writeJSON","Controller","_identifier","_application","prefix","bubbles","cancelable","consideration_job_controller","url","jobId","currentFavoriteBtn","jobLikeId","isApply","formData","response","companyName","jobName","currentApplyBtn","favoriteBtn","__publicField","job_controller$1","urlParams","newUrl","modalId","currentBtnApply","jobTitle","textSpan","imgElement","newSrc","matchingId","btnApplyPC","btnApplySP","id","modalElement","backdrop","el","_ApiLoaderPlugin","endpoint","queryString","queryParams","searchParams","flattenParams","obj","finalKey","queryStr","finalOptions","data","finalData","template","item","trimmedKey","path","current","ApiLoaderPlugin","plugin_controller","apply_controller","nextPage","body","html","height","appliesDetail","applyMessages","appliesDetailJobPage","showJobDetailDiv","jobDetailLink","showApplyMessageDiv","applyMessageLink","targetParent","elementSibling","attachmentFile","fileName","errorElement","characters","counterId","maxTextLength","counter","bookmarked_company_controller","button","interviewModal","interviewModalId","interviewButton","navigation","propositionId","xhr","status","favButton","closeEl","applyTag","applyTagSpan","errorMessage","errorResponse","errorActions","account_setting_controller","togglePassword","passwordInput","passwordType","company_account_follow_controller","companyAccountFollowId","email_setting_controller","checkbox","notification_setting_controller","parentItem","corporateNumber","address","form","blockItem","parentNode","htmlContainer","documentHtml","loadingElement","newDiv","companyID","blockedItem","listCompany","errorr_messsage","violation_report_controller","withdrawal_controller","isChecked","checkboxes","checkedValues","platformValue","isPlatformAgent","isPlatformDirect","isWithdrawBothPlatform","Scrollbar","_ref","swiper","extendParams","on","emit","document","getDocument","isTouched","timeout","dragTimeout","dragStartPos","dragSize","trackSize","divider","setTranslate","scrollbar","rtl","dragEl","progress","newSize","newPos","setTransition","duration","updateSize","getPointerPosition","setDragPosition","positionRatio","elementOffset","position","onDragStart","wrapperEl","onDragMove","onDragEnd","nextTick","events","activeListener","passiveListener","eventMethod","enableDraggable","disableDraggable","init","swiperEl","createElementIfNotDefined","classesToSelector","createElement","classesToTokens","destroy","makeElementsArray","subEl","disable","_s","enable","Autoplay","raf","autoplayDelayTotal","autoplayDelayCurrent","autoplayTimeLeft","autoplayStartTime","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","onTransitionEnd","resume","calcTimeLeft","timeLeft","getSlideDelay","activeSlideEl","slideEl","run","delayForce","delay","currentSlideDelay","speed","proceed","start","stop","pause","internal","reset","onVisibilityChange","onPointerEnter","onPointerLeave","attachMouseEvents","detachMouseEvents","attachDocumentEvents","detachDocumentEvents","carousel_controller","swiperConfig","Navigation","Pagination","Swiper","totalSlides","slidesPerView","shouldShowNavigation","slides","slide","nav","width","breakpointIndex","requestedSlidesPerView","counter_controller","input","dropdownSearchCondition_controller","parentCheckbox","parentId","childCheckboxes","cityItems","contentHTML","label","incomeMap","wageRange","amount","V1_GET_JOBS_AGENT","total_records","AGENT_SEARCH_PATH","prefectureId","prefectureContent","city","cityLabel","occupations","prefectures","cities","min_income","max_income","occupation","prefecture","number","upto","jump","counts","annualIncome","favorite_controller","_b","job_controller","createForm","newForm","accordionButton","accordionContent","modalElementSuccess","applyMessage","localStorageItem","isShowModal","notification_controller","propositions_controller","uniqueUrl","root","factory","this","modules","installedModules","__webpack_require__","moduleId","exports","getter","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","__extends","extendStatics","d","p","__","ParchmentError","_super","_this","attributes","tags","types","create","query","BlotClass","find","bubble","names","i","register","Definitions","_i","Definition","tagNames","tag","diff","equal","op","NULL_CHARACTER","Delta","ops","text","newOp","lastOp","predicate","passed","failed","initial","elem","end","iter","nextOp","other","thisIter","otherIter","delta","thisOp","otherOp","strings","prep","diffResult","component","opLength","newline","line","priority","offset","nextType","hasOwn","toStr","isArray","arr","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","src","copy","copyIsArray","clone","deep","_createClass","defineProperties","props","Constructor","protoProps","staticProps","_get","get","desc","parent","_extend","_extend2","_interopRequireDefault","_quillDelta","_quillDelta2","_parchment","_parchment2","_break","_break2","_inline","_inline2","_text","_text2","_classCallCheck","instance","_possibleConstructorReturn","self","call","_inherits","subClass","superClass","NEWLINE_LENGTH","BlockEmbed","_Parchment$Embed","def","block","Block","_Parchment$Block","domNode","_this2","leaf","bubbleFormats","lines","blot","ref","child","force","next","formats","_typeof","_slicedToArray","sliceIterator","_arr","_n","_d","_e","err","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection","_selection2","_logger","_logger2","_theme","_theme2","_defineProperty","debug","Quill","limit","overwrite","container","expandConfig","source","range","modify","contents","refNode","className","_this3","_overload","overload","_overload2","enabled","scrollTop","_this4","change","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","containerBounds","_overload7","_overload8","focus","_overload9","_overload10","embed","_this7","_this8","_overload11","_overload12","_this9","_overload13","_overload14","_this10","deleted","applied","ret","_overload15","_overload16","_this11","userConfig","themeConfig","config","moduleNames","moduleConfig","moduleClass","oldDelta","shiftRange","_emitter","_emitter2","_map","pos","_map2","_map3","_map4","Inline","_Parchment$Inline","selfIndex","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","_len","_node$__quill$emitter","Emitter","_EventEmitter","_len2","_key2","handler","quill","levels","level","_console","namespace","ns","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","expected","opts","objEquiv","isUndefinedOrNull","isBuffer","x","a","ka","kb","Attributor","attrName","keyName","attributeBit","_block","_block2","Code","_Inline","CodeBlock","_Block","frag","_descendant","_descendant2","nextNewline","prevNewline","isolateLength","_descendant3","_descendant4","searchIndex","reverse","_op","_op2","_code","_code2","_cursor","_cursor2","_clone","_clone2","_deepEqual","_deepEqual2","ASCII","Editor","scroll","consumeNextNewline","scrollLength","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","_line$descendant2","format","lengthRemaining","lineLength","codeIndex","codeLength","leaves","_path","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","suffix","cursorIndex","textBlot","oldText","newText","diffDelta","combined","merged","_toConsumableArray","arr2","Range","Selection","emitter","native","_context$range","startNode","startOffset","endNode","endOffset","_format","nativeRange","after","_scroll$leaf","_scroll$leaf2","_leaf$position","_leaf$position2","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","side","rect","selection","normalized","positions","indexes","_position","contains","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","scrollingContainer","first","last","scrollBounds","oldRange","_getRange","_getRange2","lastRange","descendant","Break","linked_list_1","shadow_1","ContainerBlot","makeBlot","criteria","descendants","lengthLeft","childBlot","refBlot","inclusive","addedNodes","removedNodes","FormatBlot","replacement","wrapper","LeafBlot","lib","keepNull","Iterator","retOp","_instanceof","nativeMap","nativeSet","nativePromise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","proto","reject","__getRegExpFlags","keyChild","valueChild","entryChild","attrs","symbols","symbol","allPropertyNames","__objToStr","o","__isDate","__isArray","__isRegExp","re","flags","_container","_container2","isLine","Scroll","_Parchment$Scroll","whitelist","_line","_line2","_line3","_line4","newlineIndex","_newlineIndex","getLines","_quill","_quill2","SHORTKEY","Keyboard","_Module","evt","normalize","handleEnter","handleBackspace","handleDelete","handleDeleteRange","which","bindings","_quill$getLine","_quill$getLine2","_quill$getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","prevented","makeFormatHandler","makeCodeBlockHandler","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","makeEmbedArrowHandler","shiftKey","_ref3","where","_quill$getLeaf3","_quill$getLeaf4","_quill$getLine11","_quill$getLine12","_quill$getLine13","_quill$getLine14","prev","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine16","_quill$getLine17","_quill$getLine18","nextFormats","firstFormats","lastFormats","lineFormats","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","Cursor","textNode","restoreText","Container","_Parchment$Container","ColorAttributor","_Parchment$Attributor","ColorClass","ColorStyle","Link","_sanitize","protocols","anchor","protocol","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","select","option","trigger","selected","isActive","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","parentBlot","refDomNode","AttributorStore","styles","attr","ClassAttributor","part","StyleAttributor","Theme","GUARD_TEXT","Embed","childNode","prevLength","AlignAttribute","AlignClass","AlignStyle","_color","BackgroundClass","BackgroundStyle","DirectionAttribute","DirectionClass","DirectionStyle","FontClass","FontStyleAttributor","FontStyle","SizeClass","SizeStyle","History","dest","getLastChangeIndex","changeDelta","undoDelta","timestamp","endsWithNewlineChange","deleteLength","changeIndex","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","listener","picker","buttons","icons","selects","fillSelect","update","fileInput","reader","BaseTooltip","_Tooltip","boundsContainer","mode","preview","extractVideoUrl","LinkedList","cur","curNode","curIndex","curLength","OBSERVER_CONFIG","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","records","mark","markParent","optimize","remaining","grandChild","isEqual","obj1","obj2","prop","InlineBlot","BlockBlot","EmbedBlot","_toggle","searchString","subjectString","lastIndex","list","thisArg","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","x1","y1","k2_offset","x2","diff_bisectSplit_","k2","y2","y","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","diff_halfMatchI_","seed","j","best_common","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","prefixLength","hm1","hm2","pointer","count_delete","count_insert","text_delete","text_insert","changes","cursor_normalize_diff","current_pos","next_pos","split_pos","d_left","d_right","norm","ndiffs","cursor_pointer","d_next","merge_tuples","compact","starts_with_pair_end","str","ends_with_pair_start","fixed_diffs","left_d","right_d","shim","keys","supportsArgumentsClass","supported","unsupported","has","Events","EE","fn","once","EventEmitter","exists","available","l","ee","a1","a2","a3","a4","a5","len","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","matchText","matchNewline","matchBreak","matchBlot","matchSpacing","matchAttributor","matchStyles","matchIndent","matchAlias","matchIgnore","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","matcher","_prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","paste","pair","_pair","applyFormat","computeStyle","endText","style","childrenDelta","nodeHeight","replacer","collapse","Bold","Toolbar","addControls","_ret","_this$quill$selection","_this$quill$selection2","_quill$selection$getR","_quill$selection$getR2","addButton","groups","controls","group","control","addSelect","align","ColorPicker","_Picker","colorLabel","IconPicker","Tooltip","reference","top","rootBounds","verticalShift","_base","_base2","_link","_link2","_icons","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","toolbar","SnowTooltip","tooltip","_BaseTooltip","link","_core","_core2","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IdentAttributor","IndentClass","Blockquote","Header","ListItem","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","Formula","SyntaxCodeBlock","_CodeBlock","_highlight","CodeToken","Syntax","timer","code","BubbleTheme","BubbleTooltip","lastLine","_bounds","arrow","quillEditor_controller","parsedContent","justHtml","htmlContent","textContent","recently_job_controller","jobHistory","existingJobIndex","job","recentJobs","jobs","icon","rootModal_controller","$itemChecked","V1_JOBS_PATH","count","cityIds","minIncome","maxIncome","citiyItems","prefectureChecked","scout_controller","scoutsDetail","scoutsDetailScoutMessages","scoutsDetailJobPage","showScoutMessageDiv","searchCondition_controller","btnRegisterFooter","cityId","V1_SAVE_CONDITION_JOB_SEARCH","currentDate","month","day","time","storyDetail_controller","fontSizeStyle","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","global","freeSelf","objectProto","objectToString","nativeMax","nativeMin","now","debounce","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","toNumber","isObject","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","isObjectLike","isSymbol","isBinary","lodash_debounce","story_controller","image","btnStory","amountLike","unlikeStory","likeStory","increment","__defProp","__defNormalProp","EMAIL_REGEXP","INTEGER_REGEXP","PASSWORD_REGEXP","STRONG_PASSWORD_REGEXP","isEmpty","newVal","isEmail","isLengthMoreThanMax","isLengthLessThanMin","isNumber","isInteger","isPassword","isStrongPassword","isNumberMoreThanMax","isNumberLessThanMin","isInvalidOrEmptyString","Rules","Rules2","GroupRules","GroupRules2","CustomStyleTagIds","CustomStyleTagIds2","defaultDictionary","DEFAULT_ERROR_FIELD_MESSAGE","isPromise","val","getNodeParents","els","getClosestParent","parents","reversedParents","getClassList","classList","cls","isElement","errorLabelCss","TOOLTIP_ARROW_HEIGHT","defaultGlobalConfig","JustValidate","globalConfig","dictLocale","field","fieldSelector","fields","newKey","ev","foundKey","styleTag","rule","ruleValue","customMsg","search","localisedStr","fieldRule","msg","successMessage","groupRule","elems","afterInputChanged","elemValue","num","regexp","filesConfig","isFilePropsInvalid","file","fileConfig","minSizeInvalid","maxSizeInvalid","nameInvalid","extInvalid","typeInvalid","fileIdx","promise","resp","isValid","promises","res","_a2","groupSelector","forceRevalidation","_c","rules","groupField","inputs","childrenInputs","elem2","errorStyle","key2","successStyle","errorLabel","errorLabelRect","customErrorLabelStyle","successLabel","customSuccessLabelStyle","errorsContainer","isSuccess","_f","_g","labelElem","isError","fieldName","forced","_b2","locale","validateMessageForm_controller","input_controller","maxLengthMessage","string","errorMessages","messages","divElement","CONTROLLER_FILENAME_REGEX","registerControllers","controllerModules","definitionsFromGlob","definitionFromEntry","controllerModule","identifierForGlobKey","logicalName","Rails","nonce","expando","m","isEditable","$","csrfParam","csrfToken","param","CustomEvent","fire","preventDefault","eventType","AcceptHeaders","CSRFProtection","createXHR","cspNonce","prepareOptions","processResponse","done","parser","script","originAnchor","urlAnchor","toArray","additionalParam","allowAction","stopEverything","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","formElements","getData","isContentEditable","isXhrRedirect","setData","originalText","formContent","href","ajax","isCrossDomain","isRemote","serializeElement","slice","dataType","withCredentials","insignificantMetaClick","metaClick","nonPrimaryMouseClick","disableElement","enableElement","formSubmitButtonClick","handleConfirm","handleDisabledElement","handleMethod","handleRemote","loadCSPNonce","preventInsignificantClick","refreshCSRFTokens","originalOptions","adapters","secondsSince","ConnectionMonitor","connection","staleThreshold","reconnectionBackoffRate","backoff","jitter","INTERNAL","message_types","supportedProtocols","indexOf","Connection","consumer","socketProtocols","allowReconnect","states","state","reason","reconnect","Subscription","mixin","SubscriptionGuarantor","subscriptions","subscription","s","Subscriptions","channelName","channel","callbackName","command","Consumer","createWebSocketURL","subprotocol","createConsumer","getConfig","COMPANY_SOCKET_PATH","candidate_id","controllers","__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","__vite_glob_0_4","__vite_glob_0_5","__vite_glob_0_6","__vite_glob_0_7","__vite_glob_0_8","__vite_glob_0_9","__vite_glob_0_10","__vite_glob_0_11","__vite_glob_0_12","__vite_glob_0_13","__vite_glob_0_14","__vite_glob_0_15","__vite_glob_0_16","__vite_glob_0_17","__vite_glob_0_18","__vite_glob_0_19","__vite_glob_0_20","__vite_glob_0_21","__vite_glob_0_22","__vite_glob_0_23","__vite_glob_0_24","__vite_glob_0_25","__vite_glob_0_26"],"mappings":"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","x_google_ignoreList":[0,13,14,22,29,31,34,35,36]}