{"version":3,"file":"dcjspage_ServiceDrivers.js","mappings":"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","sources":["webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js","webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/HeaderNames.js","webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/HttpClient.js","webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js","webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js","webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js","webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js","webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/ITransport.js","webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/AbortController.js","webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js","webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js","webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js","webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/HttpConnection.js","webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js","webpack://driverscloud/./node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js","webpack://driverscloud/./node_modules/@vueup/vue-quill/dist/vue-quill.esm-bundler.js","webpack://driverscloud/./node_modules/fast-diff/diff.js","webpack://driverscloud/./node_modules/lodash.clonedeep/index.js","webpack://driverscloud/./node_modules/lodash.isequal/index.js","webpack://driverscloud/./node_modules/quill-delta/dist/AttributeMap.js","webpack://driverscloud/./node_modules/quill-delta/dist/Delta.js","webpack://driverscloud/./node_modules/quill-delta/dist/Iterator.js","webpack://driverscloud/./node_modules/quill-delta/dist/Op.js","webpack://driverscloud/./node_modules/quill/dist/quill.js","webpack://driverscloud/./Views/ServiceDrivers/driversstruct.ts","webpack://driverscloud/./node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js","webpack://driverscloud/./node_modules/vue3-perfect-scrollbar/dist/vue3-perfect-scrollbar.esm.js","webpack://driverscloud/./Views/ServiceDrivers/index.ts","webpack://driverscloud/./Views/Shared/comptearebours.vue","webpack://driverscloud/./Scripts/js/pages/dcjspage_ServiceDrivers-exposed.ts","webpack://driverscloud/./Views/ServiceDrivers/driversstruct-exposed.ts","webpack://driverscloud/./Views/ServiceDrivers/index-exposed.ts","webpack://driverscloud/./Views/Shared/comptearebours-exposed.vue","webpack://driverscloud/./Views/Shared/comptearebours-exposed.vue?076c","webpack://driverscloud/./Views/Shared/comptearebours.vue?9c8d"],"sourcesContent":["// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n/** @private */\r\nexport class DefaultReconnectPolicy {\r\n constructor(retryDelays) {\r\n this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n }\r\n nextRetryDelayInMilliseconds(retryContext) {\r\n return this._retryDelays[retryContext.previousRetryCount];\r\n }\r\n}\r\n//# sourceMappingURL=DefaultReconnectPolicy.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nexport class HeaderNames {\r\n}\r\nHeaderNames.Authorization = \"Authorization\";\r\nHeaderNames.Cookie = \"Cookie\";\r\n//# sourceMappingURL=HeaderNames.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n constructor(statusCode, statusText, content) {\r\n this.statusCode = statusCode;\r\n this.statusText = statusText;\r\n this.content = content;\r\n }\r\n}\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport class HttpClient {\r\n get(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n post(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n delete(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n getCookieString(url) {\r\n return \"\";\r\n }\r\n}\r\n//# sourceMappingURL=HttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient } from \"./HttpClient\";\r\n/** @private */\r\nexport class AccessTokenHttpClient extends HttpClient {\r\n constructor(innerClient, accessTokenFactory) {\r\n super();\r\n this._innerClient = innerClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n }\r\n async send(request) {\r\n let allowRetry = true;\r\n if (this._accessTokenFactory && (!this._accessToken || (request.url && request.url.indexOf(\"/negotiate?\") > 0))) {\r\n // don't retry if the request is a negotiate or if we just got a potentially new token from the access token factory\r\n allowRetry = false;\r\n this._accessToken = await this._accessTokenFactory();\r\n }\r\n this._setAuthorizationHeader(request);\r\n const response = await this._innerClient.send(request);\r\n if (allowRetry && response.statusCode === 401 && this._accessTokenFactory) {\r\n this._accessToken = await this._accessTokenFactory();\r\n this._setAuthorizationHeader(request);\r\n return await this._innerClient.send(request);\r\n }\r\n return response;\r\n }\r\n _setAuthorizationHeader(request) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (this._accessToken) {\r\n request.headers[HeaderNames.Authorization] = `Bearer ${this._accessToken}`;\r\n }\r\n // don't remove the header if there isn't an access token factory, the user manually added the header in this case\r\n else if (this._accessTokenFactory) {\r\n if (request.headers[HeaderNames.Authorization]) {\r\n delete request.headers[HeaderNames.Authorization];\r\n }\r\n }\r\n }\r\n getCookieString(url) {\r\n return this._innerClient.getCookieString(url);\r\n }\r\n}\r\n//# sourceMappingURL=AccessTokenHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis, isArrayBuffer } from \"./Utils\";\r\nexport class FetchHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n // Node added a fetch implementation to the global scope starting in v18.\r\n // We need to add a cookie jar in node to be able to share cookies with WebSocket\r\n if (typeof fetch === \"undefined\" || Platform.isNode) {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n this._jar = new (requireFunc(\"tough-cookie\")).CookieJar();\r\n if (typeof fetch === \"undefined\") {\r\n this._fetchType = requireFunc(\"node-fetch\");\r\n }\r\n else {\r\n // Use fetch from Node if available\r\n this._fetchType = fetch;\r\n }\r\n // node-fetch doesn't have a nice API for getting and setting cookies\r\n // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n this._fetchType = requireFunc(\"fetch-cookie\")(this._fetchType, this._jar);\r\n }\r\n else {\r\n this._fetchType = fetch.bind(getGlobalThis());\r\n }\r\n if (typeof AbortController === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n this._abortControllerType = requireFunc(\"abort-controller\");\r\n }\r\n else {\r\n this._abortControllerType = AbortController;\r\n }\r\n }\r\n /** @inheritDoc */\r\n async send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n throw new AbortError();\r\n }\r\n if (!request.method) {\r\n throw new Error(\"No method defined.\");\r\n }\r\n if (!request.url) {\r\n throw new Error(\"No url defined.\");\r\n }\r\n const abortController = new this._abortControllerType();\r\n let error;\r\n // Hook our abortSignal into the abort controller\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n abortController.abort();\r\n error = new AbortError();\r\n };\r\n }\r\n // If a timeout has been passed in, setup a timeout to call abort\r\n // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n let timeoutId = null;\r\n if (request.timeout) {\r\n const msTimeout = request.timeout;\r\n timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n error = new TimeoutError();\r\n }, msTimeout);\r\n }\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n request.headers = request.headers || {};\r\n if (isArrayBuffer(request.content)) {\r\n request.headers[\"Content-Type\"] = \"application/octet-stream\";\r\n }\r\n else {\r\n request.headers[\"Content-Type\"] = \"text/plain;charset=UTF-8\";\r\n }\r\n }\r\n let response;\r\n try {\r\n response = await this._fetchType(request.url, {\r\n body: request.content,\r\n cache: \"no-cache\",\r\n credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n headers: {\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n ...request.headers,\r\n },\r\n method: request.method,\r\n mode: \"cors\",\r\n redirect: \"follow\",\r\n signal: abortController.signal,\r\n });\r\n }\r\n catch (e) {\r\n if (error) {\r\n throw error;\r\n }\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${e}.`);\r\n throw e;\r\n }\r\n finally {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n }\r\n if (!response.ok) {\r\n const errorMessage = await deserializeContent(response, \"text\");\r\n throw new HttpError(errorMessage || response.statusText, response.status);\r\n }\r\n const content = deserializeContent(response, request.responseType);\r\n const payload = await content;\r\n return new HttpResponse(response.status, response.statusText, payload);\r\n }\r\n getCookieString(url) {\r\n let cookies = \"\";\r\n if (Platform.isNode && this._jar) {\r\n // @ts-ignore: unused variable\r\n this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n }\r\n return cookies;\r\n }\r\n}\r\nfunction deserializeContent(response, responseType) {\r\n let content;\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n content = response.arrayBuffer();\r\n break;\r\n case \"text\":\r\n content = response.text();\r\n break;\r\n case \"blob\":\r\n case \"document\":\r\n case \"json\":\r\n throw new Error(`${responseType} is not supported.`);\r\n default:\r\n content = response.text();\r\n break;\r\n }\r\n return content;\r\n}\r\n//# sourceMappingURL=FetchHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\nexport class XhrHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n if (isArrayBuffer(request.content)) {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/octet-stream\");\r\n }\r\n else {\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n }\r\n }\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content);\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=XhrHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n constructor(logger) {\r\n super();\r\n if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n this._httpClient = new FetchHttpClient(logger);\r\n }\r\n else if (typeof XMLHttpRequest !== \"undefined\") {\r\n this._httpClient = new XhrHttpClient(logger);\r\n }\r\n else {\r\n throw new Error(\"No usable HttpClient found.\");\r\n }\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return this._httpClient.send(request);\r\n }\r\n getCookieString(url) {\r\n return this._httpClient.getCookieString(url);\r\n }\r\n}\r\n//# sourceMappingURL=DefaultHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport var HttpTransportType;\r\n(function (HttpTransportType) {\r\n /** Specifies no transport preference. */\r\n HttpTransportType[HttpTransportType[\"None\"] = 0] = \"None\";\r\n /** Specifies the WebSockets transport. */\r\n HttpTransportType[HttpTransportType[\"WebSockets\"] = 1] = \"WebSockets\";\r\n /** Specifies the Server-Sent Events transport. */\r\n HttpTransportType[HttpTransportType[\"ServerSentEvents\"] = 2] = \"ServerSentEvents\";\r\n /** Specifies the Long Polling transport. */\r\n HttpTransportType[HttpTransportType[\"LongPolling\"] = 4] = \"LongPolling\";\r\n})(HttpTransportType || (HttpTransportType = {}));\r\n/** Specifies the transfer format for a connection. */\r\nexport var TransferFormat;\r\n(function (TransferFormat) {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Text\"] = 1] = \"Text\";\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Binary\"] = 2] = \"Binary\";\r\n})(TransferFormat || (TransferFormat = {}));\r\n//# sourceMappingURL=ITransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController {\r\n constructor() {\r\n this._isAborted = false;\r\n this.onabort = null;\r\n }\r\n abort() {\r\n if (!this._isAborted) {\r\n this._isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n get signal() {\r\n return this;\r\n }\r\n get aborted() {\r\n return this._isAborted;\r\n }\r\n}\r\n//# sourceMappingURL=AbortController.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport {\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get pollAborted() {\r\n return this._pollAbort.aborted;\r\n }\r\n constructor(httpClient, logger, options) {\r\n this._httpClient = httpClient;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n this._running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._url = url;\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n const pollOptions = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n this._running = true;\r\n }\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n async _poll(url, pollOptions) {\r\n try {\r\n while (this._running) {\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this._running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n }\r\n else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n async send(data) {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url, data, this._options);\r\n }\r\n async stop() {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n try {\r\n await this._receiving;\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const deleteOptions = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n let error;\r\n try {\r\n await this._httpClient.delete(this._url, deleteOptions);\r\n }\r\n catch (err) {\r\n error = err;\r\n }\r\n if (error) {\r\n if (error instanceof HttpError) {\r\n if (error.statusCode === 404) {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) A 404 response was returned from sending a DELETE request.\");\r\n }\r\n else {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Error sending a DELETE request: ${error}`);\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request accepted.\");\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=LongPollingTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\n/** @private */\r\nexport class ServerSentEventsTransport {\r\n constructor(httpClient, accessToken, logger, options) {\r\n this._httpClient = httpClient;\r\n this._accessToken = accessToken;\r\n this._logger = logger;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this._url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n if (this._accessToken) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(this._accessToken)}`;\r\n }\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n let eventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers } });\r\n }\r\n try {\r\n eventSource.onmessage = (e) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent)}.`);\r\n this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n }\r\n else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n async send(data) {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url, data, this._options);\r\n }\r\n stop() {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n _close(e) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=ServerSentEventsTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n/** @private */\r\nexport class WebSocketTransport {\r\n constructor(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n let token;\r\n if (this._accessTokenFactory) {\r\n token = await this._accessTokenFactory();\r\n }\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n if (Platform.isNode || Platform.isReactNative) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = cookies;\r\n }\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n else {\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n webSocket.onopen = (_event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n webSocket.onerror = (event) => {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"There was an error with the transport\";\r\n }\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n webSocket.onmessage = (message) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n webSocket.onclose = (event) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n }\r\n else {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n send(data) {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n stop() {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n return Promise.resolve();\r\n }\r\n _close(event) {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => { };\r\n this._webSocket.onmessage = () => { };\r\n this._webSocket.onerror = () => { };\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n }\r\n else if (event instanceof Error) {\r\n this.onclose(event);\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n _isCloseEvent(event) {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n//# sourceMappingURL=WebSocketTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AccessTokenHttpClient } from \"./AccessTokenHttpClient\";\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError, AbortError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\nconst MAX_REDIRECTS = 100;\r\n/** @private */\r\nexport class HttpConnection {\r\n constructor(url, options = {}) {\r\n this._stopPromiseResolver = () => { };\r\n this.features = {};\r\n this._negotiateVersion = 1;\r\n Arg.isRequired(url, \"url\");\r\n this._logger = createLogger(options.logger);\r\n this.baseUrl = this._resolveUrl(url);\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n }\r\n else {\r\n throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n }\r\n options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n let webSocketModule = null;\r\n let eventSourceModule = null;\r\n if (Platform.isNode && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n webSocketModule = requireFunc(\"ws\");\r\n eventSourceModule = requireFunc(\"eventsource\");\r\n }\r\n if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n }\r\n else if (Platform.isNode && !options.WebSocket) {\r\n if (webSocketModule) {\r\n options.WebSocket = webSocketModule;\r\n }\r\n }\r\n if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n }\r\n else if (Platform.isNode && !options.EventSource) {\r\n if (typeof eventSourceModule !== \"undefined\") {\r\n options.EventSource = eventSourceModule;\r\n }\r\n }\r\n this._httpClient = new AccessTokenHttpClient(options.httpClient || new DefaultHttpClient(this._logger), options.accessTokenFactory);\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n this._connectionStarted = false;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async start(transferFormat) {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n if (this._connectionState !== \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = \"Connecting\" /* ConnectionState.Connecting */;\r\n this._startInternalPromise = this._startInternal(transferFormat);\r\n await this._startInternalPromise;\r\n // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n this._logger.log(LogLevel.Error, message);\r\n // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n await this._stopPromise;\r\n return Promise.reject(new AbortError(message));\r\n }\r\n else if (this._connectionState !== \"Connected\" /* ConnectionState.Connected */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n this._logger.log(LogLevel.Error, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n this._connectionStarted = true;\r\n }\r\n send(data) {\r\n if (this._connectionState !== \"Connected\" /* ConnectionState.Connected */) {\r\n return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n }\r\n if (!this._sendQueue) {\r\n this._sendQueue = new TransportSendQueue(this.transport);\r\n }\r\n // Transport will not be null if state is connected\r\n return this._sendQueue.send(data);\r\n }\r\n async stop(error) {\r\n if (this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n this._connectionState = \"Disconnecting\" /* ConnectionState.Disconnecting */;\r\n this._stopPromise = new Promise((resolve) => {\r\n // Don't complete stop() until stopConnection() completes.\r\n this._stopPromiseResolver = resolve;\r\n });\r\n // stopInternal should never throw so just observe it.\r\n await this._stopInternal(error);\r\n await this._stopPromise;\r\n }\r\n async _stopInternal(error) {\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this._stopError = error;\r\n try {\r\n await this._startInternalPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n // stop was called during start() and start() failed.\r\n if (this.transport) {\r\n try {\r\n await this.transport.stop();\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n this._stopConnection();\r\n }\r\n this.transport = undefined;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n }\r\n }\r\n async _startInternal(transferFormat) {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this._accessTokenFactory = this._options.accessTokenFactory;\r\n this._httpClient._accessTokenFactory = this._accessTokenFactory;\r\n try {\r\n if (this._options.skipNegotiation) {\r\n if (this._options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this._startTransport(url, transferFormat);\r\n }\r\n else {\r\n throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n }\r\n else {\r\n let negotiateResponse = null;\r\n let redirects = 0;\r\n do {\r\n negotiateResponse = await this._getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */ || this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n throw new AbortError(\"The connection was stopped during negotiation.\");\r\n }\r\n if (negotiateResponse.error) {\r\n throw new Error(negotiateResponse.error);\r\n }\r\n if (negotiateResponse.ProtocolVersion) {\r\n throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this._accessTokenFactory = () => accessToken;\r\n // set the factory to undefined so the AccessTokenHttpClient won't retry with the same token, since we know it won't change until a connection restart\r\n this._httpClient._accessToken = accessToken;\r\n this._httpClient._accessTokenFactory = undefined;\r\n }\r\n redirects++;\r\n } while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw new Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n }\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n if (this._connectionState === \"Connecting\" /* ConnectionState.Connecting */) {\r\n // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n this._connectionState = \"Connected\" /* ConnectionState.Connected */;\r\n }\r\n // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n this.transport = undefined;\r\n // if start fails, any active calls to stop assume that start will complete the stop promise\r\n this._stopPromiseResolver();\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _getNegotiationResponse(url) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const negotiateUrl = this._resolveNegotiateUrl(url);\r\n this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n try {\r\n const response = await this._httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n });\r\n if (response.statusCode !== 200) {\r\n return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n }\r\n const negotiateResponse = JSON.parse(response.content);\r\n if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n // Negotiate version 0 doesn't use connectionToken\r\n // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n }\r\n if (negotiateResponse.useStatefulReconnect && this._options._useStatefulReconnect !== true) {\r\n return Promise.reject(new FailedToNegotiateWithServerError(\"Client didn't negotiate Stateful Reconnect but the server did.\"));\r\n }\r\n return negotiateResponse;\r\n }\r\n catch (e) {\r\n let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n if (e instanceof HttpError) {\r\n if (e.statusCode === 404) {\r\n errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n }\r\n }\r\n this._logger.log(LogLevel.Error, errorMessage);\r\n return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n }\r\n }\r\n _createConnectUrl(url, connectionToken) {\r\n if (!connectionToken) {\r\n return url;\r\n }\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n }\r\n async _createTransport(url, requestedTransport, negotiateResponse, requestedTransferFormat) {\r\n let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n if (this._isITransport(requestedTransport)) {\r\n this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiateResponse.connectionId;\r\n return;\r\n }\r\n const transportExceptions = [];\r\n const transports = negotiateResponse.availableTransports || [];\r\n let negotiate = negotiateResponse;\r\n for (const endpoint of transports) {\r\n const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat, (negotiate === null || negotiate === void 0 ? void 0 : negotiate.useStatefulReconnect) === true);\r\n if (transportOrError instanceof Error) {\r\n // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n transportExceptions.push(`${endpoint.transport} failed:`);\r\n transportExceptions.push(transportOrError);\r\n }\r\n else if (this._isITransport(transportOrError)) {\r\n this.transport = transportOrError;\r\n if (!negotiate) {\r\n try {\r\n negotiate = await this._getNegotiationResponse(url);\r\n }\r\n catch (ex) {\r\n return Promise.reject(ex);\r\n }\r\n connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n }\r\n try {\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiate.connectionId;\r\n return;\r\n }\r\n catch (ex) {\r\n this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n negotiate = undefined;\r\n transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n if (this._connectionState !== \"Connecting\" /* ConnectionState.Connecting */) {\r\n const message = \"Failed to select transport before stop() was called.\";\r\n this._logger.log(LogLevel.Debug, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n }\r\n }\r\n }\r\n if (transportExceptions.length > 0) {\r\n return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n }\r\n return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n }\r\n _constructTransport(transport) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this._options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent, this._options.WebSocket, this._options.headers || {});\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this._options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this._httpClient, this._httpClient._accessToken, this._logger, this._options);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this._httpClient, this._logger, this._options);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n _startTransport(url, transferFormat) {\r\n this.transport.onreceive = this.onreceive;\r\n if (this.features.reconnect) {\r\n this.transport.onclose = async (e) => {\r\n let callStop = false;\r\n if (this.features.reconnect) {\r\n try {\r\n this.features.disconnected();\r\n await this.transport.connect(url, transferFormat);\r\n await this.features.resend();\r\n }\r\n catch {\r\n callStop = true;\r\n }\r\n }\r\n else {\r\n this._stopConnection(e);\r\n return;\r\n }\r\n if (callStop) {\r\n this._stopConnection(e);\r\n }\r\n };\r\n }\r\n else {\r\n this.transport.onclose = (e) => this._stopConnection(e);\r\n }\r\n return this.transport.connect(url, transferFormat);\r\n }\r\n _resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat, useStatefulReconnect) {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n }\r\n else {\r\n if (transportMatches(requestedTransport, transport)) {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n try {\r\n this.features.reconnect = transport === HttpTransportType.WebSockets ? useStatefulReconnect : undefined;\r\n return this._constructTransport(transport);\r\n }\r\n catch (ex) {\r\n return ex;\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n }\r\n }\r\n }\r\n _isITransport(transport) {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n _stopConnection(error) {\r\n this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n this.transport = undefined;\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this._stopError || error;\r\n this._stopError = undefined;\r\n if (this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n return;\r\n }\r\n if (this._connectionState === \"Connecting\" /* ConnectionState.Connecting */) {\r\n this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n // A call to stop() induced this call to stopConnection and needs to be completed.\r\n // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n this._stopPromiseResolver();\r\n }\r\n if (error) {\r\n this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n if (this._sendQueue) {\r\n this._sendQueue.stop().catch((e) => {\r\n this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n });\r\n this._sendQueue = undefined;\r\n }\r\n this.connectionId = undefined;\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n if (this._connectionStarted) {\r\n this._connectionStarted = false;\r\n try {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n _resolveUrl(url) {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n if (!Platform.isBrowser) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n _resolveNegotiateUrl(url) {\r\n const negotiateUrl = new URL(url);\r\n if (negotiateUrl.pathname.endsWith('/')) {\r\n negotiateUrl.pathname += \"negotiate\";\r\n }\r\n else {\r\n negotiateUrl.pathname += \"/negotiate\";\r\n }\r\n const searchParams = new URLSearchParams(negotiateUrl.searchParams);\r\n if (!searchParams.has(\"negotiateVersion\")) {\r\n searchParams.append(\"negotiateVersion\", this._negotiateVersion.toString());\r\n }\r\n if (searchParams.has(\"useStatefulReconnect\")) {\r\n if (searchParams.get(\"useStatefulReconnect\") === \"true\") {\r\n this._options._useStatefulReconnect = true;\r\n }\r\n }\r\n else if (this._options._useStatefulReconnect === true) {\r\n searchParams.append(\"useStatefulReconnect\", \"true\");\r\n }\r\n negotiateUrl.search = searchParams.toString();\r\n return negotiateUrl.toString();\r\n }\r\n}\r\nfunction transportMatches(requestedTransport, actualTransport) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n/** @private */\r\nexport class TransportSendQueue {\r\n constructor(_transport) {\r\n this._transport = _transport;\r\n this._buffer = [];\r\n this._executing = true;\r\n this._sendBufferedData = new PromiseSource();\r\n this._transportResult = new PromiseSource();\r\n this._sendLoopPromise = this._sendLoop();\r\n }\r\n send(data) {\r\n this._bufferData(data);\r\n if (!this._transportResult) {\r\n this._transportResult = new PromiseSource();\r\n }\r\n return this._transportResult.promise;\r\n }\r\n stop() {\r\n this._executing = false;\r\n this._sendBufferedData.resolve();\r\n return this._sendLoopPromise;\r\n }\r\n _bufferData(data) {\r\n if (this._buffer.length && typeof (this._buffer[0]) !== typeof (data)) {\r\n throw new Error(`Expected data to be of type ${typeof (this._buffer)} but was of type ${typeof (data)}`);\r\n }\r\n this._buffer.push(data);\r\n this._sendBufferedData.resolve();\r\n }\r\n async _sendLoop() {\r\n while (true) {\r\n await this._sendBufferedData.promise;\r\n if (!this._executing) {\r\n if (this._transportResult) {\r\n this._transportResult.reject(\"Connection stopped.\");\r\n }\r\n break;\r\n }\r\n this._sendBufferedData = new PromiseSource();\r\n const transportResult = this._transportResult;\r\n this._transportResult = undefined;\r\n const data = typeof (this._buffer[0]) === \"string\" ?\r\n this._buffer.join(\"\") :\r\n TransportSendQueue._concatBuffers(this._buffer);\r\n this._buffer.length = 0;\r\n try {\r\n await this._transport.send(data);\r\n transportResult.resolve();\r\n }\r\n catch (error) {\r\n transportResult.reject(error);\r\n }\r\n }\r\n }\r\n static _concatBuffers(arrayBuffers) {\r\n const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const item of arrayBuffers) {\r\n result.set(new Uint8Array(item), offset);\r\n offset += item.byteLength;\r\n }\r\n return result.buffer;\r\n }\r\n}\r\nclass PromiseSource {\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n }\r\n resolve() {\r\n this._resolver();\r\n }\r\n reject(reason) {\r\n this._rejecter(reason);\r\n }\r\n}\r\n//# sourceMappingURL=HttpConnection.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nconst JSON_HUB_PROTOCOL_NAME = \"json\";\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol {\r\n constructor() {\r\n /** @inheritDoc */\r\n this.name = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n this.version = 2;\r\n /** @inheritDoc */\r\n this.transferFormat = TransferFormat.Text;\r\n }\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input, logger) {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n if (!input) {\r\n return [];\r\n }\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message);\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this._isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this._isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this._isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n case MessageType.Ack:\r\n this._isAckMessage(parsedMessage);\r\n break;\r\n case MessageType.Sequence:\r\n this._isSequenceMessage(parsedMessage);\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n return hubMessages;\r\n }\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n writeMessage(message) {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n _isInvocationMessage(message) {\r\n this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n if (message.invocationId !== undefined) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n _isStreamItemMessage(message) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n _isCompletionMessage(message) {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n if (!message.result && message.error) {\r\n this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n _isAckMessage(message) {\r\n if (typeof message.sequenceId !== 'number') {\r\n throw new Error(\"Invalid SequenceId for Ack message.\");\r\n }\r\n }\r\n _isSequenceMessage(message) {\r\n if (typeof message.sequenceId !== 'number') {\r\n throw new Error(\"Invalid SequenceId for Sequence message.\");\r\n }\r\n }\r\n _assertNotEmptyString(value, errorMessage) {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=JsonHubProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\nconst LogLevelNameMapping = {\r\n trace: LogLevel.Trace,\r\n debug: LogLevel.Debug,\r\n info: LogLevel.Information,\r\n information: LogLevel.Information,\r\n warn: LogLevel.Warning,\r\n warning: LogLevel.Warning,\r\n error: LogLevel.Error,\r\n critical: LogLevel.Critical,\r\n none: LogLevel.None,\r\n};\r\nfunction parseLogLevel(name) {\r\n // Case-insensitive matching via lower-casing\r\n // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n if (typeof mapping !== \"undefined\") {\r\n return mapping;\r\n }\r\n else {\r\n throw new Error(`Unknown log level: ${name}`);\r\n }\r\n}\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n configureLogging(logging) {\r\n Arg.isRequired(logging, \"logging\");\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n }\r\n else if (typeof logging === \"string\") {\r\n const logLevel = parseLogLevel(logging);\r\n this.logger = new ConsoleLogger(logLevel);\r\n }\r\n else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n return this;\r\n }\r\n withUrl(url, transportTypeOrOptions) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isNotEmpty(url, \"url\");\r\n this.url = url;\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n }\r\n else {\r\n this.httpConnectionOptions = {\r\n ...this.httpConnectionOptions,\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n return this;\r\n }\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n */\r\n withHubProtocol(protocol) {\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n withAutomaticReconnect(retryDelaysOrReconnectPolicy) {\r\n if (this.reconnectPolicy) {\r\n throw new Error(\"A reconnectPolicy has already been set.\");\r\n }\r\n if (!retryDelaysOrReconnectPolicy) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy();\r\n }\r\n else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n }\r\n else {\r\n this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n }\r\n return this;\r\n }\r\n /** Configures {@link @microsoft/signalr.HubConnection.serverTimeoutInMilliseconds} for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withServerTimeout(milliseconds) {\r\n Arg.isRequired(milliseconds, \"milliseconds\");\r\n this._serverTimeoutInMilliseconds = milliseconds;\r\n return this;\r\n }\r\n /** Configures {@link @microsoft/signalr.HubConnection.keepAliveIntervalInMilliseconds} for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withKeepAliveInterval(milliseconds) {\r\n Arg.isRequired(milliseconds, \"milliseconds\");\r\n this._keepAliveIntervalInMilliseconds = milliseconds;\r\n return this;\r\n }\r\n /** Enables and configures options for the Stateful Reconnect feature.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withStatefulReconnect(options) {\r\n if (this.httpConnectionOptions === undefined) {\r\n this.httpConnectionOptions = {};\r\n }\r\n this.httpConnectionOptions._useStatefulReconnect = true;\r\n this._statefulReconnectBufferSize = options === null || options === void 0 ? void 0 : options.bufferSize;\r\n return this;\r\n }\r\n /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n */\r\n build() {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol(), this.reconnectPolicy, this._serverTimeoutInMilliseconds, this._keepAliveIntervalInMilliseconds, this._statefulReconnectBufferSize);\r\n }\r\n}\r\nfunction isLogger(logger) {\r\n return logger.log !== undefined;\r\n}\r\n//# sourceMappingURL=HubConnectionBuilder.js.map","/*!\n * VueQuill @vueup/vue-quill v1.2.0\n * https://vueup.github.io/vue-quill/\n * \n * Includes quill v1.3.7\n * https://quilljs.com/\n * \n * Copyright (c) 2023 Ahmad Luthfi Masruri\n * Released under the MIT license\n * Date: 2023-05-12T08:44:03.742Z\n */\nimport Quill from 'quill';\nexport { default as Quill } from 'quill';\nimport Delta from 'quill-delta';\nexport { default as Delta } from 'quill-delta';\nimport { defineComponent, onMounted, onBeforeUnmount, ref, watch, nextTick, h } from 'vue';\n\nconst toolbarOptions = {\r\n essential: [\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n ['bold', 'italic', 'underline'],\r\n [{ list: 'ordered' }, { list: 'bullet' }, { align: [] }],\r\n ['blockquote', 'code-block', 'link'],\r\n [{ color: [] }, 'clean'],\r\n ],\r\n minimal: [\r\n [{ header: 1 }, { header: 2 }],\r\n ['bold', 'italic', 'underline'],\r\n [{ list: 'ordered' }, { list: 'bullet' }, { align: [] }],\r\n ],\r\n full: [\r\n ['bold', 'italic', 'underline', 'strike'],\r\n ['blockquote', 'code-block'],\r\n [{ header: 1 }, { header: 2 }],\r\n [{ list: 'ordered' }, { list: 'bullet' }],\r\n [{ script: 'sub' }, { script: 'super' }],\r\n [{ indent: '-1' }, { indent: '+1' }],\r\n [{ direction: 'rtl' }],\r\n [{ size: ['small', false, 'large', 'huge'] }],\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n [{ color: [] }, { background: [] }],\r\n [{ font: [] }],\r\n [{ align: [] }],\r\n ['link', 'video', 'image'],\r\n ['clean'], // remove formatting button\r\n ],\r\n};\n\nconst QuillEditor = defineComponent({\r\n name: 'QuillEditor',\r\n inheritAttrs: false,\r\n props: {\r\n content: {\r\n type: [String, Object],\r\n },\r\n contentType: {\r\n type: String,\r\n default: 'delta',\r\n validator: (value) => {\r\n return ['delta', 'html', 'text'].includes(value);\r\n },\r\n },\r\n enable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n readOnly: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n placeholder: {\r\n type: String,\r\n required: false,\r\n },\r\n theme: {\r\n type: String,\r\n default: 'snow',\r\n validator: (value) => {\r\n return ['snow', 'bubble', ''].includes(value);\r\n },\r\n },\r\n toolbar: {\r\n type: [String, Array, Object],\r\n required: false,\r\n validator: (value) => {\r\n if (typeof value === 'string' && value !== '') {\r\n return value.charAt(0) === '#'\r\n ? true\r\n : Object.keys(toolbarOptions).indexOf(value) !== -1;\r\n }\r\n return true;\r\n },\r\n },\r\n modules: {\r\n type: Object,\r\n required: false,\r\n },\r\n options: {\r\n type: Object,\r\n required: false,\r\n },\r\n globalOptions: {\r\n type: Object,\r\n required: false,\r\n },\r\n },\r\n emits: [\r\n 'textChange',\r\n 'selectionChange',\r\n 'editorChange',\r\n 'update:content',\r\n 'focus',\r\n 'blur',\r\n 'ready',\r\n ],\r\n setup: (props, ctx) => {\r\n onMounted(() => {\r\n initialize();\r\n });\r\n onBeforeUnmount(() => {\r\n quill = null;\r\n });\r\n let quill;\r\n let options;\r\n const editor = ref();\r\n // Initialize Quill\r\n const initialize = () => {\r\n var _a;\r\n if (!editor.value)\r\n return;\r\n options = composeOptions();\r\n // Register modules\r\n if (props.modules) {\r\n if (Array.isArray(props.modules)) {\r\n for (const module of props.modules) {\r\n Quill.register(`modules/${module.name}`, module.module);\r\n }\r\n }\r\n else {\r\n Quill.register(`modules/${props.modules.name}`, props.modules.module);\r\n }\r\n }\r\n // Create new Quill instance\r\n quill = new Quill(editor.value, options);\r\n // Set editor content\r\n setContents(props.content);\r\n // Set event handlers\r\n quill.on('text-change', handleTextChange);\r\n quill.on('selection-change', handleSelectionChange);\r\n quill.on('editor-change', handleEditorChange);\r\n // Remove editor class when theme changes\r\n if (props.theme !== 'bubble')\r\n editor.value.classList.remove('ql-bubble');\r\n if (props.theme !== 'snow')\r\n editor.value.classList.remove('ql-snow');\r\n // Fix clicking the quill toolbar is detected as blur event\r\n (_a = quill\r\n .getModule('toolbar')) === null || _a === void 0 ? void 0 : _a.container.addEventListener('mousedown', (e) => {\r\n e.preventDefault();\r\n });\r\n // Emit ready event\r\n ctx.emit('ready', quill);\r\n };\r\n // Compose Options\r\n const composeOptions = () => {\r\n const clientOptions = {};\r\n if (props.theme !== '')\r\n clientOptions.theme = props.theme;\r\n if (props.readOnly)\r\n clientOptions.readOnly = props.readOnly;\r\n if (props.placeholder)\r\n clientOptions.placeholder = props.placeholder;\r\n if (props.toolbar && props.toolbar !== '') {\r\n clientOptions.modules = {\r\n toolbar: (() => {\r\n if (typeof props.toolbar === 'object') {\r\n return props.toolbar;\r\n }\r\n else if (typeof props.toolbar === 'string') {\r\n const str = props.toolbar;\r\n return str.charAt(0) === '#'\r\n ? props.toolbar\r\n : toolbarOptions[props.toolbar];\r\n }\r\n return;\r\n })(),\r\n };\r\n }\r\n if (props.modules) {\r\n const modules = (() => {\r\n var _a, _b;\r\n const modulesOption = {};\r\n if (Array.isArray(props.modules)) {\r\n for (const module of props.modules) {\r\n modulesOption[module.name] = (_a = module.options) !== null && _a !== void 0 ? _a : {};\r\n }\r\n }\r\n else {\r\n modulesOption[props.modules.name] = (_b = props.modules.options) !== null && _b !== void 0 ? _b : {};\r\n }\r\n return modulesOption;\r\n })();\r\n clientOptions.modules = Object.assign({}, clientOptions.modules, modules);\r\n }\r\n return Object.assign({}, props.globalOptions, props.options, clientOptions);\r\n };\r\n const maybeClone = (delta) => {\r\n return typeof delta === 'object' && delta ? delta.slice() : delta;\r\n };\r\n const deltaHasValuesOtherThanRetain = (delta) => {\r\n return Object.values(delta.ops).some((v) => !v.retain || Object.keys(v).length !== 1);\r\n };\r\n // Doesn't need reactivity, but does need to be cloned to avoid deep mutations always registering as equal\r\n let internalModel;\r\n const internalModelEquals = (against) => {\r\n if (typeof internalModel === typeof against) {\r\n if (against === internalModel) {\r\n return true;\r\n }\r\n // Ref/Proxy does not support instanceof, so do a loose check\r\n if (typeof against === 'object' &&\r\n against &&\r\n typeof internalModel === 'object' &&\r\n internalModel) {\r\n return !deltaHasValuesOtherThanRetain(internalModel.diff(against));\r\n }\r\n }\r\n return false;\r\n };\r\n const handleTextChange = (delta, oldContents, source) => {\r\n internalModel = maybeClone(getContents());\r\n // Update v-model:content when text changes\r\n if (!internalModelEquals(props.content)) {\r\n ctx.emit('update:content', internalModel);\r\n }\r\n ctx.emit('textChange', { delta, oldContents, source });\r\n };\r\n const isEditorFocus = ref();\r\n const handleSelectionChange = (range, oldRange, source) => {\r\n // Set isEditorFocus if quill.hasFocus()\r\n isEditorFocus.value = !!(quill === null || quill === void 0 ? void 0 : quill.hasFocus());\r\n ctx.emit('selectionChange', { range, oldRange, source });\r\n };\r\n watch(isEditorFocus, (focus) => {\r\n if (focus)\r\n ctx.emit('focus', editor);\r\n else\r\n ctx.emit('blur', editor);\r\n });\r\n const handleEditorChange = (...args) => {\r\n if (args[0] === 'text-change')\r\n ctx.emit('editorChange', {\r\n name: args[0],\r\n delta: args[1],\r\n oldContents: args[2],\r\n source: args[3],\r\n });\r\n if (args[0] === 'selection-change')\r\n ctx.emit('editorChange', {\r\n name: args[0],\r\n range: args[1],\r\n oldRange: args[2],\r\n source: args[3],\r\n });\r\n };\r\n const getEditor = () => {\r\n return editor.value;\r\n };\r\n const getToolbar = () => {\r\n var _a;\r\n return (_a = quill === null || quill === void 0 ? void 0 : quill.getModule('toolbar')) === null || _a === void 0 ? void 0 : _a.container;\r\n };\r\n const getQuill = () => {\r\n if (quill)\r\n return quill;\r\n else\r\n throw `The quill editor hasn't been instantiated yet,\n make sure to call this method when the editor ready\n or use v-on:ready=\"onReady(quill)\" event instead.`;\r\n };\r\n const getContents = (index, length) => {\r\n if (props.contentType === 'html') {\r\n return getHTML();\r\n }\r\n else if (props.contentType === 'text') {\r\n return getText(index, length);\r\n }\r\n return quill === null || quill === void 0 ? void 0 : quill.getContents(index, length);\r\n };\r\n const setContents = (content, source = 'api') => {\r\n const normalizedContent = !content\r\n ? props.contentType === 'delta'\r\n ? new Delta()\r\n : ''\r\n : content;\r\n if (props.contentType === 'html') {\r\n setHTML(normalizedContent);\r\n }\r\n else if (props.contentType === 'text') {\r\n setText(normalizedContent, source);\r\n }\r\n else {\r\n quill === null || quill === void 0 ? void 0 : quill.setContents(normalizedContent, source);\r\n }\r\n internalModel = maybeClone(normalizedContent);\r\n };\r\n const getText = (index, length) => {\r\n var _a;\r\n return (_a = quill === null || quill === void 0 ? void 0 : quill.getText(index, length)) !== null && _a !== void 0 ? _a : '';\r\n };\r\n const setText = (text, source = 'api') => {\r\n quill === null || quill === void 0 ? void 0 : quill.setText(text, source);\r\n };\r\n const getHTML = () => {\r\n var _a;\r\n return (_a = quill === null || quill === void 0 ? void 0 : quill.root.innerHTML) !== null && _a !== void 0 ? _a : '';\r\n };\r\n const setHTML = (html) => {\r\n if (quill)\r\n quill.root.innerHTML = html;\r\n };\r\n const pasteHTML = (html, source = 'api') => {\r\n const delta = quill === null || quill === void 0 ? void 0 : quill.clipboard.convert(html);\r\n if (delta)\r\n quill === null || quill === void 0 ? void 0 : quill.setContents(delta, source);\r\n };\r\n const focus = () => {\r\n quill === null || quill === void 0 ? void 0 : quill.focus();\r\n };\r\n const reinit = () => {\r\n nextTick(() => {\r\n var _a;\r\n if (!ctx.slots.toolbar && quill)\r\n (_a = quill.getModule('toolbar')) === null || _a === void 0 ? void 0 : _a.container.remove();\r\n initialize();\r\n });\r\n };\r\n watch(() => props.content, (newContent) => {\r\n if (!quill || !newContent || internalModelEquals(newContent))\r\n return;\r\n // Restore the selection and cursor position after updating the content\r\n const selection = quill.getSelection();\r\n if (selection) {\r\n nextTick(() => quill === null || quill === void 0 ? void 0 : quill.setSelection(selection));\r\n }\r\n setContents(newContent);\r\n }, { deep: true });\r\n watch(() => props.enable, (newValue) => {\r\n if (quill)\r\n quill.enable(newValue);\r\n });\r\n return {\r\n editor,\r\n getEditor,\r\n getToolbar,\r\n getQuill,\r\n getContents,\r\n setContents,\r\n getHTML,\r\n setHTML,\r\n pasteHTML,\r\n focus,\r\n getText,\r\n setText,\r\n reinit,\r\n };\r\n },\r\n render() {\r\n var _a, _b;\r\n return [\r\n (_b = (_a = this.$slots).toolbar) === null || _b === void 0 ? void 0 : _b.call(_a),\r\n h('div', { ref: 'editor', ...this.$attrs }),\r\n ];\r\n },\r\n});\n\nexport { QuillEditor };\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|Object} [cursor_pos] Edit position in text1 or object with more info\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos, _fix_unicode) {\n // Check for equality\n if (text1 === text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n if (cursor_pos != null) {\n var editdiff = find_cursor_edit_diff(text1, text2, cursor_pos);\n if (editdiff) {\n return editdiff;\n }\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, _fix_unicode);\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 = [\n [DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]\n ];\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 (\n x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) === text2.charAt(y1)\n ) {\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 (\n x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) === text2.charAt(text2_length - y2 - 1)\n ) {\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 (\n text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)\n ) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_start(text1.charCodeAt(pointermid - 1))) {\n pointermid--;\n }\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 || text1.slice(-1) !== text2.slice(-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 (\n text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)\n ) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_end(text1.charCodeAt(text1.length - pointermid))) {\n pointermid--;\n }\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.} 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.} 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(\n longtext.substring(i), shorttext.substring(j));\n var suffixLength = diff_commonSuffix(\n longtext.substring(0, i), shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(\n j - suffixLength, j) + 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 [\n best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common\n ];\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, Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext, 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 * @param {boolean} fix_unicode Whether to normalize to a unicode-correct diff\n */\nfunction diff_cleanupMerge(diffs, fix_unicode) {\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 if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n diffs.splice(pointer, 1);\n continue;\n }\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n\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 var previous_equality = pointer - count_insert - count_delete - 1;\n if (fix_unicode) {\n // prevent splitting of unicode surrogate pairs. when fix_unicode is true,\n // we assume that the old and new text in the diff are complete and correct\n // unicode-encoded JS strings, but the tuple boundaries may fall between\n // surrogate pairs. we fix this by shaving off stray surrogates from the end\n // of the previous equality and the beginning of this equality. this may create\n // empty equalities or a common prefix or suffix. for example, if AB and AC are\n // emojis, `[[0, 'A'], [-1, 'BA'], [0, 'C']]` would turn into deleting 'ABAC' and\n // inserting 'AC', and then the common suffix 'AC' will be eliminated. in this\n // particular case, both equalities go away, we absorb any previous inequalities,\n // and we keep scanning for the next equality before rewriting the tuples.\n if (previous_equality >= 0 && ends_with_pair_start(diffs[previous_equality][1])) {\n var stray = diffs[previous_equality][1].slice(-1);\n diffs[previous_equality][1] = diffs[previous_equality][1].slice(0, -1);\n text_delete = stray + text_delete;\n text_insert = stray + text_insert;\n if (!diffs[previous_equality][1]) {\n // emptied out previous equality, so delete it and include previous delete/insert\n diffs.splice(previous_equality, 1);\n pointer--;\n var k = previous_equality - 1;\n if (diffs[k] && diffs[k][0] === DIFF_INSERT) {\n count_insert++;\n text_insert = diffs[k][1] + text_insert;\n k--;\n }\n if (diffs[k] && diffs[k][0] === DIFF_DELETE) {\n count_delete++;\n text_delete = diffs[k][1] + text_delete;\n k--;\n }\n previous_equality = k;\n }\n }\n if (starts_with_pair_end(diffs[pointer][1])) {\n var stray = diffs[pointer][1].charAt(0);\n diffs[pointer][1] = diffs[pointer][1].slice(1);\n text_delete += stray;\n text_insert += stray;\n }\n }\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n // for empty equality not at end, wait for next equality\n diffs.splice(pointer, 1);\n break;\n }\n if (text_delete.length > 0 || text_insert.length > 0) {\n // note that diff_commonPrefix and diff_commonSuffix are unicode-aware\n if (text_delete.length > 0 && text_insert.length > 0) {\n // Factor out any common prefixes.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if (previous_equality >= 0) {\n diffs[previous_equality][1] += text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL, 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 suffixes.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] =\n text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length - commonlength);\n text_delete = text_delete.substring(0, text_delete.length - commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n var n = count_insert + count_delete;\n if (text_delete.length === 0 && text_insert.length === 0) {\n diffs.splice(pointer - n, n);\n pointer = pointer - n;\n } else if (text_delete.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 1;\n } else if (text_insert.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete]);\n pointer = pointer - n + 1;\n } else {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 2;\n }\n }\n 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: ABAC -> ABAC\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, fix_unicode);\n }\n};\n\nfunction is_surrogate_pair_start(charCode) {\n return charCode >= 0xD800 && charCode <= 0xDBFF;\n}\n\nfunction is_surrogate_pair_end(charCode) {\n return charCode >= 0xDC00 && charCode <= 0xDFFF;\n}\n\nfunction starts_with_pair_end(str) {\n return is_surrogate_pair_end(str.charCodeAt(0));\n}\n\nfunction ends_with_pair_start(str) {\n return is_surrogate_pair_start(str.charCodeAt(str.length - 1));\n}\n\nfunction remove_empty_tuples(tuples) {\n var ret = [];\n for (var i = 0; i < tuples.length; i++) {\n if (tuples[i][1].length > 0) {\n ret.push(tuples[i]);\n }\n }\n return ret;\n}\n\nfunction make_edit_splice(before, oldMiddle, newMiddle, after) {\n if (ends_with_pair_start(before) || starts_with_pair_end(after)) {\n return null;\n }\n return remove_empty_tuples([\n [DIFF_EQUAL, before],\n [DIFF_DELETE, oldMiddle],\n [DIFF_INSERT, newMiddle],\n [DIFF_EQUAL, after]\n ]);\n}\n\nfunction find_cursor_edit_diff(oldText, newText, cursor_pos) {\n // note: this runs after equality check has ruled out exact equality\n var oldRange = typeof cursor_pos === 'number' ?\n { index: cursor_pos, length: 0 } : cursor_pos.oldRange;\n var newRange = typeof cursor_pos === 'number' ?\n null : cursor_pos.newRange;\n // take into account the old and new selection to generate the best diff\n // possible for a text edit. for example, a text change from \"xxx\" to \"xx\"\n // could be a delete or forwards-delete of any one of the x's, or the\n // result of selecting two of the x's and typing \"x\".\n var oldLength = oldText.length;\n var newLength = newText.length;\n if (oldRange.length === 0 && (newRange === null || newRange.length === 0)) {\n // see if we have an insert or delete before or after cursor\n var oldCursor = oldRange.index;\n var oldBefore = oldText.slice(0, oldCursor);\n var oldAfter = oldText.slice(oldCursor);\n var maybeNewCursor = newRange ? newRange.index : null;\n editBefore: {\n // is this an insert or delete right before oldCursor?\n var newCursor = oldCursor + newLength - oldLength;\n if (maybeNewCursor !== null && maybeNewCursor !== newCursor) {\n break editBefore;\n }\n if (newCursor < 0 || newCursor > newLength) {\n break editBefore;\n }\n var newBefore = newText.slice(0, newCursor);\n var newAfter = newText.slice(newCursor);\n if (newAfter !== oldAfter) {\n break editBefore;\n }\n var prefixLength = Math.min(oldCursor, newCursor);\n var oldPrefix = oldBefore.slice(0, prefixLength);\n var newPrefix = newBefore.slice(0, prefixLength);\n if (oldPrefix !== newPrefix) {\n break editBefore;\n }\n var oldMiddle = oldBefore.slice(prefixLength);\n var newMiddle = newBefore.slice(prefixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldAfter);\n }\n editAfter: {\n // is this an insert or delete right after oldCursor?\n if (maybeNewCursor !== null && maybeNewCursor !== oldCursor) {\n break editAfter;\n }\n var cursor = oldCursor;\n var newBefore = newText.slice(0, cursor);\n var newAfter = newText.slice(cursor);\n if (newBefore !== oldBefore) {\n break editAfter;\n }\n var suffixLength = Math.min(oldLength - cursor, newLength - cursor);\n var oldSuffix = oldAfter.slice(oldAfter.length - suffixLength);\n var newSuffix = newAfter.slice(newAfter.length - suffixLength);\n if (oldSuffix !== newSuffix) {\n break editAfter;\n }\n var oldMiddle = oldAfter.slice(0, oldAfter.length - suffixLength);\n var newMiddle = newAfter.slice(0, newAfter.length - suffixLength);\n return make_edit_splice(oldBefore, oldMiddle, newMiddle, oldSuffix);\n }\n }\n if (oldRange.length > 0 && newRange && newRange.length === 0) {\n replaceRange: {\n // see if diff could be a splice of the old selection range\n var oldPrefix = oldText.slice(0, oldRange.index);\n var oldSuffix = oldText.slice(oldRange.index + oldRange.length);\n var prefixLength = oldPrefix.length;\n var suffixLength = oldSuffix.length;\n if (newLength < prefixLength + suffixLength) {\n break replaceRange;\n }\n var newPrefix = newText.slice(0, prefixLength);\n var newSuffix = newText.slice(newLength - suffixLength);\n if (oldPrefix !== newPrefix || oldSuffix !== newSuffix) {\n break replaceRange;\n }\n var oldMiddle = oldText.slice(prefixLength, oldLength - suffixLength);\n var newMiddle = newText.slice(prefixLength, newLength - suffixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldSuffix);\n }\n }\n\n return null;\n}\n\nfunction diff(text1, text2, cursor_pos) {\n // only pass fix_unicode=true at the top level, not when diff_main is\n // recursively invoked\n return diff_main(text1, text2, cursor_pos, true);\n}\n\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\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/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\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 `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\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 * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\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/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\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 nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\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 `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\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 != null && (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 != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar lodash_clonedeep_1 = __importDefault(require(\"lodash.clonedeep\"));\nvar lodash_isequal_1 = __importDefault(require(\"lodash.isequal\"));\nvar AttributeMap;\n(function (AttributeMap) {\n function compose(a, b, keepNull) {\n if (a === void 0) { a = {}; }\n if (b === void 0) { b = {}; }\n if (typeof a !== 'object') {\n a = {};\n }\n if (typeof b !== 'object') {\n b = {};\n }\n var attributes = lodash_clonedeep_1.default(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 AttributeMap.compose = compose;\n function diff(a, b) {\n if (a === void 0) { a = {}; }\n if (b === void 0) { b = {}; }\n if (typeof a !== 'object') {\n a = {};\n }\n if (typeof b !== 'object') {\n b = {};\n }\n var attributes = Object.keys(a)\n .concat(Object.keys(b))\n .reduce(function (attrs, key) {\n if (!lodash_isequal_1.default(a[key], b[key])) {\n attrs[key] = b[key] === undefined ? null : b[key];\n }\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.diff = diff;\n function invert(attr, base) {\n if (attr === void 0) { attr = {}; }\n if (base === void 0) { base = {}; }\n attr = attr || {};\n var baseInverted = Object.keys(base).reduce(function (memo, key) {\n if (base[key] !== attr[key] && attr[key] !== undefined) {\n memo[key] = base[key];\n }\n return memo;\n }, {});\n return Object.keys(attr).reduce(function (memo, key) {\n if (attr[key] !== base[key] && base[key] === undefined) {\n memo[key] = null;\n }\n return memo;\n }, baseInverted);\n }\n AttributeMap.invert = invert;\n function transform(a, b, priority) {\n if (priority === void 0) { priority = false; }\n if (typeof a !== 'object') {\n return b;\n }\n if (typeof b !== 'object') {\n return undefined;\n }\n if (!priority) {\n return b; // b simply overwrites us without priority\n }\n var attributes = Object.keys(b).reduce(function (attrs, key) {\n if (a[key] === undefined) {\n attrs[key] = b[key]; // null is a valid value\n }\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.transform = transform;\n})(AttributeMap || (AttributeMap = {}));\nexports.default = AttributeMap;\n//# sourceMappingURL=AttributeMap.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar fast_diff_1 = __importDefault(require(\"fast-diff\"));\nvar lodash_clonedeep_1 = __importDefault(require(\"lodash.clonedeep\"));\nvar lodash_isequal_1 = __importDefault(require(\"lodash.isequal\"));\nvar AttributeMap_1 = __importDefault(require(\"./AttributeMap\"));\nvar Op_1 = __importDefault(require(\"./Op\"));\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\nvar Delta = /** @class */ (function () {\n function Delta(ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n }\n else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n }\n else {\n this.ops = [];\n }\n }\n Delta.prototype.insert = function (arg, attributes) {\n var newOp = {};\n if (typeof arg === 'string' && arg.length === 0) {\n return this;\n }\n newOp.insert = arg;\n if (attributes != null &&\n typeof attributes === 'object' &&\n Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n };\n Delta.prototype.delete = function (length) {\n if (length <= 0) {\n return this;\n }\n return this.push({ delete: length });\n };\n Delta.prototype.retain = function (length, attributes) {\n if (length <= 0) {\n return this;\n }\n var newOp = { retain: length };\n if (attributes != null &&\n typeof attributes === 'object' &&\n Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n };\n Delta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = lodash_clonedeep_1.default(newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp.delete === 'number' &&\n 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 (lodash_isequal_1.default(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' &&\n typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n return this;\n }\n else if (typeof newOp.retain === 'number' &&\n typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n }\n else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n };\n Delta.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 Delta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n };\n Delta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n };\n Delta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n };\n Delta.prototype.partition = function (predicate) {\n var passed = [];\n var failed = [];\n this.forEach(function (op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n };\n Delta.prototype.reduce = function (predicate, initialValue) {\n return this.ops.reduce(predicate, initialValue);\n };\n Delta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + Op_1.default.length(elem);\n }\n else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n };\n Delta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + Op_1.default.length(elem);\n }, 0);\n };\n Delta.prototype.slice = function (start, end) {\n if (start === void 0) { start = 0; }\n if (end === void 0) { end = Infinity; }\n var ops = [];\n var iter = Op_1.default.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp = void 0;\n if (index < start) {\n nextOp = iter.next(start - index);\n }\n else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += Op_1.default.length(nextOp);\n }\n return new Delta(ops);\n };\n Delta.prototype.compose = function (other) {\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null &&\n typeof firstOther.retain === 'number' &&\n firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' &&\n thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n }\n else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n }\n else {\n var length_1 = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length_1);\n var otherOp = otherIter.next(length_1);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length_1;\n }\n else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = AttributeMap_1.default.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) {\n newOp.attributes = attributes;\n }\n delta.push(newOp);\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() &&\n lodash_isequal_1.default(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n }\n else if (typeof otherOp.delete === 'number' &&\n typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n };\n Delta.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 Delta.prototype.diff = function (other, cursor) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta\n .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 })\n .join('');\n });\n var retDelta = new Delta();\n var diffResult = fast_diff_1.default(strings[0], strings[1], cursor);\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.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 fast_diff_1.default.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n retDelta.push(otherIter.next(opLength));\n break;\n case fast_diff_1.default.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n retDelta.delete(opLength);\n break;\n case fast_diff_1.default.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (lodash_isequal_1.default(thisOp.insert, otherOp.insert)) {\n retDelta.retain(opLength, AttributeMap_1.default.diff(thisOp.attributes, otherOp.attributes));\n }\n else {\n retDelta.push(otherOp).delete(opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return retDelta.chop();\n };\n Delta.prototype.eachLine = function (predicate, newline) {\n if (newline === void 0) { newline = '\\n'; }\n var iter = Op_1.default.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') {\n return;\n }\n var thisOp = iter.peek();\n var start = Op_1.default.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string'\n ? thisOp.insert.indexOf(newline, start) - start\n : -1;\n if (index < 0) {\n line.push(iter.next());\n }\n else if (index > 0) {\n line.push(iter.next(index));\n }\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 Delta.prototype.invert = function (base) {\n var inverted = new Delta();\n this.reduce(function (baseIndex, op) {\n if (op.insert) {\n inverted.delete(Op_1.default.length(op));\n }\n else if (op.retain && op.attributes == null) {\n inverted.retain(op.retain);\n return baseIndex + op.retain;\n }\n else if (op.delete || (op.retain && op.attributes)) {\n var length_2 = (op.delete || op.retain);\n var slice = base.slice(baseIndex, baseIndex + length_2);\n slice.forEach(function (baseOp) {\n if (op.delete) {\n inverted.push(baseOp);\n }\n else if (op.retain && op.attributes) {\n inverted.retain(Op_1.default.length(baseOp), AttributeMap_1.default.invert(op.attributes, baseOp.attributes));\n }\n });\n return baseIndex + length_2;\n }\n return baseIndex;\n }, 0);\n return inverted.chop();\n };\n Delta.prototype.transform = function (arg, priority) {\n if (priority === void 0) { priority = false; }\n priority = !!priority;\n if (typeof arg === 'number') {\n return this.transformPosition(arg, priority);\n }\n var other = arg;\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' &&\n (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(Op_1.default.length(thisIter.next()));\n }\n else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n }\n else {\n var length_3 = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length_3);\n var otherOp = otherIter.next(length_3);\n if (thisOp.delete) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n }\n else if (otherOp.delete) {\n delta.push(otherOp);\n }\n else {\n // We retain either their retain or insert\n delta.retain(length_3, AttributeMap_1.default.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n };\n Delta.prototype.transformPosition = function (index, priority) {\n if (priority === void 0) { priority = false; }\n priority = !!priority;\n var thisIter = Op_1.default.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length_4 = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length_4, index - offset);\n continue;\n }\n else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length_4;\n }\n offset += length_4;\n }\n return index;\n };\n Delta.Op = Op_1.default;\n Delta.AttributeMap = AttributeMap_1.default;\n return Delta;\n}());\nmodule.exports = Delta;\n//# sourceMappingURL=Delta.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Op_1 = __importDefault(require(\"./Op\"));\nvar Iterator = /** @class */ (function () {\n function Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n }\n Iterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n };\n Iterator.prototype.next = function (length) {\n if (!length) {\n length = Infinity;\n }\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = Op_1.default.length(nextOp);\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n }\n else {\n this.offset += length;\n }\n if (typeof nextOp.delete === 'number') {\n return { delete: length };\n }\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 }\n else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n }\n else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n }\n else {\n return { retain: Infinity };\n }\n };\n Iterator.prototype.peek = function () {\n return this.ops[this.index];\n };\n Iterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return Op_1.default.length(this.ops[this.index]) - this.offset;\n }\n else {\n return Infinity;\n }\n };\n Iterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index].delete === 'number') {\n return 'delete';\n }\n else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n }\n else {\n return 'insert';\n }\n }\n return 'retain';\n };\n Iterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n }\n else if (this.offset === 0) {\n return this.ops.slice(this.index);\n }\n else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n };\n return Iterator;\n}());\nexports.default = Iterator;\n//# sourceMappingURL=Iterator.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Iterator_1 = __importDefault(require(\"./Iterator\"));\nvar Op;\n(function (Op) {\n function iterator(ops) {\n return new Iterator_1.default(ops);\n }\n Op.iterator = iterator;\n function length(op) {\n if (typeof op.delete === 'number') {\n return op.delete;\n }\n else if (typeof op.retain === 'number') {\n return op.retain;\n }\n else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n Op.length = length;\n})(Op || (Op = {}));\nexports.default = Op;\n//# sourceMappingURL=Op.js.map","/*!\n * Quill Editor v1.3.7\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 ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\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\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\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;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\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\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\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 = getProperty(target, name);\n\t\t\t\tcopy = getProperty(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\tsetProperty(target, { name: name, newValue: 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\tsetProperty(target, { name: name, newValue: 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('
' + html + '


');\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.7\";\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 var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _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\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\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 if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\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('rel', 'noopener noreferrer');\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.} 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.} 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: ABAC -> ABAC\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 +\\<'); // 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  \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 = \" \";\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 = ['', '', '', ''].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 = \" \";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\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 = ['', '
', '', '', '
'].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});","export class langdrivers {\n public key: string = \"\";\n public value: string = \"\";\n}\nexport enum zone { ownconfig = 0, sharedconfig = 1, afficheranonyme = 2, sharedconfiguser = 3 };\nexport enum categories { PCIDisplay, PCIStockage, Motherboard, PCINetwork, PCIMultimedia, Mouse, Keyboard, PCIUSB, PCIFirewire, USBMultimedia, USB, USBClass, Firewire, Processor, PNP, HardDrive, Optical, Ecran, Imprimante, PCIothers, Others };\n\nexport class ConfMenuElem {\n public id: number = 0;\n public text: string = \"\";\n public selected: boolean = false;\n public url: string = \"\";\n}\n\nexport class MesDriversMenuOS2 {\n public name: string = \"\";\n public value: number = 0;\n public archi: number = 0;\n}\n\nexport class HidElem {\n public id: number = 0;\n public infid: number = 0;\n public idpackage: number = 0;\n public constid: number = 0;\n public hid:string=\"\";\n public matosid: number = 0;\n public date: Date | null=null;\n public version: string = \"\";\n public nameinf: string = \"\";\n public vendor: string = \"\";\n public classe: string = \"\";\n public whql: boolean = false;\n public beta: boolean = false;\n public oem: boolean = false;\n public datepubli!:Date;\n public datepubli1:Date|null=null;\n public url: string = \"\";\n public md5: string = \"\";\n public namedriver: string = \"\";\n public cat: number = 0;\n public subsysid: number = 0;\n public mcvendorid: number = 0;\n public driveronftp: boolean = false;\n public os:number[]=[];\n public nameos: string = \"\";\n public langue: string = \"\";\n public sizefile: number = 0;\n public versionproduct: string = \"\";\n public mcvendor: string = \"\";\n public inf_stateupdate: number = 0;\n public infpath: string = \"\";\n public package: number = 0;\n public hasinfzip: boolean = false;\n public listeos: string = \"\";\n public sizeinoctets: string = \"\";\n public urlinformationdriver: string = \"\";\n}\n\nexport class MesDriversMenuOptions2 {\n public label: string = \"\";\n public show: boolean = false;\n public ischecked: boolean = false;\n}\n\nexport class MesDriversDriver2 {\n public driver_ignoredriver: boolean = false;\n public driver_urldrivers: string = \"\";\n public driver_constructeur: string = \"\";\n public driver_nom: string = \"\";\n public driver_version: string = \"\";\n public driver_date: Date | null = null;\n public driver_datepubli: Date | null = null;\n public driver_md5: string = \"\";\n public driver_oem: boolean = false;\n public driver_cat: number = 0;\n public driver_sizefile: string = \"\";\n public driver_versionproduct: string = \"\";\n public driver_whql: boolean = false;\n public driver_beta: boolean = false;\n public inf_fichier: string = \"\";\n public inf_provider: string = \"\";\n public inf_version: string = \"\";\n public inf_date: Date | null = null;\n public inf_classe: string = \"\";\n public inf_classe_guid: string = \"\";\n public driver_requete: number = 0;\n public inf_hassubsys: number = 0;\n public driver_url: string = \"\";\n public driver_url2: string = \"\";\n public driver_ficheurl: string = \"\";\n public stateupdate: number = 0;\n public driver_code: number = 0;\n public inf_code: number = 0;\n public driver_note: number = 0;\n public inf_path: string = \"\";\n public inf_urlauto: string = \"\";\n public driver_hasinfzip: boolean = false;\n public inf_idpackage: number = 0;\n}\n\nexport class MesDriversMatos2 {\n public materiel_id: number = 0;\n public materiel_categorie: categories = categories.Others;\n public materiel_icone: string = \"\";\n public materiel_devicename: string = \"\";\n public materiel_providername: string = \"\";\n public materiel_installed: boolean = false;\n public materiel_probleme: boolean = false;\n public materiel_classe: string = \"\";\n public materiel_classe_guid: string = \"\";\n public materiel_version: string = \"\";\n public materiel_fichier: string = \"\";\n public materiel_hid: string = \"\";\n public materiel_urllaptop2go: string = \"\";\n public materiel_date: Date | null = null;\n public materiel_driversanterieur: boolean = true;\n public drivers: MesDriversDriver2[] = [];\n}\n\n\n\nexport class MaterielXMLRelation {\n public key: categories = categories.Others;\n public value: MesDriversMatos2[] = [];\n public active: boolean = true;\n}\n\nexport class ConfMenuToolbar {\n public text: string = \"\";\n public icon: string = \"\";\n public url: string = \"\";\n public clickevent: string = \"\";\n}\n\nexport class ServiceDriversApiViewModel {\n public m_iduser: number = 0;\n public m_islogin: boolean = false;\n public m_machine: number = 0;\n public m_dateconfigexpiration: Date | null = null;\n public m_zone: zone = zone.afficheranonyme;\n public m_idconfig: number = 0;\n public confmachines: ConfMenuElem[] = [];\n public confmachinesshare: ConfMenuElem[] = [];\n public conftoolbar: ConfMenuToolbar[] = [];\n public conftoolbar2: ConfMenuToolbar[] = [];\n public m_listecategories: categories[] = [];\n public osactual: number = 0;\n public menuos: MesDriversMenuOS2[] = [];\n public mcdroptions: MesDriversMenuOptions2[] = [];\n public mcdroptions2: MesDriversMenuOptions2[] = [];\n public mesdriverserror: string = \"\";\n public installauto: boolean = false;\n public materielxmlrelations: MaterielXMLRelation[] = [];\n public notifemail: boolean = false;\n public m_erreur: string = \"\";\n public m_msgnewversion: string = \"\";\n}\n\nexport class DriversAutoRequest {\n public idconfig: number = 0;\n public checkeddrivers: number[] = [];\n }","/*!\n * perfect-scrollbar v1.5.6\n * Copyright 2024 Hyunje Jun, MDBootstrap and Contributors\n * Licensed under MIT\n */\n\nfunction get(element) {\n return getComputedStyle(element);\n}\n\nfunction set(element, obj) {\n for (var key in obj) {\n var val = obj[key];\n if (typeof val === 'number') {\n val = val + \"px\";\n }\n element.style[key] = val;\n }\n return element;\n}\n\nfunction div(className) {\n var div = document.createElement('div');\n div.className = className;\n return div;\n}\n\nvar elMatches =\n typeof Element !== 'undefined' &&\n (Element.prototype.matches ||\n Element.prototype.webkitMatchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector);\n\nfunction matches(element, query) {\n if (!elMatches) {\n throw new Error('No element matching method supported');\n }\n\n return elMatches.call(element, query);\n}\n\nfunction remove(element) {\n if (element.remove) {\n element.remove();\n } else {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n }\n}\n\nfunction queryChildren(element, selector) {\n return Array.prototype.filter.call(element.children, function (child) { return matches(child, selector); }\n );\n}\n\nvar cls = {\n main: 'ps',\n rtl: 'ps__rtl',\n element: {\n thumb: function (x) { return (\"ps__thumb-\" + x); },\n rail: function (x) { return (\"ps__rail-\" + x); },\n consuming: 'ps__child--consume',\n },\n state: {\n focus: 'ps--focus',\n clicking: 'ps--clicking',\n active: function (x) { return (\"ps--active-\" + x); },\n scrolling: function (x) { return (\"ps--scrolling-\" + x); },\n },\n};\n\n/*\n * Helper methods\n */\nvar scrollingClassTimeout = { x: null, y: null };\n\nfunction addScrollingClass(i, x) {\n var classList = i.element.classList;\n var className = cls.state.scrolling(x);\n\n if (classList.contains(className)) {\n clearTimeout(scrollingClassTimeout[x]);\n } else {\n classList.add(className);\n }\n}\n\nfunction removeScrollingClass(i, x) {\n scrollingClassTimeout[x] = setTimeout(\n function () { return i.isAlive && i.element.classList.remove(cls.state.scrolling(x)); },\n i.settings.scrollingThreshold\n );\n}\n\nfunction setScrollingClassInstantly(i, x) {\n addScrollingClass(i, x);\n removeScrollingClass(i, x);\n}\n\nvar EventElement = function EventElement(element) {\n this.element = element;\n this.handlers = {};\n};\n\nvar prototypeAccessors = { isEmpty: { configurable: true } };\n\nEventElement.prototype.bind = function bind (eventName, handler) {\n if (typeof this.handlers[eventName] === 'undefined') {\n this.handlers[eventName] = [];\n }\n this.handlers[eventName].push(handler);\n this.element.addEventListener(eventName, handler, false);\n};\n\nEventElement.prototype.unbind = function unbind (eventName, target) {\n var this$1 = this;\n\n this.handlers[eventName] = this.handlers[eventName].filter(function (handler) {\n if (target && handler !== target) {\n return true;\n }\n this$1.element.removeEventListener(eventName, handler, false);\n return false;\n });\n};\n\nEventElement.prototype.unbindAll = function unbindAll () {\n for (var name in this.handlers) {\n this.unbind(name);\n }\n};\n\nprototypeAccessors.isEmpty.get = function () {\n var this$1 = this;\n\n return Object.keys(this.handlers).every(\n function (key) { return this$1.handlers[key].length === 0; }\n );\n};\n\nObject.defineProperties( EventElement.prototype, prototypeAccessors );\n\nvar EventManager = function EventManager() {\n this.eventElements = [];\n};\n\nEventManager.prototype.eventElement = function eventElement (element) {\n var ee = this.eventElements.filter(function (ee) { return ee.element === element; })[0];\n if (!ee) {\n ee = new EventElement(element);\n this.eventElements.push(ee);\n }\n return ee;\n};\n\nEventManager.prototype.bind = function bind (element, eventName, handler) {\n this.eventElement(element).bind(eventName, handler);\n};\n\nEventManager.prototype.unbind = function unbind (element, eventName, handler) {\n var ee = this.eventElement(element);\n ee.unbind(eventName, handler);\n\n if (ee.isEmpty) {\n // remove\n this.eventElements.splice(this.eventElements.indexOf(ee), 1);\n }\n};\n\nEventManager.prototype.unbindAll = function unbindAll () {\n this.eventElements.forEach(function (e) { return e.unbindAll(); });\n this.eventElements = [];\n};\n\nEventManager.prototype.once = function once (element, eventName, handler) {\n var ee = this.eventElement(element);\n var onceHandler = function (evt) {\n ee.unbind(eventName, onceHandler);\n handler(evt);\n };\n ee.bind(eventName, onceHandler);\n};\n\nfunction createEvent(name) {\n if (typeof window.CustomEvent === 'function') {\n return new CustomEvent(name);\n }\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(name, false, false, undefined);\n return evt;\n}\n\nfunction processScrollDiff (i, axis, diff, useScrollingClass, forceFireReachEvent) {\n if ( useScrollingClass === void 0 ) useScrollingClass = true;\n if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;\n\n var fields;\n if (axis === 'top') {\n fields = ['contentHeight', 'containerHeight', 'scrollTop', 'y', 'up', 'down'];\n } else if (axis === 'left') {\n fields = ['contentWidth', 'containerWidth', 'scrollLeft', 'x', 'left', 'right'];\n } else {\n throw new Error('A proper axis should be provided');\n }\n\n processScrollDiff$1(i, diff, fields, useScrollingClass, forceFireReachEvent);\n}\n\nfunction processScrollDiff$1(\n i,\n diff,\n ref,\n useScrollingClass,\n forceFireReachEvent\n) {\n var contentHeight = ref[0];\n var containerHeight = ref[1];\n var scrollTop = ref[2];\n var y = ref[3];\n var up = ref[4];\n var down = ref[5];\n if ( useScrollingClass === void 0 ) useScrollingClass = true;\n if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;\n\n var element = i.element;\n\n // reset reach\n i.reach[y] = null;\n\n // 1 for subpixel rounding\n if (element[scrollTop] < 1) {\n i.reach[y] = 'start';\n }\n\n // 1 for subpixel rounding\n if (element[scrollTop] > i[contentHeight] - i[containerHeight] - 1) {\n i.reach[y] = 'end';\n }\n\n if (diff) {\n element.dispatchEvent(createEvent((\"ps-scroll-\" + y)));\n\n if (diff < 0) {\n element.dispatchEvent(createEvent((\"ps-scroll-\" + up)));\n } else if (diff > 0) {\n element.dispatchEvent(createEvent((\"ps-scroll-\" + down)));\n }\n\n if (useScrollingClass) {\n setScrollingClassInstantly(i, y);\n }\n }\n\n if (i.reach[y] && (diff || forceFireReachEvent)) {\n element.dispatchEvent(createEvent((\"ps-\" + y + \"-reach-\" + (i.reach[y]))));\n }\n}\n\nfunction toInt(x) {\n return parseInt(x, 10) || 0;\n}\n\nfunction isEditable(el) {\n return (\n matches(el, 'input,[contenteditable]') ||\n matches(el, 'select,[contenteditable]') ||\n matches(el, 'textarea,[contenteditable]') ||\n matches(el, 'button,[contenteditable]')\n );\n}\n\nfunction outerWidth(element) {\n var styles = get(element);\n return (\n toInt(styles.width) +\n toInt(styles.paddingLeft) +\n toInt(styles.paddingRight) +\n toInt(styles.borderLeftWidth) +\n toInt(styles.borderRightWidth)\n );\n}\n\nvar env = {\n isWebKit:\n typeof document !== 'undefined' &&\n 'WebkitAppearance' in document.documentElement.style,\n supportsTouch:\n typeof window !== 'undefined' &&\n ('ontouchstart' in window ||\n ('maxTouchPoints' in window.navigator &&\n window.navigator.maxTouchPoints > 0) ||\n (window.DocumentTouch && document instanceof window.DocumentTouch)),\n supportsIePointer:\n typeof navigator !== 'undefined' && navigator.msMaxTouchPoints,\n isChrome:\n typeof navigator !== 'undefined' &&\n /Chrome/i.test(navigator && navigator.userAgent),\n};\n\n/* eslint-disable no-lonely-if */\n\nfunction updateGeometry (i) {\n var element = i.element;\n var roundedScrollTop = Math.floor(element.scrollTop);\n var rect = element.getBoundingClientRect();\n\n i.containerWidth = Math.floor(rect.width);\n i.containerHeight = Math.floor(rect.height);\n\n i.contentWidth = element.scrollWidth;\n i.contentHeight = element.scrollHeight;\n\n if (!element.contains(i.scrollbarXRail)) {\n // clean up and append\n queryChildren(element, cls.element.rail('x')).forEach(function (el) { return remove(el); });\n element.appendChild(i.scrollbarXRail);\n }\n if (!element.contains(i.scrollbarYRail)) {\n // clean up and append\n queryChildren(element, cls.element.rail('y')).forEach(function (el) { return remove(el); });\n element.appendChild(i.scrollbarYRail);\n }\n\n if (\n !i.settings.suppressScrollX &&\n i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth\n ) {\n i.scrollbarXActive = true;\n i.railXWidth = i.containerWidth - i.railXMarginWidth;\n i.railXRatio = i.containerWidth / i.railXWidth;\n i.scrollbarXWidth = getThumbSize(i, toInt((i.railXWidth * i.containerWidth) / i.contentWidth));\n i.scrollbarXLeft = toInt(\n ((i.negativeScrollAdjustment + element.scrollLeft) * (i.railXWidth - i.scrollbarXWidth)) /\n (i.contentWidth - i.containerWidth)\n );\n } else {\n i.scrollbarXActive = false;\n }\n\n if (\n !i.settings.suppressScrollY &&\n i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight\n ) {\n i.scrollbarYActive = true;\n i.railYHeight = i.containerHeight - i.railYMarginHeight;\n i.railYRatio = i.containerHeight / i.railYHeight;\n i.scrollbarYHeight = getThumbSize(\n i,\n toInt((i.railYHeight * i.containerHeight) / i.contentHeight)\n );\n i.scrollbarYTop = toInt(\n (roundedScrollTop * (i.railYHeight - i.scrollbarYHeight)) /\n (i.contentHeight - i.containerHeight)\n );\n } else {\n i.scrollbarYActive = false;\n }\n\n if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) {\n i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth;\n }\n if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) {\n i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight;\n }\n\n updateCss(element, i);\n\n if (i.scrollbarXActive) {\n element.classList.add(cls.state.active('x'));\n } else {\n element.classList.remove(cls.state.active('x'));\n i.scrollbarXWidth = 0;\n i.scrollbarXLeft = 0;\n element.scrollLeft = i.isRtl === true ? i.contentWidth : 0;\n }\n if (i.scrollbarYActive) {\n element.classList.add(cls.state.active('y'));\n } else {\n element.classList.remove(cls.state.active('y'));\n i.scrollbarYHeight = 0;\n i.scrollbarYTop = 0;\n element.scrollTop = 0;\n }\n}\n\nfunction getThumbSize(i, thumbSize) {\n if (i.settings.minScrollbarLength) {\n thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength);\n }\n if (i.settings.maxScrollbarLength) {\n thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength);\n }\n return thumbSize;\n}\n\nfunction updateCss(element, i) {\n var xRailOffset = { width: i.railXWidth };\n var roundedScrollTop = Math.floor(element.scrollTop);\n\n if (i.isRtl) {\n xRailOffset.left =\n i.negativeScrollAdjustment + element.scrollLeft + i.containerWidth - i.contentWidth;\n } else {\n xRailOffset.left = element.scrollLeft;\n }\n if (i.isScrollbarXUsingBottom) {\n xRailOffset.bottom = i.scrollbarXBottom - roundedScrollTop;\n } else {\n xRailOffset.top = i.scrollbarXTop + roundedScrollTop;\n }\n set(i.scrollbarXRail, xRailOffset);\n\n var yRailOffset = { top: roundedScrollTop, height: i.railYHeight };\n if (i.isScrollbarYUsingRight) {\n if (i.isRtl) {\n yRailOffset.right =\n i.contentWidth -\n (i.negativeScrollAdjustment + element.scrollLeft) -\n i.scrollbarYRight -\n i.scrollbarYOuterWidth -\n 9;\n } else {\n yRailOffset.right = i.scrollbarYRight - element.scrollLeft;\n }\n } else {\n if (i.isRtl) {\n yRailOffset.left =\n i.negativeScrollAdjustment +\n element.scrollLeft +\n i.containerWidth * 2 -\n i.contentWidth -\n i.scrollbarYLeft -\n i.scrollbarYOuterWidth;\n } else {\n yRailOffset.left = i.scrollbarYLeft + element.scrollLeft;\n }\n }\n set(i.scrollbarYRail, yRailOffset);\n\n set(i.scrollbarX, {\n left: i.scrollbarXLeft,\n width: i.scrollbarXWidth - i.railBorderXWidth,\n });\n set(i.scrollbarY, {\n top: i.scrollbarYTop,\n height: i.scrollbarYHeight - i.railBorderYWidth,\n });\n}\n\n/* eslint-disable */\n\nfunction clickRail (i) {\n // const element = i.element;\n\n i.event.bind(i.scrollbarY, 'mousedown', function (e) { return e.stopPropagation(); });\n i.event.bind(i.scrollbarYRail, 'mousedown', function (e) {\n var positionTop = e.pageY - window.pageYOffset - i.scrollbarYRail.getBoundingClientRect().top;\n var direction = positionTop > i.scrollbarYTop ? 1 : -1;\n\n i.element.scrollTop += direction * i.containerHeight;\n updateGeometry(i);\n\n e.stopPropagation();\n });\n\n i.event.bind(i.scrollbarX, 'mousedown', function (e) { return e.stopPropagation(); });\n i.event.bind(i.scrollbarXRail, 'mousedown', function (e) {\n var positionLeft =\n e.pageX - window.pageXOffset - i.scrollbarXRail.getBoundingClientRect().left;\n var direction = positionLeft > i.scrollbarXLeft ? 1 : -1;\n\n i.element.scrollLeft += direction * i.containerWidth;\n updateGeometry(i);\n\n e.stopPropagation();\n });\n}\n\nvar activeSlider = null; // Variable to track the currently active slider\n\nfunction setupScrollHandlers(i) {\n bindMouseScrollHandler(i, [\n 'containerHeight',\n 'contentHeight',\n 'pageY',\n 'railYHeight',\n 'scrollbarY',\n 'scrollbarYHeight',\n 'scrollTop',\n 'y',\n 'scrollbarYRail' ]);\n\n bindMouseScrollHandler(i, [\n 'containerWidth',\n 'contentWidth',\n 'pageX',\n 'railXWidth',\n 'scrollbarX',\n 'scrollbarXWidth',\n 'scrollLeft',\n 'x',\n 'scrollbarXRail' ]);\n}\n\nfunction bindMouseScrollHandler(\n i,\n ref\n) {\n var containerDimension = ref[0];\n var contentDimension = ref[1];\n var pageAxis = ref[2];\n var railDimension = ref[3];\n var scrollbarAxis = ref[4];\n var scrollbarDimension = ref[5];\n var scrollAxis = ref[6];\n var axis = ref[7];\n var scrollbarRail = ref[8];\n\n var element = i.element;\n var startingScrollPosition = null;\n var startingMousePagePosition = null;\n var scrollBy = null;\n\n function moveHandler(e) {\n if (e.touches && e.touches[0]) {\n e[pageAxis] = e.touches[0][(\"page\" + (axis.toUpperCase()))];\n }\n\n // Only move if the active slider is the one we started with\n if (activeSlider === scrollbarAxis) {\n element[scrollAxis] =\n startingScrollPosition + scrollBy * (e[pageAxis] - startingMousePagePosition);\n addScrollingClass(i, axis);\n updateGeometry(i);\n\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n function endHandler() {\n removeScrollingClass(i, axis);\n i[scrollbarRail].classList.remove(cls.state.clicking);\n document.removeEventListener('mousemove', moveHandler);\n document.removeEventListener('mouseup', endHandler);\n document.removeEventListener('touchmove', moveHandler);\n document.removeEventListener('touchend', endHandler);\n activeSlider = null; // Reset active slider when interaction ends\n }\n\n function bindMoves(e) {\n if (activeSlider === null) {\n // Only bind if no slider is currently active\n activeSlider = scrollbarAxis; // Set current slider as active\n\n startingScrollPosition = element[scrollAxis];\n if (e.touches) {\n e[pageAxis] = e.touches[0][(\"page\" + (axis.toUpperCase()))];\n }\n startingMousePagePosition = e[pageAxis];\n scrollBy =\n (i[contentDimension] - i[containerDimension]) / (i[railDimension] - i[scrollbarDimension]);\n\n if (!e.touches) {\n document.addEventListener('mousemove', moveHandler);\n document.addEventListener('mouseup', endHandler);\n } else {\n document.addEventListener('touchmove', moveHandler, { passive: false });\n document.addEventListener('touchend', endHandler);\n }\n\n i[scrollbarRail].classList.add(cls.state.clicking);\n }\n\n e.stopPropagation();\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n\n i[scrollbarAxis].addEventListener('mousedown', bindMoves);\n i[scrollbarAxis].addEventListener('touchstart', bindMoves);\n}\n\n/* eslint-disable */\n\nfunction keyboard (i) {\n var element = i.element;\n\n var elementHovered = function () { return matches(element, ':hover'); };\n var scrollbarFocused = function () { return matches(i.scrollbarX, ':focus') || matches(i.scrollbarY, ':focus'); };\n\n function shouldPreventDefault(deltaX, deltaY) {\n var scrollTop = Math.floor(element.scrollTop);\n if (deltaX === 0) {\n if (!i.scrollbarYActive) {\n return false;\n }\n if (\n (scrollTop === 0 && deltaY > 0) ||\n (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0)\n ) {\n return !i.settings.wheelPropagation;\n }\n }\n\n var scrollLeft = element.scrollLeft;\n if (deltaY === 0) {\n if (!i.scrollbarXActive) {\n return false;\n }\n if (\n (scrollLeft === 0 && deltaX < 0) ||\n (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0)\n ) {\n return !i.settings.wheelPropagation;\n }\n }\n return true;\n }\n\n i.event.bind(i.ownerDocument, 'keydown', function (e) {\n if ((e.isDefaultPrevented && e.isDefaultPrevented()) || e.defaultPrevented) {\n return;\n }\n\n if (!elementHovered() && !scrollbarFocused()) {\n return;\n }\n\n var activeElement = document.activeElement\n ? document.activeElement\n : i.ownerDocument.activeElement;\n if (activeElement) {\n if (activeElement.tagName === 'IFRAME') {\n activeElement = activeElement.contentDocument.activeElement;\n } else {\n // go deeper if element is a webcomponent\n while (activeElement.shadowRoot) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n }\n if (isEditable(activeElement)) {\n return;\n }\n }\n\n var deltaX = 0;\n var deltaY = 0;\n\n switch (e.which) {\n case 37: // left\n if (e.metaKey) {\n deltaX = -i.contentWidth;\n } else if (e.altKey) {\n deltaX = -i.containerWidth;\n } else {\n deltaX = -30;\n }\n break;\n case 38: // up\n if (e.metaKey) {\n deltaY = i.contentHeight;\n } else if (e.altKey) {\n deltaY = i.containerHeight;\n } else {\n deltaY = 30;\n }\n break;\n case 39: // right\n if (e.metaKey) {\n deltaX = i.contentWidth;\n } else if (e.altKey) {\n deltaX = i.containerWidth;\n } else {\n deltaX = 30;\n }\n break;\n case 40: // down\n if (e.metaKey) {\n deltaY = -i.contentHeight;\n } else if (e.altKey) {\n deltaY = -i.containerHeight;\n } else {\n deltaY = -30;\n }\n break;\n case 32: // space bar\n if (e.shiftKey) {\n deltaY = i.containerHeight;\n } else {\n deltaY = -i.containerHeight;\n }\n break;\n case 33: // page up\n deltaY = i.containerHeight;\n break;\n case 34: // page down\n deltaY = -i.containerHeight;\n break;\n case 36: // home\n deltaY = i.contentHeight;\n break;\n case 35: // end\n deltaY = -i.contentHeight;\n break;\n default:\n return;\n }\n\n if (i.settings.suppressScrollX && deltaX !== 0) {\n return;\n }\n if (i.settings.suppressScrollY && deltaY !== 0) {\n return;\n }\n\n element.scrollTop -= deltaY;\n element.scrollLeft += deltaX;\n updateGeometry(i);\n\n if (shouldPreventDefault(deltaX, deltaY)) {\n e.preventDefault();\n }\n });\n}\n\n/* eslint-disable */\n\nfunction wheel (i) {\n var element = i.element;\n\n function shouldPreventDefault(deltaX, deltaY) {\n var roundedScrollTop = Math.floor(element.scrollTop);\n var isTop = element.scrollTop === 0;\n var isBottom = roundedScrollTop + element.offsetHeight === element.scrollHeight;\n var isLeft = element.scrollLeft === 0;\n var isRight = element.scrollLeft + element.offsetWidth === element.scrollWidth;\n\n var hitsBound;\n\n // pick axis with primary direction\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n hitsBound = isTop || isBottom;\n } else {\n hitsBound = isLeft || isRight;\n }\n\n return hitsBound ? !i.settings.wheelPropagation : true;\n }\n\n function getDeltaFromEvent(e) {\n var deltaX = e.deltaX;\n var deltaY = -1 * e.deltaY;\n\n if (typeof deltaX === 'undefined' || typeof deltaY === 'undefined') {\n // OS X Safari\n deltaX = (-1 * e.wheelDeltaX) / 6;\n deltaY = e.wheelDeltaY / 6;\n }\n\n if (e.deltaMode && e.deltaMode === 1) {\n // Firefox in deltaMode 1: Line scrolling\n deltaX *= 10;\n deltaY *= 10;\n }\n\n if (deltaX !== deltaX && deltaY !== deltaY /* NaN checks */) {\n // IE in some mouse drivers\n deltaX = 0;\n deltaY = e.wheelDelta;\n }\n\n if (e.shiftKey) {\n // reverse axis with shift key\n return [-deltaY, -deltaX];\n }\n return [deltaX, deltaY];\n }\n\n function shouldBeConsumedByChild(target, deltaX, deltaY) {\n // FIXME: this is a workaround for