`):
+ *
+ * ```javascript
+ * var hljs = require('highlight.js') // https://highlightjs.org/
+ *
+ * // Actual default values
+ * var md = require('markdown-it')({
+ * highlight: function (str, lang) {
+ * if (lang && hljs.getLanguage(lang)) {
+ * try {
+ * return '' +
+ * hljs.highlight(str, { language: lang, ignoreIllegals: true }).value +
+ * '
';
+ * } catch (__) {}
+ * }
+ *
+ * return '' + md.utils.escapeHtml(str) + '
';
+ * }
+ * });
+ * ```
+ *
+ **/
+function MarkdownIt(presetName, options) {
+ if (!(this instanceof MarkdownIt)) {
+ return new MarkdownIt(presetName, options);
+ }
+ if (!options) {
+ if (!isString(presetName)) {
+ options = presetName || {};
+ presetName = 'default';
+ }
+ }
+
+ /**
+ * MarkdownIt#inline -> ParserInline
+ *
+ * Instance of [[ParserInline]]. You may need it to add new rules when
+ * writing plugins. For simple rules control use [[MarkdownIt.disable]] and
+ * [[MarkdownIt.enable]].
+ **/
+ this.inline = new ParserInline();
+
+ /**
+ * MarkdownIt#block -> ParserBlock
+ *
+ * Instance of [[ParserBlock]]. You may need it to add new rules when
+ * writing plugins. For simple rules control use [[MarkdownIt.disable]] and
+ * [[MarkdownIt.enable]].
+ **/
+ this.block = new ParserBlock();
+
+ /**
+ * MarkdownIt#core -> Core
+ *
+ * Instance of [[Core]] chain executor. You may need it to add new rules when
+ * writing plugins. For simple rules control use [[MarkdownIt.disable]] and
+ * [[MarkdownIt.enable]].
+ **/
+ this.core = new Core();
+
+ /**
+ * MarkdownIt#renderer -> Renderer
+ *
+ * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering
+ * rules for new token types, generated by plugins.
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * var md = require('markdown-it')();
+ *
+ * function myToken(tokens, idx, options, env, self) {
+ * //...
+ * return result;
+ * };
+ *
+ * md.renderer.rules['my_token'] = myToken
+ * ```
+ *
+ * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.mjs).
+ **/
+ this.renderer = new Renderer();
+
+ /**
+ * MarkdownIt#linkify -> LinkifyIt
+ *
+ * [linkify-it](https://github.com/markdown-it/linkify-it) instance.
+ * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.mjs)
+ * rule.
+ **/
+ this.linkify = new LinkifyIt();
+
+ /**
+ * MarkdownIt#validateLink(url) -> Boolean
+ *
+ * Link validation function. CommonMark allows too much in links. By default
+ * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas
+ * except some embedded image types.
+ *
+ * You can change this behaviour:
+ *
+ * ```javascript
+ * var md = require('markdown-it')();
+ * // enable everything
+ * md.validateLink = function () { return true; }
+ * ```
+ **/
+ this.validateLink = validateLink;
+
+ /**
+ * MarkdownIt#normalizeLink(url) -> String
+ *
+ * Function used to encode link url to a machine-readable format,
+ * which includes url-encoding, punycode, etc.
+ **/
+ this.normalizeLink = normalizeLink;
+
+ /**
+ * MarkdownIt#normalizeLinkText(url) -> String
+ *
+ * Function used to decode link url to a human-readable format`
+ **/
+ this.normalizeLinkText = normalizeLinkText;
+
+ // Expose utils & helpers for easy acces from plugins
+
+ /**
+ * MarkdownIt#utils -> utils
+ *
+ * Assorted utility functions, useful to write plugins. See details
+ * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.mjs).
+ **/
+ this.utils = utils;
+
+ /**
+ * MarkdownIt#helpers -> helpers
+ *
+ * Link components parser functions, useful to write plugins. See details
+ * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).
+ **/
+ this.helpers = assign({}, helpers);
+ this.options = {};
+ this.configure(presetName);
+ if (options) {
+ this.set(options);
+ }
+}
+
+/** chainable
+ * MarkdownIt.set(options)
+ *
+ * Set parser options (in the same format as in constructor). Probably, you
+ * will never need it, but you can change options after constructor call.
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * var md = require('markdown-it')()
+ * .set({ html: true, breaks: true })
+ * .set({ typographer, true });
+ * ```
+ *
+ * __Note:__ To achieve the best possible performance, don't modify a
+ * `markdown-it` instance options on the fly. If you need multiple configurations
+ * it's best to create multiple instances and initialize each with separate
+ * config.
+ **/
+MarkdownIt.prototype.set = function (options) {
+ assign(this.options, options);
+ return this;
+};
+
+/** chainable, internal
+ * MarkdownIt.configure(presets)
+ *
+ * Batch load of all options and compenent settings. This is internal method,
+ * and you probably will not need it. But if you will - see available presets
+ * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)
+ *
+ * We strongly recommend to use presets instead of direct config loads. That
+ * will give better compatibility with next versions.
+ **/
+MarkdownIt.prototype.configure = function (presets) {
+ const self = this;
+ if (isString(presets)) {
+ const presetName = presets;
+ presets = config[presetName];
+ if (!presets) {
+ throw new Error('Wrong `markdown-it` preset "' + presetName + '", check name');
+ }
+ }
+ if (!presets) {
+ throw new Error('Wrong `markdown-it` preset, can\'t be empty');
+ }
+ if (presets.options) {
+ self.set(presets.options);
+ }
+ if (presets.components) {
+ Object.keys(presets.components).forEach(function (name) {
+ if (presets.components[name].rules) {
+ self[name].ruler.enableOnly(presets.components[name].rules);
+ }
+ if (presets.components[name].rules2) {
+ self[name].ruler2.enableOnly(presets.components[name].rules2);
+ }
+ });
+ }
+ return this;
+};
+
+/** chainable
+ * MarkdownIt.enable(list, ignoreInvalid)
+ * - list (String|Array): rule name or list of rule names to enable
+ * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.
+ *
+ * Enable list or rules. It will automatically find appropriate components,
+ * containing rules with given names. If rule not found, and `ignoreInvalid`
+ * not set - throws exception.
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * var md = require('markdown-it')()
+ * .enable(['sub', 'sup'])
+ * .disable('smartquotes');
+ * ```
+ **/
+MarkdownIt.prototype.enable = function (list, ignoreInvalid) {
+ let result = [];
+ if (!Array.isArray(list)) {
+ list = [list];
+ }
+ ['core', 'block', 'inline'].forEach(function (chain) {
+ result = result.concat(this[chain].ruler.enable(list, true));
+ }, this);
+ result = result.concat(this.inline.ruler2.enable(list, true));
+ const missed = list.filter(function (name) {
+ return result.indexOf(name) < 0;
+ });
+ if (missed.length && !ignoreInvalid) {
+ throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed);
+ }
+ return this;
+};
+
+/** chainable
+ * MarkdownIt.disable(list, ignoreInvalid)
+ * - list (String|Array): rule name or list of rule names to disable.
+ * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.
+ *
+ * The same as [[MarkdownIt.enable]], but turn specified rules off.
+ **/
+MarkdownIt.prototype.disable = function (list, ignoreInvalid) {
+ let result = [];
+ if (!Array.isArray(list)) {
+ list = [list];
+ }
+ ['core', 'block', 'inline'].forEach(function (chain) {
+ result = result.concat(this[chain].ruler.disable(list, true));
+ }, this);
+ result = result.concat(this.inline.ruler2.disable(list, true));
+ const missed = list.filter(function (name) {
+ return result.indexOf(name) < 0;
+ });
+ if (missed.length && !ignoreInvalid) {
+ throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed);
+ }
+ return this;
+};
+
+/** chainable
+ * MarkdownIt.use(plugin, params)
+ *
+ * Load specified plugin with given params into current parser instance.
+ * It's just a sugar to call `plugin(md, params)` with curring.
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * var iterator = require('markdown-it-for-inline');
+ * var md = require('markdown-it')()
+ * .use(iterator, 'foo_replace', 'text', function (tokens, idx) {
+ * tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');
+ * });
+ * ```
+ **/
+MarkdownIt.prototype.use = function (plugin /*, params, ... */) {
+ const args = [this].concat(Array.prototype.slice.call(arguments, 1));
+ plugin.apply(plugin, args);
+ return this;
+};
+
+/** internal
+ * MarkdownIt.parse(src, env) -> Array
+ * - src (String): source string
+ * - env (Object): environment sandbox
+ *
+ * Parse input string and return list of block tokens (special token type
+ * "inline" will contain list of inline tokens). You should not call this
+ * method directly, until you write custom renderer (for example, to produce
+ * AST).
+ *
+ * `env` is used to pass data between "distributed" rules and return additional
+ * metadata like reference info, needed for the renderer. It also can be used to
+ * inject data in specific cases. Usually, you will be ok to pass `{}`,
+ * and then pass updated object to renderer.
+ **/
+MarkdownIt.prototype.parse = function (src, env) {
+ if (typeof src !== 'string') {
+ throw new Error('Input data should be a String');
+ }
+ const state = new this.core.State(src, this, env);
+ this.core.process(state);
+ return state.tokens;
+};
+
+/**
+ * MarkdownIt.render(src [, env]) -> String
+ * - src (String): source string
+ * - env (Object): environment sandbox
+ *
+ * Render markdown string into html. It does all magic for you :).
+ *
+ * `env` can be used to inject additional metadata (`{}` by default).
+ * But you will not need it with high probability. See also comment
+ * in [[MarkdownIt.parse]].
+ **/
+MarkdownIt.prototype.render = function (src, env) {
+ env = env || {};
+ return this.renderer.render(this.parse(src, env), this.options, env);
+};
+
+/** internal
+ * MarkdownIt.parseInline(src, env) -> Array
+ * - src (String): source string
+ * - env (Object): environment sandbox
+ *
+ * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the
+ * block tokens list with the single `inline` element, containing parsed inline
+ * tokens in `children` property. Also updates `env` object.
+ **/
+MarkdownIt.prototype.parseInline = function (src, env) {
+ const state = new this.core.State(src, this, env);
+ state.inlineMode = true;
+ this.core.process(state);
+ return state.tokens;
+};
+
+/**
+ * MarkdownIt.renderInline(src [, env]) -> String
+ * - src (String): source string
+ * - env (Object): environment sandbox
+ *
+ * Similar to [[MarkdownIt.render]] but for single paragraph content. Result
+ * will NOT be wrapped into `` tags.
+ **/
+MarkdownIt.prototype.renderInline = function (src, env) {
+ env = env || {};
+ return this.renderer.render(this.parseInline(src, env), this.options, env);
+};
+module.exports = MarkdownIt;
+
+/***/ }),
+
+/***/ "../node_modules/mdurl/build/index.cjs.js":
+/*!************************************************!*\
+ !*** ../node_modules/mdurl/build/index.cjs.js ***!
+ \************************************************/
+/***/ (function(__unused_webpack_module, exports) {
+
+
+
+/* eslint-disable no-bitwise */
+const decodeCache = {};
+function getDecodeCache(exclude) {
+ let cache = decodeCache[exclude];
+ if (cache) {
+ return cache;
+ }
+ cache = decodeCache[exclude] = [];
+ for (let i = 0; i < 128; i++) {
+ const ch = String.fromCharCode(i);
+ cache.push(ch);
+ }
+ for (let i = 0; i < exclude.length; i++) {
+ const ch = exclude.charCodeAt(i);
+ cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2);
+ }
+ return cache;
+}
+
+// Decode percent-encoded string.
+//
+function decode(string, exclude) {
+ if (typeof exclude !== 'string') {
+ exclude = decode.defaultChars;
+ }
+ const cache = getDecodeCache(exclude);
+ return string.replace(/(%[a-f0-9]{2})+/gi, function (seq) {
+ let result = '';
+ for (let i = 0, l = seq.length; i < l; i += 3) {
+ const b1 = parseInt(seq.slice(i + 1, i + 3), 16);
+ if (b1 < 0x80) {
+ result += cache[b1];
+ continue;
+ }
+ if ((b1 & 0xE0) === 0xC0 && i + 3 < l) {
+ // 110xxxxx 10xxxxxx
+ const b2 = parseInt(seq.slice(i + 4, i + 6), 16);
+ if ((b2 & 0xC0) === 0x80) {
+ const chr = b1 << 6 & 0x7C0 | b2 & 0x3F;
+ if (chr < 0x80) {
+ result += '\ufffd\ufffd';
+ } else {
+ result += String.fromCharCode(chr);
+ }
+ i += 3;
+ continue;
+ }
+ }
+ if ((b1 & 0xF0) === 0xE0 && i + 6 < l) {
+ // 1110xxxx 10xxxxxx 10xxxxxx
+ const b2 = parseInt(seq.slice(i + 4, i + 6), 16);
+ const b3 = parseInt(seq.slice(i + 7, i + 9), 16);
+ if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {
+ const chr = b1 << 12 & 0xF000 | b2 << 6 & 0xFC0 | b3 & 0x3F;
+ if (chr < 0x800 || chr >= 0xD800 && chr <= 0xDFFF) {
+ result += '\ufffd\ufffd\ufffd';
+ } else {
+ result += String.fromCharCode(chr);
+ }
+ i += 6;
+ continue;
+ }
+ }
+ if ((b1 & 0xF8) === 0xF0 && i + 9 < l) {
+ // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx
+ const b2 = parseInt(seq.slice(i + 4, i + 6), 16);
+ const b3 = parseInt(seq.slice(i + 7, i + 9), 16);
+ const b4 = parseInt(seq.slice(i + 10, i + 12), 16);
+ if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {
+ let chr = b1 << 18 & 0x1C0000 | b2 << 12 & 0x3F000 | b3 << 6 & 0xFC0 | b4 & 0x3F;
+ if (chr < 0x10000 || chr > 0x10FFFF) {
+ result += '\ufffd\ufffd\ufffd\ufffd';
+ } else {
+ chr -= 0x10000;
+ result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF));
+ }
+ i += 9;
+ continue;
+ }
+ }
+ result += '\ufffd';
+ }
+ return result;
+ });
+}
+decode.defaultChars = ';/?:@&=+$,#';
+decode.componentChars = '';
+const encodeCache = {};
+
+// Create a lookup array where anything but characters in `chars` string
+// and alphanumeric chars is percent-encoded.
+//
+function getEncodeCache(exclude) {
+ let cache = encodeCache[exclude];
+ if (cache) {
+ return cache;
+ }
+ cache = encodeCache[exclude] = [];
+ for (let i = 0; i < 128; i++) {
+ const ch = String.fromCharCode(i);
+ if (/^[0-9a-z]$/i.test(ch)) {
+ // always allow unencoded alphanumeric characters
+ cache.push(ch);
+ } else {
+ cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));
+ }
+ }
+ for (let i = 0; i < exclude.length; i++) {
+ cache[exclude.charCodeAt(i)] = exclude[i];
+ }
+ return cache;
+}
+
+// Encode unsafe characters with percent-encoding, skipping already
+// encoded sequences.
+//
+// - string - string to encode
+// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)
+// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)
+//
+function encode(string, exclude, keepEscaped) {
+ if (typeof exclude !== 'string') {
+ // encode(string, keepEscaped)
+ keepEscaped = exclude;
+ exclude = encode.defaultChars;
+ }
+ if (typeof keepEscaped === 'undefined') {
+ keepEscaped = true;
+ }
+ const cache = getEncodeCache(exclude);
+ let result = '';
+ for (let i = 0, l = string.length; i < l; i++) {
+ const code = string.charCodeAt(i);
+ if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {
+ if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {
+ result += string.slice(i, i + 3);
+ i += 2;
+ continue;
+ }
+ }
+ if (code < 128) {
+ result += cache[code];
+ continue;
+ }
+ if (code >= 0xD800 && code <= 0xDFFF) {
+ if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {
+ const nextCode = string.charCodeAt(i + 1);
+ if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {
+ result += encodeURIComponent(string[i] + string[i + 1]);
+ i++;
+ continue;
+ }
+ }
+ result += '%EF%BF%BD';
+ continue;
+ }
+ result += encodeURIComponent(string[i]);
+ }
+ return result;
+}
+encode.defaultChars = ";/?:@&=+$,-_.!~*'()#";
+encode.componentChars = "-_.!~*'()";
+function format(url) {
+ let result = '';
+ result += url.protocol || '';
+ result += url.slashes ? '//' : '';
+ result += url.auth ? url.auth + '@' : '';
+ if (url.hostname && url.hostname.indexOf(':') !== -1) {
+ // ipv6 address
+ result += '[' + url.hostname + ']';
+ } else {
+ result += url.hostname || '';
+ }
+ result += url.port ? ':' + url.port : '';
+ result += url.pathname || '';
+ result += url.search || '';
+ result += url.hash || '';
+ return result;
+}
+
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+//
+// Changes from joyent/node:
+//
+// 1. No leading slash in paths,
+// e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`
+//
+// 2. Backslashes are not replaced with slashes,
+// so `http:\\example.org\` is treated like a relative path
+//
+// 3. Trailing colon is treated like a part of the path,
+// i.e. in `http://example.org:foo` pathname is `:foo`
+//
+// 4. Nothing is URL-encoded in the resulting object,
+// (in joyent/node some chars in auth and paths are encoded)
+//
+// 5. `url.parse()` does not have `parseQueryString` argument
+//
+// 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,
+// which can be constructed using other parts of the url.
+//
+
+function Url() {
+ this.protocol = null;
+ this.slashes = null;
+ this.auth = null;
+ this.port = null;
+ this.hostname = null;
+ this.hash = null;
+ this.search = null;
+ this.pathname = null;
+}
+
+// Reference: RFC 3986, RFC 1808, RFC 2396
+
+// define these here so at least they only have to be
+// compiled once on the first module load.
+const protocolPattern = /^([a-z0-9.+-]+:)/i;
+const portPattern = /:[0-9]*$/;
+
+// Special case for a simple path URL
+/* eslint-disable-next-line no-useless-escape */
+const simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/;
+
+// RFC 2396: characters reserved for delimiting URLs.
+// We actually just auto-escape these.
+const delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'];
+
+// RFC 2396: characters not allowed for various reasons.
+const unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims);
+
+// Allowed by RFCs, but cause of XSS attacks. Always escape these.
+const autoEscape = ['\''].concat(unwise);
+// Characters that are never ever allowed in a hostname.
+// Note that any invalid chars are also handled, but these
+// are the ones that are *expected* to be seen, so we fast-path
+// them.
+const nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape);
+const hostEndingChars = ['/', '?', '#'];
+const hostnameMaxLen = 255;
+const hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/;
+const hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/;
+// protocols that can allow "unsafe" and "unwise" chars.
+// protocols that never have a hostname.
+const hostlessProtocol = {
+ javascript: true,
+ 'javascript:': true
+};
+// protocols that always contain a // bit.
+const slashedProtocol = {
+ http: true,
+ https: true,
+ ftp: true,
+ gopher: true,
+ file: true,
+ 'http:': true,
+ 'https:': true,
+ 'ftp:': true,
+ 'gopher:': true,
+ 'file:': true
+};
+function urlParse(url, slashesDenoteHost) {
+ if (url && url instanceof Url) return url;
+ const u = new Url();
+ u.parse(url, slashesDenoteHost);
+ return u;
+}
+Url.prototype.parse = function (url, slashesDenoteHost) {
+ let lowerProto, hec, slashes;
+ let rest = url;
+
+ // trim before proceeding.
+ // This is to support parse stuff like " http://foo.com \n"
+ rest = rest.trim();
+ if (!slashesDenoteHost && url.split('#').length === 1) {
+ // Try fast path regexp
+ const simplePath = simplePathPattern.exec(rest);
+ if (simplePath) {
+ this.pathname = simplePath[1];
+ if (simplePath[2]) {
+ this.search = simplePath[2];
+ }
+ return this;
+ }
+ }
+ let proto = protocolPattern.exec(rest);
+ if (proto) {
+ proto = proto[0];
+ lowerProto = proto.toLowerCase();
+ this.protocol = proto;
+ rest = rest.substr(proto.length);
+ }
+
+ // figure out if it's got a host
+ // user@server is *always* interpreted as a hostname, and url
+ // resolution will treat //foo/bar as host=foo,path=bar because that's
+ // how the browser resolves relative URLs.
+ /* eslint-disable-next-line no-useless-escape */
+ if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) {
+ slashes = rest.substr(0, 2) === '//';
+ if (slashes && !(proto && hostlessProtocol[proto])) {
+ rest = rest.substr(2);
+ this.slashes = true;
+ }
+ }
+ if (!hostlessProtocol[proto] && (slashes || proto && !slashedProtocol[proto])) {
+ // there's a hostname.
+ // the first instance of /, ?, ;, or # ends the host.
+ //
+ // If there is an @ in the hostname, then non-host chars *are* allowed
+ // to the left of the last @ sign, unless some host-ending character
+ // comes *before* the @-sign.
+ // URLs are obnoxious.
+ //
+ // ex:
+ // http://a@b@c/ => user:a@b host:c
+ // http://a@b?@c => user:a host:c path:/?@c
+
+ // v0.12 TODO(isaacs): This is not quite how Chrome does things.
+ // Review our test case against browsers more comprehensively.
+
+ // find the first instance of any hostEndingChars
+ let hostEnd = -1;
+ for (let i = 0; i < hostEndingChars.length; i++) {
+ hec = rest.indexOf(hostEndingChars[i]);
+ if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {
+ hostEnd = hec;
+ }
+ }
+
+ // at this point, either we have an explicit point where the
+ // auth portion cannot go past, or the last @ char is the decider.
+ let auth, atSign;
+ if (hostEnd === -1) {
+ // atSign can be anywhere.
+ atSign = rest.lastIndexOf('@');
+ } else {
+ // atSign must be in auth portion.
+ // http://a@b/c@d => host:b auth:a path:/c@d
+ atSign = rest.lastIndexOf('@', hostEnd);
+ }
+
+ // Now we have a portion which is definitely the auth.
+ // Pull that off.
+ if (atSign !== -1) {
+ auth = rest.slice(0, atSign);
+ rest = rest.slice(atSign + 1);
+ this.auth = auth;
+ }
+
+ // the host is the remaining to the left of the first non-host char
+ hostEnd = -1;
+ for (let i = 0; i < nonHostChars.length; i++) {
+ hec = rest.indexOf(nonHostChars[i]);
+ if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {
+ hostEnd = hec;
+ }
+ }
+ // if we still have not hit it, then the entire thing is a host.
+ if (hostEnd === -1) {
+ hostEnd = rest.length;
+ }
+ if (rest[hostEnd - 1] === ':') {
+ hostEnd--;
+ }
+ const host = rest.slice(0, hostEnd);
+ rest = rest.slice(hostEnd);
+
+ // pull out port.
+ this.parseHost(host);
+
+ // we've indicated that there is a hostname,
+ // so even if it's empty, it has to be present.
+ this.hostname = this.hostname || '';
+
+ // if hostname begins with [ and ends with ]
+ // assume that it's an IPv6 address.
+ const ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']';
+
+ // validate a little.
+ if (!ipv6Hostname) {
+ const hostparts = this.hostname.split(/\./);
+ for (let i = 0, l = hostparts.length; i < l; i++) {
+ const part = hostparts[i];
+ if (!part) {
+ continue;
+ }
+ if (!part.match(hostnamePartPattern)) {
+ let newpart = '';
+ for (let j = 0, k = part.length; j < k; j++) {
+ if (part.charCodeAt(j) > 127) {
+ // we replace non-ASCII char with a temporary placeholder
+ // we need this to make sure size of hostname is not
+ // broken by replacing non-ASCII by nothing
+ newpart += 'x';
+ } else {
+ newpart += part[j];
+ }
+ }
+ // we test again with ASCII char only
+ if (!newpart.match(hostnamePartPattern)) {
+ const validParts = hostparts.slice(0, i);
+ const notHost = hostparts.slice(i + 1);
+ const bit = part.match(hostnamePartStart);
+ if (bit) {
+ validParts.push(bit[1]);
+ notHost.unshift(bit[2]);
+ }
+ if (notHost.length) {
+ rest = notHost.join('.') + rest;
+ }
+ this.hostname = validParts.join('.');
+ break;
+ }
+ }
+ }
+ }
+ if (this.hostname.length > hostnameMaxLen) {
+ this.hostname = '';
+ }
+
+ // strip [ and ] from the hostname
+ // the host field still retains them, though
+ if (ipv6Hostname) {
+ this.hostname = this.hostname.substr(1, this.hostname.length - 2);
+ }
+ }
+
+ // chop off from the tail first.
+ const hash = rest.indexOf('#');
+ if (hash !== -1) {
+ // got a fragment string.
+ this.hash = rest.substr(hash);
+ rest = rest.slice(0, hash);
+ }
+ const qm = rest.indexOf('?');
+ if (qm !== -1) {
+ this.search = rest.substr(qm);
+ rest = rest.slice(0, qm);
+ }
+ if (rest) {
+ this.pathname = rest;
+ }
+ if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {
+ this.pathname = '';
+ }
+ return this;
+};
+Url.prototype.parseHost = function (host) {
+ let port = portPattern.exec(host);
+ if (port) {
+ port = port[0];
+ if (port !== ':') {
+ this.port = port.substr(1);
+ }
+ host = host.substr(0, host.length - port.length);
+ }
+ if (host) {
+ this.hostname = host;
+ }
+};
+exports.decode = decode;
+exports.encode = encode;
+exports.format = format;
+exports.parse = urlParse;
+
+/***/ }),
+
+/***/ "../node_modules/uc.micro/build/index.cjs.js":
+/*!***************************************************!*\
+ !*** ../node_modules/uc.micro/build/index.cjs.js ***!
+ \***************************************************/
+/***/ (function(__unused_webpack_module, exports) {
+
+
+
+var regex$5 = /[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+var regex$4 = /[\0-\x1F\x7F-\x9F]/;
+var regex$3 = /[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/;
+var regex$2 = /[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/;
+var regex$1 = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/;
+var regex = /[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/;
+exports.Any = regex$5;
+exports.Cc = regex$4;
+exports.Cf = regex$3;
+exports.P = regex$2;
+exports.S = regex$1;
+exports.Z = regex;
+
+/***/ }),
+
+/***/ "./components/GraphiQL.tsx":
+/*!*********************************!*\
+ !*** ./components/GraphiQL.tsx ***!
+ \*********************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.GraphiQL = GraphiQL;
+exports.GraphiQLInterface = GraphiQLInterface;
+var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
+var _react2 = __webpack_require__(/*! @graphiql/react */ "../../graphiql-react/dist/index.js");
+function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
+function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
+function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /**
+ * Copyright (c) 2020 GraphQL Contributors.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+const majorVersion = parseInt(_react.default.version.slice(0, 2), 10);
+if (majorVersion < 16) {
+ throw new Error(['GraphiQL 0.18.0 and after is not compatible with React 15 or below.', 'If you are using a CDN source (jsdelivr, unpkg, etc), follow this example:', 'https://github.com/graphql/graphiql/blob/master/examples/graphiql-cdn/index.html#L49'].join('\n'));
+}
+
+/**
+ * API docs for this live here:
+ *
+ * https://graphiql-test.netlify.app/typedoc/modules/graphiql.html#graphiqlprops
+ */
+
+/**
+ * The top-level React component for GraphiQL, intended to encompass the entire
+ * browser viewport.
+ *
+ * @see https://github.com/graphql/graphiql#usage
+ */
+
+function GraphiQL(_ref) {
+ var _props$disableTabs;
+ let {
+ dangerouslyAssumeSchemaIsValid,
+ defaultQuery,
+ defaultTabs,
+ externalFragments,
+ fetcher,
+ getDefaultFieldNames,
+ headers,
+ inputValueDeprecation,
+ introspectionQueryName,
+ maxHistoryLength,
+ onEditOperationName,
+ onSchemaChange,
+ onTabChange,
+ onTogglePluginVisibility,
+ operationName,
+ plugins,
+ query,
+ response,
+ schema,
+ schemaDescription,
+ shouldPersistHeaders,
+ storage,
+ validationRules,
+ variables,
+ visiblePlugin,
+ defaultHeaders,
+ ...props
+ } = _ref;
+ // Ensure props are correct
+ if (typeof fetcher !== 'function') {
+ throw new TypeError('The `GraphiQL` component requires a `fetcher` function to be passed as prop.');
+ }
+ return /*#__PURE__*/_react.default.createElement(_react2.GraphiQLProvider, {
+ getDefaultFieldNames: getDefaultFieldNames,
+ dangerouslyAssumeSchemaIsValid: dangerouslyAssumeSchemaIsValid,
+ defaultQuery: defaultQuery,
+ defaultHeaders: defaultHeaders,
+ defaultTabs: defaultTabs,
+ externalFragments: externalFragments,
+ fetcher: fetcher,
+ headers: headers,
+ inputValueDeprecation: inputValueDeprecation,
+ introspectionQueryName: introspectionQueryName,
+ maxHistoryLength: maxHistoryLength,
+ onEditOperationName: onEditOperationName,
+ onSchemaChange: onSchemaChange,
+ onTabChange: onTabChange,
+ onTogglePluginVisibility: onTogglePluginVisibility,
+ plugins: plugins,
+ visiblePlugin: visiblePlugin,
+ operationName: operationName,
+ query: query,
+ response: response,
+ schema: schema,
+ schemaDescription: schemaDescription,
+ shouldPersistHeaders: shouldPersistHeaders,
+ storage: storage,
+ validationRules: validationRules,
+ variables: variables
+ }, /*#__PURE__*/_react.default.createElement(GraphiQLInterface, _extends({
+ showPersistHeadersSettings: shouldPersistHeaders !== false,
+ disableTabs: (_props$disableTabs = props.disableTabs) !== null && _props$disableTabs !== void 0 ? _props$disableTabs : false
+ }, props)));
+}
+
+// Export main windows/panes to be used separately if desired.
+GraphiQL.Logo = GraphiQLLogo;
+GraphiQL.Toolbar = GraphiQLToolbar;
+GraphiQL.Footer = GraphiQLFooter;
+function GraphiQLInterface(props) {
+ var _props$isHeadersEdito, _pluginContext$visibl, _props$toolbar, _props$toolbar2;
+ const isHeadersEditorEnabled = (_props$isHeadersEdito = props.isHeadersEditorEnabled) !== null && _props$isHeadersEdito !== void 0 ? _props$isHeadersEdito : true;
+ const editorContext = (0, _react2.useEditorContext)({
+ nonNull: true
+ });
+ const executionContext = (0, _react2.useExecutionContext)({
+ nonNull: true
+ });
+ const schemaContext = (0, _react2.useSchemaContext)({
+ nonNull: true
+ });
+ const storageContext = (0, _react2.useStorageContext)();
+ const pluginContext = (0, _react2.usePluginContext)();
+ const copy = (0, _react2.useCopyQuery)({
+ onCopyQuery: props.onCopyQuery
+ });
+ const merge = (0, _react2.useMergeQuery)();
+ const prettify = (0, _react2.usePrettifyEditors)();
+ const {
+ theme,
+ setTheme
+ } = (0, _react2.useTheme)();
+ const PluginContent = pluginContext === null || pluginContext === void 0 ? void 0 : (_pluginContext$visibl = pluginContext.visiblePlugin) === null || _pluginContext$visibl === void 0 ? void 0 : _pluginContext$visibl.content;
+ const pluginResize = (0, _react2.useDragResize)({
+ defaultSizeRelation: 1 / 3,
+ direction: 'horizontal',
+ initiallyHidden: pluginContext !== null && pluginContext !== void 0 && pluginContext.visiblePlugin ? undefined : 'first',
+ onHiddenElementChange(resizableElement) {
+ if (resizableElement === 'first') {
+ pluginContext === null || pluginContext === void 0 ? void 0 : pluginContext.setVisiblePlugin(null);
+ }
+ },
+ sizeThresholdSecond: 200,
+ storageKey: 'docExplorerFlex'
+ });
+ const editorResize = (0, _react2.useDragResize)({
+ direction: 'horizontal',
+ storageKey: 'editorFlex'
+ });
+ const editorToolsResize = (0, _react2.useDragResize)({
+ defaultSizeRelation: 3,
+ direction: 'vertical',
+ initiallyHidden: (() => {
+ if (props.defaultEditorToolsVisibility === 'variables' || props.defaultEditorToolsVisibility === 'headers') {
+ return;
+ }
+ if (typeof props.defaultEditorToolsVisibility === 'boolean') {
+ return props.defaultEditorToolsVisibility ? undefined : 'second';
+ }
+ return editorContext.initialVariables || editorContext.initialHeaders ? undefined : 'second';
+ })(),
+ sizeThresholdSecond: 60,
+ storageKey: 'secondaryEditorFlex'
+ });
+ const [activeSecondaryEditor, setActiveSecondaryEditor] = (0, _react.useState)(() => {
+ if (props.defaultEditorToolsVisibility === 'variables' || props.defaultEditorToolsVisibility === 'headers') {
+ return props.defaultEditorToolsVisibility;
+ }
+ return !editorContext.initialVariables && editorContext.initialHeaders && isHeadersEditorEnabled ? 'headers' : 'variables';
+ });
+ const [showDialog, setShowDialog] = (0, _react.useState)(null);
+ const [clearStorageStatus, setClearStorageStatus] = (0, _react.useState)(null);
+ const children = _react.default.Children.toArray(props.children);
+ const logo = children.find(child => isChildComponentType(child, GraphiQL.Logo)) || /*#__PURE__*/_react.default.createElement(GraphiQL.Logo, null);
+ const toolbar = children.find(child => isChildComponentType(child, GraphiQL.Toolbar)) || /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.ToolbarButton, {
+ onClick: prettify,
+ label: "Prettify query (Shift-Ctrl-P)"
+ }, /*#__PURE__*/_react.default.createElement(_react2.PrettifyIcon, {
+ className: "graphiql-toolbar-icon",
+ "aria-hidden": "true"
+ })), /*#__PURE__*/_react.default.createElement(_react2.ToolbarButton, {
+ onClick: merge,
+ label: "Merge fragments into query (Shift-Ctrl-M)"
+ }, /*#__PURE__*/_react.default.createElement(_react2.MergeIcon, {
+ className: "graphiql-toolbar-icon",
+ "aria-hidden": "true"
+ })), /*#__PURE__*/_react.default.createElement(_react2.ToolbarButton, {
+ onClick: copy,
+ label: "Copy query (Shift-Ctrl-C)"
+ }, /*#__PURE__*/_react.default.createElement(_react2.CopyIcon, {
+ className: "graphiql-toolbar-icon",
+ "aria-hidden": "true"
+ })), ((_props$toolbar = props.toolbar) === null || _props$toolbar === void 0 ? void 0 : _props$toolbar.additionalContent) && props.toolbar.additionalContent, ((_props$toolbar2 = props.toolbar) === null || _props$toolbar2 === void 0 ? void 0 : _props$toolbar2.additionalComponent) && /*#__PURE__*/_react.default.createElement(props.toolbar.additionalComponent, null));
+ const footer = children.find(child => isChildComponentType(child, GraphiQL.Footer));
+ const onClickReference = (0, _react.useCallback)(() => {
+ if (pluginResize.hiddenElement === 'first') {
+ pluginResize.setHiddenElement(null);
+ }
+ }, [pluginResize]);
+ const handleClearData = (0, _react.useCallback)(() => {
+ try {
+ storageContext === null || storageContext === void 0 ? void 0 : storageContext.clear();
+ setClearStorageStatus('success');
+ } catch {
+ setClearStorageStatus('error');
+ }
+ }, [storageContext]);
+ const handlePersistHeaders = (0, _react.useCallback)(event => {
+ editorContext.setShouldPersistHeaders(event.currentTarget.dataset.value === 'true');
+ }, [editorContext]);
+ const handleChangeTheme = (0, _react.useCallback)(event => {
+ const selectedTheme = event.currentTarget.dataset.theme;
+ setTheme(selectedTheme || null);
+ }, [setTheme]);
+ const handleAddTab = editorContext.addTab;
+ const handleRefetchSchema = schemaContext.introspect;
+ const handleReorder = editorContext.moveTab;
+ const handleShowDialog = (0, _react.useCallback)(event => {
+ setShowDialog(event.currentTarget.dataset.value);
+ }, []);
+ const handlePluginClick = (0, _react.useCallback)(e => {
+ const context = pluginContext;
+ const pluginIndex = Number(e.currentTarget.dataset.index);
+ const plugin = context.plugins.find((_, index) => pluginIndex === index);
+ const isVisible = plugin === context.visiblePlugin;
+ if (isVisible) {
+ context.setVisiblePlugin(null);
+ pluginResize.setHiddenElement('first');
+ } else {
+ context.setVisiblePlugin(plugin);
+ pluginResize.setHiddenElement(null);
+ }
+ }, [pluginContext, pluginResize]);
+ const handleToolsTabClick = (0, _react.useCallback)(event => {
+ if (editorToolsResize.hiddenElement === 'second') {
+ editorToolsResize.setHiddenElement(null);
+ }
+ setActiveSecondaryEditor(event.currentTarget.dataset.name);
+ }, [editorToolsResize]);
+ const toggleEditorTools = (0, _react.useCallback)(() => {
+ editorToolsResize.setHiddenElement(editorToolsResize.hiddenElement === 'second' ? null : 'second');
+ }, [editorToolsResize]);
+ const handleOpenShortKeysDialog = (0, _react.useCallback)(isOpen => {
+ if (!isOpen) {
+ setShowDialog(null);
+ }
+ }, []);
+ const handleOpenSettingsDialog = (0, _react.useCallback)(isOpen => {
+ if (!isOpen) {
+ setShowDialog(null);
+ setClearStorageStatus(null);
+ }
+ }, []);
+ const addTab = /*#__PURE__*/_react.default.createElement(_react2.Tooltip, {
+ label: "Add tab"
+ }, /*#__PURE__*/_react.default.createElement(_react2.UnStyledButton, {
+ type: "button",
+ className: "graphiql-tab-add",
+ onClick: handleAddTab,
+ "aria-label": "Add tab"
+ }, /*#__PURE__*/_react.default.createElement(_react2.PlusIcon, {
+ "aria-hidden": "true"
+ })));
+ return /*#__PURE__*/_react.default.createElement(_react2.Tooltip.Provider, null, /*#__PURE__*/_react.default.createElement("div", {
+ "data-testid": "graphiql-container",
+ className: "graphiql-container"
+ }, /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-sidebar"
+ }, /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-sidebar-section"
+ }, pluginContext === null || pluginContext === void 0 ? void 0 : pluginContext.plugins.map((plugin, index) => {
+ const isVisible = plugin === pluginContext.visiblePlugin;
+ const label = `${isVisible ? 'Hide' : 'Show'} ${plugin.title}`;
+ const Icon = plugin.icon;
+ return /*#__PURE__*/_react.default.createElement(_react2.Tooltip, {
+ key: plugin.title,
+ label: label
+ }, /*#__PURE__*/_react.default.createElement(_react2.UnStyledButton, {
+ type: "button",
+ className: isVisible ? 'active' : '',
+ onClick: handlePluginClick,
+ "data-index": index,
+ "aria-label": label
+ }, /*#__PURE__*/_react.default.createElement(Icon, {
+ "aria-hidden": "true"
+ })));
+ })), /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-sidebar-section"
+ }, /*#__PURE__*/_react.default.createElement(_react2.Tooltip, {
+ label: "Re-fetch GraphQL schema"
+ }, /*#__PURE__*/_react.default.createElement(_react2.UnStyledButton, {
+ type: "button",
+ disabled: schemaContext.isFetching,
+ onClick: handleRefetchSchema,
+ "aria-label": "Re-fetch GraphQL schema"
+ }, /*#__PURE__*/_react.default.createElement(_react2.ReloadIcon, {
+ className: schemaContext.isFetching ? 'graphiql-spin' : '',
+ "aria-hidden": "true"
+ }))), /*#__PURE__*/_react.default.createElement(_react2.Tooltip, {
+ label: "Open short keys dialog"
+ }, /*#__PURE__*/_react.default.createElement(_react2.UnStyledButton, {
+ type: "button",
+ "data-value": "short-keys",
+ onClick: handleShowDialog,
+ "aria-label": "Open short keys dialog"
+ }, /*#__PURE__*/_react.default.createElement(_react2.KeyboardShortcutIcon, {
+ "aria-hidden": "true"
+ }))), /*#__PURE__*/_react.default.createElement(_react2.Tooltip, {
+ label: "Open settings dialog"
+ }, /*#__PURE__*/_react.default.createElement(_react2.UnStyledButton, {
+ type: "button",
+ "data-value": "settings",
+ onClick: handleShowDialog,
+ "aria-label": "Open settings dialog"
+ }, /*#__PURE__*/_react.default.createElement(_react2.SettingsIcon, {
+ "aria-hidden": "true"
+ }))))), /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-main"
+ }, /*#__PURE__*/_react.default.createElement("div", {
+ ref: pluginResize.firstRef,
+ style: {
+ // Make sure the container shrinks when containing long
+ // non-breaking texts
+ minWidth: '200px'
+ }
+ }, /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-plugin"
+ }, PluginContent ? /*#__PURE__*/_react.default.createElement(PluginContent, null) : null)), (pluginContext === null || pluginContext === void 0 ? void 0 : pluginContext.visiblePlugin) && /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-horizontal-drag-bar",
+ ref: pluginResize.dragBarRef
+ }), /*#__PURE__*/_react.default.createElement("div", {
+ ref: pluginResize.secondRef,
+ className: "graphiql-sessions"
+ }, /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-session-header"
+ }, props.disableTabs ? null : /*#__PURE__*/_react.default.createElement(_react2.Tabs, {
+ values: editorContext.tabs,
+ onReorder: handleReorder,
+ "aria-label": "Select active operation"
+ }, editorContext.tabs.length > 1 && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, editorContext.tabs.map((tab, index) => /*#__PURE__*/_react.default.createElement(_react2.Tab, {
+ key: tab.id,
+ value: tab,
+ isActive: index === editorContext.activeTabIndex
+ }, /*#__PURE__*/_react.default.createElement(_react2.Tab.Button, {
+ "aria-controls": "graphiql-session",
+ id: `graphiql-session-tab-${index}`,
+ onClick: () => {
+ executionContext.stop();
+ editorContext.changeTab(index);
+ }
+ }, tab.title), /*#__PURE__*/_react.default.createElement(_react2.Tab.Close, {
+ onClick: () => {
+ if (editorContext.activeTabIndex === index) {
+ executionContext.stop();
+ }
+ editorContext.closeTab(index);
+ }
+ }))), addTab)), /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-session-header-right"
+ }, editorContext.tabs.length === 1 && addTab, logo)), /*#__PURE__*/_react.default.createElement("div", {
+ role: "tabpanel",
+ id: "graphiql-session",
+ className: "graphiql-session",
+ "aria-labelledby": `graphiql-session-tab-${editorContext.activeTabIndex}`
+ }, /*#__PURE__*/_react.default.createElement("div", {
+ ref: editorResize.firstRef
+ }, /*#__PURE__*/_react.default.createElement("div", {
+ className: `graphiql-editors${editorContext.tabs.length === 1 ? ' full-height' : ''}`
+ }, /*#__PURE__*/_react.default.createElement("div", {
+ ref: editorToolsResize.firstRef
+ }, /*#__PURE__*/_react.default.createElement("section", {
+ className: "graphiql-query-editor",
+ "aria-label": "Query Editor"
+ }, /*#__PURE__*/_react.default.createElement(_react2.QueryEditor, {
+ editorTheme: props.editorTheme,
+ keyMap: props.keyMap,
+ onClickReference: onClickReference,
+ onCopyQuery: props.onCopyQuery,
+ onEdit: props.onEditQuery,
+ readOnly: props.readOnly
+ }), /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-toolbar",
+ role: "toolbar",
+ "aria-label": "Editor Commands"
+ }, /*#__PURE__*/_react.default.createElement(_react2.ExecuteButton, null), toolbar))), /*#__PURE__*/_react.default.createElement("div", {
+ ref: editorToolsResize.dragBarRef
+ }, /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-editor-tools"
+ }, /*#__PURE__*/_react.default.createElement(_react2.UnStyledButton, {
+ type: "button",
+ className: activeSecondaryEditor === 'variables' && editorToolsResize.hiddenElement !== 'second' ? 'active' : '',
+ onClick: handleToolsTabClick,
+ "data-name": "variables"
+ }, "Variables"), isHeadersEditorEnabled && /*#__PURE__*/_react.default.createElement(_react2.UnStyledButton, {
+ type: "button",
+ className: activeSecondaryEditor === 'headers' && editorToolsResize.hiddenElement !== 'second' ? 'active' : '',
+ onClick: handleToolsTabClick,
+ "data-name": "headers"
+ }, "Headers"), /*#__PURE__*/_react.default.createElement(_react2.Tooltip, {
+ label: editorToolsResize.hiddenElement === 'second' ? 'Show editor tools' : 'Hide editor tools'
+ }, /*#__PURE__*/_react.default.createElement(_react2.UnStyledButton, {
+ type: "button",
+ onClick: toggleEditorTools,
+ "aria-label": editorToolsResize.hiddenElement === 'second' ? 'Show editor tools' : 'Hide editor tools',
+ className: "graphiql-toggle-editor-tools"
+ }, editorToolsResize.hiddenElement === 'second' ? /*#__PURE__*/_react.default.createElement(_react2.ChevronUpIcon, {
+ className: "graphiql-chevron-icon",
+ "aria-hidden": "true"
+ }) : /*#__PURE__*/_react.default.createElement(_react2.ChevronDownIcon, {
+ className: "graphiql-chevron-icon",
+ "aria-hidden": "true"
+ }))))), /*#__PURE__*/_react.default.createElement("div", {
+ ref: editorToolsResize.secondRef
+ }, /*#__PURE__*/_react.default.createElement("section", {
+ className: "graphiql-editor-tool",
+ "aria-label": activeSecondaryEditor === 'variables' ? 'Variables' : 'Headers'
+ }, /*#__PURE__*/_react.default.createElement(_react2.VariableEditor, {
+ editorTheme: props.editorTheme,
+ isHidden: activeSecondaryEditor !== 'variables',
+ keyMap: props.keyMap,
+ onEdit: props.onEditVariables,
+ onClickReference: onClickReference,
+ readOnly: props.readOnly
+ }), isHeadersEditorEnabled && /*#__PURE__*/_react.default.createElement(_react2.HeaderEditor, {
+ editorTheme: props.editorTheme,
+ isHidden: activeSecondaryEditor !== 'headers',
+ keyMap: props.keyMap,
+ onEdit: props.onEditHeaders,
+ readOnly: props.readOnly
+ }))))), /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-horizontal-drag-bar",
+ ref: editorResize.dragBarRef
+ }), /*#__PURE__*/_react.default.createElement("div", {
+ ref: editorResize.secondRef
+ }, /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-response"
+ }, executionContext.isFetching ? /*#__PURE__*/_react.default.createElement(_react2.Spinner, null) : null, /*#__PURE__*/_react.default.createElement(_react2.ResponseEditor, {
+ editorTheme: props.editorTheme,
+ responseTooltip: props.responseTooltip,
+ keyMap: props.keyMap
+ }), footer))))), /*#__PURE__*/_react.default.createElement(_react2.Dialog, {
+ open: showDialog === 'short-keys',
+ onOpenChange: handleOpenShortKeysDialog
+ }, /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-dialog-header"
+ }, /*#__PURE__*/_react.default.createElement(_react2.Dialog.Title, {
+ className: "graphiql-dialog-title"
+ }, "Short Keys"), /*#__PURE__*/_react.default.createElement(_react2.Dialog.Close, null)), /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-dialog-section"
+ }, /*#__PURE__*/_react.default.createElement(ShortKeys, {
+ keyMap: props.keyMap || 'sublime'
+ }))), /*#__PURE__*/_react.default.createElement(_react2.Dialog, {
+ open: showDialog === 'settings',
+ onOpenChange: handleOpenSettingsDialog
+ }, /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-dialog-header"
+ }, /*#__PURE__*/_react.default.createElement(_react2.Dialog.Title, {
+ className: "graphiql-dialog-title"
+ }, "Settings"), /*#__PURE__*/_react.default.createElement(_react2.Dialog.Close, null)), props.showPersistHeadersSettings ? /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-dialog-section"
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-dialog-section-title"
+ }, "Persist headers"), /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-dialog-section-caption"
+ }, "Save headers upon reloading.", ' ', /*#__PURE__*/_react.default.createElement("span", {
+ className: "graphiql-warning-text"
+ }, "Only enable if you trust this device."))), /*#__PURE__*/_react.default.createElement(_react2.ButtonGroup, null, /*#__PURE__*/_react.default.createElement(_react2.Button, {
+ type: "button",
+ id: "enable-persist-headers",
+ className: editorContext.shouldPersistHeaders ? 'active' : '',
+ "data-value": "true",
+ onClick: handlePersistHeaders
+ }, "On"), /*#__PURE__*/_react.default.createElement(_react2.Button, {
+ type: "button",
+ id: "disable-persist-headers",
+ className: editorContext.shouldPersistHeaders ? '' : 'active',
+ onClick: handlePersistHeaders
+ }, "Off"))) : null, /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-dialog-section"
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-dialog-section-title"
+ }, "Theme"), /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-dialog-section-caption"
+ }, "Adjust how the interface looks like.")), /*#__PURE__*/_react.default.createElement(_react2.ButtonGroup, null, /*#__PURE__*/_react.default.createElement(_react2.Button, {
+ type: "button",
+ className: theme === null ? 'active' : '',
+ onClick: handleChangeTheme
+ }, "System"), /*#__PURE__*/_react.default.createElement(_react2.Button, {
+ type: "button",
+ className: theme === 'light' ? 'active' : '',
+ "data-theme": "light",
+ onClick: handleChangeTheme
+ }, "Light"), /*#__PURE__*/_react.default.createElement(_react2.Button, {
+ type: "button",
+ className: theme === 'dark' ? 'active' : '',
+ "data-theme": "dark",
+ onClick: handleChangeTheme
+ }, "Dark"))), storageContext ? /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-dialog-section"
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-dialog-section-title"
+ }, "Clear storage"), /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-dialog-section-caption"
+ }, "Remove all locally stored data and start fresh.")), /*#__PURE__*/_react.default.createElement(_react2.Button, {
+ type: "button",
+ state: clearStorageStatus || undefined,
+ disabled: clearStorageStatus === 'success',
+ onClick: handleClearData
+ }, {
+ success: 'Cleared data',
+ error: 'Failed'
+ }[clearStorageStatus] || 'Clear data')) : null)));
+}
+const modifier = typeof window !== 'undefined' && window.navigator.platform.toLowerCase().indexOf('mac') === 0 ? 'Cmd' : 'Ctrl';
+const SHORT_KEYS = Object.entries({
+ 'Search in editor': [modifier, 'F'],
+ 'Search in documentation': [modifier, 'K'],
+ 'Execute query': [modifier, 'Enter'],
+ 'Prettify editors': ['Ctrl', 'Shift', 'P'],
+ 'Merge fragments definitions into operation definition': ['Ctrl', 'Shift', 'M'],
+ 'Copy query': ['Ctrl', 'Shift', 'C'],
+ 'Re-fetch schema using introspection': ['Ctrl', 'Shift', 'R']
+});
+function ShortKeys(_ref2) {
+ let {
+ keyMap
+ } = _ref2;
+ return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("table", {
+ className: "graphiql-table"
+ }, /*#__PURE__*/_react.default.createElement("thead", null, /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("th", null, "Short Key"), /*#__PURE__*/_react.default.createElement("th", null, "Function"))), /*#__PURE__*/_react.default.createElement("tbody", null, SHORT_KEYS.map(_ref3 => {
+ let [title, keys] = _ref3;
+ return /*#__PURE__*/_react.default.createElement("tr", {
+ key: title
+ }, /*#__PURE__*/_react.default.createElement("td", null, keys.map((key, index, array) => /*#__PURE__*/_react.default.createElement(_react.Fragment, {
+ key: key
+ }, /*#__PURE__*/_react.default.createElement("code", {
+ className: "graphiql-key"
+ }, key), index !== array.length - 1 && ' + '))), /*#__PURE__*/_react.default.createElement("td", null, title));
+ }))), /*#__PURE__*/_react.default.createElement("p", null, "The editors use", ' ', /*#__PURE__*/_react.default.createElement("a", {
+ href: "https://codemirror.net/5/doc/manual.html#keymaps",
+ target: "_blank",
+ rel: "noopener noreferrer"
+ }, "CodeMirror Key Maps"), ' ', "that add more short keys. This instance of Graph", /*#__PURE__*/_react.default.createElement("em", null, "i"), "QL uses", ' ', /*#__PURE__*/_react.default.createElement("code", null, keyMap), "."));
+}
+
+// Configure the UI by providing this Component as a child of GraphiQL.
+function GraphiQLLogo(props) {
+ return /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-logo"
+ }, props.children || /*#__PURE__*/_react.default.createElement("a", {
+ className: "graphiql-logo-link",
+ href: "https://github.com/graphql/graphiql",
+ target: "_blank",
+ rel: "noreferrer"
+ }, "Graph", /*#__PURE__*/_react.default.createElement("em", null, "i"), "QL"));
+}
+GraphiQLLogo.displayName = 'GraphiQLLogo';
+
+// Configure the UI by providing this Component as a child of GraphiQL.
+function GraphiQLToolbar(props) {
+ // eslint-disable-next-line react/jsx-no-useless-fragment
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.children);
+}
+GraphiQLToolbar.displayName = 'GraphiQLToolbar';
+
+// Configure the UI by providing this Component as a child of GraphiQL.
+function GraphiQLFooter(props) {
+ return /*#__PURE__*/_react.default.createElement("div", {
+ className: "graphiql-footer"
+ }, props.children);
+}
+GraphiQLFooter.displayName = 'GraphiQLFooter';
+
+// Determines if the React child is of the same type of the provided React component
+function isChildComponentType(child, component) {
+ var _child$type;
+ if (child !== null && child !== void 0 && (_child$type = child.type) !== null && _child$type !== void 0 && _child$type.displayName && child.type.displayName === component.displayName) {
+ return true;
+ }
+ return child.type === component;
+}
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/index.js":
+/*!***************************************************!*\
+ !*** ../../graphql-language-service/esm/index.js ***!
+ \***************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+Object.defineProperty(exports, "CharacterStream", ({
+ enumerable: true,
+ get: function () {
+ return _parser.CharacterStream;
+ }
+}));
+Object.defineProperty(exports, "CompletionItemKind", ({
+ enumerable: true,
+ get: function () {
+ return _types.CompletionItemKind;
+ }
+}));
+Object.defineProperty(exports, "DIAGNOSTIC_SEVERITY", ({
+ enumerable: true,
+ get: function () {
+ return _interface.DIAGNOSTIC_SEVERITY;
+ }
+}));
+Object.defineProperty(exports, "FileChangeTypeKind", ({
+ enumerable: true,
+ get: function () {
+ return _types.FileChangeTypeKind;
+ }
+}));
+Object.defineProperty(exports, "LexRules", ({
+ enumerable: true,
+ get: function () {
+ return _parser.LexRules;
+ }
+}));
+Object.defineProperty(exports, "ParseRules", ({
+ enumerable: true,
+ get: function () {
+ return _parser.ParseRules;
+ }
+}));
+Object.defineProperty(exports, "Position", ({
+ enumerable: true,
+ get: function () {
+ return _utils.Position;
+ }
+}));
+Object.defineProperty(exports, "Range", ({
+ enumerable: true,
+ get: function () {
+ return _utils.Range;
+ }
+}));
+Object.defineProperty(exports, "RuleKinds", ({
+ enumerable: true,
+ get: function () {
+ return _parser.RuleKinds;
+ }
+}));
+Object.defineProperty(exports, "SEVERITY", ({
+ enumerable: true,
+ get: function () {
+ return _interface.SEVERITY;
+ }
+}));
+Object.defineProperty(exports, "SuggestionCommand", ({
+ enumerable: true,
+ get: function () {
+ return _interface.SuggestionCommand;
+ }
+}));
+Object.defineProperty(exports, "canUseDirective", ({
+ enumerable: true,
+ get: function () {
+ return _interface.canUseDirective;
+ }
+}));
+Object.defineProperty(exports, "collectVariables", ({
+ enumerable: true,
+ get: function () {
+ return _utils.collectVariables;
+ }
+}));
+Object.defineProperty(exports, "getASTNodeAtPosition", ({
+ enumerable: true,
+ get: function () {
+ return _utils.getASTNodeAtPosition;
+ }
+}));
+Object.defineProperty(exports, "getAutocompleteSuggestions", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getAutocompleteSuggestions;
+ }
+}));
+Object.defineProperty(exports, "getDefinitionQueryResultForDefinitionNode", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getDefinitionQueryResultForDefinitionNode;
+ }
+}));
+Object.defineProperty(exports, "getDefinitionQueryResultForField", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getDefinitionQueryResultForField;
+ }
+}));
+Object.defineProperty(exports, "getDefinitionQueryResultForFragmentSpread", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getDefinitionQueryResultForFragmentSpread;
+ }
+}));
+Object.defineProperty(exports, "getDefinitionQueryResultForNamedType", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getDefinitionQueryResultForNamedType;
+ }
+}));
+Object.defineProperty(exports, "getDefinitionState", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getDefinitionState;
+ }
+}));
+Object.defineProperty(exports, "getDiagnostics", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getDiagnostics;
+ }
+}));
+Object.defineProperty(exports, "getFieldDef", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getFieldDef;
+ }
+}));
+Object.defineProperty(exports, "getFragmentDefinitions", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getFragmentDefinitions;
+ }
+}));
+Object.defineProperty(exports, "getFragmentDependencies", ({
+ enumerable: true,
+ get: function () {
+ return _utils.getFragmentDependencies;
+ }
+}));
+Object.defineProperty(exports, "getFragmentDependenciesForAST", ({
+ enumerable: true,
+ get: function () {
+ return _utils.getFragmentDependenciesForAST;
+ }
+}));
+Object.defineProperty(exports, "getHoverInformation", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getHoverInformation;
+ }
+}));
+Object.defineProperty(exports, "getOperationASTFacts", ({
+ enumerable: true,
+ get: function () {
+ return _utils.getOperationASTFacts;
+ }
+}));
+Object.defineProperty(exports, "getOperationFacts", ({
+ enumerable: true,
+ get: function () {
+ return _utils.getOperationFacts;
+ }
+}));
+Object.defineProperty(exports, "getOutline", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getOutline;
+ }
+}));
+Object.defineProperty(exports, "getQueryFacts", ({
+ enumerable: true,
+ get: function () {
+ return _utils.getQueryFacts;
+ }
+}));
+Object.defineProperty(exports, "getRange", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getRange;
+ }
+}));
+Object.defineProperty(exports, "getTokenAtPosition", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getTokenAtPosition;
+ }
+}));
+Object.defineProperty(exports, "getTypeInfo", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getTypeInfo;
+ }
+}));
+Object.defineProperty(exports, "getVariableCompletions", ({
+ enumerable: true,
+ get: function () {
+ return _interface.getVariableCompletions;
+ }
+}));
+Object.defineProperty(exports, "getVariablesJSONSchema", ({
+ enumerable: true,
+ get: function () {
+ return _utils.getVariablesJSONSchema;
+ }
+}));
+Object.defineProperty(exports, "isIgnored", ({
+ enumerable: true,
+ get: function () {
+ return _parser.isIgnored;
+ }
+}));
+Object.defineProperty(exports, "list", ({
+ enumerable: true,
+ get: function () {
+ return _parser.list;
+ }
+}));
+Object.defineProperty(exports, "offsetToPosition", ({
+ enumerable: true,
+ get: function () {
+ return _utils.offsetToPosition;
+ }
+}));
+Object.defineProperty(exports, "onlineParser", ({
+ enumerable: true,
+ get: function () {
+ return _parser.onlineParser;
+ }
+}));
+Object.defineProperty(exports, "opt", ({
+ enumerable: true,
+ get: function () {
+ return _parser.opt;
+ }
+}));
+Object.defineProperty(exports, "p", ({
+ enumerable: true,
+ get: function () {
+ return _parser.p;
+ }
+}));
+Object.defineProperty(exports, "pointToOffset", ({
+ enumerable: true,
+ get: function () {
+ return _utils.pointToOffset;
+ }
+}));
+Object.defineProperty(exports, "t", ({
+ enumerable: true,
+ get: function () {
+ return _parser.t;
+ }
+}));
+Object.defineProperty(exports, "validateQuery", ({
+ enumerable: true,
+ get: function () {
+ return _interface.validateQuery;
+ }
+}));
+Object.defineProperty(exports, "validateWithCustomRules", ({
+ enumerable: true,
+ get: function () {
+ return _utils.validateWithCustomRules;
+ }
+}));
+var _interface = __webpack_require__(/*! ./interface */ "../../graphql-language-service/esm/interface/index.js");
+var _parser = __webpack_require__(/*! ./parser */ "../../graphql-language-service/esm/parser/index.js");
+var _types = __webpack_require__(/*! ./types */ "../../graphql-language-service/esm/types.js");
+var _utils = __webpack_require__(/*! ./utils */ "../../graphql-language-service/esm/utils/index.js");
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/interface/autocompleteUtils.js":
+/*!*************************************************************************!*\
+ !*** ../../graphql-language-service/esm/interface/autocompleteUtils.js ***!
+ \*************************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.forEachState = forEachState;
+exports.getDefinitionState = getDefinitionState;
+exports.getFieldDef = getFieldDef;
+exports.hintList = hintList;
+exports.objectValues = objectValues;
+var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs");
+function getDefinitionState(tokenState) {
+ let definitionState;
+ forEachState(tokenState, state => {
+ switch (state.kind) {
+ case 'Query':
+ case 'ShortQuery':
+ case 'Mutation':
+ case 'Subscription':
+ case 'FragmentDefinition':
+ definitionState = state;
+ break;
+ }
+ });
+ return definitionState;
+}
+function getFieldDef(schema, type, fieldName) {
+ if (fieldName === _graphql.SchemaMetaFieldDef.name && schema.getQueryType() === type) {
+ return _graphql.SchemaMetaFieldDef;
+ }
+ if (fieldName === _graphql.TypeMetaFieldDef.name && schema.getQueryType() === type) {
+ return _graphql.TypeMetaFieldDef;
+ }
+ if (fieldName === _graphql.TypeNameMetaFieldDef.name && (0, _graphql.isCompositeType)(type)) {
+ return _graphql.TypeNameMetaFieldDef;
+ }
+ if ('getFields' in type) {
+ return type.getFields()[fieldName];
+ }
+ return null;
+}
+function forEachState(stack, fn) {
+ const reverseStateStack = [];
+ let state = stack;
+ while (state === null || state === void 0 ? void 0 : state.kind) {
+ reverseStateStack.push(state);
+ state = state.prevState;
+ }
+ for (let i = reverseStateStack.length - 1; i >= 0; i--) {
+ fn(reverseStateStack[i]);
+ }
+}
+function objectValues(object) {
+ const keys = Object.keys(object);
+ const len = keys.length;
+ const values = new Array(len);
+ for (let i = 0; i < len; ++i) {
+ values[i] = object[keys[i]];
+ }
+ return values;
+}
+function hintList(token, list) {
+ return filterAndSortList(list, normalizeText(token.string));
+}
+function filterAndSortList(list, text) {
+ if (!text) {
+ return filterNonEmpty(list, entry => !entry.isDeprecated);
+ }
+ const byProximity = list.map(entry => ({
+ proximity: getProximity(normalizeText(entry.label), text),
+ entry
+ }));
+ return filterNonEmpty(filterNonEmpty(byProximity, pair => pair.proximity <= 2), pair => !pair.entry.isDeprecated).sort((a, b) => (a.entry.isDeprecated ? 1 : 0) - (b.entry.isDeprecated ? 1 : 0) || a.proximity - b.proximity || a.entry.label.length - b.entry.label.length).map(pair => pair.entry);
+}
+function filterNonEmpty(array, predicate) {
+ const filtered = array.filter(predicate);
+ return filtered.length === 0 ? array : filtered;
+}
+function normalizeText(text) {
+ return text.toLowerCase().replaceAll(/\W/g, '');
+}
+function getProximity(suggestion, text) {
+ let proximity = lexicalDistance(text, suggestion);
+ if (suggestion.length > text.length) {
+ proximity -= suggestion.length - text.length - 1;
+ proximity += suggestion.indexOf(text) === 0 ? 0 : 0.5;
+ }
+ return proximity;
+}
+function lexicalDistance(a, b) {
+ let i;
+ let j;
+ const d = [];
+ const aLength = a.length;
+ const bLength = b.length;
+ for (i = 0; i <= aLength; i++) {
+ d[i] = [i];
+ }
+ for (j = 1; j <= bLength; j++) {
+ d[0][j] = j;
+ }
+ for (i = 1; i <= aLength; i++) {
+ for (j = 1; j <= bLength; j++) {
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
+ d[i][j] = Math.min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost);
+ if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) {
+ d[i][j] = Math.min(d[i][j], d[i - 2][j - 2] + cost);
+ }
+ }
+ }
+ return d[aLength][bLength];
+}
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/interface/getAutocompleteSuggestions.js":
+/*!**********************************************************************************!*\
+ !*** ../../graphql-language-service/esm/interface/getAutocompleteSuggestions.js ***!
+ \**********************************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.SuggestionCommand = exports.GraphQLDocumentMode = void 0;
+exports.canUseDirective = canUseDirective;
+exports.getAutocompleteSuggestions = getAutocompleteSuggestions;
+exports.getFragmentDefinitions = getFragmentDefinitions;
+exports.getTokenAtPosition = getTokenAtPosition;
+exports.getTypeInfo = getTypeInfo;
+exports.getVariableCompletions = getVariableCompletions;
+exports.runOnlineParser = runOnlineParser;
+var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs");
+var _types = __webpack_require__(/*! ../types */ "../../graphql-language-service/esm/types.js");
+var _parser = __webpack_require__(/*! ../parser */ "../../graphql-language-service/esm/parser/index.js");
+var _autocompleteUtils = __webpack_require__(/*! ./autocompleteUtils */ "../../graphql-language-service/esm/interface/autocompleteUtils.js");
+const SuggestionCommand = {
+ command: 'editor.action.triggerSuggest',
+ title: 'Suggestions'
+};
+exports.SuggestionCommand = SuggestionCommand;
+const collectFragmentDefs = op => {
+ const externalFragments = [];
+ if (op) {
+ try {
+ (0, _graphql.visit)((0, _graphql.parse)(op), {
+ FragmentDefinition(def) {
+ externalFragments.push(def);
+ }
+ });
+ } catch (_a) {
+ return [];
+ }
+ }
+ return externalFragments;
+};
+const typeSystemKinds = [_graphql.Kind.SCHEMA_DEFINITION, _graphql.Kind.OPERATION_TYPE_DEFINITION, _graphql.Kind.SCALAR_TYPE_DEFINITION, _graphql.Kind.OBJECT_TYPE_DEFINITION, _graphql.Kind.INTERFACE_TYPE_DEFINITION, _graphql.Kind.UNION_TYPE_DEFINITION, _graphql.Kind.ENUM_TYPE_DEFINITION, _graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION, _graphql.Kind.DIRECTIVE_DEFINITION, _graphql.Kind.SCHEMA_EXTENSION, _graphql.Kind.SCALAR_TYPE_EXTENSION, _graphql.Kind.OBJECT_TYPE_EXTENSION, _graphql.Kind.INTERFACE_TYPE_EXTENSION, _graphql.Kind.UNION_TYPE_EXTENSION, _graphql.Kind.ENUM_TYPE_EXTENSION, _graphql.Kind.INPUT_OBJECT_TYPE_EXTENSION];
+const hasTypeSystemDefinitions = sdl => {
+ let hasTypeSystemDef = false;
+ if (sdl) {
+ try {
+ (0, _graphql.visit)((0, _graphql.parse)(sdl), {
+ enter(node) {
+ if (node.kind === 'Document') {
+ return;
+ }
+ if (typeSystemKinds.includes(node.kind)) {
+ hasTypeSystemDef = true;
+ return _graphql.BREAK;
+ }
+ return false;
+ }
+ });
+ } catch (_a) {
+ return hasTypeSystemDef;
+ }
+ }
+ return hasTypeSystemDef;
+};
+function getAutocompleteSuggestions(schema, queryText, cursor, contextToken, fragmentDefs, options) {
+ var _a;
+ const opts = Object.assign(Object.assign({}, options), {
+ schema
+ });
+ const token = contextToken || getTokenAtPosition(queryText, cursor, 1);
+ const state = token.state.kind === 'Invalid' ? token.state.prevState : token.state;
+ const mode = (options === null || options === void 0 ? void 0 : options.mode) || getDocumentMode(queryText, options === null || options === void 0 ? void 0 : options.uri);
+ if (!state) {
+ return [];
+ }
+ const {
+ kind,
+ step,
+ prevState
+ } = state;
+ const typeInfo = getTypeInfo(schema, token.state);
+ if (kind === _parser.RuleKinds.DOCUMENT) {
+ if (mode === GraphQLDocumentMode.TYPE_SYSTEM) {
+ return getSuggestionsForTypeSystemDefinitions(token);
+ }
+ return getSuggestionsForExecutableDefinitions(token);
+ }
+ if (kind === _parser.RuleKinds.EXTEND_DEF) {
+ return getSuggestionsForExtensionDefinitions(token);
+ }
+ if (((_a = prevState === null || prevState === void 0 ? void 0 : prevState.prevState) === null || _a === void 0 ? void 0 : _a.kind) === _parser.RuleKinds.EXTENSION_DEFINITION && state.name) {
+ return (0, _autocompleteUtils.hintList)(token, []);
+ }
+ if ((prevState === null || prevState === void 0 ? void 0 : prevState.kind) === _graphql.Kind.SCALAR_TYPE_EXTENSION) {
+ return (0, _autocompleteUtils.hintList)(token, Object.values(schema.getTypeMap()).filter(_graphql.isScalarType).map(type => ({
+ label: type.name,
+ kind: _types.CompletionItemKind.Function
+ })));
+ }
+ if ((prevState === null || prevState === void 0 ? void 0 : prevState.kind) === _graphql.Kind.OBJECT_TYPE_EXTENSION) {
+ return (0, _autocompleteUtils.hintList)(token, Object.values(schema.getTypeMap()).filter(type => (0, _graphql.isObjectType)(type) && !type.name.startsWith('__')).map(type => ({
+ label: type.name,
+ kind: _types.CompletionItemKind.Function
+ })));
+ }
+ if ((prevState === null || prevState === void 0 ? void 0 : prevState.kind) === _graphql.Kind.INTERFACE_TYPE_EXTENSION) {
+ return (0, _autocompleteUtils.hintList)(token, Object.values(schema.getTypeMap()).filter(_graphql.isInterfaceType).map(type => ({
+ label: type.name,
+ kind: _types.CompletionItemKind.Function
+ })));
+ }
+ if ((prevState === null || prevState === void 0 ? void 0 : prevState.kind) === _graphql.Kind.UNION_TYPE_EXTENSION) {
+ return (0, _autocompleteUtils.hintList)(token, Object.values(schema.getTypeMap()).filter(_graphql.isUnionType).map(type => ({
+ label: type.name,
+ kind: _types.CompletionItemKind.Function
+ })));
+ }
+ if ((prevState === null || prevState === void 0 ? void 0 : prevState.kind) === _graphql.Kind.ENUM_TYPE_EXTENSION) {
+ return (0, _autocompleteUtils.hintList)(token, Object.values(schema.getTypeMap()).filter(type => (0, _graphql.isEnumType)(type) && !type.name.startsWith('__')).map(type => ({
+ label: type.name,
+ kind: _types.CompletionItemKind.Function
+ })));
+ }
+ if ((prevState === null || prevState === void 0 ? void 0 : prevState.kind) === _graphql.Kind.INPUT_OBJECT_TYPE_EXTENSION) {
+ return (0, _autocompleteUtils.hintList)(token, Object.values(schema.getTypeMap()).filter(_graphql.isInputObjectType).map(type => ({
+ label: type.name,
+ kind: _types.CompletionItemKind.Function
+ })));
+ }
+ if (kind === _parser.RuleKinds.IMPLEMENTS || kind === _parser.RuleKinds.NAMED_TYPE && (prevState === null || prevState === void 0 ? void 0 : prevState.kind) === _parser.RuleKinds.IMPLEMENTS) {
+ return getSuggestionsForImplements(token, state, schema, queryText, typeInfo);
+ }
+ if (kind === _parser.RuleKinds.SELECTION_SET || kind === _parser.RuleKinds.FIELD || kind === _parser.RuleKinds.ALIASED_FIELD) {
+ return getSuggestionsForFieldNames(token, typeInfo, opts);
+ }
+ if (kind === _parser.RuleKinds.ARGUMENTS || kind === _parser.RuleKinds.ARGUMENT && step === 0) {
+ const {
+ argDefs
+ } = typeInfo;
+ if (argDefs) {
+ return (0, _autocompleteUtils.hintList)(token, argDefs.map(argDef => {
+ var _a;
+ return {
+ label: argDef.name,
+ insertText: argDef.name + ': ',
+ command: SuggestionCommand,
+ detail: String(argDef.type),
+ documentation: (_a = argDef.description) !== null && _a !== void 0 ? _a : undefined,
+ kind: _types.CompletionItemKind.Variable,
+ type: argDef.type
+ };
+ }));
+ }
+ }
+ if ((kind === _parser.RuleKinds.OBJECT_VALUE || kind === _parser.RuleKinds.OBJECT_FIELD && step === 0) && typeInfo.objectFieldDefs) {
+ const objectFields = (0, _autocompleteUtils.objectValues)(typeInfo.objectFieldDefs);
+ const completionKind = kind === _parser.RuleKinds.OBJECT_VALUE ? _types.CompletionItemKind.Value : _types.CompletionItemKind.Field;
+ return (0, _autocompleteUtils.hintList)(token, objectFields.map(field => {
+ var _a;
+ return {
+ label: field.name,
+ detail: String(field.type),
+ documentation: (_a = field.description) !== null && _a !== void 0 ? _a : undefined,
+ kind: completionKind,
+ type: field.type
+ };
+ }));
+ }
+ if (kind === _parser.RuleKinds.ENUM_VALUE || kind === _parser.RuleKinds.LIST_VALUE && step === 1 || kind === _parser.RuleKinds.OBJECT_FIELD && step === 2 || kind === _parser.RuleKinds.ARGUMENT && step === 2) {
+ return getSuggestionsForInputValues(token, typeInfo, queryText, schema);
+ }
+ if (kind === _parser.RuleKinds.VARIABLE && step === 1) {
+ const namedInputType = (0, _graphql.getNamedType)(typeInfo.inputType);
+ const variableDefinitions = getVariableCompletions(queryText, schema, token);
+ return (0, _autocompleteUtils.hintList)(token, variableDefinitions.filter(v => v.detail === (namedInputType === null || namedInputType === void 0 ? void 0 : namedInputType.name)));
+ }
+ if (kind === _parser.RuleKinds.TYPE_CONDITION && step === 1 || kind === _parser.RuleKinds.NAMED_TYPE && prevState != null && prevState.kind === _parser.RuleKinds.TYPE_CONDITION) {
+ return getSuggestionsForFragmentTypeConditions(token, typeInfo, schema, kind);
+ }
+ if (kind === _parser.RuleKinds.FRAGMENT_SPREAD && step === 1) {
+ return getSuggestionsForFragmentSpread(token, typeInfo, schema, queryText, Array.isArray(fragmentDefs) ? fragmentDefs : collectFragmentDefs(fragmentDefs));
+ }
+ const unwrappedState = unwrapType(state);
+ if (mode === GraphQLDocumentMode.TYPE_SYSTEM && !unwrappedState.needsAdvance && kind === _parser.RuleKinds.NAMED_TYPE || kind === _parser.RuleKinds.LIST_TYPE) {
+ if (unwrappedState.kind === _parser.RuleKinds.FIELD_DEF) {
+ return (0, _autocompleteUtils.hintList)(token, Object.values(schema.getTypeMap()).filter(type => (0, _graphql.isOutputType)(type) && !type.name.startsWith('__')).map(type => ({
+ label: type.name,
+ kind: _types.CompletionItemKind.Function
+ })));
+ }
+ if (unwrappedState.kind === _parser.RuleKinds.INPUT_VALUE_DEF) {
+ return (0, _autocompleteUtils.hintList)(token, Object.values(schema.getTypeMap()).filter(type => (0, _graphql.isInputType)(type) && !type.name.startsWith('__')).map(type => ({
+ label: type.name,
+ kind: _types.CompletionItemKind.Function
+ })));
+ }
+ }
+ if (kind === _parser.RuleKinds.VARIABLE_DEFINITION && step === 2 || kind === _parser.RuleKinds.LIST_TYPE && step === 1 || kind === _parser.RuleKinds.NAMED_TYPE && prevState && (prevState.kind === _parser.RuleKinds.VARIABLE_DEFINITION || prevState.kind === _parser.RuleKinds.LIST_TYPE || prevState.kind === _parser.RuleKinds.NON_NULL_TYPE)) {
+ return getSuggestionsForVariableDefinition(token, schema, kind);
+ }
+ if (kind === _parser.RuleKinds.DIRECTIVE) {
+ return getSuggestionsForDirective(token, state, schema, kind);
+ }
+ return [];
+}
+const insertSuffix = ' {\n $1\n}';
+const getInsertText = field => {
+ const {
+ type
+ } = field;
+ if ((0, _graphql.isCompositeType)(type)) {
+ return insertSuffix;
+ }
+ if ((0, _graphql.isListType)(type) && (0, _graphql.isCompositeType)(type.ofType)) {
+ return insertSuffix;
+ }
+ if ((0, _graphql.isNonNullType)(type)) {
+ if ((0, _graphql.isCompositeType)(type.ofType)) {
+ return insertSuffix;
+ }
+ if ((0, _graphql.isListType)(type.ofType) && (0, _graphql.isCompositeType)(type.ofType.ofType)) {
+ return insertSuffix;
+ }
+ }
+ return null;
+};
+function getSuggestionsForTypeSystemDefinitions(token) {
+ return (0, _autocompleteUtils.hintList)(token, [{
+ label: 'extend',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: 'type',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: 'interface',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: 'union',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: 'input',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: 'scalar',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: 'schema',
+ kind: _types.CompletionItemKind.Function
+ }]);
+}
+function getSuggestionsForExecutableDefinitions(token) {
+ return (0, _autocompleteUtils.hintList)(token, [{
+ label: 'query',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: 'mutation',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: 'subscription',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: 'fragment',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: '{',
+ kind: _types.CompletionItemKind.Constructor
+ }]);
+}
+function getSuggestionsForExtensionDefinitions(token) {
+ return (0, _autocompleteUtils.hintList)(token, [{
+ label: 'type',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: 'interface',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: 'union',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: 'input',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: 'scalar',
+ kind: _types.CompletionItemKind.Function
+ }, {
+ label: 'schema',
+ kind: _types.CompletionItemKind.Function
+ }]);
+}
+function getSuggestionsForFieldNames(token, typeInfo, options) {
+ var _a;
+ if (typeInfo.parentType) {
+ const {
+ parentType
+ } = typeInfo;
+ let fields = [];
+ if ('getFields' in parentType) {
+ fields = (0, _autocompleteUtils.objectValues)(parentType.getFields());
+ }
+ if ((0, _graphql.isCompositeType)(parentType)) {
+ fields.push(_graphql.TypeNameMetaFieldDef);
+ }
+ if (parentType === ((_a = options === null || options === void 0 ? void 0 : options.schema) === null || _a === void 0 ? void 0 : _a.getQueryType())) {
+ fields.push(_graphql.SchemaMetaFieldDef, _graphql.TypeMetaFieldDef);
+ }
+ return (0, _autocompleteUtils.hintList)(token, fields.map((field, index) => {
+ var _a;
+ const suggestion = {
+ sortText: String(index) + field.name,
+ label: field.name,
+ detail: String(field.type),
+ documentation: (_a = field.description) !== null && _a !== void 0 ? _a : undefined,
+ deprecated: Boolean(field.deprecationReason),
+ isDeprecated: Boolean(field.deprecationReason),
+ deprecationReason: field.deprecationReason,
+ kind: _types.CompletionItemKind.Field,
+ type: field.type
+ };
+ if (options === null || options === void 0 ? void 0 : options.fillLeafsOnComplete) {
+ const insertText = getInsertText(field);
+ if (insertText) {
+ suggestion.insertText = field.name + insertText;
+ suggestion.insertTextFormat = _types.InsertTextFormat.Snippet;
+ suggestion.command = SuggestionCommand;
+ }
+ }
+ return suggestion;
+ }));
+ }
+ return [];
+}
+function getSuggestionsForInputValues(token, typeInfo, queryText, schema) {
+ const namedInputType = (0, _graphql.getNamedType)(typeInfo.inputType);
+ const queryVariables = getVariableCompletions(queryText, schema, token).filter(v => v.detail === namedInputType.name);
+ if (namedInputType instanceof _graphql.GraphQLEnumType) {
+ const values = namedInputType.getValues();
+ return (0, _autocompleteUtils.hintList)(token, values.map(value => {
+ var _a;
+ return {
+ label: value.name,
+ detail: String(namedInputType),
+ documentation: (_a = value.description) !== null && _a !== void 0 ? _a : undefined,
+ deprecated: Boolean(value.deprecationReason),
+ isDeprecated: Boolean(value.deprecationReason),
+ deprecationReason: value.deprecationReason,
+ kind: _types.CompletionItemKind.EnumMember,
+ type: namedInputType
+ };
+ }).concat(queryVariables));
+ }
+ if (namedInputType === _graphql.GraphQLBoolean) {
+ return (0, _autocompleteUtils.hintList)(token, queryVariables.concat([{
+ label: 'true',
+ detail: String(_graphql.GraphQLBoolean),
+ documentation: 'Not false.',
+ kind: _types.CompletionItemKind.Variable,
+ type: _graphql.GraphQLBoolean
+ }, {
+ label: 'false',
+ detail: String(_graphql.GraphQLBoolean),
+ documentation: 'Not true.',
+ kind: _types.CompletionItemKind.Variable,
+ type: _graphql.GraphQLBoolean
+ }]));
+ }
+ return queryVariables;
+}
+function getSuggestionsForImplements(token, tokenState, schema, documentText, typeInfo) {
+ if (tokenState.needsSeparator) {
+ return [];
+ }
+ const typeMap = schema.getTypeMap();
+ const schemaInterfaces = (0, _autocompleteUtils.objectValues)(typeMap).filter(_graphql.isInterfaceType);
+ const schemaInterfaceNames = schemaInterfaces.map(_ref => {
+ let {
+ name
+ } = _ref;
+ return name;
+ });
+ const inlineInterfaces = new Set();
+ runOnlineParser(documentText, (_, state) => {
+ var _a, _b, _c, _d, _e;
+ if (state.name) {
+ if (state.kind === _parser.RuleKinds.INTERFACE_DEF && !schemaInterfaceNames.includes(state.name)) {
+ inlineInterfaces.add(state.name);
+ }
+ if (state.kind === _parser.RuleKinds.NAMED_TYPE && ((_a = state.prevState) === null || _a === void 0 ? void 0 : _a.kind) === _parser.RuleKinds.IMPLEMENTS) {
+ if (typeInfo.interfaceDef) {
+ const existingType = (_b = typeInfo.interfaceDef) === null || _b === void 0 ? void 0 : _b.getInterfaces().find(_ref2 => {
+ let {
+ name
+ } = _ref2;
+ return name === state.name;
+ });
+ if (existingType) {
+ return;
+ }
+ const type = schema.getType(state.name);
+ const interfaceConfig = (_c = typeInfo.interfaceDef) === null || _c === void 0 ? void 0 : _c.toConfig();
+ typeInfo.interfaceDef = new _graphql.GraphQLInterfaceType(Object.assign(Object.assign({}, interfaceConfig), {
+ interfaces: [...interfaceConfig.interfaces, type || new _graphql.GraphQLInterfaceType({
+ name: state.name,
+ fields: {}
+ })]
+ }));
+ } else if (typeInfo.objectTypeDef) {
+ const existingType = (_d = typeInfo.objectTypeDef) === null || _d === void 0 ? void 0 : _d.getInterfaces().find(_ref3 => {
+ let {
+ name
+ } = _ref3;
+ return name === state.name;
+ });
+ if (existingType) {
+ return;
+ }
+ const type = schema.getType(state.name);
+ const objectTypeConfig = (_e = typeInfo.objectTypeDef) === null || _e === void 0 ? void 0 : _e.toConfig();
+ typeInfo.objectTypeDef = new _graphql.GraphQLObjectType(Object.assign(Object.assign({}, objectTypeConfig), {
+ interfaces: [...objectTypeConfig.interfaces, type || new _graphql.GraphQLInterfaceType({
+ name: state.name,
+ fields: {}
+ })]
+ }));
+ }
+ }
+ }
+ });
+ const currentTypeToExtend = typeInfo.interfaceDef || typeInfo.objectTypeDef;
+ const siblingInterfaces = (currentTypeToExtend === null || currentTypeToExtend === void 0 ? void 0 : currentTypeToExtend.getInterfaces()) || [];
+ const siblingInterfaceNames = siblingInterfaces.map(_ref4 => {
+ let {
+ name
+ } = _ref4;
+ return name;
+ });
+ const possibleInterfaces = schemaInterfaces.concat([...inlineInterfaces].map(name => ({
+ name
+ }))).filter(_ref5 => {
+ let {
+ name
+ } = _ref5;
+ return name !== (currentTypeToExtend === null || currentTypeToExtend === void 0 ? void 0 : currentTypeToExtend.name) && !siblingInterfaceNames.includes(name);
+ });
+ return (0, _autocompleteUtils.hintList)(token, possibleInterfaces.map(type => {
+ const result = {
+ label: type.name,
+ kind: _types.CompletionItemKind.Interface,
+ type
+ };
+ if (type === null || type === void 0 ? void 0 : type.description) {
+ result.documentation = type.description;
+ }
+ return result;
+ }));
+}
+function getSuggestionsForFragmentTypeConditions(token, typeInfo, schema, _kind) {
+ let possibleTypes;
+ if (typeInfo.parentType) {
+ if ((0, _graphql.isAbstractType)(typeInfo.parentType)) {
+ const abstractType = (0, _graphql.assertAbstractType)(typeInfo.parentType);
+ const possibleObjTypes = schema.getPossibleTypes(abstractType);
+ const possibleIfaceMap = Object.create(null);
+ for (const type of possibleObjTypes) {
+ for (const iface of type.getInterfaces()) {
+ possibleIfaceMap[iface.name] = iface;
+ }
+ }
+ possibleTypes = possibleObjTypes.concat((0, _autocompleteUtils.objectValues)(possibleIfaceMap));
+ } else {
+ possibleTypes = [typeInfo.parentType];
+ }
+ } else {
+ const typeMap = schema.getTypeMap();
+ possibleTypes = (0, _autocompleteUtils.objectValues)(typeMap).filter(type => (0, _graphql.isCompositeType)(type) && !type.name.startsWith('__'));
+ }
+ return (0, _autocompleteUtils.hintList)(token, possibleTypes.map(type => {
+ const namedType = (0, _graphql.getNamedType)(type);
+ return {
+ label: String(type),
+ documentation: (namedType === null || namedType === void 0 ? void 0 : namedType.description) || '',
+ kind: _types.CompletionItemKind.Field
+ };
+ }));
+}
+function getSuggestionsForFragmentSpread(token, typeInfo, schema, queryText, fragmentDefs) {
+ if (!queryText) {
+ return [];
+ }
+ const typeMap = schema.getTypeMap();
+ const defState = (0, _autocompleteUtils.getDefinitionState)(token.state);
+ const fragments = getFragmentDefinitions(queryText);
+ if (fragmentDefs && fragmentDefs.length > 0) {
+ fragments.push(...fragmentDefs);
+ }
+ const relevantFrags = fragments.filter(frag => typeMap[frag.typeCondition.name.value] && !(defState && defState.kind === _parser.RuleKinds.FRAGMENT_DEFINITION && defState.name === frag.name.value) && (0, _graphql.isCompositeType)(typeInfo.parentType) && (0, _graphql.isCompositeType)(typeMap[frag.typeCondition.name.value]) && (0, _graphql.doTypesOverlap)(schema, typeInfo.parentType, typeMap[frag.typeCondition.name.value]));
+ return (0, _autocompleteUtils.hintList)(token, relevantFrags.map(frag => ({
+ label: frag.name.value,
+ detail: String(typeMap[frag.typeCondition.name.value]),
+ documentation: `fragment ${frag.name.value} on ${frag.typeCondition.name.value}`,
+ kind: _types.CompletionItemKind.Field,
+ type: typeMap[frag.typeCondition.name.value]
+ })));
+}
+const getParentDefinition = (state, kind) => {
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
+ if (((_a = state.prevState) === null || _a === void 0 ? void 0 : _a.kind) === kind) {
+ return state.prevState;
+ }
+ if (((_c = (_b = state.prevState) === null || _b === void 0 ? void 0 : _b.prevState) === null || _c === void 0 ? void 0 : _c.kind) === kind) {
+ return state.prevState.prevState;
+ }
+ if (((_f = (_e = (_d = state.prevState) === null || _d === void 0 ? void 0 : _d.prevState) === null || _e === void 0 ? void 0 : _e.prevState) === null || _f === void 0 ? void 0 : _f.kind) === kind) {
+ return state.prevState.prevState.prevState;
+ }
+ if (((_k = (_j = (_h = (_g = state.prevState) === null || _g === void 0 ? void 0 : _g.prevState) === null || _h === void 0 ? void 0 : _h.prevState) === null || _j === void 0 ? void 0 : _j.prevState) === null || _k === void 0 ? void 0 : _k.kind) === kind) {
+ return state.prevState.prevState.prevState.prevState;
+ }
+};
+function getVariableCompletions(queryText, schema, token) {
+ let variableName = null;
+ let variableType;
+ const definitions = Object.create({});
+ runOnlineParser(queryText, (_, state) => {
+ if ((state === null || state === void 0 ? void 0 : state.kind) === _parser.RuleKinds.VARIABLE && state.name) {
+ variableName = state.name;
+ }
+ if ((state === null || state === void 0 ? void 0 : state.kind) === _parser.RuleKinds.NAMED_TYPE && variableName) {
+ const parentDefinition = getParentDefinition(state, _parser.RuleKinds.TYPE);
+ if (parentDefinition === null || parentDefinition === void 0 ? void 0 : parentDefinition.type) {
+ variableType = schema.getType(parentDefinition === null || parentDefinition === void 0 ? void 0 : parentDefinition.type);
+ }
+ }
+ if (variableName && variableType && !definitions[variableName]) {
+ definitions[variableName] = {
+ detail: variableType.toString(),
+ insertText: token.string === '$' ? variableName : '$' + variableName,
+ label: variableName,
+ type: variableType,
+ kind: _types.CompletionItemKind.Variable
+ };
+ variableName = null;
+ variableType = null;
+ }
+ });
+ return (0, _autocompleteUtils.objectValues)(definitions);
+}
+function getFragmentDefinitions(queryText) {
+ const fragmentDefs = [];
+ runOnlineParser(queryText, (_, state) => {
+ if (state.kind === _parser.RuleKinds.FRAGMENT_DEFINITION && state.name && state.type) {
+ fragmentDefs.push({
+ kind: _parser.RuleKinds.FRAGMENT_DEFINITION,
+ name: {
+ kind: _graphql.Kind.NAME,
+ value: state.name
+ },
+ selectionSet: {
+ kind: _parser.RuleKinds.SELECTION_SET,
+ selections: []
+ },
+ typeCondition: {
+ kind: _parser.RuleKinds.NAMED_TYPE,
+ name: {
+ kind: _graphql.Kind.NAME,
+ value: state.type
+ }
+ }
+ });
+ }
+ });
+ return fragmentDefs;
+}
+function getSuggestionsForVariableDefinition(token, schema, _kind) {
+ const inputTypeMap = schema.getTypeMap();
+ const inputTypes = (0, _autocompleteUtils.objectValues)(inputTypeMap).filter(_graphql.isInputType);
+ return (0, _autocompleteUtils.hintList)(token, inputTypes.map(type => ({
+ label: type.name,
+ documentation: type.description,
+ kind: _types.CompletionItemKind.Variable
+ })));
+}
+function getSuggestionsForDirective(token, state, schema, _kind) {
+ var _a;
+ if ((_a = state.prevState) === null || _a === void 0 ? void 0 : _a.kind) {
+ const directives = schema.getDirectives().filter(directive => canUseDirective(state.prevState, directive));
+ return (0, _autocompleteUtils.hintList)(token, directives.map(directive => ({
+ label: directive.name,
+ documentation: directive.description || '',
+ kind: _types.CompletionItemKind.Function
+ })));
+ }
+ return [];
+}
+function getTokenAtPosition(queryText, cursor) {
+ let offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
+ let styleAtCursor = null;
+ let stateAtCursor = null;
+ let stringAtCursor = null;
+ const token = runOnlineParser(queryText, (stream, state, style, index) => {
+ if (index !== cursor.line || stream.getCurrentPosition() + offset < cursor.character + 1) {
+ return;
+ }
+ styleAtCursor = style;
+ stateAtCursor = Object.assign({}, state);
+ stringAtCursor = stream.current();
+ return 'BREAK';
+ });
+ return {
+ start: token.start,
+ end: token.end,
+ string: stringAtCursor || token.string,
+ state: stateAtCursor || token.state,
+ style: styleAtCursor || token.style
+ };
+}
+function runOnlineParser(queryText, callback) {
+ const lines = queryText.split('\n');
+ const parser = (0, _parser.onlineParser)();
+ let state = parser.startState();
+ let style = '';
+ let stream = new _parser.CharacterStream('');
+ for (let i = 0; i < lines.length; i++) {
+ stream = new _parser.CharacterStream(lines[i]);
+ while (!stream.eol()) {
+ style = parser.token(stream, state);
+ const code = callback(stream, state, style, i);
+ if (code === 'BREAK') {
+ break;
+ }
+ }
+ callback(stream, state, style, i);
+ if (!state.kind) {
+ state = parser.startState();
+ }
+ }
+ return {
+ start: stream.getStartOfToken(),
+ end: stream.getCurrentPosition(),
+ string: stream.current(),
+ state,
+ style
+ };
+}
+function canUseDirective(state, directive) {
+ if (!(state === null || state === void 0 ? void 0 : state.kind)) {
+ return false;
+ }
+ const {
+ kind,
+ prevState
+ } = state;
+ const {
+ locations
+ } = directive;
+ switch (kind) {
+ case _parser.RuleKinds.QUERY:
+ return locations.includes(_graphql.DirectiveLocation.QUERY);
+ case _parser.RuleKinds.MUTATION:
+ return locations.includes(_graphql.DirectiveLocation.MUTATION);
+ case _parser.RuleKinds.SUBSCRIPTION:
+ return locations.includes(_graphql.DirectiveLocation.SUBSCRIPTION);
+ case _parser.RuleKinds.FIELD:
+ case _parser.RuleKinds.ALIASED_FIELD:
+ return locations.includes(_graphql.DirectiveLocation.FIELD);
+ case _parser.RuleKinds.FRAGMENT_DEFINITION:
+ return locations.includes(_graphql.DirectiveLocation.FRAGMENT_DEFINITION);
+ case _parser.RuleKinds.FRAGMENT_SPREAD:
+ return locations.includes(_graphql.DirectiveLocation.FRAGMENT_SPREAD);
+ case _parser.RuleKinds.INLINE_FRAGMENT:
+ return locations.includes(_graphql.DirectiveLocation.INLINE_FRAGMENT);
+ case _parser.RuleKinds.SCHEMA_DEF:
+ return locations.includes(_graphql.DirectiveLocation.SCHEMA);
+ case _parser.RuleKinds.SCALAR_DEF:
+ return locations.includes(_graphql.DirectiveLocation.SCALAR);
+ case _parser.RuleKinds.OBJECT_TYPE_DEF:
+ return locations.includes(_graphql.DirectiveLocation.OBJECT);
+ case _parser.RuleKinds.FIELD_DEF:
+ return locations.includes(_graphql.DirectiveLocation.FIELD_DEFINITION);
+ case _parser.RuleKinds.INTERFACE_DEF:
+ return locations.includes(_graphql.DirectiveLocation.INTERFACE);
+ case _parser.RuleKinds.UNION_DEF:
+ return locations.includes(_graphql.DirectiveLocation.UNION);
+ case _parser.RuleKinds.ENUM_DEF:
+ return locations.includes(_graphql.DirectiveLocation.ENUM);
+ case _parser.RuleKinds.ENUM_VALUE:
+ return locations.includes(_graphql.DirectiveLocation.ENUM_VALUE);
+ case _parser.RuleKinds.INPUT_DEF:
+ return locations.includes(_graphql.DirectiveLocation.INPUT_OBJECT);
+ case _parser.RuleKinds.INPUT_VALUE_DEF:
+ const prevStateKind = prevState === null || prevState === void 0 ? void 0 : prevState.kind;
+ switch (prevStateKind) {
+ case _parser.RuleKinds.ARGUMENTS_DEF:
+ return locations.includes(_graphql.DirectiveLocation.ARGUMENT_DEFINITION);
+ case _parser.RuleKinds.INPUT_DEF:
+ return locations.includes(_graphql.DirectiveLocation.INPUT_FIELD_DEFINITION);
+ }
+ }
+ return false;
+}
+function getTypeInfo(schema, tokenState) {
+ let argDef;
+ let argDefs;
+ let directiveDef;
+ let enumValue;
+ let fieldDef;
+ let inputType;
+ let objectTypeDef;
+ let objectFieldDefs;
+ let parentType;
+ let type;
+ let interfaceDef;
+ (0, _autocompleteUtils.forEachState)(tokenState, state => {
+ var _a;
+ switch (state.kind) {
+ case _parser.RuleKinds.QUERY:
+ case 'ShortQuery':
+ type = schema.getQueryType();
+ break;
+ case _parser.RuleKinds.MUTATION:
+ type = schema.getMutationType();
+ break;
+ case _parser.RuleKinds.SUBSCRIPTION:
+ type = schema.getSubscriptionType();
+ break;
+ case _parser.RuleKinds.INLINE_FRAGMENT:
+ case _parser.RuleKinds.FRAGMENT_DEFINITION:
+ if (state.type) {
+ type = schema.getType(state.type);
+ }
+ break;
+ case _parser.RuleKinds.FIELD:
+ case _parser.RuleKinds.ALIASED_FIELD:
+ {
+ if (!type || !state.name) {
+ fieldDef = null;
+ } else {
+ fieldDef = parentType ? (0, _autocompleteUtils.getFieldDef)(schema, parentType, state.name) : null;
+ type = fieldDef ? fieldDef.type : null;
+ }
+ break;
+ }
+ case _parser.RuleKinds.SELECTION_SET:
+ parentType = (0, _graphql.getNamedType)(type);
+ break;
+ case _parser.RuleKinds.DIRECTIVE:
+ directiveDef = state.name ? schema.getDirective(state.name) : null;
+ break;
+ case _parser.RuleKinds.INTERFACE_DEF:
+ if (state.name) {
+ objectTypeDef = null;
+ interfaceDef = new _graphql.GraphQLInterfaceType({
+ name: state.name,
+ interfaces: [],
+ fields: {}
+ });
+ }
+ break;
+ case _parser.RuleKinds.OBJECT_TYPE_DEF:
+ if (state.name) {
+ interfaceDef = null;
+ objectTypeDef = new _graphql.GraphQLObjectType({
+ name: state.name,
+ interfaces: [],
+ fields: {}
+ });
+ }
+ break;
+ case _parser.RuleKinds.ARGUMENTS:
+ {
+ if (state.prevState) {
+ switch (state.prevState.kind) {
+ case _parser.RuleKinds.FIELD:
+ argDefs = fieldDef && fieldDef.args;
+ break;
+ case _parser.RuleKinds.DIRECTIVE:
+ argDefs = directiveDef && directiveDef.args;
+ break;
+ case _parser.RuleKinds.ALIASED_FIELD:
+ {
+ const name = (_a = state.prevState) === null || _a === void 0 ? void 0 : _a.name;
+ if (!name) {
+ argDefs = null;
+ break;
+ }
+ const field = parentType ? (0, _autocompleteUtils.getFieldDef)(schema, parentType, name) : null;
+ if (!field) {
+ argDefs = null;
+ break;
+ }
+ argDefs = field.args;
+ break;
+ }
+ default:
+ argDefs = null;
+ break;
+ }
+ } else {
+ argDefs = null;
+ }
+ break;
+ }
+ case _parser.RuleKinds.ARGUMENT:
+ if (argDefs) {
+ for (let i = 0; i < argDefs.length; i++) {
+ if (argDefs[i].name === state.name) {
+ argDef = argDefs[i];
+ break;
+ }
+ }
+ }
+ inputType = argDef === null || argDef === void 0 ? void 0 : argDef.type;
+ break;
+ case _parser.RuleKinds.ENUM_VALUE:
+ const enumType = (0, _graphql.getNamedType)(inputType);
+ enumValue = enumType instanceof _graphql.GraphQLEnumType ? enumType.getValues().find(val => val.value === state.name) : null;
+ break;
+ case _parser.RuleKinds.LIST_VALUE:
+ const nullableType = (0, _graphql.getNullableType)(inputType);
+ inputType = nullableType instanceof _graphql.GraphQLList ? nullableType.ofType : null;
+ break;
+ case _parser.RuleKinds.OBJECT_VALUE:
+ const objectType = (0, _graphql.getNamedType)(inputType);
+ objectFieldDefs = objectType instanceof _graphql.GraphQLInputObjectType ? objectType.getFields() : null;
+ break;
+ case _parser.RuleKinds.OBJECT_FIELD:
+ const objectField = state.name && objectFieldDefs ? objectFieldDefs[state.name] : null;
+ inputType = objectField === null || objectField === void 0 ? void 0 : objectField.type;
+ break;
+ case _parser.RuleKinds.NAMED_TYPE:
+ if (state.name) {
+ type = schema.getType(state.name);
+ }
+ break;
+ }
+ });
+ return {
+ argDef,
+ argDefs,
+ directiveDef,
+ enumValue,
+ fieldDef,
+ inputType,
+ objectFieldDefs,
+ parentType,
+ type,
+ interfaceDef,
+ objectTypeDef
+ };
+}
+var GraphQLDocumentMode;
+exports.GraphQLDocumentMode = GraphQLDocumentMode;
+(function (GraphQLDocumentMode) {
+ GraphQLDocumentMode["TYPE_SYSTEM"] = "TYPE_SYSTEM";
+ GraphQLDocumentMode["EXECUTABLE"] = "EXECUTABLE";
+})(GraphQLDocumentMode || (exports.GraphQLDocumentMode = GraphQLDocumentMode = {}));
+function getDocumentMode(documentText, uri) {
+ if (uri === null || uri === void 0 ? void 0 : uri.endsWith('.graphqls')) {
+ return GraphQLDocumentMode.TYPE_SYSTEM;
+ }
+ return hasTypeSystemDefinitions(documentText) ? GraphQLDocumentMode.TYPE_SYSTEM : GraphQLDocumentMode.EXECUTABLE;
+}
+function unwrapType(state) {
+ if (state.prevState && state.kind && [_parser.RuleKinds.NAMED_TYPE, _parser.RuleKinds.LIST_TYPE, _parser.RuleKinds.TYPE, _parser.RuleKinds.NON_NULL_TYPE].includes(state.kind)) {
+ return unwrapType(state.prevState);
+ }
+ return state;
+}
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/interface/getDefinition.js":
+/*!*********************************************************************!*\
+ !*** ../../graphql-language-service/esm/interface/getDefinition.js ***!
+ \*********************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.LANGUAGE = void 0;
+exports.getDefinitionQueryResultForDefinitionNode = getDefinitionQueryResultForDefinitionNode;
+exports.getDefinitionQueryResultForField = getDefinitionQueryResultForField;
+exports.getDefinitionQueryResultForFragmentSpread = getDefinitionQueryResultForFragmentSpread;
+exports.getDefinitionQueryResultForNamedType = getDefinitionQueryResultForNamedType;
+var _utils = __webpack_require__(/*! ../utils */ "../../graphql-language-service/esm/utils/index.js");
+var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function (resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+const LANGUAGE = 'GraphQL';
+exports.LANGUAGE = LANGUAGE;
+function assert(value, message) {
+ if (!value) {
+ throw new Error(message);
+ }
+}
+function getRange(text, node) {
+ const location = node.loc;
+ assert(location, 'Expected ASTNode to have a location.');
+ return (0, _utils.locToRange)(text, location);
+}
+function getPosition(text, node) {
+ const location = node.loc;
+ assert(location, 'Expected ASTNode to have a location.');
+ return (0, _utils.offsetToPosition)(text, location.start);
+}
+function getDefinitionQueryResultForNamedType(text, node, dependencies) {
+ return __awaiter(this, void 0, void 0, function* () {
+ const name = node.name.value;
+ const defNodes = dependencies.filter(_ref => {
+ let {
+ definition
+ } = _ref;
+ return definition.name && definition.name.value === name;
+ });
+ if (defNodes.length === 0) {
+ throw new Error(`Definition not found for GraphQL type ${name}`);
+ }
+ const definitions = defNodes.map(_ref2 => {
+ let {
+ filePath,
+ content,
+ definition
+ } = _ref2;
+ return getDefinitionForNodeDefinition(filePath || '', content, definition);
+ });
+ return {
+ definitions,
+ queryRange: definitions.map(_ => getRange(text, node))
+ };
+ });
+}
+function getDefinitionQueryResultForField(fieldName, typeName, dependencies) {
+ var _a;
+ return __awaiter(this, void 0, void 0, function* () {
+ const defNodes = dependencies.filter(_ref3 => {
+ let {
+ definition
+ } = _ref3;
+ return definition.name && definition.name.value === typeName;
+ });
+ if (defNodes.length === 0) {
+ throw new Error(`Definition not found for GraphQL type ${typeName}`);
+ }
+ const definitions = [];
+ for (const {
+ filePath,
+ content,
+ definition
+ } of defNodes) {
+ const fieldDefinition = (_a = definition.fields) === null || _a === void 0 ? void 0 : _a.find(item => item.name.value === fieldName);
+ if (fieldDefinition == null) {
+ continue;
+ }
+ definitions.push(getDefinitionForFieldDefinition(filePath || '', content, fieldDefinition));
+ }
+ return {
+ definitions,
+ queryRange: []
+ };
+ });
+}
+function getDefinitionQueryResultForFragmentSpread(text, fragment, dependencies) {
+ return __awaiter(this, void 0, void 0, function* () {
+ const name = fragment.name.value;
+ const defNodes = dependencies.filter(_ref4 => {
+ let {
+ definition
+ } = _ref4;
+ return definition.name.value === name;
+ });
+ if (defNodes.length === 0) {
+ throw new Error(`Definition not found for GraphQL fragment ${name}`);
+ }
+ const definitions = defNodes.map(_ref5 => {
+ let {
+ filePath,
+ content,
+ definition
+ } = _ref5;
+ return getDefinitionForFragmentDefinition(filePath || '', content, definition);
+ });
+ return {
+ definitions,
+ queryRange: definitions.map(_ => getRange(text, fragment))
+ };
+ });
+}
+function getDefinitionQueryResultForDefinitionNode(path, text, definition) {
+ return {
+ definitions: [getDefinitionForFragmentDefinition(path, text, definition)],
+ queryRange: definition.name ? [getRange(text, definition.name)] : []
+ };
+}
+function getDefinitionForFragmentDefinition(path, text, definition) {
+ const {
+ name
+ } = definition;
+ if (!name) {
+ throw new Error('Expected ASTNode to have a Name.');
+ }
+ return {
+ path,
+ position: getPosition(text, definition),
+ range: getRange(text, definition),
+ name: name.value || '',
+ language: LANGUAGE,
+ projectRoot: path
+ };
+}
+function getDefinitionForNodeDefinition(path, text, definition) {
+ const {
+ name
+ } = definition;
+ assert(name, 'Expected ASTNode to have a Name.');
+ return {
+ path,
+ position: getPosition(text, definition),
+ range: getRange(text, definition),
+ name: name.value || '',
+ language: LANGUAGE,
+ projectRoot: path
+ };
+}
+function getDefinitionForFieldDefinition(path, text, definition) {
+ const {
+ name
+ } = definition;
+ assert(name, 'Expected ASTNode to have a Name.');
+ return {
+ path,
+ position: getPosition(text, definition),
+ range: getRange(text, definition),
+ name: name.value || '',
+ language: LANGUAGE,
+ projectRoot: path
+ };
+}
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/interface/getDiagnostics.js":
+/*!**********************************************************************!*\
+ !*** ../../graphql-language-service/esm/interface/getDiagnostics.js ***!
+ \**********************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.SEVERITY = exports.DIAGNOSTIC_SEVERITY = void 0;
+exports.getDiagnostics = getDiagnostics;
+exports.getRange = getRange;
+exports.validateQuery = validateQuery;
+var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs");
+var _parser = __webpack_require__(/*! ../parser */ "../../graphql-language-service/esm/parser/index.js");
+var _utils = __webpack_require__(/*! ../utils */ "../../graphql-language-service/esm/utils/index.js");
+const SEVERITY = {
+ Error: 'Error',
+ Warning: 'Warning',
+ Information: 'Information',
+ Hint: 'Hint'
+};
+exports.SEVERITY = SEVERITY;
+const DIAGNOSTIC_SEVERITY = {
+ [SEVERITY.Error]: 1,
+ [SEVERITY.Warning]: 2,
+ [SEVERITY.Information]: 3,
+ [SEVERITY.Hint]: 4
+};
+exports.DIAGNOSTIC_SEVERITY = DIAGNOSTIC_SEVERITY;
+const invariant = (condition, message) => {
+ if (!condition) {
+ throw new Error(message);
+ }
+};
+function getDiagnostics(query) {
+ let schema = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
+ let customRules = arguments.length > 2 ? arguments[2] : undefined;
+ let isRelayCompatMode = arguments.length > 3 ? arguments[3] : undefined;
+ let externalFragments = arguments.length > 4 ? arguments[4] : undefined;
+ var _a, _b;
+ let ast = null;
+ let fragments = '';
+ if (externalFragments) {
+ fragments = typeof externalFragments === 'string' ? externalFragments : externalFragments.reduce((acc, node) => acc + (0, _graphql.print)(node) + '\n\n', '');
+ }
+ const enhancedQuery = fragments ? `${query}\n\n${fragments}` : query;
+ try {
+ ast = (0, _graphql.parse)(enhancedQuery);
+ } catch (error) {
+ if (error instanceof _graphql.GraphQLError) {
+ const range = getRange((_b = (_a = error.locations) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : {
+ line: 0,
+ column: 0
+ }, enhancedQuery);
+ return [{
+ severity: DIAGNOSTIC_SEVERITY.Error,
+ message: error.message,
+ source: 'GraphQL: Syntax',
+ range
+ }];
+ }
+ throw error;
+ }
+ return validateQuery(ast, schema, customRules, isRelayCompatMode);
+}
+function validateQuery(ast) {
+ let schema = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
+ let customRules = arguments.length > 2 ? arguments[2] : undefined;
+ let isRelayCompatMode = arguments.length > 3 ? arguments[3] : undefined;
+ if (!schema) {
+ return [];
+ }
+ const validationErrorAnnotations = (0, _utils.validateWithCustomRules)(schema, ast, customRules, isRelayCompatMode).flatMap(error => annotations(error, DIAGNOSTIC_SEVERITY.Error, 'Validation'));
+ const deprecationWarningAnnotations = (0, _graphql.validate)(schema, ast, [_graphql.NoDeprecatedCustomRule]).flatMap(error => annotations(error, DIAGNOSTIC_SEVERITY.Warning, 'Deprecation'));
+ return validationErrorAnnotations.concat(deprecationWarningAnnotations);
+}
+function annotations(error, severity, type) {
+ if (!error.nodes) {
+ return [];
+ }
+ const highlightedNodes = [];
+ for (const [i, node] of error.nodes.entries()) {
+ const highlightNode = node.kind !== 'Variable' && 'name' in node && node.name !== undefined ? node.name : 'variable' in node && node.variable !== undefined ? node.variable : node;
+ if (highlightNode) {
+ invariant(error.locations, 'GraphQL validation error requires locations.');
+ const loc = error.locations[i];
+ const highlightLoc = getLocation(highlightNode);
+ const end = loc.column + (highlightLoc.end - highlightLoc.start);
+ highlightedNodes.push({
+ source: `GraphQL: ${type}`,
+ message: error.message,
+ severity,
+ range: new _utils.Range(new _utils.Position(loc.line - 1, loc.column - 1), new _utils.Position(loc.line - 1, end))
+ });
+ }
+ }
+ return highlightedNodes;
+}
+function getRange(location, queryText) {
+ const parser = (0, _parser.onlineParser)();
+ const state = parser.startState();
+ const lines = queryText.split('\n');
+ invariant(lines.length >= location.line, 'Query text must have more lines than where the error happened');
+ let stream = null;
+ for (let i = 0; i < location.line; i++) {
+ stream = new _parser.CharacterStream(lines[i]);
+ while (!stream.eol()) {
+ const style = parser.token(stream, state);
+ if (style === 'invalidchar') {
+ break;
+ }
+ }
+ }
+ invariant(stream, 'Expected Parser stream to be available.');
+ const line = location.line - 1;
+ const start = stream.getStartOfToken();
+ const end = stream.getCurrentPosition();
+ return new _utils.Range(new _utils.Position(line, start), new _utils.Position(line, end));
+}
+function getLocation(node) {
+ const typeCastedNode = node;
+ const location = typeCastedNode.loc;
+ invariant(location, 'Expected ASTNode to have a location.');
+ return location;
+}
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/interface/getHoverInformation.js":
+/*!***************************************************************************!*\
+ !*** ../../graphql-language-service/esm/interface/getHoverInformation.js ***!
+ \***************************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.getHoverInformation = getHoverInformation;
+var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs");
+var _getAutocompleteSuggestions = __webpack_require__(/*! ./getAutocompleteSuggestions */ "../../graphql-language-service/esm/interface/getAutocompleteSuggestions.js");
+function getHoverInformation(schema, queryText, cursor, contextToken, config) {
+ const token = contextToken || (0, _getAutocompleteSuggestions.getTokenAtPosition)(queryText, cursor);
+ if (!schema || !token || !token.state) {
+ return '';
+ }
+ const {
+ kind,
+ step
+ } = token.state;
+ const typeInfo = (0, _getAutocompleteSuggestions.getTypeInfo)(schema, token.state);
+ const options = Object.assign(Object.assign({}, config), {
+ schema
+ });
+ if (kind === 'Field' && step === 0 && typeInfo.fieldDef || kind === 'AliasedField' && step === 2 && typeInfo.fieldDef) {
+ const into = [];
+ renderMdCodeStart(into, options);
+ renderField(into, typeInfo, options);
+ renderMdCodeEnd(into, options);
+ renderDescription(into, options, typeInfo.fieldDef);
+ return into.join('').trim();
+ }
+ if (kind === 'Directive' && step === 1 && typeInfo.directiveDef) {
+ const into = [];
+ renderMdCodeStart(into, options);
+ renderDirective(into, typeInfo, options);
+ renderMdCodeEnd(into, options);
+ renderDescription(into, options, typeInfo.directiveDef);
+ return into.join('').trim();
+ }
+ if (kind === 'Argument' && step === 0 && typeInfo.argDef) {
+ const into = [];
+ renderMdCodeStart(into, options);
+ renderArg(into, typeInfo, options);
+ renderMdCodeEnd(into, options);
+ renderDescription(into, options, typeInfo.argDef);
+ return into.join('').trim();
+ }
+ if (kind === 'EnumValue' && typeInfo.enumValue && 'description' in typeInfo.enumValue) {
+ const into = [];
+ renderMdCodeStart(into, options);
+ renderEnumValue(into, typeInfo, options);
+ renderMdCodeEnd(into, options);
+ renderDescription(into, options, typeInfo.enumValue);
+ return into.join('').trim();
+ }
+ if (kind === 'NamedType' && typeInfo.type && 'description' in typeInfo.type) {
+ const into = [];
+ renderMdCodeStart(into, options);
+ renderType(into, typeInfo, options, typeInfo.type);
+ renderMdCodeEnd(into, options);
+ renderDescription(into, options, typeInfo.type);
+ return into.join('').trim();
+ }
+ return '';
+}
+function renderMdCodeStart(into, options) {
+ if (options.useMarkdown) {
+ text(into, '```graphql\n');
+ }
+}
+function renderMdCodeEnd(into, options) {
+ if (options.useMarkdown) {
+ text(into, '\n```');
+ }
+}
+function renderField(into, typeInfo, options) {
+ renderQualifiedField(into, typeInfo, options);
+ renderTypeAnnotation(into, typeInfo, options, typeInfo.type);
+}
+function renderQualifiedField(into, typeInfo, options) {
+ if (!typeInfo.fieldDef) {
+ return;
+ }
+ const fieldName = typeInfo.fieldDef.name;
+ if (fieldName.slice(0, 2) !== '__') {
+ renderType(into, typeInfo, options, typeInfo.parentType);
+ text(into, '.');
+ }
+ text(into, fieldName);
+}
+function renderDirective(into, typeInfo, _options) {
+ if (!typeInfo.directiveDef) {
+ return;
+ }
+ const name = '@' + typeInfo.directiveDef.name;
+ text(into, name);
+}
+function renderArg(into, typeInfo, options) {
+ if (typeInfo.directiveDef) {
+ renderDirective(into, typeInfo, options);
+ } else if (typeInfo.fieldDef) {
+ renderQualifiedField(into, typeInfo, options);
+ }
+ if (!typeInfo.argDef) {
+ return;
+ }
+ const {
+ name
+ } = typeInfo.argDef;
+ text(into, '(');
+ text(into, name);
+ renderTypeAnnotation(into, typeInfo, options, typeInfo.inputType);
+ text(into, ')');
+}
+function renderTypeAnnotation(into, typeInfo, options, t) {
+ text(into, ': ');
+ renderType(into, typeInfo, options, t);
+}
+function renderEnumValue(into, typeInfo, options) {
+ if (!typeInfo.enumValue) {
+ return;
+ }
+ const {
+ name
+ } = typeInfo.enumValue;
+ renderType(into, typeInfo, options, typeInfo.inputType);
+ text(into, '.');
+ text(into, name);
+}
+function renderType(into, typeInfo, options, t) {
+ if (!t) {
+ return;
+ }
+ if (t instanceof _graphql.GraphQLNonNull) {
+ renderType(into, typeInfo, options, t.ofType);
+ text(into, '!');
+ } else if (t instanceof _graphql.GraphQLList) {
+ text(into, '[');
+ renderType(into, typeInfo, options, t.ofType);
+ text(into, ']');
+ } else {
+ text(into, t.name);
+ }
+}
+function renderDescription(into, options, def) {
+ if (!def) {
+ return;
+ }
+ const description = typeof def.description === 'string' ? def.description : null;
+ if (description) {
+ text(into, '\n\n');
+ text(into, description);
+ }
+ renderDeprecation(into, options, def);
+}
+function renderDeprecation(into, _options, def) {
+ if (!def) {
+ return;
+ }
+ const reason = def.deprecationReason || null;
+ if (!reason) {
+ return;
+ }
+ text(into, '\n\n');
+ text(into, 'Deprecated: ');
+ text(into, reason);
+}
+function text(into, content) {
+ into.push(content);
+}
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/interface/getOutline.js":
+/*!******************************************************************!*\
+ !*** ../../graphql-language-service/esm/interface/getOutline.js ***!
+ \******************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.getOutline = getOutline;
+var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs");
+var _utils = __webpack_require__(/*! ../utils */ "../../graphql-language-service/esm/utils/index.js");
+const {
+ INLINE_FRAGMENT
+} = _graphql.Kind;
+const OUTLINEABLE_KINDS = {
+ Field: true,
+ OperationDefinition: true,
+ Document: true,
+ SelectionSet: true,
+ Name: true,
+ FragmentDefinition: true,
+ FragmentSpread: true,
+ InlineFragment: true,
+ ObjectTypeDefinition: true,
+ InputObjectTypeDefinition: true,
+ InterfaceTypeDefinition: true,
+ EnumTypeDefinition: true,
+ EnumValueDefinition: true,
+ InputValueDefinition: true,
+ FieldDefinition: true
+};
+function getOutline(documentText) {
+ let ast;
+ try {
+ ast = (0, _graphql.parse)(documentText);
+ } catch (_a) {
+ return null;
+ }
+ const visitorFns = outlineTreeConverter(documentText);
+ const outlineTrees = (0, _graphql.visit)(ast, {
+ leave(node) {
+ if (visitorFns !== undefined && node.kind in visitorFns) {
+ return visitorFns[node.kind](node);
+ }
+ return null;
+ }
+ });
+ return {
+ outlineTrees
+ };
+}
+function outlineTreeConverter(docText) {
+ const meta = node => {
+ return {
+ representativeName: node.name,
+ startPosition: (0, _utils.offsetToPosition)(docText, node.loc.start),
+ endPosition: (0, _utils.offsetToPosition)(docText, node.loc.end),
+ kind: node.kind,
+ children: node.selectionSet || node.fields || node.values || node.arguments || []
+ };
+ };
+ return {
+ Field(node) {
+ const tokenizedText = node.alias ? [buildToken('plain', node.alias), buildToken('plain', ': ')] : [];
+ tokenizedText.push(buildToken('plain', node.name));
+ return Object.assign({
+ tokenizedText
+ }, meta(node));
+ },
+ OperationDefinition: node => Object.assign({
+ tokenizedText: [buildToken('keyword', node.operation), buildToken('whitespace', ' '), buildToken('class-name', node.name)]
+ }, meta(node)),
+ Document: node => node.definitions,
+ SelectionSet: node => concatMap(node.selections, child => {
+ return child.kind === INLINE_FRAGMENT ? child.selectionSet : child;
+ }),
+ Name: node => node.value,
+ FragmentDefinition: node => Object.assign({
+ tokenizedText: [buildToken('keyword', 'fragment'), buildToken('whitespace', ' '), buildToken('class-name', node.name)]
+ }, meta(node)),
+ InterfaceTypeDefinition: node => Object.assign({
+ tokenizedText: [buildToken('keyword', 'interface'), buildToken('whitespace', ' '), buildToken('class-name', node.name)]
+ }, meta(node)),
+ EnumTypeDefinition: node => Object.assign({
+ tokenizedText: [buildToken('keyword', 'enum'), buildToken('whitespace', ' '), buildToken('class-name', node.name)]
+ }, meta(node)),
+ EnumValueDefinition: node => Object.assign({
+ tokenizedText: [buildToken('plain', node.name)]
+ }, meta(node)),
+ ObjectTypeDefinition: node => Object.assign({
+ tokenizedText: [buildToken('keyword', 'type'), buildToken('whitespace', ' '), buildToken('class-name', node.name)]
+ }, meta(node)),
+ InputObjectTypeDefinition: node => Object.assign({
+ tokenizedText: [buildToken('keyword', 'input'), buildToken('whitespace', ' '), buildToken('class-name', node.name)]
+ }, meta(node)),
+ FragmentSpread: node => Object.assign({
+ tokenizedText: [buildToken('plain', '...'), buildToken('class-name', node.name)]
+ }, meta(node)),
+ InputValueDefinition(node) {
+ return Object.assign({
+ tokenizedText: [buildToken('plain', node.name)]
+ }, meta(node));
+ },
+ FieldDefinition(node) {
+ return Object.assign({
+ tokenizedText: [buildToken('plain', node.name)]
+ }, meta(node));
+ },
+ InlineFragment: node => node.selectionSet
+ };
+}
+function buildToken(kind, value) {
+ return {
+ kind,
+ value
+ };
+}
+function concatMap(arr, fn) {
+ const res = [];
+ for (let i = 0; i < arr.length; i++) {
+ const x = fn(arr[i], i);
+ if (Array.isArray(x)) {
+ res.push(...x);
+ } else {
+ res.push(x);
+ }
+ }
+ return res;
+}
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/interface/index.js":
+/*!*************************************************************!*\
+ !*** ../../graphql-language-service/esm/interface/index.js ***!
+ \*************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+var _exportNames = {
+ getOutline: true,
+ getHoverInformation: true
+};
+Object.defineProperty(exports, "getHoverInformation", ({
+ enumerable: true,
+ get: function () {
+ return _getHoverInformation.getHoverInformation;
+ }
+}));
+Object.defineProperty(exports, "getOutline", ({
+ enumerable: true,
+ get: function () {
+ return _getOutline.getOutline;
+ }
+}));
+var _autocompleteUtils = __webpack_require__(/*! ./autocompleteUtils */ "../../graphql-language-service/esm/interface/autocompleteUtils.js");
+Object.keys(_autocompleteUtils).forEach(function (key) {
+ if (key === "default" || key === "__esModule") return;
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
+ if (key in exports && exports[key] === _autocompleteUtils[key]) return;
+ Object.defineProperty(exports, key, {
+ enumerable: true,
+ get: function () {
+ return _autocompleteUtils[key];
+ }
+ });
+});
+var _getAutocompleteSuggestions = __webpack_require__(/*! ./getAutocompleteSuggestions */ "../../graphql-language-service/esm/interface/getAutocompleteSuggestions.js");
+Object.keys(_getAutocompleteSuggestions).forEach(function (key) {
+ if (key === "default" || key === "__esModule") return;
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
+ if (key in exports && exports[key] === _getAutocompleteSuggestions[key]) return;
+ Object.defineProperty(exports, key, {
+ enumerable: true,
+ get: function () {
+ return _getAutocompleteSuggestions[key];
+ }
+ });
+});
+var _getDefinition = __webpack_require__(/*! ./getDefinition */ "../../graphql-language-service/esm/interface/getDefinition.js");
+Object.keys(_getDefinition).forEach(function (key) {
+ if (key === "default" || key === "__esModule") return;
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
+ if (key in exports && exports[key] === _getDefinition[key]) return;
+ Object.defineProperty(exports, key, {
+ enumerable: true,
+ get: function () {
+ return _getDefinition[key];
+ }
+ });
+});
+var _getDiagnostics = __webpack_require__(/*! ./getDiagnostics */ "../../graphql-language-service/esm/interface/getDiagnostics.js");
+Object.keys(_getDiagnostics).forEach(function (key) {
+ if (key === "default" || key === "__esModule") return;
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
+ if (key in exports && exports[key] === _getDiagnostics[key]) return;
+ Object.defineProperty(exports, key, {
+ enumerable: true,
+ get: function () {
+ return _getDiagnostics[key];
+ }
+ });
+});
+var _getOutline = __webpack_require__(/*! ./getOutline */ "../../graphql-language-service/esm/interface/getOutline.js");
+var _getHoverInformation = __webpack_require__(/*! ./getHoverInformation */ "../../graphql-language-service/esm/interface/getHoverInformation.js");
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/parser/CharacterStream.js":
+/*!********************************************************************!*\
+ !*** ../../graphql-language-service/esm/parser/CharacterStream.js ***!
+ \********************************************************************/
+/***/ (function(__unused_webpack_module, exports) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
+class CharacterStream {
+ constructor(sourceText) {
+ var _this = this;
+ this._start = 0;
+ this._pos = 0;
+ this.getStartOfToken = () => this._start;
+ this.getCurrentPosition = () => this._pos;
+ this.eol = () => this._sourceText.length === this._pos;
+ this.sol = () => this._pos === 0;
+ this.peek = () => {
+ return this._sourceText.charAt(this._pos) || null;
+ };
+ this.next = () => {
+ const char = this._sourceText.charAt(this._pos);
+ this._pos++;
+ return char;
+ };
+ this.eat = pattern => {
+ const isMatched = this._testNextCharacter(pattern);
+ if (isMatched) {
+ this._start = this._pos;
+ this._pos++;
+ return this._sourceText.charAt(this._pos - 1);
+ }
+ return undefined;
+ };
+ this.eatWhile = match => {
+ let isMatched = this._testNextCharacter(match);
+ let didEat = false;
+ if (isMatched) {
+ didEat = isMatched;
+ this._start = this._pos;
+ }
+ while (isMatched) {
+ this._pos++;
+ isMatched = this._testNextCharacter(match);
+ didEat = true;
+ }
+ return didEat;
+ };
+ this.eatSpace = () => this.eatWhile(/[\s\u00a0]/);
+ this.skipToEnd = () => {
+ this._pos = this._sourceText.length;
+ };
+ this.skipTo = position => {
+ this._pos = position;
+ };
+ this.match = function (pattern) {
+ let consume = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
+ let caseFold = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+ let token = null;
+ let match = null;
+ if (typeof pattern === 'string') {
+ const regex = new RegExp(pattern, caseFold ? 'i' : 'g');
+ match = regex.test(_this._sourceText.slice(_this._pos, _this._pos + pattern.length));
+ token = pattern;
+ } else if (pattern instanceof RegExp) {
+ match = _this._sourceText.slice(_this._pos).match(pattern);
+ token = match === null || match === void 0 ? void 0 : match[0];
+ }
+ if (match != null && (typeof pattern === 'string' || match instanceof Array && _this._sourceText.startsWith(match[0], _this._pos))) {
+ if (consume) {
+ _this._start = _this._pos;
+ if (token && token.length) {
+ _this._pos += token.length;
+ }
+ }
+ return match;
+ }
+ return false;
+ };
+ this.backUp = num => {
+ this._pos -= num;
+ };
+ this.column = () => this._pos;
+ this.indentation = () => {
+ const match = this._sourceText.match(/\s*/);
+ let indent = 0;
+ if (match && match.length !== 0) {
+ const whiteSpaces = match[0];
+ let pos = 0;
+ while (whiteSpaces.length > pos) {
+ if (whiteSpaces.charCodeAt(pos) === 9) {
+ indent += 2;
+ } else {
+ indent++;
+ }
+ pos++;
+ }
+ }
+ return indent;
+ };
+ this.current = () => this._sourceText.slice(this._start, this._pos);
+ this._sourceText = sourceText;
+ }
+ _testNextCharacter(pattern) {
+ const character = this._sourceText.charAt(this._pos);
+ let isMatched = false;
+ if (typeof pattern === 'string') {
+ isMatched = character === pattern;
+ } else {
+ isMatched = pattern instanceof RegExp ? pattern.test(character) : pattern(character);
+ }
+ return isMatched;
+ }
+}
+exports["default"] = CharacterStream;
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/parser/RuleHelpers.js":
+/*!****************************************************************!*\
+ !*** ../../graphql-language-service/esm/parser/RuleHelpers.js ***!
+ \****************************************************************/
+/***/ (function(__unused_webpack_module, exports) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.butNot = butNot;
+exports.list = list;
+exports.opt = opt;
+exports.p = p;
+exports.t = t;
+function opt(ofRule) {
+ return {
+ ofRule
+ };
+}
+function list(ofRule, separator) {
+ return {
+ ofRule,
+ isList: true,
+ separator
+ };
+}
+function butNot(rule, exclusions) {
+ const ruleMatch = rule.match;
+ rule.match = token => {
+ let check = false;
+ if (ruleMatch) {
+ check = ruleMatch(token);
+ }
+ return check && exclusions.every(exclusion => exclusion.match && !exclusion.match(token));
+ };
+ return rule;
+}
+function t(kind, style) {
+ return {
+ style,
+ match: token => token.kind === kind
+ };
+}
+function p(value, style) {
+ return {
+ style: style || 'punctuation',
+ match: token => token.kind === 'Punctuation' && token.value === value
+ };
+}
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/parser/Rules.js":
+/*!**********************************************************!*\
+ !*** ../../graphql-language-service/esm/parser/Rules.js ***!
+ \**********************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.isIgnored = exports.ParseRules = exports.LexRules = void 0;
+var _RuleHelpers = __webpack_require__(/*! ./RuleHelpers */ "../../graphql-language-service/esm/parser/RuleHelpers.js");
+var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs");
+const isIgnored = ch => ch === ' ' || ch === '\t' || ch === ',' || ch === '\n' || ch === '\r' || ch === '\uFEFF' || ch === '\u00A0';
+exports.isIgnored = isIgnored;
+const LexRules = {
+ Name: /^[_A-Za-z][_0-9A-Za-z]*/,
+ Punctuation: /^(?:!|\$|\(|\)|\.\.\.|:|=|&|@|\[|]|\{|\||\})/,
+ Number: /^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,
+ String: /^(?:"""(?:\\"""|[^"]|"[^"]|""[^"])*(?:""")?|"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?)/,
+ Comment: /^#.*/
+};
+exports.LexRules = LexRules;
+const ParseRules = {
+ Document: [(0, _RuleHelpers.list)('Definition')],
+ Definition(token) {
+ switch (token.value) {
+ case '{':
+ return 'ShortQuery';
+ case 'query':
+ return 'Query';
+ case 'mutation':
+ return 'Mutation';
+ case 'subscription':
+ return 'Subscription';
+ case 'fragment':
+ return _graphql.Kind.FRAGMENT_DEFINITION;
+ case 'schema':
+ return 'SchemaDef';
+ case 'scalar':
+ return 'ScalarDef';
+ case 'type':
+ return 'ObjectTypeDef';
+ case 'interface':
+ return 'InterfaceDef';
+ case 'union':
+ return 'UnionDef';
+ case 'enum':
+ return 'EnumDef';
+ case 'input':
+ return 'InputDef';
+ case 'extend':
+ return 'ExtendDef';
+ case 'directive':
+ return 'DirectiveDef';
+ }
+ },
+ ShortQuery: ['SelectionSet'],
+ Query: [word('query'), (0, _RuleHelpers.opt)(name('def')), (0, _RuleHelpers.opt)('VariableDefinitions'), (0, _RuleHelpers.list)('Directive'), 'SelectionSet'],
+ Mutation: [word('mutation'), (0, _RuleHelpers.opt)(name('def')), (0, _RuleHelpers.opt)('VariableDefinitions'), (0, _RuleHelpers.list)('Directive'), 'SelectionSet'],
+ Subscription: [word('subscription'), (0, _RuleHelpers.opt)(name('def')), (0, _RuleHelpers.opt)('VariableDefinitions'), (0, _RuleHelpers.list)('Directive'), 'SelectionSet'],
+ VariableDefinitions: [(0, _RuleHelpers.p)('('), (0, _RuleHelpers.list)('VariableDefinition'), (0, _RuleHelpers.p)(')')],
+ VariableDefinition: ['Variable', (0, _RuleHelpers.p)(':'), 'Type', (0, _RuleHelpers.opt)('DefaultValue')],
+ Variable: [(0, _RuleHelpers.p)('$', 'variable'), name('variable')],
+ DefaultValue: [(0, _RuleHelpers.p)('='), 'Value'],
+ SelectionSet: [(0, _RuleHelpers.p)('{'), (0, _RuleHelpers.list)('Selection'), (0, _RuleHelpers.p)('}')],
+ Selection(token, stream) {
+ return token.value === '...' ? stream.match(/[\s\u00a0,]*(on\b|@|{)/, false) ? 'InlineFragment' : 'FragmentSpread' : stream.match(/[\s\u00a0,]*:/, false) ? 'AliasedField' : 'Field';
+ },
+ AliasedField: [name('property'), (0, _RuleHelpers.p)(':'), name('qualifier'), (0, _RuleHelpers.opt)('Arguments'), (0, _RuleHelpers.list)('Directive'), (0, _RuleHelpers.opt)('SelectionSet')],
+ Field: [name('property'), (0, _RuleHelpers.opt)('Arguments'), (0, _RuleHelpers.list)('Directive'), (0, _RuleHelpers.opt)('SelectionSet')],
+ Arguments: [(0, _RuleHelpers.p)('('), (0, _RuleHelpers.list)('Argument'), (0, _RuleHelpers.p)(')')],
+ Argument: [name('attribute'), (0, _RuleHelpers.p)(':'), 'Value'],
+ FragmentSpread: [(0, _RuleHelpers.p)('...'), name('def'), (0, _RuleHelpers.list)('Directive')],
+ InlineFragment: [(0, _RuleHelpers.p)('...'), (0, _RuleHelpers.opt)('TypeCondition'), (0, _RuleHelpers.list)('Directive'), 'SelectionSet'],
+ FragmentDefinition: [word('fragment'), (0, _RuleHelpers.opt)((0, _RuleHelpers.butNot)(name('def'), [word('on')])), 'TypeCondition', (0, _RuleHelpers.list)('Directive'), 'SelectionSet'],
+ TypeCondition: [word('on'), 'NamedType'],
+ Value(token) {
+ switch (token.kind) {
+ case 'Number':
+ return 'NumberValue';
+ case 'String':
+ return 'StringValue';
+ case 'Punctuation':
+ switch (token.value) {
+ case '[':
+ return 'ListValue';
+ case '{':
+ return 'ObjectValue';
+ case '$':
+ return 'Variable';
+ case '&':
+ return 'NamedType';
+ }
+ return null;
+ case 'Name':
+ switch (token.value) {
+ case 'true':
+ case 'false':
+ return 'BooleanValue';
+ }
+ if (token.value === 'null') {
+ return 'NullValue';
+ }
+ return 'EnumValue';
+ }
+ },
+ NumberValue: [(0, _RuleHelpers.t)('Number', 'number')],
+ StringValue: [{
+ style: 'string',
+ match: token => token.kind === 'String',
+ update(state, token) {
+ if (token.value.startsWith('"""')) {
+ state.inBlockstring = !token.value.slice(3).endsWith('"""');
+ }
+ }
+ }],
+ BooleanValue: [(0, _RuleHelpers.t)('Name', 'builtin')],
+ NullValue: [(0, _RuleHelpers.t)('Name', 'keyword')],
+ EnumValue: [name('string-2')],
+ ListValue: [(0, _RuleHelpers.p)('['), (0, _RuleHelpers.list)('Value'), (0, _RuleHelpers.p)(']')],
+ ObjectValue: [(0, _RuleHelpers.p)('{'), (0, _RuleHelpers.list)('ObjectField'), (0, _RuleHelpers.p)('}')],
+ ObjectField: [name('attribute'), (0, _RuleHelpers.p)(':'), 'Value'],
+ Type(token) {
+ return token.value === '[' ? 'ListType' : 'NonNullType';
+ },
+ ListType: [(0, _RuleHelpers.p)('['), 'Type', (0, _RuleHelpers.p)(']'), (0, _RuleHelpers.opt)((0, _RuleHelpers.p)('!'))],
+ NonNullType: ['NamedType', (0, _RuleHelpers.opt)((0, _RuleHelpers.p)('!'))],
+ NamedType: [type('atom')],
+ Directive: [(0, _RuleHelpers.p)('@', 'meta'), name('meta'), (0, _RuleHelpers.opt)('Arguments')],
+ DirectiveDef: [word('directive'), (0, _RuleHelpers.p)('@', 'meta'), name('meta'), (0, _RuleHelpers.opt)('ArgumentsDef'), word('on'), (0, _RuleHelpers.list)('DirectiveLocation', (0, _RuleHelpers.p)('|'))],
+ InterfaceDef: [word('interface'), name('atom'), (0, _RuleHelpers.opt)('Implements'), (0, _RuleHelpers.list)('Directive'), (0, _RuleHelpers.p)('{'), (0, _RuleHelpers.list)('FieldDef'), (0, _RuleHelpers.p)('}')],
+ Implements: [word('implements'), (0, _RuleHelpers.list)('NamedType', (0, _RuleHelpers.p)('&'))],
+ DirectiveLocation: [name('string-2')],
+ SchemaDef: [word('schema'), (0, _RuleHelpers.list)('Directive'), (0, _RuleHelpers.p)('{'), (0, _RuleHelpers.list)('OperationTypeDef'), (0, _RuleHelpers.p)('}')],
+ OperationTypeDef: [name('keyword'), (0, _RuleHelpers.p)(':'), name('atom')],
+ ScalarDef: [word('scalar'), name('atom'), (0, _RuleHelpers.list)('Directive')],
+ ObjectTypeDef: [word('type'), name('atom'), (0, _RuleHelpers.opt)('Implements'), (0, _RuleHelpers.list)('Directive'), (0, _RuleHelpers.p)('{'), (0, _RuleHelpers.list)('FieldDef'), (0, _RuleHelpers.p)('}')],
+ FieldDef: [name('property'), (0, _RuleHelpers.opt)('ArgumentsDef'), (0, _RuleHelpers.p)(':'), 'Type', (0, _RuleHelpers.list)('Directive')],
+ ArgumentsDef: [(0, _RuleHelpers.p)('('), (0, _RuleHelpers.list)('InputValueDef'), (0, _RuleHelpers.p)(')')],
+ InputValueDef: [name('attribute'), (0, _RuleHelpers.p)(':'), 'Type', (0, _RuleHelpers.opt)('DefaultValue'), (0, _RuleHelpers.list)('Directive')],
+ UnionDef: [word('union'), name('atom'), (0, _RuleHelpers.list)('Directive'), (0, _RuleHelpers.p)('='), (0, _RuleHelpers.list)('UnionMember', (0, _RuleHelpers.p)('|'))],
+ UnionMember: ['NamedType'],
+ EnumDef: [word('enum'), name('atom'), (0, _RuleHelpers.list)('Directive'), (0, _RuleHelpers.p)('{'), (0, _RuleHelpers.list)('EnumValueDef'), (0, _RuleHelpers.p)('}')],
+ EnumValueDef: [name('string-2'), (0, _RuleHelpers.list)('Directive')],
+ InputDef: [word('input'), name('atom'), (0, _RuleHelpers.list)('Directive'), (0, _RuleHelpers.p)('{'), (0, _RuleHelpers.list)('InputValueDef'), (0, _RuleHelpers.p)('}')],
+ ExtendDef: [word('extend'), 'ExtensionDefinition'],
+ ExtensionDefinition(token) {
+ switch (token.value) {
+ case 'schema':
+ return _graphql.Kind.SCHEMA_EXTENSION;
+ case 'scalar':
+ return _graphql.Kind.SCALAR_TYPE_EXTENSION;
+ case 'type':
+ return _graphql.Kind.OBJECT_TYPE_EXTENSION;
+ case 'interface':
+ return _graphql.Kind.INTERFACE_TYPE_EXTENSION;
+ case 'union':
+ return _graphql.Kind.UNION_TYPE_EXTENSION;
+ case 'enum':
+ return _graphql.Kind.ENUM_TYPE_EXTENSION;
+ case 'input':
+ return _graphql.Kind.INPUT_OBJECT_TYPE_EXTENSION;
+ }
+ },
+ [_graphql.Kind.SCHEMA_EXTENSION]: ['SchemaDef'],
+ [_graphql.Kind.SCALAR_TYPE_EXTENSION]: ['ScalarDef'],
+ [_graphql.Kind.OBJECT_TYPE_EXTENSION]: ['ObjectTypeDef'],
+ [_graphql.Kind.INTERFACE_TYPE_EXTENSION]: ['InterfaceDef'],
+ [_graphql.Kind.UNION_TYPE_EXTENSION]: ['UnionDef'],
+ [_graphql.Kind.ENUM_TYPE_EXTENSION]: ['EnumDef'],
+ [_graphql.Kind.INPUT_OBJECT_TYPE_EXTENSION]: ['InputDef']
+};
+exports.ParseRules = ParseRules;
+function word(value) {
+ return {
+ style: 'keyword',
+ match: token => token.kind === 'Name' && token.value === value
+ };
+}
+function name(style) {
+ return {
+ style,
+ match: token => token.kind === 'Name',
+ update(state, token) {
+ state.name = token.value;
+ }
+ };
+}
+function type(style) {
+ return {
+ style,
+ match: token => token.kind === 'Name',
+ update(state, token) {
+ var _a;
+ if ((_a = state.prevState) === null || _a === void 0 ? void 0 : _a.prevState) {
+ state.name = token.value;
+ state.prevState.prevState.type = token.value;
+ }
+ }
+ };
+}
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/parser/index.js":
+/*!**********************************************************!*\
+ !*** ../../graphql-language-service/esm/parser/index.js ***!
+ \**********************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+var _exportNames = {
+ CharacterStream: true,
+ LexRules: true,
+ ParseRules: true,
+ isIgnored: true,
+ butNot: true,
+ list: true,
+ opt: true,
+ p: true,
+ t: true,
+ onlineParser: true
+};
+Object.defineProperty(exports, "CharacterStream", ({
+ enumerable: true,
+ get: function () {
+ return _CharacterStream.default;
+ }
+}));
+Object.defineProperty(exports, "LexRules", ({
+ enumerable: true,
+ get: function () {
+ return _Rules.LexRules;
+ }
+}));
+Object.defineProperty(exports, "ParseRules", ({
+ enumerable: true,
+ get: function () {
+ return _Rules.ParseRules;
+ }
+}));
+Object.defineProperty(exports, "butNot", ({
+ enumerable: true,
+ get: function () {
+ return _RuleHelpers.butNot;
+ }
+}));
+Object.defineProperty(exports, "isIgnored", ({
+ enumerable: true,
+ get: function () {
+ return _Rules.isIgnored;
+ }
+}));
+Object.defineProperty(exports, "list", ({
+ enumerable: true,
+ get: function () {
+ return _RuleHelpers.list;
+ }
+}));
+Object.defineProperty(exports, "onlineParser", ({
+ enumerable: true,
+ get: function () {
+ return _onlineParser.default;
+ }
+}));
+Object.defineProperty(exports, "opt", ({
+ enumerable: true,
+ get: function () {
+ return _RuleHelpers.opt;
+ }
+}));
+Object.defineProperty(exports, "p", ({
+ enumerable: true,
+ get: function () {
+ return _RuleHelpers.p;
+ }
+}));
+Object.defineProperty(exports, "t", ({
+ enumerable: true,
+ get: function () {
+ return _RuleHelpers.t;
+ }
+}));
+var _CharacterStream = _interopRequireDefault(__webpack_require__(/*! ./CharacterStream */ "../../graphql-language-service/esm/parser/CharacterStream.js"));
+var _Rules = __webpack_require__(/*! ./Rules */ "../../graphql-language-service/esm/parser/Rules.js");
+var _RuleHelpers = __webpack_require__(/*! ./RuleHelpers */ "../../graphql-language-service/esm/parser/RuleHelpers.js");
+var _onlineParser = _interopRequireDefault(__webpack_require__(/*! ./onlineParser */ "../../graphql-language-service/esm/parser/onlineParser.js"));
+var _types = __webpack_require__(/*! ./types */ "../../graphql-language-service/esm/parser/types.js");
+Object.keys(_types).forEach(function (key) {
+ if (key === "default" || key === "__esModule") return;
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
+ if (key in exports && exports[key] === _types[key]) return;
+ Object.defineProperty(exports, key, {
+ enumerable: true,
+ get: function () {
+ return _types[key];
+ }
+ });
+});
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/parser/onlineParser.js":
+/*!*****************************************************************!*\
+ !*** ../../graphql-language-service/esm/parser/onlineParser.js ***!
+ \*****************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = onlineParser;
+var _Rules = __webpack_require__(/*! ./Rules */ "../../graphql-language-service/esm/parser/Rules.js");
+var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs");
+function onlineParser() {
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
+ eatWhitespace: stream => stream.eatWhile(_Rules.isIgnored),
+ lexRules: _Rules.LexRules,
+ parseRules: _Rules.ParseRules,
+ editorConfig: {}
+ };
+ return {
+ startState() {
+ const initialState = {
+ level: 0,
+ step: 0,
+ name: null,
+ kind: null,
+ type: null,
+ rule: null,
+ needsSeparator: false,
+ prevState: null
+ };
+ pushRule(options.parseRules, initialState, _graphql.Kind.DOCUMENT);
+ return initialState;
+ },
+ token(stream, state) {
+ return getToken(stream, state, options);
+ }
+ };
+}
+function getToken(stream, state, options) {
+ var _a;
+ if (state.inBlockstring) {
+ if (stream.match(/.*"""/)) {
+ state.inBlockstring = false;
+ return 'string';
+ }
+ stream.skipToEnd();
+ return 'string';
+ }
+ const {
+ lexRules,
+ parseRules,
+ eatWhitespace,
+ editorConfig
+ } = options;
+ if (state.rule && state.rule.length === 0) {
+ popRule(state);
+ } else if (state.needsAdvance) {
+ state.needsAdvance = false;
+ advanceRule(state, true);
+ }
+ if (stream.sol()) {
+ const tabSize = (editorConfig === null || editorConfig === void 0 ? void 0 : editorConfig.tabSize) || 2;
+ state.indentLevel = Math.floor(stream.indentation() / tabSize);
+ }
+ if (eatWhitespace(stream)) {
+ return 'ws';
+ }
+ const token = lex(lexRules, stream);
+ if (!token) {
+ const matchedSomething = stream.match(/\S+/);
+ if (!matchedSomething) {
+ stream.match(/\s/);
+ }
+ pushRule(SpecialParseRules, state, 'Invalid');
+ return 'invalidchar';
+ }
+ if (token.kind === 'Comment') {
+ pushRule(SpecialParseRules, state, 'Comment');
+ return 'comment';
+ }
+ const backupState = assign({}, state);
+ if (token.kind === 'Punctuation') {
+ if (/^[{([]/.test(token.value)) {
+ if (state.indentLevel !== undefined) {
+ state.levels = (state.levels || []).concat(state.indentLevel + 1);
+ }
+ } else if (/^[})\]]/.test(token.value)) {
+ const levels = state.levels = (state.levels || []).slice(0, -1);
+ if (state.indentLevel && levels.length > 0 && levels.at(-1) < state.indentLevel) {
+ state.indentLevel = levels.at(-1);
+ }
+ }
+ }
+ while (state.rule) {
+ let expected = typeof state.rule === 'function' ? state.step === 0 ? state.rule(token, stream) : null : state.rule[state.step];
+ if (state.needsSeparator) {
+ expected = expected === null || expected === void 0 ? void 0 : expected.separator;
+ }
+ if (expected) {
+ if (expected.ofRule) {
+ expected = expected.ofRule;
+ }
+ if (typeof expected === 'string') {
+ pushRule(parseRules, state, expected);
+ continue;
+ }
+ if ((_a = expected.match) === null || _a === void 0 ? void 0 : _a.call(expected, token)) {
+ if (expected.update) {
+ expected.update(state, token);
+ }
+ if (token.kind === 'Punctuation') {
+ advanceRule(state, true);
+ } else {
+ state.needsAdvance = true;
+ }
+ return expected.style;
+ }
+ }
+ unsuccessful(state);
+ }
+ assign(state, backupState);
+ pushRule(SpecialParseRules, state, 'Invalid');
+ return 'invalidchar';
+}
+function assign(to, from) {
+ const keys = Object.keys(from);
+ for (let i = 0; i < keys.length; i++) {
+ to[keys[i]] = from[keys[i]];
+ }
+ return to;
+}
+const SpecialParseRules = {
+ Invalid: [],
+ Comment: []
+};
+function pushRule(rules, state, ruleKind) {
+ if (!rules[ruleKind]) {
+ throw new TypeError('Unknown rule: ' + ruleKind);
+ }
+ state.prevState = Object.assign({}, state);
+ state.kind = ruleKind;
+ state.name = null;
+ state.type = null;
+ state.rule = rules[ruleKind];
+ state.step = 0;
+ state.needsSeparator = false;
+}
+function popRule(state) {
+ if (!state.prevState) {
+ return;
+ }
+ state.kind = state.prevState.kind;
+ state.name = state.prevState.name;
+ state.type = state.prevState.type;
+ state.rule = state.prevState.rule;
+ state.step = state.prevState.step;
+ state.needsSeparator = state.prevState.needsSeparator;
+ state.prevState = state.prevState.prevState;
+}
+function advanceRule(state, successful) {
+ var _a;
+ if (isList(state) && state.rule) {
+ const step = state.rule[state.step];
+ if (step.separator) {
+ const {
+ separator
+ } = step;
+ state.needsSeparator = !state.needsSeparator;
+ if (!state.needsSeparator && separator.ofRule) {
+ return;
+ }
+ }
+ if (successful) {
+ return;
+ }
+ }
+ state.needsSeparator = false;
+ state.step++;
+ while (state.rule && !(Array.isArray(state.rule) && state.step < state.rule.length)) {
+ popRule(state);
+ if (state.rule) {
+ if (isList(state)) {
+ if ((_a = state.rule) === null || _a === void 0 ? void 0 : _a[state.step].separator) {
+ state.needsSeparator = !state.needsSeparator;
+ }
+ } else {
+ state.needsSeparator = false;
+ state.step++;
+ }
+ }
+ }
+}
+function isList(state) {
+ const step = Array.isArray(state.rule) && typeof state.rule[state.step] !== 'string' && state.rule[state.step];
+ return step && step.isList;
+}
+function unsuccessful(state) {
+ while (state.rule && !(Array.isArray(state.rule) && state.rule[state.step].ofRule)) {
+ popRule(state);
+ }
+ if (state.rule) {
+ advanceRule(state, false);
+ }
+}
+function lex(lexRules, stream) {
+ const kinds = Object.keys(lexRules);
+ for (let i = 0; i < kinds.length; i++) {
+ const match = stream.match(lexRules[kinds[i]]);
+ if (match && match instanceof Array) {
+ return {
+ kind: kinds[i],
+ value: match[0]
+ };
+ }
+ }
+}
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/parser/types.js":
+/*!**********************************************************!*\
+ !*** ../../graphql-language-service/esm/parser/types.js ***!
+ \**********************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.RuleKinds = exports.AdditionalRuleKinds = void 0;
+var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs");
+const AdditionalRuleKinds = {
+ ALIASED_FIELD: 'AliasedField',
+ ARGUMENTS: 'Arguments',
+ SHORT_QUERY: 'ShortQuery',
+ QUERY: 'Query',
+ MUTATION: 'Mutation',
+ SUBSCRIPTION: 'Subscription',
+ TYPE_CONDITION: 'TypeCondition',
+ INVALID: 'Invalid',
+ COMMENT: 'Comment',
+ SCHEMA_DEF: 'SchemaDef',
+ SCALAR_DEF: 'ScalarDef',
+ OBJECT_TYPE_DEF: 'ObjectTypeDef',
+ OBJECT_VALUE: 'ObjectValue',
+ LIST_VALUE: 'ListValue',
+ INTERFACE_DEF: 'InterfaceDef',
+ UNION_DEF: 'UnionDef',
+ ENUM_DEF: 'EnumDef',
+ ENUM_VALUE: 'EnumValue',
+ FIELD_DEF: 'FieldDef',
+ INPUT_DEF: 'InputDef',
+ INPUT_VALUE_DEF: 'InputValueDef',
+ ARGUMENTS_DEF: 'ArgumentsDef',
+ EXTEND_DEF: 'ExtendDef',
+ EXTENSION_DEFINITION: 'ExtensionDefinition',
+ DIRECTIVE_DEF: 'DirectiveDef',
+ IMPLEMENTS: 'Implements',
+ VARIABLE_DEFINITIONS: 'VariableDefinitions',
+ TYPE: 'Type'
+};
+exports.AdditionalRuleKinds = AdditionalRuleKinds;
+const RuleKinds = Object.assign(Object.assign({}, _graphql.Kind), AdditionalRuleKinds);
+exports.RuleKinds = RuleKinds;
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/types.js":
+/*!***************************************************!*\
+ !*** ../../graphql-language-service/esm/types.js ***!
+ \***************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.FileChangeTypeKind = exports.CompletionItemKind = void 0;
+Object.defineProperty(exports, "InsertTextFormat", ({
+ enumerable: true,
+ get: function () {
+ return _vscodeLanguageserverTypes.InsertTextFormat;
+ }
+}));
+var _vscodeLanguageserverTypes = __webpack_require__(/*! vscode-languageserver-types */ "../../../node_modules/vscode-languageserver-types/lib/esm/main.js");
+const FileChangeTypeKind = {
+ Created: 1,
+ Changed: 2,
+ Deleted: 3
+};
+exports.FileChangeTypeKind = FileChangeTypeKind;
+var CompletionItemKind;
+exports.CompletionItemKind = CompletionItemKind;
+(function (CompletionItemKind) {
+ CompletionItemKind.Text = 1;
+ CompletionItemKind.Method = 2;
+ CompletionItemKind.Function = 3;
+ CompletionItemKind.Constructor = 4;
+ CompletionItemKind.Field = 5;
+ CompletionItemKind.Variable = 6;
+ CompletionItemKind.Class = 7;
+ CompletionItemKind.Interface = 8;
+ CompletionItemKind.Module = 9;
+ CompletionItemKind.Property = 10;
+ CompletionItemKind.Unit = 11;
+ CompletionItemKind.Value = 12;
+ CompletionItemKind.Enum = 13;
+ CompletionItemKind.Keyword = 14;
+ CompletionItemKind.Snippet = 15;
+ CompletionItemKind.Color = 16;
+ CompletionItemKind.File = 17;
+ CompletionItemKind.Reference = 18;
+ CompletionItemKind.Folder = 19;
+ CompletionItemKind.EnumMember = 20;
+ CompletionItemKind.Constant = 21;
+ CompletionItemKind.Struct = 22;
+ CompletionItemKind.Event = 23;
+ CompletionItemKind.Operator = 24;
+ CompletionItemKind.TypeParameter = 25;
+})(CompletionItemKind || (exports.CompletionItemKind = CompletionItemKind = {}));
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/utils/Range.js":
+/*!*********************************************************!*\
+ !*** ../../graphql-language-service/esm/utils/Range.js ***!
+ \*********************************************************/
+/***/ (function(__unused_webpack_module, exports) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.Range = exports.Position = void 0;
+exports.locToRange = locToRange;
+exports.offsetToPosition = offsetToPosition;
+class Range {
+ constructor(start, end) {
+ this.containsPosition = position => {
+ if (this.start.line === position.line) {
+ return this.start.character <= position.character;
+ }
+ if (this.end.line === position.line) {
+ return this.end.character >= position.character;
+ }
+ return this.start.line <= position.line && this.end.line >= position.line;
+ };
+ this.start = start;
+ this.end = end;
+ }
+ setStart(line, character) {
+ this.start = new Position(line, character);
+ }
+ setEnd(line, character) {
+ this.end = new Position(line, character);
+ }
+}
+exports.Range = Range;
+class Position {
+ constructor(line, character) {
+ this.lessThanOrEqualTo = position => this.line < position.line || this.line === position.line && this.character <= position.character;
+ this.line = line;
+ this.character = character;
+ }
+ setLine(line) {
+ this.line = line;
+ }
+ setCharacter(character) {
+ this.character = character;
+ }
+}
+exports.Position = Position;
+function offsetToPosition(text, loc) {
+ const EOL = '\n';
+ const buf = text.slice(0, loc);
+ const lines = buf.split(EOL).length - 1;
+ const lastLineIndex = buf.lastIndexOf(EOL);
+ return new Position(lines, loc - lastLineIndex - 1);
+}
+function locToRange(text, loc) {
+ const start = offsetToPosition(text, loc.start);
+ const end = offsetToPosition(text, loc.end);
+ return new Range(start, end);
+}
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/utils/collectVariables.js":
+/*!********************************************************************!*\
+ !*** ../../graphql-language-service/esm/utils/collectVariables.js ***!
+ \********************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.collectVariables = collectVariables;
+var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs");
+function collectVariables(schema, documentAST) {
+ const variableToType = Object.create(null);
+ for (const definition of documentAST.definitions) {
+ if (definition.kind === 'OperationDefinition') {
+ const {
+ variableDefinitions
+ } = definition;
+ if (variableDefinitions) {
+ for (const {
+ variable,
+ type
+ } of variableDefinitions) {
+ const inputType = (0, _graphql.typeFromAST)(schema, type);
+ if (inputType) {
+ variableToType[variable.name.value] = inputType;
+ } else if (type.kind === _graphql.Kind.NAMED_TYPE && type.name.value === 'Float') {
+ variableToType[variable.name.value] = _graphql.GraphQLFloat;
+ }
+ }
+ }
+ }
+ }
+ return variableToType;
+}
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/utils/fragmentDependencies.js":
+/*!************************************************************************!*\
+ !*** ../../graphql-language-service/esm/utils/fragmentDependencies.js ***!
+ \************************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.getFragmentDependenciesForAST = exports.getFragmentDependencies = void 0;
+var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs");
+var _nullthrows = _interopRequireDefault(__webpack_require__(/*! nullthrows */ "../../../node_modules/nullthrows/nullthrows.js"));
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+const getFragmentDependencies = (operationString, fragmentDefinitions) => {
+ if (!fragmentDefinitions) {
+ return [];
+ }
+ let parsedOperation;
+ try {
+ parsedOperation = (0, _graphql.parse)(operationString);
+ } catch (_a) {
+ return [];
+ }
+ return getFragmentDependenciesForAST(parsedOperation, fragmentDefinitions);
+};
+exports.getFragmentDependencies = getFragmentDependencies;
+const getFragmentDependenciesForAST = (parsedOperation, fragmentDefinitions) => {
+ if (!fragmentDefinitions) {
+ return [];
+ }
+ const existingFrags = new Map();
+ const referencedFragNames = new Set();
+ (0, _graphql.visit)(parsedOperation, {
+ FragmentDefinition(node) {
+ existingFrags.set(node.name.value, true);
+ },
+ FragmentSpread(node) {
+ if (!referencedFragNames.has(node.name.value)) {
+ referencedFragNames.add(node.name.value);
+ }
+ }
+ });
+ const asts = new Set();
+ for (const name of referencedFragNames) {
+ if (!existingFrags.has(name) && fragmentDefinitions.has(name)) {
+ asts.add((0, _nullthrows.default)(fragmentDefinitions.get(name)));
+ }
+ }
+ const referencedFragments = [];
+ for (const ast of asts) {
+ (0, _graphql.visit)(ast, {
+ FragmentSpread(node) {
+ if (!referencedFragNames.has(node.name.value) && fragmentDefinitions.get(node.name.value)) {
+ asts.add((0, _nullthrows.default)(fragmentDefinitions.get(node.name.value)));
+ referencedFragNames.add(node.name.value);
+ }
+ }
+ });
+ if (!existingFrags.has(ast.name.value)) {
+ referencedFragments.push(ast);
+ }
+ }
+ return referencedFragments;
+};
+exports.getFragmentDependenciesForAST = getFragmentDependenciesForAST;
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/utils/getASTNodeAtPosition.js":
+/*!************************************************************************!*\
+ !*** ../../graphql-language-service/esm/utils/getASTNodeAtPosition.js ***!
+ \************************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.getASTNodeAtPosition = getASTNodeAtPosition;
+exports.pointToOffset = pointToOffset;
+var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs");
+function getASTNodeAtPosition(query, ast, point) {
+ const offset = pointToOffset(query, point);
+ let nodeContainingPosition;
+ (0, _graphql.visit)(ast, {
+ enter(node) {
+ if (node.kind !== 'Name' && node.loc && node.loc.start <= offset && offset <= node.loc.end) {
+ nodeContainingPosition = node;
+ } else {
+ return false;
+ }
+ },
+ leave(node) {
+ if (node.loc && node.loc.start <= offset && offset <= node.loc.end) {
+ return false;
+ }
+ }
+ });
+ return nodeContainingPosition;
+}
+function pointToOffset(text, point) {
+ const linesUntilPosition = text.split('\n').slice(0, point.line);
+ return point.character + linesUntilPosition.map(line => line.length + 1).reduce((a, b) => a + b, 0);
+}
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/utils/getOperationFacts.js":
+/*!*********************************************************************!*\
+ !*** ../../graphql-language-service/esm/utils/getOperationFacts.js ***!
+ \*********************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = getOperationFacts;
+exports.getOperationASTFacts = getOperationASTFacts;
+exports.getQueryFacts = void 0;
+var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs");
+var _collectVariables = __webpack_require__(/*! ./collectVariables */ "../../graphql-language-service/esm/utils/collectVariables.js");
+function getOperationASTFacts(documentAST, schema) {
+ const variableToType = schema ? (0, _collectVariables.collectVariables)(schema, documentAST) : undefined;
+ const operations = [];
+ (0, _graphql.visit)(documentAST, {
+ OperationDefinition(node) {
+ operations.push(node);
+ }
+ });
+ return {
+ variableToType,
+ operations
+ };
+}
+function getOperationFacts(schema, documentString) {
+ if (!documentString) {
+ return;
+ }
+ try {
+ const documentAST = (0, _graphql.parse)(documentString);
+ return Object.assign(Object.assign({}, getOperationASTFacts(documentAST, schema)), {
+ documentAST
+ });
+ } catch (_a) {
+ return;
+ }
+}
+const getQueryFacts = getOperationFacts;
+exports.getQueryFacts = getQueryFacts;
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/utils/getVariablesJSONSchema.js":
+/*!**************************************************************************!*\
+ !*** ../../graphql-language-service/esm/utils/getVariablesJSONSchema.js ***!
+ \**************************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.defaultJSONSchemaOptions = void 0;
+exports.getVariablesJSONSchema = getVariablesJSONSchema;
+var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs");
+const defaultJSONSchemaOptions = {
+ useMarkdownDescription: false
+};
+exports.defaultJSONSchemaOptions = defaultJSONSchemaOptions;
+function text(into, newText) {
+ into.push(newText);
+}
+function renderType(into, t) {
+ if ((0, _graphql.isNonNullType)(t)) {
+ renderType(into, t.ofType);
+ text(into, '!');
+ } else if ((0, _graphql.isListType)(t)) {
+ text(into, '[');
+ renderType(into, t.ofType);
+ text(into, ']');
+ } else {
+ text(into, t.name);
+ }
+}
+function renderDefinitionDescription(t, useMarkdown, description) {
+ const into = [];
+ const type = 'type' in t ? t.type : t;
+ if ('type' in t && t.description) {
+ text(into, t.description);
+ text(into, '\n\n');
+ }
+ text(into, renderTypeToString(type, useMarkdown));
+ if (description) {
+ text(into, '\n');
+ text(into, description);
+ } else if (!(0, _graphql.isScalarType)(type) && 'description' in type && type.description) {
+ text(into, '\n');
+ text(into, type.description);
+ } else if ('ofType' in type && !(0, _graphql.isScalarType)(type.ofType) && 'description' in type.ofType && type.ofType.description) {
+ text(into, '\n');
+ text(into, type.ofType.description);
+ }
+ return into.join('');
+}
+function renderTypeToString(t, useMarkdown) {
+ const into = [];
+ if (useMarkdown) {
+ text(into, '```graphql\n');
+ }
+ renderType(into, t);
+ if (useMarkdown) {
+ text(into, '\n```');
+ }
+ return into.join('');
+}
+const defaultScalarTypesMap = {
+ Int: {
+ type: 'integer'
+ },
+ String: {
+ type: 'string'
+ },
+ Float: {
+ type: 'number'
+ },
+ ID: {
+ type: 'string'
+ },
+ Boolean: {
+ type: 'boolean'
+ },
+ DateTime: {
+ type: 'string'
+ }
+};
+class Marker {
+ constructor() {
+ this.set = new Set();
+ }
+ mark(name) {
+ if (this.set.has(name)) {
+ return false;
+ }
+ this.set.add(name);
+ return true;
+ }
+}
+function getJSONSchemaFromGraphQLType(fieldOrType, options) {
+ var _a, _b;
+ let definition = Object.create(null);
+ const definitions = Object.create(null);
+ const isField = ('type' in fieldOrType);
+ const type = isField ? fieldOrType.type : fieldOrType;
+ const baseType = (0, _graphql.isNonNullType)(type) ? type.ofType : type;
+ const required = (0, _graphql.isNonNullType)(type);
+ if ((0, _graphql.isScalarType)(baseType)) {
+ if ((_a = options === null || options === void 0 ? void 0 : options.scalarSchemas) === null || _a === void 0 ? void 0 : _a[baseType.name]) {
+ definition = JSON.parse(JSON.stringify(options.scalarSchemas[baseType.name]));
+ } else {
+ definition.type = ['string', 'number', 'boolean', 'integer'];
+ }
+ if (!required) {
+ if (Array.isArray(definition.type)) {
+ definition.type.push('null');
+ } else if (definition.type) {
+ definition.type = [definition.type, 'null'];
+ } else if (definition.enum) {
+ definition.enum.push(null);
+ } else if (definition.oneOf) {
+ definition.oneOf.push({
+ type: 'null'
+ });
+ } else {
+ definition = {
+ oneOf: [definition, {
+ type: 'null'
+ }]
+ };
+ }
+ }
+ } else if ((0, _graphql.isEnumType)(baseType)) {
+ definition.enum = baseType.getValues().map(val => val.name);
+ if (!required) {
+ definition.enum.push(null);
+ }
+ } else if ((0, _graphql.isListType)(baseType)) {
+ if (required) {
+ definition.type = 'array';
+ } else {
+ definition.type = ['array', 'null'];
+ }
+ const {
+ definition: def,
+ definitions: defs
+ } = getJSONSchemaFromGraphQLType(baseType.ofType, options);
+ definition.items = def;
+ if (defs) {
+ for (const defName of Object.keys(defs)) {
+ definitions[defName] = defs[defName];
+ }
+ }
+ } else if ((0, _graphql.isInputObjectType)(baseType)) {
+ if (required) {
+ definition.$ref = `#/definitions/${baseType.name}`;
+ } else {
+ definition.oneOf = [{
+ $ref: `#/definitions/${baseType.name}`
+ }, {
+ type: 'null'
+ }];
+ }
+ if ((_b = options === null || options === void 0 ? void 0 : options.definitionMarker) === null || _b === void 0 ? void 0 : _b.mark(baseType.name)) {
+ const fields = baseType.getFields();
+ const fieldDef = {
+ type: 'object',
+ properties: {},
+ required: []
+ };
+ fieldDef.description = renderDefinitionDescription(baseType);
+ if (options === null || options === void 0 ? void 0 : options.useMarkdownDescription) {
+ fieldDef.markdownDescription = renderDefinitionDescription(baseType, true);
+ }
+ for (const fieldName of Object.keys(fields)) {
+ const field = fields[fieldName];
+ const {
+ required: fieldRequired,
+ definition: fieldDefinition,
+ definitions: typeDefinitions
+ } = getJSONSchemaFromGraphQLType(field, options);
+ fieldDef.properties[fieldName] = fieldDefinition;
+ if (fieldRequired) {
+ fieldDef.required.push(fieldName);
+ }
+ if (typeDefinitions) {
+ for (const [defName, value] of Object.entries(typeDefinitions)) {
+ definitions[defName] = value;
+ }
+ }
+ }
+ definitions[baseType.name] = fieldDef;
+ }
+ }
+ if ('defaultValue' in fieldOrType && fieldOrType.defaultValue !== undefined) {
+ definition.default = fieldOrType.defaultValue;
+ }
+ const {
+ description
+ } = definition;
+ definition.description = renderDefinitionDescription(fieldOrType, false, description);
+ if (options === null || options === void 0 ? void 0 : options.useMarkdownDescription) {
+ definition.markdownDescription = renderDefinitionDescription(fieldOrType, true, description);
+ }
+ return {
+ required,
+ definition,
+ definitions
+ };
+}
+function getVariablesJSONSchema(variableToType, options) {
+ var _a;
+ const jsonSchema = {
+ $schema: 'http://json-schema.org/draft-04/schema',
+ type: 'object',
+ properties: {},
+ required: []
+ };
+ const runtimeOptions = Object.assign(Object.assign({}, options), {
+ definitionMarker: new Marker(),
+ scalarSchemas: Object.assign(Object.assign({}, defaultScalarTypesMap), options === null || options === void 0 ? void 0 : options.scalarSchemas)
+ });
+ if (variableToType) {
+ for (const [variableName, type] of Object.entries(variableToType)) {
+ const {
+ definition,
+ required,
+ definitions
+ } = getJSONSchemaFromGraphQLType(type, runtimeOptions);
+ jsonSchema.properties[variableName] = definition;
+ if (required) {
+ (_a = jsonSchema.required) === null || _a === void 0 ? void 0 : _a.push(variableName);
+ }
+ if (definitions) {
+ jsonSchema.definitions = Object.assign(Object.assign({}, jsonSchema === null || jsonSchema === void 0 ? void 0 : jsonSchema.definitions), definitions);
+ }
+ }
+ }
+ return jsonSchema;
+}
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/utils/index.js":
+/*!*********************************************************!*\
+ !*** ../../graphql-language-service/esm/utils/index.js ***!
+ \*********************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+Object.defineProperty(exports, "Position", ({
+ enumerable: true,
+ get: function () {
+ return _Range.Position;
+ }
+}));
+Object.defineProperty(exports, "Range", ({
+ enumerable: true,
+ get: function () {
+ return _Range.Range;
+ }
+}));
+Object.defineProperty(exports, "collectVariables", ({
+ enumerable: true,
+ get: function () {
+ return _collectVariables.collectVariables;
+ }
+}));
+Object.defineProperty(exports, "getASTNodeAtPosition", ({
+ enumerable: true,
+ get: function () {
+ return _getASTNodeAtPosition.getASTNodeAtPosition;
+ }
+}));
+Object.defineProperty(exports, "getFragmentDependencies", ({
+ enumerable: true,
+ get: function () {
+ return _fragmentDependencies.getFragmentDependencies;
+ }
+}));
+Object.defineProperty(exports, "getFragmentDependenciesForAST", ({
+ enumerable: true,
+ get: function () {
+ return _fragmentDependencies.getFragmentDependenciesForAST;
+ }
+}));
+Object.defineProperty(exports, "getOperationASTFacts", ({
+ enumerable: true,
+ get: function () {
+ return _getOperationFacts.getOperationASTFacts;
+ }
+}));
+Object.defineProperty(exports, "getOperationFacts", ({
+ enumerable: true,
+ get: function () {
+ return _getOperationFacts.default;
+ }
+}));
+Object.defineProperty(exports, "getQueryFacts", ({
+ enumerable: true,
+ get: function () {
+ return _getOperationFacts.getQueryFacts;
+ }
+}));
+Object.defineProperty(exports, "getVariablesJSONSchema", ({
+ enumerable: true,
+ get: function () {
+ return _getVariablesJSONSchema.getVariablesJSONSchema;
+ }
+}));
+Object.defineProperty(exports, "locToRange", ({
+ enumerable: true,
+ get: function () {
+ return _Range.locToRange;
+ }
+}));
+Object.defineProperty(exports, "offsetToPosition", ({
+ enumerable: true,
+ get: function () {
+ return _Range.offsetToPosition;
+ }
+}));
+Object.defineProperty(exports, "pointToOffset", ({
+ enumerable: true,
+ get: function () {
+ return _getASTNodeAtPosition.pointToOffset;
+ }
+}));
+Object.defineProperty(exports, "validateWithCustomRules", ({
+ enumerable: true,
+ get: function () {
+ return _validateWithCustomRules.validateWithCustomRules;
+ }
+}));
+var _fragmentDependencies = __webpack_require__(/*! ./fragmentDependencies */ "../../graphql-language-service/esm/utils/fragmentDependencies.js");
+var _getVariablesJSONSchema = __webpack_require__(/*! ./getVariablesJSONSchema */ "../../graphql-language-service/esm/utils/getVariablesJSONSchema.js");
+var _getASTNodeAtPosition = __webpack_require__(/*! ./getASTNodeAtPosition */ "../../graphql-language-service/esm/utils/getASTNodeAtPosition.js");
+var _Range = __webpack_require__(/*! ./Range */ "../../graphql-language-service/esm/utils/Range.js");
+var _validateWithCustomRules = __webpack_require__(/*! ./validateWithCustomRules */ "../../graphql-language-service/esm/utils/validateWithCustomRules.js");
+var _collectVariables = __webpack_require__(/*! ./collectVariables */ "../../graphql-language-service/esm/utils/collectVariables.js");
+var _getOperationFacts = _interopRequireWildcard(__webpack_require__(/*! ./getOperationFacts */ "../../graphql-language-service/esm/utils/getOperationFacts.js"));
+function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
+function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
+
+/***/ }),
+
+/***/ "../../graphql-language-service/esm/utils/validateWithCustomRules.js":
+/*!***************************************************************************!*\
+ !*** ../../graphql-language-service/esm/utils/validateWithCustomRules.js ***!
+ \***************************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.validateWithCustomRules = validateWithCustomRules;
+var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs");
+const specifiedSDLRules = [_graphql.LoneSchemaDefinitionRule, _graphql.UniqueOperationTypesRule, _graphql.UniqueTypeNamesRule, _graphql.UniqueEnumValueNamesRule, _graphql.UniqueFieldDefinitionNamesRule, _graphql.UniqueDirectiveNamesRule, _graphql.KnownTypeNamesRule, _graphql.KnownDirectivesRule, _graphql.UniqueDirectivesPerLocationRule, _graphql.PossibleTypeExtensionsRule, _graphql.UniqueArgumentNamesRule, _graphql.UniqueInputFieldNamesRule];
+function validateWithCustomRules(schema, ast, customRules, isRelayCompatMode, isSchemaDocument) {
+ const rules = _graphql.specifiedRules.filter(rule => {
+ if (rule === _graphql.NoUnusedFragmentsRule || rule === _graphql.ExecutableDefinitionsRule) {
+ return false;
+ }
+ if (isRelayCompatMode && rule === _graphql.KnownFragmentNamesRule) {
+ return false;
+ }
+ return true;
+ });
+ if (customRules) {
+ Array.prototype.push.apply(rules, customRules);
+ }
+ if (isSchemaDocument) {
+ Array.prototype.push.apply(rules, specifiedSDLRules);
+ }
+ const errors = (0, _graphql.validate)(schema, ast, rules);
+ return errors.filter(error => {
+ if (error.message.includes('Unknown directive') && error.nodes) {
+ const node = error.nodes[0];
+ if (node && node.kind === _graphql.Kind.DIRECTIVE) {
+ const name = node.name.value;
+ if (name === 'arguments' || name === 'argumentDefinitions') {
+ return false;
+ }
+ }
+ }
+ return true;
+ });
+}
+
+/***/ }),
+
+/***/ "./style.css":
+/*!*******************!*\
+ !*** ./style.css ***!
+ \*******************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+__webpack_require__.r(__webpack_exports__);
+// extracted by mini-css-extract-plugin
+
+
+/***/ }),
+
+/***/ "../../graphiql-react/dist/style.css":
+/*!*******************************************!*\
+ !*** ../../graphiql-react/dist/style.css ***!
+ \*******************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+__webpack_require__.r(__webpack_exports__);
+// extracted by mini-css-extract-plugin
+
+
+/***/ }),
+
+/***/ "../../graphiql-react/font/fira-code.css":
+/*!***********************************************!*\
+ !*** ../../graphiql-react/font/fira-code.css ***!
+ \***********************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+__webpack_require__.r(__webpack_exports__);
+// extracted by mini-css-extract-plugin
+
+
+/***/ }),
+
+/***/ "../../graphiql-react/font/roboto.css":
+/*!********************************************!*\
+ !*** ../../graphiql-react/font/roboto.css ***!
+ \********************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+__webpack_require__.r(__webpack_exports__);
+// extracted by mini-css-extract-plugin
+
+
+/***/ }),
+
+/***/ "react":
+/*!************************!*\
+ !*** external "React" ***!
+ \************************/
+/***/ (function(module) {
+
+module.exports = window["React"];
+
+/***/ }),
+
+/***/ "react-dom":
+/*!***************************!*\
+ !*** external "ReactDOM" ***!
+ \***************************/
+/***/ (function(module) {
+
+module.exports = window["ReactDOM"];
+
+/***/ }),
+
+/***/ "../../../node_modules/@headlessui/react/dist/headlessui.dev.cjs":
+/*!***********************************************************************!*\
+ !*** ../../../node_modules/@headlessui/react/dist/headlessui.dev.cjs ***!
+ \***********************************************************************/
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var __create = Object.create;
+var __defProp = Object.defineProperty;
+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+var __getOwnPropNames = Object.getOwnPropertyNames;
+var __getProtoOf = Object.getPrototypeOf;
+var __hasOwnProp = Object.prototype.hasOwnProperty;
+var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __export = (target, all) => {
+ for (var name in all)
+ __defProp(target, name, { get: all[name], enumerable: true });
+};
+var __copyProps = (to, from, except, desc) => {
+ if (from && typeof from === "object" || typeof from === "function") {
+ for (let key of __getOwnPropNames(from))
+ if (!__hasOwnProp.call(to, key) && key !== except)
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
+ }
+ return to;
+};
+var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
+ // If the importer is in node compatibility mode or this is not an ESM
+ // file that has been converted to a CommonJS file using a Babel-
+ // compatible transform (i.e. "__esModule" has not been set), then set
+ // "default" to the CommonJS "module.exports" for node compatibility.
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
+ mod
+));
+var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
+var __publicField = (obj, key, value) => {
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
+ return value;
+};
+
+// src/index.ts
+var src_exports = {};
+__export(src_exports, {
+ Combobox: () => Combobox,
+ Dialog: () => Dialog,
+ Disclosure: () => Disclosure,
+ FocusTrap: () => FocusTrap,
+ Listbox: () => Listbox,
+ Menu: () => Menu,
+ Popover: () => Popover,
+ Portal: () => Portal,
+ RadioGroup: () => RadioGroup,
+ Switch: () => Switch,
+ Tab: () => Tab,
+ Transition: () => Transition
+});
+module.exports = __toCommonJS(src_exports);
+
+// src/components/combobox/combobox.tsx
+var import_react19 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+
+// src/hooks/use-computed.ts
+var import_react3 = __webpack_require__(/*! react */ "react");
+
+// src/hooks/use-iso-morphic-effect.ts
+var import_react = __webpack_require__(/*! react */ "react");
+
+// src/utils/env.ts
+var Env = class {
+ constructor() {
+ __publicField(this, "current", this.detect());
+ __publicField(this, "handoffState", "pending");
+ __publicField(this, "currentId", 0);
+ }
+ set(env2) {
+ if (this.current === env2)
+ return;
+ this.handoffState = "pending";
+ this.currentId = 0;
+ this.current = env2;
+ }
+ reset() {
+ this.set(this.detect());
+ }
+ nextId() {
+ return ++this.currentId;
+ }
+ get isServer() {
+ return this.current === "server";
+ }
+ get isClient() {
+ return this.current === "client";
+ }
+ detect() {
+ if (typeof window === "undefined" || typeof document === "undefined") {
+ return "server";
+ }
+ return "client";
+ }
+ handoff() {
+ if (this.handoffState === "pending") {
+ this.handoffState = "complete";
+ }
+ }
+ get isHandoffComplete() {
+ return this.handoffState === "complete";
+ }
+};
+var env = new Env();
+
+// src/hooks/use-iso-morphic-effect.ts
+var useIsoMorphicEffect = (effect, deps) => {
+ if (env.isServer) {
+ (0, import_react.useEffect)(effect, deps);
+ } else {
+ (0, import_react.useLayoutEffect)(effect, deps);
+ }
+};
+
+// src/hooks/use-latest-value.ts
+var import_react2 = __webpack_require__(/*! react */ "react");
+function useLatestValue(value) {
+ let cache = (0, import_react2.useRef)(value);
+ useIsoMorphicEffect(() => {
+ cache.current = value;
+ }, [value]);
+ return cache;
+}
+
+// src/hooks/use-computed.ts
+function useComputed(cb, dependencies) {
+ let [value, setValue] = (0, import_react3.useState)(cb);
+ let cbRef = useLatestValue(cb);
+ useIsoMorphicEffect(() => setValue(cbRef.current), [cbRef, setValue, ...dependencies]);
+ return value;
+}
+
+// src/hooks/use-disposables.ts
+var import_react4 = __webpack_require__(/*! react */ "react");
+
+// src/utils/micro-task.ts
+function microTask(cb) {
+ if (typeof queueMicrotask === "function") {
+ queueMicrotask(cb);
+ } else {
+ Promise.resolve().then(cb).catch(
+ (e) => setTimeout(() => {
+ throw e;
+ })
+ );
+ }
+}
+
+// src/utils/disposables.ts
+function disposables() {
+ let _disposables = [];
+ let api = {
+ addEventListener(element, name, listener, options) {
+ element.addEventListener(name, listener, options);
+ return api.add(() => element.removeEventListener(name, listener, options));
+ },
+ requestAnimationFrame(...args) {
+ let raf = requestAnimationFrame(...args);
+ return api.add(() => cancelAnimationFrame(raf));
+ },
+ nextFrame(...args) {
+ return api.requestAnimationFrame(() => {
+ return api.requestAnimationFrame(...args);
+ });
+ },
+ setTimeout(...args) {
+ let timer = setTimeout(...args);
+ return api.add(() => clearTimeout(timer));
+ },
+ microTask(...args) {
+ let task = { current: true };
+ microTask(() => {
+ if (task.current) {
+ args[0]();
+ }
+ });
+ return api.add(() => {
+ task.current = false;
+ });
+ },
+ style(node, property, value) {
+ let previous = node.style.getPropertyValue(property);
+ Object.assign(node.style, { [property]: value });
+ return this.add(() => {
+ Object.assign(node.style, { [property]: previous });
+ });
+ },
+ group(cb) {
+ let d = disposables();
+ cb(d);
+ return this.add(() => d.dispose());
+ },
+ add(cb) {
+ _disposables.push(cb);
+ return () => {
+ let idx = _disposables.indexOf(cb);
+ if (idx >= 0) {
+ for (let dispose of _disposables.splice(idx, 1)) {
+ dispose();
+ }
+ }
+ };
+ },
+ dispose() {
+ for (let dispose of _disposables.splice(0)) {
+ dispose();
+ }
+ }
+ };
+ return api;
+}
+
+// src/hooks/use-disposables.ts
+function useDisposables() {
+ let [d] = (0, import_react4.useState)(disposables);
+ (0, import_react4.useEffect)(() => () => d.dispose(), [d]);
+ return d;
+}
+
+// src/hooks/use-event.ts
+var import_react5 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+var useEvent = (
+ // TODO: Add React.useEvent ?? once the useEvent hook is available
+ function useEvent2(cb) {
+ let cache = useLatestValue(cb);
+ return import_react5.default.useCallback((...args) => cache.current(...args), [cache]);
+ }
+);
+
+// src/hooks/use-id.ts
+var import_react7 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+
+// src/hooks/use-server-handoff-complete.ts
+var import_react6 = __webpack_require__(/*! react */ "react");
+function useServerHandoffComplete() {
+ let [complete, setComplete] = (0, import_react6.useState)(env.isHandoffComplete);
+ if (complete && env.isHandoffComplete === false) {
+ setComplete(false);
+ }
+ (0, import_react6.useEffect)(() => {
+ if (complete === true)
+ return;
+ setComplete(true);
+ }, [complete]);
+ (0, import_react6.useEffect)(() => env.handoff(), []);
+ return complete;
+}
+
+// src/hooks/use-id.ts
+var _a;
+var useId = (
+ // Prefer React's `useId` if it's available.
+ // @ts-expect-error - `useId` doesn't exist in React < 18.
+ (_a = import_react7.default.useId) != null ? _a : function useId2() {
+ let ready = useServerHandoffComplete();
+ let [id, setId] = import_react7.default.useState(ready ? () => env.nextId() : null);
+ useIsoMorphicEffect(() => {
+ if (id === null)
+ setId(env.nextId());
+ }, [id]);
+ return id != null ? "" + id : void 0;
+ }
+);
+
+// src/hooks/use-outside-click.ts
+var import_react10 = __webpack_require__(/*! react */ "react");
+
+// src/utils/match.ts
+function match(value, lookup, ...args) {
+ if (value in lookup) {
+ let returnValue = lookup[value];
+ return typeof returnValue === "function" ? returnValue(...args) : returnValue;
+ }
+ let error = new Error(
+ `Tried to handle "${value}" but there is no handler defined. Only defined handlers are: ${Object.keys(
+ lookup
+ ).map((key) => `"${key}"`).join(", ")}.`
+ );
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(error, match);
+ throw error;
+}
+
+// src/utils/owner.ts
+function getOwnerDocument(element) {
+ if (env.isServer)
+ return null;
+ if (element instanceof Node)
+ return element.ownerDocument;
+ if (element == null ? void 0 : element.hasOwnProperty("current")) {
+ if (element.current instanceof Node)
+ return element.current.ownerDocument;
+ }
+ return document;
+}
+
+// src/utils/focus-management.ts
+var focusableSelector = [
+ "[contentEditable=true]",
+ "[tabindex]",
+ "a[href]",
+ "area[href]",
+ "button:not([disabled])",
+ "iframe",
+ "input:not([disabled])",
+ "select:not([disabled])",
+ "textarea:not([disabled])"
+].map(
+ false ? (
+ // TODO: Remove this once JSDOM fixes the issue where an element that is
+ // "hidden" can be the document.activeElement, because this is not possible
+ // in real browsers.
+ 0
+ ) : (selector) => `${selector}:not([tabindex='-1'])`
+).join(",");
+function getFocusableElements(container = document.body) {
+ if (container == null)
+ return [];
+ return Array.from(container.querySelectorAll(focusableSelector)).sort(
+ // We want to move `tabIndex={0}` to the end of the list, this is what the browser does as well.
+ (a, z) => Math.sign((a.tabIndex || Number.MAX_SAFE_INTEGER) - (z.tabIndex || Number.MAX_SAFE_INTEGER))
+ );
+}
+function isFocusableElement(element, mode = 0 /* Strict */) {
+ var _a3;
+ if (element === ((_a3 = getOwnerDocument(element)) == null ? void 0 : _a3.body))
+ return false;
+ return match(mode, {
+ [0 /* Strict */]() {
+ return element.matches(focusableSelector);
+ },
+ [1 /* Loose */]() {
+ let next = element;
+ while (next !== null) {
+ if (next.matches(focusableSelector))
+ return true;
+ next = next.parentElement;
+ }
+ return false;
+ }
+ });
+}
+function restoreFocusIfNecessary(element) {
+ let ownerDocument = getOwnerDocument(element);
+ disposables().nextFrame(() => {
+ if (ownerDocument && !isFocusableElement(ownerDocument.activeElement, 0 /* Strict */)) {
+ focusElement(element);
+ }
+ });
+}
+if (typeof window !== "undefined" && typeof document !== "undefined") {
+ document.addEventListener(
+ "keydown",
+ (event) => {
+ if (event.metaKey || event.altKey || event.ctrlKey) {
+ return;
+ }
+ document.documentElement.dataset.headlessuiFocusVisible = "";
+ },
+ true
+ );
+ document.addEventListener(
+ "click",
+ (event) => {
+ if (event.detail === 1 /* Mouse */) {
+ delete document.documentElement.dataset.headlessuiFocusVisible;
+ } else if (event.detail === 0 /* Keyboard */) {
+ document.documentElement.dataset.headlessuiFocusVisible = "";
+ }
+ },
+ true
+ );
+}
+function focusElement(element) {
+ element == null ? void 0 : element.focus({ preventScroll: true });
+}
+var selectableSelector = ["textarea", "input"].join(",");
+function isSelectableElement(element) {
+ var _a3, _b;
+ return (_b = (_a3 = element == null ? void 0 : element.matches) == null ? void 0 : _a3.call(element, selectableSelector)) != null ? _b : false;
+}
+function sortByDomNode(nodes, resolveKey = (i) => i) {
+ return nodes.slice().sort((aItem, zItem) => {
+ let a = resolveKey(aItem);
+ let z = resolveKey(zItem);
+ if (a === null || z === null)
+ return 0;
+ let position = a.compareDocumentPosition(z);
+ if (position & Node.DOCUMENT_POSITION_FOLLOWING)
+ return -1;
+ if (position & Node.DOCUMENT_POSITION_PRECEDING)
+ return 1;
+ return 0;
+ });
+}
+function focusFrom(current, focus) {
+ return focusIn(getFocusableElements(), focus, { relativeTo: current });
+}
+function focusIn(container, focus, {
+ sorted = true,
+ relativeTo = null,
+ skipElements = []
+} = {}) {
+ let ownerDocument = Array.isArray(container) ? container.length > 0 ? container[0].ownerDocument : document : container.ownerDocument;
+ let elements = Array.isArray(container) ? sorted ? sortByDomNode(container) : container : getFocusableElements(container);
+ if (skipElements.length > 0 && elements.length > 1) {
+ elements = elements.filter((x) => !skipElements.includes(x));
+ }
+ relativeTo = relativeTo != null ? relativeTo : ownerDocument.activeElement;
+ let direction = (() => {
+ if (focus & (1 /* First */ | 4 /* Next */))
+ return 1 /* Next */;
+ if (focus & (2 /* Previous */ | 8 /* Last */))
+ return -1 /* Previous */;
+ throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last");
+ })();
+ let startIndex = (() => {
+ if (focus & 1 /* First */)
+ return 0;
+ if (focus & 2 /* Previous */)
+ return Math.max(0, elements.indexOf(relativeTo)) - 1;
+ if (focus & 4 /* Next */)
+ return Math.max(0, elements.indexOf(relativeTo)) + 1;
+ if (focus & 8 /* Last */)
+ return elements.length - 1;
+ throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last");
+ })();
+ let focusOptions = focus & 32 /* NoScroll */ ? { preventScroll: true } : {};
+ let offset = 0;
+ let total = elements.length;
+ let next = void 0;
+ do {
+ if (offset >= total || offset + total <= 0)
+ return 0 /* Error */;
+ let nextIdx = startIndex + offset;
+ if (focus & 16 /* WrapAround */) {
+ nextIdx = (nextIdx + total) % total;
+ } else {
+ if (nextIdx < 0)
+ return 3 /* Underflow */;
+ if (nextIdx >= total)
+ return 1 /* Overflow */;
+ }
+ next = elements[nextIdx];
+ next == null ? void 0 : next.focus(focusOptions);
+ offset += direction;
+ } while (next !== ownerDocument.activeElement);
+ if (focus & (4 /* Next */ | 2 /* Previous */) && isSelectableElement(next)) {
+ next.select();
+ }
+ return 2 /* Success */;
+}
+
+// src/hooks/use-document-event.ts
+var import_react8 = __webpack_require__(/*! react */ "react");
+function useDocumentEvent(type, listener, options) {
+ let listenerRef = useLatestValue(listener);
+ (0, import_react8.useEffect)(() => {
+ function handler(event) {
+ listenerRef.current(event);
+ }
+ document.addEventListener(type, handler, options);
+ return () => document.removeEventListener(type, handler, options);
+ }, [type, options]);
+}
+
+// src/hooks/use-window-event.ts
+var import_react9 = __webpack_require__(/*! react */ "react");
+function useWindowEvent(type, listener, options) {
+ let listenerRef = useLatestValue(listener);
+ (0, import_react9.useEffect)(() => {
+ function handler(event) {
+ listenerRef.current(event);
+ }
+ window.addEventListener(type, handler, options);
+ return () => window.removeEventListener(type, handler, options);
+ }, [type, options]);
+}
+
+// src/hooks/use-outside-click.ts
+function useOutsideClick(containers, cb, enabled = true) {
+ let enabledRef = (0, import_react10.useRef)(false);
+ (0, import_react10.useEffect)(
+ false ? 0 : () => {
+ requestAnimationFrame(() => {
+ enabledRef.current = enabled;
+ });
+ },
+ [enabled]
+ );
+ function handleOutsideClick(event, resolveTarget) {
+ if (!enabledRef.current)
+ return;
+ if (event.defaultPrevented)
+ return;
+ let target = resolveTarget(event);
+ if (target === null) {
+ return;
+ }
+ if (!target.getRootNode().contains(target))
+ return;
+ let _containers = function resolve(containers2) {
+ if (typeof containers2 === "function") {
+ return resolve(containers2());
+ }
+ if (Array.isArray(containers2)) {
+ return containers2;
+ }
+ if (containers2 instanceof Set) {
+ return containers2;
+ }
+ return [containers2];
+ }(containers);
+ for (let container of _containers) {
+ if (container === null)
+ continue;
+ let domNode = container instanceof HTMLElement ? container : container.current;
+ if (domNode == null ? void 0 : domNode.contains(target)) {
+ return;
+ }
+ if (event.composed && event.composedPath().includes(domNode)) {
+ return;
+ }
+ }
+ if (
+ // This check alllows us to know whether or not we clicked on a "focusable" element like a
+ // button or an input. This is a backwards compatibility check so that you can open a
and click on another which should close Menu A and open Menu B. We might
+ // revisit that so that you will require 2 clicks instead.
+ !isFocusableElement(target, 1 /* Loose */) && // This could be improved, but the `Combobox.Button` adds tabIndex={-1} to make it
+ // unfocusable via the keyboard so that tabbing to the next item from the input doesn't
+ // first go to the button.
+ target.tabIndex !== -1
+ ) {
+ event.preventDefault();
+ }
+ return cb(event, target);
+ }
+ let initialClickTarget = (0, import_react10.useRef)(null);
+ useDocumentEvent(
+ "mousedown",
+ (event) => {
+ var _a3, _b;
+ if (enabledRef.current) {
+ initialClickTarget.current = ((_b = (_a3 = event.composedPath) == null ? void 0 : _a3.call(event)) == null ? void 0 : _b[0]) || event.target;
+ }
+ },
+ true
+ );
+ useDocumentEvent(
+ "click",
+ (event) => {
+ if (!initialClickTarget.current) {
+ return;
+ }
+ handleOutsideClick(event, () => {
+ return initialClickTarget.current;
+ });
+ initialClickTarget.current = null;
+ },
+ // We will use the `capture` phase so that layers in between with `event.stopPropagation()`
+ // don't "cancel" this outside click check. E.g.: A `Menu` inside a `DialogPanel` if the `Menu`
+ // is open, and you click outside of it in the `DialogPanel` the `Menu` should close. However,
+ // the `DialogPanel` has a `onClick(e) { e.stopPropagation() }` which would cancel this.
+ true
+ );
+ useWindowEvent(
+ "blur",
+ (event) => handleOutsideClick(
+ event,
+ () => window.document.activeElement instanceof HTMLIFrameElement ? window.document.activeElement : null
+ ),
+ true
+ );
+}
+
+// src/hooks/use-resolve-button-type.ts
+var import_react11 = __webpack_require__(/*! react */ "react");
+function resolveType(props) {
+ var _a3;
+ if (props.type)
+ return props.type;
+ let tag = (_a3 = props.as) != null ? _a3 : "button";
+ if (typeof tag === "string" && tag.toLowerCase() === "button")
+ return "button";
+ return void 0;
+}
+function useResolveButtonType(props, ref) {
+ let [type, setType] = (0, import_react11.useState)(() => resolveType(props));
+ useIsoMorphicEffect(() => {
+ setType(resolveType(props));
+ }, [props.type, props.as]);
+ useIsoMorphicEffect(() => {
+ if (type)
+ return;
+ if (!ref.current)
+ return;
+ if (ref.current instanceof HTMLButtonElement && !ref.current.hasAttribute("type")) {
+ setType("button");
+ }
+ }, [type, ref]);
+ return type;
+}
+
+// src/hooks/use-sync-refs.ts
+var import_react12 = __webpack_require__(/*! react */ "react");
+var Optional = Symbol();
+function optionalRef(cb, isOptional = true) {
+ return Object.assign(cb, { [Optional]: isOptional });
+}
+function useSyncRefs(...refs) {
+ let cache = (0, import_react12.useRef)(refs);
+ (0, import_react12.useEffect)(() => {
+ cache.current = refs;
+ }, [refs]);
+ let syncRefs = useEvent((value) => {
+ for (let ref of cache.current) {
+ if (ref == null)
+ continue;
+ if (typeof ref === "function")
+ ref(value);
+ else
+ ref.current = value;
+ }
+ });
+ return refs.every(
+ (ref) => ref == null || // @ts-expect-error
+ (ref == null ? void 0 : ref[Optional])
+ ) ? void 0 : syncRefs;
+}
+
+// src/hooks/use-tree-walker.ts
+var import_react13 = __webpack_require__(/*! react */ "react");
+function useTreeWalker({
+ container,
+ accept,
+ walk,
+ enabled = true
+}) {
+ let acceptRef = (0, import_react13.useRef)(accept);
+ let walkRef = (0, import_react13.useRef)(walk);
+ (0, import_react13.useEffect)(() => {
+ acceptRef.current = accept;
+ walkRef.current = walk;
+ }, [accept, walk]);
+ useIsoMorphicEffect(() => {
+ if (!container)
+ return;
+ if (!enabled)
+ return;
+ let ownerDocument = getOwnerDocument(container);
+ if (!ownerDocument)
+ return;
+ let accept2 = acceptRef.current;
+ let walk2 = walkRef.current;
+ let acceptNode = Object.assign((node) => accept2(node), { acceptNode: accept2 });
+ let walker = ownerDocument.createTreeWalker(
+ container,
+ NodeFilter.SHOW_ELEMENT,
+ acceptNode,
+ // @ts-expect-error This `false` is a simple small fix for older browsers
+ false
+ );
+ while (walker.nextNode())
+ walk2(walker.currentNode);
+ }, [container, enabled, acceptRef, walkRef]);
+}
+
+// src/utils/calculate-active-index.ts
+function assertNever(x) {
+ throw new Error("Unexpected object: " + x);
+}
+function calculateActiveIndex(action, resolvers) {
+ let items = resolvers.resolveItems();
+ if (items.length <= 0)
+ return null;
+ let currentActiveIndex = resolvers.resolveActiveIndex();
+ let activeIndex = currentActiveIndex != null ? currentActiveIndex : -1;
+ let nextActiveIndex = (() => {
+ switch (action.focus) {
+ case 0 /* First */:
+ return items.findIndex((item) => !resolvers.resolveDisabled(item));
+ case 1 /* Previous */: {
+ let idx = items.slice().reverse().findIndex((item, idx2, all) => {
+ if (activeIndex !== -1 && all.length - idx2 - 1 >= activeIndex)
+ return false;
+ return !resolvers.resolveDisabled(item);
+ });
+ if (idx === -1)
+ return idx;
+ return items.length - 1 - idx;
+ }
+ case 2 /* Next */:
+ return items.findIndex((item, idx) => {
+ if (idx <= activeIndex)
+ return false;
+ return !resolvers.resolveDisabled(item);
+ });
+ case 3 /* Last */: {
+ let idx = items.slice().reverse().findIndex((item) => !resolvers.resolveDisabled(item));
+ if (idx === -1)
+ return idx;
+ return items.length - 1 - idx;
+ }
+ case 4 /* Specific */:
+ return items.findIndex((item) => resolvers.resolveId(item) === action.id);
+ case 5 /* Nothing */:
+ return null;
+ default:
+ assertNever(action);
+ }
+ })();
+ return nextActiveIndex === -1 ? currentActiveIndex : nextActiveIndex;
+}
+
+// src/utils/render.ts
+var import_react14 = __webpack_require__(/*! react */ "react");
+
+// src/utils/class-names.ts
+function classNames(...classes) {
+ return classes.filter(Boolean).join(" ");
+}
+
+// src/utils/render.ts
+function render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag,
+ features,
+ visible = true,
+ name
+}) {
+ let props = mergeProps(theirProps, ourProps);
+ if (visible)
+ return _render(props, slot, defaultTag, name);
+ let featureFlags = features != null ? features : 0 /* None */;
+ if (featureFlags & 2 /* Static */) {
+ let { static: isStatic = false, ...rest } = props;
+ if (isStatic)
+ return _render(rest, slot, defaultTag, name);
+ }
+ if (featureFlags & 1 /* RenderStrategy */) {
+ let { unmount = true, ...rest } = props;
+ let strategy = unmount ? 0 /* Unmount */ : 1 /* Hidden */;
+ return match(strategy, {
+ [0 /* Unmount */]() {
+ return null;
+ },
+ [1 /* Hidden */]() {
+ return _render(
+ { ...rest, ...{ hidden: true, style: { display: "none" } } },
+ slot,
+ defaultTag,
+ name
+ );
+ }
+ });
+ }
+ return _render(props, slot, defaultTag, name);
+}
+function _render(props, slot = {}, tag, name) {
+ let {
+ as: Component = tag,
+ children,
+ refName = "ref",
+ ...rest
+ } = omit(props, ["unmount", "static"]);
+ let refRelatedProps = props.ref !== void 0 ? { [refName]: props.ref } : {};
+ let resolvedChildren = typeof children === "function" ? children(slot) : children;
+ if ("className" in rest && rest.className && typeof rest.className === "function") {
+ rest.className = rest.className(slot);
+ }
+ let dataAttributes = {};
+ if (slot) {
+ let exposeState = false;
+ let states = [];
+ for (let [k, v] of Object.entries(slot)) {
+ if (typeof v === "boolean") {
+ exposeState = true;
+ }
+ if (v === true) {
+ states.push(k);
+ }
+ }
+ if (exposeState)
+ dataAttributes[`data-headlessui-state`] = states.join(" ");
+ }
+ if (Component === import_react14.Fragment) {
+ if (Object.keys(compact(rest)).length > 0) {
+ if (!(0, import_react14.isValidElement)(resolvedChildren) || Array.isArray(resolvedChildren) && resolvedChildren.length > 1) {
+ throw new Error(
+ [
+ 'Passing props on "Fragment"!',
+ "",
+ `The current component <${name} /> is rendering a "Fragment".`,
+ `However we need to passthrough the following props:`,
+ Object.keys(rest).map((line) => ` - ${line}`).join("\n"),
+ "",
+ "You can apply a few solutions:",
+ [
+ 'Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',
+ "Render a single element as the child so that we can forward the props onto that element."
+ ].map((line) => ` - ${line}`).join("\n")
+ ].join("\n")
+ );
+ }
+ let childProps = resolvedChildren.props;
+ let newClassName = typeof (childProps == null ? void 0 : childProps.className) === "function" ? (...args) => classNames(childProps == null ? void 0 : childProps.className(...args), rest.className) : classNames(childProps == null ? void 0 : childProps.className, rest.className);
+ let classNameProps = newClassName ? { className: newClassName } : {};
+ return (0, import_react14.cloneElement)(
+ resolvedChildren,
+ Object.assign(
+ {},
+ // Filter out undefined values so that they don't override the existing values
+ mergeProps(resolvedChildren.props, compact(omit(rest, ["ref"]))),
+ dataAttributes,
+ refRelatedProps,
+ mergeRefs(resolvedChildren.ref, refRelatedProps.ref),
+ classNameProps
+ )
+ );
+ }
+ }
+ return (0, import_react14.createElement)(
+ Component,
+ Object.assign(
+ {},
+ omit(rest, ["ref"]),
+ Component !== import_react14.Fragment && refRelatedProps,
+ Component !== import_react14.Fragment && dataAttributes
+ ),
+ resolvedChildren
+ );
+}
+function mergeRefs(...refs) {
+ return {
+ ref: refs.every((ref) => ref == null) ? void 0 : (value) => {
+ for (let ref of refs) {
+ if (ref == null)
+ continue;
+ if (typeof ref === "function")
+ ref(value);
+ else
+ ref.current = value;
+ }
+ }
+ };
+}
+function mergeProps(...listOfProps) {
+ var _a3;
+ if (listOfProps.length === 0)
+ return {};
+ if (listOfProps.length === 1)
+ return listOfProps[0];
+ let target = {};
+ let eventHandlers = {};
+ for (let props of listOfProps) {
+ for (let prop in props) {
+ if (prop.startsWith("on") && typeof props[prop] === "function") {
+ (_a3 = eventHandlers[prop]) != null ? _a3 : eventHandlers[prop] = [];
+ eventHandlers[prop].push(props[prop]);
+ } else {
+ target[prop] = props[prop];
+ }
+ }
+ }
+ if (target.disabled || target["aria-disabled"]) {
+ return Object.assign(
+ target,
+ // Set all event listeners that we collected to `undefined`. This is
+ // important because of the `cloneElement` from above, which merges the
+ // existing and new props, they don't just override therefore we have to
+ // explicitly nullify them.
+ Object.fromEntries(Object.keys(eventHandlers).map((eventName) => [eventName, void 0]))
+ );
+ }
+ for (let eventName in eventHandlers) {
+ Object.assign(target, {
+ [eventName](event, ...args) {
+ let handlers = eventHandlers[eventName];
+ for (let handler of handlers) {
+ if ((event instanceof Event || (event == null ? void 0 : event.nativeEvent) instanceof Event) && event.defaultPrevented) {
+ return;
+ }
+ handler(event, ...args);
+ }
+ }
+ });
+ }
+ return target;
+}
+function forwardRefWithAs(component) {
+ var _a3;
+ return Object.assign((0, import_react14.forwardRef)(component), {
+ displayName: (_a3 = component.displayName) != null ? _a3 : component.name
+ });
+}
+function compact(object) {
+ let clone = Object.assign({}, object);
+ for (let key in clone) {
+ if (clone[key] === void 0)
+ delete clone[key];
+ }
+ return clone;
+}
+function omit(object, keysToOmit = []) {
+ let clone = Object.assign({}, object);
+ for (let key of keysToOmit) {
+ if (key in clone)
+ delete clone[key];
+ }
+ return clone;
+}
+
+// src/utils/bugs.ts
+function isDisabledReactIssue7711(element) {
+ let parent = element.parentElement;
+ let legend = null;
+ while (parent && !(parent instanceof HTMLFieldSetElement)) {
+ if (parent instanceof HTMLLegendElement)
+ legend = parent;
+ parent = parent.parentElement;
+ }
+ let isParentDisabled = (parent == null ? void 0 : parent.getAttribute("disabled")) === "";
+ if (isParentDisabled && isFirstLegend(legend))
+ return false;
+ return isParentDisabled;
+}
+function isFirstLegend(element) {
+ if (!element)
+ return false;
+ let previous = element.previousElementSibling;
+ while (previous !== null) {
+ if (previous instanceof HTMLLegendElement)
+ return false;
+ previous = previous.previousElementSibling;
+ }
+ return true;
+}
+
+// src/utils/form.ts
+function objectToFormEntries(source = {}, parentKey = null, entries = []) {
+ for (let [key, value] of Object.entries(source)) {
+ append(entries, composeKey(parentKey, key), value);
+ }
+ return entries;
+}
+function composeKey(parent, key) {
+ return parent ? parent + "[" + key + "]" : key;
+}
+function append(entries, key, value) {
+ if (Array.isArray(value)) {
+ for (let [subkey, subvalue] of value.entries()) {
+ append(entries, composeKey(key, subkey.toString()), subvalue);
+ }
+ } else if (value instanceof Date) {
+ entries.push([key, value.toISOString()]);
+ } else if (typeof value === "boolean") {
+ entries.push([key, value ? "1" : "0"]);
+ } else if (typeof value === "string") {
+ entries.push([key, value]);
+ } else if (typeof value === "number") {
+ entries.push([key, `${value}`]);
+ } else if (value === null || value === void 0) {
+ entries.push([key, ""]);
+ } else {
+ objectToFormEntries(value, key, entries);
+ }
+}
+function attemptSubmit(element) {
+ var _a3;
+ let form = (_a3 = element == null ? void 0 : element.form) != null ? _a3 : element.closest("form");
+ if (!form)
+ return;
+ for (let element2 of form.elements) {
+ if (element2.tagName === "INPUT" && element2.type === "submit" || element2.tagName === "BUTTON" && element2.type === "submit" || element2.nodeName === "INPUT" && element2.type === "image") {
+ element2.click();
+ return;
+ }
+ }
+}
+
+// src/internal/hidden.tsx
+var DEFAULT_VISUALLY_HIDDEN_TAG = "div";
+function VisuallyHidden(props, ref) {
+ let { features = 1 /* None */, ...theirProps } = props;
+ let ourProps = {
+ ref,
+ "aria-hidden": (features & 2 /* Focusable */) === 2 /* Focusable */ ? true : void 0,
+ style: {
+ position: "fixed",
+ top: 1,
+ left: 1,
+ width: 1,
+ height: 0,
+ padding: 0,
+ margin: -1,
+ overflow: "hidden",
+ clip: "rect(0, 0, 0, 0)",
+ whiteSpace: "nowrap",
+ borderWidth: "0",
+ ...(features & 4 /* Hidden */) === 4 /* Hidden */ && !((features & 2 /* Focusable */) === 2 /* Focusable */) && { display: "none" }
+ }
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot: {},
+ defaultTag: DEFAULT_VISUALLY_HIDDEN_TAG,
+ name: "Hidden"
+ });
+}
+var Hidden = forwardRefWithAs(VisuallyHidden);
+
+// src/internal/open-closed.tsx
+var import_react15 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+var Context = (0, import_react15.createContext)(null);
+Context.displayName = "OpenClosedContext";
+function useOpenClosed() {
+ return (0, import_react15.useContext)(Context);
+}
+function OpenClosedProvider({ value, children }) {
+ return /* @__PURE__ */ import_react15.default.createElement(Context.Provider, { value }, children);
+}
+
+// src/hooks/use-controllable.ts
+var import_react16 = __webpack_require__(/*! react */ "react");
+function useControllable(controlledValue, onChange, defaultValue) {
+ let [internalValue, setInternalValue] = (0, import_react16.useState)(defaultValue);
+ let isControlled = controlledValue !== void 0;
+ let wasControlled = (0, import_react16.useRef)(isControlled);
+ let didWarnOnUncontrolledToControlled = (0, import_react16.useRef)(false);
+ let didWarnOnControlledToUncontrolled = (0, import_react16.useRef)(false);
+ if (isControlled && !wasControlled.current && !didWarnOnUncontrolledToControlled.current) {
+ didWarnOnUncontrolledToControlled.current = true;
+ wasControlled.current = isControlled;
+ console.error(
+ "A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen."
+ );
+ } else if (!isControlled && wasControlled.current && !didWarnOnControlledToUncontrolled.current) {
+ didWarnOnControlledToUncontrolled.current = true;
+ wasControlled.current = isControlled;
+ console.error(
+ "A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen."
+ );
+ }
+ return [
+ isControlled ? controlledValue : internalValue,
+ useEvent((value) => {
+ if (isControlled) {
+ return onChange == null ? void 0 : onChange(value);
+ } else {
+ setInternalValue(value);
+ return onChange == null ? void 0 : onChange(value);
+ }
+ })
+ ];
+}
+
+// src/hooks/use-watch.ts
+var import_react17 = __webpack_require__(/*! react */ "react");
+function useWatch(cb, dependencies) {
+ let track = (0, import_react17.useRef)([]);
+ let action = useEvent(cb);
+ (0, import_react17.useEffect)(() => {
+ let oldValues = [...track.current];
+ for (let [idx, value] of dependencies.entries()) {
+ if (track.current[idx] !== value) {
+ let returnValue = action(dependencies, oldValues);
+ track.current = dependencies;
+ return returnValue;
+ }
+ }
+ }, [action, ...dependencies]);
+}
+
+// src/hooks/use-tracked-pointer.ts
+var import_react18 = __webpack_require__(/*! react */ "react");
+function eventToPosition(evt) {
+ return [evt.screenX, evt.screenY];
+}
+function useTrackedPointer() {
+ let lastPos = (0, import_react18.useRef)([-1, -1]);
+ return {
+ wasMoved(evt) {
+ if (false) {}
+ let newPos = eventToPosition(evt);
+ if (lastPos.current[0] === newPos[0] && lastPos.current[1] === newPos[1]) {
+ return false;
+ }
+ lastPos.current = newPos;
+ return true;
+ },
+ update(evt) {
+ lastPos.current = eventToPosition(evt);
+ }
+ };
+}
+
+// src/utils/platform.ts
+function isIOS() {
+ return (
+ // Check if it is an iPhone
+ /iPhone/gi.test(window.navigator.platform) || // Check if it is an iPad. iPad reports itself as "MacIntel", but we can check if it is a touch
+ // screen. Let's hope that Apple doesn't release a touch screen Mac (or maybe this would then
+ // work as expected 🤔).
+ /Mac/gi.test(window.navigator.platform) && window.navigator.maxTouchPoints > 0
+ );
+}
+function isAndroid() {
+ return /Android/gi.test(window.navigator.userAgent);
+}
+function isMobile() {
+ return isIOS() || isAndroid();
+}
+
+// src/components/combobox/combobox.tsx
+function adjustOrderedState(state, adjustment = (i) => i) {
+ let currentActiveOption = state.activeOptionIndex !== null ? state.options[state.activeOptionIndex] : null;
+ let sortedOptions = sortByDomNode(
+ adjustment(state.options.slice()),
+ (option) => option.dataRef.current.domRef.current
+ );
+ let adjustedActiveOptionIndex = currentActiveOption ? sortedOptions.indexOf(currentActiveOption) : null;
+ if (adjustedActiveOptionIndex === -1) {
+ adjustedActiveOptionIndex = null;
+ }
+ return {
+ options: sortedOptions,
+ activeOptionIndex: adjustedActiveOptionIndex
+ };
+}
+var reducers = {
+ [1 /* CloseCombobox */](state) {
+ var _a3;
+ if ((_a3 = state.dataRef.current) == null ? void 0 : _a3.disabled)
+ return state;
+ if (state.comboboxState === 1 /* Closed */)
+ return state;
+ return { ...state, activeOptionIndex: null, comboboxState: 1 /* Closed */ };
+ },
+ [0 /* OpenCombobox */](state) {
+ var _a3;
+ if ((_a3 = state.dataRef.current) == null ? void 0 : _a3.disabled)
+ return state;
+ if (state.comboboxState === 0 /* Open */)
+ return state;
+ let activeOptionIndex = state.activeOptionIndex;
+ if (state.dataRef.current) {
+ let { isSelected } = state.dataRef.current;
+ let optionIdx = state.options.findIndex((option) => isSelected(option.dataRef.current.value));
+ if (optionIdx !== -1) {
+ activeOptionIndex = optionIdx;
+ }
+ }
+ return { ...state, comboboxState: 0 /* Open */, activeOptionIndex };
+ },
+ [2 /* GoToOption */](state, action) {
+ var _a3, _b, _c, _d;
+ if ((_a3 = state.dataRef.current) == null ? void 0 : _a3.disabled)
+ return state;
+ if (((_b = state.dataRef.current) == null ? void 0 : _b.optionsRef.current) && !((_c = state.dataRef.current) == null ? void 0 : _c.optionsPropsRef.current.static) && state.comboboxState === 1 /* Closed */) {
+ return state;
+ }
+ let adjustedState = adjustOrderedState(state);
+ if (adjustedState.activeOptionIndex === null) {
+ let localActiveOptionIndex = adjustedState.options.findIndex(
+ (option) => !option.dataRef.current.disabled
+ );
+ if (localActiveOptionIndex !== -1) {
+ adjustedState.activeOptionIndex = localActiveOptionIndex;
+ }
+ }
+ let activeOptionIndex = calculateActiveIndex(action, {
+ resolveItems: () => adjustedState.options,
+ resolveActiveIndex: () => adjustedState.activeOptionIndex,
+ resolveId: (item) => item.id,
+ resolveDisabled: (item) => item.dataRef.current.disabled
+ });
+ return {
+ ...state,
+ ...adjustedState,
+ activeOptionIndex,
+ activationTrigger: (_d = action.trigger) != null ? _d : 1 /* Other */
+ };
+ },
+ [3 /* RegisterOption */]: (state, action) => {
+ var _a3, _b;
+ let option = { id: action.id, dataRef: action.dataRef };
+ let adjustedState = adjustOrderedState(state, (options) => [...options, option]);
+ if (state.activeOptionIndex === null) {
+ if ((_a3 = state.dataRef.current) == null ? void 0 : _a3.isSelected(action.dataRef.current.value)) {
+ adjustedState.activeOptionIndex = adjustedState.options.indexOf(option);
+ }
+ }
+ let nextState = {
+ ...state,
+ ...adjustedState,
+ activationTrigger: 1 /* Other */
+ };
+ if (((_b = state.dataRef.current) == null ? void 0 : _b.__demoMode) && state.dataRef.current.value === void 0) {
+ nextState.activeOptionIndex = 0;
+ }
+ return nextState;
+ },
+ [4 /* UnregisterOption */]: (state, action) => {
+ let adjustedState = adjustOrderedState(state, (options) => {
+ let idx = options.findIndex((a) => a.id === action.id);
+ if (idx !== -1)
+ options.splice(idx, 1);
+ return options;
+ });
+ return {
+ ...state,
+ ...adjustedState,
+ activationTrigger: 1 /* Other */
+ };
+ },
+ [5 /* RegisterLabel */]: (state, action) => {
+ return {
+ ...state,
+ labelId: action.id
+ };
+ }
+};
+var ComboboxActionsContext = (0, import_react19.createContext)(null);
+ComboboxActionsContext.displayName = "ComboboxActionsContext";
+function useActions(component) {
+ let context = (0, import_react19.useContext)(ComboboxActionsContext);
+ if (context === null) {
+ let err = new Error(`<${component} /> is missing a parent component.`);
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, useActions);
+ throw err;
+ }
+ return context;
+}
+var ComboboxDataContext = (0, import_react19.createContext)(null);
+ComboboxDataContext.displayName = "ComboboxDataContext";
+function useData(component) {
+ let context = (0, import_react19.useContext)(ComboboxDataContext);
+ if (context === null) {
+ let err = new Error(`<${component} /> is missing a parent component.`);
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, useData);
+ throw err;
+ }
+ return context;
+}
+function stateReducer(state, action) {
+ return match(action.type, reducers, state, action);
+}
+var DEFAULT_COMBOBOX_TAG = import_react19.Fragment;
+function ComboboxFn(props, ref) {
+ let {
+ value: controlledValue,
+ defaultValue,
+ onChange: controlledOnChange,
+ form: formName,
+ name,
+ by = (a, z) => a === z,
+ disabled = false,
+ __demoMode = false,
+ nullable = false,
+ multiple = false,
+ ...theirProps
+ } = props;
+ let [value = multiple ? [] : void 0, theirOnChange] = useControllable(
+ controlledValue,
+ controlledOnChange,
+ defaultValue
+ );
+ let [state, dispatch] = (0, import_react19.useReducer)(stateReducer, {
+ dataRef: (0, import_react19.createRef)(),
+ comboboxState: __demoMode ? 0 /* Open */ : 1 /* Closed */,
+ options: [],
+ activeOptionIndex: null,
+ activationTrigger: 1 /* Other */,
+ labelId: null
+ });
+ let defaultToFirstOption = (0, import_react19.useRef)(false);
+ let optionsPropsRef = (0, import_react19.useRef)({ static: false, hold: false });
+ let labelRef = (0, import_react19.useRef)(null);
+ let inputRef = (0, import_react19.useRef)(null);
+ let buttonRef = (0, import_react19.useRef)(null);
+ let optionsRef = (0, import_react19.useRef)(null);
+ let compare = useEvent(
+ // @ts-expect-error Eventually we'll want to tackle this, but for now this will do.
+ typeof by === "string" ? (a, z) => {
+ let property = by;
+ return (a == null ? void 0 : a[property]) === (z == null ? void 0 : z[property]);
+ } : by
+ );
+ let isSelected = (0, import_react19.useCallback)(
+ (compareValue) => match(data.mode, {
+ [1 /* Multi */]: () => value.some((option) => compare(option, compareValue)),
+ [0 /* Single */]: () => compare(value, compareValue)
+ }),
+ [value]
+ );
+ let data = (0, import_react19.useMemo)(
+ () => ({
+ ...state,
+ optionsPropsRef,
+ labelRef,
+ inputRef,
+ buttonRef,
+ optionsRef,
+ value,
+ defaultValue,
+ disabled,
+ mode: multiple ? 1 /* Multi */ : 0 /* Single */,
+ get activeOptionIndex() {
+ if (defaultToFirstOption.current && state.activeOptionIndex === null && state.options.length > 0) {
+ let localActiveOptionIndex = state.options.findIndex(
+ (option) => !option.dataRef.current.disabled
+ );
+ if (localActiveOptionIndex !== -1) {
+ return localActiveOptionIndex;
+ }
+ }
+ return state.activeOptionIndex;
+ },
+ compare,
+ isSelected,
+ nullable,
+ __demoMode
+ }),
+ [value, defaultValue, disabled, multiple, nullable, __demoMode, state]
+ );
+ let lastActiveOption = (0, import_react19.useRef)(
+ data.activeOptionIndex !== null ? data.options[data.activeOptionIndex] : null
+ );
+ (0, import_react19.useEffect)(() => {
+ let currentActiveOption = data.activeOptionIndex !== null ? data.options[data.activeOptionIndex] : null;
+ if (lastActiveOption.current !== currentActiveOption) {
+ lastActiveOption.current = currentActiveOption;
+ }
+ });
+ useIsoMorphicEffect(() => {
+ state.dataRef.current = data;
+ }, [data]);
+ useOutsideClick(
+ [data.buttonRef, data.inputRef, data.optionsRef],
+ () => actions.closeCombobox(),
+ data.comboboxState === 0 /* Open */
+ );
+ let slot = (0, import_react19.useMemo)(
+ () => ({
+ open: data.comboboxState === 0 /* Open */,
+ disabled,
+ activeIndex: data.activeOptionIndex,
+ activeOption: data.activeOptionIndex === null ? null : data.options[data.activeOptionIndex].dataRef.current.value,
+ value
+ }),
+ [data, disabled, value]
+ );
+ let selectOption = useEvent((id) => {
+ let option = data.options.find((item) => item.id === id);
+ if (!option)
+ return;
+ onChange(option.dataRef.current.value);
+ });
+ let selectActiveOption = useEvent(() => {
+ if (data.activeOptionIndex !== null) {
+ let { dataRef, id } = data.options[data.activeOptionIndex];
+ onChange(dataRef.current.value);
+ actions.goToOption(4 /* Specific */, id);
+ }
+ });
+ let openCombobox = useEvent(() => {
+ dispatch({ type: 0 /* OpenCombobox */ });
+ defaultToFirstOption.current = true;
+ });
+ let closeCombobox = useEvent(() => {
+ dispatch({ type: 1 /* CloseCombobox */ });
+ defaultToFirstOption.current = false;
+ });
+ let goToOption = useEvent((focus, id, trigger) => {
+ defaultToFirstOption.current = false;
+ if (focus === 4 /* Specific */) {
+ return dispatch({ type: 2 /* GoToOption */, focus: 4 /* Specific */, id, trigger });
+ }
+ return dispatch({ type: 2 /* GoToOption */, focus, trigger });
+ });
+ let registerOption = useEvent((id, dataRef) => {
+ dispatch({ type: 3 /* RegisterOption */, id, dataRef });
+ return () => {
+ var _a3;
+ if (((_a3 = lastActiveOption.current) == null ? void 0 : _a3.id) === id) {
+ defaultToFirstOption.current = true;
+ }
+ dispatch({ type: 4 /* UnregisterOption */, id });
+ };
+ });
+ let registerLabel = useEvent((id) => {
+ dispatch({ type: 5 /* RegisterLabel */, id });
+ return () => dispatch({ type: 5 /* RegisterLabel */, id: null });
+ });
+ let onChange = useEvent((value2) => {
+ return match(data.mode, {
+ [0 /* Single */]() {
+ return theirOnChange == null ? void 0 : theirOnChange(value2);
+ },
+ [1 /* Multi */]() {
+ let copy = data.value.slice();
+ let idx = copy.findIndex((item) => compare(item, value2));
+ if (idx === -1) {
+ copy.push(value2);
+ } else {
+ copy.splice(idx, 1);
+ }
+ return theirOnChange == null ? void 0 : theirOnChange(copy);
+ }
+ });
+ });
+ let actions = (0, import_react19.useMemo)(
+ () => ({
+ onChange,
+ registerOption,
+ registerLabel,
+ goToOption,
+ closeCombobox,
+ openCombobox,
+ selectActiveOption,
+ selectOption
+ }),
+ []
+ );
+ let ourProps = ref === null ? {} : { ref };
+ let form = (0, import_react19.useRef)(null);
+ let d = useDisposables();
+ (0, import_react19.useEffect)(() => {
+ if (!form.current)
+ return;
+ if (defaultValue === void 0)
+ return;
+ d.addEventListener(form.current, "reset", () => {
+ onChange(defaultValue);
+ });
+ }, [
+ form,
+ onChange
+ /* Explicitly ignoring `defaultValue` */
+ ]);
+ return /* @__PURE__ */ import_react19.default.createElement(ComboboxActionsContext.Provider, { value: actions }, /* @__PURE__ */ import_react19.default.createElement(ComboboxDataContext.Provider, { value: data }, /* @__PURE__ */ import_react19.default.createElement(
+ OpenClosedProvider,
+ {
+ value: match(data.comboboxState, {
+ [0 /* Open */]: 1 /* Open */,
+ [1 /* Closed */]: 2 /* Closed */
+ })
+ },
+ name != null && value != null && objectToFormEntries({ [name]: value }).map(([name2, value2], idx) => /* @__PURE__ */ import_react19.default.createElement(
+ Hidden,
+ {
+ features: 4 /* Hidden */,
+ ref: idx === 0 ? (element) => {
+ var _a3;
+ form.current = (_a3 = element == null ? void 0 : element.closest("form")) != null ? _a3 : null;
+ } : void 0,
+ ...compact({
+ key: name2,
+ as: "input",
+ type: "hidden",
+ hidden: true,
+ readOnly: true,
+ form: formName,
+ name: name2,
+ value: value2
+ })
+ }
+ )),
+ render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_COMBOBOX_TAG,
+ name: "Combobox"
+ })
+ )));
+}
+var DEFAULT_INPUT_TAG = "input";
+function InputFn(props, ref) {
+ var _a3, _b, _c, _d;
+ let internalId = useId();
+ let {
+ id = `headlessui-combobox-input-${internalId}`,
+ onChange,
+ displayValue,
+ // @ts-ignore: We know this MAY NOT exist for a given tag but we only care when it _does_ exist.
+ type = "text",
+ ...theirProps
+ } = props;
+ let data = useData("Combobox.Input");
+ let actions = useActions("Combobox.Input");
+ let inputRef = useSyncRefs(data.inputRef, ref);
+ let isTyping = (0, import_react19.useRef)(false);
+ let d = useDisposables();
+ let currentDisplayValue = function() {
+ var _a4;
+ if (typeof displayValue === "function" && data.value !== void 0) {
+ return (_a4 = displayValue(data.value)) != null ? _a4 : "";
+ } else if (typeof data.value === "string") {
+ return data.value;
+ } else {
+ return "";
+ }
+ }();
+ useWatch(
+ ([currentDisplayValue2, state], [oldCurrentDisplayValue, oldState]) => {
+ if (isTyping.current)
+ return;
+ if (!data.inputRef.current)
+ return;
+ if (oldState === 0 /* Open */ && state === 1 /* Closed */) {
+ data.inputRef.current.value = currentDisplayValue2;
+ } else if (currentDisplayValue2 !== oldCurrentDisplayValue) {
+ data.inputRef.current.value = currentDisplayValue2;
+ }
+ },
+ [currentDisplayValue, data.comboboxState]
+ );
+ useWatch(
+ ([newState], [oldState]) => {
+ if (newState === 0 /* Open */ && oldState === 1 /* Closed */) {
+ let input = data.inputRef.current;
+ if (!input)
+ return;
+ let currentValue = input.value;
+ let { selectionStart, selectionEnd, selectionDirection } = input;
+ input.value = "";
+ input.value = currentValue;
+ if (selectionDirection !== null) {
+ input.setSelectionRange(selectionStart, selectionEnd, selectionDirection);
+ } else {
+ input.setSelectionRange(selectionStart, selectionEnd);
+ }
+ }
+ },
+ [data.comboboxState]
+ );
+ let isComposing = (0, import_react19.useRef)(false);
+ let composedChangeEvent = (0, import_react19.useRef)(null);
+ let handleCompositionStart = useEvent(() => {
+ isComposing.current = true;
+ });
+ let handleCompositionEnd = useEvent(() => {
+ d.nextFrame(() => {
+ isComposing.current = false;
+ if (composedChangeEvent.current) {
+ actions.openCombobox();
+ onChange == null ? void 0 : onChange(composedChangeEvent.current);
+ composedChangeEvent.current = null;
+ }
+ });
+ });
+ let handleKeyDown = useEvent((event) => {
+ isTyping.current = true;
+ switch (event.key) {
+ case "Backspace" /* Backspace */:
+ case "Delete" /* Delete */:
+ if (data.mode !== 0 /* Single */)
+ return;
+ if (!data.nullable)
+ return;
+ let input = event.currentTarget;
+ d.requestAnimationFrame(() => {
+ if (input.value === "") {
+ actions.onChange(null);
+ if (data.optionsRef.current) {
+ data.optionsRef.current.scrollTop = 0;
+ }
+ actions.goToOption(5 /* Nothing */);
+ }
+ });
+ break;
+ case "Enter" /* Enter */:
+ isTyping.current = false;
+ if (data.comboboxState !== 0 /* Open */)
+ return;
+ if (isComposing.current)
+ return;
+ event.preventDefault();
+ event.stopPropagation();
+ if (data.activeOptionIndex === null) {
+ actions.closeCombobox();
+ return;
+ }
+ actions.selectActiveOption();
+ if (data.mode === 0 /* Single */) {
+ actions.closeCombobox();
+ }
+ break;
+ case "ArrowDown" /* ArrowDown */:
+ isTyping.current = false;
+ event.preventDefault();
+ event.stopPropagation();
+ return match(data.comboboxState, {
+ [0 /* Open */]: () => {
+ actions.goToOption(2 /* Next */);
+ },
+ [1 /* Closed */]: () => {
+ actions.openCombobox();
+ }
+ });
+ case "ArrowUp" /* ArrowUp */:
+ isTyping.current = false;
+ event.preventDefault();
+ event.stopPropagation();
+ return match(data.comboboxState, {
+ [0 /* Open */]: () => {
+ actions.goToOption(1 /* Previous */);
+ },
+ [1 /* Closed */]: () => {
+ actions.openCombobox();
+ d.nextFrame(() => {
+ if (!data.value) {
+ actions.goToOption(3 /* Last */);
+ }
+ });
+ }
+ });
+ case "Home" /* Home */:
+ if (event.shiftKey) {
+ break;
+ }
+ isTyping.current = false;
+ event.preventDefault();
+ event.stopPropagation();
+ return actions.goToOption(0 /* First */);
+ case "PageUp" /* PageUp */:
+ isTyping.current = false;
+ event.preventDefault();
+ event.stopPropagation();
+ return actions.goToOption(0 /* First */);
+ case "End" /* End */:
+ if (event.shiftKey) {
+ break;
+ }
+ isTyping.current = false;
+ event.preventDefault();
+ event.stopPropagation();
+ return actions.goToOption(3 /* Last */);
+ case "PageDown" /* PageDown */:
+ isTyping.current = false;
+ event.preventDefault();
+ event.stopPropagation();
+ return actions.goToOption(3 /* Last */);
+ case "Escape" /* Escape */:
+ isTyping.current = false;
+ if (data.comboboxState !== 0 /* Open */)
+ return;
+ event.preventDefault();
+ if (data.optionsRef.current && !data.optionsPropsRef.current.static) {
+ event.stopPropagation();
+ }
+ return actions.closeCombobox();
+ case "Tab" /* Tab */:
+ isTyping.current = false;
+ if (data.comboboxState !== 0 /* Open */)
+ return;
+ if (data.mode === 0 /* Single */)
+ actions.selectActiveOption();
+ actions.closeCombobox();
+ break;
+ }
+ });
+ let handleChange = useEvent((event) => {
+ if (isComposing.current) {
+ composedChangeEvent.current = event;
+ return;
+ }
+ actions.openCombobox();
+ onChange == null ? void 0 : onChange(event);
+ });
+ let handleBlur = useEvent(() => {
+ isTyping.current = false;
+ });
+ let labelledby = useComputed(() => {
+ if (!data.labelId)
+ return void 0;
+ return [data.labelId].join(" ");
+ }, [data.labelId]);
+ let slot = (0, import_react19.useMemo)(
+ () => ({ open: data.comboboxState === 0 /* Open */, disabled: data.disabled }),
+ [data]
+ );
+ let ourProps = {
+ ref: inputRef,
+ id,
+ role: "combobox",
+ type,
+ "aria-controls": (_a3 = data.optionsRef.current) == null ? void 0 : _a3.id,
+ "aria-expanded": data.disabled ? void 0 : data.comboboxState === 0 /* Open */,
+ "aria-activedescendant": data.activeOptionIndex === null ? void 0 : (_b = data.options[data.activeOptionIndex]) == null ? void 0 : _b.id,
+ "aria-labelledby": labelledby,
+ "aria-autocomplete": "list",
+ defaultValue: (_d = (_c = props.defaultValue) != null ? _c : data.defaultValue !== void 0 ? displayValue == null ? void 0 : displayValue(data.defaultValue) : null) != null ? _d : data.defaultValue,
+ disabled: data.disabled,
+ onCompositionStart: handleCompositionStart,
+ onCompositionEnd: handleCompositionEnd,
+ onKeyDown: handleKeyDown,
+ onChange: handleChange,
+ onBlur: handleBlur
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_INPUT_TAG,
+ name: "Combobox.Input"
+ });
+}
+var DEFAULT_BUTTON_TAG = "button";
+function ButtonFn(props, ref) {
+ var _a3;
+ let data = useData("Combobox.Button");
+ let actions = useActions("Combobox.Button");
+ let buttonRef = useSyncRefs(data.buttonRef, ref);
+ let internalId = useId();
+ let { id = `headlessui-combobox-button-${internalId}`, ...theirProps } = props;
+ let d = useDisposables();
+ let handleKeyDown = useEvent((event) => {
+ switch (event.key) {
+ case "ArrowDown" /* ArrowDown */:
+ event.preventDefault();
+ event.stopPropagation();
+ if (data.comboboxState === 1 /* Closed */) {
+ actions.openCombobox();
+ }
+ return d.nextFrame(() => {
+ var _a4;
+ return (_a4 = data.inputRef.current) == null ? void 0 : _a4.focus({ preventScroll: true });
+ });
+ case "ArrowUp" /* ArrowUp */:
+ event.preventDefault();
+ event.stopPropagation();
+ if (data.comboboxState === 1 /* Closed */) {
+ actions.openCombobox();
+ d.nextFrame(() => {
+ if (!data.value) {
+ actions.goToOption(3 /* Last */);
+ }
+ });
+ }
+ return d.nextFrame(() => {
+ var _a4;
+ return (_a4 = data.inputRef.current) == null ? void 0 : _a4.focus({ preventScroll: true });
+ });
+ case "Escape" /* Escape */:
+ if (data.comboboxState !== 0 /* Open */)
+ return;
+ event.preventDefault();
+ if (data.optionsRef.current && !data.optionsPropsRef.current.static) {
+ event.stopPropagation();
+ }
+ actions.closeCombobox();
+ return d.nextFrame(() => {
+ var _a4;
+ return (_a4 = data.inputRef.current) == null ? void 0 : _a4.focus({ preventScroll: true });
+ });
+ default:
+ return;
+ }
+ });
+ let handleClick = useEvent((event) => {
+ if (isDisabledReactIssue7711(event.currentTarget))
+ return event.preventDefault();
+ if (data.comboboxState === 0 /* Open */) {
+ actions.closeCombobox();
+ } else {
+ event.preventDefault();
+ actions.openCombobox();
+ }
+ d.nextFrame(() => {
+ var _a4;
+ return (_a4 = data.inputRef.current) == null ? void 0 : _a4.focus({ preventScroll: true });
+ });
+ });
+ let labelledby = useComputed(() => {
+ if (!data.labelId)
+ return void 0;
+ return [data.labelId, id].join(" ");
+ }, [data.labelId, id]);
+ let slot = (0, import_react19.useMemo)(
+ () => ({
+ open: data.comboboxState === 0 /* Open */,
+ disabled: data.disabled,
+ value: data.value
+ }),
+ [data]
+ );
+ let ourProps = {
+ ref: buttonRef,
+ id,
+ type: useResolveButtonType(props, data.buttonRef),
+ tabIndex: -1,
+ "aria-haspopup": "listbox",
+ "aria-controls": (_a3 = data.optionsRef.current) == null ? void 0 : _a3.id,
+ "aria-expanded": data.disabled ? void 0 : data.comboboxState === 0 /* Open */,
+ "aria-labelledby": labelledby,
+ disabled: data.disabled,
+ onClick: handleClick,
+ onKeyDown: handleKeyDown
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_BUTTON_TAG,
+ name: "Combobox.Button"
+ });
+}
+var DEFAULT_LABEL_TAG = "label";
+function LabelFn(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-combobox-label-${internalId}`, ...theirProps } = props;
+ let data = useData("Combobox.Label");
+ let actions = useActions("Combobox.Label");
+ let labelRef = useSyncRefs(data.labelRef, ref);
+ useIsoMorphicEffect(() => actions.registerLabel(id), [id]);
+ let handleClick = useEvent(() => {
+ var _a3;
+ return (_a3 = data.inputRef.current) == null ? void 0 : _a3.focus({ preventScroll: true });
+ });
+ let slot = (0, import_react19.useMemo)(
+ () => ({ open: data.comboboxState === 0 /* Open */, disabled: data.disabled }),
+ [data]
+ );
+ let ourProps = { ref: labelRef, id, onClick: handleClick };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_LABEL_TAG,
+ name: "Combobox.Label"
+ });
+}
+var DEFAULT_OPTIONS_TAG = "ul";
+var OptionsRenderFeatures = 1 /* RenderStrategy */ | 2 /* Static */;
+function OptionsFn(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-combobox-options-${internalId}`, hold = false, ...theirProps } = props;
+ let data = useData("Combobox.Options");
+ let optionsRef = useSyncRefs(data.optionsRef, ref);
+ let usesOpenClosedState = useOpenClosed();
+ let visible = (() => {
+ if (usesOpenClosedState !== null) {
+ return (usesOpenClosedState & 1 /* Open */) === 1 /* Open */;
+ }
+ return data.comboboxState === 0 /* Open */;
+ })();
+ useIsoMorphicEffect(() => {
+ var _a3;
+ data.optionsPropsRef.current.static = (_a3 = props.static) != null ? _a3 : false;
+ }, [data.optionsPropsRef, props.static]);
+ useIsoMorphicEffect(() => {
+ data.optionsPropsRef.current.hold = hold;
+ }, [data.optionsPropsRef, hold]);
+ useTreeWalker({
+ container: data.optionsRef.current,
+ enabled: data.comboboxState === 0 /* Open */,
+ accept(node) {
+ if (node.getAttribute("role") === "option")
+ return NodeFilter.FILTER_REJECT;
+ if (node.hasAttribute("role"))
+ return NodeFilter.FILTER_SKIP;
+ return NodeFilter.FILTER_ACCEPT;
+ },
+ walk(node) {
+ node.setAttribute("role", "none");
+ }
+ });
+ let labelledby = useComputed(
+ () => {
+ var _a3, _b;
+ return (_b = data.labelId) != null ? _b : (_a3 = data.buttonRef.current) == null ? void 0 : _a3.id;
+ },
+ [data.labelId, data.buttonRef.current]
+ );
+ let slot = (0, import_react19.useMemo)(
+ () => ({ open: data.comboboxState === 0 /* Open */ }),
+ [data]
+ );
+ let ourProps = {
+ "aria-labelledby": labelledby,
+ role: "listbox",
+ "aria-multiselectable": data.mode === 1 /* Multi */ ? true : void 0,
+ id,
+ ref: optionsRef
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_OPTIONS_TAG,
+ features: OptionsRenderFeatures,
+ visible,
+ name: "Combobox.Options"
+ });
+}
+var DEFAULT_OPTION_TAG = "li";
+function OptionFn(props, ref) {
+ var _a3, _b;
+ let internalId = useId();
+ let {
+ id = `headlessui-combobox-option-${internalId}`,
+ disabled = false,
+ value,
+ ...theirProps
+ } = props;
+ let data = useData("Combobox.Option");
+ let actions = useActions("Combobox.Option");
+ let active = data.activeOptionIndex !== null ? data.options[data.activeOptionIndex].id === id : false;
+ let selected = data.isSelected(value);
+ let internalOptionRef = (0, import_react19.useRef)(null);
+ let bag = useLatestValue({
+ disabled,
+ value,
+ domRef: internalOptionRef,
+ textValue: (_b = (_a3 = internalOptionRef.current) == null ? void 0 : _a3.textContent) == null ? void 0 : _b.toLowerCase()
+ });
+ let optionRef = useSyncRefs(ref, internalOptionRef);
+ let select = useEvent(() => actions.selectOption(id));
+ useIsoMorphicEffect(() => actions.registerOption(id, bag), [bag, id]);
+ let enableScrollIntoView = (0, import_react19.useRef)(data.__demoMode ? false : true);
+ useIsoMorphicEffect(() => {
+ if (!data.__demoMode)
+ return;
+ let d = disposables();
+ d.requestAnimationFrame(() => {
+ enableScrollIntoView.current = true;
+ });
+ return d.dispose;
+ }, []);
+ useIsoMorphicEffect(() => {
+ if (data.comboboxState !== 0 /* Open */)
+ return;
+ if (!active)
+ return;
+ if (!enableScrollIntoView.current)
+ return;
+ if (data.activationTrigger === 0 /* Pointer */)
+ return;
+ let d = disposables();
+ d.requestAnimationFrame(() => {
+ var _a4, _b2;
+ (_b2 = (_a4 = internalOptionRef.current) == null ? void 0 : _a4.scrollIntoView) == null ? void 0 : _b2.call(_a4, { block: "nearest" });
+ });
+ return d.dispose;
+ }, [
+ internalOptionRef,
+ active,
+ data.comboboxState,
+ data.activationTrigger,
+ /* We also want to trigger this when the position of the active item changes so that we can re-trigger the scrollIntoView */
+ data.activeOptionIndex
+ ]);
+ let handleClick = useEvent((event) => {
+ if (disabled)
+ return event.preventDefault();
+ select();
+ if (data.mode === 0 /* Single */) {
+ actions.closeCombobox();
+ }
+ if (!isMobile()) {
+ requestAnimationFrame(() => {
+ var _a4;
+ return (_a4 = data.inputRef.current) == null ? void 0 : _a4.focus();
+ });
+ }
+ });
+ let handleFocus = useEvent(() => {
+ if (disabled)
+ return actions.goToOption(5 /* Nothing */);
+ actions.goToOption(4 /* Specific */, id);
+ });
+ let pointer = useTrackedPointer();
+ let handleEnter = useEvent((evt) => pointer.update(evt));
+ let handleMove = useEvent((evt) => {
+ if (!pointer.wasMoved(evt))
+ return;
+ if (disabled)
+ return;
+ if (active)
+ return;
+ actions.goToOption(4 /* Specific */, id, 0 /* Pointer */);
+ });
+ let handleLeave = useEvent((evt) => {
+ if (!pointer.wasMoved(evt))
+ return;
+ if (disabled)
+ return;
+ if (!active)
+ return;
+ if (data.optionsPropsRef.current.hold)
+ return;
+ actions.goToOption(5 /* Nothing */);
+ });
+ let slot = (0, import_react19.useMemo)(
+ () => ({ active, selected, disabled }),
+ [active, selected, disabled]
+ );
+ let ourProps = {
+ id,
+ ref: optionRef,
+ role: "option",
+ tabIndex: disabled === true ? void 0 : -1,
+ "aria-disabled": disabled === true ? true : void 0,
+ // According to the WAI-ARIA best practices, we should use aria-checked for
+ // multi-select,but Voice-Over disagrees. So we use aria-checked instead for
+ // both single and multi-select.
+ "aria-selected": selected,
+ disabled: void 0,
+ // Never forward the `disabled` prop
+ onClick: handleClick,
+ onFocus: handleFocus,
+ onPointerEnter: handleEnter,
+ onMouseEnter: handleEnter,
+ onPointerMove: handleMove,
+ onMouseMove: handleMove,
+ onPointerLeave: handleLeave,
+ onMouseLeave: handleLeave
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_OPTION_TAG,
+ name: "Combobox.Option"
+ });
+}
+var ComboboxRoot = forwardRefWithAs(ComboboxFn);
+var Button = forwardRefWithAs(ButtonFn);
+var Input = forwardRefWithAs(InputFn);
+var Label = forwardRefWithAs(LabelFn);
+var Options = forwardRefWithAs(OptionsFn);
+var Option = forwardRefWithAs(OptionFn);
+var Combobox = Object.assign(ComboboxRoot, { Input, Button, Label, Options, Option });
+
+// src/components/dialog/dialog.tsx
+var import_react31 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+
+// src/components/focus-trap/focus-trap.tsx
+var import_react25 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+
+// src/hooks/use-tab-direction.ts
+var import_react20 = __webpack_require__(/*! react */ "react");
+function useTabDirection() {
+ let direction = (0, import_react20.useRef)(0 /* Forwards */);
+ useWindowEvent(
+ "keydown",
+ (event) => {
+ if (event.key === "Tab") {
+ direction.current = event.shiftKey ? 1 /* Backwards */ : 0 /* Forwards */;
+ }
+ },
+ true
+ );
+ return direction;
+}
+
+// src/hooks/use-is-mounted.ts
+var import_react21 = __webpack_require__(/*! react */ "react");
+function useIsMounted() {
+ let mounted = (0, import_react21.useRef)(false);
+ useIsoMorphicEffect(() => {
+ mounted.current = true;
+ return () => {
+ mounted.current = false;
+ };
+ }, []);
+ return mounted;
+}
+
+// src/hooks/use-owner.ts
+var import_react22 = __webpack_require__(/*! react */ "react");
+function useOwnerDocument(...args) {
+ return (0, import_react22.useMemo)(() => getOwnerDocument(...args), [...args]);
+}
+
+// src/hooks/use-event-listener.ts
+var import_react23 = __webpack_require__(/*! react */ "react");
+function useEventListener(element, type, listener, options) {
+ let listenerRef = useLatestValue(listener);
+ (0, import_react23.useEffect)(() => {
+ element = element != null ? element : window;
+ function handler(event) {
+ listenerRef.current(event);
+ }
+ element.addEventListener(type, handler, options);
+ return () => element.removeEventListener(type, handler, options);
+ }, [element, type, options]);
+}
+
+// src/utils/document-ready.ts
+function onDocumentReady(cb) {
+ function check() {
+ if (document.readyState === "loading")
+ return;
+ cb();
+ document.removeEventListener("DOMContentLoaded", check);
+ }
+ if (typeof window !== "undefined" && typeof document !== "undefined") {
+ document.addEventListener("DOMContentLoaded", check);
+ check();
+ }
+}
+
+// src/hooks/use-on-unmount.ts
+var import_react24 = __webpack_require__(/*! react */ "react");
+function useOnUnmount(cb) {
+ let stableCb = useEvent(cb);
+ let trulyUnmounted = (0, import_react24.useRef)(false);
+ (0, import_react24.useEffect)(() => {
+ trulyUnmounted.current = false;
+ return () => {
+ trulyUnmounted.current = true;
+ microTask(() => {
+ if (!trulyUnmounted.current)
+ return;
+ stableCb();
+ });
+ };
+ }, [stableCb]);
+}
+
+// src/components/focus-trap/focus-trap.tsx
+function resolveContainers(containers) {
+ if (!containers)
+ return /* @__PURE__ */ new Set();
+ if (typeof containers === "function")
+ return new Set(containers());
+ let all = /* @__PURE__ */ new Set();
+ for (let container of containers.current) {
+ if (container.current instanceof HTMLElement) {
+ all.add(container.current);
+ }
+ }
+ return all;
+}
+var DEFAULT_FOCUS_TRAP_TAG = "div";
+var Features3 = /* @__PURE__ */ ((Features4) => {
+ Features4[Features4["None"] = 1] = "None";
+ Features4[Features4["InitialFocus"] = 2] = "InitialFocus";
+ Features4[Features4["TabLock"] = 4] = "TabLock";
+ Features4[Features4["FocusLock"] = 8] = "FocusLock";
+ Features4[Features4["RestoreFocus"] = 16] = "RestoreFocus";
+ Features4[Features4["All"] = 30] = "All";
+ return Features4;
+})(Features3 || {});
+function FocusTrapFn(props, ref) {
+ let container = (0, import_react25.useRef)(null);
+ let focusTrapRef = useSyncRefs(container, ref);
+ let { initialFocus, containers, features = 30 /* All */, ...theirProps } = props;
+ if (!useServerHandoffComplete()) {
+ features = 1 /* None */;
+ }
+ let ownerDocument = useOwnerDocument(container);
+ useRestoreFocus({ ownerDocument }, Boolean(features & 16 /* RestoreFocus */));
+ let previousActiveElement = useInitialFocus(
+ { ownerDocument, container, initialFocus },
+ Boolean(features & 2 /* InitialFocus */)
+ );
+ useFocusLock(
+ { ownerDocument, container, containers, previousActiveElement },
+ Boolean(features & 8 /* FocusLock */)
+ );
+ let direction = useTabDirection();
+ let handleFocus = useEvent((e) => {
+ let el = container.current;
+ if (!el)
+ return;
+ let wrapper = false ? 0 : (cb) => cb();
+ wrapper(() => {
+ match(direction.current, {
+ [0 /* Forwards */]: () => {
+ focusIn(el, 1 /* First */, { skipElements: [e.relatedTarget] });
+ },
+ [1 /* Backwards */]: () => {
+ focusIn(el, 8 /* Last */, { skipElements: [e.relatedTarget] });
+ }
+ });
+ });
+ });
+ let d = useDisposables();
+ let recentlyUsedTabKey = (0, import_react25.useRef)(false);
+ let ourProps = {
+ ref: focusTrapRef,
+ onKeyDown(e) {
+ if (e.key == "Tab") {
+ recentlyUsedTabKey.current = true;
+ d.requestAnimationFrame(() => {
+ recentlyUsedTabKey.current = false;
+ });
+ }
+ },
+ onBlur(e) {
+ let allContainers = resolveContainers(containers);
+ if (container.current instanceof HTMLElement)
+ allContainers.add(container.current);
+ let relatedTarget = e.relatedTarget;
+ if (!(relatedTarget instanceof HTMLElement))
+ return;
+ if (relatedTarget.dataset.headlessuiFocusGuard === "true") {
+ return;
+ }
+ if (!contains(allContainers, relatedTarget)) {
+ if (recentlyUsedTabKey.current) {
+ focusIn(
+ container.current,
+ match(direction.current, {
+ [0 /* Forwards */]: () => 4 /* Next */,
+ [1 /* Backwards */]: () => 2 /* Previous */
+ }) | 16 /* WrapAround */,
+ { relativeTo: e.target }
+ );
+ } else if (e.target instanceof HTMLElement) {
+ focusElement(e.target);
+ }
+ }
+ }
+ };
+ return /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, Boolean(features & 4 /* TabLock */) && /* @__PURE__ */ import_react25.default.createElement(
+ Hidden,
+ {
+ as: "button",
+ type: "button",
+ "data-headlessui-focus-guard": true,
+ onFocus: handleFocus,
+ features: 2 /* Focusable */
+ }
+ ), render({
+ ourProps,
+ theirProps,
+ defaultTag: DEFAULT_FOCUS_TRAP_TAG,
+ name: "FocusTrap"
+ }), Boolean(features & 4 /* TabLock */) && /* @__PURE__ */ import_react25.default.createElement(
+ Hidden,
+ {
+ as: "button",
+ type: "button",
+ "data-headlessui-focus-guard": true,
+ onFocus: handleFocus,
+ features: 2 /* Focusable */
+ }
+ ));
+}
+var FocusTrapRoot = forwardRefWithAs(FocusTrapFn);
+var FocusTrap = Object.assign(FocusTrapRoot, {
+ features: Features3
+});
+var history = [];
+onDocumentReady(() => {
+ function handle(e) {
+ if (!(e.target instanceof HTMLElement))
+ return;
+ if (e.target === document.body)
+ return;
+ if (history[0] === e.target)
+ return;
+ history.unshift(e.target);
+ history = history.filter((x) => x != null && x.isConnected);
+ history.splice(10);
+ }
+ window.addEventListener("click", handle, { capture: true });
+ window.addEventListener("mousedown", handle, { capture: true });
+ window.addEventListener("focus", handle, { capture: true });
+ document.body.addEventListener("click", handle, { capture: true });
+ document.body.addEventListener("mousedown", handle, { capture: true });
+ document.body.addEventListener("focus", handle, { capture: true });
+});
+function useRestoreElement(enabled = true) {
+ let localHistory = (0, import_react25.useRef)(history.slice());
+ useWatch(
+ ([newEnabled], [oldEnabled]) => {
+ if (oldEnabled === true && newEnabled === false) {
+ microTask(() => {
+ localHistory.current.splice(0);
+ });
+ }
+ if (oldEnabled === false && newEnabled === true) {
+ localHistory.current = history.slice();
+ }
+ },
+ [enabled, history, localHistory]
+ );
+ return useEvent(() => {
+ var _a3;
+ return (_a3 = localHistory.current.find((x) => x != null && x.isConnected)) != null ? _a3 : null;
+ });
+}
+function useRestoreFocus({ ownerDocument }, enabled) {
+ let getRestoreElement = useRestoreElement(enabled);
+ useWatch(() => {
+ if (enabled)
+ return;
+ if ((ownerDocument == null ? void 0 : ownerDocument.activeElement) === (ownerDocument == null ? void 0 : ownerDocument.body)) {
+ focusElement(getRestoreElement());
+ }
+ }, [enabled]);
+ useOnUnmount(() => {
+ if (!enabled)
+ return;
+ focusElement(getRestoreElement());
+ });
+}
+function useInitialFocus({
+ ownerDocument,
+ container,
+ initialFocus
+}, enabled) {
+ let previousActiveElement = (0, import_react25.useRef)(null);
+ let mounted = useIsMounted();
+ useWatch(() => {
+ if (!enabled)
+ return;
+ let containerElement = container.current;
+ if (!containerElement)
+ return;
+ microTask(() => {
+ if (!mounted.current) {
+ return;
+ }
+ let activeElement = ownerDocument == null ? void 0 : ownerDocument.activeElement;
+ if (initialFocus == null ? void 0 : initialFocus.current) {
+ if ((initialFocus == null ? void 0 : initialFocus.current) === activeElement) {
+ previousActiveElement.current = activeElement;
+ return;
+ }
+ } else if (containerElement.contains(activeElement)) {
+ previousActiveElement.current = activeElement;
+ return;
+ }
+ if (initialFocus == null ? void 0 : initialFocus.current) {
+ focusElement(initialFocus.current);
+ } else {
+ if (focusIn(containerElement, 1 /* First */) === 0 /* Error */) {
+ console.warn("There are no focusable elements inside the ");
+ }
+ }
+ previousActiveElement.current = ownerDocument == null ? void 0 : ownerDocument.activeElement;
+ });
+ }, [enabled]);
+ return previousActiveElement;
+}
+function useFocusLock({
+ ownerDocument,
+ container,
+ containers,
+ previousActiveElement
+}, enabled) {
+ let mounted = useIsMounted();
+ useEventListener(
+ ownerDocument == null ? void 0 : ownerDocument.defaultView,
+ "focus",
+ (event) => {
+ if (!enabled)
+ return;
+ if (!mounted.current)
+ return;
+ let allContainers = resolveContainers(containers);
+ if (container.current instanceof HTMLElement)
+ allContainers.add(container.current);
+ let previous = previousActiveElement.current;
+ if (!previous)
+ return;
+ let toElement = event.target;
+ if (toElement && toElement instanceof HTMLElement) {
+ if (!contains(allContainers, toElement)) {
+ event.preventDefault();
+ event.stopPropagation();
+ focusElement(previous);
+ } else {
+ previousActiveElement.current = toElement;
+ focusElement(toElement);
+ }
+ } else {
+ focusElement(previousActiveElement.current);
+ }
+ },
+ true
+ );
+}
+function contains(containers, element) {
+ for (let container of containers) {
+ if (container.contains(element))
+ return true;
+ }
+ return false;
+}
+
+// src/components/portal/portal.tsx
+var import_react27 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+var import_react_dom = __webpack_require__(/*! react-dom */ "react-dom");
+
+// src/internal/portal-force-root.tsx
+var import_react26 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+var ForcePortalRootContext = (0, import_react26.createContext)(false);
+function usePortalRoot() {
+ return (0, import_react26.useContext)(ForcePortalRootContext);
+}
+function ForcePortalRoot(props) {
+ return /* @__PURE__ */ import_react26.default.createElement(ForcePortalRootContext.Provider, { value: props.force }, props.children);
+}
+
+// src/components/portal/portal.tsx
+function usePortalTarget(ref) {
+ let forceInRoot = usePortalRoot();
+ let groupTarget = (0, import_react27.useContext)(PortalGroupContext);
+ let ownerDocument = useOwnerDocument(ref);
+ let [target, setTarget] = (0, import_react27.useState)(() => {
+ if (!forceInRoot && groupTarget !== null)
+ return null;
+ if (env.isServer)
+ return null;
+ let existingRoot = ownerDocument == null ? void 0 : ownerDocument.getElementById("headlessui-portal-root");
+ if (existingRoot)
+ return existingRoot;
+ if (ownerDocument === null)
+ return null;
+ let root = ownerDocument.createElement("div");
+ root.setAttribute("id", "headlessui-portal-root");
+ return ownerDocument.body.appendChild(root);
+ });
+ (0, import_react27.useEffect)(() => {
+ if (target === null)
+ return;
+ if (!(ownerDocument == null ? void 0 : ownerDocument.body.contains(target))) {
+ ownerDocument == null ? void 0 : ownerDocument.body.appendChild(target);
+ }
+ }, [target, ownerDocument]);
+ (0, import_react27.useEffect)(() => {
+ if (forceInRoot)
+ return;
+ if (groupTarget === null)
+ return;
+ setTarget(groupTarget.current);
+ }, [groupTarget, setTarget, forceInRoot]);
+ return target;
+}
+var DEFAULT_PORTAL_TAG = import_react27.Fragment;
+function PortalFn(props, ref) {
+ let theirProps = props;
+ let internalPortalRootRef = (0, import_react27.useRef)(null);
+ let portalRef = useSyncRefs(
+ optionalRef((ref2) => {
+ internalPortalRootRef.current = ref2;
+ }),
+ ref
+ );
+ let ownerDocument = useOwnerDocument(internalPortalRootRef);
+ let target = usePortalTarget(internalPortalRootRef);
+ let [element] = (0, import_react27.useState)(
+ () => {
+ var _a3;
+ return env.isServer ? null : (_a3 = ownerDocument == null ? void 0 : ownerDocument.createElement("div")) != null ? _a3 : null;
+ }
+ );
+ let parent = (0, import_react27.useContext)(PortalParentContext);
+ let ready = useServerHandoffComplete();
+ useIsoMorphicEffect(() => {
+ if (!target || !element)
+ return;
+ if (!target.contains(element)) {
+ element.setAttribute("data-headlessui-portal", "");
+ target.appendChild(element);
+ }
+ }, [target, element]);
+ useIsoMorphicEffect(() => {
+ if (!element)
+ return;
+ if (!parent)
+ return;
+ return parent.register(element);
+ }, [parent, element]);
+ useOnUnmount(() => {
+ var _a3;
+ if (!target || !element)
+ return;
+ if (element instanceof Node && target.contains(element)) {
+ target.removeChild(element);
+ }
+ if (target.childNodes.length <= 0) {
+ (_a3 = target.parentElement) == null ? void 0 : _a3.removeChild(target);
+ }
+ });
+ if (!ready)
+ return null;
+ let ourProps = { ref: portalRef };
+ return !target || !element ? null : (0, import_react_dom.createPortal)(
+ render({
+ ourProps,
+ theirProps,
+ defaultTag: DEFAULT_PORTAL_TAG,
+ name: "Portal"
+ }),
+ element
+ );
+}
+var DEFAULT_GROUP_TAG = import_react27.Fragment;
+var PortalGroupContext = (0, import_react27.createContext)(null);
+function GroupFn(props, ref) {
+ let { target, ...theirProps } = props;
+ let groupRef = useSyncRefs(ref);
+ let ourProps = { ref: groupRef };
+ return /* @__PURE__ */ import_react27.default.createElement(PortalGroupContext.Provider, { value: target }, render({
+ ourProps,
+ theirProps,
+ defaultTag: DEFAULT_GROUP_TAG,
+ name: "Popover.Group"
+ }));
+}
+var PortalParentContext = (0, import_react27.createContext)(null);
+function useNestedPortals() {
+ let parent = (0, import_react27.useContext)(PortalParentContext);
+ let portals = (0, import_react27.useRef)([]);
+ let register = useEvent((portal) => {
+ portals.current.push(portal);
+ if (parent)
+ parent.register(portal);
+ return () => unregister(portal);
+ });
+ let unregister = useEvent((portal) => {
+ let idx = portals.current.indexOf(portal);
+ if (idx !== -1)
+ portals.current.splice(idx, 1);
+ if (parent)
+ parent.unregister(portal);
+ });
+ let api = (0, import_react27.useMemo)(
+ () => ({ register, unregister, portals }),
+ [register, unregister, portals]
+ );
+ return [
+ portals,
+ (0, import_react27.useMemo)(() => {
+ return function PortalWrapper({ children }) {
+ return /* @__PURE__ */ import_react27.default.createElement(PortalParentContext.Provider, { value: api }, children);
+ };
+ }, [api])
+ ];
+}
+var PortalRoot = forwardRefWithAs(PortalFn);
+var Group = forwardRefWithAs(GroupFn);
+var Portal = Object.assign(PortalRoot, { Group });
+
+// src/components/description/description.tsx
+var import_react28 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+var DescriptionContext = (0, import_react28.createContext)(null);
+function useDescriptionContext() {
+ let context = (0, import_react28.useContext)(DescriptionContext);
+ if (context === null) {
+ let err = new Error(
+ "You used a component, but it is not inside a relevant parent."
+ );
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, useDescriptionContext);
+ throw err;
+ }
+ return context;
+}
+function useDescriptions() {
+ let [descriptionIds, setDescriptionIds] = (0, import_react28.useState)([]);
+ return [
+ // The actual id's as string or undefined
+ descriptionIds.length > 0 ? descriptionIds.join(" ") : void 0,
+ // The provider component
+ (0, import_react28.useMemo)(() => {
+ return function DescriptionProvider(props) {
+ let register = useEvent((value) => {
+ setDescriptionIds((existing) => [...existing, value]);
+ return () => setDescriptionIds((existing) => {
+ let clone = existing.slice();
+ let idx = clone.indexOf(value);
+ if (idx !== -1)
+ clone.splice(idx, 1);
+ return clone;
+ });
+ });
+ let contextBag = (0, import_react28.useMemo)(
+ () => ({ register, slot: props.slot, name: props.name, props: props.props }),
+ [register, props.slot, props.name, props.props]
+ );
+ return /* @__PURE__ */ import_react28.default.createElement(DescriptionContext.Provider, { value: contextBag }, props.children);
+ };
+ }, [setDescriptionIds])
+ ];
+}
+var DEFAULT_DESCRIPTION_TAG = "p";
+function DescriptionFn(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-description-${internalId}`, ...theirProps } = props;
+ let context = useDescriptionContext();
+ let descriptionRef = useSyncRefs(ref);
+ useIsoMorphicEffect(() => context.register(id), [id, context.register]);
+ let ourProps = { ref: descriptionRef, ...context.props, id };
+ return render({
+ ourProps,
+ theirProps,
+ slot: context.slot || {},
+ defaultTag: DEFAULT_DESCRIPTION_TAG,
+ name: context.name || "Description"
+ });
+}
+var DescriptionRoot = forwardRefWithAs(DescriptionFn);
+var Description = Object.assign(DescriptionRoot, {
+ //
+});
+
+// src/internal/stack-context.tsx
+var import_react29 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+var StackContext = (0, import_react29.createContext)(() => {
+});
+StackContext.displayName = "StackContext";
+function useStackContext() {
+ return (0, import_react29.useContext)(StackContext);
+}
+function StackProvider({
+ children,
+ onUpdate,
+ type,
+ element,
+ enabled
+}) {
+ let parentUpdate = useStackContext();
+ let notify = useEvent((...args) => {
+ onUpdate == null ? void 0 : onUpdate(...args);
+ parentUpdate(...args);
+ });
+ useIsoMorphicEffect(() => {
+ let shouldNotify = enabled === void 0 || enabled === true;
+ shouldNotify && notify(0 /* Add */, type, element);
+ return () => {
+ shouldNotify && notify(1 /* Remove */, type, element);
+ };
+ }, [notify, type, element, enabled]);
+ return /* @__PURE__ */ import_react29.default.createElement(StackContext.Provider, { value: notify }, children);
+}
+
+// src/use-sync-external-store-shim/index.ts
+var React11 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+
+// src/use-sync-external-store-shim/useSyncExternalStoreShimClient.ts
+var React10 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+function isPolyfill(x, y) {
+ return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y;
+}
+var is = typeof Object.is === "function" ? Object.is : isPolyfill;
+var { useState: useState8, useEffect: useEffect14, useLayoutEffect: useLayoutEffect2, useDebugValue } = React10;
+var didWarnOld18Alpha = false;
+var didWarnUncachedGetSnapshot = false;
+function useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {
+ if (true) {
+ if (!didWarnOld18Alpha) {
+ if ("startTransition" in React10) {
+ didWarnOld18Alpha = true;
+ console.error(
+ "You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."
+ );
+ }
+ }
+ }
+ const value = getSnapshot();
+ if (true) {
+ if (!didWarnUncachedGetSnapshot) {
+ const cachedValue = getSnapshot();
+ if (!is(value, cachedValue)) {
+ console.error("The result of getSnapshot should be cached to avoid an infinite loop");
+ didWarnUncachedGetSnapshot = true;
+ }
+ }
+ }
+ const [{ inst }, forceUpdate] = useState8({ inst: { value, getSnapshot } });
+ useLayoutEffect2(() => {
+ inst.value = value;
+ inst.getSnapshot = getSnapshot;
+ if (checkIfSnapshotChanged(inst)) {
+ forceUpdate({ inst });
+ }
+ }, [subscribe, value, getSnapshot]);
+ useEffect14(() => {
+ if (checkIfSnapshotChanged(inst)) {
+ forceUpdate({ inst });
+ }
+ const handleStoreChange = () => {
+ if (checkIfSnapshotChanged(inst)) {
+ forceUpdate({ inst });
+ }
+ };
+ return subscribe(handleStoreChange);
+ }, [subscribe]);
+ useDebugValue(value);
+ return value;
+}
+function checkIfSnapshotChanged(inst) {
+ const latestGetSnapshot = inst.getSnapshot;
+ const prevValue = inst.value;
+ try {
+ const nextValue = latestGetSnapshot();
+ return !is(prevValue, nextValue);
+ } catch (error) {
+ return true;
+ }
+}
+
+// src/use-sync-external-store-shim/useSyncExternalStoreShimServer.ts
+function useSyncExternalStore2(subscribe, getSnapshot, getServerSnapshot) {
+ return getSnapshot();
+}
+
+// src/use-sync-external-store-shim/index.ts
+var canUseDOM = !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined");
+var isServerEnvironment = !canUseDOM;
+var shim = isServerEnvironment ? useSyncExternalStore2 : useSyncExternalStore;
+var useSyncExternalStore3 = "useSyncExternalStore" in React11 ? ((r) => r.useSyncExternalStore)(React11) : shim;
+
+// src/hooks/use-store.ts
+function useStore(store) {
+ return useSyncExternalStore3(store.subscribe, store.getSnapshot, store.getSnapshot);
+}
+
+// src/utils/store.ts
+function createStore(initial, actions) {
+ let state = initial();
+ let listeners = /* @__PURE__ */ new Set();
+ return {
+ getSnapshot() {
+ return state;
+ },
+ subscribe(onChange) {
+ listeners.add(onChange);
+ return () => listeners.delete(onChange);
+ },
+ dispatch(key, ...args) {
+ let newState = actions[key].call(state, ...args);
+ if (newState) {
+ state = newState;
+ listeners.forEach((listener) => listener());
+ }
+ }
+ };
+}
+
+// src/hooks/document-overflow/adjust-scrollbar-padding.ts
+function adjustScrollbarPadding() {
+ let scrollbarWidthBefore;
+ return {
+ before({ doc }) {
+ var _a3;
+ let documentElement = doc.documentElement;
+ let ownerWindow = (_a3 = doc.defaultView) != null ? _a3 : window;
+ scrollbarWidthBefore = ownerWindow.innerWidth - documentElement.clientWidth;
+ },
+ after({ doc, d }) {
+ let documentElement = doc.documentElement;
+ let scrollbarWidthAfter = documentElement.clientWidth - documentElement.offsetWidth;
+ let scrollbarWidth = scrollbarWidthBefore - scrollbarWidthAfter;
+ d.style(documentElement, "paddingRight", `${scrollbarWidth}px`);
+ }
+ };
+}
+
+// src/hooks/document-overflow/handle-ios-locking.ts
+function handleIOSLocking() {
+ if (!isIOS()) {
+ return {};
+ }
+ let scrollPosition;
+ return {
+ before() {
+ scrollPosition = window.pageYOffset;
+ },
+ after({ doc, d, meta }) {
+ function inAllowedContainer(el) {
+ return meta.containers.flatMap((resolve) => resolve()).some((container) => container.contains(el));
+ }
+ d.style(doc.body, "marginTop", `-${scrollPosition}px`);
+ window.scrollTo(0, 0);
+ let scrollToElement = null;
+ d.addEventListener(
+ doc,
+ "click",
+ (e) => {
+ if (!(e.target instanceof HTMLElement)) {
+ return;
+ }
+ try {
+ let anchor = e.target.closest("a");
+ if (!anchor)
+ return;
+ let { hash } = new URL(anchor.href);
+ let el = doc.querySelector(hash);
+ if (el && !inAllowedContainer(el)) {
+ scrollToElement = el;
+ }
+ } catch (err) {
+ }
+ },
+ true
+ );
+ d.addEventListener(
+ doc,
+ "touchmove",
+ (e) => {
+ if (e.target instanceof HTMLElement && !inAllowedContainer(e.target)) {
+ e.preventDefault();
+ }
+ },
+ { passive: false }
+ );
+ d.add(() => {
+ window.scrollTo(0, window.pageYOffset + scrollPosition);
+ if (scrollToElement && scrollToElement.isConnected) {
+ scrollToElement.scrollIntoView({ block: "nearest" });
+ scrollToElement = null;
+ }
+ });
+ }
+ };
+}
+
+// src/hooks/document-overflow/prevent-scroll.ts
+function preventScroll() {
+ return {
+ before({ doc, d }) {
+ d.style(doc.documentElement, "overflow", "hidden");
+ }
+ };
+}
+
+// src/hooks/document-overflow/overflow-store.ts
+function buildMeta(fns) {
+ let tmp = {};
+ for (let fn of fns) {
+ Object.assign(tmp, fn(tmp));
+ }
+ return tmp;
+}
+var overflows = createStore(() => /* @__PURE__ */ new Map(), {
+ PUSH(doc, meta) {
+ var _a3;
+ let entry = (_a3 = this.get(doc)) != null ? _a3 : {
+ doc,
+ count: 0,
+ d: disposables(),
+ meta: /* @__PURE__ */ new Set()
+ };
+ entry.count++;
+ entry.meta.add(meta);
+ this.set(doc, entry);
+ return this;
+ },
+ POP(doc, meta) {
+ let entry = this.get(doc);
+ if (entry) {
+ entry.count--;
+ entry.meta.delete(meta);
+ }
+ return this;
+ },
+ SCROLL_PREVENT({ doc, d, meta }) {
+ let ctx = {
+ doc,
+ d,
+ meta: buildMeta(meta)
+ };
+ let steps = [
+ handleIOSLocking(),
+ adjustScrollbarPadding(),
+ preventScroll()
+ ];
+ steps.forEach(({ before }) => before == null ? void 0 : before(ctx));
+ steps.forEach(({ after }) => after == null ? void 0 : after(ctx));
+ },
+ SCROLL_ALLOW({ d }) {
+ d.dispose();
+ },
+ TEARDOWN({ doc }) {
+ this.delete(doc);
+ }
+});
+overflows.subscribe(() => {
+ let docs = overflows.getSnapshot();
+ let styles = /* @__PURE__ */ new Map();
+ for (let [doc] of docs) {
+ styles.set(doc, doc.documentElement.style.overflow);
+ }
+ for (let entry of docs.values()) {
+ let isHidden = styles.get(entry.doc) === "hidden";
+ let isLocked = entry.count !== 0;
+ let willChange = isLocked && !isHidden || !isLocked && isHidden;
+ if (willChange) {
+ overflows.dispatch(entry.count > 0 ? "SCROLL_PREVENT" : "SCROLL_ALLOW", entry);
+ }
+ if (entry.count === 0) {
+ overflows.dispatch("TEARDOWN", entry);
+ }
+ }
+});
+
+// src/hooks/document-overflow/use-document-overflow.ts
+function useDocumentOverflowLockedEffect(doc, shouldBeLocked, meta) {
+ let store = useStore(overflows);
+ let entry = doc ? store.get(doc) : void 0;
+ let locked = entry ? entry.count > 0 : false;
+ useIsoMorphicEffect(() => {
+ if (!doc || !shouldBeLocked) {
+ return;
+ }
+ overflows.dispatch("PUSH", doc, meta);
+ return () => overflows.dispatch("POP", doc, meta);
+ }, [shouldBeLocked, doc]);
+ return locked;
+}
+
+// src/hooks/use-inert.tsx
+var originals = /* @__PURE__ */ new Map();
+var counts = /* @__PURE__ */ new Map();
+function useInert(node, enabled = true) {
+ useIsoMorphicEffect(() => {
+ var _a3;
+ if (!enabled)
+ return;
+ let element = typeof node === "function" ? node() : node.current;
+ if (!element)
+ return;
+ function cleanup() {
+ var _a4;
+ if (!element)
+ return;
+ let count2 = (_a4 = counts.get(element)) != null ? _a4 : 1;
+ if (count2 === 1)
+ counts.delete(element);
+ else
+ counts.set(element, count2 - 1);
+ if (count2 !== 1)
+ return;
+ let original = originals.get(element);
+ if (!original)
+ return;
+ if (original["aria-hidden"] === null)
+ element.removeAttribute("aria-hidden");
+ else
+ element.setAttribute("aria-hidden", original["aria-hidden"]);
+ element.inert = original.inert;
+ originals.delete(element);
+ }
+ let count = (_a3 = counts.get(element)) != null ? _a3 : 0;
+ counts.set(element, count + 1);
+ if (count !== 0)
+ return cleanup;
+ originals.set(element, {
+ "aria-hidden": element.getAttribute("aria-hidden"),
+ inert: element.inert
+ });
+ element.setAttribute("aria-hidden", "true");
+ element.inert = true;
+ return cleanup;
+ }, [node, enabled]);
+}
+
+// src/hooks/use-root-containers.tsx
+var import_react30 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+function useRootContainers({
+ defaultContainers = [],
+ portals
+} = {}) {
+ let mainTreeNodeRef = (0, import_react30.useRef)(null);
+ let ownerDocument = useOwnerDocument(mainTreeNodeRef);
+ let resolveContainers2 = useEvent(() => {
+ var _a3;
+ let containers = [];
+ for (let container of defaultContainers) {
+ if (container === null)
+ continue;
+ if (container instanceof HTMLElement) {
+ containers.push(container);
+ } else if ("current" in container && container.current instanceof HTMLElement) {
+ containers.push(container.current);
+ }
+ }
+ if (portals == null ? void 0 : portals.current) {
+ for (let portal of portals.current) {
+ containers.push(portal);
+ }
+ }
+ for (let container of (_a3 = ownerDocument == null ? void 0 : ownerDocument.querySelectorAll("html > *, body > *")) != null ? _a3 : []) {
+ if (container === document.body)
+ continue;
+ if (container === document.head)
+ continue;
+ if (!(container instanceof HTMLElement))
+ continue;
+ if (container.id === "headlessui-portal-root")
+ continue;
+ if (container.contains(mainTreeNodeRef.current))
+ continue;
+ if (containers.some((defaultContainer) => container.contains(defaultContainer)))
+ continue;
+ containers.push(container);
+ }
+ return containers;
+ });
+ return {
+ resolveContainers: resolveContainers2,
+ contains: useEvent(
+ (element) => resolveContainers2().some((container) => container.contains(element))
+ ),
+ mainTreeNodeRef,
+ MainTreeNode: (0, import_react30.useMemo)(() => {
+ return function MainTreeNode() {
+ return /* @__PURE__ */ import_react30.default.createElement(Hidden, { features: 4 /* Hidden */, ref: mainTreeNodeRef });
+ };
+ }, [mainTreeNodeRef])
+ };
+}
+
+// src/components/dialog/dialog.tsx
+var reducers2 = {
+ [0 /* SetTitleId */](state, action) {
+ if (state.titleId === action.id)
+ return state;
+ return { ...state, titleId: action.id };
+ }
+};
+var DialogContext = (0, import_react31.createContext)(null);
+DialogContext.displayName = "DialogContext";
+function useDialogContext(component) {
+ let context = (0, import_react31.useContext)(DialogContext);
+ if (context === null) {
+ let err = new Error(`<${component} /> is missing a parent component.`);
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, useDialogContext);
+ throw err;
+ }
+ return context;
+}
+function useScrollLock(ownerDocument, enabled, resolveAllowedContainers = () => [document.body]) {
+ useDocumentOverflowLockedEffect(ownerDocument, enabled, (meta) => {
+ var _a3;
+ return {
+ containers: [...(_a3 = meta.containers) != null ? _a3 : [], resolveAllowedContainers]
+ };
+ });
+}
+function stateReducer2(state, action) {
+ return match(action.type, reducers2, state, action);
+}
+var DEFAULT_DIALOG_TAG = "div";
+var DialogRenderFeatures = 1 /* RenderStrategy */ | 2 /* Static */;
+function DialogFn(props, ref) {
+ var _a3;
+ let internalId = useId();
+ let {
+ id = `headlessui-dialog-${internalId}`,
+ open,
+ onClose,
+ initialFocus,
+ __demoMode = false,
+ ...theirProps
+ } = props;
+ let [nestedDialogCount, setNestedDialogCount] = (0, import_react31.useState)(0);
+ let usesOpenClosedState = useOpenClosed();
+ if (open === void 0 && usesOpenClosedState !== null) {
+ open = (usesOpenClosedState & 1 /* Open */) === 1 /* Open */;
+ }
+ let internalDialogRef = (0, import_react31.useRef)(null);
+ let dialogRef = useSyncRefs(internalDialogRef, ref);
+ let ownerDocument = useOwnerDocument(internalDialogRef);
+ let hasOpen = props.hasOwnProperty("open") || usesOpenClosedState !== null;
+ let hasOnClose = props.hasOwnProperty("onClose");
+ if (!hasOpen && !hasOnClose) {
+ throw new Error(
+ `You have to provide an \`open\` and an \`onClose\` prop to the \`Dialog\` component.`
+ );
+ }
+ if (!hasOpen) {
+ throw new Error(
+ `You provided an \`onClose\` prop to the \`Dialog\`, but forgot an \`open\` prop.`
+ );
+ }
+ if (!hasOnClose) {
+ throw new Error(
+ `You provided an \`open\` prop to the \`Dialog\`, but forgot an \`onClose\` prop.`
+ );
+ }
+ if (typeof open !== "boolean") {
+ throw new Error(
+ `You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${open}`
+ );
+ }
+ if (typeof onClose !== "function") {
+ throw new Error(
+ `You provided an \`onClose\` prop to the \`Dialog\`, but the value is not a function. Received: ${onClose}`
+ );
+ }
+ let dialogState = open ? 0 /* Open */ : 1 /* Closed */;
+ let [state, dispatch] = (0, import_react31.useReducer)(stateReducer2, {
+ titleId: null,
+ descriptionId: null,
+ panelRef: (0, import_react31.createRef)()
+ });
+ let close = useEvent(() => onClose(false));
+ let setTitleId = useEvent((id2) => dispatch({ type: 0 /* SetTitleId */, id: id2 }));
+ let ready = useServerHandoffComplete();
+ let enabled = ready ? __demoMode ? false : dialogState === 0 /* Open */ : false;
+ let hasNestedDialogs = nestedDialogCount > 1;
+ let hasParentDialog = (0, import_react31.useContext)(DialogContext) !== null;
+ let [portals, PortalWrapper] = useNestedPortals();
+ let {
+ resolveContainers: resolveRootContainers,
+ mainTreeNodeRef,
+ MainTreeNode
+ } = useRootContainers({
+ portals,
+ defaultContainers: [(_a3 = state.panelRef.current) != null ? _a3 : internalDialogRef.current]
+ });
+ let position = !hasNestedDialogs ? "leaf" : "parent";
+ let isClosing = usesOpenClosedState !== null ? (usesOpenClosedState & 4 /* Closing */) === 4 /* Closing */ : false;
+ let inertOthersEnabled = (() => {
+ if (hasParentDialog)
+ return false;
+ if (isClosing)
+ return false;
+ return enabled;
+ })();
+ let resolveRootOfMainTreeNode = (0, import_react31.useCallback)(() => {
+ var _a4, _b;
+ return (_b = Array.from((_a4 = ownerDocument == null ? void 0 : ownerDocument.querySelectorAll("body > *")) != null ? _a4 : []).find((root) => {
+ if (root.id === "headlessui-portal-root")
+ return false;
+ return root.contains(mainTreeNodeRef.current) && root instanceof HTMLElement;
+ })) != null ? _b : null;
+ }, [mainTreeNodeRef]);
+ useInert(resolveRootOfMainTreeNode, inertOthersEnabled);
+ let inertParentDialogs = (() => {
+ if (hasNestedDialogs)
+ return true;
+ return enabled;
+ })();
+ let resolveRootOfParentDialog = (0, import_react31.useCallback)(() => {
+ var _a4, _b;
+ return (_b = Array.from((_a4 = ownerDocument == null ? void 0 : ownerDocument.querySelectorAll("[data-headlessui-portal]")) != null ? _a4 : []).find(
+ (root) => root.contains(mainTreeNodeRef.current) && root instanceof HTMLElement
+ )) != null ? _b : null;
+ }, [mainTreeNodeRef]);
+ useInert(resolveRootOfParentDialog, inertParentDialogs);
+ let outsideClickEnabled = (() => {
+ if (!enabled)
+ return false;
+ if (hasNestedDialogs)
+ return false;
+ return true;
+ })();
+ useOutsideClick(resolveRootContainers, close, outsideClickEnabled);
+ let escapeToCloseEnabled = (() => {
+ if (hasNestedDialogs)
+ return false;
+ if (dialogState !== 0 /* Open */)
+ return false;
+ return true;
+ })();
+ useEventListener(ownerDocument == null ? void 0 : ownerDocument.defaultView, "keydown", (event) => {
+ if (!escapeToCloseEnabled)
+ return;
+ if (event.defaultPrevented)
+ return;
+ if (event.key !== "Escape" /* Escape */)
+ return;
+ event.preventDefault();
+ event.stopPropagation();
+ close();
+ });
+ let scrollLockEnabled = (() => {
+ if (isClosing)
+ return false;
+ if (dialogState !== 0 /* Open */)
+ return false;
+ if (hasParentDialog)
+ return false;
+ return true;
+ })();
+ useScrollLock(ownerDocument, scrollLockEnabled, resolveRootContainers);
+ (0, import_react31.useEffect)(() => {
+ if (dialogState !== 0 /* Open */)
+ return;
+ if (!internalDialogRef.current)
+ return;
+ let observer = new ResizeObserver((entries) => {
+ for (let entry of entries) {
+ let rect = entry.target.getBoundingClientRect();
+ if (rect.x === 0 && rect.y === 0 && rect.width === 0 && rect.height === 0) {
+ close();
+ }
+ }
+ });
+ observer.observe(internalDialogRef.current);
+ return () => observer.disconnect();
+ }, [dialogState, internalDialogRef, close]);
+ let [describedby, DescriptionProvider] = useDescriptions();
+ let contextBag = (0, import_react31.useMemo)(
+ () => [{ dialogState, close, setTitleId }, state],
+ [dialogState, state, close, setTitleId]
+ );
+ let slot = (0, import_react31.useMemo)(
+ () => ({ open: dialogState === 0 /* Open */ }),
+ [dialogState]
+ );
+ let ourProps = {
+ ref: dialogRef,
+ id,
+ role: "dialog",
+ "aria-modal": dialogState === 0 /* Open */ ? true : void 0,
+ "aria-labelledby": state.titleId,
+ "aria-describedby": describedby
+ };
+ return /* @__PURE__ */ import_react31.default.createElement(
+ StackProvider,
+ {
+ type: "Dialog",
+ enabled: dialogState === 0 /* Open */,
+ element: internalDialogRef,
+ onUpdate: useEvent((message, type) => {
+ if (type !== "Dialog")
+ return;
+ match(message, {
+ [0 /* Add */]: () => setNestedDialogCount((count) => count + 1),
+ [1 /* Remove */]: () => setNestedDialogCount((count) => count - 1)
+ });
+ })
+ },
+ /* @__PURE__ */ import_react31.default.createElement(ForcePortalRoot, { force: true }, /* @__PURE__ */ import_react31.default.createElement(Portal, null, /* @__PURE__ */ import_react31.default.createElement(DialogContext.Provider, { value: contextBag }, /* @__PURE__ */ import_react31.default.createElement(Portal.Group, { target: internalDialogRef }, /* @__PURE__ */ import_react31.default.createElement(ForcePortalRoot, { force: false }, /* @__PURE__ */ import_react31.default.createElement(DescriptionProvider, { slot, name: "Dialog.Description" }, /* @__PURE__ */ import_react31.default.createElement(
+ FocusTrap,
+ {
+ initialFocus,
+ containers: resolveRootContainers,
+ features: enabled ? match(position, {
+ parent: FocusTrap.features.RestoreFocus,
+ leaf: FocusTrap.features.All & ~FocusTrap.features.FocusLock
+ }) : FocusTrap.features.None
+ },
+ /* @__PURE__ */ import_react31.default.createElement(PortalWrapper, null, render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_DIALOG_TAG,
+ features: DialogRenderFeatures,
+ visible: dialogState === 0 /* Open */,
+ name: "Dialog"
+ }))
+ ))))))),
+ /* @__PURE__ */ import_react31.default.createElement(MainTreeNode, null)
+ );
+}
+var DEFAULT_OVERLAY_TAG = "div";
+function OverlayFn(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-dialog-overlay-${internalId}`, ...theirProps } = props;
+ let [{ dialogState, close }] = useDialogContext("Dialog.Overlay");
+ let overlayRef = useSyncRefs(ref);
+ let handleClick = useEvent((event) => {
+ if (event.target !== event.currentTarget)
+ return;
+ if (isDisabledReactIssue7711(event.currentTarget))
+ return event.preventDefault();
+ event.preventDefault();
+ event.stopPropagation();
+ close();
+ });
+ let slot = (0, import_react31.useMemo)(
+ () => ({ open: dialogState === 0 /* Open */ }),
+ [dialogState]
+ );
+ let ourProps = {
+ ref: overlayRef,
+ id,
+ "aria-hidden": true,
+ onClick: handleClick
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_OVERLAY_TAG,
+ name: "Dialog.Overlay"
+ });
+}
+var DEFAULT_BACKDROP_TAG = "div";
+function BackdropFn(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-dialog-backdrop-${internalId}`, ...theirProps } = props;
+ let [{ dialogState }, state] = useDialogContext("Dialog.Backdrop");
+ let backdropRef = useSyncRefs(ref);
+ (0, import_react31.useEffect)(() => {
+ if (state.panelRef.current === null) {
+ throw new Error(
+ `A component is being used, but a component is missing.`
+ );
+ }
+ }, [state.panelRef]);
+ let slot = (0, import_react31.useMemo)(
+ () => ({ open: dialogState === 0 /* Open */ }),
+ [dialogState]
+ );
+ let ourProps = {
+ ref: backdropRef,
+ id,
+ "aria-hidden": true
+ };
+ return /* @__PURE__ */ import_react31.default.createElement(ForcePortalRoot, { force: true }, /* @__PURE__ */ import_react31.default.createElement(Portal, null, render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_BACKDROP_TAG,
+ name: "Dialog.Backdrop"
+ })));
+}
+var DEFAULT_PANEL_TAG = "div";
+function PanelFn(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-dialog-panel-${internalId}`, ...theirProps } = props;
+ let [{ dialogState }, state] = useDialogContext("Dialog.Panel");
+ let panelRef = useSyncRefs(ref, state.panelRef);
+ let slot = (0, import_react31.useMemo)(
+ () => ({ open: dialogState === 0 /* Open */ }),
+ [dialogState]
+ );
+ let handleClick = useEvent((event) => {
+ event.stopPropagation();
+ });
+ let ourProps = {
+ ref: panelRef,
+ id,
+ onClick: handleClick
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_PANEL_TAG,
+ name: "Dialog.Panel"
+ });
+}
+var DEFAULT_TITLE_TAG = "h2";
+function TitleFn(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-dialog-title-${internalId}`, ...theirProps } = props;
+ let [{ dialogState, setTitleId }] = useDialogContext("Dialog.Title");
+ let titleRef = useSyncRefs(ref);
+ (0, import_react31.useEffect)(() => {
+ setTitleId(id);
+ return () => setTitleId(null);
+ }, [id, setTitleId]);
+ let slot = (0, import_react31.useMemo)(
+ () => ({ open: dialogState === 0 /* Open */ }),
+ [dialogState]
+ );
+ let ourProps = { ref: titleRef, id };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_TITLE_TAG,
+ name: "Dialog.Title"
+ });
+}
+var DialogRoot = forwardRefWithAs(DialogFn);
+var Backdrop = forwardRefWithAs(BackdropFn);
+var Panel = forwardRefWithAs(PanelFn);
+var Overlay = forwardRefWithAs(OverlayFn);
+var Title = forwardRefWithAs(TitleFn);
+var Dialog = Object.assign(DialogRoot, {
+ Backdrop,
+ Panel,
+ Overlay,
+ Title,
+ Description
+});
+
+// src/components/disclosure/disclosure.tsx
+var import_react33 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+
+// src/utils/start-transition.ts
+var import_react32 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+var _a2;
+var startTransition = (
+ // Prefer React's `startTransition` if it's available.
+ // @ts-expect-error - `startTransition` doesn't exist in React < 18.
+ (_a2 = import_react32.default.startTransition) != null ? _a2 : function startTransition2(cb) {
+ cb();
+ }
+);
+
+// src/components/disclosure/disclosure.tsx
+var reducers3 = {
+ [0 /* ToggleDisclosure */]: (state) => ({
+ ...state,
+ disclosureState: match(state.disclosureState, {
+ [0 /* Open */]: 1 /* Closed */,
+ [1 /* Closed */]: 0 /* Open */
+ })
+ }),
+ [1 /* CloseDisclosure */]: (state) => {
+ if (state.disclosureState === 1 /* Closed */)
+ return state;
+ return { ...state, disclosureState: 1 /* Closed */ };
+ },
+ [4 /* LinkPanel */](state) {
+ if (state.linkedPanel === true)
+ return state;
+ return { ...state, linkedPanel: true };
+ },
+ [5 /* UnlinkPanel */](state) {
+ if (state.linkedPanel === false)
+ return state;
+ return { ...state, linkedPanel: false };
+ },
+ [2 /* SetButtonId */](state, action) {
+ if (state.buttonId === action.buttonId)
+ return state;
+ return { ...state, buttonId: action.buttonId };
+ },
+ [3 /* SetPanelId */](state, action) {
+ if (state.panelId === action.panelId)
+ return state;
+ return { ...state, panelId: action.panelId };
+ }
+};
+var DisclosureContext = (0, import_react33.createContext)(null);
+DisclosureContext.displayName = "DisclosureContext";
+function useDisclosureContext(component) {
+ let context = (0, import_react33.useContext)(DisclosureContext);
+ if (context === null) {
+ let err = new Error(`<${component} /> is missing a parent component.`);
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, useDisclosureContext);
+ throw err;
+ }
+ return context;
+}
+var DisclosureAPIContext = (0, import_react33.createContext)(null);
+DisclosureAPIContext.displayName = "DisclosureAPIContext";
+function useDisclosureAPIContext(component) {
+ let context = (0, import_react33.useContext)(DisclosureAPIContext);
+ if (context === null) {
+ let err = new Error(`<${component} /> is missing a parent component.`);
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, useDisclosureAPIContext);
+ throw err;
+ }
+ return context;
+}
+var DisclosurePanelContext = (0, import_react33.createContext)(null);
+DisclosurePanelContext.displayName = "DisclosurePanelContext";
+function useDisclosurePanelContext() {
+ return (0, import_react33.useContext)(DisclosurePanelContext);
+}
+function stateReducer3(state, action) {
+ return match(action.type, reducers3, state, action);
+}
+var DEFAULT_DISCLOSURE_TAG = import_react33.Fragment;
+function DisclosureFn(props, ref) {
+ let { defaultOpen = false, ...theirProps } = props;
+ let internalDisclosureRef = (0, import_react33.useRef)(null);
+ let disclosureRef = useSyncRefs(
+ ref,
+ optionalRef(
+ (ref2) => {
+ internalDisclosureRef.current = ref2;
+ },
+ props.as === void 0 || // @ts-expect-error The `as` prop _can_ be a Fragment
+ props.as === import_react33.Fragment
+ )
+ );
+ let panelRef = (0, import_react33.useRef)(null);
+ let buttonRef = (0, import_react33.useRef)(null);
+ let reducerBag = (0, import_react33.useReducer)(stateReducer3, {
+ disclosureState: defaultOpen ? 0 /* Open */ : 1 /* Closed */,
+ linkedPanel: false,
+ buttonRef,
+ panelRef,
+ buttonId: null,
+ panelId: null
+ });
+ let [{ disclosureState, buttonId }, dispatch] = reducerBag;
+ let close = useEvent((focusableElement) => {
+ dispatch({ type: 1 /* CloseDisclosure */ });
+ let ownerDocument = getOwnerDocument(internalDisclosureRef);
+ if (!ownerDocument)
+ return;
+ if (!buttonId)
+ return;
+ let restoreElement = (() => {
+ if (!focusableElement)
+ return ownerDocument.getElementById(buttonId);
+ if (focusableElement instanceof HTMLElement)
+ return focusableElement;
+ if (focusableElement.current instanceof HTMLElement)
+ return focusableElement.current;
+ return ownerDocument.getElementById(buttonId);
+ })();
+ restoreElement == null ? void 0 : restoreElement.focus();
+ });
+ let api = (0, import_react33.useMemo)(() => ({ close }), [close]);
+ let slot = (0, import_react33.useMemo)(
+ () => ({ open: disclosureState === 0 /* Open */, close }),
+ [disclosureState, close]
+ );
+ let ourProps = {
+ ref: disclosureRef
+ };
+ return /* @__PURE__ */ import_react33.default.createElement(DisclosureContext.Provider, { value: reducerBag }, /* @__PURE__ */ import_react33.default.createElement(DisclosureAPIContext.Provider, { value: api }, /* @__PURE__ */ import_react33.default.createElement(
+ OpenClosedProvider,
+ {
+ value: match(disclosureState, {
+ [0 /* Open */]: 1 /* Open */,
+ [1 /* Closed */]: 2 /* Closed */
+ })
+ },
+ render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_DISCLOSURE_TAG,
+ name: "Disclosure"
+ })
+ )));
+}
+var DEFAULT_BUTTON_TAG2 = "button";
+function ButtonFn2(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-disclosure-button-${internalId}`, ...theirProps } = props;
+ let [state, dispatch] = useDisclosureContext("Disclosure.Button");
+ let panelContext = useDisclosurePanelContext();
+ let isWithinPanel = panelContext === null ? false : panelContext === state.panelId;
+ let internalButtonRef = (0, import_react33.useRef)(null);
+ let buttonRef = useSyncRefs(internalButtonRef, ref, !isWithinPanel ? state.buttonRef : null);
+ (0, import_react33.useEffect)(() => {
+ if (isWithinPanel)
+ return;
+ dispatch({ type: 2 /* SetButtonId */, buttonId: id });
+ return () => {
+ dispatch({ type: 2 /* SetButtonId */, buttonId: null });
+ };
+ }, [id, dispatch, isWithinPanel]);
+ let handleKeyDown = useEvent((event) => {
+ var _a3;
+ if (isWithinPanel) {
+ if (state.disclosureState === 1 /* Closed */)
+ return;
+ switch (event.key) {
+ case " " /* Space */:
+ case "Enter" /* Enter */:
+ event.preventDefault();
+ event.stopPropagation();
+ dispatch({ type: 0 /* ToggleDisclosure */ });
+ (_a3 = state.buttonRef.current) == null ? void 0 : _a3.focus();
+ break;
+ }
+ } else {
+ switch (event.key) {
+ case " " /* Space */:
+ case "Enter" /* Enter */:
+ event.preventDefault();
+ event.stopPropagation();
+ dispatch({ type: 0 /* ToggleDisclosure */ });
+ break;
+ }
+ }
+ });
+ let handleKeyUp = useEvent((event) => {
+ switch (event.key) {
+ case " " /* Space */:
+ event.preventDefault();
+ break;
+ }
+ });
+ let handleClick = useEvent((event) => {
+ var _a3;
+ if (isDisabledReactIssue7711(event.currentTarget))
+ return;
+ if (props.disabled)
+ return;
+ if (isWithinPanel) {
+ dispatch({ type: 0 /* ToggleDisclosure */ });
+ (_a3 = state.buttonRef.current) == null ? void 0 : _a3.focus();
+ } else {
+ dispatch({ type: 0 /* ToggleDisclosure */ });
+ }
+ });
+ let slot = (0, import_react33.useMemo)(
+ () => ({ open: state.disclosureState === 0 /* Open */ }),
+ [state]
+ );
+ let type = useResolveButtonType(props, internalButtonRef);
+ let ourProps = isWithinPanel ? { ref: buttonRef, type, onKeyDown: handleKeyDown, onClick: handleClick } : {
+ ref: buttonRef,
+ id,
+ type,
+ "aria-expanded": props.disabled ? void 0 : state.disclosureState === 0 /* Open */,
+ "aria-controls": state.linkedPanel ? state.panelId : void 0,
+ onKeyDown: handleKeyDown,
+ onKeyUp: handleKeyUp,
+ onClick: handleClick
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_BUTTON_TAG2,
+ name: "Disclosure.Button"
+ });
+}
+var DEFAULT_PANEL_TAG2 = "div";
+var PanelRenderFeatures = 1 /* RenderStrategy */ | 2 /* Static */;
+function PanelFn2(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-disclosure-panel-${internalId}`, ...theirProps } = props;
+ let [state, dispatch] = useDisclosureContext("Disclosure.Panel");
+ let { close } = useDisclosureAPIContext("Disclosure.Panel");
+ let panelRef = useSyncRefs(ref, state.panelRef, (el) => {
+ startTransition(() => dispatch({ type: el ? 4 /* LinkPanel */ : 5 /* UnlinkPanel */ }));
+ });
+ (0, import_react33.useEffect)(() => {
+ dispatch({ type: 3 /* SetPanelId */, panelId: id });
+ return () => {
+ dispatch({ type: 3 /* SetPanelId */, panelId: null });
+ };
+ }, [id, dispatch]);
+ let usesOpenClosedState = useOpenClosed();
+ let visible = (() => {
+ if (usesOpenClosedState !== null) {
+ return (usesOpenClosedState & 1 /* Open */) === 1 /* Open */;
+ }
+ return state.disclosureState === 0 /* Open */;
+ })();
+ let slot = (0, import_react33.useMemo)(
+ () => ({ open: state.disclosureState === 0 /* Open */, close }),
+ [state, close]
+ );
+ let ourProps = {
+ ref: panelRef,
+ id
+ };
+ return /* @__PURE__ */ import_react33.default.createElement(DisclosurePanelContext.Provider, { value: state.panelId }, render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_PANEL_TAG2,
+ features: PanelRenderFeatures,
+ visible,
+ name: "Disclosure.Panel"
+ }));
+}
+var DisclosureRoot = forwardRefWithAs(DisclosureFn);
+var Button2 = forwardRefWithAs(ButtonFn2);
+var Panel2 = forwardRefWithAs(PanelFn2);
+var Disclosure = Object.assign(DisclosureRoot, { Button: Button2, Panel: Panel2 });
+
+// src/components/listbox/listbox.tsx
+var import_react35 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+
+// src/hooks/use-text-value.ts
+var import_react34 = __webpack_require__(/*! react */ "react");
+
+// src/utils/get-text-value.ts
+var emojiRegex = /([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;
+function getTextContents(element) {
+ var _a3, _b;
+ let currentInnerText = (_a3 = element.innerText) != null ? _a3 : "";
+ let copy = element.cloneNode(true);
+ if (!(copy instanceof HTMLElement)) {
+ return currentInnerText;
+ }
+ let dropped = false;
+ for (let child of copy.querySelectorAll('[hidden],[aria-hidden],[role="img"]')) {
+ child.remove();
+ dropped = true;
+ }
+ let value = dropped ? (_b = copy.innerText) != null ? _b : "" : currentInnerText;
+ if (emojiRegex.test(value)) {
+ value = value.replace(emojiRegex, "");
+ }
+ return value;
+}
+function getTextValue(element) {
+ let label = element.getAttribute("aria-label");
+ if (typeof label === "string")
+ return label.trim();
+ let labelledby = element.getAttribute("aria-labelledby");
+ if (labelledby) {
+ let labels = labelledby.split(" ").map((labelledby2) => {
+ let labelEl = document.getElementById(labelledby2);
+ if (labelEl) {
+ let label2 = labelEl.getAttribute("aria-label");
+ if (typeof label2 === "string")
+ return label2.trim();
+ return getTextContents(labelEl).trim();
+ }
+ return null;
+ }).filter(Boolean);
+ if (labels.length > 0)
+ return labels.join(", ");
+ }
+ return getTextContents(element).trim();
+}
+
+// src/hooks/use-text-value.ts
+function useTextValue(element) {
+ let cacheKey = (0, import_react34.useRef)("");
+ let cacheValue = (0, import_react34.useRef)("");
+ return useEvent(() => {
+ let el = element.current;
+ if (!el)
+ return "";
+ let currentKey = el.innerText;
+ if (cacheKey.current === currentKey) {
+ return cacheValue.current;
+ }
+ let value = getTextValue(el).trim().toLowerCase();
+ cacheKey.current = currentKey;
+ cacheValue.current = value;
+ return value;
+ });
+}
+
+// src/components/listbox/listbox.tsx
+function adjustOrderedState2(state, adjustment = (i) => i) {
+ let currentActiveOption = state.activeOptionIndex !== null ? state.options[state.activeOptionIndex] : null;
+ let sortedOptions = sortByDomNode(
+ adjustment(state.options.slice()),
+ (option) => option.dataRef.current.domRef.current
+ );
+ let adjustedActiveOptionIndex = currentActiveOption ? sortedOptions.indexOf(currentActiveOption) : null;
+ if (adjustedActiveOptionIndex === -1) {
+ adjustedActiveOptionIndex = null;
+ }
+ return {
+ options: sortedOptions,
+ activeOptionIndex: adjustedActiveOptionIndex
+ };
+}
+var reducers4 = {
+ [1 /* CloseListbox */](state) {
+ if (state.dataRef.current.disabled)
+ return state;
+ if (state.listboxState === 1 /* Closed */)
+ return state;
+ return { ...state, activeOptionIndex: null, listboxState: 1 /* Closed */ };
+ },
+ [0 /* OpenListbox */](state) {
+ if (state.dataRef.current.disabled)
+ return state;
+ if (state.listboxState === 0 /* Open */)
+ return state;
+ let activeOptionIndex = state.activeOptionIndex;
+ let { isSelected } = state.dataRef.current;
+ let optionIdx = state.options.findIndex((option) => isSelected(option.dataRef.current.value));
+ if (optionIdx !== -1) {
+ activeOptionIndex = optionIdx;
+ }
+ return { ...state, listboxState: 0 /* Open */, activeOptionIndex };
+ },
+ [2 /* GoToOption */](state, action) {
+ var _a3;
+ if (state.dataRef.current.disabled)
+ return state;
+ if (state.listboxState === 1 /* Closed */)
+ return state;
+ let adjustedState = adjustOrderedState2(state);
+ let activeOptionIndex = calculateActiveIndex(action, {
+ resolveItems: () => adjustedState.options,
+ resolveActiveIndex: () => adjustedState.activeOptionIndex,
+ resolveId: (option) => option.id,
+ resolveDisabled: (option) => option.dataRef.current.disabled
+ });
+ return {
+ ...state,
+ ...adjustedState,
+ searchQuery: "",
+ activeOptionIndex,
+ activationTrigger: (_a3 = action.trigger) != null ? _a3 : 1 /* Other */
+ };
+ },
+ [3 /* Search */]: (state, action) => {
+ if (state.dataRef.current.disabled)
+ return state;
+ if (state.listboxState === 1 /* Closed */)
+ return state;
+ let wasAlreadySearching = state.searchQuery !== "";
+ let offset = wasAlreadySearching ? 0 : 1;
+ let searchQuery = state.searchQuery + action.value.toLowerCase();
+ let reOrderedOptions = state.activeOptionIndex !== null ? state.options.slice(state.activeOptionIndex + offset).concat(state.options.slice(0, state.activeOptionIndex + offset)) : state.options;
+ let matchingOption = reOrderedOptions.find(
+ (option) => {
+ var _a3;
+ return !option.dataRef.current.disabled && ((_a3 = option.dataRef.current.textValue) == null ? void 0 : _a3.startsWith(searchQuery));
+ }
+ );
+ let matchIdx = matchingOption ? state.options.indexOf(matchingOption) : -1;
+ if (matchIdx === -1 || matchIdx === state.activeOptionIndex)
+ return { ...state, searchQuery };
+ return {
+ ...state,
+ searchQuery,
+ activeOptionIndex: matchIdx,
+ activationTrigger: 1 /* Other */
+ };
+ },
+ [4 /* ClearSearch */](state) {
+ if (state.dataRef.current.disabled)
+ return state;
+ if (state.listboxState === 1 /* Closed */)
+ return state;
+ if (state.searchQuery === "")
+ return state;
+ return { ...state, searchQuery: "" };
+ },
+ [5 /* RegisterOption */]: (state, action) => {
+ let option = { id: action.id, dataRef: action.dataRef };
+ let adjustedState = adjustOrderedState2(state, (options) => [...options, option]);
+ if (state.activeOptionIndex === null) {
+ if (state.dataRef.current.isSelected(action.dataRef.current.value)) {
+ adjustedState.activeOptionIndex = adjustedState.options.indexOf(option);
+ }
+ }
+ return { ...state, ...adjustedState };
+ },
+ [6 /* UnregisterOption */]: (state, action) => {
+ let adjustedState = adjustOrderedState2(state, (options) => {
+ let idx = options.findIndex((a) => a.id === action.id);
+ if (idx !== -1)
+ options.splice(idx, 1);
+ return options;
+ });
+ return {
+ ...state,
+ ...adjustedState,
+ activationTrigger: 1 /* Other */
+ };
+ },
+ [7 /* RegisterLabel */]: (state, action) => {
+ return {
+ ...state,
+ labelId: action.id
+ };
+ }
+};
+var ListboxActionsContext = (0, import_react35.createContext)(null);
+ListboxActionsContext.displayName = "ListboxActionsContext";
+function useActions2(component) {
+ let context = (0, import_react35.useContext)(ListboxActionsContext);
+ if (context === null) {
+ let err = new Error(`<${component} /> is missing a parent component.`);
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, useActions2);
+ throw err;
+ }
+ return context;
+}
+var ListboxDataContext = (0, import_react35.createContext)(null);
+ListboxDataContext.displayName = "ListboxDataContext";
+function useData2(component) {
+ let context = (0, import_react35.useContext)(ListboxDataContext);
+ if (context === null) {
+ let err = new Error(`<${component} /> is missing a parent component.`);
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, useData2);
+ throw err;
+ }
+ return context;
+}
+function stateReducer4(state, action) {
+ return match(action.type, reducers4, state, action);
+}
+var DEFAULT_LISTBOX_TAG = import_react35.Fragment;
+function ListboxFn(props, ref) {
+ let {
+ value: controlledValue,
+ defaultValue,
+ form: formName,
+ name,
+ onChange: controlledOnChange,
+ by = (a, z) => a === z,
+ disabled = false,
+ horizontal = false,
+ multiple = false,
+ ...theirProps
+ } = props;
+ const orientation = horizontal ? "horizontal" : "vertical";
+ let listboxRef = useSyncRefs(ref);
+ let [value = multiple ? [] : void 0, theirOnChange] = useControllable(
+ controlledValue,
+ controlledOnChange,
+ defaultValue
+ );
+ let [state, dispatch] = (0, import_react35.useReducer)(stateReducer4, {
+ dataRef: (0, import_react35.createRef)(),
+ listboxState: 1 /* Closed */,
+ options: [],
+ searchQuery: "",
+ labelId: null,
+ activeOptionIndex: null,
+ activationTrigger: 1 /* Other */
+ });
+ let optionsPropsRef = (0, import_react35.useRef)({ static: false, hold: false });
+ let labelRef = (0, import_react35.useRef)(null);
+ let buttonRef = (0, import_react35.useRef)(null);
+ let optionsRef = (0, import_react35.useRef)(null);
+ let compare = useEvent(
+ typeof by === "string" ? (a, z) => {
+ let property = by;
+ return (a == null ? void 0 : a[property]) === (z == null ? void 0 : z[property]);
+ } : by
+ );
+ let isSelected = (0, import_react35.useCallback)(
+ (compareValue) => match(data.mode, {
+ [1 /* Multi */]: () => value.some((option) => compare(option, compareValue)),
+ [0 /* Single */]: () => compare(value, compareValue)
+ }),
+ [value]
+ );
+ let data = (0, import_react35.useMemo)(
+ () => ({
+ ...state,
+ value,
+ disabled,
+ mode: multiple ? 1 /* Multi */ : 0 /* Single */,
+ orientation,
+ compare,
+ isSelected,
+ optionsPropsRef,
+ labelRef,
+ buttonRef,
+ optionsRef
+ }),
+ [value, disabled, multiple, state]
+ );
+ useIsoMorphicEffect(() => {
+ state.dataRef.current = data;
+ }, [data]);
+ useOutsideClick(
+ [data.buttonRef, data.optionsRef],
+ (event, target) => {
+ var _a3;
+ dispatch({ type: 1 /* CloseListbox */ });
+ if (!isFocusableElement(target, 1 /* Loose */)) {
+ event.preventDefault();
+ (_a3 = data.buttonRef.current) == null ? void 0 : _a3.focus();
+ }
+ },
+ data.listboxState === 0 /* Open */
+ );
+ let slot = (0, import_react35.useMemo)(
+ () => ({ open: data.listboxState === 0 /* Open */, disabled, value }),
+ [data, disabled, value]
+ );
+ let selectOption = useEvent((id) => {
+ let option = data.options.find((item) => item.id === id);
+ if (!option)
+ return;
+ onChange(option.dataRef.current.value);
+ });
+ let selectActiveOption = useEvent(() => {
+ if (data.activeOptionIndex !== null) {
+ let { dataRef, id } = data.options[data.activeOptionIndex];
+ onChange(dataRef.current.value);
+ dispatch({ type: 2 /* GoToOption */, focus: 4 /* Specific */, id });
+ }
+ });
+ let openListbox = useEvent(() => dispatch({ type: 0 /* OpenListbox */ }));
+ let closeListbox = useEvent(() => dispatch({ type: 1 /* CloseListbox */ }));
+ let goToOption = useEvent((focus, id, trigger) => {
+ if (focus === 4 /* Specific */) {
+ return dispatch({ type: 2 /* GoToOption */, focus: 4 /* Specific */, id, trigger });
+ }
+ return dispatch({ type: 2 /* GoToOption */, focus, trigger });
+ });
+ let registerOption = useEvent((id, dataRef) => {
+ dispatch({ type: 5 /* RegisterOption */, id, dataRef });
+ return () => dispatch({ type: 6 /* UnregisterOption */, id });
+ });
+ let registerLabel = useEvent((id) => {
+ dispatch({ type: 7 /* RegisterLabel */, id });
+ return () => dispatch({ type: 7 /* RegisterLabel */, id: null });
+ });
+ let onChange = useEvent((value2) => {
+ return match(data.mode, {
+ [0 /* Single */]() {
+ return theirOnChange == null ? void 0 : theirOnChange(value2);
+ },
+ [1 /* Multi */]() {
+ let copy = data.value.slice();
+ let idx = copy.findIndex((item) => compare(item, value2));
+ if (idx === -1) {
+ copy.push(value2);
+ } else {
+ copy.splice(idx, 1);
+ }
+ return theirOnChange == null ? void 0 : theirOnChange(copy);
+ }
+ });
+ });
+ let search = useEvent((value2) => dispatch({ type: 3 /* Search */, value: value2 }));
+ let clearSearch = useEvent(() => dispatch({ type: 4 /* ClearSearch */ }));
+ let actions = (0, import_react35.useMemo)(
+ () => ({
+ onChange,
+ registerOption,
+ registerLabel,
+ goToOption,
+ closeListbox,
+ openListbox,
+ selectActiveOption,
+ selectOption,
+ search,
+ clearSearch
+ }),
+ []
+ );
+ let ourProps = { ref: listboxRef };
+ let form = (0, import_react35.useRef)(null);
+ let d = useDisposables();
+ (0, import_react35.useEffect)(() => {
+ if (!form.current)
+ return;
+ if (defaultValue === void 0)
+ return;
+ d.addEventListener(form.current, "reset", () => {
+ onChange(defaultValue);
+ });
+ }, [
+ form,
+ onChange
+ /* Explicitly ignoring `defaultValue` */
+ ]);
+ return /* @__PURE__ */ import_react35.default.createElement(ListboxActionsContext.Provider, { value: actions }, /* @__PURE__ */ import_react35.default.createElement(ListboxDataContext.Provider, { value: data }, /* @__PURE__ */ import_react35.default.createElement(
+ OpenClosedProvider,
+ {
+ value: match(data.listboxState, {
+ [0 /* Open */]: 1 /* Open */,
+ [1 /* Closed */]: 2 /* Closed */
+ })
+ },
+ name != null && value != null && objectToFormEntries({ [name]: value }).map(([name2, value2], idx) => /* @__PURE__ */ import_react35.default.createElement(
+ Hidden,
+ {
+ features: 4 /* Hidden */,
+ ref: idx === 0 ? (element) => {
+ var _a3;
+ form.current = (_a3 = element == null ? void 0 : element.closest("form")) != null ? _a3 : null;
+ } : void 0,
+ ...compact({
+ key: name2,
+ as: "input",
+ type: "hidden",
+ hidden: true,
+ readOnly: true,
+ form: formName,
+ name: name2,
+ value: value2
+ })
+ }
+ )),
+ render({ ourProps, theirProps, slot, defaultTag: DEFAULT_LISTBOX_TAG, name: "Listbox" })
+ )));
+}
+var DEFAULT_BUTTON_TAG3 = "button";
+function ButtonFn3(props, ref) {
+ var _a3;
+ let internalId = useId();
+ let { id = `headlessui-listbox-button-${internalId}`, ...theirProps } = props;
+ let data = useData2("Listbox.Button");
+ let actions = useActions2("Listbox.Button");
+ let buttonRef = useSyncRefs(data.buttonRef, ref);
+ let d = useDisposables();
+ let handleKeyDown = useEvent((event) => {
+ switch (event.key) {
+ case " " /* Space */:
+ case "Enter" /* Enter */:
+ case "ArrowDown" /* ArrowDown */:
+ event.preventDefault();
+ actions.openListbox();
+ d.nextFrame(() => {
+ if (!data.value)
+ actions.goToOption(0 /* First */);
+ });
+ break;
+ case "ArrowUp" /* ArrowUp */:
+ event.preventDefault();
+ actions.openListbox();
+ d.nextFrame(() => {
+ if (!data.value)
+ actions.goToOption(3 /* Last */);
+ });
+ break;
+ }
+ });
+ let handleKeyUp = useEvent((event) => {
+ switch (event.key) {
+ case " " /* Space */:
+ event.preventDefault();
+ break;
+ }
+ });
+ let handleClick = useEvent((event) => {
+ if (isDisabledReactIssue7711(event.currentTarget))
+ return event.preventDefault();
+ if (data.listboxState === 0 /* Open */) {
+ actions.closeListbox();
+ d.nextFrame(() => {
+ var _a4;
+ return (_a4 = data.buttonRef.current) == null ? void 0 : _a4.focus({ preventScroll: true });
+ });
+ } else {
+ event.preventDefault();
+ actions.openListbox();
+ }
+ });
+ let labelledby = useComputed(() => {
+ if (!data.labelId)
+ return void 0;
+ return [data.labelId, id].join(" ");
+ }, [data.labelId, id]);
+ let slot = (0, import_react35.useMemo)(
+ () => ({
+ open: data.listboxState === 0 /* Open */,
+ disabled: data.disabled,
+ value: data.value
+ }),
+ [data]
+ );
+ let ourProps = {
+ ref: buttonRef,
+ id,
+ type: useResolveButtonType(props, data.buttonRef),
+ "aria-haspopup": "listbox",
+ "aria-controls": (_a3 = data.optionsRef.current) == null ? void 0 : _a3.id,
+ "aria-expanded": data.disabled ? void 0 : data.listboxState === 0 /* Open */,
+ "aria-labelledby": labelledby,
+ disabled: data.disabled,
+ onKeyDown: handleKeyDown,
+ onKeyUp: handleKeyUp,
+ onClick: handleClick
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_BUTTON_TAG3,
+ name: "Listbox.Button"
+ });
+}
+var DEFAULT_LABEL_TAG2 = "label";
+function LabelFn2(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-listbox-label-${internalId}`, ...theirProps } = props;
+ let data = useData2("Listbox.Label");
+ let actions = useActions2("Listbox.Label");
+ let labelRef = useSyncRefs(data.labelRef, ref);
+ useIsoMorphicEffect(() => actions.registerLabel(id), [id]);
+ let handleClick = useEvent(() => {
+ var _a3;
+ return (_a3 = data.buttonRef.current) == null ? void 0 : _a3.focus({ preventScroll: true });
+ });
+ let slot = (0, import_react35.useMemo)(
+ () => ({ open: data.listboxState === 0 /* Open */, disabled: data.disabled }),
+ [data]
+ );
+ let ourProps = { ref: labelRef, id, onClick: handleClick };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_LABEL_TAG2,
+ name: "Listbox.Label"
+ });
+}
+var DEFAULT_OPTIONS_TAG2 = "ul";
+var OptionsRenderFeatures2 = 1 /* RenderStrategy */ | 2 /* Static */;
+function OptionsFn2(props, ref) {
+ var _a3;
+ let internalId = useId();
+ let { id = `headlessui-listbox-options-${internalId}`, ...theirProps } = props;
+ let data = useData2("Listbox.Options");
+ let actions = useActions2("Listbox.Options");
+ let optionsRef = useSyncRefs(data.optionsRef, ref);
+ let d = useDisposables();
+ let searchDisposables = useDisposables();
+ let usesOpenClosedState = useOpenClosed();
+ let visible = (() => {
+ if (usesOpenClosedState !== null) {
+ return (usesOpenClosedState & 1 /* Open */) === 1 /* Open */;
+ }
+ return data.listboxState === 0 /* Open */;
+ })();
+ (0, import_react35.useEffect)(() => {
+ var _a4;
+ let container = data.optionsRef.current;
+ if (!container)
+ return;
+ if (data.listboxState !== 0 /* Open */)
+ return;
+ if (container === ((_a4 = getOwnerDocument(container)) == null ? void 0 : _a4.activeElement))
+ return;
+ container.focus({ preventScroll: true });
+ }, [data.listboxState, data.optionsRef]);
+ let handleKeyDown = useEvent((event) => {
+ searchDisposables.dispose();
+ switch (event.key) {
+ case " " /* Space */:
+ if (data.searchQuery !== "") {
+ event.preventDefault();
+ event.stopPropagation();
+ return actions.search(event.key);
+ }
+ case "Enter" /* Enter */:
+ event.preventDefault();
+ event.stopPropagation();
+ if (data.activeOptionIndex !== null) {
+ let { dataRef } = data.options[data.activeOptionIndex];
+ actions.onChange(dataRef.current.value);
+ }
+ if (data.mode === 0 /* Single */) {
+ actions.closeListbox();
+ disposables().nextFrame(() => {
+ var _a4;
+ return (_a4 = data.buttonRef.current) == null ? void 0 : _a4.focus({ preventScroll: true });
+ });
+ }
+ break;
+ case match(data.orientation, { vertical: "ArrowDown" /* ArrowDown */, horizontal: "ArrowRight" /* ArrowRight */ }):
+ event.preventDefault();
+ event.stopPropagation();
+ return actions.goToOption(2 /* Next */);
+ case match(data.orientation, { vertical: "ArrowUp" /* ArrowUp */, horizontal: "ArrowLeft" /* ArrowLeft */ }):
+ event.preventDefault();
+ event.stopPropagation();
+ return actions.goToOption(1 /* Previous */);
+ case "Home" /* Home */:
+ case "PageUp" /* PageUp */:
+ event.preventDefault();
+ event.stopPropagation();
+ return actions.goToOption(0 /* First */);
+ case "End" /* End */:
+ case "PageDown" /* PageDown */:
+ event.preventDefault();
+ event.stopPropagation();
+ return actions.goToOption(3 /* Last */);
+ case "Escape" /* Escape */:
+ event.preventDefault();
+ event.stopPropagation();
+ actions.closeListbox();
+ return d.nextFrame(() => {
+ var _a4;
+ return (_a4 = data.buttonRef.current) == null ? void 0 : _a4.focus({ preventScroll: true });
+ });
+ case "Tab" /* Tab */:
+ event.preventDefault();
+ event.stopPropagation();
+ break;
+ default:
+ if (event.key.length === 1) {
+ actions.search(event.key);
+ searchDisposables.setTimeout(() => actions.clearSearch(), 350);
+ }
+ break;
+ }
+ });
+ let labelledby = useComputed(
+ () => {
+ var _a4, _b, _c;
+ return (_c = (_a4 = data.labelRef.current) == null ? void 0 : _a4.id) != null ? _c : (_b = data.buttonRef.current) == null ? void 0 : _b.id;
+ },
+ [data.labelRef.current, data.buttonRef.current]
+ );
+ let slot = (0, import_react35.useMemo)(
+ () => ({ open: data.listboxState === 0 /* Open */ }),
+ [data]
+ );
+ let ourProps = {
+ "aria-activedescendant": data.activeOptionIndex === null ? void 0 : (_a3 = data.options[data.activeOptionIndex]) == null ? void 0 : _a3.id,
+ "aria-multiselectable": data.mode === 1 /* Multi */ ? true : void 0,
+ "aria-labelledby": labelledby,
+ "aria-orientation": data.orientation,
+ id,
+ onKeyDown: handleKeyDown,
+ role: "listbox",
+ tabIndex: 0,
+ ref: optionsRef
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_OPTIONS_TAG2,
+ features: OptionsRenderFeatures2,
+ visible,
+ name: "Listbox.Options"
+ });
+}
+var DEFAULT_OPTION_TAG2 = "li";
+function OptionFn2(props, ref) {
+ let internalId = useId();
+ let {
+ id = `headlessui-listbox-option-${internalId}`,
+ disabled = false,
+ value,
+ ...theirProps
+ } = props;
+ let data = useData2("Listbox.Option");
+ let actions = useActions2("Listbox.Option");
+ let active = data.activeOptionIndex !== null ? data.options[data.activeOptionIndex].id === id : false;
+ let selected = data.isSelected(value);
+ let internalOptionRef = (0, import_react35.useRef)(null);
+ let getTextValue2 = useTextValue(internalOptionRef);
+ let bag = useLatestValue({
+ disabled,
+ value,
+ domRef: internalOptionRef,
+ get textValue() {
+ return getTextValue2();
+ }
+ });
+ let optionRef = useSyncRefs(ref, internalOptionRef);
+ useIsoMorphicEffect(() => {
+ if (data.listboxState !== 0 /* Open */)
+ return;
+ if (!active)
+ return;
+ if (data.activationTrigger === 0 /* Pointer */)
+ return;
+ let d = disposables();
+ d.requestAnimationFrame(() => {
+ var _a3, _b;
+ (_b = (_a3 = internalOptionRef.current) == null ? void 0 : _a3.scrollIntoView) == null ? void 0 : _b.call(_a3, { block: "nearest" });
+ });
+ return d.dispose;
+ }, [
+ internalOptionRef,
+ active,
+ data.listboxState,
+ data.activationTrigger,
+ /* We also want to trigger this when the position of the active item changes so that we can re-trigger the scrollIntoView */
+ data.activeOptionIndex
+ ]);
+ useIsoMorphicEffect(() => actions.registerOption(id, bag), [bag, id]);
+ let handleClick = useEvent((event) => {
+ if (disabled)
+ return event.preventDefault();
+ actions.onChange(value);
+ if (data.mode === 0 /* Single */) {
+ actions.closeListbox();
+ disposables().nextFrame(() => {
+ var _a3;
+ return (_a3 = data.buttonRef.current) == null ? void 0 : _a3.focus({ preventScroll: true });
+ });
+ }
+ });
+ let handleFocus = useEvent(() => {
+ if (disabled)
+ return actions.goToOption(5 /* Nothing */);
+ actions.goToOption(4 /* Specific */, id);
+ });
+ let pointer = useTrackedPointer();
+ let handleEnter = useEvent((evt) => pointer.update(evt));
+ let handleMove = useEvent((evt) => {
+ if (!pointer.wasMoved(evt))
+ return;
+ if (disabled)
+ return;
+ if (active)
+ return;
+ actions.goToOption(4 /* Specific */, id, 0 /* Pointer */);
+ });
+ let handleLeave = useEvent((evt) => {
+ if (!pointer.wasMoved(evt))
+ return;
+ if (disabled)
+ return;
+ if (!active)
+ return;
+ actions.goToOption(5 /* Nothing */);
+ });
+ let slot = (0, import_react35.useMemo)(
+ () => ({ active, selected, disabled }),
+ [active, selected, disabled]
+ );
+ let ourProps = {
+ id,
+ ref: optionRef,
+ role: "option",
+ tabIndex: disabled === true ? void 0 : -1,
+ "aria-disabled": disabled === true ? true : void 0,
+ // According to the WAI-ARIA best practices, we should use aria-checked for
+ // multi-select,but Voice-Over disagrees. So we use aria-checked instead for
+ // both single and multi-select.
+ "aria-selected": selected,
+ disabled: void 0,
+ // Never forward the `disabled` prop
+ onClick: handleClick,
+ onFocus: handleFocus,
+ onPointerEnter: handleEnter,
+ onMouseEnter: handleEnter,
+ onPointerMove: handleMove,
+ onMouseMove: handleMove,
+ onPointerLeave: handleLeave,
+ onMouseLeave: handleLeave
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_OPTION_TAG2,
+ name: "Listbox.Option"
+ });
+}
+var ListboxRoot = forwardRefWithAs(ListboxFn);
+var Button3 = forwardRefWithAs(ButtonFn3);
+var Label2 = forwardRefWithAs(LabelFn2);
+var Options2 = forwardRefWithAs(OptionsFn2);
+var Option2 = forwardRefWithAs(OptionFn2);
+var Listbox = Object.assign(ListboxRoot, { Button: Button3, Label: Label2, Options: Options2, Option: Option2 });
+
+// src/components/menu/menu.tsx
+var import_react36 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+function adjustOrderedState3(state, adjustment = (i) => i) {
+ let currentActiveItem = state.activeItemIndex !== null ? state.items[state.activeItemIndex] : null;
+ let sortedItems = sortByDomNode(
+ adjustment(state.items.slice()),
+ (item) => item.dataRef.current.domRef.current
+ );
+ let adjustedActiveItemIndex = currentActiveItem ? sortedItems.indexOf(currentActiveItem) : null;
+ if (adjustedActiveItemIndex === -1) {
+ adjustedActiveItemIndex = null;
+ }
+ return {
+ items: sortedItems,
+ activeItemIndex: adjustedActiveItemIndex
+ };
+}
+var reducers5 = {
+ [1 /* CloseMenu */](state) {
+ if (state.menuState === 1 /* Closed */)
+ return state;
+ return { ...state, activeItemIndex: null, menuState: 1 /* Closed */ };
+ },
+ [0 /* OpenMenu */](state) {
+ if (state.menuState === 0 /* Open */)
+ return state;
+ return {
+ ...state,
+ /* We can turn off demo mode once we re-open the `Menu` */
+ __demoMode: false,
+ menuState: 0 /* Open */
+ };
+ },
+ [2 /* GoToItem */]: (state, action) => {
+ var _a3;
+ let adjustedState = adjustOrderedState3(state);
+ let activeItemIndex = calculateActiveIndex(action, {
+ resolveItems: () => adjustedState.items,
+ resolveActiveIndex: () => adjustedState.activeItemIndex,
+ resolveId: (item) => item.id,
+ resolveDisabled: (item) => item.dataRef.current.disabled
+ });
+ return {
+ ...state,
+ ...adjustedState,
+ searchQuery: "",
+ activeItemIndex,
+ activationTrigger: (_a3 = action.trigger) != null ? _a3 : 1 /* Other */
+ };
+ },
+ [3 /* Search */]: (state, action) => {
+ let wasAlreadySearching = state.searchQuery !== "";
+ let offset = wasAlreadySearching ? 0 : 1;
+ let searchQuery = state.searchQuery + action.value.toLowerCase();
+ let reOrderedItems = state.activeItemIndex !== null ? state.items.slice(state.activeItemIndex + offset).concat(state.items.slice(0, state.activeItemIndex + offset)) : state.items;
+ let matchingItem = reOrderedItems.find(
+ (item) => {
+ var _a3;
+ return ((_a3 = item.dataRef.current.textValue) == null ? void 0 : _a3.startsWith(searchQuery)) && !item.dataRef.current.disabled;
+ }
+ );
+ let matchIdx = matchingItem ? state.items.indexOf(matchingItem) : -1;
+ if (matchIdx === -1 || matchIdx === state.activeItemIndex)
+ return { ...state, searchQuery };
+ return {
+ ...state,
+ searchQuery,
+ activeItemIndex: matchIdx,
+ activationTrigger: 1 /* Other */
+ };
+ },
+ [4 /* ClearSearch */](state) {
+ if (state.searchQuery === "")
+ return state;
+ return { ...state, searchQuery: "", searchActiveItemIndex: null };
+ },
+ [5 /* RegisterItem */]: (state, action) => {
+ let adjustedState = adjustOrderedState3(state, (items) => [
+ ...items,
+ { id: action.id, dataRef: action.dataRef }
+ ]);
+ return { ...state, ...adjustedState };
+ },
+ [6 /* UnregisterItem */]: (state, action) => {
+ let adjustedState = adjustOrderedState3(state, (items) => {
+ let idx = items.findIndex((a) => a.id === action.id);
+ if (idx !== -1)
+ items.splice(idx, 1);
+ return items;
+ });
+ return {
+ ...state,
+ ...adjustedState,
+ activationTrigger: 1 /* Other */
+ };
+ }
+};
+var MenuContext = (0, import_react36.createContext)(null);
+MenuContext.displayName = "MenuContext";
+function useMenuContext(component) {
+ let context = (0, import_react36.useContext)(MenuContext);
+ if (context === null) {
+ let err = new Error(`<${component} /> is missing a parent component.`);
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, useMenuContext);
+ throw err;
+ }
+ return context;
+}
+function stateReducer5(state, action) {
+ return match(action.type, reducers5, state, action);
+}
+var DEFAULT_MENU_TAG = import_react36.Fragment;
+function MenuFn(props, ref) {
+ let { __demoMode = false, ...theirProps } = props;
+ let reducerBag = (0, import_react36.useReducer)(stateReducer5, {
+ __demoMode,
+ menuState: __demoMode ? 0 /* Open */ : 1 /* Closed */,
+ buttonRef: (0, import_react36.createRef)(),
+ itemsRef: (0, import_react36.createRef)(),
+ items: [],
+ searchQuery: "",
+ activeItemIndex: null,
+ activationTrigger: 1 /* Other */
+ });
+ let [{ menuState, itemsRef, buttonRef }, dispatch] = reducerBag;
+ let menuRef = useSyncRefs(ref);
+ useOutsideClick(
+ [buttonRef, itemsRef],
+ (event, target) => {
+ var _a3;
+ dispatch({ type: 1 /* CloseMenu */ });
+ if (!isFocusableElement(target, 1 /* Loose */)) {
+ event.preventDefault();
+ (_a3 = buttonRef.current) == null ? void 0 : _a3.focus();
+ }
+ },
+ menuState === 0 /* Open */
+ );
+ let close = useEvent(() => {
+ dispatch({ type: 1 /* CloseMenu */ });
+ });
+ let slot = (0, import_react36.useMemo)(
+ () => ({ open: menuState === 0 /* Open */, close }),
+ [menuState, close]
+ );
+ let ourProps = { ref: menuRef };
+ return /* @__PURE__ */ import_react36.default.createElement(MenuContext.Provider, { value: reducerBag }, /* @__PURE__ */ import_react36.default.createElement(
+ OpenClosedProvider,
+ {
+ value: match(menuState, {
+ [0 /* Open */]: 1 /* Open */,
+ [1 /* Closed */]: 2 /* Closed */
+ })
+ },
+ render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_MENU_TAG,
+ name: "Menu"
+ })
+ ));
+}
+var DEFAULT_BUTTON_TAG4 = "button";
+function ButtonFn4(props, ref) {
+ var _a3;
+ let internalId = useId();
+ let { id = `headlessui-menu-button-${internalId}`, ...theirProps } = props;
+ let [state, dispatch] = useMenuContext("Menu.Button");
+ let buttonRef = useSyncRefs(state.buttonRef, ref);
+ let d = useDisposables();
+ let handleKeyDown = useEvent((event) => {
+ switch (event.key) {
+ case " " /* Space */:
+ case "Enter" /* Enter */:
+ case "ArrowDown" /* ArrowDown */:
+ event.preventDefault();
+ event.stopPropagation();
+ dispatch({ type: 0 /* OpenMenu */ });
+ d.nextFrame(() => dispatch({ type: 2 /* GoToItem */, focus: 0 /* First */ }));
+ break;
+ case "ArrowUp" /* ArrowUp */:
+ event.preventDefault();
+ event.stopPropagation();
+ dispatch({ type: 0 /* OpenMenu */ });
+ d.nextFrame(() => dispatch({ type: 2 /* GoToItem */, focus: 3 /* Last */ }));
+ break;
+ }
+ });
+ let handleKeyUp = useEvent((event) => {
+ switch (event.key) {
+ case " " /* Space */:
+ event.preventDefault();
+ break;
+ }
+ });
+ let handleClick = useEvent((event) => {
+ if (isDisabledReactIssue7711(event.currentTarget))
+ return event.preventDefault();
+ if (props.disabled)
+ return;
+ if (state.menuState === 0 /* Open */) {
+ dispatch({ type: 1 /* CloseMenu */ });
+ d.nextFrame(() => {
+ var _a4;
+ return (_a4 = state.buttonRef.current) == null ? void 0 : _a4.focus({ preventScroll: true });
+ });
+ } else {
+ event.preventDefault();
+ dispatch({ type: 0 /* OpenMenu */ });
+ }
+ });
+ let slot = (0, import_react36.useMemo)(
+ () => ({ open: state.menuState === 0 /* Open */ }),
+ [state]
+ );
+ let ourProps = {
+ ref: buttonRef,
+ id,
+ type: useResolveButtonType(props, state.buttonRef),
+ "aria-haspopup": "menu",
+ "aria-controls": (_a3 = state.itemsRef.current) == null ? void 0 : _a3.id,
+ "aria-expanded": props.disabled ? void 0 : state.menuState === 0 /* Open */,
+ onKeyDown: handleKeyDown,
+ onKeyUp: handleKeyUp,
+ onClick: handleClick
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_BUTTON_TAG4,
+ name: "Menu.Button"
+ });
+}
+var DEFAULT_ITEMS_TAG = "div";
+var ItemsRenderFeatures = 1 /* RenderStrategy */ | 2 /* Static */;
+function ItemsFn(props, ref) {
+ var _a3, _b;
+ let internalId = useId();
+ let { id = `headlessui-menu-items-${internalId}`, ...theirProps } = props;
+ let [state, dispatch] = useMenuContext("Menu.Items");
+ let itemsRef = useSyncRefs(state.itemsRef, ref);
+ let ownerDocument = useOwnerDocument(state.itemsRef);
+ let searchDisposables = useDisposables();
+ let usesOpenClosedState = useOpenClosed();
+ let visible = (() => {
+ if (usesOpenClosedState !== null) {
+ return (usesOpenClosedState & 1 /* Open */) === 1 /* Open */;
+ }
+ return state.menuState === 0 /* Open */;
+ })();
+ (0, import_react36.useEffect)(() => {
+ let container = state.itemsRef.current;
+ if (!container)
+ return;
+ if (state.menuState !== 0 /* Open */)
+ return;
+ if (container === (ownerDocument == null ? void 0 : ownerDocument.activeElement))
+ return;
+ container.focus({ preventScroll: true });
+ }, [state.menuState, state.itemsRef, ownerDocument]);
+ useTreeWalker({
+ container: state.itemsRef.current,
+ enabled: state.menuState === 0 /* Open */,
+ accept(node) {
+ if (node.getAttribute("role") === "menuitem")
+ return NodeFilter.FILTER_REJECT;
+ if (node.hasAttribute("role"))
+ return NodeFilter.FILTER_SKIP;
+ return NodeFilter.FILTER_ACCEPT;
+ },
+ walk(node) {
+ node.setAttribute("role", "none");
+ }
+ });
+ let handleKeyDown = useEvent((event) => {
+ var _a4, _b2;
+ searchDisposables.dispose();
+ switch (event.key) {
+ case " " /* Space */:
+ if (state.searchQuery !== "") {
+ event.preventDefault();
+ event.stopPropagation();
+ return dispatch({ type: 3 /* Search */, value: event.key });
+ }
+ case "Enter" /* Enter */:
+ event.preventDefault();
+ event.stopPropagation();
+ dispatch({ type: 1 /* CloseMenu */ });
+ if (state.activeItemIndex !== null) {
+ let { dataRef } = state.items[state.activeItemIndex];
+ (_b2 = (_a4 = dataRef.current) == null ? void 0 : _a4.domRef.current) == null ? void 0 : _b2.click();
+ }
+ restoreFocusIfNecessary(state.buttonRef.current);
+ break;
+ case "ArrowDown" /* ArrowDown */:
+ event.preventDefault();
+ event.stopPropagation();
+ return dispatch({ type: 2 /* GoToItem */, focus: 2 /* Next */ });
+ case "ArrowUp" /* ArrowUp */:
+ event.preventDefault();
+ event.stopPropagation();
+ return dispatch({ type: 2 /* GoToItem */, focus: 1 /* Previous */ });
+ case "Home" /* Home */:
+ case "PageUp" /* PageUp */:
+ event.preventDefault();
+ event.stopPropagation();
+ return dispatch({ type: 2 /* GoToItem */, focus: 0 /* First */ });
+ case "End" /* End */:
+ case "PageDown" /* PageDown */:
+ event.preventDefault();
+ event.stopPropagation();
+ return dispatch({ type: 2 /* GoToItem */, focus: 3 /* Last */ });
+ case "Escape" /* Escape */:
+ event.preventDefault();
+ event.stopPropagation();
+ dispatch({ type: 1 /* CloseMenu */ });
+ disposables().nextFrame(() => {
+ var _a5;
+ return (_a5 = state.buttonRef.current) == null ? void 0 : _a5.focus({ preventScroll: true });
+ });
+ break;
+ case "Tab" /* Tab */:
+ event.preventDefault();
+ event.stopPropagation();
+ dispatch({ type: 1 /* CloseMenu */ });
+ disposables().nextFrame(() => {
+ focusFrom(
+ state.buttonRef.current,
+ event.shiftKey ? 2 /* Previous */ : 4 /* Next */
+ );
+ });
+ break;
+ default:
+ if (event.key.length === 1) {
+ dispatch({ type: 3 /* Search */, value: event.key });
+ searchDisposables.setTimeout(() => dispatch({ type: 4 /* ClearSearch */ }), 350);
+ }
+ break;
+ }
+ });
+ let handleKeyUp = useEvent((event) => {
+ switch (event.key) {
+ case " " /* Space */:
+ event.preventDefault();
+ break;
+ }
+ });
+ let slot = (0, import_react36.useMemo)(
+ () => ({ open: state.menuState === 0 /* Open */ }),
+ [state]
+ );
+ let ourProps = {
+ "aria-activedescendant": state.activeItemIndex === null ? void 0 : (_a3 = state.items[state.activeItemIndex]) == null ? void 0 : _a3.id,
+ "aria-labelledby": (_b = state.buttonRef.current) == null ? void 0 : _b.id,
+ id,
+ onKeyDown: handleKeyDown,
+ onKeyUp: handleKeyUp,
+ role: "menu",
+ tabIndex: 0,
+ ref: itemsRef
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_ITEMS_TAG,
+ features: ItemsRenderFeatures,
+ visible,
+ name: "Menu.Items"
+ });
+}
+var DEFAULT_ITEM_TAG = import_react36.Fragment;
+function ItemFn(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-menu-item-${internalId}`, disabled = false, ...theirProps } = props;
+ let [state, dispatch] = useMenuContext("Menu.Item");
+ let active = state.activeItemIndex !== null ? state.items[state.activeItemIndex].id === id : false;
+ let internalItemRef = (0, import_react36.useRef)(null);
+ let itemRef = useSyncRefs(ref, internalItemRef);
+ useIsoMorphicEffect(() => {
+ if (state.__demoMode)
+ return;
+ if (state.menuState !== 0 /* Open */)
+ return;
+ if (!active)
+ return;
+ if (state.activationTrigger === 0 /* Pointer */)
+ return;
+ let d = disposables();
+ d.requestAnimationFrame(() => {
+ var _a3, _b;
+ (_b = (_a3 = internalItemRef.current) == null ? void 0 : _a3.scrollIntoView) == null ? void 0 : _b.call(_a3, { block: "nearest" });
+ });
+ return d.dispose;
+ }, [
+ state.__demoMode,
+ internalItemRef,
+ active,
+ state.menuState,
+ state.activationTrigger,
+ /* We also want to trigger this when the position of the active item changes so that we can re-trigger the scrollIntoView */
+ state.activeItemIndex
+ ]);
+ let getTextValue2 = useTextValue(internalItemRef);
+ let bag = (0, import_react36.useRef)({
+ disabled,
+ domRef: internalItemRef,
+ get textValue() {
+ return getTextValue2();
+ }
+ });
+ useIsoMorphicEffect(() => {
+ bag.current.disabled = disabled;
+ }, [bag, disabled]);
+ useIsoMorphicEffect(() => {
+ dispatch({ type: 5 /* RegisterItem */, id, dataRef: bag });
+ return () => dispatch({ type: 6 /* UnregisterItem */, id });
+ }, [bag, id]);
+ let close = useEvent(() => {
+ dispatch({ type: 1 /* CloseMenu */ });
+ });
+ let handleClick = useEvent((event) => {
+ if (disabled)
+ return event.preventDefault();
+ dispatch({ type: 1 /* CloseMenu */ });
+ restoreFocusIfNecessary(state.buttonRef.current);
+ });
+ let handleFocus = useEvent(() => {
+ if (disabled)
+ return dispatch({ type: 2 /* GoToItem */, focus: 5 /* Nothing */ });
+ dispatch({ type: 2 /* GoToItem */, focus: 4 /* Specific */, id });
+ });
+ let pointer = useTrackedPointer();
+ let handleEnter = useEvent((evt) => pointer.update(evt));
+ let handleMove = useEvent((evt) => {
+ if (!pointer.wasMoved(evt))
+ return;
+ if (disabled)
+ return;
+ if (active)
+ return;
+ dispatch({
+ type: 2 /* GoToItem */,
+ focus: 4 /* Specific */,
+ id,
+ trigger: 0 /* Pointer */
+ });
+ });
+ let handleLeave = useEvent((evt) => {
+ if (!pointer.wasMoved(evt))
+ return;
+ if (disabled)
+ return;
+ if (!active)
+ return;
+ dispatch({ type: 2 /* GoToItem */, focus: 5 /* Nothing */ });
+ });
+ let slot = (0, import_react36.useMemo)(
+ () => ({ active, disabled, close }),
+ [active, disabled, close]
+ );
+ let ourProps = {
+ id,
+ ref: itemRef,
+ role: "menuitem",
+ tabIndex: disabled === true ? void 0 : -1,
+ "aria-disabled": disabled === true ? true : void 0,
+ disabled: void 0,
+ // Never forward the `disabled` prop
+ onClick: handleClick,
+ onFocus: handleFocus,
+ onPointerEnter: handleEnter,
+ onMouseEnter: handleEnter,
+ onPointerMove: handleMove,
+ onMouseMove: handleMove,
+ onPointerLeave: handleLeave,
+ onMouseLeave: handleLeave
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_ITEM_TAG,
+ name: "Menu.Item"
+ });
+}
+var MenuRoot = forwardRefWithAs(MenuFn);
+var Button4 = forwardRefWithAs(ButtonFn4);
+var Items = forwardRefWithAs(ItemsFn);
+var Item = forwardRefWithAs(ItemFn);
+var Menu = Object.assign(MenuRoot, { Button: Button4, Items, Item });
+
+// src/components/popover/popover.tsx
+var import_react37 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+var reducers6 = {
+ [0 /* TogglePopover */]: (state) => {
+ let nextState = {
+ ...state,
+ popoverState: match(state.popoverState, {
+ [0 /* Open */]: 1 /* Closed */,
+ [1 /* Closed */]: 0 /* Open */
+ })
+ };
+ if (nextState.popoverState === 0 /* Open */) {
+ nextState.__demoMode = false;
+ }
+ return nextState;
+ },
+ [1 /* ClosePopover */](state) {
+ if (state.popoverState === 1 /* Closed */)
+ return state;
+ return { ...state, popoverState: 1 /* Closed */ };
+ },
+ [2 /* SetButton */](state, action) {
+ if (state.button === action.button)
+ return state;
+ return { ...state, button: action.button };
+ },
+ [3 /* SetButtonId */](state, action) {
+ if (state.buttonId === action.buttonId)
+ return state;
+ return { ...state, buttonId: action.buttonId };
+ },
+ [4 /* SetPanel */](state, action) {
+ if (state.panel === action.panel)
+ return state;
+ return { ...state, panel: action.panel };
+ },
+ [5 /* SetPanelId */](state, action) {
+ if (state.panelId === action.panelId)
+ return state;
+ return { ...state, panelId: action.panelId };
+ }
+};
+var PopoverContext = (0, import_react37.createContext)(null);
+PopoverContext.displayName = "PopoverContext";
+function usePopoverContext(component) {
+ let context = (0, import_react37.useContext)(PopoverContext);
+ if (context === null) {
+ let err = new Error(`<${component} /> is missing a parent component.`);
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, usePopoverContext);
+ throw err;
+ }
+ return context;
+}
+var PopoverAPIContext = (0, import_react37.createContext)(null);
+PopoverAPIContext.displayName = "PopoverAPIContext";
+function usePopoverAPIContext(component) {
+ let context = (0, import_react37.useContext)(PopoverAPIContext);
+ if (context === null) {
+ let err = new Error(`<${component} /> is missing a parent component.`);
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, usePopoverAPIContext);
+ throw err;
+ }
+ return context;
+}
+var PopoverGroupContext = (0, import_react37.createContext)(null);
+PopoverGroupContext.displayName = "PopoverGroupContext";
+function usePopoverGroupContext() {
+ return (0, import_react37.useContext)(PopoverGroupContext);
+}
+var PopoverPanelContext = (0, import_react37.createContext)(null);
+PopoverPanelContext.displayName = "PopoverPanelContext";
+function usePopoverPanelContext() {
+ return (0, import_react37.useContext)(PopoverPanelContext);
+}
+function stateReducer6(state, action) {
+ return match(action.type, reducers6, state, action);
+}
+var DEFAULT_POPOVER_TAG = "div";
+function PopoverFn(props, ref) {
+ var _a3;
+ let { __demoMode = false, ...theirProps } = props;
+ let internalPopoverRef = (0, import_react37.useRef)(null);
+ let popoverRef = useSyncRefs(
+ ref,
+ optionalRef((ref2) => {
+ internalPopoverRef.current = ref2;
+ })
+ );
+ let buttons = (0, import_react37.useRef)([]);
+ let reducerBag = (0, import_react37.useReducer)(stateReducer6, {
+ __demoMode,
+ popoverState: __demoMode ? 0 /* Open */ : 1 /* Closed */,
+ buttons,
+ button: null,
+ buttonId: null,
+ panel: null,
+ panelId: null,
+ beforePanelSentinel: (0, import_react37.createRef)(),
+ afterPanelSentinel: (0, import_react37.createRef)()
+ });
+ let [
+ { popoverState, button, buttonId, panel, panelId, beforePanelSentinel, afterPanelSentinel },
+ dispatch
+ ] = reducerBag;
+ let ownerDocument = useOwnerDocument((_a3 = internalPopoverRef.current) != null ? _a3 : button);
+ let isPortalled = (0, import_react37.useMemo)(() => {
+ if (!button)
+ return false;
+ if (!panel)
+ return false;
+ for (let root2 of document.querySelectorAll("body > *")) {
+ if (Number(root2 == null ? void 0 : root2.contains(button)) ^ Number(root2 == null ? void 0 : root2.contains(panel))) {
+ return true;
+ }
+ }
+ let elements = getFocusableElements();
+ let buttonIdx = elements.indexOf(button);
+ let beforeIdx = (buttonIdx + elements.length - 1) % elements.length;
+ let afterIdx = (buttonIdx + 1) % elements.length;
+ let beforeElement = elements[beforeIdx];
+ let afterElement = elements[afterIdx];
+ if (!panel.contains(beforeElement) && !panel.contains(afterElement)) {
+ return true;
+ }
+ return false;
+ }, [button, panel]);
+ let buttonIdRef = useLatestValue(buttonId);
+ let panelIdRef = useLatestValue(panelId);
+ let registerBag = (0, import_react37.useMemo)(
+ () => ({
+ buttonId: buttonIdRef,
+ panelId: panelIdRef,
+ close: () => dispatch({ type: 1 /* ClosePopover */ })
+ }),
+ [buttonIdRef, panelIdRef, dispatch]
+ );
+ let groupContext = usePopoverGroupContext();
+ let registerPopover = groupContext == null ? void 0 : groupContext.registerPopover;
+ let isFocusWithinPopoverGroup = useEvent(() => {
+ var _a4;
+ return (_a4 = groupContext == null ? void 0 : groupContext.isFocusWithinPopoverGroup()) != null ? _a4 : (ownerDocument == null ? void 0 : ownerDocument.activeElement) && ((button == null ? void 0 : button.contains(ownerDocument.activeElement)) || (panel == null ? void 0 : panel.contains(ownerDocument.activeElement)));
+ });
+ (0, import_react37.useEffect)(() => registerPopover == null ? void 0 : registerPopover(registerBag), [registerPopover, registerBag]);
+ let [portals, PortalWrapper] = useNestedPortals();
+ let root = useRootContainers({
+ portals,
+ defaultContainers: [button, panel]
+ });
+ useEventListener(
+ ownerDocument == null ? void 0 : ownerDocument.defaultView,
+ "focus",
+ (event) => {
+ var _a4, _b, _c, _d;
+ if (event.target === window)
+ return;
+ if (!(event.target instanceof HTMLElement))
+ return;
+ if (popoverState !== 0 /* Open */)
+ return;
+ if (isFocusWithinPopoverGroup())
+ return;
+ if (!button)
+ return;
+ if (!panel)
+ return;
+ if (root.contains(event.target))
+ return;
+ if ((_b = (_a4 = beforePanelSentinel.current) == null ? void 0 : _a4.contains) == null ? void 0 : _b.call(_a4, event.target))
+ return;
+ if ((_d = (_c = afterPanelSentinel.current) == null ? void 0 : _c.contains) == null ? void 0 : _d.call(_c, event.target))
+ return;
+ dispatch({ type: 1 /* ClosePopover */ });
+ },
+ true
+ );
+ useOutsideClick(
+ root.resolveContainers,
+ (event, target) => {
+ dispatch({ type: 1 /* ClosePopover */ });
+ if (!isFocusableElement(target, 1 /* Loose */)) {
+ event.preventDefault();
+ button == null ? void 0 : button.focus();
+ }
+ },
+ popoverState === 0 /* Open */
+ );
+ let close = useEvent(
+ (focusableElement) => {
+ dispatch({ type: 1 /* ClosePopover */ });
+ let restoreElement = (() => {
+ if (!focusableElement)
+ return button;
+ if (focusableElement instanceof HTMLElement)
+ return focusableElement;
+ if ("current" in focusableElement && focusableElement.current instanceof HTMLElement)
+ return focusableElement.current;
+ return button;
+ })();
+ restoreElement == null ? void 0 : restoreElement.focus();
+ }
+ );
+ let api = (0, import_react37.useMemo)(
+ () => ({ close, isPortalled }),
+ [close, isPortalled]
+ );
+ let slot = (0, import_react37.useMemo)(
+ () => ({ open: popoverState === 0 /* Open */, close }),
+ [popoverState, close]
+ );
+ let ourProps = { ref: popoverRef };
+ return /* @__PURE__ */ import_react37.default.createElement(PopoverPanelContext.Provider, { value: null }, /* @__PURE__ */ import_react37.default.createElement(PopoverContext.Provider, { value: reducerBag }, /* @__PURE__ */ import_react37.default.createElement(PopoverAPIContext.Provider, { value: api }, /* @__PURE__ */ import_react37.default.createElement(
+ OpenClosedProvider,
+ {
+ value: match(popoverState, {
+ [0 /* Open */]: 1 /* Open */,
+ [1 /* Closed */]: 2 /* Closed */
+ })
+ },
+ /* @__PURE__ */ import_react37.default.createElement(PortalWrapper, null, render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_POPOVER_TAG,
+ name: "Popover"
+ }), /* @__PURE__ */ import_react37.default.createElement(root.MainTreeNode, null))
+ ))));
+}
+var DEFAULT_BUTTON_TAG5 = "button";
+function ButtonFn5(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-popover-button-${internalId}`, ...theirProps } = props;
+ let [state, dispatch] = usePopoverContext("Popover.Button");
+ let { isPortalled } = usePopoverAPIContext("Popover.Button");
+ let internalButtonRef = (0, import_react37.useRef)(null);
+ let sentinelId = `headlessui-focus-sentinel-${useId()}`;
+ let groupContext = usePopoverGroupContext();
+ let closeOthers = groupContext == null ? void 0 : groupContext.closeOthers;
+ let panelContext = usePopoverPanelContext();
+ let isWithinPanel = panelContext !== null;
+ (0, import_react37.useEffect)(() => {
+ if (isWithinPanel)
+ return;
+ dispatch({ type: 3 /* SetButtonId */, buttonId: id });
+ return () => {
+ dispatch({ type: 3 /* SetButtonId */, buttonId: null });
+ };
+ }, [isWithinPanel, id, dispatch]);
+ let [uniqueIdentifier] = (0, import_react37.useState)(() => Symbol());
+ let buttonRef = useSyncRefs(
+ internalButtonRef,
+ ref,
+ isWithinPanel ? null : (button) => {
+ if (button) {
+ state.buttons.current.push(uniqueIdentifier);
+ } else {
+ let idx = state.buttons.current.indexOf(uniqueIdentifier);
+ if (idx !== -1)
+ state.buttons.current.splice(idx, 1);
+ }
+ if (state.buttons.current.length > 1) {
+ console.warn(
+ "You are already using a but only 1 is supported."
+ );
+ }
+ button && dispatch({ type: 2 /* SetButton */, button });
+ }
+ );
+ let withinPanelButtonRef = useSyncRefs(internalButtonRef, ref);
+ let ownerDocument = useOwnerDocument(internalButtonRef);
+ let handleKeyDown = useEvent((event) => {
+ var _a3, _b, _c;
+ if (isWithinPanel) {
+ if (state.popoverState === 1 /* Closed */)
+ return;
+ switch (event.key) {
+ case " " /* Space */:
+ case "Enter" /* Enter */:
+ event.preventDefault();
+ (_b = (_a3 = event.target).click) == null ? void 0 : _b.call(_a3);
+ dispatch({ type: 1 /* ClosePopover */ });
+ (_c = state.button) == null ? void 0 : _c.focus();
+ break;
+ }
+ } else {
+ switch (event.key) {
+ case " " /* Space */:
+ case "Enter" /* Enter */:
+ event.preventDefault();
+ event.stopPropagation();
+ if (state.popoverState === 1 /* Closed */)
+ closeOthers == null ? void 0 : closeOthers(state.buttonId);
+ dispatch({ type: 0 /* TogglePopover */ });
+ break;
+ case "Escape" /* Escape */:
+ if (state.popoverState !== 0 /* Open */)
+ return closeOthers == null ? void 0 : closeOthers(state.buttonId);
+ if (!internalButtonRef.current)
+ return;
+ if ((ownerDocument == null ? void 0 : ownerDocument.activeElement) && !internalButtonRef.current.contains(ownerDocument.activeElement)) {
+ return;
+ }
+ event.preventDefault();
+ event.stopPropagation();
+ dispatch({ type: 1 /* ClosePopover */ });
+ break;
+ }
+ }
+ });
+ let handleKeyUp = useEvent((event) => {
+ if (isWithinPanel)
+ return;
+ if (event.key === " " /* Space */) {
+ event.preventDefault();
+ }
+ });
+ let handleClick = useEvent((event) => {
+ var _a3, _b;
+ if (isDisabledReactIssue7711(event.currentTarget))
+ return;
+ if (props.disabled)
+ return;
+ if (isWithinPanel) {
+ dispatch({ type: 1 /* ClosePopover */ });
+ (_a3 = state.button) == null ? void 0 : _a3.focus();
+ } else {
+ event.preventDefault();
+ event.stopPropagation();
+ if (state.popoverState === 1 /* Closed */)
+ closeOthers == null ? void 0 : closeOthers(state.buttonId);
+ dispatch({ type: 0 /* TogglePopover */ });
+ (_b = state.button) == null ? void 0 : _b.focus();
+ }
+ });
+ let handleMouseDown = useEvent((event) => {
+ event.preventDefault();
+ event.stopPropagation();
+ });
+ let visible = state.popoverState === 0 /* Open */;
+ let slot = (0, import_react37.useMemo)(() => ({ open: visible }), [visible]);
+ let type = useResolveButtonType(props, internalButtonRef);
+ let ourProps = isWithinPanel ? {
+ ref: withinPanelButtonRef,
+ type,
+ onKeyDown: handleKeyDown,
+ onClick: handleClick
+ } : {
+ ref: buttonRef,
+ id: state.buttonId,
+ type,
+ "aria-expanded": props.disabled ? void 0 : state.popoverState === 0 /* Open */,
+ "aria-controls": state.panel ? state.panelId : void 0,
+ onKeyDown: handleKeyDown,
+ onKeyUp: handleKeyUp,
+ onClick: handleClick,
+ onMouseDown: handleMouseDown
+ };
+ let direction = useTabDirection();
+ let handleFocus = useEvent(() => {
+ let el = state.panel;
+ if (!el)
+ return;
+ function run() {
+ let result = match(direction.current, {
+ [0 /* Forwards */]: () => focusIn(el, 1 /* First */),
+ [1 /* Backwards */]: () => focusIn(el, 8 /* Last */)
+ });
+ if (result === 0 /* Error */) {
+ focusIn(
+ getFocusableElements().filter((el2) => el2.dataset.headlessuiFocusGuard !== "true"),
+ match(direction.current, {
+ [0 /* Forwards */]: 4 /* Next */,
+ [1 /* Backwards */]: 2 /* Previous */
+ }),
+ { relativeTo: state.button }
+ );
+ }
+ }
+ if (false) {} else {
+ run();
+ }
+ });
+ return /* @__PURE__ */ import_react37.default.createElement(import_react37.default.Fragment, null, render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_BUTTON_TAG5,
+ name: "Popover.Button"
+ }), visible && !isWithinPanel && isPortalled && /* @__PURE__ */ import_react37.default.createElement(
+ Hidden,
+ {
+ id: sentinelId,
+ features: 2 /* Focusable */,
+ "data-headlessui-focus-guard": true,
+ as: "button",
+ type: "button",
+ onFocus: handleFocus
+ }
+ ));
+}
+var DEFAULT_OVERLAY_TAG2 = "div";
+var OverlayRenderFeatures = 1 /* RenderStrategy */ | 2 /* Static */;
+function OverlayFn2(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-popover-overlay-${internalId}`, ...theirProps } = props;
+ let [{ popoverState }, dispatch] = usePopoverContext("Popover.Overlay");
+ let overlayRef = useSyncRefs(ref);
+ let usesOpenClosedState = useOpenClosed();
+ let visible = (() => {
+ if (usesOpenClosedState !== null) {
+ return (usesOpenClosedState & 1 /* Open */) === 1 /* Open */;
+ }
+ return popoverState === 0 /* Open */;
+ })();
+ let handleClick = useEvent((event) => {
+ if (isDisabledReactIssue7711(event.currentTarget))
+ return event.preventDefault();
+ dispatch({ type: 1 /* ClosePopover */ });
+ });
+ let slot = (0, import_react37.useMemo)(
+ () => ({ open: popoverState === 0 /* Open */ }),
+ [popoverState]
+ );
+ let ourProps = {
+ ref: overlayRef,
+ id,
+ "aria-hidden": true,
+ onClick: handleClick
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_OVERLAY_TAG2,
+ features: OverlayRenderFeatures,
+ visible,
+ name: "Popover.Overlay"
+ });
+}
+var DEFAULT_PANEL_TAG3 = "div";
+var PanelRenderFeatures2 = 1 /* RenderStrategy */ | 2 /* Static */;
+function PanelFn3(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-popover-panel-${internalId}`, focus = false, ...theirProps } = props;
+ let [state, dispatch] = usePopoverContext("Popover.Panel");
+ let { close, isPortalled } = usePopoverAPIContext("Popover.Panel");
+ let beforePanelSentinelId = `headlessui-focus-sentinel-before-${useId()}`;
+ let afterPanelSentinelId = `headlessui-focus-sentinel-after-${useId()}`;
+ let internalPanelRef = (0, import_react37.useRef)(null);
+ let panelRef = useSyncRefs(internalPanelRef, ref, (panel) => {
+ dispatch({ type: 4 /* SetPanel */, panel });
+ });
+ let ownerDocument = useOwnerDocument(internalPanelRef);
+ useIsoMorphicEffect(() => {
+ dispatch({ type: 5 /* SetPanelId */, panelId: id });
+ return () => {
+ dispatch({ type: 5 /* SetPanelId */, panelId: null });
+ };
+ }, [id, dispatch]);
+ let usesOpenClosedState = useOpenClosed();
+ let visible = (() => {
+ if (usesOpenClosedState !== null) {
+ return (usesOpenClosedState & 1 /* Open */) === 1 /* Open */;
+ }
+ return state.popoverState === 0 /* Open */;
+ })();
+ let handleKeyDown = useEvent((event) => {
+ var _a3;
+ switch (event.key) {
+ case "Escape" /* Escape */:
+ if (state.popoverState !== 0 /* Open */)
+ return;
+ if (!internalPanelRef.current)
+ return;
+ if ((ownerDocument == null ? void 0 : ownerDocument.activeElement) && !internalPanelRef.current.contains(ownerDocument.activeElement)) {
+ return;
+ }
+ event.preventDefault();
+ event.stopPropagation();
+ dispatch({ type: 1 /* ClosePopover */ });
+ (_a3 = state.button) == null ? void 0 : _a3.focus();
+ break;
+ }
+ });
+ (0, import_react37.useEffect)(() => {
+ var _a3;
+ if (props.static)
+ return;
+ if (state.popoverState === 1 /* Closed */ && ((_a3 = props.unmount) != null ? _a3 : true)) {
+ dispatch({ type: 4 /* SetPanel */, panel: null });
+ }
+ }, [state.popoverState, props.unmount, props.static, dispatch]);
+ (0, import_react37.useEffect)(() => {
+ if (state.__demoMode)
+ return;
+ if (!focus)
+ return;
+ if (state.popoverState !== 0 /* Open */)
+ return;
+ if (!internalPanelRef.current)
+ return;
+ let activeElement = ownerDocument == null ? void 0 : ownerDocument.activeElement;
+ if (internalPanelRef.current.contains(activeElement))
+ return;
+ focusIn(internalPanelRef.current, 1 /* First */);
+ }, [state.__demoMode, focus, internalPanelRef, state.popoverState]);
+ let slot = (0, import_react37.useMemo)(
+ () => ({ open: state.popoverState === 0 /* Open */, close }),
+ [state, close]
+ );
+ let ourProps = {
+ ref: panelRef,
+ id,
+ onKeyDown: handleKeyDown,
+ onBlur: focus && state.popoverState === 0 /* Open */ ? (event) => {
+ var _a3, _b, _c, _d, _e;
+ let el = event.relatedTarget;
+ if (!el)
+ return;
+ if (!internalPanelRef.current)
+ return;
+ if ((_a3 = internalPanelRef.current) == null ? void 0 : _a3.contains(el))
+ return;
+ dispatch({ type: 1 /* ClosePopover */ });
+ if (((_c = (_b = state.beforePanelSentinel.current) == null ? void 0 : _b.contains) == null ? void 0 : _c.call(_b, el)) || ((_e = (_d = state.afterPanelSentinel.current) == null ? void 0 : _d.contains) == null ? void 0 : _e.call(_d, el))) {
+ el.focus({ preventScroll: true });
+ }
+ } : void 0,
+ tabIndex: -1
+ };
+ let direction = useTabDirection();
+ let handleBeforeFocus = useEvent(() => {
+ let el = internalPanelRef.current;
+ if (!el)
+ return;
+ function run() {
+ match(direction.current, {
+ [0 /* Forwards */]: () => {
+ var _a3;
+ let result = focusIn(el, 1 /* First */);
+ if (result === 0 /* Error */) {
+ (_a3 = state.afterPanelSentinel.current) == null ? void 0 : _a3.focus();
+ }
+ },
+ [1 /* Backwards */]: () => {
+ var _a3;
+ (_a3 = state.button) == null ? void 0 : _a3.focus({ preventScroll: true });
+ }
+ });
+ }
+ if (false) {} else {
+ run();
+ }
+ });
+ let handleAfterFocus = useEvent(() => {
+ let el = internalPanelRef.current;
+ if (!el)
+ return;
+ function run() {
+ match(direction.current, {
+ [0 /* Forwards */]: () => {
+ var _a3;
+ if (!state.button)
+ return;
+ let elements = getFocusableElements();
+ let idx = elements.indexOf(state.button);
+ let before = elements.slice(0, idx + 1);
+ let after = elements.slice(idx + 1);
+ let combined = [...after, ...before];
+ for (let element of combined.slice()) {
+ if (element.dataset.headlessuiFocusGuard === "true" || ((_a3 = state.panel) == null ? void 0 : _a3.contains(element))) {
+ let idx2 = combined.indexOf(element);
+ if (idx2 !== -1)
+ combined.splice(idx2, 1);
+ }
+ }
+ focusIn(combined, 1 /* First */, { sorted: false });
+ },
+ [1 /* Backwards */]: () => {
+ var _a3;
+ let result = focusIn(el, 2 /* Previous */);
+ if (result === 0 /* Error */) {
+ (_a3 = state.button) == null ? void 0 : _a3.focus();
+ }
+ }
+ });
+ }
+ if (false) {} else {
+ run();
+ }
+ });
+ return /* @__PURE__ */ import_react37.default.createElement(PopoverPanelContext.Provider, { value: id }, visible && isPortalled && /* @__PURE__ */ import_react37.default.createElement(
+ Hidden,
+ {
+ id: beforePanelSentinelId,
+ ref: state.beforePanelSentinel,
+ features: 2 /* Focusable */,
+ "data-headlessui-focus-guard": true,
+ as: "button",
+ type: "button",
+ onFocus: handleBeforeFocus
+ }
+ ), render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_PANEL_TAG3,
+ features: PanelRenderFeatures2,
+ visible,
+ name: "Popover.Panel"
+ }), visible && isPortalled && /* @__PURE__ */ import_react37.default.createElement(
+ Hidden,
+ {
+ id: afterPanelSentinelId,
+ ref: state.afterPanelSentinel,
+ features: 2 /* Focusable */,
+ "data-headlessui-focus-guard": true,
+ as: "button",
+ type: "button",
+ onFocus: handleAfterFocus
+ }
+ ));
+}
+var DEFAULT_GROUP_TAG2 = "div";
+function GroupFn2(props, ref) {
+ let internalGroupRef = (0, import_react37.useRef)(null);
+ let groupRef = useSyncRefs(internalGroupRef, ref);
+ let [popovers, setPopovers] = (0, import_react37.useState)([]);
+ let unregisterPopover = useEvent((registerbag) => {
+ setPopovers((existing) => {
+ let idx = existing.indexOf(registerbag);
+ if (idx !== -1) {
+ let clone = existing.slice();
+ clone.splice(idx, 1);
+ return clone;
+ }
+ return existing;
+ });
+ });
+ let registerPopover = useEvent((registerbag) => {
+ setPopovers((existing) => [...existing, registerbag]);
+ return () => unregisterPopover(registerbag);
+ });
+ let isFocusWithinPopoverGroup = useEvent(() => {
+ var _a3;
+ let ownerDocument = getOwnerDocument(internalGroupRef);
+ if (!ownerDocument)
+ return false;
+ let element = ownerDocument.activeElement;
+ if ((_a3 = internalGroupRef.current) == null ? void 0 : _a3.contains(element))
+ return true;
+ return popovers.some((bag) => {
+ var _a4, _b;
+ return ((_a4 = ownerDocument.getElementById(bag.buttonId.current)) == null ? void 0 : _a4.contains(element)) || ((_b = ownerDocument.getElementById(bag.panelId.current)) == null ? void 0 : _b.contains(element));
+ });
+ });
+ let closeOthers = useEvent((buttonId) => {
+ for (let popover of popovers) {
+ if (popover.buttonId.current !== buttonId)
+ popover.close();
+ }
+ });
+ let contextBag = (0, import_react37.useMemo)(
+ () => ({
+ registerPopover,
+ unregisterPopover,
+ isFocusWithinPopoverGroup,
+ closeOthers
+ }),
+ [registerPopover, unregisterPopover, isFocusWithinPopoverGroup, closeOthers]
+ );
+ let slot = (0, import_react37.useMemo)(() => ({}), []);
+ let theirProps = props;
+ let ourProps = { ref: groupRef };
+ return /* @__PURE__ */ import_react37.default.createElement(PopoverGroupContext.Provider, { value: contextBag }, render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_GROUP_TAG2,
+ name: "Popover.Group"
+ }));
+}
+var PopoverRoot = forwardRefWithAs(PopoverFn);
+var Button5 = forwardRefWithAs(ButtonFn5);
+var Overlay2 = forwardRefWithAs(OverlayFn2);
+var Panel3 = forwardRefWithAs(PanelFn3);
+var Group2 = forwardRefWithAs(GroupFn2);
+var Popover = Object.assign(PopoverRoot, { Button: Button5, Overlay: Overlay2, Panel: Panel3, Group: Group2 });
+
+// src/components/radio-group/radio-group.tsx
+var import_react40 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+
+// src/hooks/use-flags.ts
+var import_react38 = __webpack_require__(/*! react */ "react");
+function useFlags(initialFlags = 0) {
+ let [flags, setFlags] = (0, import_react38.useState)(initialFlags);
+ let mounted = useIsMounted();
+ let addFlag = (0, import_react38.useCallback)(
+ (flag) => {
+ if (!mounted.current)
+ return;
+ setFlags((flags2) => flags2 | flag);
+ },
+ [flags, mounted]
+ );
+ let hasFlag = (0, import_react38.useCallback)((flag) => Boolean(flags & flag), [flags]);
+ let removeFlag = (0, import_react38.useCallback)(
+ (flag) => {
+ if (!mounted.current)
+ return;
+ setFlags((flags2) => flags2 & ~flag);
+ },
+ [setFlags, mounted]
+ );
+ let toggleFlag = (0, import_react38.useCallback)(
+ (flag) => {
+ if (!mounted.current)
+ return;
+ setFlags((flags2) => flags2 ^ flag);
+ },
+ [setFlags]
+ );
+ return { flags, addFlag, hasFlag, removeFlag, toggleFlag };
+}
+
+// src/components/label/label.tsx
+var import_react39 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+var LabelContext = (0, import_react39.createContext)(
+ null
+);
+function useLabelContext() {
+ let context = (0, import_react39.useContext)(LabelContext);
+ if (context === null) {
+ let err = new Error("You used a component, but it is not inside a relevant parent.");
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, useLabelContext);
+ throw err;
+ }
+ return context;
+}
+function useLabels() {
+ let [labelIds, setLabelIds] = (0, import_react39.useState)([]);
+ return [
+ // The actual id's as string or undefined.
+ labelIds.length > 0 ? labelIds.join(" ") : void 0,
+ // The provider component
+ (0, import_react39.useMemo)(() => {
+ return function LabelProvider(props) {
+ let register = useEvent((value) => {
+ setLabelIds((existing) => [...existing, value]);
+ return () => setLabelIds((existing) => {
+ let clone = existing.slice();
+ let idx = clone.indexOf(value);
+ if (idx !== -1)
+ clone.splice(idx, 1);
+ return clone;
+ });
+ });
+ let contextBag = (0, import_react39.useMemo)(
+ () => ({ register, slot: props.slot, name: props.name, props: props.props }),
+ [register, props.slot, props.name, props.props]
+ );
+ return /* @__PURE__ */ import_react39.default.createElement(LabelContext.Provider, { value: contextBag }, props.children);
+ };
+ }, [setLabelIds])
+ ];
+}
+var DEFAULT_LABEL_TAG3 = "label";
+function LabelFn3(props, ref) {
+ let internalId = useId();
+ let { id = `headlessui-label-${internalId}`, passive = false, ...theirProps } = props;
+ let context = useLabelContext();
+ let labelRef = useSyncRefs(ref);
+ useIsoMorphicEffect(() => context.register(id), [id, context.register]);
+ let ourProps = { ref: labelRef, ...context.props, id };
+ if (passive) {
+ if ("onClick" in ourProps) {
+ delete ourProps["htmlFor"];
+ delete ourProps["onClick"];
+ }
+ if ("onClick" in theirProps) {
+ delete theirProps["onClick"];
+ }
+ }
+ return render({
+ ourProps,
+ theirProps,
+ slot: context.slot || {},
+ defaultTag: DEFAULT_LABEL_TAG3,
+ name: context.name || "Label"
+ });
+}
+var LabelRoot = forwardRefWithAs(LabelFn3);
+var Label3 = Object.assign(LabelRoot, {
+ //
+});
+
+// src/components/radio-group/radio-group.tsx
+var reducers7 = {
+ [0 /* RegisterOption */](state, action) {
+ let nextOptions = [
+ ...state.options,
+ { id: action.id, element: action.element, propsRef: action.propsRef }
+ ];
+ return {
+ ...state,
+ options: sortByDomNode(nextOptions, (option) => option.element.current)
+ };
+ },
+ [1 /* UnregisterOption */](state, action) {
+ let options = state.options.slice();
+ let idx = state.options.findIndex((radio) => radio.id === action.id);
+ if (idx === -1)
+ return state;
+ options.splice(idx, 1);
+ return { ...state, options };
+ }
+};
+var RadioGroupDataContext = (0, import_react40.createContext)(null);
+RadioGroupDataContext.displayName = "RadioGroupDataContext";
+function useData3(component) {
+ let context = (0, import_react40.useContext)(RadioGroupDataContext);
+ if (context === null) {
+ let err = new Error(`<${component} /> is missing a parent component.`);
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, useData3);
+ throw err;
+ }
+ return context;
+}
+var RadioGroupActionsContext = (0, import_react40.createContext)(null);
+RadioGroupActionsContext.displayName = "RadioGroupActionsContext";
+function useActions3(component) {
+ let context = (0, import_react40.useContext)(RadioGroupActionsContext);
+ if (context === null) {
+ let err = new Error(`<${component} /> is missing a parent component.`);
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, useActions3);
+ throw err;
+ }
+ return context;
+}
+function stateReducer7(state, action) {
+ return match(action.type, reducers7, state, action);
+}
+var DEFAULT_RADIO_GROUP_TAG = "div";
+function RadioGroupFn(props, ref) {
+ let internalId = useId();
+ let {
+ id = `headlessui-radiogroup-${internalId}`,
+ value: controlledValue,
+ defaultValue,
+ form: formName,
+ name,
+ onChange: controlledOnChange,
+ by = (a, z) => a === z,
+ disabled = false,
+ ...theirProps
+ } = props;
+ let compare = useEvent(
+ typeof by === "string" ? (a, z) => {
+ let property = by;
+ return (a == null ? void 0 : a[property]) === (z == null ? void 0 : z[property]);
+ } : by
+ );
+ let [state, dispatch] = (0, import_react40.useReducer)(stateReducer7, { options: [] });
+ let options = state.options;
+ let [labelledby, LabelProvider] = useLabels();
+ let [describedby, DescriptionProvider] = useDescriptions();
+ let internalRadioGroupRef = (0, import_react40.useRef)(null);
+ let radioGroupRef = useSyncRefs(internalRadioGroupRef, ref);
+ let [value, onChange] = useControllable(controlledValue, controlledOnChange, defaultValue);
+ let firstOption = (0, import_react40.useMemo)(
+ () => options.find((option) => {
+ if (option.propsRef.current.disabled)
+ return false;
+ return true;
+ }),
+ [options]
+ );
+ let containsCheckedOption = (0, import_react40.useMemo)(
+ () => options.some((option) => compare(option.propsRef.current.value, value)),
+ [options, value]
+ );
+ let triggerChange = useEvent((nextValue) => {
+ var _a3;
+ if (disabled)
+ return false;
+ if (compare(nextValue, value))
+ return false;
+ let nextOption = (_a3 = options.find(
+ (option) => compare(option.propsRef.current.value, nextValue)
+ )) == null ? void 0 : _a3.propsRef.current;
+ if (nextOption == null ? void 0 : nextOption.disabled)
+ return false;
+ onChange == null ? void 0 : onChange(nextValue);
+ return true;
+ });
+ useTreeWalker({
+ container: internalRadioGroupRef.current,
+ accept(node) {
+ if (node.getAttribute("role") === "radio")
+ return NodeFilter.FILTER_REJECT;
+ if (node.hasAttribute("role"))
+ return NodeFilter.FILTER_SKIP;
+ return NodeFilter.FILTER_ACCEPT;
+ },
+ walk(node) {
+ node.setAttribute("role", "none");
+ }
+ });
+ let handleKeyDown = useEvent((event) => {
+ let container = internalRadioGroupRef.current;
+ if (!container)
+ return;
+ let ownerDocument = getOwnerDocument(container);
+ let all = options.filter((option) => option.propsRef.current.disabled === false).map((radio) => radio.element.current);
+ switch (event.key) {
+ case "Enter" /* Enter */:
+ attemptSubmit(event.currentTarget);
+ break;
+ case "ArrowLeft" /* ArrowLeft */:
+ case "ArrowUp" /* ArrowUp */:
+ {
+ event.preventDefault();
+ event.stopPropagation();
+ let result = focusIn(all, 2 /* Previous */ | 16 /* WrapAround */);
+ if (result === 2 /* Success */) {
+ let activeOption = options.find(
+ (option) => option.element.current === (ownerDocument == null ? void 0 : ownerDocument.activeElement)
+ );
+ if (activeOption)
+ triggerChange(activeOption.propsRef.current.value);
+ }
+ }
+ break;
+ case "ArrowRight" /* ArrowRight */:
+ case "ArrowDown" /* ArrowDown */:
+ {
+ event.preventDefault();
+ event.stopPropagation();
+ let result = focusIn(all, 4 /* Next */ | 16 /* WrapAround */);
+ if (result === 2 /* Success */) {
+ let activeOption = options.find(
+ (option) => option.element.current === (ownerDocument == null ? void 0 : ownerDocument.activeElement)
+ );
+ if (activeOption)
+ triggerChange(activeOption.propsRef.current.value);
+ }
+ }
+ break;
+ case " " /* Space */:
+ {
+ event.preventDefault();
+ event.stopPropagation();
+ let activeOption = options.find(
+ (option) => option.element.current === (ownerDocument == null ? void 0 : ownerDocument.activeElement)
+ );
+ if (activeOption)
+ triggerChange(activeOption.propsRef.current.value);
+ }
+ break;
+ }
+ });
+ let registerOption = useEvent((option) => {
+ dispatch({ type: 0 /* RegisterOption */, ...option });
+ return () => dispatch({ type: 1 /* UnregisterOption */, id: option.id });
+ });
+ let radioGroupData = (0, import_react40.useMemo)(
+ () => ({ value, firstOption, containsCheckedOption, disabled, compare, ...state }),
+ [value, firstOption, containsCheckedOption, disabled, compare, state]
+ );
+ let radioGroupActions = (0, import_react40.useMemo)(
+ () => ({ registerOption, change: triggerChange }),
+ [registerOption, triggerChange]
+ );
+ let ourProps = {
+ ref: radioGroupRef,
+ id,
+ role: "radiogroup",
+ "aria-labelledby": labelledby,
+ "aria-describedby": describedby,
+ onKeyDown: handleKeyDown
+ };
+ let slot = (0, import_react40.useMemo)(() => ({ value }), [value]);
+ let form = (0, import_react40.useRef)(null);
+ let d = useDisposables();
+ (0, import_react40.useEffect)(() => {
+ if (!form.current)
+ return;
+ if (defaultValue === void 0)
+ return;
+ d.addEventListener(form.current, "reset", () => {
+ triggerChange(defaultValue);
+ });
+ }, [
+ form,
+ triggerChange
+ /* Explicitly ignoring `defaultValue` */
+ ]);
+ return /* @__PURE__ */ import_react40.default.createElement(DescriptionProvider, { name: "RadioGroup.Description" }, /* @__PURE__ */ import_react40.default.createElement(LabelProvider, { name: "RadioGroup.Label" }, /* @__PURE__ */ import_react40.default.createElement(RadioGroupActionsContext.Provider, { value: radioGroupActions }, /* @__PURE__ */ import_react40.default.createElement(RadioGroupDataContext.Provider, { value: radioGroupData }, name != null && value != null && objectToFormEntries({ [name]: value }).map(([name2, value2], idx) => /* @__PURE__ */ import_react40.default.createElement(
+ Hidden,
+ {
+ features: 4 /* Hidden */,
+ ref: idx === 0 ? (element) => {
+ var _a3;
+ form.current = (_a3 = element == null ? void 0 : element.closest("form")) != null ? _a3 : null;
+ } : void 0,
+ ...compact({
+ key: name2,
+ as: "input",
+ type: "radio",
+ checked: value2 != null,
+ hidden: true,
+ readOnly: true,
+ form: formName,
+ name: name2,
+ value: value2
+ })
+ }
+ )), render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_RADIO_GROUP_TAG,
+ name: "RadioGroup"
+ })))));
+}
+var DEFAULT_OPTION_TAG3 = "div";
+function OptionFn3(props, ref) {
+ var _a3;
+ let internalId = useId();
+ let {
+ id = `headlessui-radiogroup-option-${internalId}`,
+ value,
+ disabled = false,
+ ...theirProps
+ } = props;
+ let internalOptionRef = (0, import_react40.useRef)(null);
+ let optionRef = useSyncRefs(internalOptionRef, ref);
+ let [labelledby, LabelProvider] = useLabels();
+ let [describedby, DescriptionProvider] = useDescriptions();
+ let { addFlag, removeFlag, hasFlag } = useFlags(1 /* Empty */);
+ let propsRef = useLatestValue({ value, disabled });
+ let data = useData3("RadioGroup.Option");
+ let actions = useActions3("RadioGroup.Option");
+ useIsoMorphicEffect(
+ () => actions.registerOption({ id, element: internalOptionRef, propsRef }),
+ [id, actions, internalOptionRef, props]
+ );
+ let handleClick = useEvent((event) => {
+ var _a4;
+ if (isDisabledReactIssue7711(event.currentTarget))
+ return event.preventDefault();
+ if (!actions.change(value))
+ return;
+ addFlag(2 /* Active */);
+ (_a4 = internalOptionRef.current) == null ? void 0 : _a4.focus();
+ });
+ let handleFocus = useEvent((event) => {
+ if (isDisabledReactIssue7711(event.currentTarget))
+ return event.preventDefault();
+ addFlag(2 /* Active */);
+ });
+ let handleBlur = useEvent(() => removeFlag(2 /* Active */));
+ let isFirstOption = ((_a3 = data.firstOption) == null ? void 0 : _a3.id) === id;
+ let isDisabled = data.disabled || disabled;
+ let checked = data.compare(data.value, value);
+ let ourProps = {
+ ref: optionRef,
+ id,
+ role: "radio",
+ "aria-checked": checked ? "true" : "false",
+ "aria-labelledby": labelledby,
+ "aria-describedby": describedby,
+ "aria-disabled": isDisabled ? true : void 0,
+ tabIndex: (() => {
+ if (isDisabled)
+ return -1;
+ if (checked)
+ return 0;
+ if (!data.containsCheckedOption && isFirstOption)
+ return 0;
+ return -1;
+ })(),
+ onClick: isDisabled ? void 0 : handleClick,
+ onFocus: isDisabled ? void 0 : handleFocus,
+ onBlur: isDisabled ? void 0 : handleBlur
+ };
+ let slot = (0, import_react40.useMemo)(
+ () => ({ checked, disabled: isDisabled, active: hasFlag(2 /* Active */) }),
+ [checked, isDisabled, hasFlag]
+ );
+ return /* @__PURE__ */ import_react40.default.createElement(DescriptionProvider, { name: "RadioGroup.Description" }, /* @__PURE__ */ import_react40.default.createElement(LabelProvider, { name: "RadioGroup.Label" }, render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_OPTION_TAG3,
+ name: "RadioGroup.Option"
+ })));
+}
+var RadioGroupRoot = forwardRefWithAs(RadioGroupFn);
+var Option3 = forwardRefWithAs(OptionFn3);
+var RadioGroup = Object.assign(RadioGroupRoot, {
+ Option: Option3,
+ Label: Label3,
+ Description
+});
+
+// src/components/switch/switch.tsx
+var import_react41 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+var GroupContext = (0, import_react41.createContext)(null);
+GroupContext.displayName = "GroupContext";
+var DEFAULT_GROUP_TAG3 = import_react41.Fragment;
+function GroupFn3(props) {
+ var _a3;
+ let [switchElement, setSwitchElement] = (0, import_react41.useState)(null);
+ let [labelledby, LabelProvider] = useLabels();
+ let [describedby, DescriptionProvider] = useDescriptions();
+ let context = (0, import_react41.useMemo)(
+ () => ({ switch: switchElement, setSwitch: setSwitchElement, labelledby, describedby }),
+ [switchElement, setSwitchElement, labelledby, describedby]
+ );
+ let ourProps = {};
+ let theirProps = props;
+ return /* @__PURE__ */ import_react41.default.createElement(DescriptionProvider, { name: "Switch.Description" }, /* @__PURE__ */ import_react41.default.createElement(
+ LabelProvider,
+ {
+ name: "Switch.Label",
+ props: {
+ htmlFor: (_a3 = context.switch) == null ? void 0 : _a3.id,
+ onClick(event) {
+ if (!switchElement)
+ return;
+ if (event.currentTarget.tagName === "LABEL") {
+ event.preventDefault();
+ }
+ switchElement.click();
+ switchElement.focus({ preventScroll: true });
+ }
+ }
+ },
+ /* @__PURE__ */ import_react41.default.createElement(GroupContext.Provider, { value: context }, render({
+ ourProps,
+ theirProps,
+ defaultTag: DEFAULT_GROUP_TAG3,
+ name: "Switch.Group"
+ }))
+ ));
+}
+var DEFAULT_SWITCH_TAG = "button";
+function SwitchFn(props, ref) {
+ let internalId = useId();
+ let {
+ id = `headlessui-switch-${internalId}`,
+ checked: controlledChecked,
+ defaultChecked = false,
+ onChange: controlledOnChange,
+ name,
+ value,
+ form,
+ ...theirProps
+ } = props;
+ let groupContext = (0, import_react41.useContext)(GroupContext);
+ let internalSwitchRef = (0, import_react41.useRef)(null);
+ let switchRef = useSyncRefs(
+ internalSwitchRef,
+ ref,
+ groupContext === null ? null : groupContext.setSwitch
+ );
+ let [checked, onChange] = useControllable(controlledChecked, controlledOnChange, defaultChecked);
+ let toggle = useEvent(() => onChange == null ? void 0 : onChange(!checked));
+ let handleClick = useEvent((event) => {
+ if (isDisabledReactIssue7711(event.currentTarget))
+ return event.preventDefault();
+ event.preventDefault();
+ toggle();
+ });
+ let handleKeyUp = useEvent((event) => {
+ if (event.key === " " /* Space */) {
+ event.preventDefault();
+ toggle();
+ } else if (event.key === "Enter" /* Enter */) {
+ attemptSubmit(event.currentTarget);
+ }
+ });
+ let handleKeyPress = useEvent((event) => event.preventDefault());
+ let slot = (0, import_react41.useMemo)(() => ({ checked }), [checked]);
+ let ourProps = {
+ id,
+ ref: switchRef,
+ role: "switch",
+ type: useResolveButtonType(props, internalSwitchRef),
+ tabIndex: 0,
+ "aria-checked": checked,
+ "aria-labelledby": groupContext == null ? void 0 : groupContext.labelledby,
+ "aria-describedby": groupContext == null ? void 0 : groupContext.describedby,
+ onClick: handleClick,
+ onKeyUp: handleKeyUp,
+ onKeyPress: handleKeyPress
+ };
+ let d = useDisposables();
+ (0, import_react41.useEffect)(() => {
+ var _a3;
+ let form2 = (_a3 = internalSwitchRef.current) == null ? void 0 : _a3.closest("form");
+ if (!form2)
+ return;
+ if (defaultChecked === void 0)
+ return;
+ d.addEventListener(form2, "reset", () => {
+ onChange(defaultChecked);
+ });
+ }, [
+ internalSwitchRef,
+ onChange
+ /* Explicitly ignoring `defaultValue` */
+ ]);
+ return /* @__PURE__ */ import_react41.default.createElement(import_react41.default.Fragment, null, name != null && checked && /* @__PURE__ */ import_react41.default.createElement(
+ Hidden,
+ {
+ features: 4 /* Hidden */,
+ ...compact({
+ as: "input",
+ type: "checkbox",
+ hidden: true,
+ readOnly: true,
+ form,
+ checked,
+ name,
+ value
+ })
+ }
+ ), render({ ourProps, theirProps, slot, defaultTag: DEFAULT_SWITCH_TAG, name: "Switch" }));
+}
+var SwitchRoot = forwardRefWithAs(SwitchFn);
+var Group3 = GroupFn3;
+var Switch = Object.assign(SwitchRoot, {
+ Group: Group3,
+ Label: Label3,
+ Description
+});
+
+// src/components/tabs/tabs.tsx
+var import_react43 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+
+// src/internal/focus-sentinel.tsx
+var import_react42 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+function FocusSentinel({ onFocus }) {
+ let [enabled, setEnabled] = (0, import_react42.useState)(true);
+ if (!enabled)
+ return null;
+ return /* @__PURE__ */ import_react42.default.createElement(
+ Hidden,
+ {
+ as: "button",
+ type: "button",
+ features: 2 /* Focusable */,
+ onFocus: (event) => {
+ event.preventDefault();
+ let frame;
+ let tries = 50;
+ function forwardFocus() {
+ if (tries-- <= 0) {
+ if (frame)
+ cancelAnimationFrame(frame);
+ return;
+ }
+ if (onFocus()) {
+ setEnabled(false);
+ cancelAnimationFrame(frame);
+ return;
+ }
+ frame = requestAnimationFrame(forwardFocus);
+ }
+ frame = requestAnimationFrame(forwardFocus);
+ }
+ }
+ );
+}
+
+// src/utils/stable-collection.tsx
+var React23 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+var StableCollectionContext = React23.createContext(null);
+function createCollection() {
+ return {
+ /** @type {Map>} */
+ groups: /* @__PURE__ */ new Map(),
+ get(group, key) {
+ var _a3;
+ let list = this.groups.get(group);
+ if (!list) {
+ list = /* @__PURE__ */ new Map();
+ this.groups.set(group, list);
+ }
+ let renders = (_a3 = list.get(key)) != null ? _a3 : 0;
+ list.set(key, renders + 1);
+ let index = Array.from(list.keys()).indexOf(key);
+ function release() {
+ let renders2 = list.get(key);
+ if (renders2 > 1) {
+ list.set(key, renders2 - 1);
+ } else {
+ list.delete(key);
+ }
+ }
+ return [index, release];
+ }
+ };
+}
+function StableCollection({ children }) {
+ let collection = React23.useRef(createCollection());
+ return /* @__PURE__ */ React23.createElement(StableCollectionContext.Provider, { value: collection }, children);
+}
+function useStableCollectionIndex(group) {
+ let collection = React23.useContext(StableCollectionContext);
+ if (!collection)
+ throw new Error("You must wrap your component in a ");
+ let key = useStableCollectionKey();
+ let [idx, cleanupIdx] = collection.current.get(group, key);
+ React23.useEffect(() => cleanupIdx, []);
+ return idx;
+}
+function useStableCollectionKey() {
+ var _a3, _b, _c;
+ let owner = (
+ // @ts-ignore
+ (_c = (_b = (_a3 = React23.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) == null ? void 0 : _a3.ReactCurrentOwner) == null ? void 0 : _b.current) != null ? _c : null
+ );
+ if (!owner)
+ return Symbol();
+ let indexes = [];
+ let fiber = owner;
+ while (fiber) {
+ indexes.push(fiber.index);
+ fiber = fiber.return;
+ }
+ return "$." + indexes.join(".");
+}
+
+// src/components/tabs/tabs.tsx
+var reducers8 = {
+ [0 /* SetSelectedIndex */](state, action) {
+ var _a3;
+ let tabs = sortByDomNode(state.tabs, (tab) => tab.current);
+ let panels = sortByDomNode(state.panels, (panel) => panel.current);
+ let focusableTabs = tabs.filter((tab) => {
+ var _a4;
+ return !((_a4 = tab.current) == null ? void 0 : _a4.hasAttribute("disabled"));
+ });
+ let nextState = { ...state, tabs, panels };
+ if (
+ // Underflow
+ action.index < 0 || // Overflow
+ action.index > tabs.length - 1
+ ) {
+ let direction = match(Math.sign(action.index - state.selectedIndex), {
+ [-1 /* Less */]: () => 1 /* Backwards */,
+ [0 /* Equal */]: () => {
+ return match(Math.sign(action.index), {
+ [-1 /* Less */]: () => 0 /* Forwards */,
+ [0 /* Equal */]: () => 0 /* Forwards */,
+ [1 /* Greater */]: () => 1 /* Backwards */
+ });
+ },
+ [1 /* Greater */]: () => 0 /* Forwards */
+ });
+ if (focusableTabs.length === 0) {
+ return nextState;
+ }
+ return {
+ ...nextState,
+ selectedIndex: match(direction, {
+ [0 /* Forwards */]: () => tabs.indexOf(focusableTabs[0]),
+ [1 /* Backwards */]: () => tabs.indexOf(focusableTabs[focusableTabs.length - 1])
+ })
+ };
+ }
+ let before = tabs.slice(0, action.index);
+ let after = tabs.slice(action.index);
+ let next = [...after, ...before].find((tab) => focusableTabs.includes(tab));
+ if (!next)
+ return nextState;
+ let selectedIndex = (_a3 = tabs.indexOf(next)) != null ? _a3 : state.selectedIndex;
+ if (selectedIndex === -1)
+ selectedIndex = state.selectedIndex;
+ return { ...nextState, selectedIndex };
+ },
+ [1 /* RegisterTab */](state, action) {
+ var _a3;
+ if (state.tabs.includes(action.tab))
+ return state;
+ let activeTab = state.tabs[state.selectedIndex];
+ let adjustedTabs = sortByDomNode([...state.tabs, action.tab], (tab) => tab.current);
+ let selectedIndex = (_a3 = adjustedTabs.indexOf(activeTab)) != null ? _a3 : state.selectedIndex;
+ if (selectedIndex === -1)
+ selectedIndex = state.selectedIndex;
+ return { ...state, tabs: adjustedTabs, selectedIndex };
+ },
+ [2 /* UnregisterTab */](state, action) {
+ return { ...state, tabs: state.tabs.filter((tab) => tab !== action.tab) };
+ },
+ [3 /* RegisterPanel */](state, action) {
+ if (state.panels.includes(action.panel))
+ return state;
+ return {
+ ...state,
+ panels: sortByDomNode([...state.panels, action.panel], (panel) => panel.current)
+ };
+ },
+ [4 /* UnregisterPanel */](state, action) {
+ return { ...state, panels: state.panels.filter((panel) => panel !== action.panel) };
+ }
+};
+var TabsDataContext = (0, import_react43.createContext)(null);
+TabsDataContext.displayName = "TabsDataContext";
+function useData4(component) {
+ let context = (0, import_react43.useContext)(TabsDataContext);
+ if (context === null) {
+ let err = new Error(`<${component} /> is missing a parent component.`);
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, useData4);
+ throw err;
+ }
+ return context;
+}
+var TabsActionsContext = (0, import_react43.createContext)(null);
+TabsActionsContext.displayName = "TabsActionsContext";
+function useActions4(component) {
+ let context = (0, import_react43.useContext)(TabsActionsContext);
+ if (context === null) {
+ let err = new Error(`<${component} /> is missing a parent component.`);
+ if (Error.captureStackTrace)
+ Error.captureStackTrace(err, useActions4);
+ throw err;
+ }
+ return context;
+}
+function stateReducer8(state, action) {
+ return match(action.type, reducers8, state, action);
+}
+var DEFAULT_TABS_TAG = import_react43.Fragment;
+function GroupFn4(props, ref) {
+ let {
+ defaultIndex = 0,
+ vertical = false,
+ manual = false,
+ onChange,
+ selectedIndex = null,
+ ...theirProps
+ } = props;
+ const orientation = vertical ? "vertical" : "horizontal";
+ const activation = manual ? "manual" : "auto";
+ let isControlled = selectedIndex !== null;
+ let tabsRef = useSyncRefs(ref);
+ let [state, dispatch] = (0, import_react43.useReducer)(stateReducer8, {
+ selectedIndex: selectedIndex != null ? selectedIndex : defaultIndex,
+ tabs: [],
+ panels: []
+ });
+ let slot = (0, import_react43.useMemo)(() => ({ selectedIndex: state.selectedIndex }), [state.selectedIndex]);
+ let onChangeRef = useLatestValue(onChange || (() => {
+ }));
+ let stableTabsRef = useLatestValue(state.tabs);
+ let tabsData = (0, import_react43.useMemo)(
+ () => ({ orientation, activation, ...state }),
+ [orientation, activation, state]
+ );
+ let registerTab = useEvent((tab) => {
+ dispatch({ type: 1 /* RegisterTab */, tab });
+ return () => dispatch({ type: 2 /* UnregisterTab */, tab });
+ });
+ let registerPanel = useEvent((panel) => {
+ dispatch({ type: 3 /* RegisterPanel */, panel });
+ return () => dispatch({ type: 4 /* UnregisterPanel */, panel });
+ });
+ let change = useEvent((index) => {
+ if (realSelectedIndex.current !== index) {
+ onChangeRef.current(index);
+ }
+ if (!isControlled) {
+ dispatch({ type: 0 /* SetSelectedIndex */, index });
+ }
+ });
+ let realSelectedIndex = useLatestValue(isControlled ? props.selectedIndex : state.selectedIndex);
+ let tabsActions = (0, import_react43.useMemo)(() => ({ registerTab, registerPanel, change }), []);
+ useIsoMorphicEffect(() => {
+ dispatch({ type: 0 /* SetSelectedIndex */, index: selectedIndex != null ? selectedIndex : defaultIndex });
+ }, [
+ selectedIndex
+ /* Deliberately skipping defaultIndex */
+ ]);
+ useIsoMorphicEffect(() => {
+ if (realSelectedIndex.current === void 0)
+ return;
+ if (state.tabs.length <= 0)
+ return;
+ let sorted = sortByDomNode(state.tabs, (tab) => tab.current);
+ let didOrderChange = sorted.some((tab, i) => state.tabs[i] !== tab);
+ if (didOrderChange) {
+ change(sorted.indexOf(state.tabs[realSelectedIndex.current]));
+ }
+ });
+ let ourProps = { ref: tabsRef };
+ return /* @__PURE__ */ import_react43.default.createElement(StableCollection, null, /* @__PURE__ */ import_react43.default.createElement(TabsActionsContext.Provider, { value: tabsActions }, /* @__PURE__ */ import_react43.default.createElement(TabsDataContext.Provider, { value: tabsData }, tabsData.tabs.length <= 0 && /* @__PURE__ */ import_react43.default.createElement(
+ FocusSentinel,
+ {
+ onFocus: () => {
+ var _a3, _b;
+ for (let tab of stableTabsRef.current) {
+ if (((_a3 = tab.current) == null ? void 0 : _a3.tabIndex) === 0) {
+ (_b = tab.current) == null ? void 0 : _b.focus();
+ return true;
+ }
+ }
+ return false;
+ }
+ }
+ ), render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_TABS_TAG,
+ name: "Tabs"
+ }))));
+}
+var DEFAULT_LIST_TAG = "div";
+function ListFn(props, ref) {
+ let { orientation, selectedIndex } = useData4("Tab.List");
+ let listRef = useSyncRefs(ref);
+ let slot = { selectedIndex };
+ let theirProps = props;
+ let ourProps = {
+ ref: listRef,
+ role: "tablist",
+ "aria-orientation": orientation
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_LIST_TAG,
+ name: "Tabs.List"
+ });
+}
+var DEFAULT_TAB_TAG = "button";
+function TabFn(props, ref) {
+ var _a3, _b;
+ let internalId = useId();
+ let { id = `headlessui-tabs-tab-${internalId}`, ...theirProps } = props;
+ let { orientation, activation, selectedIndex, tabs, panels } = useData4("Tab");
+ let actions = useActions4("Tab");
+ let data = useData4("Tab");
+ let internalTabRef = (0, import_react43.useRef)(null);
+ let tabRef = useSyncRefs(internalTabRef, ref);
+ useIsoMorphicEffect(() => actions.registerTab(internalTabRef), [actions, internalTabRef]);
+ let mySSRIndex = useStableCollectionIndex("tabs");
+ let myIndex = tabs.indexOf(internalTabRef);
+ if (myIndex === -1)
+ myIndex = mySSRIndex;
+ let selected = myIndex === selectedIndex;
+ let activateUsing = useEvent((cb) => {
+ var _a4;
+ let result = cb();
+ if (result === 2 /* Success */ && activation === "auto") {
+ let newTab = (_a4 = getOwnerDocument(internalTabRef)) == null ? void 0 : _a4.activeElement;
+ let idx = data.tabs.findIndex((tab) => tab.current === newTab);
+ if (idx !== -1)
+ actions.change(idx);
+ }
+ return result;
+ });
+ let handleKeyDown = useEvent((event) => {
+ let list = tabs.map((tab) => tab.current).filter(Boolean);
+ if (event.key === " " /* Space */ || event.key === "Enter" /* Enter */) {
+ event.preventDefault();
+ event.stopPropagation();
+ actions.change(myIndex);
+ return;
+ }
+ switch (event.key) {
+ case "Home" /* Home */:
+ case "PageUp" /* PageUp */:
+ event.preventDefault();
+ event.stopPropagation();
+ return activateUsing(() => focusIn(list, 1 /* First */));
+ case "End" /* End */:
+ case "PageDown" /* PageDown */:
+ event.preventDefault();
+ event.stopPropagation();
+ return activateUsing(() => focusIn(list, 8 /* Last */));
+ }
+ let result = activateUsing(() => {
+ return match(orientation, {
+ vertical() {
+ if (event.key === "ArrowUp" /* ArrowUp */)
+ return focusIn(list, 2 /* Previous */ | 16 /* WrapAround */);
+ if (event.key === "ArrowDown" /* ArrowDown */)
+ return focusIn(list, 4 /* Next */ | 16 /* WrapAround */);
+ return 0 /* Error */;
+ },
+ horizontal() {
+ if (event.key === "ArrowLeft" /* ArrowLeft */)
+ return focusIn(list, 2 /* Previous */ | 16 /* WrapAround */);
+ if (event.key === "ArrowRight" /* ArrowRight */)
+ return focusIn(list, 4 /* Next */ | 16 /* WrapAround */);
+ return 0 /* Error */;
+ }
+ });
+ });
+ if (result === 2 /* Success */) {
+ return event.preventDefault();
+ }
+ });
+ let ready = (0, import_react43.useRef)(false);
+ let handleSelection = useEvent(() => {
+ var _a4;
+ if (ready.current)
+ return;
+ ready.current = true;
+ (_a4 = internalTabRef.current) == null ? void 0 : _a4.focus();
+ actions.change(myIndex);
+ microTask(() => {
+ ready.current = false;
+ });
+ });
+ let handleMouseDown = useEvent((event) => {
+ event.preventDefault();
+ });
+ let slot = (0, import_react43.useMemo)(() => ({ selected }), [selected]);
+ let ourProps = {
+ ref: tabRef,
+ onKeyDown: handleKeyDown,
+ onMouseDown: handleMouseDown,
+ onClick: handleSelection,
+ id,
+ role: "tab",
+ type: useResolveButtonType(props, internalTabRef),
+ "aria-controls": (_b = (_a3 = panels[myIndex]) == null ? void 0 : _a3.current) == null ? void 0 : _b.id,
+ "aria-selected": selected,
+ tabIndex: selected ? 0 : -1
+ };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_TAB_TAG,
+ name: "Tabs.Tab"
+ });
+}
+var DEFAULT_PANELS_TAG = "div";
+function PanelsFn(props, ref) {
+ let { selectedIndex } = useData4("Tab.Panels");
+ let panelsRef = useSyncRefs(ref);
+ let slot = (0, import_react43.useMemo)(() => ({ selectedIndex }), [selectedIndex]);
+ let theirProps = props;
+ let ourProps = { ref: panelsRef };
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_PANELS_TAG,
+ name: "Tabs.Panels"
+ });
+}
+var DEFAULT_PANEL_TAG4 = "div";
+var PanelRenderFeatures3 = 1 /* RenderStrategy */ | 2 /* Static */;
+function PanelFn4(props, ref) {
+ var _a3, _b, _c, _d;
+ let internalId = useId();
+ let { id = `headlessui-tabs-panel-${internalId}`, tabIndex = 0, ...theirProps } = props;
+ let { selectedIndex, tabs, panels } = useData4("Tab.Panel");
+ let actions = useActions4("Tab.Panel");
+ let internalPanelRef = (0, import_react43.useRef)(null);
+ let panelRef = useSyncRefs(internalPanelRef, ref);
+ useIsoMorphicEffect(() => actions.registerPanel(internalPanelRef), [actions, internalPanelRef]);
+ let mySSRIndex = useStableCollectionIndex("panels");
+ let myIndex = panels.indexOf(internalPanelRef);
+ if (myIndex === -1)
+ myIndex = mySSRIndex;
+ let selected = myIndex === selectedIndex;
+ let slot = (0, import_react43.useMemo)(() => ({ selected }), [selected]);
+ let ourProps = {
+ ref: panelRef,
+ id,
+ role: "tabpanel",
+ "aria-labelledby": (_b = (_a3 = tabs[myIndex]) == null ? void 0 : _a3.current) == null ? void 0 : _b.id,
+ tabIndex: selected ? tabIndex : -1
+ };
+ if (!selected && ((_c = theirProps.unmount) != null ? _c : true) && !((_d = theirProps.static) != null ? _d : false)) {
+ return /* @__PURE__ */ import_react43.default.createElement(Hidden, { as: "span", ...ourProps });
+ }
+ return render({
+ ourProps,
+ theirProps,
+ slot,
+ defaultTag: DEFAULT_PANEL_TAG4,
+ features: PanelRenderFeatures3,
+ visible: selected,
+ name: "Tabs.Panel"
+ });
+}
+var TabRoot = forwardRefWithAs(TabFn);
+var Group4 = forwardRefWithAs(GroupFn4);
+var List = forwardRefWithAs(ListFn);
+var Panels = forwardRefWithAs(PanelsFn);
+var Panel4 = forwardRefWithAs(PanelFn4);
+var Tab = Object.assign(TabRoot, { Group: Group4, List, Panels, Panel: Panel4 });
+
+// src/components/transitions/transition.tsx
+var import_react44 = __toESM(__webpack_require__(/*! react */ "react"), 1);
+
+// src/utils/once.ts
+function once(cb) {
+ let state = { called: false };
+ return (...args) => {
+ if (state.called)
+ return;
+ state.called = true;
+ return cb(...args);
+ };
+}
+
+// src/components/transitions/utils/transition.ts
+function addClasses(node, ...classes) {
+ node && classes.length > 0 && node.classList.add(...classes);
+}
+function removeClasses(node, ...classes) {
+ node && classes.length > 0 && node.classList.remove(...classes);
+}
+function waitForTransition(node, done) {
+ let d = disposables();
+ if (!node)
+ return d.dispose;
+ let { transitionDuration, transitionDelay } = getComputedStyle(node);
+ let [durationMs, delayMs] = [transitionDuration, transitionDelay].map((value) => {
+ let [resolvedValue = 0] = value.split(",").filter(Boolean).map((v) => v.includes("ms") ? parseFloat(v) : parseFloat(v) * 1e3).sort((a, z) => z - a);
+ return resolvedValue;
+ });
+ let totalDuration = durationMs + delayMs;
+ if (totalDuration !== 0) {
+ if (false) {} else {
+ d.group((d2) => {
+ d2.setTimeout(() => {
+ done();
+ d2.dispose();
+ }, totalDuration);
+ d2.addEventListener(node, "transitionrun", (event) => {
+ if (event.target !== event.currentTarget)
+ return;
+ d2.dispose();
+ });
+ });
+ let dispose = d.addEventListener(node, "transitionend", (event) => {
+ if (event.target !== event.currentTarget)
+ return;
+ done();
+ dispose();
+ });
+ }
+ } else {
+ done();
+ }
+ d.add(() => done());
+ return d.dispose;
+}
+function transition(node, classes, show, done) {
+ let direction = show ? "enter" : "leave";
+ let d = disposables();
+ let _done = done !== void 0 ? once(done) : () => {
+ };
+ if (direction === "enter") {
+ node.removeAttribute("hidden");
+ node.style.display = "";
+ }
+ let base = match(direction, {
+ enter: () => classes.enter,
+ leave: () => classes.leave
+ });
+ let to = match(direction, {
+ enter: () => classes.enterTo,
+ leave: () => classes.leaveTo
+ });
+ let from = match(direction, {
+ enter: () => classes.enterFrom,
+ leave: () => classes.leaveFrom
+ });
+ removeClasses(
+ node,
+ ...classes.enter,
+ ...classes.enterTo,
+ ...classes.enterFrom,
+ ...classes.leave,
+ ...classes.leaveFrom,
+ ...classes.leaveTo,
+ ...classes.entered
+ );
+ addClasses(node, ...base, ...from);
+ d.nextFrame(() => {
+ removeClasses(node, ...from);
+ addClasses(node, ...to);
+ waitForTransition(node, () => {
+ removeClasses(node, ...base);
+ addClasses(node, ...classes.entered);
+ return _done();
+ });
+ });
+ return d.dispose;
+}
+
+// src/hooks/use-transition.ts
+function useTransition({ container, direction, classes, onStart, onStop }) {
+ let mounted = useIsMounted();
+ let d = useDisposables();
+ let latestDirection = useLatestValue(direction);
+ useIsoMorphicEffect(() => {
+ let dd = disposables();
+ d.add(dd.dispose);
+ let node = container.current;
+ if (!node)
+ return;
+ if (latestDirection.current === "idle")
+ return;
+ if (!mounted.current)
+ return;
+ dd.dispose();
+ onStart.current(latestDirection.current);
+ dd.add(
+ transition(node, classes.current, latestDirection.current === "enter", () => {
+ dd.dispose();
+ onStop.current(latestDirection.current);
+ })
+ );
+ return dd.dispose;
+ }, [direction]);
+}
+
+// src/components/transitions/transition.tsx
+function splitClasses(classes = "") {
+ return classes.split(" ").filter((className) => className.trim().length > 1);
+}
+var TransitionContext = (0, import_react44.createContext)(null);
+TransitionContext.displayName = "TransitionContext";
+function useTransitionContext() {
+ let context = (0, import_react44.useContext)(TransitionContext);
+ if (context === null) {
+ throw new Error(
+ "A is used but it is missing a parent or ."
+ );
+ }
+ return context;
+}
+function useParentNesting() {
+ let context = (0, import_react44.useContext)(NestingContext);
+ if (context === null) {
+ throw new Error(
+ "A is used but it is missing a parent or ."
+ );
+ }
+ return context;
+}
+var NestingContext = (0, import_react44.createContext)(null);
+NestingContext.displayName = "NestingContext";
+function hasChildren(bag) {
+ if ("children" in bag)
+ return hasChildren(bag.children);
+ return bag.current.filter(({ el }) => el.current !== null).filter(({ state }) => state === "visible" /* Visible */).length > 0;
+}
+function useNesting(done, parent) {
+ let doneRef = useLatestValue(done);
+ let transitionableChildren = (0, import_react44.useRef)([]);
+ let mounted = useIsMounted();
+ let d = useDisposables();
+ let unregister = useEvent((container, strategy = 1 /* Hidden */) => {
+ let idx = transitionableChildren.current.findIndex(({ el }) => el === container);
+ if (idx === -1)
+ return;
+ match(strategy, {
+ [0 /* Unmount */]() {
+ transitionableChildren.current.splice(idx, 1);
+ },
+ [1 /* Hidden */]() {
+ transitionableChildren.current[idx].state = "hidden" /* Hidden */;
+ }
+ });
+ d.microTask(() => {
+ var _a3;
+ if (!hasChildren(transitionableChildren) && mounted.current) {
+ (_a3 = doneRef.current) == null ? void 0 : _a3.call(doneRef);
+ }
+ });
+ });
+ let register = useEvent((container) => {
+ let child = transitionableChildren.current.find(({ el }) => el === container);
+ if (!child) {
+ transitionableChildren.current.push({ el: container, state: "visible" /* Visible */ });
+ } else if (child.state !== "visible" /* Visible */) {
+ child.state = "visible" /* Visible */;
+ }
+ return () => unregister(container, 0 /* Unmount */);
+ });
+ let todos = (0, import_react44.useRef)([]);
+ let wait = (0, import_react44.useRef)(Promise.resolve());
+ let chains = (0, import_react44.useRef)({
+ enter: [],
+ leave: [],
+ idle: []
+ });
+ let onStart = useEvent(
+ (container, direction, cb) => {
+ todos.current.splice(0);
+ if (parent) {
+ parent.chains.current[direction] = parent.chains.current[direction].filter(
+ ([containerInParent]) => containerInParent !== container
+ );
+ }
+ parent == null ? void 0 : parent.chains.current[direction].push([
+ container,
+ new Promise((resolve) => {
+ todos.current.push(resolve);
+ })
+ ]);
+ parent == null ? void 0 : parent.chains.current[direction].push([
+ container,
+ new Promise((resolve) => {
+ Promise.all(chains.current[direction].map(([_container, promise]) => promise)).then(
+ () => resolve()
+ );
+ })
+ ]);
+ if (direction === "enter") {
+ wait.current = wait.current.then(() => parent == null ? void 0 : parent.wait.current).then(() => cb(direction));
+ } else {
+ cb(direction);
+ }
+ }
+ );
+ let onStop = useEvent(
+ (_container, direction, cb) => {
+ Promise.all(chains.current[direction].splice(0).map(([_container2, promise]) => promise)).then(() => {
+ var _a3;
+ (_a3 = todos.current.shift()) == null ? void 0 : _a3();
+ }).then(() => cb(direction));
+ }
+ );
+ return (0, import_react44.useMemo)(
+ () => ({
+ children: transitionableChildren,
+ register,
+ unregister,
+ onStart,
+ onStop,
+ wait,
+ chains
+ }),
+ [register, unregister, transitionableChildren, onStart, onStop, chains, wait]
+ );
+}
+function noop() {
+}
+var eventNames = ["beforeEnter", "afterEnter", "beforeLeave", "afterLeave"];
+function ensureEventHooksExist(events) {
+ var _a3;
+ let result = {};
+ for (let name of eventNames) {
+ result[name] = (_a3 = events[name]) != null ? _a3 : noop;
+ }
+ return result;
+}
+function useEvents(events) {
+ let eventsRef = (0, import_react44.useRef)(ensureEventHooksExist(events));
+ (0, import_react44.useEffect)(() => {
+ eventsRef.current = ensureEventHooksExist(events);
+ }, [events]);
+ return eventsRef;
+}
+var DEFAULT_TRANSITION_CHILD_TAG = "div";
+var TransitionChildRenderFeatures = 1 /* RenderStrategy */;
+function TransitionChildFn(props, ref) {
+ let {
+ // Event "handlers"
+ beforeEnter,
+ afterEnter,
+ beforeLeave,
+ afterLeave,
+ // Class names
+ enter,
+ enterFrom,
+ enterTo,
+ entered,
+ leave,
+ leaveFrom,
+ leaveTo,
+ // @ts-expect-error
+ ...rest
+ } = props;
+ let container = (0, import_react44.useRef)(null);
+ let transitionRef = useSyncRefs(container, ref);
+ let strategy = rest.unmount ? 0 /* Unmount */ : 1 /* Hidden */;
+ let { show, appear, initial } = useTransitionContext();
+ let [state, setState] = (0, import_react44.useState)(show ? "visible" /* Visible */ : "hidden" /* Hidden */);
+ let parentNesting = useParentNesting();
+ let { register, unregister } = parentNesting;
+ let prevShow = (0, import_react44.useRef)(null);
+ (0, import_react44.useEffect)(() => register(container), [register, container]);
+ (0, import_react44.useEffect)(() => {
+ if (strategy !== 1 /* Hidden */)
+ return;
+ if (!container.current)
+ return;
+ if (show && state !== "visible" /* Visible */) {
+ setState("visible" /* Visible */);
+ return;
+ }
+ return match(state, {
+ ["hidden" /* Hidden */]: () => unregister(container),
+ ["visible" /* Visible */]: () => register(container)
+ });
+ }, [state, container, register, unregister, show, strategy]);
+ let classes = useLatestValue({
+ enter: splitClasses(enter),
+ enterFrom: splitClasses(enterFrom),
+ enterTo: splitClasses(enterTo),
+ entered: splitClasses(entered),
+ leave: splitClasses(leave),
+ leaveFrom: splitClasses(leaveFrom),
+ leaveTo: splitClasses(leaveTo)
+ });
+ let events = useEvents({
+ beforeEnter,
+ afterEnter,
+ beforeLeave,
+ afterLeave
+ });
+ let ready = useServerHandoffComplete();
+ (0, import_react44.useEffect)(() => {
+ if (ready && state === "visible" /* Visible */ && container.current === null) {
+ throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?");
+ }
+ }, [container, state, ready]);
+ let skip = initial && !appear;
+ let transitionDirection = (() => {
+ if (!ready)
+ return "idle";
+ if (skip)
+ return "idle";
+ if (prevShow.current === show)
+ return "idle";
+ return show ? "enter" : "leave";
+ })();
+ let transitionStateFlags = useFlags(0);
+ let beforeEvent = useEvent((direction) => {
+ return match(direction, {
+ enter: () => {
+ transitionStateFlags.addFlag(8 /* Opening */);
+ events.current.beforeEnter();
+ },
+ leave: () => {
+ transitionStateFlags.addFlag(4 /* Closing */);
+ events.current.beforeLeave();
+ },
+ idle: () => {
+ }
+ });
+ });
+ let afterEvent = useEvent((direction) => {
+ return match(direction, {
+ enter: () => {
+ transitionStateFlags.removeFlag(8 /* Opening */);
+ events.current.afterEnter();
+ },
+ leave: () => {
+ transitionStateFlags.removeFlag(4 /* Closing */);
+ events.current.afterLeave();
+ },
+ idle: () => {
+ }
+ });
+ });
+ let nesting = useNesting(() => {
+ setState("hidden" /* Hidden */);
+ unregister(container);
+ }, parentNesting);
+ useTransition({
+ container,
+ classes,
+ direction: transitionDirection,
+ onStart: useLatestValue((direction) => {
+ nesting.onStart(container, direction, beforeEvent);
+ }),
+ onStop: useLatestValue((direction) => {
+ nesting.onStop(container, direction, afterEvent);
+ if (direction === "leave" && !hasChildren(nesting)) {
+ setState("hidden" /* Hidden */);
+ unregister(container);
+ }
+ })
+ });
+ (0, import_react44.useEffect)(() => {
+ if (!skip)
+ return;
+ if (strategy === 1 /* Hidden */) {
+ prevShow.current = null;
+ } else {
+ prevShow.current = show;
+ }
+ }, [show, skip, state]);
+ let theirProps = rest;
+ let ourProps = { ref: transitionRef };
+ if (appear && show && initial) {
+ theirProps = {
+ ...theirProps,
+ // Already apply the `enter` and `enterFrom` on the server if required
+ className: classNames(rest.className, ...classes.current.enter, ...classes.current.enterFrom)
+ };
+ }
+ return /* @__PURE__ */ import_react44.default.createElement(NestingContext.Provider, { value: nesting }, /* @__PURE__ */ import_react44.default.createElement(
+ OpenClosedProvider,
+ {
+ value: match(state, {
+ ["visible" /* Visible */]: 1 /* Open */,
+ ["hidden" /* Hidden */]: 2 /* Closed */
+ }) | transitionStateFlags.flags
+ },
+ render({
+ ourProps,
+ theirProps,
+ defaultTag: DEFAULT_TRANSITION_CHILD_TAG,
+ features: TransitionChildRenderFeatures,
+ visible: state === "visible" /* Visible */,
+ name: "Transition.Child"
+ })
+ ));
+}
+function TransitionRootFn(props, ref) {
+ let { show, appear = false, unmount, ...theirProps } = props;
+ let internalTransitionRef = (0, import_react44.useRef)(null);
+ let transitionRef = useSyncRefs(internalTransitionRef, ref);
+ useServerHandoffComplete();
+ let usesOpenClosedState = useOpenClosed();
+ if (show === void 0 && usesOpenClosedState !== null) {
+ show = (usesOpenClosedState & 1 /* Open */) === 1 /* Open */;
+ }
+ if (![true, false].includes(show)) {
+ throw new Error("A is used but it is missing a `show={true | false}` prop.");
+ }
+ let [state, setState] = (0, import_react44.useState)(show ? "visible" /* Visible */ : "hidden" /* Hidden */);
+ let nestingBag = useNesting(() => {
+ setState("hidden" /* Hidden */);
+ });
+ let [initial, setInitial] = (0, import_react44.useState)(true);
+ let changes = (0, import_react44.useRef)([show]);
+ useIsoMorphicEffect(() => {
+ if (initial === false) {
+ return;
+ }
+ if (changes.current[changes.current.length - 1] !== show) {
+ changes.current.push(show);
+ setInitial(false);
+ }
+ }, [changes, show]);
+ let transitionBag = (0, import_react44.useMemo)(
+ () => ({ show, appear, initial }),
+ [show, appear, initial]
+ );
+ (0, import_react44.useEffect)(() => {
+ if (show) {
+ setState("visible" /* Visible */);
+ } else if (!hasChildren(nestingBag)) {
+ setState("hidden" /* Hidden */);
+ } else if (true) {
+ let node = internalTransitionRef.current;
+ if (!node)
+ return;
+ let rect = node.getBoundingClientRect();
+ if (rect.x === 0 && rect.y === 0 && rect.width === 0 && rect.height === 0) {
+ setState("hidden" /* Hidden */);
+ }
+ }
+ }, [show, nestingBag]);
+ let sharedProps = { unmount };
+ let beforeEnter = useEvent(() => {
+ var _a3;
+ if (initial)
+ setInitial(false);
+ (_a3 = props.beforeEnter) == null ? void 0 : _a3.call(props);
+ });
+ let beforeLeave = useEvent(() => {
+ var _a3;
+ if (initial)
+ setInitial(false);
+ (_a3 = props.beforeLeave) == null ? void 0 : _a3.call(props);
+ });
+ return /* @__PURE__ */ import_react44.default.createElement(NestingContext.Provider, { value: nestingBag }, /* @__PURE__ */ import_react44.default.createElement(TransitionContext.Provider, { value: transitionBag }, render({
+ ourProps: {
+ ...sharedProps,
+ as: import_react44.Fragment,
+ children: /* @__PURE__ */ import_react44.default.createElement(
+ TransitionChild,
+ {
+ ref: transitionRef,
+ ...sharedProps,
+ ...theirProps,
+ beforeEnter,
+ beforeLeave
+ }
+ )
+ },
+ theirProps: {},
+ defaultTag: import_react44.Fragment,
+ features: TransitionChildRenderFeatures,
+ visible: state === "visible" /* Visible */,
+ name: "Transition"
+ })));
+}
+function ChildFn(props, ref) {
+ let hasTransitionContext = (0, import_react44.useContext)(TransitionContext) !== null;
+ let hasOpenClosedContext = useOpenClosed() !== null;
+ return /* @__PURE__ */ import_react44.default.createElement(import_react44.default.Fragment, null, !hasTransitionContext && hasOpenClosedContext ? (
+ // @ts-expect-error This is an object
+ /* @__PURE__ */ import_react44.default.createElement(TransitionRoot, { ref, ...props })
+ ) : (
+ // @ts-expect-error This is an object
+ /* @__PURE__ */ import_react44.default.createElement(TransitionChild, { ref, ...props })
+ ));
+}
+var TransitionRoot = forwardRefWithAs(TransitionRootFn);
+var TransitionChild = forwardRefWithAs(TransitionChildFn);
+var Child = forwardRefWithAs(ChildFn);
+var Transition = Object.assign(TransitionRoot, { Child, Root: TransitionRoot });
+
+
+/***/ }),
+
+/***/ "../../../node_modules/@headlessui/react/dist/index.cjs":
+/*!**************************************************************!*\
+ !*** ../../../node_modules/@headlessui/react/dist/index.cjs ***!
+ \**************************************************************/
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+
+
+if (false) {} else {
+ module.exports = __webpack_require__(/*! ./headlessui.dev.cjs */ "../../../node_modules/@headlessui/react/dist/headlessui.dev.cjs")
+}
+
+
+/***/ }),
+
+/***/ "../../../node_modules/@babel/runtime/helpers/extends.js":
+/*!***************************************************************!*\
+ !*** ../../../node_modules/@babel/runtime/helpers/extends.js ***!
+ \***************************************************************/
+/***/ (function(module) {
+
+
+
+function _extends() {
+ module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+ return target;
+ }, module.exports.__esModule = true, module.exports["default"] = module.exports;
+ return _extends.apply(this, arguments);
+}
+module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
+
+/***/ })
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/global */
+/******/ !function() {
+/******/ __webpack_require__.g = (function() {
+/******/ if (typeof globalThis === 'object') return globalThis;
+/******/ try {
+/******/ return this || new Function('return this')();
+/******/ } catch (e) {
+/******/ if (typeof window === 'object') return window;
+/******/ }
+/******/ })();
+/******/ }();
+/******/
+/******/ /* webpack/runtime/make namespace object */
+/******/ !function() {
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/ }();
+/******/
+/******/ /* webpack/runtime/nonce */
+/******/ !function() {
+/******/ __webpack_require__.nc = undefined;
+/******/ }();
+/******/
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
+!function() {
+var exports = __webpack_exports__;
+/*!****************!*\
+ !*** ./cdn.ts ***!
+ \****************/
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports["default"] = void 0;
+var GraphiQLReact = _interopRequireWildcard(__webpack_require__(/*! @graphiql/react */ "../../graphiql-react/dist/index.js"));
+var _toolkit = __webpack_require__(/*! @graphiql/toolkit */ "../../graphiql-toolkit/esm/index.js");
+var GraphQL = _interopRequireWildcard(__webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs"));
+var _GraphiQL = __webpack_require__(/*! ./components/GraphiQL */ "./components/GraphiQL.tsx");
+__webpack_require__(/*! @graphiql/react/font/roboto.css */ "../../graphiql-react/font/roboto.css");
+__webpack_require__(/*! @graphiql/react/font/fira-code.css */ "../../graphiql-react/font/fira-code.css");
+__webpack_require__(/*! @graphiql/react/dist/style.css */ "../../graphiql-react/dist/style.css");
+__webpack_require__(/*! ./style.css */ "./style.css");
+function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
+function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
+/**
+ * Copyright (c) 2021 GraphQL Contributors.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * For the CDN bundle we add some static properties to the component function
+ * so that they can be accessed in the inline-script in the HTML file.
+ */
+
+/**
+ * This function is needed in order to easily create a fetcher function.
+ */
+// @ts-expect-error
+_GraphiQL.GraphiQL.createFetcher = _toolkit.createGraphiQLFetcher;
+
+/**
+ * This function is needed in order to easily generate a custom storage namespace
+ */
+// @ts-expect-error
+_GraphiQL.GraphiQL.createLocalStorage = _toolkit.createLocalStorage;
+
+/**
+ * We also add the complete `graphiql-js` exports so that this instance of
+ * `graphiql-js` can be reused from plugin CDN bundles.
+ */
+// @ts-expect-error
+_GraphiQL.GraphiQL.GraphQL = GraphQL;
+
+/**
+ * We also add the complete `@graphiql/react` exports. These will be included
+ * in the bundle anyway since they make up the `GraphiQL` component, so by
+ * doing this we can reuse them from plugin CDN bundles.
+ */
+// @ts-expect-error
+_GraphiQL.GraphiQL.React = GraphiQLReact;
+var _default = _GraphiQL.GraphiQL;
+exports["default"] = _default;
+}();
+window.GraphiQL = __webpack_exports__["default"];
+/******/ })()
+;
+//# sourceMappingURL=graphiql.min.js.map
\ No newline at end of file
diff --git a/assets/bundles/apiplatform/graphql-playground-style.css b/assets/bundles/apiplatform/graphql-playground-style.css
new file mode 100644
index 0000000..fd0d03b
--- /dev/null
+++ b/assets/bundles/apiplatform/graphql-playground-style.css
@@ -0,0 +1,468 @@
+html {
+ font-family: "Open Sans", sans-serif;
+ overflow: hidden;
+}
+
+body {
+ margin: 0;
+ background: #172a3a;
+}
+
+.playgroundIn {
+ -webkit-animation: playgroundIn 0.5s ease-out forwards;
+ animation: playgroundIn 0.5s ease-out forwards;
+}
+
+@-webkit-keyframes playgroundIn {
+ from {
+ opacity: 0;
+ -webkit-transform: translateY(10px);
+ -ms-transform: translateY(10px);
+ transform: translateY(10px);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@keyframes playgroundIn {
+ from {
+ opacity: 0;
+ -webkit-transform: translateY(10px);
+ -ms-transform: translateY(10px);
+ transform: translateY(10px);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+.fadeOut {
+ -webkit-animation: fadeOut 0.5s ease-out forwards;
+ animation: fadeOut 0.5s ease-out forwards;
+}
+
+@-webkit-keyframes fadeIn {
+ from {
+ opacity: 0;
+ -webkit-transform: translateY(-10px);
+ -ms-transform: translateY(-10px);
+ transform: translateY(-10px);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@keyframes fadeIn {
+ from {
+ opacity: 0;
+ -webkit-transform: translateY(-10px);
+ -ms-transform: translateY(-10px);
+ transform: translateY(-10px);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes fadeOut {
+ from {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translateY(-10px);
+ -ms-transform: translateY(-10px);
+ transform: translateY(-10px);
+ }
+}
+
+@keyframes fadeOut {
+ from {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translateY(-10px);
+ -ms-transform: translateY(-10px);
+ transform: translateY(-10px);
+ }
+}
+
+@-webkit-keyframes appearIn {
+ from {
+ opacity: 0;
+ -webkit-transform: translateY(0px);
+ -ms-transform: translateY(0px);
+ transform: translateY(0px);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@keyframes appearIn {
+ from {
+ opacity: 0;
+ -webkit-transform: translateY(0px);
+ -ms-transform: translateY(0px);
+ transform: translateY(0px);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes scaleIn {
+ from {
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ }
+ to {
+ -webkit-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@keyframes scaleIn {
+ from {
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ }
+ to {
+ -webkit-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@-webkit-keyframes innerDrawIn {
+ 0% {
+ stroke-dashoffset: 70;
+ }
+ 50% {
+ stroke-dashoffset: 140;
+ }
+ 100% {
+ stroke-dashoffset: 210;
+ }
+}
+
+@keyframes innerDrawIn {
+ 0% {
+ stroke-dashoffset: 70;
+ }
+ 50% {
+ stroke-dashoffset: 140;
+ }
+ 100% {
+ stroke-dashoffset: 210;
+ }
+}
+
+@-webkit-keyframes outerDrawIn {
+ 0% {
+ stroke-dashoffset: 76;
+ }
+ 100% {
+ stroke-dashoffset: 152;
+ }
+}
+
+@keyframes outerDrawIn {
+ 0% {
+ stroke-dashoffset: 76;
+ }
+ 100% {
+ stroke-dashoffset: 152;
+ }
+}
+
+.hHWjkv {
+ -webkit-transform-origin: 0px 0px;
+ -ms-transform-origin: 0px 0px;
+ transform-origin: 0px 0px;
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ -webkit-animation: scaleIn 0.25s linear forwards 0.2222222222222222s;
+ animation: scaleIn 0.25s linear forwards 0.2222222222222222s;
+}
+
+.gCDOzd {
+ -webkit-transform-origin: 0px 0px;
+ -ms-transform-origin: 0px 0px;
+ transform-origin: 0px 0px;
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ -webkit-animation: scaleIn 0.25s linear forwards 0.4222222222222222s;
+ animation: scaleIn 0.25s linear forwards 0.4222222222222222s;
+}
+
+.hmCcxi {
+ -webkit-transform-origin: 0px 0px;
+ -ms-transform-origin: 0px 0px;
+ transform-origin: 0px 0px;
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ -webkit-animation: scaleIn 0.25s linear forwards 0.6222222222222222s;
+ animation: scaleIn 0.25s linear forwards 0.6222222222222222s;
+}
+
+.eHamQi {
+ -webkit-transform-origin: 0px 0px;
+ -ms-transform-origin: 0px 0px;
+ transform-origin: 0px 0px;
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ -webkit-animation: scaleIn 0.25s linear forwards 0.8222222222222223s;
+ animation: scaleIn 0.25s linear forwards 0.8222222222222223s;
+}
+
+.byhgGu {
+ -webkit-transform-origin: 0px 0px;
+ -ms-transform-origin: 0px 0px;
+ transform-origin: 0px 0px;
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ -webkit-animation: scaleIn 0.25s linear forwards 1.0222222222222221s;
+ animation: scaleIn 0.25s linear forwards 1.0222222222222221s;
+}
+
+.llAKP {
+ -webkit-transform-origin: 0px 0px;
+ -ms-transform-origin: 0px 0px;
+ transform-origin: 0px 0px;
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ -webkit-animation: scaleIn 0.25s linear forwards 1.2222222222222223s;
+ animation: scaleIn 0.25s linear forwards 1.2222222222222223s;
+}
+
+.bglIGM {
+ -webkit-transform-origin: 64px 28px;
+ -ms-transform-origin: 64px 28px;
+ transform-origin: 64px 28px;
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ -webkit-animation: scaleIn 0.25s linear forwards 0.2222222222222222s;
+ animation: scaleIn 0.25s linear forwards 0.2222222222222222s;
+}
+
+.ksxRII {
+ -webkit-transform-origin: 95.98500061035156px 46.510000228881836px;
+ -ms-transform-origin: 95.98500061035156px 46.510000228881836px;
+ transform-origin: 95.98500061035156px 46.510000228881836px;
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ -webkit-animation: scaleIn 0.25s linear forwards 0.4222222222222222s;
+ animation: scaleIn 0.25s linear forwards 0.4222222222222222s;
+}
+
+.cWrBmb {
+ -webkit-transform-origin: 95.97162628173828px 83.4900016784668px;
+ -ms-transform-origin: 95.97162628173828px 83.4900016784668px;
+ transform-origin: 95.97162628173828px 83.4900016784668px;
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ -webkit-animation: scaleIn 0.25s linear forwards 0.6222222222222222s;
+ animation: scaleIn 0.25s linear forwards 0.6222222222222222s;
+}
+
+.Wnusb {
+ -webkit-transform-origin: 64px 101.97999572753906px;
+ -ms-transform-origin: 64px 101.97999572753906px;
+ transform-origin: 64px 101.97999572753906px;
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ -webkit-animation: scaleIn 0.25s linear forwards 0.8222222222222223s;
+ animation: scaleIn 0.25s linear forwards 0.8222222222222223s;
+}
+
+.bfPqf {
+ -webkit-transform-origin: 32.03982162475586px 83.4900016784668px;
+ -ms-transform-origin: 32.03982162475586px 83.4900016784668px;
+ transform-origin: 32.03982162475586px 83.4900016784668px;
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ -webkit-animation: scaleIn 0.25s linear forwards 1.0222222222222221s;
+ animation: scaleIn 0.25s linear forwards 1.0222222222222221s;
+}
+
+.edRCTN {
+ -webkit-transform-origin: 32.033552169799805px 46.510000228881836px;
+ -ms-transform-origin: 32.033552169799805px 46.510000228881836px;
+ transform-origin: 32.033552169799805px 46.510000228881836px;
+ -webkit-transform: scale(0);
+ -ms-transform: scale(0);
+ transform: scale(0);
+ -webkit-animation: scaleIn 0.25s linear forwards 1.2222222222222223s;
+ animation: scaleIn 0.25s linear forwards 1.2222222222222223s;
+}
+
+.iEGVWn {
+ opacity: 0;
+ stroke-dasharray: 76;
+ -webkit-animation: outerDrawIn 0.5s ease-out forwards 0.3333333333333333s, appearIn 0.1s ease-out forwards 0.3333333333333333s;
+ animation: outerDrawIn 0.5s ease-out forwards 0.3333333333333333s, appearIn 0.1s ease-out forwards 0.3333333333333333s;
+ -webkit-animation-iteration-count: 1, 1;
+ animation-iteration-count: 1, 1;
+}
+
+.bsocdx {
+ opacity: 0;
+ stroke-dasharray: 76;
+ -webkit-animation: outerDrawIn 0.5s ease-out forwards 0.5333333333333333s, appearIn 0.1s ease-out forwards 0.5333333333333333s;
+ animation: outerDrawIn 0.5s ease-out forwards 0.5333333333333333s, appearIn 0.1s ease-out forwards 0.5333333333333333s;
+ -webkit-animation-iteration-count: 1, 1;
+ animation-iteration-count: 1, 1;
+}
+
+.jAZXmP {
+ opacity: 0;
+ stroke-dasharray: 76;
+ -webkit-animation: outerDrawIn 0.5s ease-out forwards 0.7333333333333334s, appearIn 0.1s ease-out forwards 0.7333333333333334s;
+ animation: outerDrawIn 0.5s ease-out forwards 0.7333333333333334s, appearIn 0.1s ease-out forwards 0.7333333333333334s;
+ -webkit-animation-iteration-count: 1, 1;
+ animation-iteration-count: 1, 1;
+}
+
+.hSeArx {
+ opacity: 0;
+ stroke-dasharray: 76;
+ -webkit-animation: outerDrawIn 0.5s ease-out forwards 0.9333333333333333s, appearIn 0.1s ease-out forwards 0.9333333333333333s;
+ animation: outerDrawIn 0.5s ease-out forwards 0.9333333333333333s, appearIn 0.1s ease-out forwards 0.9333333333333333s;
+ -webkit-animation-iteration-count: 1, 1;
+ animation-iteration-count: 1, 1;
+}
+
+.bVgqGk {
+ opacity: 0;
+ stroke-dasharray: 76;
+ -webkit-animation: outerDrawIn 0.5s ease-out forwards 1.1333333333333333s, appearIn 0.1s ease-out forwards 1.1333333333333333s;
+ animation: outerDrawIn 0.5s ease-out forwards 1.1333333333333333s, appearIn 0.1s ease-out forwards 1.1333333333333333s;
+ -webkit-animation-iteration-count: 1, 1;
+ animation-iteration-count: 1, 1;
+}
+
+.hEFqBt {
+ opacity: 0;
+ stroke-dasharray: 76;
+ -webkit-animation: outerDrawIn 0.5s ease-out forwards 1.3333333333333333s, appearIn 0.1s ease-out forwards 1.3333333333333333s;
+ animation: outerDrawIn 0.5s ease-out forwards 1.3333333333333333s, appearIn 0.1s ease-out forwards 1.3333333333333333s;
+ -webkit-animation-iteration-count: 1, 1;
+ animation-iteration-count: 1, 1;
+}
+
+.dzEKCM {
+ opacity: 0;
+ stroke-dasharray: 70;
+ -webkit-animation: innerDrawIn 1s ease-in-out forwards 1.3666666666666667s, appearIn 0.1s linear forwards 1.3666666666666667s;
+ animation: innerDrawIn 1s ease-in-out forwards 1.3666666666666667s, appearIn 0.1s linear forwards 1.3666666666666667s;
+ -webkit-animation-iteration-count: infinite, 1;
+ animation-iteration-count: infinite, 1;
+}
+
+.DYnPx {
+ opacity: 0;
+ stroke-dasharray: 70;
+ -webkit-animation: innerDrawIn 1s ease-in-out forwards 1.5333333333333332s, appearIn 0.1s linear forwards 1.5333333333333332s;
+ animation: innerDrawIn 1s ease-in-out forwards 1.5333333333333332s, appearIn 0.1s linear forwards 1.5333333333333332s;
+ -webkit-animation-iteration-count: infinite, 1;
+ animation-iteration-count: infinite, 1;
+}
+
+.hjPEAQ {
+ opacity: 0;
+ stroke-dasharray: 70;
+ -webkit-animation: innerDrawIn 1s ease-in-out forwards 1.7000000000000002s, appearIn 0.1s linear forwards 1.7000000000000002s;
+ animation: innerDrawIn 1s ease-in-out forwards 1.7000000000000002s, appearIn 0.1s linear forwards 1.7000000000000002s;
+ -webkit-animation-iteration-count: infinite, 1;
+ animation-iteration-count: infinite, 1;
+}
+
+.transform-translate-100x100 {
+ transform: translate(100px, 100px);
+}
+
+#loading-wrapper {
+ position: absolute;
+ width: 100vw;
+ height: 100vh;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+}
+
+.logo {
+ width: 75px;
+ height: 75px;
+ margin-bottom: 20px;
+ opacity: 0;
+ -webkit-animation: fadeIn 0.5s ease-out forwards;
+ animation: fadeIn 0.5s ease-out forwards;
+}
+
+.text {
+ font-size: 32px;
+ font-weight: 200;
+ text-align: center;
+ color: rgba(255, 255, 255, 0.6);
+ opacity: 0;
+ -webkit-animation: fadeIn 0.5s ease-out forwards;
+ animation: fadeIn 0.5s ease-out forwards;
+}
+
+.dGfHfc {
+ font-weight: 400;
+}
diff --git a/assets/bundles/apiplatform/graphql-playground/index.css b/assets/bundles/apiplatform/graphql-playground/index.css
new file mode 100644
index 0000000..4558934
--- /dev/null
+++ b/assets/bundles/apiplatform/graphql-playground/index.css
@@ -0,0 +1,45 @@
+body {
+ margin: 0;
+ padding: 0;
+ font-family: sans-serif;
+ overflow: hidden;
+}
+
+#root {
+ height: 100%;
+}
+
+body {
+ font-family: 'Open Sans', sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ color: rgba(0,0,0,.8);
+ line-height: 1.5;
+ height: 100vh;
+ letter-spacing: 0.53px;
+ margin-right: -1px !important;
+}
+
+html, body, p, a, h1, h2, h3, h4, ul, pre, code {
+ margin: 0;
+ padding: 0;
+ color: inherit;
+}
+
+a:active, a:focus, button:focus, input:focus {
+ outline: none;
+}
+
+input, button, submit {
+ border: none;
+}
+
+input, button, pre {
+ font-family: 'Open Sans', sans-serif;
+}
+
+code {
+ font-family: Consolas, monospace;
+}
+
+/*# sourceMappingURL=index.css.map*/
\ No newline at end of file
diff --git a/assets/bundles/apiplatform/graphql-playground/middleware.js b/assets/bundles/apiplatform/graphql-playground/middleware.js
new file mode 100644
index 0000000..f8723d5
--- /dev/null
+++ b/assets/bundles/apiplatform/graphql-playground/middleware.js
@@ -0,0 +1,125 @@
+!function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=542)}([function(e,t,n){"use strict";n.d(t,"S",(function(){return C})),n.d(t,"x",(function(){return w})),n.d(t,"R",(function(){return S})),n.d(t,"w",(function(){return k})),n.d(t,"N",(function(){return A})),n.d(t,"u",(function(){return T})),n.d(t,"H",(function(){return _})),n.d(t,"o",(function(){return O})),n.d(t,"T",(function(){return F})),n.d(t,"y",(function(){return N})),n.d(t,"E",(function(){return I})),n.d(t,"l",(function(){return M})),n.d(t,"F",(function(){return j})),n.d(t,"m",(function(){return L})),n.d(t,"J",(function(){return P})),n.d(t,"q",(function(){return R})),n.d(t,"L",(function(){return B})),n.d(t,"s",(function(){return U})),n.d(t,"G",(function(){return z})),n.d(t,"n",(function(){return V})),n.d(t,"O",(function(){return q})),n.d(t,"v",(function(){return H})),n.d(t,"I",(function(){return W})),n.d(t,"p",(function(){return G})),n.d(t,"D",(function(){return K})),n.d(t,"k",(function(){return J})),n.d(t,"C",(function(){return Q})),n.d(t,"j",(function(){return Y})),n.d(t,"d",(function(){return $})),n.d(t,"e",(function(){return X})),n.d(t,"U",(function(){return Z})),n.d(t,"z",(function(){return ee})),n.d(t,"M",(function(){return te})),n.d(t,"t",(function(){return ne})),n.d(t,"B",(function(){return re})),n.d(t,"K",(function(){return ie})),n.d(t,"r",(function(){return oe})),n.d(t,"A",(function(){return ae})),n.d(t,"g",(function(){return ce})),n.d(t,"f",(function(){return le})),n.d(t,"i",(function(){return me})),n.d(t,"P",(function(){return ge})),n.d(t,"c",(function(){return ye})),n.d(t,"h",(function(){return ve})),n.d(t,"a",(function(){return Ee})),n.d(t,"b",(function(){return De})),n.d(t,"Q",(function(){return we}));var r=n(55),i=n(25),o=n(4),a=n(36),s=n(57),u=n(41),c=n(8),l=n(50),p=n(48),f=n(39),d=n(31);function h(e){return e}var m=n(47),g=n(44),y=n(2),v=n(1),b=n(15),E=n(217);function x(e,t){for(var n=0;n0?e:void 0}$.prototype.toString=function(){return"["+String(this.ofType)+"]"},$.prototype.toJSON=function(){return this.toString()},Object.defineProperty($.prototype,i.c,{get:function(){return"GraphQLList"}}),Object(m.a)($),X.prototype.toString=function(){return String(this.ofType)+"!"},X.prototype.toJSON=function(){return this.toString()},Object.defineProperty(X.prototype,i.c,{get:function(){return"GraphQLNonNull"}}),Object(m.a)(X);var ce=function(){function e(e){var t,n,r,i=null!==(t=e.parseValue)&&void 0!==t?t:h;this.name=e.name,this.description=e.description,this.specifiedByUrl=e.specifiedByUrl,this.serialize=null!==(n=e.serialize)&&void 0!==n?n:h,this.parseValue=i,this.parseLiteral=null!==(r=e.parseLiteral)&&void 0!==r?r:function(e){return i(Object(E.a)(e))},this.extensions=e.extensions&&Object(u.a)(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=ue(e.extensionASTNodes),"string"==typeof e.name||Object(c.a)(0,"Must provide name."),null==e.specifiedByUrl||"string"==typeof e.specifiedByUrl||Object(c.a)(0,"".concat(this.name,' must provide "specifiedByUrl" as a string, ')+"but got: ".concat(Object(o.a)(e.specifiedByUrl),".")),null==e.serialize||"function"==typeof e.serialize||Object(c.a)(0,"".concat(this.name,' must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.')),e.parseLiteral&&("function"==typeof e.parseValue&&"function"==typeof e.parseLiteral||Object(c.a)(0,"".concat(this.name,' must provide both "parseValue" and "parseLiteral" functions.')))}var t=e.prototype;return t.toConfig=function(){var e;return{name:this.name,description:this.description,specifiedByUrl:this.specifiedByUrl,serialize:this.serialize,parseValue:this.parseValue,parseLiteral:this.parseLiteral,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:null!==(e=this.extensionASTNodes)&&void 0!==e?e:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},D(e,[{key:i.c,get:function(){return"GraphQLScalarType"}}]),e}();Object(m.a)(ce);var le=function(){function e(e){this.name=e.name,this.description=e.description,this.isTypeOf=e.isTypeOf,this.extensions=e.extensions&&Object(u.a)(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=ue(e.extensionASTNodes),this._fields=fe.bind(void 0,e),this._interfaces=pe.bind(void 0,e),"string"==typeof e.name||Object(c.a)(0,"Must provide name."),null==e.isTypeOf||"function"==typeof e.isTypeOf||Object(c.a)(0,"".concat(this.name,' must provide "isTypeOf" as a function, ')+"but got: ".concat(Object(o.a)(e.isTypeOf),"."))}var t=e.prototype;return t.getFields=function(){return"function"==typeof this._fields&&(this._fields=this._fields()),this._fields},t.getInterfaces=function(){return"function"==typeof this._interfaces&&(this._interfaces=this._interfaces()),this._interfaces},t.toConfig=function(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:he(this.getFields()),isTypeOf:this.isTypeOf,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes||[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},D(e,[{key:i.c,get:function(){return"GraphQLObjectType"}}]),e}();function pe(e){var t,n=null!==(t=se(e.interfaces))&&void 0!==t?t:[];return Array.isArray(n)||Object(c.a)(0,"".concat(e.name," interfaces must be an Array or a function which returns an Array.")),n}function fe(e){var t=se(e.fields);return de(t)||Object(c.a)(0,"".concat(e.name," fields must be an object with field names as keys or a function which returns such an object.")),Object(s.a)(t,(function(t,n){var i;de(t)||Object(c.a)(0,"".concat(e.name,".").concat(n," field config must be an object.")),!("isDeprecated"in t)||Object(c.a)(0,"".concat(e.name,".").concat(n,' should provide "deprecationReason" instead of "isDeprecated".')),null==t.resolve||"function"==typeof t.resolve||Object(c.a)(0,"".concat(e.name,".").concat(n," field resolver must be a function if ")+"provided, but got: ".concat(Object(o.a)(t.resolve),"."));var a=null!==(i=t.args)&&void 0!==i?i:{};de(a)||Object(c.a)(0,"".concat(e.name,".").concat(n," args must be an object with argument names as keys."));var s=Object(r.a)(a).map((function(e){var t=e[0],n=e[1];return{name:t,description:n.description,type:n.type,defaultValue:n.defaultValue,extensions:n.extensions&&Object(u.a)(n.extensions),astNode:n.astNode}}));return{name:n,description:t.description,type:t.type,args:s,resolve:t.resolve,subscribe:t.subscribe,isDeprecated:null!=t.deprecationReason,deprecationReason:t.deprecationReason,extensions:t.extensions&&Object(u.a)(t.extensions),astNode:t.astNode}}))}function de(e){return Object(d.a)(e)&&!Array.isArray(e)}function he(e){return Object(s.a)(e,(function(e){return{description:e.description,type:e.type,args:me(e.args),resolve:e.resolve,subscribe:e.subscribe,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode}}))}function me(e){return Object(l.a)(e,(function(e){return e.name}),(function(e){return{description:e.description,type:e.type,defaultValue:e.defaultValue,extensions:e.extensions,astNode:e.astNode}}))}function ge(e){return B(e.type)&&void 0===e.defaultValue}Object(m.a)(le);var ye=function(){function e(e){this.name=e.name,this.description=e.description,this.resolveType=e.resolveType,this.extensions=e.extensions&&Object(u.a)(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=ue(e.extensionASTNodes),this._fields=fe.bind(void 0,e),this._interfaces=pe.bind(void 0,e),"string"==typeof e.name||Object(c.a)(0,"Must provide name."),null==e.resolveType||"function"==typeof e.resolveType||Object(c.a)(0,"".concat(this.name,' must provide "resolveType" as a function, ')+"but got: ".concat(Object(o.a)(e.resolveType),"."))}var t=e.prototype;return t.getFields=function(){return"function"==typeof this._fields&&(this._fields=this._fields()),this._fields},t.getInterfaces=function(){return"function"==typeof this._interfaces&&(this._interfaces=this._interfaces()),this._interfaces},t.toConfig=function(){var e;return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:he(this.getFields()),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:null!==(e=this.extensionASTNodes)&&void 0!==e?e:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},D(e,[{key:i.c,get:function(){return"GraphQLInterfaceType"}}]),e}();Object(m.a)(ye);var ve=function(){function e(e){this.name=e.name,this.description=e.description,this.resolveType=e.resolveType,this.extensions=e.extensions&&Object(u.a)(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=ue(e.extensionASTNodes),this._types=be.bind(void 0,e),"string"==typeof e.name||Object(c.a)(0,"Must provide name."),null==e.resolveType||"function"==typeof e.resolveType||Object(c.a)(0,"".concat(this.name,' must provide "resolveType" as a function, ')+"but got: ".concat(Object(o.a)(e.resolveType),"."))}var t=e.prototype;return t.getTypes=function(){return"function"==typeof this._types&&(this._types=this._types()),this._types},t.toConfig=function(){var e;return{name:this.name,description:this.description,types:this.getTypes(),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:null!==(e=this.extensionASTNodes)&&void 0!==e?e:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},D(e,[{key:i.c,get:function(){return"GraphQLUnionType"}}]),e}();function be(e){var t=se(e.types);return Array.isArray(t)||Object(c.a)(0,"Must provide Array of types or a function which returns such an array for Union ".concat(e.name,".")),t}Object(m.a)(ve);var Ee=function(){function e(e){var t,n;this.name=e.name,this.description=e.description,this.extensions=e.extensions&&Object(u.a)(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=ue(e.extensionASTNodes),this._values=(t=this.name,de(n=e.values)||Object(c.a)(0,"".concat(t," values must be an object with value names as keys.")),Object(r.a)(n).map((function(e){var n=e[0],r=e[1];return de(r)||Object(c.a)(0,"".concat(t,".").concat(n,' must refer to an object with a "value" key ')+"representing an internal value but got: ".concat(Object(o.a)(r),".")),!("isDeprecated"in r)||Object(c.a)(0,"".concat(t,".").concat(n,' should provide "deprecationReason" instead of "isDeprecated".')),{name:n,description:r.description,value:void 0!==r.value?r.value:n,isDeprecated:null!=r.deprecationReason,deprecationReason:r.deprecationReason,extensions:r.extensions&&Object(u.a)(r.extensions),astNode:r.astNode}}))),this._valueLookup=new Map(this._values.map((function(e){return[e.value,e]}))),this._nameLookup=Object(a.a)(this._values,(function(e){return e.name})),"string"==typeof e.name||Object(c.a)(0,"Must provide name.")}var t=e.prototype;return t.getValues=function(){return this._values},t.getValue=function(e){return this._nameLookup[e]},t.serialize=function(e){var t=this._valueLookup.get(e);if(void 0===t)throw new y.a('Enum "'.concat(this.name,'" cannot represent value: ').concat(Object(o.a)(e)));return t.name},t.parseValue=function(e){if("string"!=typeof e){var t=Object(o.a)(e);throw new y.a('Enum "'.concat(this.name,'" cannot represent non-string value: ').concat(t,".")+xe(this,t))}var n=this.getValue(e);if(null==n)throw new y.a('Value "'.concat(e,'" does not exist in "').concat(this.name,'" enum.')+xe(this,e));return n.value},t.parseLiteral=function(e,t){if(e.kind!==v.a.ENUM){var n=Object(b.print)(e);throw new y.a('Enum "'.concat(this.name,'" cannot represent non-enum value: ').concat(n,".")+xe(this,n),e)}var r=this.getValue(e.value);if(null==r){var i=Object(b.print)(e);throw new y.a('Value "'.concat(i,'" does not exist in "').concat(this.name,'" enum.')+xe(this,i),e)}return r.value},t.toConfig=function(){var e,t=Object(l.a)(this.getValues(),(function(e){return e.name}),(function(e){return{description:e.description,value:e.value,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode}}));return{name:this.name,description:this.description,values:t,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:null!==(e=this.extensionASTNodes)&&void 0!==e?e:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},D(e,[{key:i.c,get:function(){return"GraphQLEnumType"}}]),e}();function xe(e,t){var n=e.getValues().map((function(e){return e.name})),r=Object(g.a)(t,n);return Object(f.a)("the enum value",r)}Object(m.a)(Ee);var De=function(){function e(e){this.name=e.name,this.description=e.description,this.extensions=e.extensions&&Object(u.a)(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=ue(e.extensionASTNodes),this._fields=Ce.bind(void 0,e),"string"==typeof e.name||Object(c.a)(0,"Must provide name.")}var t=e.prototype;return t.getFields=function(){return"function"==typeof this._fields&&(this._fields=this._fields()),this._fields},t.toConfig=function(){var e,t=Object(s.a)(this.getFields(),(function(e){return{description:e.description,type:e.type,defaultValue:e.defaultValue,extensions:e.extensions,astNode:e.astNode}}));return{name:this.name,description:this.description,fields:t,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:null!==(e=this.extensionASTNodes)&&void 0!==e?e:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},D(e,[{key:i.c,get:function(){return"GraphQLInputObjectType"}}]),e}();function Ce(e){var t=se(e.fields);return de(t)||Object(c.a)(0,"".concat(e.name," fields must be an object with field names as keys or a function which returns such an object.")),Object(s.a)(t,(function(t,n){return!("resolve"in t)||Object(c.a)(0,"".concat(e.name,".").concat(n," field has a resolve property, but Input Types cannot define resolvers.")),{name:n,description:t.description,type:t.type,defaultValue:t.defaultValue,extensions:t.extensions&&Object(u.a)(t.extensions),astNode:t.astNode}}))}function we(e){return B(e.type)&&void 0===e.defaultValue}Object(m.a)(De)},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=Object.freeze({NAME:"Name",DOCUMENT:"Document",OPERATION_DEFINITION:"OperationDefinition",VARIABLE_DEFINITION:"VariableDefinition",SELECTION_SET:"SelectionSet",FIELD:"Field",ARGUMENT:"Argument",FRAGMENT_SPREAD:"FragmentSpread",INLINE_FRAGMENT:"InlineFragment",FRAGMENT_DEFINITION:"FragmentDefinition",VARIABLE:"Variable",INT:"IntValue",FLOAT:"FloatValue",STRING:"StringValue",BOOLEAN:"BooleanValue",NULL:"NullValue",ENUM:"EnumValue",LIST:"ListValue",OBJECT:"ObjectValue",OBJECT_FIELD:"ObjectField",DIRECTIVE:"Directive",NAMED_TYPE:"NamedType",LIST_TYPE:"ListType",NON_NULL_TYPE:"NonNullType",SCHEMA_DEFINITION:"SchemaDefinition",OPERATION_TYPE_DEFINITION:"OperationTypeDefinition",SCALAR_TYPE_DEFINITION:"ScalarTypeDefinition",OBJECT_TYPE_DEFINITION:"ObjectTypeDefinition",FIELD_DEFINITION:"FieldDefinition",INPUT_VALUE_DEFINITION:"InputValueDefinition",INTERFACE_TYPE_DEFINITION:"InterfaceTypeDefinition",UNION_TYPE_DEFINITION:"UnionTypeDefinition",ENUM_TYPE_DEFINITION:"EnumTypeDefinition",ENUM_VALUE_DEFINITION:"EnumValueDefinition",INPUT_OBJECT_TYPE_DEFINITION:"InputObjectTypeDefinition",DIRECTIVE_DEFINITION:"DirectiveDefinition",SCHEMA_EXTENSION:"SchemaExtension",SCALAR_TYPE_EXTENSION:"ScalarTypeExtension",OBJECT_TYPE_EXTENSION:"ObjectTypeExtension",INTERFACE_TYPE_EXTENSION:"InterfaceTypeExtension",UNION_TYPE_EXTENSION:"UnionTypeExtension",ENUM_TYPE_EXTENSION:"EnumTypeExtension",INPUT_OBJECT_TYPE_EXTENSION:"InputObjectTypeExtension"})},function(e,t,n){"use strict";n.d(t,"a",(function(){return g})),n.d(t,"b",(function(){return y}));var r=n(31),i=n(25),o=n(96),a=n(137);function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){for(var n=0;n2)return"[Array]";for(var n=Math.min(10,e.length),r=e.length-n,i=[],o=0;o1&&i.push("... ".concat(r," more items"));return"["+i.join(", ")+"]"}(e,n);return function(e,t){var n=Object.keys(e);if(0===n.length)return"{}";if(t.length>2)return"["+function(e){var t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if("Object"===t&&"function"==typeof e.constructor){var n=e.constructor.name;if("string"==typeof n&&""!==n)return n}return t}(e)+"]";return"{ "+n.map((function(n){return n+": "+a(e[n],t)})).join(", ")+" }"}(e,n)}(e,t);default:return String(e)}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=Object.freeze({SOF:"",EOF:"",BANG:"!",DOLLAR:"$",AMP:"&",PAREN_L:"(",PAREN_R:")",SPREAD:"...",COLON:":",EQUALS:"=",AT:"@",BRACKET_L:"[",BRACKET_R:"]",BRACE_L:"{",PIPE:"|",BRACE_R:"}",NAME:"Name",INT:"Int",FLOAT:"Float",STRING:"String",BLOCK_STRING:"BlockString",COMMENT:"Comment"})},function(e,t,n){"use strict";n.d(t,"a",(function(){return ae})),n.d(t,"b",(function(){return L})),n.d(t,"c",(function(){return v})),n.d(t,"d",(function(){return R})),n.d(t,"e",(function(){return x})),n.d(t,"f",(function(){return c})),n.d(t,"g",(function(){return U})),n.d(t,"h",(function(){return K})),n.d(t,"i",(function(){return I})),n.d(t,"j",(function(){return $})),n.d(t,"k",(function(){return z})),n.d(t,"l",(function(){return X})),n.d(t,"m",(function(){return ue})),n.d(t,"n",(function(){return pe})),n.d(t,"o",(function(){return oe})),n.d(t,"p",(function(){return de})),n.d(t,"q",(function(){return j})),n.d(t,"r",(function(){return F})),n.d(t,"s",(function(){return P})),n.d(t,"t",(function(){return q})),n.d(t,"u",(function(){return M})),n.d(t,"v",(function(){return ve})),n.d(t,"w",(function(){return re})),n.d(t,"x",(function(){return Q})),n.d(t,"y",(function(){return Z})),n.d(t,"z",(function(){return ee})),n.d(t,"A",(function(){return te})),n.d(t,"B",(function(){return ne})),n.d(t,"C",(function(){return B})),n.d(t,"D",(function(){return se})),n.d(t,"E",(function(){return ce})),n.d(t,"F",(function(){return le})),n.d(t,"G",(function(){return fe})),n.d(t,"H",(function(){return he})),n.d(t,"I",(function(){return me})),n.d(t,"J",(function(){return ge})),n.d(t,"K",(function(){return ye})),n.d(t,"L",(function(){return V})),n.d(t,"M",(function(){return l})),n.d(t,"N",(function(){return H})),n.d(t,"O",(function(){return N})),n.d(t,"P",(function(){return W})),n.d(t,"Q",(function(){return G})),n.d(t,"R",(function(){return J})),n.d(t,"S",(function(){return b})),n.d(t,"T",(function(){return k})),n.d(t,"U",(function(){return s})),n.d(t,"V",(function(){return S})),n.d(t,"W",(function(){return E})),n.d(t,"X",(function(){return O})),n.d(t,"Y",(function(){return h})),n.d(t,"Z",(function(){return p})),n.d(t,"ab",(function(){return y})),n.d(t,"bb",(function(){return d})),n.d(t,"cb",(function(){return w})),n.d(t,"db",(function(){return u})),n.d(t,"eb",(function(){return f})),n.d(t,"fb",(function(){return A})),n.d(t,"gb",(function(){return C})),n.d(t,"hb",(function(){return D}));var r=n(18),i=n(37),o=n(10),a=n(112),s=function(e){return function(){return e}}(!0),u=function(){};var c=function(e){return e};"function"==typeof Symbol&&Symbol.asyncIterator&&Symbol.asyncIterator;function l(e,t,n){if(!t(e))throw new Error(n)}var p=function(e,t){Object(i.a)(e,t),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach((function(n){e[n]=t[n]}))},f=function(e,t){var n;return(n=[]).concat.apply(n,t.map(e))};function d(e,t){var n=e.indexOf(t);n>=0&&e.splice(n,1)}function h(e){var t=!1;return function(){t||(t=!0,e())}}var m=function(e){throw e},g=function(e){return{value:e,done:!0}};function y(e,t,n){void 0===t&&(t=m),void 0===n&&(n="iterator");var r={meta:{name:n},next:e,throw:t,return:g,isSagaIterator:!0};return"undefined"!=typeof Symbol&&(r[Symbol.iterator]=function(){return r}),r}function v(e,t){var n=t.sagaStack;console.error(e),console.error(n)}var b=function(e){return new Error("\n redux-saga: Error checking hooks detected an inconsistent state. This is likely a bug\n in redux-saga code and not yours. Thanks for reporting this in the project's github repo.\n Error: "+e+"\n")},E=function(e){return Array.apply(null,new Array(e))},x=function(e){return function(t){return e(Object.defineProperty(t,r.f,{value:!0}))}},D=function(e){return e===r.k},C=function(e){return e===r.j},w=function(e){return D(e)||C(e)};function S(e,t){var n=Object.keys(e),r=n.length;var i,a=0,s=Object(o.a)(e)?E(r):{},c={};return n.forEach((function(e){var n=function(n,o){i||(o||w(n)?(t.cancel(),t(n,o)):(s[e]=n,++a===r&&(i=!0,t(s))))};n.cancel=u,c[e]=n})),t.cancel=function(){i||(i=!0,n.forEach((function(e){return c[e].cancel()})))},c}function k(e){return{name:e.name||"anonymous",location:A(e)}}function A(e){return e[r.g]}var T={isEmpty:s,put:u,take:u};function _(e,t){void 0===e&&(e=10);var n=new Array(e),r=0,i=0,o=0,a=function(t){n[i]=t,i=(i+1)%e,r++},s=function(){if(0!=r){var t=n[o];return n[o]=null,r--,o=(o+1)%e,t}},u=function(){for(var e=[];r;)e.push(s());return e};return{isEmpty:function(){return 0==r},put:function(s){var c;if(r1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r2147483647||n<-2147483648)throw new c.a("Int cannot represent non 32-bit signed integer value: "+Object(o.a)(t));return n},parseValue:function(e){if(!i(e))throw new c.a("Int cannot represent non-integer value: ".concat(Object(o.a)(e)));if(e>2147483647||e<-2147483648)throw new c.a("Int cannot represent non 32-bit signed integer value: ".concat(e));return e},parseLiteral:function(e){if(e.kind!==s.a.INT)throw new c.a("Int cannot represent non-integer value: ".concat(Object(u.print)(e)),e);var t=parseInt(e.value,10);if(t>2147483647||t<-2147483648)throw new c.a("Int cannot represent non 32-bit signed integer value: ".concat(e.value),e);return t}});var f=new l.g({name:"Float",description:"The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).",serialize:function(e){var t=d(e);if("boolean"==typeof t)return t?1:0;var n=t;if("string"==typeof t&&""!==t&&(n=Number(t)),!Object(r.a)(n))throw new c.a("Float cannot represent non numeric value: ".concat(Object(o.a)(t)));return n},parseValue:function(e){if(!Object(r.a)(e))throw new c.a("Float cannot represent non numeric value: ".concat(Object(o.a)(e)));return e},parseLiteral:function(e){if(e.kind!==s.a.FLOAT&&e.kind!==s.a.INT)throw new c.a("Float cannot represent non numeric value: ".concat(Object(u.print)(e)),e);return parseFloat(e.value)}});function d(e){if(Object(a.a)(e)){if("function"==typeof e.valueOf){var t=e.valueOf();if(!Object(a.a)(t))return t}if("function"==typeof e.toJSON)return e.toJSON()}return e}var h=new l.g({name:"String",description:"The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.",serialize:function(e){var t=d(e);if("string"==typeof t)return t;if("boolean"==typeof t)return t?"true":"false";if(Object(r.a)(t))return t.toString();throw new c.a("String cannot represent value: ".concat(Object(o.a)(e)))},parseValue:function(e){if("string"!=typeof e)throw new c.a("String cannot represent a non string value: ".concat(Object(o.a)(e)));return e},parseLiteral:function(e){if(e.kind!==s.a.STRING)throw new c.a("String cannot represent a non string value: ".concat(Object(u.print)(e)),e);return e.value}});var m=new l.g({name:"Boolean",description:"The `Boolean` scalar type represents `true` or `false`.",serialize:function(e){var t=d(e);if("boolean"==typeof t)return t;if(Object(r.a)(t))return 0!==t;throw new c.a("Boolean cannot represent a non boolean value: ".concat(Object(o.a)(t)))},parseValue:function(e){if("boolean"!=typeof e)throw new c.a("Boolean cannot represent a non boolean value: ".concat(Object(o.a)(e)));return e},parseLiteral:function(e){if(e.kind!==s.a.BOOLEAN)throw new c.a("Boolean cannot represent a non boolean value: ".concat(Object(u.print)(e)),e);return e.value}});var g=new l.g({name:"ID",description:'The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID.',serialize:function(e){var t=d(e);if("string"==typeof t)return t;if(i(t))return String(t);throw new c.a("ID cannot represent value: ".concat(Object(o.a)(e)))},parseValue:function(e){if("string"==typeof e)return e;if(i(e))return e.toString();throw new c.a("ID cannot represent value: ".concat(Object(o.a)(e)))},parseLiteral:function(e){if(e.kind!==s.a.STRING&&e.kind!==s.a.INT)throw new c.a("ID cannot represent a non-string and non-integer value: "+Object(u.print)(e),e);return e.value}}),y=Object.freeze([h,p,f,m,g]);function v(e){return y.some((function(t){var n=t.name;return e.name===n}))}},function(e,t,n){"use strict";var r=Object.values||function(e){return Object.keys(e).map((function(t){return e[t]}))};t.a=r},function(e,t,n){"use strict";n.r(t),n.d(t,"print",(function(){return o}));var r=n(26),i=n(53);function o(e){return Object(r.c)(e,{leave:a})}var a={Name:function(e){return e.value},Variable:function(e){return"$"+e.name},Document:function(e){return u(e.definitions,"\n\n")+"\n"},OperationDefinition:function(e){var t=e.operation,n=e.name,r=l("(",u(e.variableDefinitions,", "),")"),i=u(e.directives," "),o=e.selectionSet;return n||i||r||"query"!==t?u([t,u([n,r]),i,o]," "):o},VariableDefinition:function(e){var t=e.variable,n=e.type,r=e.defaultValue,i=e.directives;return t+": "+n+l(" = ",r)+l(" ",u(i," "))},SelectionSet:function(e){return c(e.selections)},Field:function(e){var t=e.alias,n=e.name,r=e.arguments,i=e.directives,o=e.selectionSet;return u([l("",t,": ")+n+l("(",u(r,", "),")"),u(i," "),o]," ")},Argument:function(e){return e.name+": "+e.value},FragmentSpread:function(e){return"..."+e.name+l(" ",u(e.directives," "))},InlineFragment:function(e){var t=e.typeCondition,n=e.directives,r=e.selectionSet;return u(["...",l("on ",t),u(n," "),r]," ")},FragmentDefinition:function(e){var t=e.name,n=e.typeCondition,r=e.variableDefinitions,i=e.directives,o=e.selectionSet;return"fragment ".concat(t).concat(l("(",u(r,", "),")")," ")+"on ".concat(n," ").concat(l("",u(i," ")," "))+o},IntValue:function(e){return e.value},FloatValue:function(e){return e.value},StringValue:function(e,t){var n=e.value;return e.block?Object(i.c)(n,"description"===t?"":" "):JSON.stringify(n)},BooleanValue:function(e){return e.value?"true":"false"},NullValue:function(){return"null"},EnumValue:function(e){return e.value},ListValue:function(e){return"["+u(e.values,", ")+"]"},ObjectValue:function(e){return"{"+u(e.fields,", ")+"}"},ObjectField:function(e){return e.name+": "+e.value},Directive:function(e){return"@"+e.name+l("(",u(e.arguments,", "),")")},NamedType:function(e){return e.name},ListType:function(e){return"["+e.type+"]"},NonNullType:function(e){return e.type+"!"},SchemaDefinition:s((function(e){var t=e.directives,n=e.operationTypes;return u(["schema",u(t," "),c(n)]," ")})),OperationTypeDefinition:function(e){return e.operation+": "+e.type},ScalarTypeDefinition:s((function(e){return u(["scalar",e.name,u(e.directives," ")]," ")})),ObjectTypeDefinition:s((function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return u(["type",t,l("implements ",u(n," & ")),u(r," "),c(i)]," ")})),FieldDefinition:s((function(e){var t=e.name,n=e.arguments,r=e.type,i=e.directives;return t+(d(n)?l("(\n",p(u(n,"\n")),"\n)"):l("(",u(n,", "),")"))+": "+r+l(" ",u(i," "))})),InputValueDefinition:s((function(e){var t=e.name,n=e.type,r=e.defaultValue,i=e.directives;return u([t+": "+n,l("= ",r),u(i," ")]," ")})),InterfaceTypeDefinition:s((function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return u(["interface",t,l("implements ",u(n," & ")),u(r," "),c(i)]," ")})),UnionTypeDefinition:s((function(e){var t=e.name,n=e.directives,r=e.types;return u(["union",t,u(n," "),r&&0!==r.length?"= "+u(r," | "):""]," ")})),EnumTypeDefinition:s((function(e){var t=e.name,n=e.directives,r=e.values;return u(["enum",t,u(n," "),c(r)]," ")})),EnumValueDefinition:s((function(e){return u([e.name,u(e.directives," ")]," ")})),InputObjectTypeDefinition:s((function(e){var t=e.name,n=e.directives,r=e.fields;return u(["input",t,u(n," "),c(r)]," ")})),DirectiveDefinition:s((function(e){var t=e.name,n=e.arguments,r=e.repeatable,i=e.locations;return"directive @"+t+(d(n)?l("(\n",p(u(n,"\n")),"\n)"):l("(",u(n,", "),")"))+(r?" repeatable":"")+" on "+u(i," | ")})),SchemaExtension:function(e){var t=e.directives,n=e.operationTypes;return u(["extend schema",u(t," "),c(n)]," ")},ScalarTypeExtension:function(e){return u(["extend scalar",e.name,u(e.directives," ")]," ")},ObjectTypeExtension:function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return u(["extend type",t,l("implements ",u(n," & ")),u(r," "),c(i)]," ")},InterfaceTypeExtension:function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return u(["extend interface",t,l("implements ",u(n," & ")),u(r," "),c(i)]," ")},UnionTypeExtension:function(e){var t=e.name,n=e.directives,r=e.types;return u(["extend union",t,u(n," "),r&&0!==r.length?"= "+u(r," | "):""]," ")},EnumTypeExtension:function(e){var t=e.name,n=e.directives,r=e.values;return u(["extend enum",t,u(n," "),c(r)]," ")},InputObjectTypeExtension:function(e){var t=e.name,n=e.directives,r=e.fields;return u(["extend input",t,u(n," "),c(r)]," ")}};function s(e){return function(t){return u([t.description,e(t)],"\n")}}function u(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return null!==(t=null==e?void 0:e.filter((function(e){return e})).join(n))&&void 0!==t?t:""}function c(e){return e&&0!==e.length?"{\n"+p(u(e,"\n"))+"\n}":""}function l(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return t?e+t+n:""}function p(e){return e&&" "+e.replace(/\n/g,"\n ")}function f(e){return-1!==e.indexOf("\n")}function d(e){return e&&e.some(f)}},function(e,t,n){e.exports=function(){"use strict";var e=navigator.userAgent,t=navigator.platform,n=/gecko\/\d/i.test(e),r=/MSIE \d/.test(e),i=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),o=/Edge\/(\d+)/.exec(e),a=r||i||o,s=a&&(r?document.documentMode||6:+(o||i)[1]),u=!o&&/WebKit\//.test(e),c=u&&/Qt\/\d+\.\d+/.test(e),l=!o&&/Chrome\//.test(e),p=/Opera\//.test(e),f=/Apple Computer/.test(navigator.vendor),d=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),h=/PhantomJS/.test(e),m=!o&&/AppleWebKit/.test(e)&&/Mobile\/\w+/.test(e),g=/Android/.test(e),y=m||g||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),v=m||/Mac/.test(t),b=/\bCrOS\b/.test(e),E=/win/i.test(t),x=p&&e.match(/Version\/(\d*\.\d*)/);x&&(x=Number(x[1])),x&&x>=15&&(p=!1,u=!0);var D=v&&(c||p&&(null==x||x<12.11)),C=n||a&&s>=9;function w(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var S,k=function(e,t){var n=e.className,r=w(t).exec(n);if(r){var i=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(i?r[1]+i:"")}};function A(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function T(e,t){return A(e).appendChild(t)}function _(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o=t)return a+(t-o);a+=s-o,a+=n-a%n,o=s+1}}m?j=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:a&&(j=function(e){try{e.select()}catch(e){}});var B=function(){this.id=null,this.f=null,this.time=0,this.handler=L(this.onTimeout,this)};function U(e,t){for(var n=0;n=t)return r+Math.min(a,t-i);if(i+=o-r,r=o+1,(i+=n-i%n)>=t)return r}}var G=[""];function K(e){for(;G.length<=e;)G.push(J(G)+" ");return G[e]}function J(e){return e[e.length-1]}function Q(e,t){for(var n=[],r=0;r""&&(e.toUpperCase()!=e.toLowerCase()||X.test(e))}function ee(e,t){return t?!!(t.source.indexOf("\\w")>-1&&Z(e))||t.test(e):Z(e)}function te(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ne=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function re(e){return e.charCodeAt(0)>=768&&ne.test(e)}function ie(e,t,n){for(;(n<0?t>0:tn?-1:1;;){if(t==n)return t;var i=(t+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:n;e(o)?n=o:t=o+r}}var ae=null;function se(e,t,n){var r;ae=null;for(var i=0;it)return i;o.to==t&&(o.from!=o.to&&"before"==n?r=i:ae=i),o.from==t&&(o.from!=o.to&&"before"!=n?r=i:ae=i)}return null!=r?r:ae}var ue=function(){var e=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,t=/[stwN]/,n=/[LRr]/,r=/[Lb1n]/,i=/[1n]/;function o(e,t,n){this.level=e,this.from=t,this.to=n}return function(a,s){var u="ltr"==s?"L":"R";if(0==a.length||"ltr"==s&&!e.test(a))return!1;for(var c,l=a.length,p=[],f=0;f-1&&(r[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function he(e,t){var n=fe(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function ve(e){e.prototype.on=function(e,t){pe(this,e,t)},e.prototype.off=function(e,t){de(this,e,t)}}function be(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Ee(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function xe(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function De(e){be(e),Ee(e)}function Ce(e){return e.target||e.srcElement}function we(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),v&&e.ctrlKey&&1==t&&(t=3),t}var Se,ke,Ae=function(){if(a&&s<9)return!1;var e=_("div");return"draggable"in e||"dragDrop"in e}();function Te(e){if(null==Se){var t=_("span","");T(e,_("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Se=t.offsetWidth<=1&&t.offsetHeight>2&&!(a&&s<8))}var n=Se?_("span",""):_("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function _e(e){if(null!=ke)return ke;var t=T(e,document.createTextNode("AخA")),n=S(t,0,1).getBoundingClientRect(),r=S(t,1,2).getBoundingClientRect();return A(e),!(!n||n.left==n.right)&&(ke=r.right-n.right<3)}var Oe,Fe=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(n.push(o.slice(0,a)),t+=a+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)},Ne=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},Ie="oncopy"in(Oe=_("div"))||(Oe.setAttribute("oncopy","return;"),"function"==typeof Oe.oncopy),Me=null,je={},Le={};function Pe(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),je[e]=t}function Re(e){if("string"==typeof e&&Le.hasOwnProperty(e))e=Le[e];else if(e&&"string"==typeof e.name&&Le.hasOwnProperty(e.name)){var t=Le[e.name];"string"==typeof t&&(t={name:t}),(e=$(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Re("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Re("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Be(e,t){t=Re(t);var n=je[t.name];if(!n)return Be(e,"text/plain");var r=n(e,t);if(Ue.hasOwnProperty(t.name)){var i=Ue[t.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)r[a]=t.modeProps[a];return r}var Ue={};function ze(e,t){P(t,Ue.hasOwnProperty(e)?Ue[e]:Ue[e]={})}function Ve(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function qe(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t=n.state,e=n.mode;return n||{mode:e,state:t}}function He(e,t,n){return!e.startState||e.startState(t,n)}var We=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};function Ge(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t=e.first&&tn?et(n,Ge(e,n).text.length):function(e,t){var n=e.ch;return null==n||n>t?et(e.line,t):n<0?et(e.line,0):e}(t,Ge(e,t.line).text.length)}function ut(e,t){for(var n=[],r=0;r=this.string.length},We.prototype.sol=function(){return this.pos==this.lineStart},We.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},We.prototype.next=function(){if(this.post},We.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},We.prototype.skipToEnd=function(){this.pos=this.string.length},We.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},We.prototype.backUp=function(e){this.pos-=e},We.prototype.column=function(){return this.lastColumnPos0?null:(r&&!1!==t&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},We.prototype.current=function(){return this.string.slice(this.start,this.pos)},We.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},We.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},We.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var ct=function(e,t){this.state=e,this.lookAhead=t},lt=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function pt(e,t,n,r){var i=[e.state.modeGen],o={};Et(e,t.text,e.doc.mode,n,(function(e,t){return i.push(e,t)}),o,r);for(var a=n.state,s=function(r){n.baseTokens=i;var s=e.state.overlays[r],u=1,c=0;n.state=!0,Et(e,t.text,s.mode,n,(function(e,t){for(var n=u;ce&&i.splice(u,1,e,i[u+1],r),u+=2,c=Math.min(e,r)}if(t)if(s.opaque)i.splice(n,u-n,e,"overlay "+t),u=n+2;else for(;ne.options.maxHighlightLength&&Ve(e.doc.mode,r.state),o=pt(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function dt(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new lt(r,!0,t);var o=function(e,t,n){for(var r,i,o=e.doc,a=n?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>a;--s){if(s<=o.first)return o.first;var u=Ge(o,s-1),c=u.stateAfter;if(c&&(!n||s+(c instanceof ct?c.lookAhead:0)<=o.modeFrontier))return s;var l=R(u.text,null,e.options.tabSize);(null==i||r>l)&&(i=s-1,r=l)}return i}(e,t,n),a=o>r.first&&Ge(r,o-1).stateAfter,s=a?lt.fromSaved(r,a,o):new lt(r,He(r.mode),o);return r.iter(o,t,(function(n){ht(e,n.text,s);var r=s.line;n.stateAfter=r==t-1||r%5==0||r>=i.viewFrom&&rt.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}lt.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},lt.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},lt.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},lt.fromSaved=function(e,t,n){return t instanceof ct?new lt(e,Ve(e.mode,t.state),n,t.lookAhead):new lt(e,Ve(e.mode,t),n)},lt.prototype.save=function(e){var t=!1!==e?Ve(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ct(t,this.maxLookAhead):t};var yt=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n};function vt(e,t,n,r){var i,o,a=e.doc,s=a.mode,u=Ge(a,(t=st(a,t)).line),c=dt(e,t.line,n),l=new We(u.text,e.options.tabSize,c);for(r&&(o=[]);(r||l.pose.options.maxHighlightLength?(s=!1,a&&ht(e,t,r,p.pos),p.pos=t.length,u=null):u=bt(gt(n,p,r.state,f),o),f){var d=f[0].name;d&&(u="m-"+(u?d+" "+u:d))}if(!s||l!=u){for(;c=t:o.to>t);(r||(r=[])).push(new Ct(a,o.from,s?null:o.to))}}return r}(n,i,a),u=function(e,t,n){var r;if(e)for(var i=0;i=t:o.to>t)||o.from==t&&"bookmark"==a.type&&(!n||o.marker.insertLeft)){var s=null==o.from||(a.inclusiveLeft?o.from<=t:o.from0&&s)for(var b=0;bt)&&(!n||Nt(n,o.marker)<0)&&(n=o.marker)}return n}function Pt(e,t,n,r,i){var o=Ge(e,t),a=Dt&&o.markedSpans;if(a)for(var s=0;s=0&&p<=0||l<=0&&p>=0)&&(l<=0&&(u.marker.inclusiveRight&&i.inclusiveLeft?tt(c.to,n)>=0:tt(c.to,n)>0)||l>=0&&(u.marker.inclusiveRight&&i.inclusiveLeft?tt(c.from,r)<=0:tt(c.from,r)<0)))return!0}}}function Rt(e){for(var t;t=Mt(e);)e=t.find(-1,!0).line;return e}function Bt(e,t){var n=Ge(e,t),r=Rt(n);return n==r?t:Ye(r)}function Ut(e,t){if(t>e.lastLine())return t;var n,r=Ge(e,t);if(!zt(e,r))return t;for(;n=jt(r);)r=n.find(1,!0).line;return Ye(r)+1}function zt(e,t){var n=Dt&&t.markedSpans;if(n)for(var r=void 0,i=0;it.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)}))}var Gt=function(e,t,n){this.text=e,_t(this,t),this.height=n?n(this):1};function Kt(e){e.parent=null,Tt(e)}Gt.prototype.lineNo=function(){return Ye(this)},ve(Gt);var Jt={},Qt={};function Yt(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?Qt:Jt;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function $t(e,t){var n=O("span",null,null,u?"padding-right: .1px":null),r={pre:O("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,a=void 0;r.pos=0,r.addToken=Zt,_e(e.display.measure)&&(a=ce(o,e.doc.direction))&&(r.addToken=en(r.addToken,a)),r.map=[],nn(o,r,ft(e,o,t!=e.display.externalMeasured&&Ye(o))),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=M(o.styleClasses.bgClass,r.bgClass||"")),o.styleClasses.textClass&&(r.textClass=M(o.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Te(e.display.measure))),0==i?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(u){var s=r.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return he(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=M(r.pre.className,r.textClass||"")),r}function Xt(e){var t=_("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Zt(e,t,n,r,i,o,u){if(t){var c,l=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,r="",i=0;ic&&p.from<=c);f++);if(p.to>=l)return e(n,r,i,o,a,s,u);e(n,r.slice(0,p.to-c),i,o,null,s,u),o=null,r=r.slice(p.to-c),c=p.to}}}function tn(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function nn(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var a,s,u,c,l,p,f,d=i.length,h=0,m=1,g="",y=0;;){if(y==h){u=c=l=s="",f=null,p=null,y=1/0;for(var v=[],b=void 0,E=0;Eh||D.collapsed&&x.to==h&&x.from==h)){if(null!=x.to&&x.to!=h&&y>x.to&&(y=x.to,c=""),D.className&&(u+=" "+D.className),D.css&&(s=(s?s+";":"")+D.css),D.startStyle&&x.from==h&&(l+=" "+D.startStyle),D.endStyle&&x.to==y&&(b||(b=[])).push(D.endStyle,x.to),D.title&&((f||(f={})).title=D.title),D.attributes)for(var C in D.attributes)(f||(f={}))[C]=D.attributes[C];D.collapsed&&(!p||Nt(p.marker,D)<0)&&(p=x)}else x.from>h&&y>x.from&&(y=x.from)}if(b)for(var w=0;w=d)break;for(var k=Math.min(d,y);;){if(g){var A=h+g.length;if(!p){var T=A>k?g.slice(0,k-h):g;t.addToken(t,T,a?a+u:u,l,h+T.length==y?c:"",s,f)}if(A>=k){g=g.slice(k-h),h=k;break}h=A,l=""}g=i.slice(o,o=n[m++]),a=Yt(n[m++],t.cm.options)}}else for(var _=1;_n)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function On(e,t,n,r){return In(e,Nn(e,t),n,r)}function Fn(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&t2&&o.push((u.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}(e,t.view,t.rect),t.hasHeights=!0),(o=function(e,t,n,r){var i,o=Ln(t.map,n,r),u=o.node,c=o.start,l=o.end,p=o.collapse;if(3==u.nodeType){for(var f=0;f<4;f++){for(;c&&re(t.line.text.charAt(o.coverStart+c));)--c;for(;o.coverStart+l1}(e))return t;var n=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*n,right:t.right*n,top:t.top*r,bottom:t.bottom*r}}(e.display.measure,i))}else{var d;c>0&&(p=r="right"),i=e.options.lineWrapping&&(d=u.getClientRects()).length>1?d["right"==r?d.length-1:0]:u.getBoundingClientRect()}if(a&&s<9&&!c&&(!i||!i.left&&!i.right)){var h=u.parentNode.getClientRects()[0];i=h?{left:h.left,right:h.left+ir(e.display),top:h.top,bottom:h.bottom}:jn}for(var m=i.top-t.rect.top,g=i.bottom-t.rect.top,y=(m+g)/2,v=t.view.measure.heights,b=0;bt)&&(i=(o=u-s)-1,t>=u&&(a="right")),null!=i){if(r=e[c+2],s==u&&n==(r.insertLeft?"left":"right")&&(a=n),"left"==n&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)r=e[2+(c-=3)],a="left";if("right"==n&&i==u-s)for(;c=0&&(n=e[i]).left==n.right;i--);return n}function Rn(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t=r.text.length?(u=r.text.length,c="before"):u<=0&&(u=0,c="after"),!s)return a("before"==c?u-1:u,"before"==c);function l(e,t,n){return a(n?e-1:e,1==s[t].level!=n)}var p=se(s,u,c),f=ae,d=l(u,p,"before"==c);return null!=f&&(d.other=l(u,f,"before"!=c)),d}function Jn(e,t){var n=0;t=st(e.doc,t),e.options.lineWrapping||(n=ir(e.display)*t.ch);var r=Ge(e.doc,t.line),i=qt(r)+Cn(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function Qn(e,t,n,r,i){var o=et(e,t,n);return o.xRel=i,r&&(o.outside=r),o}function Yn(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return Qn(r.first,0,null,-1,-1);var i=$e(r,n),o=r.first+r.size-1;if(i>o)return Qn(r.first+r.size-1,Ge(r,o).text.length,null,1,1);t<0&&(t=0);for(var a=Ge(r,i);;){var s=er(e,a,i,t,n),u=Lt(a,s.ch+(s.xRel>0||s.outside>0?1:0));if(!u)return s;var c=u.find(1);if(c.line==i)return c;a=Ge(r,i=c.line)}}function $n(e,t,n,r){r-=qn(t);var i=t.text.length,o=oe((function(t){return In(e,n,t-1).bottom<=r}),i,0);return{begin:o,end:i=oe((function(t){return In(e,n,t).top>r}),o,i)}}function Xn(e,t,n,r){return n||(n=Nn(e,t)),$n(e,t,n,Hn(e,t,In(e,n,r),"line").top)}function Zn(e,t,n,r){return!(e.bottom<=n)&&(e.top>n||(r?e.left:e.right)>t)}function er(e,t,n,r,i){i-=qt(t);var o=Nn(e,t),a=qn(t),s=0,u=t.text.length,c=!0,l=ce(t,e.doc.direction);if(l){var p=(e.options.lineWrapping?nr:tr)(e,t,n,o,l,r,i);s=(c=1!=p.level)?p.from:p.to-1,u=c?p.to:p.from-1}var f,d,h=null,m=null,g=oe((function(t){var n=In(e,o,t);return n.top+=a,n.bottom+=a,!!Zn(n,r,i,!1)&&(n.top<=i&&n.left<=r&&(h=t,m=n),!0)}),s,u),y=!1;if(m){var v=r-m.left=E.bottom?1:0}return Qn(n,g=ie(t.text,g,1),d,y,r-f)}function tr(e,t,n,r,i,o,a){var s=oe((function(s){var u=i[s],c=1!=u.level;return Zn(Kn(e,et(n,c?u.to:u.from,c?"before":"after"),"line",t,r),o,a,!0)}),0,i.length-1),u=i[s];if(s>0){var c=1!=u.level,l=Kn(e,et(n,c?u.from:u.to,c?"after":"before"),"line",t,r);Zn(l,o,a,!0)&&l.top>a&&(u=i[s-1])}return u}function nr(e,t,n,r,i,o,a){var s=$n(e,t,r,a),u=s.begin,c=s.end;/\s/.test(t.text.charAt(c-1))&&c--;for(var l=null,p=null,f=0;f=c||d.to<=u)){var h=In(e,r,1!=d.level?Math.min(c,d.to)-1:Math.max(u,d.from)).right,m=hm)&&(l=d,p=m)}}return l||(l=i[i.length-1]),l.fromc&&(l={from:l.from,to:c,level:l.level}),l}function rr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Mn){Mn=_("pre",null,"CodeMirror-line-like");for(var t=0;t<49;++t)Mn.appendChild(document.createTextNode("x")),Mn.appendChild(_("br"));Mn.appendChild(document.createTextNode("x"))}T(e.measure,Mn);var n=Mn.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),A(e.measure),n||1}function ir(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=_("span","xxxxxxxxxx"),n=_("pre",[t],"CodeMirror-line-like");T(e.measure,n);var r=t.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function or(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a){var s=e.display.gutterSpecs[a].className;n[s]=o.offsetLeft+o.clientLeft+i,r[s]=o.clientWidth}return{fixedPos:ar(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function ar(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function sr(e){var t=rr(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/ir(e.display)-3);return function(i){if(zt(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a0&&(u=Ge(e.doc,c.line).text).length==c.ch){var l=R(u,u.length,e.options.tabSize)-u.length;c=et(c.line,Math.max(0,Math.round((o-Sn(e.display).left)/ir(e.display))-l))}return c}function lr(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var n=e.display.view,r=0;rt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Dt&&Bt(e.doc,t)i.viewFrom?dr(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)dr(e);else if(t<=i.viewFrom){var o=hr(e,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):dr(e)}else if(n>=i.viewTo){var a=hr(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):dr(e)}else{var s=hr(e,t,t,-1),u=hr(e,n,n+r,1);s&&u?(i.view=i.view.slice(0,s.index).concat(on(e,s.lineN,u.lineN)).concat(i.view.slice(u.index)),i.viewTo+=r):dr(e)}var c=i.externalMeasured;c&&(n=i.lineN&&t=r.viewTo)){var o=r.view[lr(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==U(a,n)&&a.push(n)}}}function dr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function hr(e,t,n,r){var i,o=lr(e,t),a=e.display.view;if(!Dt||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var s=e.display.viewFrom,u=0;u0){if(o==a.length-1)return null;i=s+a[o].size-t,o++}else i=s-t;t+=i,n+=i}for(;Bt(e.doc,n)!=n;){if(o==(r<0?0:a.length-1))return null;n+=r*a[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function mr(e){for(var t=e.display.view,n=0,r=0;r=e.display.viewTo||s.to().linet||t==n&&a.to==t)&&(r(Math.max(a.from,t),Math.min(a.to,n),1==a.level?"rtl":"ltr",o),i=!0)}i||r(t,n,"ltr")}(m,n||0,null==r?f:r,(function(e,t,i,p){var g="ltr"==i,y=d(e,g?"left":"right"),v=d(t-1,g?"right":"left"),b=null==n&&0==e,E=null==r&&t==f,x=0==p,D=!m||p==m.length-1;if(v.top-y.top<=3){var C=(c?E:b)&&D,w=(c?b:E)&&x?s:(g?y:v).left,S=C?u:(g?v:y).right;l(w,y.top,S-w,y.bottom)}else{var k,A,T,_;g?(k=c&&b&&x?s:y.left,A=c?u:h(e,i,"before"),T=c?s:h(t,i,"after"),_=c&&E&&D?u:v.right):(k=c?h(e,i,"before"):s,A=!c&&b&&x?u:y.right,T=!c&&E&&D?s:v.left,_=c?h(t,i,"after"):u),l(k,y.top,A-k,y.bottom),y.bottom0?t.blinker=setInterval((function(){return t.cursorDiv.style.visibility=(n=!n)?"":"hidden"}),e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Dr(e){e.state.focused||(e.display.input.focus(),wr(e))}function Cr(e){e.state.delayingBlurEvent=!0,setTimeout((function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Sr(e))}),100)}function wr(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(he(e,"focus",e,t),e.state.focused=!0,I(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),u&&setTimeout((function(){return e.display.input.reset(!0)}),20)),e.display.input.receivedFocus()),xr(e))}function Sr(e,t){e.state.delayingBlurEvent||(e.state.focused&&(he(e,"blur",e,t),e.state.focused=!1,k(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout((function(){e.state.focused||(e.display.shift=!1)}),150))}function kr(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=0;r.005||f<-.005)&&(Qe(i.line,u),Ar(i.line),i.rest))for(var d=0;de.display.sizerWidth){var h=Math.ceil(c/ir(e.display));h>e.display.maxLineLength&&(e.display.maxLineLength=h,e.display.maxLine=i.line,e.display.maxLineChanged=!0)}}}}function Ar(e){if(e.widgets)for(var t=0;t=a&&(o=$e(t,qt(Ge(t,u))-e.wrapper.clientHeight),a=u)}return{from:o,to:Math.max(a,o+1)}}function _r(e,t){var n=e.display,r=rr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:n.scroller.scrollTop,o=Tn(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+wn(n),u=t.tops-r;if(t.topi+o){var l=Math.min(t.top,(c?s:t.bottom)-o);l!=i&&(a.scrollTop=l)}var p=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft,f=An(e)-(e.options.fixedGutter?n.gutters.offsetWidth:0),d=t.right-t.left>f;return d&&(t.right=t.left+f),t.left<10?a.scrollLeft=0:t.leftf+p-3&&(a.scrollLeft=t.right+(d?0:10)-f),a}function Or(e,t){null!=t&&(Ir(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Fr(e){Ir(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Nr(e,t,n){null==t&&null==n||Ir(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function Ir(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Mr(e,Jn(e,t.from),Jn(e,t.to),t.margin))}function Mr(e,t,n,r){var i=_r(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});Nr(e,i.scrollLeft,i.scrollTop)}function jr(e,t){Math.abs(e.doc.scrollTop-t)<2||(n||ui(e,{top:t}),Lr(e,t,!0),n&&ui(e),ri(e,100))}function Lr(e,t,n){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Pr(e,t,n,r){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,pi(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Rr(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+wn(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+kn(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}var Br=function(e,t,n){this.cm=n;var r=this.vert=_("div",[_("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=_("div",[_("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");r.tabIndex=i.tabIndex=-1,e(r),e(i),pe(r,"scroll",(function(){r.clientHeight&&t(r.scrollTop,"vertical")})),pe(i,"scroll",(function(){i.clientWidth&&t(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,a&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};Br.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},Br.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},Br.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},Br.prototype.zeroWidthHack=function(){var e=v&&!d?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new B,this.disableVert=new B},Br.prototype.enableZeroWidthBar=function(e,t,n){e.style.pointerEvents="auto",t.set(1e3,(function r(){var i=e.getBoundingClientRect();("vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,r)}))},Br.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Ur=function(){};function zr(e,t){t||(t=Rr(e));var n=e.display.barWidth,r=e.display.barHeight;Vr(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&kr(e),Vr(e,Rr(e)),n=e.display.barWidth,r=e.display.barHeight}function Vr(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}Ur.prototype.update=function(){return{bottom:0,right:0}},Ur.prototype.setScrollLeft=function(){},Ur.prototype.setScrollTop=function(){},Ur.prototype.clear=function(){};var qr={native:Br,null:Ur};function Hr(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&k(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new qr[e.options.scrollbarStyle]((function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),pe(t,"mousedown",(function(){e.state.focused&&setTimeout((function(){return e.display.input.focus()}),0)})),t.setAttribute("cm-not-content","true")}),(function(t,n){"horizontal"==n?Pr(e,t):jr(e,t)}),e),e.display.scrollbars.addClass&&I(e.display.wrapper,e.display.scrollbars.addClass)}var Wr=0;function Gr(e){var t;e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Wr},t=e.curOp,an?an.ops.push(t):t.ownsGroup=an={ops:[t],delayedCallbacks:[]}}function Kr(e){var t=e.curOp;t&&function(e,t){var n=e.ownsGroup;if(n)try{!function(e){var t=e.delayedCallbacks,n=0;do{for(;n=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new oi(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Qr(e){e.updatedDisplay=e.mustUpdate&&ai(e.cm,e.update)}function Yr(e){var t=e.cm,n=t.display;e.updatedDisplay&&kr(t),e.barMeasure=Rr(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=On(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+kn(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-An(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}function $r(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!h){var o=_("div","",null,"position: absolute;\n top: "+(t.top-n.viewOffset-Cn(e.display))+"px;\n height: "+(t.bottom-t.top+kn(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}(t,function(e,t,n,r){var i;null==r&&(r=0),e.options.lineWrapping||t!=n||(n="before"==(t=t.ch?et(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t).sticky?et(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var a=!1,s=Kn(e,t),u=n&&n!=t?Kn(e,n):s,c=_r(e,i={left:Math.min(s.left,u.left),top:Math.min(s.top,u.top)-r,right:Math.max(s.left,u.left),bottom:Math.max(s.bottom,u.bottom)+r}),l=e.doc.scrollTop,p=e.doc.scrollLeft;if(null!=c.scrollTop&&(jr(e,c.scrollTop),Math.abs(e.doc.scrollTop-l)>1&&(a=!0)),null!=c.scrollLeft&&(Pr(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-p)>1&&(a=!0)),!a)break}return i}(t,st(r,e.scrollToPos.from),st(r,e.scrollToPos.to),e.scrollToPos.margin));var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var a=0;a=e.display.viewTo)){var n=+new Date+e.options.workTime,r=dt(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),(function(o){if(r.line>=e.display.viewFrom){var a=o.styles,s=o.text.length>e.options.maxHighlightLength?Ve(t.mode,r.state):null,u=pt(e,o,r,!0);s&&(r.state=s),o.styles=u.styles;var c=o.styleClasses,l=u.classes;l?o.styleClasses=l:c&&(o.styleClasses=null);for(var p=!a||a.length!=o.styles.length||c!=l&&(!c||!l||c.bgClass!=l.bgClass||c.textClass!=l.textClass),f=0;!p&&fn)return ri(e,e.options.workDelay),!0})),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&Zr(e,(function(){for(var t=0;t=n.viewFrom&&t.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==mr(e))return!1;fi(e)&&(dr(e),t.dims=or(e));var i=r.first+r.size,o=Math.max(t.visible.from-e.options.viewportMargin,r.first),a=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFroma&&n.viewTo-a<20&&(a=Math.min(i,n.viewTo)),Dt&&(o=Bt(e.doc,o),a=Ut(e.doc,a));var s=o!=n.viewFrom||a!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;!function(e,t,n){var r=e.display;0==r.view.length||t>=r.viewTo||n<=r.viewFrom?(r.view=on(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=on(e,t,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,lr(e,n)))),r.viewTo=n}(e,o,a),n.viewOffset=qt(Ge(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var c=mr(e);if(!s&&0==c&&!t.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var l=function(e){if(e.hasFocus())return null;var t=N();if(!t||!F(e.display.lineDiv,t))return null;var n={activeElt:t};if(window.getSelection){var r=window.getSelection();r.anchorNode&&r.extend&&F(e.display.lineDiv,r.anchorNode)&&(n.anchorNode=r.anchorNode,n.anchorOffset=r.anchorOffset,n.focusNode=r.focusNode,n.focusOffset=r.focusOffset)}return n}(e);return c>4&&(n.lineDiv.style.display="none"),function(e,t,n){var r=e.display,i=e.options.lineNumbers,o=r.lineDiv,a=o.firstChild;function s(t){var n=t.nextSibling;return u&&v&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var c=r.view,l=r.viewFrom,p=0;p-1&&(d=!1),ln(e,f,l,n)),d&&(A(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(Ze(e.options,l)))),a=f.node.nextSibling}else{var h=yn(e,f,l,n);o.insertBefore(h,a)}l+=f.size}for(;a;)a=s(a)}(e,n.updateLineNumbers,t.dims),c>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,function(e){if(e&&e.activeElt&&e.activeElt!=N()&&(e.activeElt.focus(),!/^(INPUT|TEXTAREA)$/.test(e.activeElt.nodeName)&&e.anchorNode&&F(document.body,e.anchorNode)&&F(document.body,e.focusNode))){var t=window.getSelection(),n=document.createRange();n.setEnd(e.anchorNode,e.anchorOffset),n.collapse(!1),t.removeAllRanges(),t.addRange(n),t.extend(e.focusNode,e.focusOffset)}}(l),A(n.cursorDiv),A(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,s&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,ri(e,400)),n.updateLineNumbers=null,!0}function si(e,t){for(var n=t.viewport,r=!0;;r=!1){if(r&&e.options.lineWrapping&&t.oldDisplayWidth!=An(e))r&&(t.visible=Tr(e.display,e.doc,n));else if(n&&null!=n.top&&(n={top:Math.min(e.doc.height+wn(e.display)-Tn(e),n.top)}),t.visible=Tr(e.display,e.doc,n),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!ai(e,t))break;kr(e);var i=Rr(e);gr(e),zr(e,i),li(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function ui(e,t){var n=new oi(e,t);if(ai(e,n)){kr(e),si(e,n);var r=Rr(e);gr(e),zr(e,r),li(e,r),n.finish()}}function ci(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px"}function li(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+kn(e)+"px"}function pi(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=ar(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+"px",a=0;as.clientWidth,l=s.scrollHeight>s.clientHeight;if(i&&c||o&&l){if(o&&v&&u)e:for(var f=t.target,d=a.view;f!=s;f=f.parentNode)for(var h=0;h=0&&tt(e,r.to())<=0)return n}return-1};var Ci=function(e,t){this.anchor=e,this.head=t};function wi(e,t,n){var r=e&&e.options.selectionsMayTouch,i=t[n];t.sort((function(e,t){return tt(e.from(),t.from())})),n=U(t,i);for(var o=1;o0:u>=0){var c=ot(s.from(),a.from()),l=it(s.to(),a.to()),p=s.empty()?a.from()==a.head:s.from()==s.head;o<=n&&--n,t.splice(--o,2,new Ci(p?l:c,p?c:l))}}return new Di(t,n)}function Si(e,t){return new Di([new Ci(e,t||e)],0)}function ki(e){return e.text?et(e.from.line+e.text.length-1,J(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Ai(e,t){if(tt(e,t.from)<0)return e;if(tt(e,t.to)<=0)return ki(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=ki(t).ch-t.to.ch),et(n,r)}function Ti(e,t){for(var n=[],r=0;r1&&e.remove(s.line+1,h-1),e.insert(s.line+1,y)}un(e,"change",e,t)}function Mi(e,t,n){!function e(r,i,o){if(r.linked)for(var a=0;as-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(o=function(e,t){return t?(Bi(e.done),J(e.done)):e.done.length&&!J(e.done).ranges?J(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),J(e.done)):void 0}(i,i.lastOp==r)))a=J(o.changes),0==tt(t.from,t.to)&&0==tt(t.from,a.to)?a.to=ki(t):o.changes.push(Ri(e,t));else{var u=J(i.done);for(u&&u.ranges||Vi(e.sel,i.done),o={changes:[Ri(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,a||he(e,"historyAdded")}function zi(e,t,n,r){var i=e.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||function(e,t,n,r){var i=t.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,o,J(i.done),t))?i.done[i.done.length-1]=t:Vi(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&!1!==r.clearRedo&&Bi(i.undone)}function Vi(e,t){var n=J(t);n&&n.ranges&&n.equals(e)||t.push(e)}function qi(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),(function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o}))}function Hi(e){if(!e)return null;for(var t,n=0;n-1&&(J(s)[p]=c[p],delete c[p])}}}return r}function Ki(e,t,n,r){if(r){var i=e.anchor;if(n){var o=tt(t,i)<0;o!=tt(n,i)<0?(i=t,t=n):o!=tt(t,n)<0&&(t=n)}return new Ci(i,t)}return new Ci(n||t,t)}function Ji(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),Zi(e,new Di([Ki(e.sel.primary(),t,n,i)],0),r)}function Qi(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o=t.ch:s.to>t.ch))){if(i&&(he(u,"beforeCursorEnter"),u.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!u.atomic)continue;if(n){var p=u.find(r<0?1:-1),f=void 0;if((r<0?l:c)&&(p=ao(e,p,-r,p&&p.line==t.line?o:null)),p&&p.line==t.line&&(f=tt(p,n))&&(r<0?f<0:f>0))return io(e,p,t,r,i)}var d=u.find(r<0?-1:1);return(r<0?c:l)&&(d=ao(e,d,r,d.line==t.line?o:null)),d?io(e,d,t,r,i):null}}return t}function oo(e,t,n,r,i){var o=r||1,a=io(e,t,n,o,i)||!i&&io(e,t,n,o,!0)||io(e,t,n,-o,i)||!i&&io(e,t,n,-o,!0);return a||(e.cantEdit=!0,et(e.first,0))}function ao(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?st(e,et(t.line-1)):null:n>0&&t.ch==(r||Ge(e,t.line)).text.length?t.line0)){var l=[u,1],p=tt(c.from,s.from),f=tt(c.to,s.to);(p<0||!a.inclusiveLeft&&!p)&&l.push({from:c.from,to:s.from}),(f>0||!a.inclusiveRight&&!f)&&l.push({from:s.to,to:c.to}),i.splice.apply(i,l),u+=l.length-3}}return i}(e,t.from,t.to);if(r)for(var i=r.length-1;i>=0;--i)lo(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text,origin:t.origin});else lo(e,t)}}function lo(e,t){if(1!=t.text.length||""!=t.text[0]||0!=tt(t.from,t.to)){var n=Ti(e,t);Ui(e,t,n,e.cm?e.cm.curOp.id:NaN),ho(e,t,n,kt(e,t));var r=[];Mi(e,(function(e,n){n||-1!=U(r,e.history)||(vo(e.history,t),r.push(e.history)),ho(e,t,null,kt(e,t))}))}}function po(e,t,n){var r=e.cm&&e.cm.state.suppressEdits;if(!r||n){for(var i,o=e.history,a=e.sel,s="undo"==t?o.done:o.undone,u="undo"==t?o.undone:o.done,c=0;c=0;--d){var h=f(d);if(h)return h.v}}}}function fo(e,t){if(0!=t&&(e.first+=t,e.sel=new Di(Q(e.sel.ranges,(function(e){return new Ci(et(e.anchor.line+t,e.anchor.ch),et(e.head.line+t,e.head.ch))})),e.sel.primIndex),e.cm)){pr(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;re.lastLine())){if(t.from.lineo&&(t={from:t.from,to:et(o,Ge(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Ke(e,t.from,t.to),n||(n=Ti(e,t)),e.cm?function(e,t,n){var r=e.doc,i=e.display,o=t.from,a=t.to,s=!1,u=o.line;e.options.lineWrapping||(u=Ye(Rt(Ge(r,o.line))),r.iter(u,a.line+1,(function(e){if(e==i.maxLine)return s=!0,!0}))),r.sel.contains(t.from,t.to)>-1&&ge(e),Ii(r,t,n,sr(e)),e.options.lineWrapping||(r.iter(u,o.line+t.text.length,(function(e){var t=Ht(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)})),s&&(e.curOp.updateMaxLine=!0)),function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontiern;r--){var i=Ge(e,r).stateAfter;if(i&&(!(i instanceof ct)||r+i.lookAhead1||!(this.children[0]instanceof Eo))){var s=[];this.collapse(s),this.children=[new Eo(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var a=i.lines.length%25+25,s=a;s10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;r0||0==a&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=O("span",[o.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Pt(e,t.line,t,n,o)||t.line!=n.line&&Pt(e,n.line,t,n,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Dt=!0}o.addToHistory&&Ui(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var s,u=t.line,c=e.cm;if(e.iter(u,n.line+1,(function(e){c&&o.collapsed&&!c.options.lineWrapping&&Rt(e)==c.display.maxLine&&(s=!0),o.collapsed&&u!=t.line&&Qe(e,0),function(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}(e,new Ct(o,u==t.line?t.ch:null,u==n.line?n.ch:null)),++u})),o.collapsed&&e.iter(t.line,n.line+1,(function(t){zt(e,t)&&Qe(t,0)})),o.clearOnEnter&&pe(o,"beforeCursorEnter",(function(){return o.clear()})),o.readOnly&&(xt=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++wo,o.atomic=!0),c){if(s&&(c.curOp.updateMaxLine=!0),o.collapsed)pr(c,t.line,n.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var l=t.line;l<=n.line;l++)fr(c,l,"text");o.atomic&&no(c.doc),un(c,"markerAdded",c,o)}return o}So.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&Gr(e),ye(this,"clear")){var n=this.find();n&&un(this,"clear",n.from,n.to)}for(var r=null,i=null,o=0;oe.display.maxLineLength&&(e.display.maxLine=c,e.display.maxLineLength=l,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&pr(e,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&no(e.doc)),e&&un(e,"markerCleared",e,this,r,i),t&&Kr(e),this.parent&&this.parent.clear()}},So.prototype.find=function(e,t){var n,r;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i=0;u--)co(this,r[u]);s?Xi(this,s):this.cm&&Fr(this.cm)})),undo:ni((function(){po(this,"undo")})),redo:ni((function(){po(this,"redo")})),undoSelection:ni((function(){po(this,"undo",!0)})),redoSelection:ni((function(){po(this,"redo",!0)})),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=st(this,e),t=st(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,(function(o){var a=o.markedSpans;if(a)for(var s=0;s=u.to||null==u.from&&i!=e.line||null!=u.from&&i==t.line&&u.from>=t.ch||n&&!n(u.marker)||r.push(u.marker.parent||u.marker)}++i})),r},getAllMarks:function(){var e=[];return this.iter((function(t){var n=t.markedSpans;if(n)for(var r=0;re)return t=e,!0;e-=o,++n})),st(this,et(n,t))},indexFromPos:function(e){var t=(e=st(this,e)).ch;if(e.linet&&(t=e.from),null!=e.to&&e.to-1)return t.state.draggingText(e),void setTimeout((function(){return t.display.input.focus()}),20);try{var p=e.dataTransfer.getData("Text");if(p){var f;if(t.state.draggingText&&!t.state.draggingText.copy&&(f=t.listSelections()),eo(t.doc,Si(n,n)),f)for(var d=0;d=0;t--)mo(e.doc,"",r[t].from,r[t].to,"+delete");Fr(e)}))}function Xo(e,t,n){var r=ie(e.text,t+n,n);return r<0||r>e.text.length?null:r}function Zo(e,t,n){var r=Xo(e,t.ch,n);return null==r?null:new et(t.line,r,n<0?"after":"before")}function ea(e,t,n,r,i){if(e){"rtl"==t.doc.direction&&(i=-i);var o=ce(n,t.doc.direction);if(o){var a,s=i<0?J(o):o[0],u=i<0==(1==s.level)?"after":"before";if(s.level>0||"rtl"==t.doc.direction){var c=Nn(t,n);a=i<0?n.text.length-1:0;var l=In(t,c,a).top;a=oe((function(e){return In(t,c,e).top==l}),i<0==(1==s.level)?s.from:s.to-1,a),"before"==u&&(a=Xo(n,a,1))}else a=i<0?s.to:s.from;return new et(r,a,u)}}return new et(r,i<0?n.text.length:0,i<0?"before":"after")}qo.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},qo.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},qo.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},qo.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},qo.default=v?qo.macDefault:qo.pcDefault;var ta={selectAll:so,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),V)},killLine:function(e){return $o(e,(function(t){if(t.empty()){var n=Ge(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line0)i=new et(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),et(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=Ge(e.doc,i.line-1).text;a&&(i=new et(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),et(i.line-1,a.length-1),i,"+transpose"))}n.push(new Ci(i,i))}e.setSelections(n)}))},newlineAndIndent:function(e){return Zr(e,(function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var r=0;r-1&&(tt((i=c.ranges[i]).from(),t)<0||t.xRel>0)&&(tt(i.to(),t)>0||t.xRel<0)?function(e,t,n,r){var i=e.display,o=!1,c=ei(e,(function(t){u&&(i.scroller.draggable=!1),e.state.draggingText=!1,de(i.wrapper.ownerDocument,"mouseup",c),de(i.wrapper.ownerDocument,"mousemove",l),de(i.scroller,"dragstart",p),de(i.scroller,"drop",c),o||(be(t),r.addNew||Ji(e.doc,n,null,null,r.extend),u&&!f||a&&9==s?setTimeout((function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()}),20):i.input.focus())})),l=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},p=function(){return o=!0};u&&(i.scroller.draggable=!0),e.state.draggingText=c,c.copy=!r.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop(),pe(i.wrapper.ownerDocument,"mouseup",c),pe(i.wrapper.ownerDocument,"mousemove",l),pe(i.scroller,"dragstart",p),pe(i.scroller,"drop",c),Cr(e),setTimeout((function(){return i.input.focus()}),20)}(e,r,t,o):function(e,t,n,r){var i=e.display,o=e.doc;be(t);var a,s,u=o.sel,c=u.ranges;if(r.addNew&&!r.extend?(s=o.sel.contains(n),a=s>-1?c[s]:new Ci(n,n)):(a=o.sel.primary(),s=o.sel.primIndex),"rectangle"==r.unit)r.addNew||(a=new Ci(n,n)),n=cr(e,t,!0,!0),s=-1;else{var l=ya(e,n,r.unit);a=r.extend?Ki(a,l.anchor,l.head,r.extend):l}r.addNew?-1==s?(s=c.length,Zi(o,wi(e,c.concat([a]),s),{scroll:!1,origin:"*mouse"})):c.length>1&&c[s].empty()&&"char"==r.unit&&!r.extend?(Zi(o,wi(e,c.slice(0,s).concat(c.slice(s+1)),0),{scroll:!1,origin:"*mouse"}),u=o.sel):Yi(o,s,a,q):(s=0,Zi(o,new Di([a],0),q),u=o.sel);var p=n;function f(t){if(0!=tt(p,t))if(p=t,"rectangle"==r.unit){for(var i=[],c=e.options.tabSize,l=R(Ge(o,n.line).text,n.ch,c),f=R(Ge(o,t.line).text,t.ch,c),d=Math.min(l,f),h=Math.max(l,f),m=Math.min(n.line,t.line),g=Math.min(e.lastLine(),Math.max(n.line,t.line));m<=g;m++){var y=Ge(o,m).text,v=W(y,d,c);d==h?i.push(new Ci(et(m,v),et(m,v))):y.length>v&&i.push(new Ci(et(m,v),et(m,W(y,h,c))))}i.length||i.push(new Ci(n,n)),Zi(o,wi(e,u.ranges.slice(0,s).concat(i),s),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var b,E=a,x=ya(e,t,r.unit),D=E.anchor;tt(x.anchor,D)>0?(b=x.head,D=ot(E.from(),x.anchor)):(b=x.anchor,D=it(E.to(),x.head));var C=u.ranges.slice(0);C[s]=function(e,t){var n=t.anchor,r=t.head,i=Ge(e.doc,n.line);if(0==tt(n,r)&&n.sticky==r.sticky)return t;var o=ce(i);if(!o)return t;var a=se(o,n.ch,n.sticky),s=o[a];if(s.from!=n.ch&&s.to!=n.ch)return t;var u,c=a+(s.from==n.ch==(1!=s.level)?0:1);if(0==c||c==o.length)return t;if(r.line!=n.line)u=(r.line-n.line)*("ltr"==e.doc.direction?1:-1)>0;else{var l=se(o,r.ch,r.sticky),p=l-a||(r.ch-n.ch)*(1==s.level?-1:1);u=l==c-1||l==c?p<0:p>0}var f=o[c+(u?-1:0)],d=u==(1==f.level),h=d?f.from:f.to,m=d?"after":"before";return n.ch==h&&n.sticky==m?t:new Ci(new et(n.line,h,m),r)}(e,new Ci(st(o,D),b)),Zi(o,wi(e,C,s),q)}}var d=i.wrapper.getBoundingClientRect(),h=0;function m(t){e.state.selectingText=!1,h=1/0,t&&(be(t),i.input.focus()),de(i.wrapper.ownerDocument,"mousemove",g),de(i.wrapper.ownerDocument,"mouseup",y),o.history.lastSelOrigin=null}var g=ei(e,(function(t){0!==t.buttons&&we(t)?function t(n){var a=++h,s=cr(e,n,!0,"rectangle"==r.unit);if(s)if(0!=tt(s,p)){e.curOp.focus=N(),f(s);var u=Tr(i,o);(s.line>=u.to||s.lined.bottom?20:0;c&&setTimeout(ei(e,(function(){h==a&&(i.scroller.scrollTop+=c,t(n))})),50)}}(t):m(t)})),y=ei(e,m);e.state.selectingText=y,pe(i.wrapper.ownerDocument,"mousemove",g),pe(i.wrapper.ownerDocument,"mouseup",y)}(e,r,t,o)}(t,r,o,e):Ce(e)==n.scroller&&be(e):2==i?(r&&Ji(t.doc,r),setTimeout((function(){return n.input.focus()}),20)):3==i&&(C?t.display.input.onContextMenu(e):Cr(t)))}}function ya(e,t,n){if("char"==n)return new Ci(t,t);if("word"==n)return e.findWordAt(t);if("line"==n)return new Ci(et(t.line,0),st(e.doc,et(t.line+1,0)));var r=n(e,t);return new Ci(r.from,r.to)}function va(e,t,n,r){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(e){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&be(t);var a=e.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!ye(e,n))return xe(t);o-=s.top-a.viewOffset;for(var u=0;u=i)return he(e,n,e,$e(e.doc,o),e.display.gutterSpecs[u].className,t),xe(t)}}function ba(e,t){return va(e,t,"gutterClick",!0)}function Ea(e,t){Dn(e.display,t)||function(e,t){return!!ye(e,"gutterContextMenu")&&va(e,t,"gutterContextMenu",!1)}(e,t)||me(e,t,"contextmenu")||C||e.display.input.onContextMenu(t)}function xa(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),Un(e)}ma.prototype.compare=function(e,t,n){return this.time+400>e&&0==tt(t,this.pos)&&n==this.button};var Da={toString:function(){return"CodeMirror.Init"}},Ca={},wa={};function Sa(e,t,n){if(!t!=!(n&&n!=Da)){var r=e.display.dragFunctions,i=t?pe:de;i(e.display.scroller,"dragstart",r.start),i(e.display.scroller,"dragenter",r.enter),i(e.display.scroller,"dragover",r.over),i(e.display.scroller,"dragleave",r.leave),i(e.display.scroller,"drop",r.drop)}}function ka(e){e.options.lineWrapping?(I(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(k(e.display.wrapper,"CodeMirror-wrap"),Wt(e)),ur(e),pr(e),Un(e),setTimeout((function(){return zr(e)}),100)}function Aa(e,t){var n=this;if(!(this instanceof Aa))return new Aa(e,t);this.options=t=t?P(t):{},P(Ca,t,!1);var r=t.value;"string"==typeof r?r=new Fo(r,t.mode,null,t.lineSeparator,t.direction):t.mode&&(r.modeOption=t.mode),this.doc=r;var i=new Aa.inputStyles[t.inputStyle](this),o=this.display=new gi(e,r,i,t);for(var c in o.wrapper.CodeMirror=this,xa(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Hr(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new B,keySeq:null,specialChars:null},t.autofocus&&!y&&o.input.focus(),a&&s<11&&setTimeout((function(){return n.display.input.reset(!0)}),20),function(e){var t=e.display;pe(t.scroller,"mousedown",ei(e,ga)),pe(t.scroller,"dblclick",a&&s<11?ei(e,(function(t){if(!me(e,t)){var n=cr(e,t);if(n&&!ba(e,t)&&!Dn(e.display,t)){be(t);var r=e.findWordAt(n);Ji(e.doc,r.anchor,r.head)}}})):function(t){return me(e,t)||be(t)}),pe(t.scroller,"contextmenu",(function(t){return Ea(e,t)})),pe(t.input.getField(),"contextmenu",(function(n){t.scroller.contains(n.target)||Ea(e,n)}));var n,r={end:0};function i(){t.activeTouch&&(n=setTimeout((function(){return t.activeTouch=null}),1e3),(r=t.activeTouch).end=+new Date)}function o(e,t){if(null==t.left)return!0;var n=t.left-e.left,r=t.top-e.top;return n*n+r*r>400}pe(t.scroller,"touchstart",(function(i){if(!me(e,i)&&!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(i)&&!ba(e,i)){t.input.ensurePolled(),clearTimeout(n);var o=+new Date;t.activeTouch={start:o,moved:!1,prev:o-r.end<=300?r:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}})),pe(t.scroller,"touchmove",(function(){t.activeTouch&&(t.activeTouch.moved=!0)})),pe(t.scroller,"touchend",(function(n){var r=t.activeTouch;if(r&&!Dn(t,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var a,s=e.coordsChar(t.activeTouch,"page");a=!r.prev||o(r,r.prev)?new Ci(s,s):!r.prev.prev||o(r,r.prev.prev)?e.findWordAt(s):new Ci(et(s.line,0),st(e.doc,et(s.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),be(n)}i()})),pe(t.scroller,"touchcancel",i),pe(t.scroller,"scroll",(function(){t.scroller.clientHeight&&(jr(e,t.scroller.scrollTop),Pr(e,t.scroller.scrollLeft,!0),he(e,"scroll",e))})),pe(t.scroller,"mousewheel",(function(t){return xi(e,t)})),pe(t.scroller,"DOMMouseScroll",(function(t){return xi(e,t)})),pe(t.wrapper,"scroll",(function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0})),t.dragFunctions={enter:function(t){me(e,t)||De(t)},over:function(t){me(e,t)||(function(e,t){var n=cr(e,t);if(n){var r=document.createDocumentFragment();vr(e,n,r),e.display.dragCursor||(e.display.dragCursor=_("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),T(e.display.dragCursor,r)}}(e,t),De(t))},start:function(t){return function(e,t){if(a&&(!e.state.draggingText||+new Date-No<100))De(t);else if(!me(e,t)&&!Dn(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!f)){var n=_("img",null,null,"position: fixed; left: 0; top: 0;");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",p&&(n.width=n.height=1,e.display.wrapper.appendChild(n),n._top=n.offsetTop),t.dataTransfer.setDragImage(n,0,0),p&&n.parentNode.removeChild(n)}}(e,t)},drop:ei(e,Io),leave:function(t){me(e,t)||Mo(e)}};var u=t.input.getField();pe(u,"keyup",(function(t){return pa.call(e,t)})),pe(u,"keydown",ei(e,la)),pe(u,"keypress",ei(e,fa)),pe(u,"focus",(function(t){return wr(e,t)})),pe(u,"blur",(function(t){return Sr(e,t)}))}(this),Po(),Gr(this),this.curOp.forceUpdate=!0,ji(this,r),t.autofocus&&!y||this.hasFocus()?setTimeout(L(wr,this),20):Sr(this),wa)wa.hasOwnProperty(c)&&wa[c](this,t[c],Da);fi(this),t.finishInit&&t.finishInit(this);for(var l=0;l150)){if(!r)return;n="prev"}}else c=0,n="not";"prev"==n?c=t>o.first?R(Ge(o,t-1).text,null,a):0:"add"==n?c=u+e.options.indentUnit:"subtract"==n?c=u-e.options.indentUnit:"number"==typeof n&&(c=u+n),c=Math.max(0,c);var p="",f=0;if(e.options.indentWithTabs)for(var d=Math.floor(c/a);d;--d)f+=a,p+="\t";if(fa,u=Fe(t),c=null;if(s&&r.ranges.length>1)if(Oa&&Oa.text.join("\n")==t){if(r.ranges.length%Oa.text.length==0){c=[];for(var l=0;l=0;f--){var d=r.ranges[f],h=d.from(),m=d.to();d.empty()&&(n&&n>0?h=et(h.line,h.ch-n):e.state.overwrite&&!s?m=et(m.line,Math.min(Ge(o,m.line).text.length,m.ch+J(u).length)):s&&Oa&&Oa.lineWise&&Oa.text.join("\n")==u.join("\n")&&(h=m=et(h.line,0)));var g={from:h,to:m,text:c?c[f%c.length]:u,origin:i||(s?"paste":e.state.cutIncoming>a?"cut":"+input")};co(e.doc,g),un(e,"inputRead",e,g)}t&&!s&&Ma(e,t),Fr(e),e.curOp.updateInput<2&&(e.curOp.updateInput=p),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function Ia(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||Zr(t,(function(){return Na(t,n,0,null,"paste")})),!0}function Ma(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var s=0;s-1){a=_a(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Ge(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=_a(e,i.head.line,"smart"));a&&un(e,"electricInput",e,i.head.line)}}}function ja(e){for(var t=[],n=[],r=0;r=t.text.length?(n.ch=t.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=se(i,n.ch,n.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(r>0?a.to>n.ch:a.from=a.from&&f>=l.begin)){var d=p?"before":"after";return new et(n.line,f,d)}}var h=function(e,t,r){for(var o=function(e,t){return t?new et(n.line,u(e,1),"before"):new et(n.line,e,"after")};e>=0&&e0==(1!=a.level),c=s?r.begin:u(r.end,-1);if(a.from<=c&&c0?l.end:u(l.begin,-1);return null==g||r>0&&g==t.text.length||!(m=h(r>0?0:i.length-1,r,c(g)))?null:m}(e.cm,s,t,n):Zo(s,t,n))){if(r||(a=t.line+u)=e.first+e.size||(t=new et(a,t.ch,t.sticky),!(s=Ge(e,a))))return!1;t=ea(i,e.cm,s,t.line,u)}else t=o;return!0}if("char"==r)c();else if("column"==r)c(!0);else if("word"==r||"group"==r)for(var l=null,p="group"==r,f=e.cm&&e.cm.getHelper(t,"wordChars"),d=!0;!(n<0)||c(!d);d=!1){var h=s.text.charAt(t.ch)||"\n",m=ee(h,f)?"w":p&&"\n"==h?"n":!p||/\s/.test(h)?null:"p";if(!p||d||m||(m="s"),l&&l!=m){n<0&&(n=1,c(),t.sticky="after");break}if(m&&(l=m),n>0&&!c(!d))break}var g=oo(e,t,o,a,!0);return nt(o,g)&&(g.hitSide=!0),g}function Ba(e,t,n,r){var i,o,a=e.doc,s=t.left;if("page"==r){var u=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),c=Math.max(u-.5*rr(e.display),3);i=(n>0?t.bottom:t.top)+n*c}else"line"==r&&(i=n>0?t.bottom+3:t.top-3);for(;(o=Yn(e,s,i)).outside;){if(n<0?i<=0:i>=a.height){o.hitSide=!0;break}i+=5*n}return o}var Ua=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new B,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function za(e,t){var n=Fn(e,t.line);if(!n||n.hidden)return null;var r=Ge(e.doc,t.line),i=_n(n,r,t.line),o=ce(r,e.doc.direction),a="left";o&&(a=se(o,t.ch)%2?"right":"left");var s=Ln(i.map,t.ch,a);return s.offset="right"==s.collapse?s.end:s.start,s}function Va(e,t){return t&&(e.bad=!0),e}function qa(e,t,n){var r;if(t==e.display.lineDiv){if(!(r=e.display.lineDiv.childNodes[n]))return Va(e.clipPos(et(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var i=0;i=t.display.viewTo||o.line=t.display.viewFrom&&za(t,i)||{node:u[0].measure.map[2],offset:0},l=o.liner.firstLine()&&(a=et(a.line-1,Ge(r.doc,a.line-1).length)),s.ch==Ge(r.doc,s.line).text.length&&s.linei.viewTo-1)return!1;a.line==i.viewFrom||0==(e=lr(r,a.line))?(t=Ye(i.view[0].line),n=i.view[0].node):(t=Ye(i.view[e].line),n=i.view[e-1].node.nextSibling);var u,c,l=lr(r,s.line);if(l==i.view.length-1?(u=i.viewTo-1,c=i.lineDiv.lastChild):(u=Ye(i.view[l+1].line)-1,c=i.view[l+1].node.previousSibling),!n)return!1;for(var p=r.doc.splitLines(function(e,t,n,r,i){var o="",a=!1,s=e.doc.lineSeparator(),u=!1;function c(){a&&(o+=s,u&&(o+=s),a=u=!1)}function l(e){e&&(c(),o+=e)}function p(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(n)return void l(n);var o,f=t.getAttribute("cm-marker");if(f){var d=e.findMarks(et(r,0),et(i+1,0),(g=+f,function(e){return e.id==g}));return void(d.length&&(o=d[0].find(0))&&l(Ke(e.doc,o.from,o.to).join(s)))}if("false"==t.getAttribute("contenteditable"))return;var h=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&0==t.textContent.length)return;h&&c();for(var m=0;m1&&f.length>1;)if(J(p)==J(f))p.pop(),f.pop(),u--;else{if(p[0]!=f[0])break;p.shift(),f.shift(),t++}for(var d=0,h=0,m=p[0],g=f[0],y=Math.min(m.length,g.length);da.ch&&v.charCodeAt(v.length-h-1)==b.charCodeAt(b.length-h-1);)d--,h++;p[p.length-1]=v.slice(0,v.length-h).replace(/^\u200b+/,""),p[0]=p[0].slice(d).replace(/\u200b+$/,"");var x=et(t,d),D=et(u,f.length?J(f).length-h:0);return p.length>1||p[0]||tt(x,D)?(mo(r.doc,p,x,D,"+input"),!0):void 0},Ua.prototype.ensurePolled=function(){this.forceCompositionEnd()},Ua.prototype.reset=function(){this.forceCompositionEnd()},Ua.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Ua.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()}),80))},Ua.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Zr(this.cm,(function(){return pr(e.cm)}))},Ua.prototype.setUneditable=function(e){e.contentEditable="false"},Ua.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||ei(this.cm,Na)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Ua.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Ua.prototype.onContextMenu=function(){},Ua.prototype.resetPosition=function(){},Ua.prototype.needsContentAttribute=!0;var Wa=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new B,this.hasSelection=!1,this.composing=null};Wa.prototype.init=function(e){var t=this,n=this,r=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!me(r,e)){if(r.somethingSelected())Fa({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var t=ja(r);Fa({lineWise:!0,text:t.text}),"cut"==e.type?r.setSelections(t.ranges,null,V):(n.prevInput="",i.value=t.text.join("\n"),j(i))}"cut"==e.type&&(r.state.cutIncoming=+new Date)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),m&&(i.style.width="0px"),pe(i,"input",(function(){a&&s>=9&&t.hasSelection&&(t.hasSelection=null),n.poll()})),pe(i,"paste",(function(e){me(r,e)||Ia(e,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())})),pe(i,"cut",o),pe(i,"copy",o),pe(e.scroller,"paste",(function(t){if(!Dn(e,t)&&!me(r,t)){if(!i.dispatchEvent)return r.state.pasteIncoming=+new Date,void n.focus();var o=new Event("paste");o.clipboardData=t.clipboardData,i.dispatchEvent(o)}})),pe(e.lineSpace,"selectstart",(function(t){Dn(e,t)||be(t)})),pe(i,"compositionstart",(function(){var e=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:r.markText(e,r.getCursor("to"),{className:"CodeMirror-composing"})}})),pe(i,"compositionend",(function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)}))},Wa.prototype.createField=function(e){this.wrapper=Pa(),this.textarea=this.wrapper.firstChild},Wa.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute("aria-label",e):this.textarea.removeAttribute("aria-label")},Wa.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=yr(e);if(e.options.moveInputWithCursor){var i=Kn(e,n.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},Wa.prototype.showSelection=function(e){var t=this.cm.display;T(t.cursorDiv,e.cursors),T(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},Wa.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var n=t.getSelection();this.textarea.value=n,t.state.focused&&j(this.textarea),a&&s>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value="",a&&s>=9&&(this.hasSelection=null))}},Wa.prototype.getField=function(){return this.textarea},Wa.prototype.supportsTouch=function(){return!1},Wa.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!y||N()!=this.textarea))try{this.textarea.focus()}catch(e){}},Wa.prototype.blur=function(){this.textarea.blur()},Wa.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Wa.prototype.receivedFocus=function(){this.slowPoll()},Wa.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){e.poll(),e.cm.state.focused&&e.slowPoll()}))},Wa.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0,t.polling.set(20,(function n(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,n))}))},Wa.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!t.state.focused||Ne(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(a&&s>=9&&this.hasSelection===i||v&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r=""),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var u=0,c=Math.min(r.length,i.length);u1e3||i.indexOf("\n")>-1?n.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},Wa.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Wa.prototype.onKeyPress=function(){a&&s>=9&&(this.hasSelection=null),this.fastPoll()},Wa.prototype.onContextMenu=function(e){var t=this,n=t.cm,r=n.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var o=cr(n,e),c=r.scroller.scrollTop;if(o&&!p){n.options.resetSelectionOnContextMenu&&-1==n.doc.sel.contains(o)&&ei(n,Zi)(n.doc,Si(o),V);var l,f=i.style.cssText,d=t.wrapper.style.cssText,h=t.wrapper.offsetParent.getBoundingClientRect();if(t.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-h.top-5)+"px; left: "+(e.clientX-h.left-5)+"px;\n z-index: 1000; background: "+(a?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",u&&(l=window.scrollY),r.input.focus(),u&&window.scrollTo(null,l),r.input.reset(),n.somethingSelected()||(i.value=t.prevInput=" "),t.contextMenuPending=y,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll),a&&s>=9&&g(),C){De(e);var m=function(){de(window,"mouseup",m),setTimeout(y,20)};pe(window,"mouseup",m)}else setTimeout(y,50)}function g(){if(null!=i.selectionStart){var e=n.somethingSelected(),o=""+(e?i.value:"");i.value="⇚",i.value=o,t.prevInput=e?"":"",i.selectionStart=1,i.selectionEnd=o.length,r.selForContextMenu=n.doc.sel}}function y(){if(t.contextMenuPending==y&&(t.contextMenuPending=!1,t.wrapper.style.cssText=d,i.style.cssText=f,a&&s<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=c),null!=i.selectionStart)){(!a||a&&s<9)&&g();var e=0,o=function(){r.selForContextMenu==n.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&""==t.prevInput?ei(n,so)(n):e++<10?r.detectingSelectAll=setTimeout(o,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(o,200)}}},Wa.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},Wa.prototype.setUneditable=function(){},Wa.prototype.needsContentAttribute=!1,function(e){var t=e.optionHandlers;function n(n,r,i,o){e.defaults[n]=r,i&&(t[n]=o?function(e,t,n){n!=Da&&i(e,t,n)}:i)}e.defineOption=n,e.Init=Da,n("value","",(function(e,t){return e.setValue(t)}),!0),n("mode",null,(function(e,t){e.doc.modeOption=t,Oi(e)}),!0),n("indentUnit",2,Oi,!0),n("indentWithTabs",!1),n("smartIndent",!0),n("tabSize",4,(function(e){Fi(e),Un(e),pr(e)}),!0),n("lineSeparator",null,(function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter((function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,n.push(et(r,o))}r++}));for(var i=n.length-1;i>=0;i--)mo(e.doc,t,n[i],et(n[i].line,n[i].ch+t.length))}})),n("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200c\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,(function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),n!=Da&&e.refresh()})),n("specialCharPlaceholder",Xt,(function(e){return e.refresh()}),!0),n("electricChars",!0),n("inputStyle",y?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),n("spellcheck",!1,(function(e,t){return e.getInputField().spellcheck=t}),!0),n("autocorrect",!1,(function(e,t){return e.getInputField().autocorrect=t}),!0),n("autocapitalize",!1,(function(e,t){return e.getInputField().autocapitalize=t}),!0),n("rtlMoveVisually",!E),n("wholeLineUpdateBefore",!0),n("theme","default",(function(e){xa(e),mi(e)}),!0),n("keyMap","default",(function(e,t,n){var r=Yo(t),i=n!=Da&&Yo(n);i&&i.detach&&i.detach(e,r),r.attach&&r.attach(e,i||null)})),n("extraKeys",null),n("configureMouse",null),n("lineWrapping",!1,ka,!0),n("gutters",[],(function(e,t){e.display.gutterSpecs=di(t,e.options.lineNumbers),mi(e)}),!0),n("fixedGutter",!0,(function(e,t){e.display.gutters.style.left=t?ar(e.display)+"px":"0",e.refresh()}),!0),n("coverGutterNextToScrollbar",!1,(function(e){return zr(e)}),!0),n("scrollbarStyle","native",(function(e){Hr(e),zr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)}),!0),n("lineNumbers",!1,(function(e,t){e.display.gutterSpecs=di(e.options.gutters,t),mi(e)}),!0),n("firstLineNumber",1,mi,!0),n("lineNumberFormatter",(function(e){return e}),mi,!0),n("showCursorWhenSelecting",!1,gr,!0),n("resetSelectionOnContextMenu",!0),n("lineWiseCopyCut",!0),n("pasteLinesPerSelection",!0),n("selectionsMayTouch",!1),n("readOnly",!1,(function(e,t){"nocursor"==t&&(Sr(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)})),n("screenReaderLabel",null,(function(e,t){t=""===t?null:t,e.display.input.screenReaderLabelChanged(t)})),n("disableInput",!1,(function(e,t){t||e.display.input.reset()}),!0),n("dragDrop",!0,Sa),n("allowDropFileTypes",null),n("cursorBlinkRate",530),n("cursorScrollMargin",0),n("cursorHeight",1,gr,!0),n("singleCursorHeightPerLine",!0,gr,!0),n("workTime",100),n("workDelay",100),n("flattenSpans",!0,Fi,!0),n("addModeClass",!1,Fi,!0),n("pollInterval",100),n("undoDepth",200,(function(e,t){return e.doc.history.undoDepth=t})),n("historyEventDelay",1250),n("viewportMargin",10,(function(e){return e.refresh()}),!0),n("maxHighlightLength",1e4,Fi,!0),n("moveInputWithCursor",!0,(function(e,t){t||e.display.input.resetPosition()})),n("tabindex",null,(function(e,t){return e.display.input.getField().tabIndex=t||""})),n("autofocus",null),n("direction","ltr",(function(e,t){return e.doc.setDirection(t)}),!0),n("phrases",null)}(Aa),function(e){var t=e.optionHandlers,n=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,n){var r=this.options,i=r[e];r[e]==n&&"mode"!=e||(r[e]=n,t.hasOwnProperty(e)&&ei(this,t[e])(this,n,i),he(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](Yo(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;nn&&(_a(this,i.head.line,e,!0),n=i.head.line,r==this.doc.sel.primIndex&&Fr(this));else{var o=i.from(),a=i.to(),s=Math.max(n,o.line);n=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var u=s;u0&&Yi(this.doc,r,new Ci(o,c[r].to()),V)}}})),getTokenAt:function(e,t){return vt(this,e,t)},getLineTokens:function(e,t){return vt(this,et(e),t,!0)},getTokenTypeAt:function(e){e=st(this.doc,e);var t,n=ft(this,Ge(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]o&&(e=o,i=!0),r=Ge(this.doc,e)}else r=e;return Hn(this,r,{top:0,left:0},t||"page",n||i).top+(i?this.doc.height-qt(r):0)},defaultTextHeight:function(){return rr(this.display)},defaultCharWidth:function(){return ir(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o,a,s,u=this.display,c=(e=Kn(this,st(this.doc,e))).bottom,l=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),u.sizer.appendChild(t),"over"==r)c=e.top;else if("above"==r||"near"==r){var p=Math.max(u.wrapper.clientHeight,this.doc.height),f=Math.max(u.sizer.clientWidth,u.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>p)&&e.top>t.offsetHeight?c=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=p&&(c=e.bottom),l+t.offsetWidth>f&&(l=f-t.offsetWidth)}t.style.top=c+"px",t.style.left=t.style.right="","right"==i?(l=u.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?l=0:"middle"==i&&(l=(u.sizer.clientWidth-t.offsetWidth)/2),t.style.left=l+"px"),n&&(o=this,a={left:l,top:c,right:l+t.offsetWidth,bottom:c+t.offsetHeight},null!=(s=_r(o,a)).scrollTop&&jr(o,s.scrollTop),null!=s.scrollLeft&&Pr(o,s.scrollLeft))},triggerOnKeyDown:ti(la),triggerOnKeyPress:ti(fa),triggerOnKeyUp:pa,triggerOnMouseDown:ti(ga),execCommand:function(e){if(ta.hasOwnProperty(e))return ta[e].call(null,this)},triggerElectric:ti((function(e){Ma(this,e)})),findPosH:function(e,t,n,r){var i=1;t<0&&(i=-1,t=-t);for(var o=st(this.doc,e),a=0;a0&&a(t.charAt(n-1));)--n;for(;r.5||this.options.lineWrapping)&&ur(this),he(this,"refresh",this)})),swapDoc:ti((function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),ji(this,e),Un(this),this.display.input.reset(),Nr(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,un(this,"swapDoc",this,t),t})),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},ve(e),e.registerHelper=function(t,r,i){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][r]=i},e.registerGlobalHelper=function(t,r,i,o){e.registerHelper(t,r,o),n[t]._global.push({pred:i,val:o})}}(Aa);var Ga="iter insert remove copy getEditor constructor".split(" ");for(var Ka in Fo.prototype)Fo.prototype.hasOwnProperty(Ka)&&U(Ga,Ka)<0&&(Aa.prototype[Ka]=function(e){return function(){return e.apply(this.doc,arguments)}}(Fo.prototype[Ka]));return ve(Fo),Aa.inputStyles={textarea:Wa,contenteditable:Ua},Aa.defineMode=function(e){Aa.defaults.mode||"null"==e||(Aa.defaults.mode=e),Pe.apply(this,arguments)},Aa.defineMIME=function(e,t){Le[e]=t},Aa.defineMode("null",(function(){return{token:function(e){return e.skipToEnd()}}})),Aa.defineMIME("text/plain","null"),Aa.defineExtension=function(e,t){Aa.prototype[e]=t},Aa.defineDocExtension=function(e,t){Fo.prototype[e]=t},Aa.fromTextArea=function(e,t){if((t=t?P(t):{}).value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=N();t.autofocus=n==e||null!=e.getAttribute("autofocus")&&n==document.body}function r(){e.value=s.getValue()}var i;if(e.form&&(pe(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var a=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=a}}catch(e){}}t.finishInit=function(n){n.save=r,n.getTextArea=function(){return e},n.toTextArea=function(){n.toTextArea=isNaN,r(),e.parentNode.removeChild(n.getWrapperElement()),e.style.display="",e.form&&(de(e.form,"submit",r),t.leaveSubmitMethodAlone||"function"!=typeof e.form.submit||(e.form.submit=i))}},e.style.display="none";var s=Aa((function(t){return e.parentNode.insertBefore(t,e.nextSibling)}),t);return s},function(e){e.off=de,e.on=pe,e.wheelEventPixels=Ei,e.Doc=Fo,e.splitLines=Fe,e.countColumn=R,e.findColumn=W,e.isWordChar=Z,e.Pass=z,e.signal=he,e.Line=Gt,e.changeEnd=ki,e.scrollbarModel=qr,e.Pos=et,e.cmpPos=tt,e.modes=je,e.mimeModes=Le,e.resolveMode=Re,e.getMode=Be,e.modeExtensions=Ue,e.extendMode=ze,e.copyState=Ve,e.startState=He,e.innerMode=qe,e.commands=ta,e.keyMap=qo,e.keyName=Qo,e.isModifierKey=Ko,e.lookupKey=Go,e.normalizeKeyMap=Wo,e.StringStream=We,e.SharedTextMarker=Ao,e.TextMarker=So,e.LineWidget=Do,e.e_preventDefault=be,e.e_stopPropagation=Ee,e.e_stop=De,e.addClass=I,e.contains=F,e.rmClass=k,e.keyNames=Bo}(Aa),Aa.version="5.57.0",Aa}()},function(e,t,n){"use strict";function r(e,t){if(!Boolean(e))throw new Error(null!=t?t:"Unexpected invariant triggered.")}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return a})),n.d(t,"d",(function(){return s})),n.d(t,"e",(function(){return u})),n.d(t,"f",(function(){return c})),n.d(t,"g",(function(){return h})),n.d(t,"h",(function(){return l})),n.d(t,"i",(function(){return p})),n.d(t,"j",(function(){return f})),n.d(t,"k",(function(){return d}));var r=function(e){return"@@redux-saga/"+e},i=r("CANCEL_PROMISE"),o=r("CHANNEL_END"),a=r("IO"),s=r("MATCH"),u=r("MULTICAST"),c=r("SAGA_ACTION"),l=r("SELF_CANCELLATION"),p=r("TASK"),f=r("TASK_CANCEL"),d=r("TERMINATE"),h=r("LOCATION")},function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return o})),n.d(t,"c",(function(){return a})),n.d(t,"d",(function(){return s}));
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function i(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n2&&void 0!==arguments[2]?arguments[2]:j;return L(e,t,n)}function j(e,t,n){var r="Invalid value "+Object(l.a)(t);throw e.length>0&&(r+=' at "value'.concat(A(e),'"')),n.message=r+": "+n.message,n}function L(e,t,n,r){if(Object(D.L)(t))return null!=e?L(e,t.ofType,n,r):void n(g(r),e,new y.a('Expected non-nullable type "'.concat(Object(l.a)(t),'" not to be null.')));if(null==e)return null;if(Object(D.J)(t)){var i=t.ofType;return Object(h.a)(e)?Object(c.a)(e,(function(e,t){var o=m(r,t,void 0);return L(e,i,n,o)})):[L(e,i,n,r)]}if(Object(D.F)(t)){if(!Object(d.a)(e))return void n(g(r),e,new y.a('Expected type "'.concat(t.name,'" to be an object.')));for(var o={},a=t.getFields(),s=0,u=Object(_.a)(a);s0&&(i+=' at "'.concat(s).concat(A(e),'"')),r(new y.a(i+"; "+n.message,a,void 0,void 0,void 0,n.originalError))}))},a=0;a=o)throw new y.a("Too many errors processing variables, error limit reached. Execution aborted.");i.push(e)}));if(0===i.length)return{coerced:a}}catch(e){i.push(e)}return{errors:i}}function R(e,t,n){for(var r,i={},o=null!==(r=t.arguments)&&void 0!==r?r:[],a=Object(k.a)(o,(function(e){return e.name.value})),s=0,u=e.args;s0)return{errors:d};try{t=Object(a.a)(r)}catch(e){return{errors:[e]}}var h=Object(s.c)(n,t);return h.length>0?{errors:h}:z({schema:n,document:t,rootValue:i,contextValue:o,variableValues:c,operationName:l,fieldResolver:p,typeResolver:f})}var ge=n(54),ye=n(13),ve=n(24),be=n(84),Ee=n(96),xe=n(137),De=n(85),Ce=n(5),we=n(26),Se=n(9),ke=n(46),Ae=n(25);function Te(e,t,n){var r,i,o,a,s,u,c=e[Ae.a].call(e);function l(e){return e.done?e:_e(e.value,t).then(Oe,i)}if("function"==typeof c.return&&(r=c.return,i=function(e){var t=function(){return Promise.reject(e)};return r.call(c).then(t,t)}),n){var p=n;o=function(e){return _e(e,p).then(Oe,i)}}return a={next:function(){return c.next().then(l,o)},return:function(){return r?r.call(c).then(l,o):Promise.resolve({value:void 0,done:!0})},throw:function(e){return"function"==typeof c.throw?c.throw(e).then(l,o):Promise.reject(e).catch(i)}},s=Ae.a,u=function(){return this},s in a?Object.defineProperty(a,s,{value:u,enumerable:!0,configurable:!0,writable:!0}):a[s]=u,a}function _e(e,t){return new Promise((function(n){return n(t(e))}))}function Oe(e){return{value:e,done:!1}}function Fe(e){return(Fe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ne(e,t,n,r,i,o,a,s){return 1===arguments.length?Me(e):Me({schema:e,document:t,rootValue:n,contextValue:r,variableValues:i,operationName:o,fieldResolver:a,subscribeFieldResolver:s})}function Ie(e){if(e instanceof y.a)return{errors:[e]};throw e}function Me(e){var t=e.schema,n=e.document,r=e.rootValue,i=e.contextValue,o=e.variableValues,a=e.operationName,s=e.fieldResolver,u=e.subscribeFieldResolver,c=je(t,n,r,i,o,a,u),l=function(e){return z({schema:t,document:n,rootValue:e,contextValue:i,variableValues:o,operationName:a,fieldResolver:s})};return c.then((function(e){return Le(e)?Te(e,l,Ie):e}))}function je(e,t,n,r,i,o,a){H(e,t,i);try{var s,u=W(e,t,n,r,i,o,a);if(Array.isArray(u))return Promise.resolve({errors:u});var c=w(e,u.operation),p=K(u,c,u.operation.selectionSet,Object.create(null),Object.create(null)),f=Object.keys(p)[0],d=p[f],h=d[0].name.value,b=fe(e,c,h);if(!b)throw new y.a('The subscription field "'.concat(h,'" is not defined.'),d);var E=null!==(s=b.subscribe)&&void 0!==s?s:u.fieldResolver,x=m(void 0,f,c.name),D=$(u,b,d,c,x),C=X(u,b,d,E,n,D);return Promise.resolve(C).then((function(e){if(e instanceof Error)return{errors:[Object(v.a)(e,d,g(x))]};if(Le(e))return e;throw new Error("Subscription field must return Async Iterable. "+"Received: ".concat(Object(l.a)(e),"."))}))}catch(e){return e instanceof y.a?Promise.resolve({errors:[e]}):Promise.reject(e)}}function Le(e){return null!=e&&"object"===Fe(e)&&"function"==typeof e[Ae.a]}var Pe=n(146),Re=n(138),Be=n(219),Ue=n(226),ze=n(223),Ve=n(142),qe=n(140),He=n(228),We=n(139),Ge=n(221),Ke=n(231),Je=n(233),Qe=n(229),Ye=n(234),$e=n(237),Xe=n(230),Ze=n(144),et=n(225),tt=n(222),nt=n(143),rt=n(141),it=n(227),ot=n(145),at=n(220),st=n(232),ut=n(235),ct=n(224),lt=n(236),pt=n(238),ft=n(239),dt=n(240),ht=n(241),mt=n(242),gt=n(243),yt=n(244),vt=n(245);function bt(e){return{Field:function(t){var n=Object(D.A)(e.getType());n&&Object(E.isIntrospectionType)(n)&&e.reportError(new y.a('GraphQL introspection has been disabled, but the requested query contained the field "'.concat(t.name.value,'".'),t))}}}var Et=n(45);function xt(e){var t;e||Object(f.a)(0,"Received null or undefined error.");var n=null!==(t=e.message)&&void 0!==t?t:"An unknown error occurred.",r=e.locations,i=e.path,o=e.extensions;return o?{message:n,locations:r,path:i,extensions:o}:{message:n,locations:r,path:i}}function Dt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ct(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function wt(e){var t=function(e){for(var t=1;t0?n.reverse().join("\n"):void 0}(e);if(void 0!==n)return Object(Nt.a)("\n"+n)}}function Vt(e,t){null!=e&&e.kind===b.a.DOCUMENT||Object(f.a)(0,"Must provide valid Document AST."),!0!==(null==t?void 0:t.assumeValid)&&!0!==(null==t?void 0:t.assumeValidSDL)&&Object(s.a)(e);var n=Pt({description:void 0,types:[],directives:[],extensions:void 0,extensionASTNodes:[],assumeValid:!1},e,t);if(null==n.astNode)for(var r=0,i=n.types;r2&&void 0!==arguments[2]?arguments[2]:"";return 0===t.length?"":t.every((function(e){return!e.description}))?"("+t.map(cn).join(", ")+")":"(\n"+t.map((function(t,r){return pn(e,t," "+n,!r)+" "+n+cn(t)})).join("\n")+"\n"+n+")"}function cn(e){var t=Object($t.a)(e.defaultValue,e.type),n=e.name+": "+String(e.type);return t&&(n+=" = ".concat(Object(T.print)(t))),n}function ln(e){if(!e.isDeprecated)return"";var t=e.deprecationReason,n=Object($t.a)(t,ye.e);return n&&t!==x.a?" @deprecated(reason: "+Object(T.print)(n)+")":" @deprecated"}function pn(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=t.description;if(null==i)return"";if(!0===(null==e?void 0:e.commentDescriptions))return fn(i,n,r);var o=i.length>70,a=Object(Nt.c)(i,"",o),s=n&&!r?"\n"+n:n;return s+a.replace(/\n/g,"\n"+n)+"\n"}function fn(e,t,n){return(t&&!n?"\n":"")+e.split("\n").map((function(e){return t+(""!==e?"# "+e:"#")})).join("\n")+"\n"}var dn=n(217),hn=n(86),mn=n(116);function gn(e){return{kind:"Document",definitions:Object(mn.a)(e,(function(e){return e.definitions}))}}function yn(e){var t,n=[],r=Object.create(null);Object(we.c)(e,{OperationDefinition:function(e){t=vn(e),n.push(e)},FragmentDefinition:function(e){t=e.name.value},FragmentSpread:function(e){var n=e.name.value,i=r[t];void 0===i&&(i=r[t]=Object.create(null)),i[n]=!0}});for(var i=Object.create(null),o=function(t){var o=n[t],a=vn(o),s=Object.create(null);!function e(t,n,r){var i=n[r];if(i)for(var o=0,a=Object.keys(i);o0&&(n="\n"+n);var i=n[n.length-1];return('"'===i&&'\\"""'!==n.slice(-4)||"\\"===i)&&(n+="\n"),'"""'+n+'"""'}var xn=n(63),Dn=n(218);function Cn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wn(e){for(var t=1;t=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function a(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var s=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,u=new RegExp(s.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),c=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,l=n(170);var p=/[&<>"]/,f=/[&<>"]/g,d={"&":"&","<":"<",">":">",'"':"""};function h(e){return d[e]}var m=/[.?*+^$[\]\\(){}|-]/g;var g=n(104);t.lib={},t.lib.mdurl=n(105),t.lib.ucmicro=n(171),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=i,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(s,"$1")},t.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(u,(function(e,t,n){return t||function(e,t){var n=0;return i(l,t)?l[t]:35===t.charCodeAt(0)&&c.test(t)&&o(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?a(n):e}(e,n)}))},t.isValidEntityCode=o,t.fromCodePoint=a,t.escapeHtml=function(e){return p.test(e)?e.replace(f,h):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return g.test(e)},t.escapeRE=function(e){return e.replace(m,"\\$&")},t.normalizeReference=function(e){return e.trim().replace(/\s+/g," ").toUpperCase()}},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function i(e,t){return r.call(e,t)}function o(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function a(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var s=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,u=new RegExp(s.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),c=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,l=n(201);var p=/[&<>"]/,f=/[&<>"]/g,d={"&":"&","<":"<",">":">",'"':"""};function h(e){return d[e]}var m=/[.?*+^$[\]\\(){}|-]/g;var g=n(104);t.lib={},t.lib.mdurl=n(105),t.lib.ucmicro=n(171),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=i,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(s,"$1")},t.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(u,(function(e,t,n){return t||function(e,t){var n=0;return i(l,t)?l[t]:35===t.charCodeAt(0)&&c.test(t)&&o(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?a(n):e}(e,n)}))},t.isValidEntityCode=o,t.fromCodePoint=a,t.escapeHtml=function(e){return p.test(e)?e.replace(f,h):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return g.test(e)},t.escapeRE=function(e){return e.replace(m,"\\$&")},t.normalizeReference=function(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return a}));var r=n(47),i=function(){function e(e,t,n){this.start=e.start,this.end=t.end,this.startToken=e,this.endToken=t,this.source=n}return e.prototype.toJSON=function(){return{start:this.start,end:this.end}},e}();Object(r.a)(i);var o=function(){function e(e,t,n,r,i,o,a){this.kind=e,this.start=t,this.end=n,this.line=r,this.column=i,this.value=a,this.prev=o,this.next=null}return e.prototype.toJSON=function(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}},e}();function a(e){return null!=e&&"string"==typeof e.kind}Object(r.a)(o)},function(e,t,n){"use strict";n.d(t,"b",(function(){return r})),n.d(t,"a",(function(){return i})),n.d(t,"c",(function(){return o}));var r="function"==typeof Symbol?Symbol.iterator:"@@iterator",i="function"==typeof Symbol?Symbol.asyncIterator:"@@asyncIterator",o="function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag"},function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"c",(function(){return s})),n.d(t,"d",(function(){return u})),n.d(t,"b",(function(){return c}));var r=n(4),i=n(24),o={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]},a=Object.freeze({});function s(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o,s=void 0,u=Array.isArray(e),l=[e],p=-1,f=[],d=void 0,h=void 0,m=void 0,g=[],y=[],v=e;do{var b=++p===l.length,E=b&&0!==f.length;if(b){if(h=0===y.length?void 0:g[g.length-1],d=m,m=y.pop(),E){if(u)d=d.slice();else{for(var x={},D=0,C=Object.keys(d);D1&&void 0!==arguments[1]?arguments[1]:r,n=null,o=null;return function(){return i(t,n,arguments)||(o=e.apply(null,arguments)),n=arguments,o}}function a(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every((function(e){return"function"==typeof e}))){var n=t.map((function(e){return typeof e})).join(", ");throw new Error("Selector creators expect all input-selectors to be functions, instead received the following types: ["+n+"]")}return t}function s(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:u;if("object"!=typeof e)throw new Error("createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof e);var n=Object.keys(e);return t(n.map((function(t){return e[t]})),(function(){for(var e=arguments.length,t=Array(e),r=0;r=0;r--){var i=t[r](e);if(i)return i}return function(t,r){throw new Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function B(e,t){return e===t}function U(e){var t=void 0===e?{}:e,n=t.connectHOC,r=void 0===n?w:n,i=t.mapStateToPropsFactories,o=void 0===i?N:i,a=t.mapDispatchToPropsFactories,s=void 0===a?F:a,u=t.mergePropsFactories,c=void 0===u?M:u,l=t.selectorFactory,d=void 0===l?P:l;return function(e,t,n,i){void 0===i&&(i={});var a=i,u=a.pure,l=void 0===u||u,h=a.areStatesEqual,m=void 0===h?B:h,g=a.areOwnPropsEqual,y=void 0===g?k:g,v=a.areStatePropsEqual,b=void 0===v?k:v,E=a.areMergedPropsEqual,x=void 0===E?k:E,D=Object(f.a)(a,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),C=R(e,o,"mapStateToProps"),w=R(t,s,"mapDispatchToProps"),S=R(n,c,"mergeProps");return r(d,Object(p.a)({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:C,initMapDispatchToProps:w,initMergeProps:S,pure:l,areStatesEqual:m,areOwnPropsEqual:y,areStatePropsEqual:b,areMergedPropsEqual:x},D))}}var z=U();function V(){return Object(r.useContext)(o)}function q(e){void 0===e&&(e=o);var t=e===o?V:function(){return Object(r.useContext)(e)};return function(){return t().store}}var H=q();function W(e){void 0===e&&(e=o);var t=e===o?H:q(e);return function(){return t().dispatch}}var G=W(),K=function(e,t){return e===t};function J(e){void 0===e&&(e=o);var t=e===o?V:function(){return Object(r.useContext)(e)};return function(e,n){void 0===n&&(n=K);var i=t();return function(e,t,n,i){var o,a=Object(r.useReducer)((function(e){return e+1}),0)[1],s=Object(r.useMemo)((function(){return new c(n,i)}),[n,i]),u=Object(r.useRef)(),l=Object(r.useRef)(),p=Object(r.useRef)();try{o=e!==l.current||u.current?e(n.getState()):p.current}catch(e){throw u.current&&(e.message+="\nThe error may be correlated with this previous error:\n"+u.current.stack+"\n\n"),e}return g((function(){l.current=e,p.current=o,u.current=void 0})),g((function(){function e(){try{var e=l.current(n.getState());if(t(e,p.current))return;p.current=e}catch(e){u.current=e}a({})}return s.onStateChange=e,s.trySubscribe(),e(),function(){return s.tryUnsubscribe()}}),[n,s]),o}(e,n,i.store,i.subscription)}}var Q,Y=J(),$=n(59);Q=$.unstable_batchedUpdates,a=Q},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e){return"object"==r(e)&&null!==e}n.d(t,"a",(function(){return i}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(28),i=n(42);function o(e){return e.get("selectedWorkspace")}t.getSessionsState=r.createSelector([function(e){return e.getIn(["workspaces",o(e)])||i.makeWorkspace("")}],(function(e){return e.get("sessions")})),t.getSelectedSession=r.createSelector([t.getSessionsState],(function(e){var n=t.getSelectedSessionId(e);return e.getIn(["sessions",n])})),t.getSelectedSessionId=function(e){return e.selectedSessionId&&""!==e.selectedSessionId?e.selectedSessionId:e.sessions.first().id},t.getSelectedSessionIdFromRoot=r.createSelector([t.getSelectedSession],(function(e){return e.get("id")}));var a=function(e){return r.createSelector([t.getSelectedSession],(function(t){return t.get(e)}))};function s(e){return e.getIn(["settingsString"])}function u(e){try{return JSON.parse(e)}catch(e){}return{}}function c(e){var t=e.variables;try{return JSON.parse(t)}catch(e){}return{}}t.getScrollTop=a("scrollTop"),t.getEndpoint=a("endpoint"),t.getQuery=a("query"),t.getFile=a("file"),t.getVariables=a("variables"),t.getResponses=a("responses"),t.getOperationName=a("operationName"),t.getQueryRunning=a("queryRunning"),t.getSubscriptionActive=a("subscriptionActive"),t.getOperations=a("operations"),t.getVariableToType=a("variableToType"),t.getQueryTypes=a("queryTypes"),t.getDate=a("date"),t.getHasMutation=a("hasMutation"),t.getHasSubscription=a("hasSubscription"),t.getHasQuery=a("hasQuery"),t.getIsFile=a("isFile"),t.getStarred=a("starred"),t.getName=a("name"),t.getFilePath=a("filePath"),t.getSelectedUserToken=a("selectedUserToken"),t.getHeaders=a("headers"),t.getHasChanged=a("hasChanged"),t.getAbsolutePath=a("absolutePath"),t.getIsSettingsTab=a("isSettingsTab"),t.getIsConfigTab=a("isConfigTab"),t.getCurrentQueryStartTime=a("currentQueryStartTime"),t.getCurrentQueryEndTime=a("currentQueryEndTime"),t.getIsReloadingSchema=a("isReloadingSchema"),t.getIsPollingSchema=r.createSelector([t.getEndpoint,s],(function(e,t){var n=JSON.parse(t);try{return n["schema.polling.enable"]&&e.match("/"+n["schema.polling.endpointFilter"])&&!0}catch(e){return!1}})),t.getResponseExtensions=a("responseExtensions"),t.getQueryVariablesActive=a("queryVariablesActive"),t.getEndpointUnreachable=a("endpointUnreachable"),t.getEditorFlex=a("editorFlex"),t.getVariableEditorOpen=a("variableEditorOpen"),t.getVariableEditorHeight=a("variableEditorHeight"),t.getResponseTracingOpen=a("responseTracingOpen"),t.getResponseTracingHeight=a("responseTracingHeight"),t.getDocExplorerWidth=a("docExplorerWidth"),t.getNextQueryStartTime=a("nextQueryStartTime"),t.getTracingSupported=a("tracingSupported"),t.getTabWidth=r.createSelector([s],(function(e){try{return JSON.parse(e)["prettier.tabWidth"]||2}catch(e){}return 2})),t.getUseTabs=r.createSelector([s],(function(e){try{return JSON.parse(e)["prettier.useTabs"]||!1}catch(e){}return!1})),t.getHeadersCount=r.createSelector([t.getHeaders],(function(e){try{var t=JSON.parse(e);return Object.keys(t).length}catch(e){}return 0})),t.getParsedHeaders=r.createSelector([t.getSelectedSession],u),t.getParsedHeadersFromSession=u,t.getParsedVariables=r.createSelector([t.getSelectedSession],c),t.getParsedVariablesFromSession=c,t.getTracing=r.createSelector([t.getResponseExtensions],(function(e){return e&&e.tracing})),t.getSessionsArray=r.createSelector([t.getSessionsState],(function(e){return e.get("sessions").toArray().map((function(e){return e[1]}))}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(4),i=n(17),o=n(1),a=n(0);function s(e,t){var n;return t.kind===o.a.LIST_TYPE?(n=s(e,t.type))&&Object(a.d)(n):t.kind===o.a.NON_NULL_TYPE?(n=s(e,t.type))&&Object(a.e)(n):t.kind===o.a.NAMED_TYPE?e.getType(t.name.value):void Object(i.a)(0,"Unexpected type node: "+Object(r.a)(t))}},function(e,t,n){"use strict";n.r(t),n.d(t,"version",(function(){return rr})),n.d(t,"Collection",(function(){return v})),n.d(t,"Iterable",(function(){return or})),n.d(t,"Seq",(function(){return R})),n.d(t,"Map",(function(){return Et})),n.d(t,"OrderedMap",(function(){return rn})),n.d(t,"List",(function(){return qt})),n.d(t,"Stack",(function(){return cn})),n.d(t,"Set",(function(){return bn})),n.d(t,"OrderedSet",(function(){return Vn})),n.d(t,"Record",(function(){return Kn})),n.d(t,"Range",(function(){return kn})),n.d(t,"Repeat",(function(){return er})),n.d(t,"is",(function(){return Z})),n.d(t,"fromJS",(function(){return tr})),n.d(t,"hash",(function(){return re})),n.d(t,"isImmutable",(function(){return w})),n.d(t,"isCollection",(function(){return h})),n.d(t,"isKeyed",(function(){return m})),n.d(t,"isIndexed",(function(){return g})),n.d(t,"isAssociative",(function(){return y})),n.d(t,"isOrdered",(function(){return k})),n.d(t,"isValueObject",(function(){return X})),n.d(t,"get",(function(){return We})),n.d(t,"getIn",(function(){return An})),n.d(t,"has",(function(){return He})),n.d(t,"hasIn",(function(){return _n})),n.d(t,"merge",(function(){return at})),n.d(t,"mergeDeep",(function(){return ut})),n.d(t,"mergeWith",(function(){return st})),n.d(t,"mergeDeepWith",(function(){return ct})),n.d(t,"remove",(function(){return Ke})),n.d(t,"removeIn",(function(){return Xe})),n.d(t,"set",(function(){return Je})),n.d(t,"setIn",(function(){return Ye})),n.d(t,"update",(function(){return et})),n.d(t,"updateIn",(function(){return Qe}));var r={};function i(e){e&&(e.value=!0)}function o(){}function a(e){return void 0===e.size&&(e.size=e.__iterate(u)),e.size}function s(e,t){if("number"!=typeof t){var n=t>>>0;if(""+n!==t||4294967295===n)return NaN;t=n}return t<0?a(e)+t:t}function u(){return!0}function c(e,t,n){return(0===e&&!d(e)||void 0!==n&&e<=-n)&&(void 0===t||void 0!==n&&t>=n)}function l(e,t){return f(e,t,0)}function p(e,t){return f(e,t,t)}function f(e,t,n){return void 0===e?n:d(e)?t===1/0?t:0|Math.max(0,t+e):void 0===t||t===e?e:0|Math.min(t,e)}function d(e){return e<0||0===e&&1/e==-1/0}function h(e){return Boolean(e&&e["@@__IMMUTABLE_ITERABLE__@@"])}function m(e){return Boolean(e&&e["@@__IMMUTABLE_KEYED__@@"])}function g(e){return Boolean(e&&e["@@__IMMUTABLE_INDEXED__@@"])}function y(e){return m(e)||g(e)}var v=function(e){return h(e)?e:R(e)},b=function(e){function t(e){return m(e)?e:B(e)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(v),E=function(e){function t(e){return g(e)?e:U(e)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(v),x=function(e){function t(e){return h(e)&&!y(e)?e:z(e)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(v);v.Keyed=b,v.Indexed=E,v.Set=x;function D(e){return Boolean(e&&e["@@__IMMUTABLE_SEQ__@@"])}function C(e){return Boolean(e&&e["@@__IMMUTABLE_RECORD__@@"])}function w(e){return h(e)||C(e)}var S="@@__IMMUTABLE_ORDERED__@@";function k(e){return Boolean(e&&e[S])}var A="function"==typeof Symbol&&Symbol.iterator,T=A||"@@iterator",_=function(e){this.next=e};function O(e,t,n,r){var i=0===e?t:1===e?n:[t,n];return r?r.value=i:r={value:i,done:!1},r}function F(){return{value:void 0,done:!0}}function N(e){return!!j(e)}function I(e){return e&&"function"==typeof e.next}function M(e){var t=j(e);return t&&t.call(e)}function j(e){var t=e&&(A&&e[A]||e["@@iterator"]);if("function"==typeof t)return t}_.prototype.toString=function(){return"[Iterator]"},_.KEYS=0,_.VALUES=1,_.ENTRIES=2,_.prototype.inspect=_.prototype.toSource=function(){return this.toString()},_.prototype[T]=function(){return this};var L=Object.prototype.hasOwnProperty;function P(e){return!(!Array.isArray(e)&&"string"!=typeof e)||e&&"object"==typeof e&&Number.isInteger(e.length)&&e.length>=0&&(0===e.length?1===Object.keys(e).length:e.hasOwnProperty(e.length-1))}var R=function(e){function t(e){return null==e?G():w(e)?e.toSeq():function(e){var t=Q(e);if(t)return t;if("object"==typeof e)return new q(e);throw new TypeError("Expected Array or collection object of values, or keyed object: "+e)}(e)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.toSeq=function(){return this},t.prototype.toString=function(){return this.__toString("Seq {","}")},t.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},t.prototype.__iterate=function(e,t){var n=this._cache;if(n){for(var r=n.length,i=0;i!==r;){var o=n[t?r-++i:i++];if(!1===e(o[1],o[0],this))break}return i}return this.__iterateUncached(e,t)},t.prototype.__iterator=function(e,t){var n=this._cache;if(n){var r=n.length,i=0;return new _((function(){if(i===r)return{value:void 0,done:!0};var o=n[t?r-++i:i++];return O(e,o[0],o[1])}))}return this.__iteratorUncached(e,t)},t}(v),B=function(e){function t(e){return null==e?G().toKeyedSeq():h(e)?m(e)?e.toSeq():e.fromEntrySeq():C(e)?e.toSeq():K(e)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.toKeyedSeq=function(){return this},t}(R),U=function(e){function t(e){return null==e?G():h(e)?m(e)?e.entrySeq():e.toIndexedSeq():C(e)?e.toSeq().entrySeq():J(e)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){return t(arguments)},t.prototype.toIndexedSeq=function(){return this},t.prototype.toString=function(){return this.__toString("Seq [","]")},t}(R),z=function(e){function t(e){return(h(e)&&!y(e)?e:U(e)).toSetSeq()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){return t(arguments)},t.prototype.toSetSeq=function(){return this},t}(R);R.isSeq=D,R.Keyed=B,R.Set=z,R.Indexed=U,R.prototype["@@__IMMUTABLE_SEQ__@@"]=!0;var V=function(e){function t(e){this._array=e,this.size=e.length}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.get=function(e,t){return this.has(e)?this._array[s(this,e)]:t},t.prototype.__iterate=function(e,t){for(var n=this._array,r=n.length,i=0;i!==r;){var o=t?r-++i:i++;if(!1===e(n[o],o,this))break}return i},t.prototype.__iterator=function(e,t){var n=this._array,r=n.length,i=0;return new _((function(){if(i===r)return{value:void 0,done:!0};var o=t?r-++i:i++;return O(e,o,n[o])}))},t}(U),q=function(e){function t(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},t.prototype.has=function(e){return L.call(this._object,e)},t.prototype.__iterate=function(e,t){for(var n=this._object,r=this._keys,i=r.length,o=0;o!==i;){var a=r[t?i-++o:o++];if(!1===e(n[a],a,this))break}return o},t.prototype.__iterator=function(e,t){var n=this._object,r=this._keys,i=r.length,o=0;return new _((function(){if(o===i)return{value:void 0,done:!0};var a=r[t?i-++o:o++];return O(e,a,n[a])}))},t}(B);q.prototype[S]=!0;var H,W=function(e){function t(e){this._collection=e,this.size=e.length||e.size}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var n=M(this._collection),r=0;if(I(n))for(var i;!(i=n.next()).done&&!1!==e(i.value,r++,this););return r},t.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=M(this._collection);if(!I(n))return new _(F);var r=0;return new _((function(){var t=n.next();return t.done?t:O(e,r++,t.value)}))},t}(U);function G(){return H||(H=new V([]))}function K(e){var t=Array.isArray(e)?new V(e):N(e)?new W(e):void 0;if(t)return t.fromEntrySeq();if("object"==typeof e)return new q(e);throw new TypeError("Expected Array or collection object of [k, v] entries, or keyed object: "+e)}function J(e){var t=Q(e);if(t)return t;throw new TypeError("Expected Array or collection object of values: "+e)}function Q(e){return P(e)?new V(e):N(e)?new W(e):void 0}function Y(e){return Boolean(e&&e["@@__IMMUTABLE_MAP__@@"])}function $(e){return Y(e)&&k(e)}function X(e){return Boolean(e&&"function"==typeof e.equals&&"function"==typeof e.hashCode)}function Z(e,t){if(e===t||e!=e&&t!=t)return!0;if(!e||!t)return!1;if("function"==typeof e.valueOf&&"function"==typeof t.valueOf){if((e=e.valueOf())===(t=t.valueOf())||e!=e&&t!=t)return!0;if(!e||!t)return!1}return!!(X(e)&&X(t)&&e.equals(t))}var ee="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(e,t){var n=65535&(e|=0),r=65535&(t|=0);return n*r+((e>>>16)*r+n*(t>>>16)<<16>>>0)|0};function te(e){return e>>>1&1073741824|3221225471&e}var ne=Object.prototype.valueOf;function re(e){switch(typeof e){case"boolean":return e?1108378657:1108378656;case"number":return function(e){if(e!=e||e===1/0)return 0;var t=0|e;t!==e&&(t^=4294967295*e);for(;e>4294967295;)t^=e/=4294967295;return te(t)}(e);case"string":return e.length>pe?function(e){var t=he[e];void 0===t&&(t=ie(e),de===fe&&(de=0,he={}),de++,he[e]=t);return t}(e):ie(e);case"object":case"function":return null===e?1108378658:"function"==typeof e.hashCode?te(e.hashCode(e)):(e.valueOf!==ne&&"function"==typeof e.valueOf&&(e=e.valueOf(e)),function(e){var t;if(ue&&void 0!==(t=se.get(e)))return t;if(void 0!==(t=e[le]))return t;if(!ae){if(void 0!==(t=e.propertyIsEnumerable&&e.propertyIsEnumerable[le]))return t;if(void 0!==(t=function(e){if(e&&e.nodeType>0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}(e)))return t}t=++ce,1073741824&ce&&(ce=0);if(ue)se.set(e,t);else{if(void 0!==oe&&!1===oe(e))throw new Error("Non-extensible objects are not allowed as keys.");if(ae)Object.defineProperty(e,le,{enumerable:!1,configurable:!1,writable:!1,value:t});else if(void 0!==e.propertyIsEnumerable&&e.propertyIsEnumerable===e.constructor.prototype.propertyIsEnumerable)e.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},e.propertyIsEnumerable[le]=t;else{if(void 0===e.nodeType)throw new Error("Unable to set a non-enumerable property on object.");e[le]=t}}return t}(e));case"undefined":return 1108378659;default:if("function"==typeof e.toString)return ie(e.toString());throw new Error("Value type "+typeof e+" cannot be hashed.")}}function ie(e){for(var t=0,n=0;n=0&&(d.get=function(t,n){return(t=s(this,t))>=0&&tu)return{value:void 0,done:!0};var e=i.next();return r||1===t||e.done?e:O(t,s-1,0===t?void 0:e.value[1],e)}))},d}function we(e,t,n,r){var i=Me(e);return i.__iterateUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterate(i,o);var s=!0,u=0;return e.__iterate((function(e,o,c){if(!s||!(s=t.call(n,e,o,c)))return u++,i(e,r?o:u-1,a)})),u},i.__iteratorUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterator(i,o);var s=e.__iterator(2,o),u=!0,c=0;return new _((function(){var e,o,l;do{if((e=s.next()).done)return r||1===i?e:O(i,c++,0===i?void 0:e.value[1],e);var p=e.value;o=p[0],l=p[1],u&&(u=t.call(n,l,o,a))}while(u);return 2===i?e:O(i,o,l,e)}))},i}function Se(e,t){var n=m(e),r=[e].concat(t).map((function(e){return h(e)?n&&(e=b(e)):e=n?K(e):J(Array.isArray(e)?e:[e]),e})).filter((function(e){return 0!==e.size}));if(0===r.length)return e;if(1===r.length){var i=r[0];if(i===e||n&&m(i)||g(e)&&g(i))return i}var o=new V(r);return n?o=o.toKeyedSeq():g(e)||(o=o.toSetSeq()),(o=o.flatten(!0)).size=r.reduce((function(e,t){if(void 0!==e){var n=t.size;if(void 0!==n)return e+n}}),0),o}function ke(e,t,n){var r=Me(e);return r.__iterateUncached=function(i,o){if(o)return this.cacheResult().__iterate(i,o);var a=0,s=!1;return function e(u,c){u.__iterate((function(o,u){return(!t||c0}function Oe(e,t,n,r){var i=Me(e),o=new V(n).map((function(e){return e.size}));return i.size=r?o.max():o.min(),i.__iterate=function(e,t){for(var n,r=this.__iterator(1,t),i=0;!(n=r.next()).done&&!1!==e(n.value,i++,this););return i},i.__iteratorUncached=function(e,i){var o=n.map((function(e){return e=v(e),M(i?e.reverse():e)})),a=0,s=!1;return new _((function(){var n;return s||(n=o.map((function(e){return e.next()})),s=r?n.every((function(e){return e.done})):n.some((function(e){return e.done}))),s?{value:void 0,done:!0}:O(e,a++,t.apply(null,n.map((function(e){return e.value}))))}))},i}function Fe(e,t){return e===t?e:D(e)?t:e.constructor(t)}function Ne(e){if(e!==Object(e))throw new TypeError("Expected [K, V] tuple: "+e)}function Ie(e){return m(e)?b:g(e)?E:x}function Me(e){return Object.create((m(e)?B:g(e)?U:z).prototype)}function je(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):R.prototype.cacheResult.call(this)}function Le(e,t){return void 0===e&&void 0===t?0:void 0===e?1:void 0===t?-1:e>t?1:e0;)t[n]=arguments[n+1];if("function"!=typeof e)throw new TypeError("Invalid merger function: "+e);return ot(this,t,e)}function ot(e,t,n){for(var i=[],o=0;o0;)t[n]=arguments[n+1];return pt(e,t)}function st(e,t){for(var n=[],r=arguments.length-2;r-- >0;)n[r]=arguments[r+2];return pt(t,n,e)}function ut(e){for(var t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];return lt(e,t)}function ct(e,t){for(var n=[],r=arguments.length-2;r-- >0;)n[r]=arguments[r+2];return lt(t,n,e)}function lt(e,t,n){return pt(e,t,function(e){return function t(n,r,i){return Ve(n)&&Ve(r)?pt(n,[r],t):e?e(n,r,i):r}}(n))}function pt(e,t,n){if(!Ve(e))throw new TypeError("Cannot merge into non-data-structure value: "+e);if(w(e))return"function"==typeof n&&e.mergeWith?e.mergeWith.apply(e,[n].concat(t)):e.merge?e.merge.apply(e,t):e.concat.apply(e,t);for(var r=Array.isArray(e),i=e,o=r?E:b,a=r?function(t){i===e&&(i=Ge(i)),i.push(t)}:function(t,r){var o=L.call(i,r),a=o&&n?n(i[r],t,r):t;o&&a===i[r]||(i===e&&(i=Ge(i)),i[r]=a)},s=0;s0;)t[n]=arguments[n+1];return lt(this,t,e)}function ht(e){for(var t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];return Qe(this,e,Nt(),(function(e){return pt(e,t)}))}function mt(e){for(var t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];return Qe(this,e,Nt(),(function(e){return lt(e,t)}))}function gt(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this}function yt(){return this.__ownerID?this:this.__ensureOwner(new o)}function vt(){return this.__ensureOwner()}function bt(){return this.__altered}ge.prototype.cacheResult=me.prototype.cacheResult=ye.prototype.cacheResult=ve.prototype.cacheResult=je;var Et=function(e){function t(t){return null==t?Nt():Y(t)&&!k(t)?t:Nt().withMutations((function(n){var r=e(t);Be(r.size),r.forEach((function(e,t){return n.set(t,e)}))}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return Nt().withMutations((function(t){for(var n=0;n=e.length)throw new Error("Missing value for key: "+e[n]);t.set(e[n],e[n+1])}}))},t.prototype.toString=function(){return this.__toString("Map {","}")},t.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},t.prototype.set=function(e,t){return It(this,e,t)},t.prototype.remove=function(e){return It(this,e,r)},t.prototype.deleteAll=function(e){var t=v(e);return 0===t.size?this:this.withMutations((function(e){t.forEach((function(t){return e.remove(t)}))}))},t.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Nt()},t.prototype.sort=function(e){return rn(Ae(this,e))},t.prototype.sortBy=function(e,t){return rn(Ae(this,t,e))},t.prototype.map=function(e,t){return this.withMutations((function(n){n.forEach((function(r,i){n.set(i,e.call(t,r,i,n))}))}))},t.prototype.__iterator=function(e,t){return new Tt(this,e,t)},t.prototype.__iterate=function(e,t){var n=this,r=0;return this._root&&this._root.iterate((function(t){return r++,e(t[1],t[0],n)}),t),r},t.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Ft(this.size,this._root,e,this.__hash):0===this.size?Nt():(this.__ownerID=e,this.__altered=!1,this)},t}(b);Et.isMap=Y;var xt=Et.prototype;xt["@@__IMMUTABLE_MAP__@@"]=!0,xt.delete=xt.remove,xt.removeAll=xt.deleteAll,xt.setIn=$e,xt.removeIn=xt.deleteIn=Ze,xt.update=tt,xt.updateIn=nt,xt.merge=xt.concat=rt,xt.mergeWith=it,xt.mergeDeep=ft,xt.mergeDeepWith=dt,xt.mergeIn=ht,xt.mergeDeepIn=mt,xt.withMutations=gt,xt.wasAltered=bt,xt.asImmutable=vt,xt["@@transducer/init"]=xt.asMutable=yt,xt["@@transducer/step"]=function(e,t){return e.set(t[0],t[1])},xt["@@transducer/result"]=function(e){return e.asImmutable()};var Dt=function(e,t){this.ownerID=e,this.entries=t};Dt.prototype.get=function(e,t,n,r){for(var i=this.entries,o=0,a=i.length;o=Bt)return function(e,t,n,r){e||(e=new o);for(var i=new kt(e,re(n),[n,r]),a=0;a>>e)),o=this.bitmap;return 0==(o&i)?r:this.nodes[Pt(o&i-1)].get(e+5,t,n,r)},Ct.prototype.update=function(e,t,n,i,o,a,s){void 0===n&&(n=re(i));var u=31&(0===t?n:n>>>t),c=1<=Ut)return function(e,t,n,r,i){for(var o=0,a=new Array(32),s=0;0!==n;s++,n>>>=1)a[s]=1&n?t[o++]:void 0;return a[r]=i,new wt(e,o+1,a)}(e,d,l,u,m);if(p&&!m&&2===d.length&&jt(d[1^f]))return d[1^f];if(p&&m&&1===d.length&&jt(m))return m;var g=e&&e===this.ownerID,y=p?m?l:l^c:l|c,v=p?m?Rt(d,f,m,g):function(e,t,n){var r=e.length-1;if(n&&t===r)return e.pop(),e;for(var i=new Array(r),o=0,a=0;a>>e),o=this.nodes[i];return o?o.get(e+5,t,n,r):r},wt.prototype.update=function(e,t,n,i,o,a,s){void 0===n&&(n=re(i));var u=31&(0===t?n:n>>>t),c=o===r,l=this.nodes,p=l[u];if(c&&!p)return this;var f=Mt(p,e,t+5,n,i,o,a,s);if(f===p)return this;var d=this.count;if(p){if(!f&&--d>>n),s=31&(0===n?r:r>>>n),u=a===s?[Lt(e,t,n+5,r,i)]:(o=new kt(t,r,i),a>1&1431655765))+(e>>2&858993459))+(e>>4)&252645135,e+=e>>8,127&(e+=e>>16)}function Rt(e,t,n,r){var i=r?e:Pe(e);return i[t]=n,i}var Bt=8,Ut=16,zt=8;function Vt(e){return Boolean(e&&e["@@__IMMUTABLE_LIST__@@"])}var qt=function(e){function t(t){var n=Yt();if(null==t)return n;if(Vt(t))return t;var r=e(t),i=r.size;return 0===i?n:(Be(i),i>0&&i<32?Qt(0,i,5,null,new Wt(r.toArray())):n.withMutations((function(e){e.setSize(i),r.forEach((function(t,n){return e.set(n,t)}))})))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.prototype.toString=function(){return this.__toString("List [","]")},t.prototype.get=function(e,t){if((e=s(this,e))>=0&&e=e.size||t<0)return e.withMutations((function(e){t<0?en(e,t).set(0,n):en(e,0,t+1).set(t,n)}));t+=e._origin;var r=e._tail,i=e._root,o={value:!1};t>=tn(e._capacity)?r=$t(r,e.__ownerID,0,t,n,o):i=$t(i,e.__ownerID,e._level,t,n,o);if(!o.value)return e;if(e.__ownerID)return e._root=i,e._tail=r,e.__hash=void 0,e.__altered=!0,e;return Qt(e._origin,e._capacity,e._level,i,r)}(this,e,t)},t.prototype.remove=function(e){return this.has(e)?0===e?this.shift():e===this.size-1?this.pop():this.splice(e,1):this},t.prototype.insert=function(e,t){return this.splice(e,0,t)},t.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=5,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):Yt()},t.prototype.push=function(){var e=arguments,t=this.size;return this.withMutations((function(n){en(n,0,t+e.length);for(var r=0;r>>t&31;if(r>=this.array.length)return new Wt([],e);var i,o=0===r;if(t>0){var a=this.array[r];if((i=a&&a.removeBefore(e,t-5,n))===a&&o)return this}if(o&&!i)return this;var s=Xt(this,e);if(!o)for(var u=0;u>>t&31;if(i>=this.array.length)return this;if(t>0){var o=this.array[i];if((r=o&&o.removeAfter(e,t-5,n))===o&&i===this.array.length-1)return this}var a=Xt(this,e);return a.array.splice(i+1),r&&(a.array[i]=r),a};var Gt,Kt={};function Jt(e,t){var n=e._origin,r=e._capacity,i=tn(r),o=e._tail;return a(e._root,e._level,0);function a(e,s,u){return 0===s?function(e,a){var s=a===i?o&&o.array:e&&e.array,u=a>n?0:n-a,c=r-a;c>32&&(c=32);return function(){if(u===c)return Kt;var e=t?--c:u++;return s&&s[e]}}(e,u):function(e,i,o){var s,u=e&&e.array,c=o>n?0:n-o>>i,l=1+(r-o>>i);l>32&&(l=32);return function(){for(;;){if(s){var e=s();if(e!==Kt)return e;s=null}if(c===l)return Kt;var n=t?--l:c++;s=a(u&&u[n],i-5,o+(n<>>n&31,c=e&&u0){var l=e&&e.array[u],p=$t(l,t,n-5,r,o,a);return p===l?e:((s=Xt(e,t)).array[u]=p,s)}return c&&e.array[u]===o?e:(a&&i(a),s=Xt(e,t),void 0===o&&u===s.array.length-1?s.array.pop():s.array[u]=o,s)}function Xt(e,t){return t&&e&&t===e.ownerID?e:new Wt(e?e.array.slice():[],t)}function Zt(e,t){if(t>=tn(e._capacity))return e._tail;if(t<1<0;)n=n.array[t>>>r&31],r-=5;return n}}function en(e,t,n){void 0!==t&&(t|=0),void 0!==n&&(n|=0);var r=e.__ownerID||new o,i=e._origin,a=e._capacity,s=i+t,u=void 0===n?a:n<0?a+n:i+n;if(s===i&&u===a)return e;if(s>=u)return e.clear();for(var c=e._level,l=e._root,p=0;s+p<0;)l=new Wt(l&&l.array.length?[void 0,l]:[],r),p+=1<<(c+=5);p&&(s+=p,i+=p,u+=p,a+=p);for(var f=tn(a),d=tn(u);d>=1<f?new Wt([],r):h;if(h&&d>f&&s5;y-=5){var v=f>>>y&31;g=g.array[v]=Xt(g.array[v],r)}g.array[f>>>5&31]=h}if(u=d)s-=d,u-=d,c=5,l=null,m=m&&m.removeBefore(r,0,s);else if(s>i||d>>c&31;if(b!==d>>>c&31)break;b&&(p+=(1<i&&(l=l.removeBefore(r,c,s-p)),l&&d>>5<<5}var nn,rn=function(e){function t(e){return null==e?an():$(e)?e:an().withMutations((function(t){var n=b(e);Be(n.size),n.forEach((function(e,n){return t.set(n,e)}))}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.prototype.toString=function(){return this.__toString("OrderedMap {","}")},t.prototype.get=function(e,t){var n=this._map.get(e);return void 0!==n?this._list.get(n)[1]:t},t.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):an()},t.prototype.set=function(e,t){return sn(this,e,t)},t.prototype.remove=function(e){return sn(this,e,r)},t.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},t.prototype.__iterate=function(e,t){var n=this;return this._list.__iterate((function(t){return t&&e(t[1],t[0],n)}),t)},t.prototype.__iterator=function(e,t){return this._list.fromEntrySeq().__iterator(e,t)},t.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e),n=this._list.__ensureOwner(e);return e?on(t,n,e,this.__hash):0===this.size?an():(this.__ownerID=e,this._map=t,this._list=n,this)},t}(Et);function on(e,t,n,r){var i=Object.create(rn.prototype);return i.size=e?e.size:0,i._map=e,i._list=t,i.__ownerID=n,i.__hash=r,i}function an(){return nn||(nn=on(Nt(),Yt()))}function sn(e,t,n){var i,o,a=e._map,s=e._list,u=a.get(t),c=void 0!==u;if(n===r){if(!c)return e;s.size>=32&&s.size>=2*a.size?(i=(o=s.filter((function(e,t){return void 0!==e&&u!==t}))).toKeyedSeq().map((function(e){return e[0]})).flip().toMap(),e.__ownerID&&(i.__ownerID=o.__ownerID=e.__ownerID)):(i=a.remove(t),o=u===s.size-1?s.pop():s.set(u,void 0))}else if(c){if(n===s.get(u)[1])return e;i=a,o=s.set(u,[t,n])}else i=a.set(t,s.size),o=s.set(s.size,[t,n]);return e.__ownerID?(e.size=i.size,e._map=i,e._list=o,e.__hash=void 0,e):on(i,o)}rn.isOrderedMap=$,rn.prototype[S]=!0,rn.prototype.delete=rn.prototype.remove;function un(e){return Boolean(e&&e["@@__IMMUTABLE_STACK__@@"])}var cn=function(e){function t(e){return null==e?dn():un(e)?e:dn().pushAll(e)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.prototype.toString=function(){return this.__toString("Stack [","]")},t.prototype.get=function(e,t){var n=this._head;for(e=s(this,e);n&&e--;)n=n.next;return n?n.value:t},t.prototype.peek=function(){return this._head&&this._head.value},t.prototype.push=function(){var e=arguments;if(0===arguments.length)return this;for(var t=this.size+arguments.length,n=this._head,r=arguments.length-1;r>=0;r--)n={value:e[r],next:n};return this.__ownerID?(this.size=t,this._head=n,this.__hash=void 0,this.__altered=!0,this):fn(t,n)},t.prototype.pushAll=function(t){if(0===(t=e(t)).size)return this;if(0===this.size&&un(t))return t;Be(t.size);var n=this.size,r=this._head;return t.__iterate((function(e){n++,r={value:e,next:r}}),!0),this.__ownerID?(this.size=n,this._head=r,this.__hash=void 0,this.__altered=!0,this):fn(n,r)},t.prototype.pop=function(){return this.slice(1)},t.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):dn()},t.prototype.slice=function(t,n){if(c(t,n,this.size))return this;var r=l(t,this.size);if(p(n,this.size)!==this.size)return e.prototype.slice.call(this,t,n);for(var i=this.size-r,o=this._head;r--;)o=o.next;return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):fn(i,o)},t.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?fn(this.size,this._head,e,this.__hash):0===this.size?dn():(this.__ownerID=e,this.__altered=!1,this)},t.prototype.__iterate=function(e,t){var n=this;if(t)return new V(this.toArray()).__iterate((function(t,r){return e(t,r,n)}),t);for(var r=0,i=this._head;i&&!1!==e(i.value,r++,this);)i=i.next;return r},t.prototype.__iterator=function(e,t){if(t)return new V(this.toArray()).__iterator(e,t);var n=0,r=this._head;return new _((function(){if(r){var t=r.value;return r=r.next,O(e,n++,t)}return{value:void 0,done:!0}}))},t}(E);cn.isStack=un;var ln,pn=cn.prototype;function fn(e,t,n,r){var i=Object.create(pn);return i.size=e,i._head=t,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function dn(){return ln||(ln=fn(0))}pn["@@__IMMUTABLE_STACK__@@"]=!0,pn.shift=pn.pop,pn.unshift=pn.push,pn.unshiftAll=pn.pushAll,pn.withMutations=gt,pn.wasAltered=bt,pn.asImmutable=vt,pn["@@transducer/init"]=pn.asMutable=yt,pn["@@transducer/step"]=function(e,t){return e.unshift(t)},pn["@@transducer/result"]=function(e){return e.asImmutable()};function hn(e){return Boolean(e&&e["@@__IMMUTABLE_SET__@@"])}function mn(e){return hn(e)&&k(e)}function gn(e,t){if(e===t)return!0;if(!h(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||m(e)!==m(t)||g(e)!==g(t)||k(e)!==k(t))return!1;if(0===e.size&&0===t.size)return!0;var n=!y(e);if(k(e)){var i=e.entries();return t.every((function(e,t){var r=i.next().value;return r&&Z(r[1],e)&&(n||Z(r[0],t))}))&&i.next().done}var o=!1;if(void 0===e.size)if(void 0===t.size)"function"==typeof e.cacheResult&&e.cacheResult();else{o=!0;var a=e;e=t,t=a}var s=!0,u=t.__iterate((function(t,i){if(n?!e.has(t):o?!Z(t,e.get(i,r)):!Z(e.get(i,r),t))return s=!1,!1}));return s&&e.size===u}function yn(e,t){var n=function(n){e.prototype[n]=t[n]};return Object.keys(t).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(n),e}function vn(e){if(!e||"object"!=typeof e)return e;if(!h(e)){if(!Ve(e))return e;e=R(e)}if(m(e)){var t={};return e.__iterate((function(e,n){t[n]=vn(e)})),t}var n=[];return e.__iterate((function(e){n.push(vn(e))})),n}var bn=function(e){function t(t){return null==t?wn():hn(t)&&!k(t)?t:wn().withMutations((function(n){var r=e(t);Be(r.size),r.forEach((function(e){return n.add(e)}))}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.fromKeys=function(e){return this(b(e).keySeq())},t.intersect=function(e){return(e=v(e).toArray()).length?xn.intersect.apply(t(e.pop()),e):wn()},t.union=function(e){return(e=v(e).toArray()).length?xn.union.apply(t(e.pop()),e):wn()},t.prototype.toString=function(){return this.__toString("Set {","}")},t.prototype.has=function(e){return this._map.has(e)},t.prototype.add=function(e){return Dn(this,this._map.set(e,e))},t.prototype.remove=function(e){return Dn(this,this._map.remove(e))},t.prototype.clear=function(){return Dn(this,this._map.clear())},t.prototype.map=function(e,t){var n=this,r=[],i=[];return this.forEach((function(o){var a=e.call(t,o,o,n);a!==o&&(r.push(o),i.push(a))})),this.withMutations((function(e){r.forEach((function(t){return e.remove(t)})),i.forEach((function(t){return e.add(t)}))}))},t.prototype.union=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];return 0===(t=t.filter((function(e){return 0!==e.size}))).length?this:0!==this.size||this.__ownerID||1!==t.length?this.withMutations((function(n){for(var r=0;r=0&&t=0&&n>>-15,461845907),t=ee(t<<13|t>>>-13,5),t=ee((t=(t+3864292196|0)^e)^t>>>16,2246822507),t=te((t=ee(t^t>>>13,3266489909))^t>>>16)}(e.__iterate(n?t?function(e,t){r=31*r+zn(re(e),re(t))|0}:function(e,t){r=r+zn(re(e),re(t))|0}:t?function(e){r=31*r+re(e)|0}:function(e){r=r+re(e)|0}),r)}(this))}});var Fn=v.prototype;Fn["@@__IMMUTABLE_ITERABLE__@@"]=!0,Fn[T]=Fn.values,Fn.toJSON=Fn.toArray,Fn.__toStringMapper=qe,Fn.inspect=Fn.toSource=function(){return this.toString()},Fn.chain=Fn.flatMap,Fn.contains=Fn.includes,yn(b,{flip:function(){return Fe(this,be(this))},mapEntries:function(e,t){var n=this,r=0;return Fe(this,this.toSeq().map((function(i,o){return e.call(t,[o,i],r++,n)})).fromEntrySeq())},mapKeys:function(e,t){var n=this;return Fe(this,this.toSeq().flip().map((function(r,i){return e.call(t,r,i,n)})).flip())}});var Nn=b.prototype;Nn["@@__IMMUTABLE_KEYED__@@"]=!0,Nn[T]=Fn.entries,Nn.toJSON=On,Nn.__toStringMapper=function(e,t){return qe(t)+": "+qe(e)},yn(E,{toKeyedSeq:function(){return new me(this,!1)},filter:function(e,t){return Fe(this,De(this,e,t,!1))},findIndex:function(e,t){var n=this.findEntry(e,t);return n?n[0]:-1},indexOf:function(e){var t=this.keyOf(e);return void 0===t?-1:t},lastIndexOf:function(e){var t=this.lastKeyOf(e);return void 0===t?-1:t},reverse:function(){return Fe(this,xe(this,!1))},slice:function(e,t){return Fe(this,Ce(this,e,t,!1))},splice:function(e,t){var n=arguments.length;if(t=Math.max(t||0,0),0===n||2===n&&!t)return this;e=l(e,e<0?this.count():this.size);var r=this.slice(0,e);return Fe(this,1===n?r:r.concat(Pe(arguments,2),this.slice(e+t)))},findLastIndex:function(e,t){var n=this.findLastEntry(e,t);return n?n[0]:-1},first:function(e){return this.get(0,e)},flatten:function(e){return Fe(this,ke(this,e,!1))},get:function(e,t){return(e=s(this,e))<0||this.size===1/0||void 0!==this.size&&e>this.size?t:this.find((function(t,n){return n===e}),void 0,t)},has:function(e){return(e=s(this,e))>=0&&(void 0!==this.size?this.size===1/0||et?-1:0}function zn(e,t){return e^t+2654435769+(e<<6)+(e>>2)|0}In["@@__IMMUTABLE_INDEXED__@@"]=!0,In[S]=!0,yn(x,{get:function(e,t){return this.has(e)?e:t},includes:function(e){return this.has(e)},keySeq:function(){return this.valueSeq()}}),x.prototype.has=Fn.includes,x.prototype.contains=x.prototype.includes,yn(B,b.prototype),yn(U,E.prototype),yn(z,x.prototype);var Vn=function(e){function t(e){return null==e?Gn():mn(e)?e:Gn().withMutations((function(t){var n=x(e);Be(n.size),n.forEach((function(e){return t.add(e)}))}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.fromKeys=function(e){return this(b(e).keySeq())},t.prototype.toString=function(){return this.__toString("OrderedSet {","}")},t}(bn);Vn.isOrderedSet=mn;var qn,Hn=Vn.prototype;function Wn(e,t){var n=Object.create(Hn);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function Gn(){return qn||(qn=Wn(an()))}Hn[S]=!0,Hn.zip=In.zip,Hn.zipWith=In.zipWith,Hn.__empty=Gn,Hn.__make=Wn;var Kn=function(e,t){var n,r=function(o){var a=this;if(o instanceof r)return o;if(!(this instanceof r))return new r(o);if(!n){n=!0;var s=Object.keys(e),u=i._indices={};i._name=t,i._keys=s,i._defaultValues=e;for(var c=0;c2?[]:void 0,{"":e})}function nr(e,t){return m(t)?t.toMap():t.toList()}var rr="4.0.0-rc.11",ir={version:rr,Collection:v,Iterable:v,Seq:R,Map:Et,OrderedMap:rn,List:qt,Stack:cn,Set:bn,OrderedSet:Vn,Record:Kn,Range:kn,Repeat:er,is:Z,fromJS:tr,hash:re,isImmutable:w,isCollection:h,isKeyed:m,isIndexed:g,isAssociative:y,isOrdered:k,isValueObject:X,isSeq:D,isList:Vt,isMap:Y,isOrderedMap:$,isStack:un,isSet:hn,isOrderedSet:mn,isRecord:C,get:We,getIn:An,has:He,hasIn:_n,merge:at,mergeDeep:ut,mergeWith:st,mergeDeepWith:ct,remove:Ke,removeIn:Xe,set:Je,setIn:Ye,update:et,updateIn:Qe},or=v;t.default=ir},function(e,t,n){"use strict";var r=n(93),i=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],o=["scalar","sequence","mapping"];e.exports=function(e,t){var n,a;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===i.indexOf(t))throw new r('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(n=t.styleAliases||null,a={},null!==n&&Object.keys(n).forEach((function(e){n[e].forEach((function(t){a[String(t)]=e}))})),a),-1===o.indexOf(this.kind))throw new r('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}},function(e,t,n){"use strict";function r(e,t){return e.reduce((function(e,n){return e[t(n)]=n,e}),Object.create(null))}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;tt)){for(var c=this._rows,l=0;l<=u;l++)c[0][l]=l;for(var p=1;p<=s;p++){for(var f=c[(p-1)%3],d=c[p%3],h=d[0]=p,m=1;m<=u;m++){var g=r[p-1]===i[m-1]?0:1,y=Math.min(f[m]+1,d[m-1]+1,f[m-1]+g);if(p>1&&m>1&&r[p-1]===i[m-2]&&r[p-2]===i[m-1]){var v=c[(p-2)%3][m-2];y=Math.min(y,v+1)}yt)return}var b=c[s%3][u];return b<=t?b:void 0}},e}();function o(e){for(var t=e.length,n=new Array(t),r=0;r1?n-1:0),i=1;i1?t-1:0),r=1;r2?n-2:0),a=2;a0&&a(t[0]);)t.shift();for(;t.length>0&&a(t[t.length-1]);)t.pop();return t.join("\n")}function i(e){for(var t=null,n=1;n1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=-1===e.indexOf("\n"),i=" "===e[0]||"\t"===e[0],o='"'===e[e.length-1],a="\\"===e[e.length-1],s=!r||o||a||n,u="";return!s||r&&i||(u+="\n"+t),u+=t?e.replace(/\n/g,"\n"+t):e,s&&(u+="\n"),'"""'+u.replace(/"""/g,'\\"""')+'"""'}n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return i})),n.d(t,"c",(function(){return s}))},function(e,t,n){"use strict";n.d(t,"c",(function(){return g})),n.d(t,"b",(function(){return y})),n.d(t,"a",(function(){return v}));var r=n(56),i=n(58),o=n(14),a=n(25),s=n(4),u=n(41),c=n(8),l=n(48),p=n(31),f=n(12),d=n(21),h=n(0);function m(e,t){for(var n=0;n9999999)throw new TypeError("Near-infinite iteration.");return s}var c=e.length;if("number"==typeof c&&c>=0&&c%1==0){for(var l=[],p=0;p=0||(i[n]=e[n]);return i}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";n.r(t),n.d(t,"ApolloLink",(function(){return b})),n.d(t,"concat",(function(){return v})),n.d(t,"createOperation",(function(){return f})),n.d(t,"empty",(function(){return m})),n.d(t,"execute",(function(){return E})),n.d(t,"from",(function(){return g})),n.d(t,"fromError",(function(){return p})),n.d(t,"fromPromise",(function(){return l})),n.d(t,"makePromise",(function(){return c})),n.d(t,"split",(function(){return y})),n.d(t,"toPromise",(function(){return u}));var r=n(40);n.d(t,"Observable",(function(){return r.a}));var i=n(27),o=n(19),a=n(113);n.d(t,"getOperationName",(function(){return a.a}));!function(e){function t(t,n){var r=e.call(this,t)||this;return r.link=n,r}Object(o.b)(t,e)}(Error);function s(e){return e.request.length<=1}function u(e){var t=!1;return new Promise((function(n,r){e.subscribe({next:function(e){t||(t=!0,n(e))},error:r})}))}var c=u;function l(e){return new r.a((function(t){e.then((function(e){t.next(e),t.complete()})).catch(t.error.bind(t))}))}function p(e){return new r.a((function(t){t.error(e)}))}function f(e,t){var n=Object(o.a)({},e);return Object.defineProperty(t,"setContext",{enumerable:!1,value:function(e){n="function"==typeof e?Object(o.a)({},n,e(n)):Object(o.a)({},n,e)}}),Object.defineProperty(t,"getContext",{enumerable:!1,value:function(){return Object(o.a)({},n)}}),Object.defineProperty(t,"toKey",{enumerable:!1,value:function(){return function(e){var t=e.query,n=e.variables,r=e.operationName;return JSON.stringify([r,t,n])}(t)}}),t}function d(e,t){return t?t(e):r.a.of()}function h(e){return"function"==typeof e?new b(e):e}function m(){return new b((function(){return r.a.of()}))}function g(e){return 0===e.length?m():e.map(h).reduce((function(e,t){return e.concat(t)}))}function y(e,t,n){var i=h(t),o=h(n||new b(d));return s(i)&&s(o)?new b((function(t){return e(t)?i.request(t)||r.a.of():o.request(t)||r.a.of()})):new b((function(t,n){return e(t)?i.request(t,n)||r.a.of():o.request(t,n)||r.a.of()}))}var v=function(e,t){var n=h(e);if(s(n))return n;var i=h(t);return s(i)?new b((function(e){return n.request(e,(function(e){return i.request(e)||r.a.of()}))||r.a.of()})):new b((function(e,t){return n.request(e,(function(e){return i.request(e,t)||r.a.of()}))||r.a.of()}))},b=function(){function e(e){e&&(this.request=e)}return e.prototype.split=function(t,n,r){return this.concat(y(t,n,r||new e(d)))},e.prototype.concat=function(e){return v(this,e)},e.prototype.request=function(e,t){throw new i.a(1)},e.empty=m,e.from=g,e.split=y,e.execute=E,e}();function E(e,t){return e.request(f(t.context,function(e){var t={variables:e.variables||{},extensions:e.extensions||{},operationName:e.operationName,query:e.query};return t.operationName||(t.operationName="string"!=typeof t.query?Object(a.a)(t.query):""),t}(function(e){for(var t=["query","operationName","variables","extensions","context"],n=0,r=Object.keys(e);n
+ * @license MIT
+ */function i(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i=0;c--)if(l[c]!==p[c])return!1;for(c=l.length-1;c>=0;c--)if(s=l[c],!b(e[s],t[s],n,r))return!1;return!0}(e,t,n,r))}return n?e===t:e==t}function E(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function x(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function D(e,t,n,r){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(r=n,n=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!i&&y(i,n,"Missing expected exception"+r);var o="string"==typeof r,s=!e&&i&&!n;if((!e&&a.isError(i)&&o&&x(i,n)||s)&&y(i,n,"Got unwanted exception"+r),e&&i&&n&&!x(i,n)||!e&&i)throw i}f.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return m(g(e.actual),128)+" "+e.operator+" "+m(g(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||y;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,i=h(t),o=r.indexOf("\n"+i);if(o>=0){var a=r.indexOf("\n",o+1);r=r.substring(a+1)}this.stack=r}}},a.inherits(f.AssertionError,Error),f.fail=y,f.ok=v,f.equal=function(e,t,n){e!=t&&y(e,t,n,"==",f.equal)},f.notEqual=function(e,t,n){e==t&&y(e,t,n,"!=",f.notEqual)},f.deepEqual=function(e,t,n){b(e,t,!1)||y(e,t,n,"deepEqual",f.deepEqual)},f.deepStrictEqual=function(e,t,n){b(e,t,!0)||y(e,t,n,"deepStrictEqual",f.deepStrictEqual)},f.notDeepEqual=function(e,t,n){b(e,t,!1)&&y(e,t,n,"notDeepEqual",f.notDeepEqual)},f.notDeepStrictEqual=function e(t,n,r){b(t,n,!0)&&y(t,n,r,"notDeepStrictEqual",e)},f.strictEqual=function(e,t,n){e!==t&&y(e,t,n,"===",f.strictEqual)},f.notStrictEqual=function(e,t,n){e===t&&y(e,t,n,"!==",f.notStrictEqual)},f.throws=function(e,t,n){D(!0,e,t,n)},f.doesNotThrow=function(e,t,n){D(!1,e,t,n)},f.ifError=function(e){if(e)throw e},f.strict=r((function e(t,n){t||y(t,!0,n,"==",e)}),f,{equal:f.strictEqual,deepEqual:f.deepStrictEqual,notEqual:f.notStrictEqual,notDeepEqual:f.notDeepStrictEqual}),f.strict.strict=f.strict;var C=Object.keys||function(e){var t=[];for(var n in e)s.call(e,n)&&t.push(n);return t}}).call(this,n(43))},function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"c",(function(){return d})),n.d(t,"b",(function(){return h}));var r=n(4),i=n(8),o=n(45),a=n(1),s=n(24),u=n(84),c=n(5),l=n(9),p=n(85);function f(e,t){return new m(e,t).parseDocument()}function d(e,t){var n=new m(e,t);n.expectToken(c.a.SOF);var r=n.parseValueLiteral(!1);return n.expectToken(c.a.EOF),r}function h(e,t){var n=new m(e,t);n.expectToken(c.a.SOF);var r=n.parseTypeReference();return n.expectToken(c.a.EOF),r}var m=function(){function e(e,t){var n="string"==typeof e?new u.a(e):e;n instanceof u.a||Object(i.a)(0,"Must provide Source. Received: ".concat(Object(r.a)(n),".")),this._lexer=new p.a(n),this._options=t}var t=e.prototype;return t.parseName=function(){var e=this.expectToken(c.a.NAME);return{kind:a.a.NAME,value:e.value,loc:this.loc(e)}},t.parseDocument=function(){var e=this._lexer.token;return{kind:a.a.DOCUMENT,definitions:this.many(c.a.SOF,this.parseDefinition,c.a.EOF),loc:this.loc(e)}},t.parseDefinition=function(){if(this.peek(c.a.NAME))switch(this._lexer.token.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"schema":case"scalar":case"type":case"interface":case"union":case"enum":case"input":case"directive":return this.parseTypeSystemDefinition();case"extend":return this.parseTypeSystemExtension()}else{if(this.peek(c.a.BRACE_L))return this.parseOperationDefinition();if(this.peekDescription())return this.parseTypeSystemDefinition()}throw this.unexpected()},t.parseOperationDefinition=function(){var e=this._lexer.token;if(this.peek(c.a.BRACE_L))return{kind:a.a.OPERATION_DEFINITION,operation:"query",name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(e)};var t,n=this.parseOperationType();return this.peek(c.a.NAME)&&(t=this.parseName()),{kind:a.a.OPERATION_DEFINITION,operation:n,name:t,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},t.parseOperationType=function(){var e=this.expectToken(c.a.NAME);switch(e.value){case"query":return"query";case"mutation":return"mutation";case"subscription":return"subscription"}throw this.unexpected(e)},t.parseVariableDefinitions=function(){return this.optionalMany(c.a.PAREN_L,this.parseVariableDefinition,c.a.PAREN_R)},t.parseVariableDefinition=function(){var e=this._lexer.token;return{kind:a.a.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(c.a.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(c.a.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(e)}},t.parseVariable=function(){var e=this._lexer.token;return this.expectToken(c.a.DOLLAR),{kind:a.a.VARIABLE,name:this.parseName(),loc:this.loc(e)}},t.parseSelectionSet=function(){var e=this._lexer.token;return{kind:a.a.SELECTION_SET,selections:this.many(c.a.BRACE_L,this.parseSelection,c.a.BRACE_R),loc:this.loc(e)}},t.parseSelection=function(){return this.peek(c.a.SPREAD)?this.parseFragment():this.parseField()},t.parseField=function(){var e,t,n=this._lexer.token,r=this.parseName();return this.expectOptionalToken(c.a.COLON)?(e=r,t=this.parseName()):t=r,{kind:a.a.FIELD,alias:e,name:t,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(c.a.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(n)}},t.parseArguments=function(e){var t=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(c.a.PAREN_L,t,c.a.PAREN_R)},t.parseArgument=function(){var e=this._lexer.token,t=this.parseName();return this.expectToken(c.a.COLON),{kind:a.a.ARGUMENT,name:t,value:this.parseValueLiteral(!1),loc:this.loc(e)}},t.parseConstArgument=function(){var e=this._lexer.token;return{kind:a.a.ARGUMENT,name:this.parseName(),value:(this.expectToken(c.a.COLON),this.parseValueLiteral(!0)),loc:this.loc(e)}},t.parseFragment=function(){var e=this._lexer.token;this.expectToken(c.a.SPREAD);var t=this.expectOptionalKeyword("on");return!t&&this.peek(c.a.NAME)?{kind:a.a.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(e)}:{kind:a.a.INLINE_FRAGMENT,typeCondition:t?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},t.parseFragmentDefinition=function(){var e,t=this._lexer.token;return this.expectKeyword("fragment"),!0===(null===(e=this._options)||void 0===e?void 0:e.experimentalFragmentVariables)?{kind:a.a.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}:{kind:a.a.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}},t.parseFragmentName=function(){if("on"===this._lexer.token.value)throw this.unexpected();return this.parseName()},t.parseValueLiteral=function(e){var t=this._lexer.token;switch(t.kind){case c.a.BRACKET_L:return this.parseList(e);case c.a.BRACE_L:return this.parseObject(e);case c.a.INT:return this._lexer.advance(),{kind:a.a.INT,value:t.value,loc:this.loc(t)};case c.a.FLOAT:return this._lexer.advance(),{kind:a.a.FLOAT,value:t.value,loc:this.loc(t)};case c.a.STRING:case c.a.BLOCK_STRING:return this.parseStringLiteral();case c.a.NAME:switch(this._lexer.advance(),t.value){case"true":return{kind:a.a.BOOLEAN,value:!0,loc:this.loc(t)};case"false":return{kind:a.a.BOOLEAN,value:!1,loc:this.loc(t)};case"null":return{kind:a.a.NULL,loc:this.loc(t)};default:return{kind:a.a.ENUM,value:t.value,loc:this.loc(t)}}case c.a.DOLLAR:if(!e)return this.parseVariable()}throw this.unexpected()},t.parseStringLiteral=function(){var e=this._lexer.token;return this._lexer.advance(),{kind:a.a.STRING,value:e.value,block:e.kind===c.a.BLOCK_STRING,loc:this.loc(e)}},t.parseList=function(e){var t=this,n=this._lexer.token;return{kind:a.a.LIST,values:this.any(c.a.BRACKET_L,(function(){return t.parseValueLiteral(e)}),c.a.BRACKET_R),loc:this.loc(n)}},t.parseObject=function(e){var t=this,n=this._lexer.token;return{kind:a.a.OBJECT,fields:this.any(c.a.BRACE_L,(function(){return t.parseObjectField(e)}),c.a.BRACE_R),loc:this.loc(n)}},t.parseObjectField=function(e){var t=this._lexer.token,n=this.parseName();return this.expectToken(c.a.COLON),{kind:a.a.OBJECT_FIELD,name:n,value:this.parseValueLiteral(e),loc:this.loc(t)}},t.parseDirectives=function(e){for(var t=[];this.peek(c.a.AT);)t.push(this.parseDirective(e));return t},t.parseDirective=function(e){var t=this._lexer.token;return this.expectToken(c.a.AT),{kind:a.a.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e),loc:this.loc(t)}},t.parseTypeReference=function(){var e,t=this._lexer.token;return this.expectOptionalToken(c.a.BRACKET_L)?(e=this.parseTypeReference(),this.expectToken(c.a.BRACKET_R),e={kind:a.a.LIST_TYPE,type:e,loc:this.loc(t)}):e=this.parseNamedType(),this.expectOptionalToken(c.a.BANG)?{kind:a.a.NON_NULL_TYPE,type:e,loc:this.loc(t)}:e},t.parseNamedType=function(){var e=this._lexer.token;return{kind:a.a.NAMED_TYPE,name:this.parseName(),loc:this.loc(e)}},t.parseTypeSystemDefinition=function(){var e=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(e.kind===c.a.NAME)switch(e.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}throw this.unexpected(e)},t.peekDescription=function(){return this.peek(c.a.STRING)||this.peek(c.a.BLOCK_STRING)},t.parseDescription=function(){if(this.peekDescription())return this.parseStringLiteral()},t.parseSchemaDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("schema");var n=this.parseDirectives(!0),r=this.many(c.a.BRACE_L,this.parseOperationTypeDefinition,c.a.BRACE_R);return{kind:a.a.SCHEMA_DEFINITION,description:t,directives:n,operationTypes:r,loc:this.loc(e)}},t.parseOperationTypeDefinition=function(){var e=this._lexer.token,t=this.parseOperationType();this.expectToken(c.a.COLON);var n=this.parseNamedType();return{kind:a.a.OPERATION_TYPE_DEFINITION,operation:t,type:n,loc:this.loc(e)}},t.parseScalarTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("scalar");var n=this.parseName(),r=this.parseDirectives(!0);return{kind:a.a.SCALAR_TYPE_DEFINITION,description:t,name:n,directives:r,loc:this.loc(e)}},t.parseObjectTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("type");var n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),o=this.parseFieldsDefinition();return{kind:a.a.OBJECT_TYPE_DEFINITION,description:t,name:n,interfaces:r,directives:i,fields:o,loc:this.loc(e)}},t.parseImplementsInterfaces=function(){var e=[];if(this.expectOptionalKeyword("implements")){this.expectOptionalToken(c.a.AMP);do{var t;e.push(this.parseNamedType())}while(this.expectOptionalToken(c.a.AMP)||!0===(null===(t=this._options)||void 0===t?void 0:t.allowLegacySDLImplementsInterfaces)&&this.peek(c.a.NAME))}return e},t.parseFieldsDefinition=function(){var e;return!0===(null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLEmptyFields)&&this.peek(c.a.BRACE_L)&&this._lexer.lookahead().kind===c.a.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(c.a.BRACE_L,this.parseFieldDefinition,c.a.BRACE_R)},t.parseFieldDefinition=function(){var e=this._lexer.token,t=this.parseDescription(),n=this.parseName(),r=this.parseArgumentDefs();this.expectToken(c.a.COLON);var i=this.parseTypeReference(),o=this.parseDirectives(!0);return{kind:a.a.FIELD_DEFINITION,description:t,name:n,arguments:r,type:i,directives:o,loc:this.loc(e)}},t.parseArgumentDefs=function(){return this.optionalMany(c.a.PAREN_L,this.parseInputValueDef,c.a.PAREN_R)},t.parseInputValueDef=function(){var e=this._lexer.token,t=this.parseDescription(),n=this.parseName();this.expectToken(c.a.COLON);var r,i=this.parseTypeReference();this.expectOptionalToken(c.a.EQUALS)&&(r=this.parseValueLiteral(!0));var o=this.parseDirectives(!0);return{kind:a.a.INPUT_VALUE_DEFINITION,description:t,name:n,type:i,defaultValue:r,directives:o,loc:this.loc(e)}},t.parseInterfaceTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("interface");var n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),o=this.parseFieldsDefinition();return{kind:a.a.INTERFACE_TYPE_DEFINITION,description:t,name:n,interfaces:r,directives:i,fields:o,loc:this.loc(e)}},t.parseUnionTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("union");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseUnionMemberTypes();return{kind:a.a.UNION_TYPE_DEFINITION,description:t,name:n,directives:r,types:i,loc:this.loc(e)}},t.parseUnionMemberTypes=function(){var e=[];if(this.expectOptionalToken(c.a.EQUALS)){this.expectOptionalToken(c.a.PIPE);do{e.push(this.parseNamedType())}while(this.expectOptionalToken(c.a.PIPE))}return e},t.parseEnumTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("enum");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseEnumValuesDefinition();return{kind:a.a.ENUM_TYPE_DEFINITION,description:t,name:n,directives:r,values:i,loc:this.loc(e)}},t.parseEnumValuesDefinition=function(){return this.optionalMany(c.a.BRACE_L,this.parseEnumValueDefinition,c.a.BRACE_R)},t.parseEnumValueDefinition=function(){var e=this._lexer.token,t=this.parseDescription(),n=this.parseName(),r=this.parseDirectives(!0);return{kind:a.a.ENUM_VALUE_DEFINITION,description:t,name:n,directives:r,loc:this.loc(e)}},t.parseInputObjectTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("input");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseInputFieldsDefinition();return{kind:a.a.INPUT_OBJECT_TYPE_DEFINITION,description:t,name:n,directives:r,fields:i,loc:this.loc(e)}},t.parseInputFieldsDefinition=function(){return this.optionalMany(c.a.BRACE_L,this.parseInputValueDef,c.a.BRACE_R)},t.parseTypeSystemExtension=function(){var e=this._lexer.lookahead();if(e.kind===c.a.NAME)switch(e.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(e)},t.parseSchemaExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");var t=this.parseDirectives(!0),n=this.optionalMany(c.a.BRACE_L,this.parseOperationTypeDefinition,c.a.BRACE_R);if(0===t.length&&0===n.length)throw this.unexpected();return{kind:a.a.SCHEMA_EXTENSION,directives:t,operationTypes:n,loc:this.loc(e)}},t.parseScalarTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");var t=this.parseName(),n=this.parseDirectives(!0);if(0===n.length)throw this.unexpected();return{kind:a.a.SCALAR_TYPE_EXTENSION,name:t,directives:n,loc:this.loc(e)}},t.parseObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");var t=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseDirectives(!0),i=this.parseFieldsDefinition();if(0===n.length&&0===r.length&&0===i.length)throw this.unexpected();return{kind:a.a.OBJECT_TYPE_EXTENSION,name:t,interfaces:n,directives:r,fields:i,loc:this.loc(e)}},t.parseInterfaceTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");var t=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseDirectives(!0),i=this.parseFieldsDefinition();if(0===n.length&&0===r.length&&0===i.length)throw this.unexpected();return{kind:a.a.INTERFACE_TYPE_EXTENSION,name:t,interfaces:n,directives:r,fields:i,loc:this.loc(e)}},t.parseUnionTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseUnionMemberTypes();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:a.a.UNION_TYPE_EXTENSION,name:t,directives:n,types:r,loc:this.loc(e)}},t.parseEnumTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseEnumValuesDefinition();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:a.a.ENUM_TYPE_EXTENSION,name:t,directives:n,values:r,loc:this.loc(e)}},t.parseInputObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseInputFieldsDefinition();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:a.a.INPUT_OBJECT_TYPE_EXTENSION,name:t,directives:n,fields:r,loc:this.loc(e)}},t.parseDirectiveDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("directive"),this.expectToken(c.a.AT);var n=this.parseName(),r=this.parseArgumentDefs(),i=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");var o=this.parseDirectiveLocations();return{kind:a.a.DIRECTIVE_DEFINITION,description:t,name:n,arguments:r,repeatable:i,locations:o,loc:this.loc(e)}},t.parseDirectiveLocations=function(){this.expectOptionalToken(c.a.PIPE);var e=[];do{e.push(this.parseDirectiveLocation())}while(this.expectOptionalToken(c.a.PIPE));return e},t.parseDirectiveLocation=function(){var e=this._lexer.token,t=this.parseName();if(void 0!==l.a[t.value])return t;throw this.unexpected(e)},t.loc=function(e){var t;if(!0!==(null===(t=this._options)||void 0===t?void 0:t.noLocation))return new s.a(e,this._lexer.lastToken,this._lexer.source)},t.peek=function(e){return this._lexer.token.kind===e},t.expectToken=function(e){var t=this._lexer.token;if(t.kind===e)return this._lexer.advance(),t;throw Object(o.a)(this._lexer.source,t.start,"Expected ".concat(y(e),", found ").concat(g(t),"."))},t.expectOptionalToken=function(e){var t=this._lexer.token;if(t.kind===e)return this._lexer.advance(),t},t.expectKeyword=function(e){var t=this._lexer.token;if(t.kind!==c.a.NAME||t.value!==e)throw Object(o.a)(this._lexer.source,t.start,'Expected "'.concat(e,'", found ').concat(g(t),"."));this._lexer.advance()},t.expectOptionalKeyword=function(e){var t=this._lexer.token;return t.kind===c.a.NAME&&t.value===e&&(this._lexer.advance(),!0)},t.unexpected=function(e){var t=null!=e?e:this._lexer.token;return Object(o.a)(this._lexer.source,t.start,"Unexpected ".concat(g(t),"."))},t.any=function(e,t,n){this.expectToken(e);for(var r=[];!this.expectOptionalToken(n);)r.push(t.call(this));return r},t.optionalMany=function(e,t,n){if(this.expectOptionalToken(e)){var r=[];do{r.push(t.call(this))}while(!this.expectOptionalToken(n));return r}return[]},t.many=function(e,t,n){this.expectToken(e);var r=[];do{r.push(t.call(this))}while(!this.expectOptionalToken(n));return r},e}();function g(e){var t=e.value;return y(e.kind)+(null!=t?' "'.concat(t,'"'):"")}function y(e){return Object(p.b)(e)?'"'.concat(e,'"'):e}},function(e,t,n){"use strict";n.d(t,"c",(function(){return l})),n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return d}));var r=n(8),i=n(2),o=n(26),a=n(81),s=n(86),u=n(138),c=n(146);function l(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:u.a,l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new s.a(e),p=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{maxErrors:void 0};t||Object(r.a)(0,"Must provide document."),Object(a.a)(e);var f=Object.freeze({}),d=[],h=new c.b(e,t,l,(function(e){if(null!=p.maxErrors&&d.length>=p.maxErrors)throw d.push(new i.a("Too many validation errors, error limit reached. Validation aborted.")),f;d.push(e)})),m=Object(o.d)(n.map((function(e){return e(h)})));try{Object(o.c)(t,Object(s.b)(l,m))}catch(e){if(e!==f)throw e}return d}function p(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:u.b,r=[],i=new c.a(e,t,(function(e){r.push(e)})),a=n.map((function(e){return e(i)}));return Object(o.c)(e,Object(o.d)(a)),r}function f(e){var t=p(e);if(0!==t.length)throw new Error(t.map((function(e){return e.message})).join("\n\n"))}function d(e,t){var n=p(e,t);if(0!==n.length)throw new Error(n.map((function(e){return e.message})).join("\n\n"))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var r=n(72),i=n(58),o=n(14),a=n(4),s=n(17),u=n(31),c=n(82),l=n(1),p=n(13),f=n(0);function d(e,t){if(Object(f.L)(t)){var n=d(e,t.ofType);return(null==n?void 0:n.kind)===l.a.NULL?null:n}if(null===e)return{kind:l.a.NULL};if(void 0===e)return null;if(Object(f.J)(t)){var m=t.ofType;if(Object(c.a)(e)){for(var g=[],y=0,v=Object(i.a)(e);y span::-moz-selection,\n .CodeMirror-line > span > span::-moz-selection {\n background: ",";\n }\n .CodeMirror-line::selection,\n .CodeMirror-line > span::selection,\n .CodeMirror-line > span > span::selection {\n background: ",";\n }\n .CodeMirror-line::-moz-selection,\n .CodeMirror-line > span::-moz-selection,\n .CodeMirror-line > span > span::-moz-selection {\n background: ",";\n }\n\n .cm-searching {\n background: #ffa;\n background: rgba(255, 255, 0, 0.4);\n }\n\n /* IE7 hack to prevent it from returning funny offsetTops on the spans */\n .CodeMirror span {\n *vertical-align: text-bottom;\n }\n\n /* Used to force a border model for a node */\n .cm-force-border {\n padding-right: 0.1px;\n }\n\n @media print {\n /* Hide the cursor when printing */\n .CodeMirror div.CodeMirror-cursors {\n visibility: hidden;\n }\n }\n\n /* See issue #2901 */\n .cm-tab-wrap-hack:after {\n content: '';\n }\n\n /* Help users use markselection to safely style text background */\n span.CodeMirror-selectedtext {\n background: none;\n }\n\n .CodeMirror-dialog {\n background: inherit;\n color: inherit;\n left: 0;\n right: 0;\n overflow: hidden;\n padding: 0.1em 0.8em;\n position: absolute;\n z-index: 15;\n }\n\n .CodeMirror-dialog-top {\n border-bottom: 1px solid #eee;\n top: 0;\n }\n\n .CodeMirror-dialog-bottom {\n border-top: 1px solid #eee;\n bottom: 0;\n }\n\n .CodeMirror-dialog input {\n background: transparent;\n border: 1px solid #d3d6db;\n color: inherit;\n font-family: monospace;\n outline: none;\n width: 20em;\n }\n\n .CodeMirror-dialog button {\n font-size: 70%;\n }\n\n .CodeMirror-foldgutter {\n width: 0.7em;\n }\n .CodeMirror-foldgutter-open,\n .CodeMirror-foldgutter-folded {\n cursor: pointer;\n }\n .CodeMirror-foldgutter-open:after {\n content: '▾';\n }\n .CodeMirror-foldgutter-folded:after {\n content: '▸';\n }\n /* The lint marker gutter */\n .CodeMirror-lint-markers {\n width: 16px;\n }\n\n .CodeMirror-jump-token {\n cursor: pointer;\n text-decoration: underline;\n }\n"],["\n /* Comment */\n .cm-comment {\n color: ",";\n }\n\n /* Punctuation */\n .cm-punctuation {\n color: ",";\n }\n\n /* Proppery */\n .cm-property {\n color: ",";\n }\n\n /* Keyword */\n .cm-keyword {\n color: ",";\n }\n\n /* OperationName, FragmentName */\n .cm-def {\n color: ",";\n }\n\n /* FieldAlias */\n .cm-qualifier {\n color: ",";\n }\n\n /* ArgumentName and ObjectFieldName */\n .cm-attribute {\n color: ",";\n }\n\n /* Number */\n .cm-number {\n color: ",";\n }\n\n /* String */\n .cm-string {\n color: ",";\n }\n\n /* Boolean */\n .cm-builtin {\n color: ",";\n }\n\n /* EnumValue */\n .cm-string-2 {\n color: ",";\n }\n\n /* Variable */\n .cm-variable {\n color: ",";\n }\n\n /* Directive */\n .cm-meta {\n color: ",";\n }\n\n /* Type */\n .cm-atom {\n color: ",";\n }\n\n /* Comma */\n .cm-ws {\n color: ",";\n }\n position: relative;\n display: flex;\n flex: 1 1 0%;\n flex-flow: column;\n\n .CodeMirror {\n color: rgba(255, 255, 255, 0.3);\n font-family: ",";\n font-size: ",";\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n .CodeMirror-lines {\n padding: 20px 0;\n }\n\n .CodeMirror-gutters {\n border-right: none;\n }\n\n .CodeMirror span[role='presentation'] {\n color: ",";\n }\n\n /* CURSOR */\n\n .CodeMirror div.CodeMirror-cursor {\n background: ",";\n border-left: ",";\n border-bottom: ",";\n }\n /* Shown when moving in bi-directional text */\n .CodeMirror div.CodeMirror-secondarycursor {\n border-left: 1px solid silver;\n }\n .CodeMirror.cm-fat-cursor div.CodeMirror-cursor {\n background: rgba(255, 255, 255, 0.6);\n color: white;\n border: 0;\n width: auto;\n }\n .CodeMirror.cm-fat-cursor div.CodeMirror-cursors {\n z-index: 1;\n }\n\n .cm-animate-fat-cursor {\n -webkit-animation: blink 1.06s steps(1) infinite;\n animation: blink 1.06s steps(1) infinite;\n border: 0;\n width: auto;\n }\n @-webkit-keyframes blink {\n 0% {\n background: #7e7;\n }\n 50% {\n background: none;\n }\n 100% {\n background: #7e7;\n }\n }\n @keyframes blink {\n 0% {\n background: #7e7;\n }\n 50% {\n background: none;\n }\n 100% {\n background: #7e7;\n }\n }\n\n .CodeMirror-foldmarker {\n border-radius: 4px;\n background: #08f;\n background: linear-gradient(#43a8ff, #0f83e8);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2), inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n color: white;\n font-family: arial;\n font-size: 12px;\n line-height: 0;\n margin: 0 3px;\n padding: 0px 4px 1px;\n text-shadow: 0 -1px rgba(0, 0, 0, 0.1);\n }\n\n div.CodeMirror span.CodeMirror-matchingbracket {\n /* color: rgba(255, 255, 255, 0.4); */\n text-decoration: underline;\n }\n\n div.CodeMirror span.CodeMirror-nonmatchingbracket {\n color: rgb(242, 92, 84);\n }\n\n .toolbar-button {\n background: #fdfdfd;\n background: linear-gradient(#fbfbfb, #f8f8f8);\n border-color: #d3d3d3 #d0d0d0 #bababa;\n border-radius: 4px;\n border-style: solid;\n border-width: 0.5px;\n box-shadow: 0 1px 1px -1px rgba(0, 0, 0, 0.13), inset 0 1px #fff;\n color: #444;\n cursor: pointer;\n display: inline-block;\n margin: 0 5px 0;\n padding: 2px 8px 4px;\n text-decoration: none;\n }\n .toolbar-button:active {\n background: linear-gradient(#ececec, #d8d8d8);\n border-color: #cacaca #c9c9c9 #b0b0b0;\n box-shadow: 0 1px 0 #fff, inset 0 1px rgba(255, 255, 255, 0.2),\n inset 0 1px 1px rgba(0, 0, 0, 0.08);\n }\n .toolbar-button.error {\n background: linear-gradient(#fdf3f3, #e6d6d7);\n color: #b00;\n }\n\n .autoInsertedLeaf.cm-property {\n -webkit-animation-duration: 6s;\n animation-duration: 6s;\n -webkit-animation-name: insertionFade;\n animation-name: insertionFade;\n border-bottom: 2px solid rgba(255, 255, 255, 0);\n border-radius: 2px;\n margin: -2px -4px -1px;\n padding: 2px 4px 1px;\n }\n\n @-webkit-keyframes insertionFade {\n from,\n to {\n background: rgba(255, 255, 255, 0);\n border-color: rgba(255, 255, 255, 0);\n }\n\n 15%,\n 85% {\n background: #fbffc9;\n border-color: #f0f3c0;\n }\n }\n\n @keyframes insertionFade {\n from,\n to {\n background: rgba(255, 255, 255, 0);\n border-color: rgba(255, 255, 255, 0);\n }\n\n 15%,\n 85% {\n background: #fbffc9;\n border-color: #f0f3c0;\n }\n }\n\n .CodeMirror pre {\n padding: 0 4px; /* Horizontal padding of content */\n }\n\n .CodeMirror-scrollbar-filler,\n .CodeMirror-gutter-filler {\n background-color: white; /* The little square between H and V scrollbars */\n }\n\n /* GUTTER */\n\n .CodeMirror-gutters {\n background-color: transparent;\n border: none;\n white-space: nowrap;\n }\n .CodeMirror-linenumbers {\n background: ",";\n }\n .CodeMirror-linenumber {\n font-family: Open Sans, sans-serif;\n font-weight: 600;\n font-size: ",";\n color: ",";\n min-width: 20px;\n padding: 0 3px 0 5px;\n text-align: right;\n white-space: nowrap;\n }\n\n .CodeMirror-guttermarker {\n color: black;\n }\n .CodeMirror-guttermarker-subtle {\n color: #999;\n }\n\n .cm-tab {\n display: inline-block;\n text-decoration: inherit;\n }\n\n .CodeMirror-ruler {\n border-left: 1px solid #ccc;\n position: absolute;\n }\n .cm-negative {\n color: #d44;\n }\n .cm-positive {\n color: #292;\n }\n .cm-header,\n .cm-strong {\n font-weight: bold;\n }\n .cm-em {\n font-style: italic;\n }\n .cm-link {\n text-decoration: underline;\n }\n .cm-strikethrough {\n text-decoration: line-through;\n }\n\n .cm-s-default .cm-error {\n color: #f00;\n }\n .cm-invalidchar {\n color: #f00;\n }\n\n .CodeMirror-composing {\n border-bottom: 2px solid;\n }\n .CodeMirror-matchingtag {\n background: rgba(255, 150, 0, 0.3);\n }\n .CodeMirror-activeline-background {\n background: #e8f2ff;\n }\n\n /* The rest of this file contains styles related to the mechanics of\n the editor. You probably shouldn't touch them. */\n\n .CodeMirror {\n background: white;\n overflow: hidden;\n line-height: 1.6;\n }\n\n .CodeMirror-scroll {\n height: 100%;\n /* 30px is the magic margin used to hide the element's real scrollbars */\n /* See overflow: hidden in .CodeMirror */\n /* margin-bottom: -30px;\n margin-right: -30px; */\n outline: none; /* Prevent dragging from highlighting the element */\n overflow: hidden;\n /* padding-bottom: 30px; */\n position: relative;\n &:hover {\n overflow: scroll !important;\n }\n }\n .CodeMirror-sizer {\n border-right: 30px solid transparent;\n position: relative;\n }\n\n /* The fake, visible scrollbars. Used to force redraw during scrolling\n before actual scrolling happens, thus preventing shaking and\n flickering artifacts. */\n .CodeMirror-vscrollbar,\n .CodeMirror-hscrollbar,\n .CodeMirror-scrollbar-filler,\n .CodeMirror-gutter-filler {\n display: none !important;\n position: absolute;\n z-index: 6;\n }\n .CodeMirror-vscrollbar {\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n top: 0;\n }\n .CodeMirror-hscrollbar {\n bottom: 0;\n left: 0;\n overflow-x: scroll;\n overflow-y: hidden;\n }\n .CodeMirror-scrollbar-filler {\n right: 0;\n bottom: 0;\n }\n .CodeMirror-gutter-filler {\n left: 0;\n bottom: 0;\n }\n\n .CodeMirror-gutters {\n min-height: 100%;\n position: absolute;\n left: 0;\n top: 0;\n z-index: 3;\n margin-left: 3px;\n }\n .CodeMirror-gutter {\n display: inline-block;\n height: 100%;\n margin-bottom: -30px;\n vertical-align: top;\n white-space: normal;\n /* Hack to make IE7 behave */\n *zoom: 1;\n *display: inline;\n }\n .CodeMirror-gutter-wrapper {\n background: none !important;\n border: none !important;\n position: absolute;\n z-index: 4;\n }\n .CodeMirror-gutter-background {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 4;\n }\n .CodeMirror-gutter-elt {\n cursor: default;\n position: absolute;\n z-index: 4;\n }\n .CodeMirror-gutter-wrapper {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n .CodeMirror-lines {\n cursor: text;\n min-height: 1px; /* prevents collapsing before first draw */\n }\n .CodeMirror pre {\n -webkit-tap-highlight-color: transparent;\n /* Reset some styles that the rest of the page might have set */\n background: transparent;\n border-radius: 0;\n border-width: 0;\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n line-height: inherit;\n margin: 0;\n overflow: visible;\n position: relative;\n white-space: pre;\n word-wrap: normal;\n z-index: 2;\n }\n .CodeMirror-wrap pre {\n word-wrap: break-word;\n white-space: pre-wrap;\n word-break: normal;\n }\n\n .CodeMirror-linebackground {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 0;\n }\n\n .CodeMirror-linewidget {\n overflow: auto;\n position: relative;\n z-index: 2;\n }\n\n .CodeMirror-widget {\n }\n\n .CodeMirror-code {\n outline: none;\n }\n\n /* Force content-box sizing for the elements where we expect it */\n .CodeMirror-scroll,\n .CodeMirror-sizer,\n .CodeMirror-gutter,\n .CodeMirror-gutters,\n .CodeMirror-linenumber {\n box-sizing: content-box;\n }\n\n .CodeMirror-measure {\n height: 0;\n overflow: hidden;\n position: absolute;\n visibility: hidden;\n width: 100%;\n }\n\n .CodeMirror-cursor {\n position: absolute;\n }\n .CodeMirror-measure pre {\n position: static;\n }\n\n div.CodeMirror-cursors {\n position: relative;\n visibility: hidden;\n z-index: 3;\n }\n div.CodeMirror-dragcursors {\n visibility: visible;\n }\n\n .CodeMirror-focused div.CodeMirror-cursors {\n visibility: visible;\n }\n\n .CodeMirror-selected {\n background: ",";\n }\n .CodeMirror-focused .CodeMirror-selected {\n background: ",";\n }\n .CodeMirror-crosshair {\n cursor: crosshair;\n }\n .CodeMirror-line::-moz-selection,\n .CodeMirror-line > span::-moz-selection,\n .CodeMirror-line > span > span::-moz-selection {\n background: ",";\n }\n .CodeMirror-line::selection,\n .CodeMirror-line > span::selection,\n .CodeMirror-line > span > span::selection {\n background: ",";\n }\n .CodeMirror-line::-moz-selection,\n .CodeMirror-line > span::-moz-selection,\n .CodeMirror-line > span > span::-moz-selection {\n background: ",";\n }\n\n .cm-searching {\n background: #ffa;\n background: rgba(255, 255, 0, 0.4);\n }\n\n /* IE7 hack to prevent it from returning funny offsetTops on the spans */\n .CodeMirror span {\n *vertical-align: text-bottom;\n }\n\n /* Used to force a border model for a node */\n .cm-force-border {\n padding-right: 0.1px;\n }\n\n @media print {\n /* Hide the cursor when printing */\n .CodeMirror div.CodeMirror-cursors {\n visibility: hidden;\n }\n }\n\n /* See issue #2901 */\n .cm-tab-wrap-hack:after {\n content: '';\n }\n\n /* Help users use markselection to safely style text background */\n span.CodeMirror-selectedtext {\n background: none;\n }\n\n .CodeMirror-dialog {\n background: inherit;\n color: inherit;\n left: 0;\n right: 0;\n overflow: hidden;\n padding: 0.1em 0.8em;\n position: absolute;\n z-index: 15;\n }\n\n .CodeMirror-dialog-top {\n border-bottom: 1px solid #eee;\n top: 0;\n }\n\n .CodeMirror-dialog-bottom {\n border-top: 1px solid #eee;\n bottom: 0;\n }\n\n .CodeMirror-dialog input {\n background: transparent;\n border: 1px solid #d3d6db;\n color: inherit;\n font-family: monospace;\n outline: none;\n width: 20em;\n }\n\n .CodeMirror-dialog button {\n font-size: 70%;\n }\n\n .CodeMirror-foldgutter {\n width: 0.7em;\n }\n .CodeMirror-foldgutter-open,\n .CodeMirror-foldgutter-folded {\n cursor: pointer;\n }\n .CodeMirror-foldgutter-open:after {\n content: '▾';\n }\n .CodeMirror-foldgutter-folded:after {\n content: '▸';\n }\n /* The lint marker gutter */\n .CodeMirror-lint-markers {\n width: 16px;\n }\n\n .CodeMirror-jump-token {\n cursor: pointer;\n text-decoration: underline;\n }\n"])),(function(e){return e.theme.editorColours.comment}),(function(e){return e.theme.editorColours.punctuation}),(function(e){return e.theme.editorColours.property}),(function(e){return e.theme.editorColours.keyword}),(function(e){return e.theme.editorColours.def}),(function(e){return e.theme.editorColours.def}),(function(e){return e.theme.editorColours.attribute}),(function(e){return e.theme.editorColours.number}),(function(e){return e.theme.editorColours.string}),(function(e){return e.theme.editorColours.builtin}),(function(e){return e.theme.editorColours.string2}),(function(e){return e.theme.editorColours.variable}),(function(e){return e.theme.editorColours.meta}),(function(e){return e.theme.editorColours.atom}),(function(e){return e.theme.editorColours.ws}),(function(e){return e.theme.settings["editor.fontFamily"]}),(function(e){return e.theme.settings["editor.fontSize"]+"px"}),(function(e){return e.theme.colours.text}),(function(e){return"block"===e.theme.settings["editor.cursorShape"]?e.theme.editorColours.cursorColor:"transparent"}),(function(e){return"line"===e.theme.settings["editor.cursorShape"]?"1px solid "+e.theme.editorColours.cursorColor:0}),(function(e){return"underline"===e.theme.settings["editor.cursorShape"]?"1px solid "+e.theme.editorColours.cursorColor:0}),(function(e){return e.theme.editorColours.editorBackground}),(function(e){return e.theme.settings["editor.fontSize"]-2+"px"}),(function(e){return e.theme.colours.textInactive}),(function(e){return e.theme.editorColours.selection}),(function(e){return e.theme.editorColours.selection}),(function(e){return e.theme.editorColours.selection}),(function(e){return e.theme.editorColours.selection}),(function(e){return e.theme.editorColours.selection})),f=l.createGlobalStyle(s||(s=i(['\n *::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 7px;\n height: 7px;\n }\n *::-webkit-scrollbar-track-piece {\n background-color: rgba(255, 255, 255, 0);\n }\n *::-webkit-scrollbar-track {\n background-color: inherit;\n }\n *::-webkit-scrollbar-thumb {\n max-height: 100px;\n border-radius: 3px;\n background-color: rgba(1, 1, 1, 0.23);\n }\n *::-webkit-scrollbar-thumb:hover {\n background-color: rgba(1, 1, 1, 0.35);\n }\n *::-webkit-scrollbar-thumb:active {\n background-color: rgba(1, 1, 1, 0.48);\n }\n *::-webkit-scrollbar-corner {\n background: rgba(0,0,0,0);\n }\n\n\n .CodeMirror-lint-tooltip, .CodeMirror-info {\n background-color: white;\n border-radius: 4px 4px 4px 4px;\n border: 1px solid black;\n color: #09141C;\n font-family: Open Sans, monospace;\n font-size: 14px;\n max-width: 600px;\n opacity: 0;\n overflow: hidden;\n padding: 12px 14px;\n position: fixed;\n -webkit-transition: opacity 0.4s;\n transition: opacity 0.4s;\n z-index: 100;\n }\n\n .CodeMirror-lint-message-error,\n .CodeMirror-lint-message-warning {\n padding-left: 18px;\n }\n\n .CodeMirror-lint-mark-error,\n .CodeMirror-lint-mark-warning {\n background-position: left bottom;\n background-repeat: repeat-x;\n }\n\n .CodeMirror-lint-mark-error {\n background-image: url(\'data:image/svg+xml;utf8,\n \');\n }\n\n .CodeMirror-lint-mark-warning {\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=\');\n }\n\n .CodeMirror-lint-marker-error,\n .CodeMirror-lint-marker-warning {\n background-position: center center;\n background-repeat: no-repeat;\n cursor: pointer;\n display: inline-block;\n height: 16px;\n position: relative;\n vertical-align: middle;\n width: 16px;\n }\n\n .CodeMirror-lint-message-error,\n .CodeMirror-lint-message-warning {\n background-position: top left;\n background-repeat: no-repeat;\n padding-left: 22px;\n }\n\n .CodeMirror-lint-marker-error,\n .CodeMirror-lint-message-error {\n background-image: url(\'data:image/svg+xml;utf8,\n \');\n background-position: 0 50%;\n }\n\n .CodeMirror-lint-marker-warning,\n .CodeMirror-lint-message-warning {\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=\');\n }\n\n .CodeMirror-lint-marker-multiple {\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC\');\n background-position: right bottom;\n background-repeat: no-repeat;\n width: 100%;\n height: 100%;\n }\n\n .CodeMirror-lint-mark-error {\n &:before {\n content: \'\';\n width: 50px;\n height: 14px;\n position: absolute;\n background: #FF4F56;\n left: -80px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 10;\n }\n }\n\n .CodeMirror-lint-message-error span {\n color: white;\n background: #FF4F56;\n font-family: \'Source Code Pro\', monospace;\n font-weight: 600;\n border-radius: 2px;\n padding: 0 4px;\n }\n\n .CodeMirror-hints {\n background: white;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n font-size: 14px;\n list-style: none;\n margin-left: -6px;\n margin: 0;\n max-height: 20em;\n overflow: hidden;\n padding: 0;\n position: absolute;\n z-index: 10;\n border-radius: 2px;\n top: 0;\n left: 0;\n &:hover {\n overflow-y: overlay;\n }\n }\n\n .CodeMirror-hints-wrapper {\n font-family: \'Open Sans\', sans-serif;\n background: white;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);\n margin-left: -6px;\n position: absolute;\n z-index: 10;\n }\n\n .CodeMirror-hints-wrapper .CodeMirror-hints {\n box-shadow: none;\n margin-left: 0;\n position: relative;\n z-index: 0;\n }\n\n .CodeMirror-hint {\n color: rgba(15, 32, 45, 0.6);\n cursor: pointer;\n margin: 0;\n max-width: 300px;\n overflow: hidden;\n padding: 6px 12px;\n white-space: pre;\n }\n\n li.CodeMirror-hint-active {\n background-color: #2a7ed3;\n border-top-color: white;\n color: white;\n }\n\n .CodeMirror-hint-information {\n border-top: solid 1px rgba(0, 0, 0, 0.1);\n max-width: 300px;\n padding: 10px 12px;\n position: relative;\n z-index: 1;\n background-color: rgba(15, 32, 45, 0.03);\n font-size: 14px;\n }\n\n .CodeMirror-hint-information:first-child {\n border-bottom: solid 1px #c0c0c0;\n border-top: none;\n margin-bottom: -1px;\n }\n\n .CodeMirror-hint-information .content {\n color: rgba(15, 32, 45, 0.6);\n box-orient: vertical;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n line-clamp: 3;\n line-height: 1.36;\n max-height: 59px;\n overflow: hidden;\n text-overflow: -o-ellipsis-lastline;\n }\n\n .CodeMirror-hint-information .content p:first-child {\n margin-top: 0;\n }\n\n .CodeMirror-hint-information .content p:last-child {\n margin-bottom: 0;\n }\n\n .CodeMirror-hint-information .infoType {\n color: rgb(241, 143, 1);\n cursor: pointer;\n display: inline;\n margin-right: 0.5em;\n }\n'],['\n *::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 7px;\n height: 7px;\n }\n *::-webkit-scrollbar-track-piece {\n background-color: rgba(255, 255, 255, 0);\n }\n *::-webkit-scrollbar-track {\n background-color: inherit;\n }\n *::-webkit-scrollbar-thumb {\n max-height: 100px;\n border-radius: 3px;\n background-color: rgba(1, 1, 1, 0.23);\n }\n *::-webkit-scrollbar-thumb:hover {\n background-color: rgba(1, 1, 1, 0.35);\n }\n *::-webkit-scrollbar-thumb:active {\n background-color: rgba(1, 1, 1, 0.48);\n }\n *::-webkit-scrollbar-corner {\n background: rgba(0,0,0,0);\n }\n\n\n .CodeMirror-lint-tooltip, .CodeMirror-info {\n background-color: white;\n border-radius: 4px 4px 4px 4px;\n border: 1px solid black;\n color: #09141C;\n font-family: Open Sans, monospace;\n font-size: 14px;\n max-width: 600px;\n opacity: 0;\n overflow: hidden;\n padding: 12px 14px;\n position: fixed;\n -webkit-transition: opacity 0.4s;\n transition: opacity 0.4s;\n z-index: 100;\n }\n\n .CodeMirror-lint-message-error,\n .CodeMirror-lint-message-warning {\n padding-left: 18px;\n }\n\n .CodeMirror-lint-mark-error,\n .CodeMirror-lint-mark-warning {\n background-position: left bottom;\n background-repeat: repeat-x;\n }\n\n .CodeMirror-lint-mark-error {\n background-image: url(\'data:image/svg+xml;utf8,\n \');\n }\n\n .CodeMirror-lint-mark-warning {\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=\');\n }\n\n .CodeMirror-lint-marker-error,\n .CodeMirror-lint-marker-warning {\n background-position: center center;\n background-repeat: no-repeat;\n cursor: pointer;\n display: inline-block;\n height: 16px;\n position: relative;\n vertical-align: middle;\n width: 16px;\n }\n\n .CodeMirror-lint-message-error,\n .CodeMirror-lint-message-warning {\n background-position: top left;\n background-repeat: no-repeat;\n padding-left: 22px;\n }\n\n .CodeMirror-lint-marker-error,\n .CodeMirror-lint-message-error {\n background-image: url(\'data:image/svg+xml;utf8,\n \');\n background-position: 0 50%;\n }\n\n .CodeMirror-lint-marker-warning,\n .CodeMirror-lint-message-warning {\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=\');\n }\n\n .CodeMirror-lint-marker-multiple {\n background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC\');\n background-position: right bottom;\n background-repeat: no-repeat;\n width: 100%;\n height: 100%;\n }\n\n .CodeMirror-lint-mark-error {\n &:before {\n content: \'\';\n width: 50px;\n height: 14px;\n position: absolute;\n background: #FF4F56;\n left: -80px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 10;\n }\n }\n\n .CodeMirror-lint-message-error span {\n color: white;\n background: #FF4F56;\n font-family: \'Source Code Pro\', monospace;\n font-weight: 600;\n border-radius: 2px;\n padding: 0 4px;\n }\n\n .CodeMirror-hints {\n background: white;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n font-size: 14px;\n list-style: none;\n margin-left: -6px;\n margin: 0;\n max-height: 20em;\n overflow: hidden;\n padding: 0;\n position: absolute;\n z-index: 10;\n border-radius: 2px;\n top: 0;\n left: 0;\n &:hover {\n overflow-y: overlay;\n }\n }\n\n .CodeMirror-hints-wrapper {\n font-family: \'Open Sans\', sans-serif;\n background: white;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);\n margin-left: -6px;\n position: absolute;\n z-index: 10;\n }\n\n .CodeMirror-hints-wrapper .CodeMirror-hints {\n box-shadow: none;\n margin-left: 0;\n position: relative;\n z-index: 0;\n }\n\n .CodeMirror-hint {\n color: rgba(15, 32, 45, 0.6);\n cursor: pointer;\n margin: 0;\n max-width: 300px;\n overflow: hidden;\n padding: 6px 12px;\n white-space: pre;\n }\n\n li.CodeMirror-hint-active {\n background-color: #2a7ed3;\n border-top-color: white;\n color: white;\n }\n\n .CodeMirror-hint-information {\n border-top: solid 1px rgba(0, 0, 0, 0.1);\n max-width: 300px;\n padding: 10px 12px;\n position: relative;\n z-index: 1;\n background-color: rgba(15, 32, 45, 0.03);\n font-size: 14px;\n }\n\n .CodeMirror-hint-information:first-child {\n border-bottom: solid 1px #c0c0c0;\n border-top: none;\n margin-bottom: -1px;\n }\n\n .CodeMirror-hint-information .content {\n color: rgba(15, 32, 45, 0.6);\n box-orient: vertical;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n line-clamp: 3;\n line-height: 1.36;\n max-height: 59px;\n overflow: hidden;\n text-overflow: -o-ellipsis-lastline;\n }\n\n .CodeMirror-hint-information .content p:first-child {\n margin-top: 0;\n }\n\n .CodeMirror-hint-information .content p:last-child {\n margin-bottom: 0;\n }\n\n .CodeMirror-hint-information .infoType {\n color: rgb(241, 143, 1);\n cursor: pointer;\n display: inline;\n margin-right: 0.5em;\n }\n']))),d=l.styled.div(u||(u=i(["\n color: #141823;\n display: flex;\n flex-direction: row;\n font-family: system, -apple-system, 'San Francisco', '.SFNSDisplay-Regular',\n 'Segoe UI', Segoe, 'Segoe WP', 'Helvetica Neue', helvetica, 'Lucida Grande',\n arial, sans-serif;\n font-size: 14px;\n height: 100%;\n margin: 0;\n overflow: hidden;\n width: 100%;\n"],["\n color: #141823;\n display: flex;\n flex-direction: row;\n font-family: system, -apple-system, 'San Francisco', '.SFNSDisplay-Regular',\n 'Segoe UI', Segoe, 'Segoe WP', 'Helvetica Neue', helvetica, 'Lucida Grande',\n arial, sans-serif;\n font-size: 14px;\n height: 100%;\n margin: 0;\n overflow: hidden;\n width: 100%;\n"]))),h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.getWidth=function(){return t.graphqlContainer.offsetWidth},t.setGraphqlContainer=function(e){t.graphqlContainer=e},t}return o(t,e),t.prototype.render=function(){return c.createElement(d,{ref:this.setGraphqlContainer},this.props.children)},t}(c.PureComponent);t.Container=h,t.default=function(e){var t=e.children;return c.createElement(p,{onMouseMove:function(e){if(e.target.classList.contains("CodeMirror-lint-mark-error"))for(var t=document.getElementsByClassName("CodeMirror-lint-message-error"),n=0,r=Array.from(t);n$1")}}},t,c.createElement(f,null))}},function(e,t,n){!function(e){"use strict";var t,n,r=e.Pos;function i(e,t){for(var n=function(e){var t=e.flags;return null!=t?t:(e.ignoreCase?"i":"")+(e.global?"g":"")+(e.multiline?"m":"")}(e),r=n,i=0;il);p++){var f=e.getLine(c++);s=null==s?f:s+"\n"+f}u*=2,t.lastIndex=n.ch;var d=t.exec(s);if(d){var h=s.slice(0,d.index).split("\n"),m=d[0].split("\n"),g=n.line+h.length-1,y=h[h.length-1].length;return{from:r(g,y),to:r(g+m.length-1,1==m.length?y+m[0].length:m[m.length-1].length),match:d}}}}function u(e,t,n){for(var r,i=0;i<=e.length;){t.lastIndex=i;var o=t.exec(e);if(!o)break;var a=o.index+o[0].length;if(a>e.length-n)break;(!r||a>r.index+r[0].length)&&(r=o),i=o.index+1}return r}function c(e,t,n){t=i(t,"g");for(var o=n.line,a=n.ch,s=e.firstLine();o>=s;o--,a=-1){var c=e.getLine(o),l=u(c,t,a<0?0:c.length-a);if(l)return{from:r(o,l.index),to:r(o,l.index+l[0].length),match:l}}}function l(e,t,n){if(!o(t))return c(e,t,n);t=i(t,"gm");for(var a,s=1,l=e.getLine(n.line).length-n.ch,p=n.line,f=e.firstLine();p>=f;){for(var d=0;d=f;d++){var h=e.getLine(p--);a=null==a?h:h+"\n"+a}s*=2;var m=u(a,t,l);if(m){var g=a.slice(0,m.index).split("\n"),y=m[0].split("\n"),v=p+g.length,b=g[g.length-1].length;return{from:r(v,b),to:r(v+y.length-1,1==y.length?b+y[0].length:y[y.length-1].length),match:m}}}}function p(e,t,n,r){if(e.length==t.length)return n;for(var i=0,o=n+Math.max(0,e.length-t.length);;){if(i==o)return i;var a=i+o>>1,s=r(e.slice(0,a)).length;if(s==n)return a;s>n?o=a:i=a+1}}function f(e,i,o,a){if(!i.length)return null;var s=a?t:n,u=s(i).split(/\r|\n\r?/);e:for(var c=o.line,l=o.ch,f=e.lastLine()+1-u.length;c<=f;c++,l=0){var d=e.getLine(c).slice(l),h=s(d);if(1==u.length){var m=h.indexOf(u[0]);if(-1==m)continue e;return o=p(d,h,m,s)+l,{from:r(c,p(d,h,m,s)+l),to:r(c,p(d,h,m+u[0].length,s)+l)}}var g=h.length-u[0].length;if(h.slice(g)==u[0]){for(var y=1;y=f;c--,l=-1){var d=e.getLine(c);l>-1&&(d=d.slice(0,l));var h=s(d);if(1==u.length){var m=h.lastIndexOf(u[0]);if(-1==m)continue e;return{from:r(c,p(d,h,m,s)),to:r(c,p(d,h,m+u[0].length,s))}}var g=u[u.length-1];if(h.slice(0,g.length)==g){var y=1;for(o=c-u.length+1;y0);)r.push({anchor:i.from(),head:i.to()});r.length&&this.setSelections(r,0)}))}(n(16))},function(e,t,n){!function(e){function t(t,n,r){var i,o=t.getWrapperElement();return(i=o.appendChild(document.createElement("div"))).className=r?"CodeMirror-dialog CodeMirror-dialog-bottom":"CodeMirror-dialog CodeMirror-dialog-top","string"==typeof n?i.innerHTML=n:i.appendChild(n),e.addClass(o,"dialog-opened"),i}function n(e,t){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=t}e.defineExtension("openDialog",(function(r,i,o){o||(o={}),n(this,null);var a=t(this,r,o.bottom),s=!1,u=this;function c(t){if("string"==typeof t)p.value=t;else{if(s)return;s=!0,e.rmClass(a.parentNode,"dialog-opened"),a.parentNode.removeChild(a),u.focus(),o.onClose&&o.onClose(a)}}var l,p=a.getElementsByTagName("input")[0];return p?(p.focus(),o.value&&(p.value=o.value,!1!==o.selectValueOnOpen&&p.select()),o.onInput&&e.on(p,"input",(function(e){o.onInput(e,p.value,c)})),o.onKeyUp&&e.on(p,"keyup",(function(e){o.onKeyUp(e,p.value,c)})),e.on(p,"keydown",(function(t){o&&o.onKeyDown&&o.onKeyDown(t,p.value,c)||((27==t.keyCode||!1!==o.closeOnEnter&&13==t.keyCode)&&(p.blur(),e.e_stop(t),c()),13==t.keyCode&&i(p.value,t))})),!1!==o.closeOnBlur&&e.on(a,"focusout",(function(e){null!==e.relatedTarget&&c()}))):(l=a.getElementsByTagName("button")[0])&&(e.on(l,"click",(function(){c(),u.focus()})),!1!==o.closeOnBlur&&e.on(l,"blur",c),l.focus()),c})),e.defineExtension("openConfirm",(function(r,i,o){n(this,null);var a=t(this,r,o&&o.bottom),s=a.getElementsByTagName("button"),u=!1,c=this,l=1;function p(){u||(u=!0,e.rmClass(a.parentNode,"dialog-opened"),a.parentNode.removeChild(a),c.focus())}s[0].focus();for(var f=0;f"']/,r=/[&<>"']/g,i=/[<>"']|&(?!#?\w+;)/,o=/[<>"']|&(?!#?\w+;)/g,a={"&":"&","<":"<",">":">",'"':""","'":"'"},s=e=>a[e];const u=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function c(e){return e.replace(u,(e,t)=>"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):"")}const l=/(^|[^\[])\^/g;const p=/[^\w:]/g,f=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;const d={},h=/^[^:]+:\/*[^/]*$/,m=/^([^:]+:)[\s\S]*$/,g=/^([^:]+:\/*[^/]*)[\s\S]*$/;function y(e,t){d[" "+e]||(h.test(e)?d[" "+e]=e+"/":d[" "+e]=v(e,"/",!0));const n=-1===(e=d[" "+e]).indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(m,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(g,"$1")+t:e+t}function v(e,t,n){const r=e.length;if(0===r)return"";let i=0;for(;i(r=(r=r.source||r).replace(l,"$1"),e=e.replace(t,r),n),getRegex:()=>new RegExp(e,t)};return n},cleanUrl:function(e,t,n){if(e){let e;try{e=decodeURIComponent(c(n)).replace(p,"").toLowerCase()}catch(e){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!f.test(n)&&(n=y(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(e){return null}return n},resolveUrl:y,noopTest:{exec:function(){}},merge:function(e){let t,n,r=1;for(;r{let r=!1,i=t;for(;--i>=0&&"\\"===n[i];)r=!r;return r?"|":" |"}).split(/ \|/);let r=0;if(n.length>t)n.splice(t);else for(;n.length31&&!this.state.collapsed&&this.props.collapsable&&this.setState({collapsed:!0})}},t.prototype.render=function(){var e=this.props,t=e.type,n=e.clickable,r=e.className,i=e.beforeNode,o=e.afterNode,s=e.showParentName,u=e.isActive,f=c.isType(t),d=s&&t.parent?a.createElement("span",null,t.parent.name,".",a.createElement("b",null,t.name)):t.name;return a.createElement(w,{active:u,clickable:n,className:"doc-category-item"+(r||""),onClick:this.onClick,ref:this.setRef},i,i&&" ",!f&&a.createElement("span",null,a.createElement("span",{className:"field-name"},d),t.args&&t.args.length>0&&["(",a.createElement("span",{key:"args"},this.state.collapsed?a.createElement(S,null,"..."):t.args.map((function(e){return a.createElement(l.default,{key:e.name,arg:e})}))),")"],": "),a.createElement("span",{className:"type-name"},function e(t){if(t instanceof c.GraphQLNonNull)return a.createElement("span",null,e(t.ofType),"!");if(t instanceof c.GraphQLList)return a.createElement("span",null,"[",e(t.ofType),"]");return a.createElement("span",null,t.name)}(t.type||t)),void 0!==t.defaultValue?a.createElement(A,null," ","= ",a.createElement("span",null,""+JSON.stringify(t.defaultValue,null,2))):void 0,n&&a.createElement(k,null,a.createElement(p.Triangle,null)),o&&" ",o)},t.defaultProps={clickable:!0,collapsable:!1},t}(a.Component);var b=g.createSelector([function(e,t){var n=t.x,r=t.y,i=h.getSessionDocsState(e),o=m.getSelectedSessionIdFromRoot(e);if(i){var a=i.navStack.get(n);if(a){var s=a.get("x")===n&&a.get("y")===r;return{isActive:s,keyMove:i.keyMove,lastActive:s&&n===i.navStack.length-1,sessionId:o}}}return{isActive:!1,keyMove:!1,lastActive:!1,sessionId:o}}],(function(e){return e}));t.default=u.connect(b,(function(e){return s.bindActionCreators({addStack:d.addStack},e)}))(f.toJS(v));var E,x,D,C,w=y.styled("div")(E||(E=o(["\n position: relative;\n padding: 6px 16px;\n overflow: auto;\n font-size: 14px;\n transition: 0.1s background-color;\n background: ",";\n\n cursor: ",";\n\n &:hover {\n color: ",";\n background: #2a7ed3;\n .field-name,\n .type-name,\n .arg-name,\n span {\n color: "," !important;\n }\n }\n b {\n font-weight: 600;\n }\n"],["\n position: relative;\n padding: 6px 16px;\n overflow: auto;\n font-size: 14px;\n transition: 0.1s background-color;\n background: ",";\n\n cursor: ",";\n\n &:hover {\n color: ",";\n background: #2a7ed3;\n .field-name,\n .type-name,\n .arg-name,\n span {\n color: "," !important;\n }\n }\n b {\n font-weight: 600;\n }\n"])),(function(e){return e.active?e.theme.colours.black07:e.theme.colours.white}),(function(e){return e.clickable?"pointer":"select"}),(function(e){return e.theme.colours.white}),(function(e){return e.theme.colours.white})),S=y.styled.span(x||(x=o(["\n font-weight: 600;\n"],["\n font-weight: 600;\n"]))),k=y.styled.div(D||(D=o(["\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n"],["\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n"]))),A=y.styled.span(C||(C=o(["\n color: ",";\n span {\n color: #1f61a9;\n }\n"],["\n color: ",";\n span {\n color: #1f61a9;\n }\n"])),(function(e){return e.theme.colours.black30}))},function(e,t,n){"use strict";function r(e){return null==e}e.exports.isNothing=r,e.exports.isObject=function(e){return"object"==typeof e&&null!==e},e.exports.toArray=function(e){return Array.isArray(e)?e:r(e)?[]:[e]},e.exports.repeat=function(e,t){var n,r="";for(n=0;n=0&&t%1==0||"function"==typeof e[r.b]}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(2);function i(e,t,n){var i;return Array.isArray(e.path)?e:new r.a(e.message,null!==(i=e.nodes)&&void 0!==i?i:t,e.source,e.positions,n,e)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(25),i=n(8);function o(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"GraphQL request",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{line:1,column:1};this.body=e,this.name=t,this.locationOffset=n,this.locationOffset.line>0||Object(i.a)(0,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||Object(i.a)(0,"column in locationOffset is 1-indexed and must be positive.")}var t,n,a;return t=e,(n=[{key:r.c,get:function(){return"Source"}}])&&o(t.prototype,n),a&&o(t,a),e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return u}));var r=n(45),i=n(24),o=n(5),a=n(53),s=function(){function e(e){var t=new i.b(o.a.SOF,0,0,0,0,null);this.source=e,this.lastToken=t,this.token=t,this.line=1,this.lineStart=0}var t=e.prototype;return t.advance=function(){return this.lastToken=this.token,this.token=this.lookahead()},t.lookahead=function(){var e=this.token;if(e.kind!==o.a.EOF)do{var t;e=null!==(t=e.next)&&void 0!==t?t:e.next=l(this,e)}while(e.kind===o.a.COMMENT);return e},e}();function u(e){return e===o.a.BANG||e===o.a.DOLLAR||e===o.a.AMP||e===o.a.PAREN_L||e===o.a.PAREN_R||e===o.a.SPREAD||e===o.a.COLON||e===o.a.EQUALS||e===o.a.AT||e===o.a.BRACKET_L||e===o.a.BRACKET_R||e===o.a.BRACE_L||e===o.a.PIPE||e===o.a.BRACE_R}function c(e){return isNaN(e)?o.a.EOF:e<127?JSON.stringify(String.fromCharCode(e)):'"\\u'.concat(("00"+e.toString(16).toUpperCase()).slice(-4),'"')}function l(e,t){var n=e.source,s=n.body,u=s.length,l=function(e,t,n){var r=e.length,i=t;for(;i=u)return new i.b(o.a.EOF,u,u,d,h,t);var m=s.charCodeAt(l);switch(m){case 33:return new i.b(o.a.BANG,l,l+1,d,h,t);case 35:return function(e,t,n,r,a){var s,u=e.body,c=t;do{s=u.charCodeAt(++c)}while(!isNaN(s)&&(s>31||9===s));return new i.b(o.a.COMMENT,t,c,n,r,a,u.slice(t+1,c))}(n,l,d,h,t);case 36:return new i.b(o.a.DOLLAR,l,l+1,d,h,t);case 38:return new i.b(o.a.AMP,l,l+1,d,h,t);case 40:return new i.b(o.a.PAREN_L,l,l+1,d,h,t);case 41:return new i.b(o.a.PAREN_R,l,l+1,d,h,t);case 46:if(46===s.charCodeAt(l+1)&&46===s.charCodeAt(l+2))return new i.b(o.a.SPREAD,l,l+3,d,h,t);break;case 58:return new i.b(o.a.COLON,l,l+1,d,h,t);case 61:return new i.b(o.a.EQUALS,l,l+1,d,h,t);case 64:return new i.b(o.a.AT,l,l+1,d,h,t);case 91:return new i.b(o.a.BRACKET_L,l,l+1,d,h,t);case 93:return new i.b(o.a.BRACKET_R,l,l+1,d,h,t);case 123:return new i.b(o.a.BRACE_L,l,l+1,d,h,t);case 124:return new i.b(o.a.PIPE,l,l+1,d,h,t);case 125:return new i.b(o.a.BRACE_R,l,l+1,d,h,t);case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:case 76:case 77:case 78:case 79:case 80:case 81:case 82:case 83:case 84:case 85:case 86:case 87:case 88:case 89:case 90:case 95:case 97:case 98:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:return function(e,t,n,r,a){var s=e.body,u=s.length,c=t+1,l=0;for(;c!==u&&!isNaN(l=s.charCodeAt(c))&&(95===l||l>=48&&l<=57||l>=65&&l<=90||l>=97&&l<=122);)++c;return new i.b(o.a.NAME,t,c,n,r,a,s.slice(t,c))}(n,l,d,h,t);case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return function(e,t,n,a,s,u){var l=e.body,f=n,d=t,h=!1;45===f&&(f=l.charCodeAt(++d));if(48===f){if((f=l.charCodeAt(++d))>=48&&f<=57)throw Object(r.a)(e,d,"Invalid number, unexpected digit after 0: ".concat(c(f),"."))}else d=p(e,d,f),f=l.charCodeAt(d);46===f&&(h=!0,f=l.charCodeAt(++d),d=p(e,d,f),f=l.charCodeAt(d));69!==f&&101!==f||(h=!0,43!==(f=l.charCodeAt(++d))&&45!==f||(f=l.charCodeAt(++d)),d=p(e,d,f),f=l.charCodeAt(d));if(46===f||function(e){return 95===e||e>=65&&e<=90||e>=97&&e<=122}(f))throw Object(r.a)(e,d,"Invalid number, expected digit but got: ".concat(c(f),"."));return new i.b(h?o.a.FLOAT:o.a.INT,t,d,a,s,u,l.slice(t,d))}(n,l,m,d,h,t);case 34:return 34===s.charCodeAt(l+1)&&34===s.charCodeAt(l+2)?function(e,t,n,s,u,l){var p=e.body,f=t+3,d=f,h=0,m="";for(;f=48&&a<=57){do{a=i.charCodeAt(++o)}while(a>=48&&a<=57);return o}throw Object(r.a)(e,o,"Invalid number, expected digit but got: ".concat(c(a),"."))}function f(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}},function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return f}));var r=n(56),i=n(1),o=n(24),a=n(26),s=n(0),u=n(12),c=n(33),l=function(){function e(e,t,n){this._schema=e,this._typeStack=[],this._parentTypeStack=[],this._inputTypeStack=[],this._fieldDefStack=[],this._defaultValueStack=[],this._directive=null,this._argument=null,this._enumValue=null,this._getFieldDef=null!=t?t:p,n&&(Object(s.G)(n)&&this._inputTypeStack.push(n),Object(s.D)(n)&&this._parentTypeStack.push(n),Object(s.O)(n)&&this._typeStack.push(n))}var t=e.prototype;return t.getType=function(){if(this._typeStack.length>0)return this._typeStack[this._typeStack.length-1]},t.getParentType=function(){if(this._parentTypeStack.length>0)return this._parentTypeStack[this._parentTypeStack.length-1]},t.getInputType=function(){if(this._inputTypeStack.length>0)return this._inputTypeStack[this._inputTypeStack.length-1]},t.getParentInputType=function(){if(this._inputTypeStack.length>1)return this._inputTypeStack[this._inputTypeStack.length-2]},t.getFieldDef=function(){if(this._fieldDefStack.length>0)return this._fieldDefStack[this._fieldDefStack.length-1]},t.getDefaultValue=function(){if(this._defaultValueStack.length>0)return this._defaultValueStack[this._defaultValueStack.length-1]},t.getDirective=function(){return this._directive},t.getArgument=function(){return this._argument},t.getEnumValue=function(){return this._enumValue},t.enter=function(e){var t=this._schema;switch(e.kind){case i.a.SELECTION_SET:var n=Object(s.A)(this.getType());this._parentTypeStack.push(Object(s.D)(n)?n:void 0);break;case i.a.FIELD:var o,a,u=this.getParentType();u&&(o=this._getFieldDef(t,u,e))&&(a=o.type),this._fieldDefStack.push(o),this._typeStack.push(Object(s.O)(a)?a:void 0);break;case i.a.DIRECTIVE:this._directive=t.getDirective(e.name.value);break;case i.a.OPERATION_DEFINITION:var l;switch(e.operation){case"query":l=t.getQueryType();break;case"mutation":l=t.getMutationType();break;case"subscription":l=t.getSubscriptionType()}this._typeStack.push(Object(s.N)(l)?l:void 0);break;case i.a.INLINE_FRAGMENT:case i.a.FRAGMENT_DEFINITION:var p=e.typeCondition,f=p?Object(c.a)(t,p):Object(s.A)(this.getType());this._typeStack.push(Object(s.O)(f)?f:void 0);break;case i.a.VARIABLE_DEFINITION:var d=Object(c.a)(t,e.type);this._inputTypeStack.push(Object(s.G)(d)?d:void 0);break;case i.a.ARGUMENT:var h,m,g,y=null!==(h=this.getDirective())&&void 0!==h?h:this.getFieldDef();y&&(m=Object(r.a)(y.args,(function(t){return t.name===e.name.value})))&&(g=m.type),this._argument=m,this._defaultValueStack.push(m?m.defaultValue:void 0),this._inputTypeStack.push(Object(s.G)(g)?g:void 0);break;case i.a.LIST:var v=Object(s.B)(this.getInputType()),b=Object(s.J)(v)?v.ofType:v;this._defaultValueStack.push(void 0),this._inputTypeStack.push(Object(s.G)(b)?b:void 0);break;case i.a.OBJECT_FIELD:var E,x,D=Object(s.A)(this.getInputType());Object(s.F)(D)&&(x=D.getFields()[e.name.value])&&(E=x.type),this._defaultValueStack.push(x?x.defaultValue:void 0),this._inputTypeStack.push(Object(s.G)(E)?E:void 0);break;case i.a.ENUM:var C,w=Object(s.A)(this.getInputType());Object(s.E)(w)&&(C=w.getValue(e.value)),this._enumValue=C}},t.leave=function(e){switch(e.kind){case i.a.SELECTION_SET:this._parentTypeStack.pop();break;case i.a.FIELD:this._fieldDefStack.pop(),this._typeStack.pop();break;case i.a.DIRECTIVE:this._directive=null;break;case i.a.OPERATION_DEFINITION:case i.a.INLINE_FRAGMENT:case i.a.FRAGMENT_DEFINITION:this._typeStack.pop();break;case i.a.VARIABLE_DEFINITION:this._inputTypeStack.pop();break;case i.a.ARGUMENT:this._argument=null,this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case i.a.LIST:case i.a.OBJECT_FIELD:this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case i.a.ENUM:this._enumValue=null}},e}();function p(e,t,n){var r=n.name.value;return r===u.SchemaMetaFieldDef.name&&e.getQueryType()===t?u.SchemaMetaFieldDef:r===u.TypeMetaFieldDef.name&&e.getQueryType()===t?u.TypeMetaFieldDef:r===u.TypeNameMetaFieldDef.name&&Object(s.D)(t)?u.TypeNameMetaFieldDef:Object(s.N)(t)||Object(s.H)(t)?t.getFields()[r]:void 0}function f(e,t){return{enter:function(n){e.enter(n);var r=Object(a.b)(t,n.kind,!1);if(r){var i=r.apply(t,arguments);return void 0!==i&&(e.leave(n),Object(o.c)(i)&&e.enter(i)),i}},leave:function(n){var r,i=Object(a.b)(t,n.kind,!0);return i&&(r=i.apply(t,arguments)),e.leave(n),r}}}},function(e,t,n){!function(t){"use strict";var n=0,r=Math.pow(36,4),i=function(e,t){var n="000000000"+e;return n.substr(n.length-t)},o=function(){return i((Math.random()*r<<0).toString(36),4)},a=function(){return n=n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1)return i;var o=r.fields.indexOf(n);if(o>-1)return r.interfaces.length+o;var s=r.args.indexOf(n);if(s>-1)return r.interfaces.length+r.fields.length+s;var u=r.implementations.indexOf(n);return u>-1?r.interfaces.length+r.fields.length+r.args.length+u:0}t.getNewStack=function(e,t,n){for(var r=n.getIn(["field","path"]),i=r.split("/"),a=null,u=0,c=null,l=-1,p=function(){var n=i.shift();if(0===u)a=e[n],l=Object.keys(e).indexOf(n);else{var r=a.args.find((function(e){return e.name===n}));c=a,r?a=r:(a.type.ofType&&(a=o(a.type.ofType)),a.type&&(a=a.type),a=a.getFields()[n]||a.getInterfaces().find((function(e){return e.name===n})))}c&&(l=s(t,c,a)),u++};i.length>0;)p();return a?(a.path=r,a.parent=c,n.merge({y:l,field:a})):null},t.getDeeperType=o,t.getRootMap=function(e){return r(r(r({},e.getQueryType().getFields()),e.getMutationType&&e.getMutationType()&&e.getMutationType().getFields()),e.getSubscriptionType&&e.getSubscriptionType()&&e.getSubscriptionType().getFields())},t.serializeRoot=function(e){var t={queries:[],mutations:[],subscriptions:[]},n=e.getQueryType().getFields();t.queries=Object.keys(n).map((function(e){var t=n[e];return t.path=e,t.parent=null,t}));var r=e.getMutationType&&e.getMutationType();if(r){var i=r.getFields();t.mutations=Object.keys(i).map((function(e){var t=i[e];return t.path=e,t.parent=null,t}))}window.ss=e;var o=e.getSubscriptionType&&e.getSubscriptionType();if(o){var a=o.getFields();t.subscriptions=Object.keys(a).map((function(e){var t=a[e];return t.path=e,t.parent=null,t}))}return t},t.getElementRoot=function(e,t){var n=0;return e.queries[t+n]?e.queries[t+n]:(n+=e.queries.length,e.mutations[t-n]?e.mutations[t-n]:(n+=e.mutations.length,e.subscriptions[t-n]?e.subscriptions[t-n]:void 0))},t.serialize=a,t.getElement=function(e,t){var n=0;return e.interfaces[t+n]?e.interfaces[t+n]:(n+=e.interfaces.length,e.fields[t-n]?e.fields[t-n]:(n+=e.fields.length,e.args[t-n]?e.args[t-n]:(n+=e.args.length,e.implementations[t-n]?e.implementations[t-n]:void 0)))},t.getElementIndex=s},function(e,t){function n(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}}e.exports={defaults:{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1},getDefaults:n,changeDefaults:function(t){e.exports.defaults=t}}},function(e,t,n){!function(e){var t=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),n=e.Pos,r={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<","<":">>",">":"<<"};function i(e){return e&&e.bracketRegex||/[(){}[\]]/}function o(e,t,o){var s=e.getLineHandle(t.line),u=t.ch-1,c=o&&o.afterCursor;null==c&&(c=/(^| )cm-fat-cursor($| )/.test(e.getWrapperElement().className));var l=i(o),p=!c&&u>=0&&l.test(s.text.charAt(u))&&r[s.text.charAt(u)]||l.test(s.text.charAt(u+1))&&r[s.text.charAt(++u)];if(!p)return null;var f=">"==p.charAt(1)?1:-1;if(o&&o.strict&&f>0!=(u==t.ch))return null;var d=e.getTokenTypeAt(n(t.line,u+1)),h=a(e,n(t.line,u+(f>0?1:0)),f,d||null,o);return null==h?null:{from:n(t.line,u),to:h&&h.pos,match:h&&h.ch==p.charAt(0),forward:f>0}}function a(e,t,o,a,s){for(var u=s&&s.maxScanLineLength||1e4,c=s&&s.maxScanLines||1e3,l=[],p=i(s),f=o>0?Math.min(t.line+c,e.lastLine()+1):Math.max(e.firstLine()-1,t.line-c),d=t.line;d!=f;d+=o){var h=e.getLine(d);if(h){var m=o>0?0:h.length-1,g=o>0?h.length:-1;if(!(h.length>u))for(d==t.line&&(m=t.ch-(o<0?1:0));m!=g;m+=o){var y=h.charAt(m);if(p.test(y)&&(void 0===a||e.getTokenTypeAt(n(d,m+1))==a)){var v=r[y];if(v&&">"==v.charAt(1)==o>0)l.push(y);else{if(!l.length)return{pos:n(d,m),ch:y};l.pop()}}}}}return d-o!=(o>0?e.lastLine():e.firstLine())&&null}function s(e,r,i){for(var a=e.state.matchBrackets.maxHighlightLineLength||1e3,s=[],u=e.listSelections(),c=0;ct.lastLine())return null;var r=t.getTokenAt(e.Pos(n,1));if(/\S/.test(r.string)||(r=t.getTokenAt(e.Pos(n,r.end+1))),"keyword"!=r.type||"import"!=r.string)return null;for(var i=n,o=Math.min(t.lastLine(),n+10);i<=o;++i){var a=t.getLine(i).indexOf(";");if(-1!=a)return{startCh:r.end,end:e.Pos(i,a)}}}var i,o=n.line,a=r(o);if(!a||r(o-1)||(i=r(o-2))&&i.end.line==o-1)return null;for(var s=a.end;;){var u=r(s.line+1);if(null==u)break;s=u.end}return{from:t.clipPos(e.Pos(o,a.startCh+1)),to:s}})),e.registerHelper("fold","include",(function(t,n){function r(n){if(nt.lastLine())return null;var r=t.getTokenAt(e.Pos(n,1));return/\S/.test(r.string)||(r=t.getTokenAt(e.Pos(n,r.end+1))),"meta"==r.type&&"#include"==r.string.slice(0,8)?r.start+8:void 0}var i=n.line,o=r(i);if(null==o||null!=r(i-1))return null;for(var a=i;null!=r(a+1);)++a;return{from:e.Pos(i,o+1),to:t.clipPos(e.Pos(a))}}))}(n(16))},function(e,t,n){"use strict";function r(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},e.exports=r},function(e,t,n){"use strict";var r=n(79);e.exports=new r({include:[n(210)],implicit:[n(505),n(506)],explicit:[n(507),n(512),n(513),n(514)]})},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):void 0;t.a=r},function(e,t,n){"use strict";function r(e,t){for(var n,r=/\r\n|[\n\r]/g,i=1,o=t+1;(n=r.exec(e.body))&&n.index
+ * Copyright OpenJS Foundation and other contributors
+ * Released under MIT license
+ * Based on Underscore.js 1.8.3
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */(function(){var o="Expected a function",a="__lodash_placeholder__",s=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],u="[object Arguments]",c="[object Array]",l="[object Boolean]",p="[object Date]",f="[object Error]",d="[object Function]",h="[object GeneratorFunction]",m="[object Map]",g="[object Number]",y="[object Object]",v="[object RegExp]",b="[object Set]",E="[object String]",x="[object Symbol]",D="[object WeakMap]",C="[object ArrayBuffer]",w="[object DataView]",S="[object Float32Array]",k="[object Float64Array]",A="[object Int8Array]",T="[object Int16Array]",_="[object Int32Array]",O="[object Uint8Array]",F="[object Uint16Array]",N="[object Uint32Array]",I=/\b__p \+= '';/g,M=/\b(__p \+=) '' \+/g,j=/(__e\(.*?\)|\b__t\)) \+\n'';/g,L=/&(?:amp|lt|gt|quot|#39);/g,P=/[&<>"']/g,R=RegExp(L.source),B=RegExp(P.source),U=/<%-([\s\S]+?)%>/g,z=/<%([\s\S]+?)%>/g,V=/<%=([\s\S]+?)%>/g,q=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,H=/^\w*$/,W=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,G=/[\\^$.*+?()[\]{}|]/g,K=RegExp(G.source),J=/^\s+|\s+$/g,Q=/^\s+/,Y=/\s+$/,$=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,X=/\{\n\/\* \[wrapped with (.+)\] \*/,Z=/,? & /,ee=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,te=/\\(\\)?/g,ne=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,re=/\w*$/,ie=/^[-+]0x[0-9a-f]+$/i,oe=/^0b[01]+$/i,ae=/^\[object .+?Constructor\]$/,se=/^0o[0-7]+$/i,ue=/^(?:0|[1-9]\d*)$/,ce=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,le=/($^)/,pe=/['\n\r\u2028\u2029\\]/g,fe="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",de="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",he="[\\ud800-\\udfff]",me="["+de+"]",ge="["+fe+"]",ye="\\d+",ve="[\\u2700-\\u27bf]",be="[a-z\\xdf-\\xf6\\xf8-\\xff]",Ee="[^\\ud800-\\udfff"+de+ye+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",xe="\\ud83c[\\udffb-\\udfff]",De="[^\\ud800-\\udfff]",Ce="(?:\\ud83c[\\udde6-\\uddff]){2}",we="[\\ud800-\\udbff][\\udc00-\\udfff]",Se="[A-Z\\xc0-\\xd6\\xd8-\\xde]",ke="(?:"+be+"|"+Ee+")",Ae="(?:"+Se+"|"+Ee+")",Te="(?:"+ge+"|"+xe+")"+"?",_e="[\\ufe0e\\ufe0f]?"+Te+("(?:\\u200d(?:"+[De,Ce,we].join("|")+")[\\ufe0e\\ufe0f]?"+Te+")*"),Oe="(?:"+[ve,Ce,we].join("|")+")"+_e,Fe="(?:"+[De+ge+"?",ge,Ce,we,he].join("|")+")",Ne=RegExp("['’]","g"),Ie=RegExp(ge,"g"),Me=RegExp(xe+"(?="+xe+")|"+Fe+_e,"g"),je=RegExp([Se+"?"+be+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[me,Se,"$"].join("|")+")",Ae+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[me,Se+ke,"$"].join("|")+")",Se+"?"+ke+"+(?:['’](?:d|ll|m|re|s|t|ve))?",Se+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ye,Oe].join("|"),"g"),Le=RegExp("[\\u200d\\ud800-\\udfff"+fe+"\\ufe0e\\ufe0f]"),Pe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Re=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Be=-1,Ue={};Ue[S]=Ue[k]=Ue[A]=Ue[T]=Ue[_]=Ue[O]=Ue["[object Uint8ClampedArray]"]=Ue[F]=Ue[N]=!0,Ue[u]=Ue[c]=Ue[C]=Ue[l]=Ue[w]=Ue[p]=Ue[f]=Ue[d]=Ue[m]=Ue[g]=Ue[y]=Ue[v]=Ue[b]=Ue[E]=Ue[D]=!1;var ze={};ze[u]=ze[c]=ze[C]=ze[w]=ze[l]=ze[p]=ze[S]=ze[k]=ze[A]=ze[T]=ze[_]=ze[m]=ze[g]=ze[y]=ze[v]=ze[b]=ze[E]=ze[x]=ze[O]=ze["[object Uint8ClampedArray]"]=ze[F]=ze[N]=!0,ze[f]=ze[d]=ze[D]=!1;var Ve={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},qe=parseFloat,He=parseInt,We="object"==typeof e&&e&&e.Object===Object&&e,Ge="object"==typeof self&&self&&self.Object===Object&&self,Ke=We||Ge||Function("return this")(),Je=t&&!t.nodeType&&t,Qe=Je&&"object"==typeof r&&r&&!r.nodeType&&r,Ye=Qe&&Qe.exports===Je,$e=Ye&&We.process,Xe=function(){try{var e=Qe&&Qe.require&&Qe.require("util").types;return e||$e&&$e.binding&&$e.binding("util")}catch(e){}}(),Ze=Xe&&Xe.isArrayBuffer,et=Xe&&Xe.isDate,tt=Xe&&Xe.isMap,nt=Xe&&Xe.isRegExp,rt=Xe&&Xe.isSet,it=Xe&&Xe.isTypedArray;function ot(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function at(e,t,n,r){for(var i=-1,o=null==e?0:e.length;++i-1}function ft(e,t,n){for(var r=-1,i=null==e?0:e.length;++r-1;);return n}function Mt(e,t){for(var n=e.length;n--&&xt(t,e[n],0)>-1;);return n}function jt(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}var Lt=kt({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Pt=kt({"&":"&","<":"<",">":">",'"':""","'":"'"});function Rt(e){return"\\"+Ve[e]}function Bt(e){return Le.test(e)}function Ut(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function zt(e,t){return function(n){return e(t(n))}}function Vt(e,t){for(var n=-1,r=e.length,i=0,o=[];++n",""":'"',"'":"'"});var Jt=function e(t){var n,r=(t=null==t?Ke:Jt.defaults(Ke.Object(),t,Jt.pick(Ke,Re))).Array,i=t.Date,fe=t.Error,de=t.Function,he=t.Math,me=t.Object,ge=t.RegExp,ye=t.String,ve=t.TypeError,be=r.prototype,Ee=de.prototype,xe=me.prototype,De=t["__core-js_shared__"],Ce=Ee.toString,we=xe.hasOwnProperty,Se=0,ke=(n=/[^.]+$/.exec(De&&De.keys&&De.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",Ae=xe.toString,Te=Ce.call(me),_e=Ke._,Oe=ge("^"+Ce.call(we).replace(G,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Fe=Ye?t.Buffer:void 0,Me=t.Symbol,Le=t.Uint8Array,Ve=Fe?Fe.allocUnsafe:void 0,We=zt(me.getPrototypeOf,me),Ge=me.create,Je=xe.propertyIsEnumerable,Qe=be.splice,$e=Me?Me.isConcatSpreadable:void 0,Xe=Me?Me.iterator:void 0,vt=Me?Me.toStringTag:void 0,kt=function(){try{var e=Zi(me,"defineProperty");return e({},"",{}),e}catch(e){}}(),Qt=t.clearTimeout!==Ke.clearTimeout&&t.clearTimeout,Yt=i&&i.now!==Ke.Date.now&&i.now,$t=t.setTimeout!==Ke.setTimeout&&t.setTimeout,Xt=he.ceil,Zt=he.floor,en=me.getOwnPropertySymbols,tn=Fe?Fe.isBuffer:void 0,nn=t.isFinite,rn=be.join,on=zt(me.keys,me),an=he.max,sn=he.min,un=i.now,cn=t.parseInt,ln=he.random,pn=be.reverse,fn=Zi(t,"DataView"),dn=Zi(t,"Map"),hn=Zi(t,"Promise"),mn=Zi(t,"Set"),gn=Zi(t,"WeakMap"),yn=Zi(me,"create"),vn=gn&&new gn,bn={},En=Ao(fn),xn=Ao(dn),Dn=Ao(hn),Cn=Ao(mn),wn=Ao(gn),Sn=Me?Me.prototype:void 0,kn=Sn?Sn.valueOf:void 0,An=Sn?Sn.toString:void 0;function Tn(e){if(Ha(e)&&!Ia(e)&&!(e instanceof Nn)){if(e instanceof Fn)return e;if(we.call(e,"__wrapped__"))return To(e)}return new Fn(e)}var _n=function(){function e(){}return function(t){if(!qa(t))return{};if(Ge)return Ge(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function On(){}function Fn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}function Nn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function In(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function Yn(e,t,n,r,i,o){var a,s=1&t,c=2&t,f=4&t;if(n&&(a=i?n(e,r,i,o):n(e)),void 0!==a)return a;if(!qa(e))return e;var D=Ia(e);if(D){if(a=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&we.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!s)return yi(e,a)}else{var I=no(e),M=I==d||I==h;if(Pa(e))return pi(e,s);if(I==y||I==u||M&&!i){if(a=c||M?{}:io(e),!s)return c?function(e,t){return vi(e,to(e),t)}(e,function(e,t){return e&&vi(t,xs(t),e)}(a,e)):function(e,t){return vi(e,eo(e),t)}(e,Gn(a,e))}else{if(!ze[I])return i?e:{};a=function(e,t,n){var r=e.constructor;switch(t){case C:return fi(e);case l:case p:return new r(+e);case w:return function(e,t){var n=t?fi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case S:case k:case A:case T:case _:case O:case"[object Uint8ClampedArray]":case F:case N:return di(e,n);case m:return new r;case g:case E:return new r(e);case v:return function(e){var t=new e.constructor(e.source,re.exec(e));return t.lastIndex=e.lastIndex,t}(e);case b:return new r;case x:return i=e,kn?me(kn.call(i)):{}}var i}(e,I,s)}}o||(o=new Pn);var j=o.get(e);if(j)return j;o.set(e,a),Qa(e)?e.forEach((function(r){a.add(Yn(r,t,n,r,e,o))})):Wa(e)&&e.forEach((function(r,i){a.set(i,Yn(r,t,n,i,e,o))}));var L=D?void 0:(f?c?Gi:Wi:c?xs:Es)(e);return st(L||e,(function(r,i){L&&(r=e[i=r]),qn(a,i,Yn(r,t,n,i,e,o))})),a}function $n(e,t,n){var r=n.length;if(null==e)return!r;for(e=me(e);r--;){var i=n[r],o=t[i],a=e[i];if(void 0===a&&!(i in e)||!o(a))return!1}return!0}function Xn(e,t,n){if("function"!=typeof e)throw new ve(o);return Eo((function(){e.apply(void 0,n)}),t)}function Zn(e,t,n,r){var i=-1,o=pt,a=!0,s=e.length,u=[],c=t.length;if(!s)return u;n&&(t=dt(t,Ot(n))),r?(o=ft,a=!1):t.length>=200&&(o=Nt,a=!1,t=new Ln(t));e:for(;++i-1},Mn.prototype.set=function(e,t){var n=this.__data__,r=Hn(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},jn.prototype.clear=function(){this.size=0,this.__data__={hash:new In,map:new(dn||Mn),string:new In}},jn.prototype.delete=function(e){var t=$i(this,e).delete(e);return this.size-=t?1:0,t},jn.prototype.get=function(e){return $i(this,e).get(e)},jn.prototype.has=function(e){return $i(this,e).has(e)},jn.prototype.set=function(e,t){var n=$i(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Ln.prototype.add=Ln.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Ln.prototype.has=function(e){return this.__data__.has(e)},Pn.prototype.clear=function(){this.__data__=new Mn,this.size=0},Pn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Pn.prototype.get=function(e){return this.__data__.get(e)},Pn.prototype.has=function(e){return this.__data__.has(e)},Pn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Mn){var r=n.__data__;if(!dn||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new jn(r)}return n.set(e,t),this.size=n.size,this};var er=xi(ur),tr=xi(cr,!0);function nr(e,t){var n=!0;return er(e,(function(e,r,i){return n=!!t(e,r,i)})),n}function rr(e,t,n){for(var r=-1,i=e.length;++r0&&n(s)?t>1?or(s,t-1,n,r,i):ht(i,s):r||(i[i.length]=s)}return i}var ar=Di(),sr=Di(!0);function ur(e,t){return e&&ar(e,t,Es)}function cr(e,t){return e&&sr(e,t,Es)}function lr(e,t){return lt(t,(function(t){return Ua(e[t])}))}function pr(e,t){for(var n=0,r=(t=si(t,e)).length;null!=e&&nt}function mr(e,t){return null!=e&&we.call(e,t)}function gr(e,t){return null!=e&&t in me(e)}function yr(e,t,n){for(var i=n?ft:pt,o=e[0].length,a=e.length,s=a,u=r(a),c=1/0,l=[];s--;){var p=e[s];s&&t&&(p=dt(p,Ot(t))),c=sn(p.length,c),u[s]=!n&&(t||o>=120&&p.length>=120)?new Ln(s&&p):void 0}p=e[0];var f=-1,d=u[0];e:for(;++f=s)return u;var c=n[r];return u*("desc"==c?-1:1)}}return e.index-t.index}(e,t,n)}))}function Ir(e,t,n){for(var r=-1,i=t.length,o={};++r-1;)s!==e&&Qe.call(s,u,1),Qe.call(e,u,1);return e}function jr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var i=t[n];if(n==r||i!==o){var o=i;ao(i)?Qe.call(e,i,1):Zr(e,i)}}return e}function Lr(e,t){return e+Zt(ln()*(t-e+1))}function Pr(e,t){var n="";if(!e||t<1||t>9007199254740991)return n;do{t%2&&(n+=e),(t=Zt(t/2))&&(e+=e)}while(t);return n}function Rr(e,t){return xo(mo(e,t,Gs),e+"")}function Br(e){return Bn(_s(e))}function Ur(e,t){var n=_s(e);return wo(n,Qn(t,0,n.length))}function zr(e,t,n,r){if(!qa(e))return e;for(var i=-1,o=(t=si(t,e)).length,a=o-1,s=e;null!=s&&++io?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=r(o);++i>>1,a=e[o];null!==a&&!$a(a)&&(n?a<=t:a