diff --git a/.github/ISSUE_TEMPLATE/01-feature_request.yaml b/.github/ISSUE_TEMPLATE/01-feature_request.yaml index cb39ae9be..7cb6057ea 100644 --- a/.github/ISSUE_TEMPLATE/01-feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/01-feature_request.yaml @@ -14,7 +14,7 @@ body: attributes: label: NetBox version description: What version of NetBox are you currently running? - placeholder: v4.1.11 + placeholder: v4.2.0 validations: required: true - type: dropdown diff --git a/.github/ISSUE_TEMPLATE/02-bug_report.yaml b/.github/ISSUE_TEMPLATE/02-bug_report.yaml index e42ff3045..e2145543d 100644 --- a/.github/ISSUE_TEMPLATE/02-bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/02-bug_report.yaml @@ -39,7 +39,7 @@ body: attributes: label: NetBox Version description: What version of NetBox are you currently running? - placeholder: v4.1.11 + placeholder: v4.2.0 validations: required: true - type: dropdown diff --git a/docs/development/release-checklist.md b/docs/development/release-checklist.md index 557d01671..c74fcf8f6 100644 --- a/docs/development/release-checklist.md +++ b/docs/development/release-checklist.md @@ -120,15 +120,9 @@ Then, compile these portable (`.po`) files for use in the application: * Update the example version numbers in the feature request and bug report templates under `.github/ISSUE_TEMPLATES/`. * Replace the "FUTURE" placeholder in the release notes with the current date. -Commit these changes to the `main` branch and push upstream. - -### Verify CI Build Status - -Ensure that continuous integration testing on the `main` branch is completing successfully. If it fails, take action to correct the failure before proceeding with the release. - ### Submit a Pull Request -Submit a pull request titled **"Release vX.Y.Z"** to merge the current release branch (e.g. `release-vX.Y.Z`) into `main`. Copy the documented release notes into the pull request's body. +Commit the above changes and submit a pull request titled **"Release vX.Y.Z"** to merge the current release branch (e.g. `release-vX.Y.Z`) into `main`. Copy the documented release notes into the pull request's body. Once CI has completed and a colleague has reviewed the PR, merge it. This effects a new release in the `main` branch. diff --git a/docs/release-notes/version-4.2.md b/docs/release-notes/version-4.2.md index f0ad3766c..75a776573 100644 --- a/docs/release-notes/version-4.2.md +++ b/docs/release-notes/version-4.2.md @@ -1,9 +1,6 @@ # NetBox v4.2 -## v4.2-beta1 (2024-12-02) - -!!! danger "Not for Production Use" - This is a beta release of NetBox intended for testing and evaluation. **Do not use this software in production.** Also be aware that no upgrade path is provided to future releases. +## v4.2.0 (2025-01-06) ### Breaking Changes diff --git a/mkdocs.yml b/mkdocs.yml index f870b69d6..db6798eae 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -176,6 +176,7 @@ nav: - Provider Network: 'models/circuits/providernetwork.md' - Virtual Circuit: 'models/circuits/virtualcircuit.md' - Virtual Circuit Termination: 'models/circuits/virtualcircuittermination.md' + - Virtual Circuit Type: 'models/circuits/virtualcircuittype.md' - Core: - DataFile: 'models/core/datafile.md' - DataSource: 'models/core/datasource.md' diff --git a/netbox/project-static/dist/graphiql/graphiql.min.js b/netbox/project-static/dist/graphiql/graphiql.min.js index 03d4ac1e1..229d3ebe6 100644 --- a/netbox/project-static/dist/graphiql/graphiql.min.js +++ b/netbox/project-static/dist/graphiql/graphiql.min.js @@ -1,5 +1,4 @@ /******/ (function() { // webpackBootstrap -/******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ "../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js": @@ -8,6 +7,7 @@ \**************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -34,6 +34,7 @@ var _default = exports["default"] = index; \**************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -57,6 +58,7 @@ var _default = exports["default"] = memoize; \****************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -1194,6 +1196,7 @@ exports.size = size; \**************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -1901,6 +1904,7 @@ exports.computePosition = computePosition; \**************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -2256,6 +2260,7 @@ function useFloating(options) { \***********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -2432,6 +2437,7 @@ exports.Animation = Animation; \*******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -2460,6 +2466,7 @@ var _easingEs = __webpack_require__(/*! ./utils/easing.es.js */ "../../../node_m \**************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -2501,6 +2508,7 @@ function getEasingFunction(definition) { \*****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -2698,6 +2706,7 @@ function animateStyle(element, key, keyframesDefinition, options = {}) { \********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -2731,6 +2740,7 @@ function getMotionValue(motionValues, name) { \*********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -2779,6 +2789,7 @@ function animate(elements, keyframes, options = {}) { \*********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -2816,6 +2827,7 @@ const style = exports.style = { \******************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -2895,6 +2907,7 @@ const selectFinished = animation => animation.finished; \*****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -2932,6 +2945,7 @@ function registerCssVariable(name) { \****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -2952,6 +2966,7 @@ exports.cubicBezierAsString = cubicBezierAsString; \***************************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -2995,6 +3010,7 @@ for (const key in featureTests) { \************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3015,6 +3031,7 @@ function getStyleName(key) { \*******************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3041,6 +3058,7 @@ exports.keyframesList = keyframesList; \*****************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3064,6 +3082,7 @@ exports.getOptions = getOptions; \************************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3091,6 +3110,7 @@ function stopAnimation(animation, needsCommit = true) { \**********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3134,6 +3154,7 @@ function createStyles(keyframes) { \**********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3161,6 +3182,7 @@ function createStyleString(target = {}) { \********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3253,6 +3275,7 @@ const transformListToString = (template, name) => `${template} ${name}(var(${asT \**************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3346,6 +3369,7 @@ const isNumberOrNull = value => typeof value !== "string"; \**************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3364,6 +3388,7 @@ const glide = exports.glide = (0, _createGeneratorEasingEs.createGeneratorEasing \***************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3382,6 +3407,7 @@ const spring = exports.spring = (0, _createGeneratorEasingEs.createGeneratorEasi \************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3447,6 +3473,7 @@ function inView(elementOrSelector, onStart, { \**************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3529,6 +3556,7 @@ function resizeElement(target, handler) { \*************************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3571,6 +3599,7 @@ function resizeWindow(callback) { \*****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3591,6 +3620,7 @@ function resize(a, b) { \*****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3682,6 +3712,7 @@ function scroll(onScroll, _a = {}) { \****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3751,6 +3782,7 @@ function updateScrollInfo(element, info, time) { \************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3807,6 +3839,7 @@ function resolveEdge(edge, length, inset = 0) { \*************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3884,6 +3917,7 @@ function resolveOffsets(container, info, options) { \*************************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3927,6 +3961,7 @@ function calcInset(element, container) { \**************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3973,6 +4008,7 @@ function resolveOffset(offset, containerLength, targetLength, targetInset) { \***************************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -3994,6 +4030,7 @@ const ScrollOffset = exports.ScrollOffset = { \*****************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4065,6 +4102,7 @@ function scrubAnimation(controls, axisInfo) { \*************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4204,6 +4242,7 @@ var _styleStringEs = __webpack_require__(/*! ./animate/utils/style-string.es.js \****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4241,6 +4280,7 @@ const hover = exports.hover = { \******************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4283,6 +4323,7 @@ const inView = exports.inView = { \****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4322,6 +4363,7 @@ const press = exports.press = { \*******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4511,6 +4553,7 @@ function createMotionState(options = {}, parent) { \**************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4548,6 +4591,7 @@ function dispatchViewEvent(element, name, entry) { \*******************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4577,6 +4621,7 @@ function shallowCompare(next, prev) { \******************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4595,6 +4640,7 @@ function isVariant(definition) { \***********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4618,6 +4664,7 @@ function resolveVariant(definition, variants) { \****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4657,6 +4704,7 @@ const fireNext = iterator => iterator.next(); \**********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4869,6 +4917,7 @@ function getValueSequence(name, sequences) { \********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4897,6 +4946,7 @@ function calcNextTime(current, next, prev, labels) { \***************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4939,6 +4989,7 @@ function addKeyframes(sequence, keyframes, easing, offset, startTime, endTime) { \***************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4961,6 +5012,7 @@ function compareByTime(a, b) { \******************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -4993,6 +5045,7 @@ function resolveElements(elements, selectorCache) { \*********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5040,6 +5093,7 @@ function resolveOption(option, i, total) { \***********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5102,6 +5156,7 @@ function cubicBezier(mX1, mY1, mX2, mY2) { \****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5130,6 +5185,7 @@ var _stepsEs = __webpack_require__(/*! ./steps.es.js */ "../../../node_modules/@ \****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5153,6 +5209,7 @@ exports.steps = steps; \**************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5264,6 +5321,7 @@ exports.glide = glide; \********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5306,6 +5364,7 @@ var _velocityEs = __webpack_require__(/*! ./utils/velocity.es.js */ "../../../no \******************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5326,6 +5385,7 @@ const defaults = exports.defaults = { \***************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5388,6 +5448,7 @@ exports.spring = spring; \***************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5406,6 +5467,7 @@ exports.calcDampingRatio = calcDampingRatio; \***************************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5424,6 +5486,7 @@ function hasReachedTarget(origin, target, current) { \******************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5467,6 +5530,7 @@ function pregenerateKeyframes(generator, toUnit = _utils.noopReturn) { \*****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5488,6 +5552,7 @@ function calcGeneratorVelocity(resolveValue, t, current) { \*********************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5519,6 +5584,7 @@ exports.MotionValue = MotionValue; \***************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5540,6 +5606,7 @@ var _MotionValueEs = __webpack_require__(/*! ./MotionValue.es.js */ "../../../no \***************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5563,6 +5630,7 @@ function removeItem(arr, item) { \***************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5580,6 +5648,7 @@ exports.clamp = clamp; \******************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5602,6 +5671,7 @@ const defaults = exports.defaults = { \****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5622,6 +5692,7 @@ function getEasingForSegment(easing, i) { \***************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5780,6 +5851,7 @@ var _wrapEs = __webpack_require__(/*! ./wrap.es.js */ "../../../node_modules/@mo \*********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5822,6 +5894,7 @@ function interpolate(output, input = (0, _offsetEs.defaultOffset)(output.length) \*************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5840,6 +5913,7 @@ exports.isCubicBezier = isCubicBezier; \*****************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5857,6 +5931,7 @@ exports.isEasingGenerator = isEasingGenerator; \************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5875,6 +5950,7 @@ exports.isEasingList = isEasingList; \*********************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5892,6 +5968,7 @@ exports.isFunction = isFunction; \*******************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5909,6 +5986,7 @@ exports.isNumber = isNumber; \*******************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5926,6 +6004,7 @@ exports.isString = isString; \*************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5943,6 +6022,7 @@ exports.mix = mix; \**************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5962,6 +6042,7 @@ exports.noopReturn = noopReturn; \****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -5992,6 +6073,7 @@ function defaultOffset(length) { \******************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -6009,6 +6091,7 @@ exports.progress = progress; \**************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -6028,6 +6111,7 @@ const time = exports.time = { \******************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -6052,6 +6136,7 @@ function velocityPerSecond(velocity, frameDuration) { \**************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -6072,6 +6157,7 @@ exports.wrap = wrap; \********************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -6214,6 +6300,7 @@ exports.makePushPullAsyncIterableIterator = makePushPullAsyncIterableIterator; \***************************************************************/ /***/ (function(module) { +"use strict"; function $parcel$export(e, n, v, s) { @@ -6242,6 +6329,7 @@ function $1a6a90a521dcd173$export$b9ecd428b558ff10(originalEventHandler, ourEven \*****************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $eQpDd$babelruntimehelpersextends = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/extends.js"); @@ -6297,6 +6385,7 @@ const $09f4ad68a9251bc3$export$be92b6f5f03c0fe9 = $09f4ad68a9251bc3$export$21b07 \**********************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $hnlpS$react = __webpack_require__(/*! react */ "react"); @@ -6428,6 +6517,7 @@ function $1a96635ec239608b$export$c74125a8e3af6bb2(name) { \************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $dJwbH$react = __webpack_require__(/*! react */ "react"); @@ -6473,6 +6563,7 @@ function $9c2aaba23466b352$export$c7b2cbe3552a0d05(...refs) { \*******************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $4O1Ne$react = __webpack_require__(/*! react */ "react"); @@ -6606,6 +6697,7 @@ function $dec3cc0142d4f286$var$composeContextScopes(...scopes) { \******************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $aJCrN$babelruntimehelpersextends = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/extends.js"); @@ -7041,6 +7133,7 @@ const $f4833395aa1bca1a$export$f39c2d165cd861fe = $f4833395aa1bca1a$export$fba2f \*********************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $9g4ps$react = __webpack_require__(/*! react */ "react"); @@ -7083,6 +7176,7 @@ const $cc45c1b701a63adc$export$2881499e37b75b9a = $cc45c1b701a63adc$export$c760c \*****************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $g2vWm$babelruntimehelpersextends = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/extends.js"); @@ -7366,6 +7460,7 @@ const $d715e0554b679f1f$export$aecb2ddcb55c95be = $d715e0554b679f1f$export$4d5eb \*************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $7dQ7Q$babelruntimehelpersextends = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/extends.js"); @@ -7826,6 +7921,7 @@ const $d1bf075a6b218014$export$6d4de93b380beddf = $d1bf075a6b218014$export$f34ec \************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $cnctE$react = __webpack_require__(/*! react */ "react"); @@ -7881,6 +7977,7 @@ const $71476a6ed7dbbaf3$export$be92b6f5f03c0fe9 = $71476a6ed7dbbaf3$export$ac5b5 \***********************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $buum9$babelruntimehelpersextends = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/extends.js"); @@ -8186,6 +8283,7 @@ const $2bc01e66e04aa9ed$export$be92b6f5f03c0fe9 = $2bc01e66e04aa9ed$export$20e40 \**************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $47woD$react = __webpack_require__(/*! react */ "react"); @@ -8217,6 +8315,7 @@ function $dc478e4659f630c5$export$f680877a34711e37(deterministicId) { \****************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $cnSS2$babelruntimehelpersextends = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/extends.js"); @@ -9284,6 +9383,7 @@ const $213e4d2df823067d$export$6d4de93b380beddf = $213e4d2df823067d$export$e7142 \******************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $50Iv9$babelruntimehelpersextends = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/extends.js"); @@ -9639,6 +9739,7 @@ const $34310caa050a8d63$export$21b07c8f274aebd5 = $34310caa050a8d63$export$79d62 \******************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $amzHf$babelruntimehelpersextends = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/extends.js"); @@ -9688,6 +9789,7 @@ const $913a70b877676c16$export$be92b6f5f03c0fe9 = $913a70b877676c16$export$602ea \********************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $fnLeV$react = __webpack_require__(/*! react */ "react"); @@ -9829,6 +9931,7 @@ function $a2fa0214bb2735a1$var$getAnimationName(styles) { \*********************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $iMixA$babelruntimehelpersextends = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/extends.js"); @@ -9927,6 +10030,7 @@ const $c3def6332c2749a6$export$be92b6f5f03c0fe9 = $c3def6332c2749a6$export$250ff \************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $9QJ9Y$babelruntimehelpersextends = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/extends.js"); @@ -10180,6 +10284,7 @@ const $0063afae63b3fa70$export$6d08773d2e66f8f2 = $0063afae63b3fa70$export$ab9df \****************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $dAvBt$babelruntimehelpersextends = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/extends.js"); @@ -10292,6 +10397,7 @@ const $82dc8d030dec7549$export$be92b6f5f03c0fe9 = $82dc8d030dec7549$export$8c6ed \*******************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $iVrL9$babelruntimehelpersextends = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/extends.js"); @@ -10873,6 +10979,7 @@ const $c34afbc43c90cc6f$export$21b07c8f274aebd5 = $c34afbc43c90cc6f$export$c27ee \****************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $92muK$react = __webpack_require__(/*! react */ "react"); @@ -10909,6 +11016,7 @@ function $28e03942f763e819$export$25bec8c6f54ee79a(callback) { \**********************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $ijazI$react = __webpack_require__(/*! react */ "react"); @@ -10968,6 +11076,7 @@ function $b84d42d44371bff7$var$useUncontrolledState({ \******************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $b0gz3$react = __webpack_require__(/*! react */ "react"); @@ -11004,6 +11113,7 @@ function $24c84e9f83c4454f$export$3a72a57244d6e765(onEscapeKeyDownProp, ownerDoc \*****************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $caHyQ$react = __webpack_require__(/*! react */ "react"); @@ -11034,6 +11144,7 @@ const $ca21affb0542a8a4$export$e5c5a5f917a5871c = Boolean(globalThis === null || \********************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $ksDzM$react = __webpack_require__(/*! react */ "react"); @@ -11100,6 +11211,7 @@ function $d2c1d285af17635b$export$1ab7ae714698c4b8(element) { \***************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var $awrN2$babelruntimehelpersextends = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/extends.js"); @@ -11157,6 +11269,7 @@ const $685371e9c20848e2$export$be92b6f5f03c0fe9 = $685371e9c20848e2$export$439d2 \**************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -11346,6 +11459,7 @@ exports.suppressOthers = suppressOthers; \*************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -11368,12 +11482,17149 @@ var _default = exports["default"] = clsx; /***/ }), +/***/ "../../../node_modules/codemirror/addon/comment/comment.js": +/*!*****************************************************************!*\ + !*** ../../../node_modules/codemirror/addon/comment/comment.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function (mod) { + if (true) + // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"));else {} +})(function (CodeMirror) { + "use strict"; + + var noOptions = {}; + var nonWS = /[^\s\u00a0]/; + var Pos = CodeMirror.Pos, + cmp = CodeMirror.cmpPos; + function firstNonWS(str) { + var found = str.search(nonWS); + return found == -1 ? 0 : found; + } + CodeMirror.commands.toggleComment = function (cm) { + cm.toggleComment(); + }; + CodeMirror.defineExtension("toggleComment", function (options) { + if (!options) options = noOptions; + var cm = this; + var minLine = Infinity, + ranges = this.listSelections(), + mode = null; + for (var i = ranges.length - 1; i >= 0; i--) { + var from = ranges[i].from(), + to = ranges[i].to(); + if (from.line >= minLine) continue; + if (to.line >= minLine) to = Pos(minLine, 0); + minLine = from.line; + if (mode == null) { + if (cm.uncomment(from, to, options)) mode = "un";else { + cm.lineComment(from, to, options); + mode = "line"; + } + } else if (mode == "un") { + cm.uncomment(from, to, options); + } else { + cm.lineComment(from, to, options); + } + } + }); + + // Rough heuristic to try and detect lines that are part of multi-line string + function probablyInsideString(cm, pos, line) { + return /\bstring\b/.test(cm.getTokenTypeAt(Pos(pos.line, 0))) && !/^[\'\"\`]/.test(line); + } + function getMode(cm, pos) { + var mode = cm.getMode(); + return mode.useInnerComments === false || !mode.innerMode ? mode : cm.getModeAt(pos); + } + CodeMirror.defineExtension("lineComment", function (from, to, options) { + if (!options) options = noOptions; + var self = this, + mode = getMode(self, from); + var firstLine = self.getLine(from.line); + if (firstLine == null || probablyInsideString(self, from, firstLine)) return; + var commentString = options.lineComment || mode.lineComment; + if (!commentString) { + if (options.blockCommentStart || mode.blockCommentStart) { + options.fullLines = true; + self.blockComment(from, to, options); + } + return; + } + var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1); + var pad = options.padding == null ? " " : options.padding; + var blankLines = options.commentBlankLines || from.line == to.line; + self.operation(function () { + if (options.indent) { + var baseString = null; + for (var i = from.line; i < end; ++i) { + var line = self.getLine(i); + var whitespace = line.slice(0, firstNonWS(line)); + if (baseString == null || baseString.length > whitespace.length) { + baseString = whitespace; + } + } + for (var i = from.line; i < end; ++i) { + var line = self.getLine(i), + cut = baseString.length; + if (!blankLines && !nonWS.test(line)) continue; + if (line.slice(0, cut) != baseString) cut = firstNonWS(line); + self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut)); + } + } else { + for (var i = from.line; i < end; ++i) { + if (blankLines || nonWS.test(self.getLine(i))) self.replaceRange(commentString + pad, Pos(i, 0)); + } + } + }); + }); + CodeMirror.defineExtension("blockComment", function (from, to, options) { + if (!options) options = noOptions; + var self = this, + mode = getMode(self, from); + var startString = options.blockCommentStart || mode.blockCommentStart; + var endString = options.blockCommentEnd || mode.blockCommentEnd; + if (!startString || !endString) { + if ((options.lineComment || mode.lineComment) && options.fullLines != false) self.lineComment(from, to, options); + return; + } + if (/\bcomment\b/.test(self.getTokenTypeAt(Pos(from.line, 0)))) return; + var end = Math.min(to.line, self.lastLine()); + if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end; + var pad = options.padding == null ? " " : options.padding; + if (from.line > end) return; + self.operation(function () { + if (options.fullLines != false) { + var lastLineHasText = nonWS.test(self.getLine(end)); + self.replaceRange(pad + endString, Pos(end)); + self.replaceRange(startString + pad, Pos(from.line, 0)); + var lead = options.blockCommentLead || mode.blockCommentLead; + if (lead != null) for (var i = from.line + 1; i <= end; ++i) if (i != end || lastLineHasText) self.replaceRange(lead + pad, Pos(i, 0)); + } else { + var atCursor = cmp(self.getCursor("to"), to) == 0, + empty = !self.somethingSelected(); + self.replaceRange(endString, to); + if (atCursor) self.setSelection(empty ? to : self.getCursor("from"), to); + self.replaceRange(startString, from); + } + }); + }); + CodeMirror.defineExtension("uncomment", function (from, to, options) { + if (!options) options = noOptions; + var self = this, + mode = getMode(self, from); + var end = Math.min(to.ch != 0 || to.line == from.line ? to.line : to.line - 1, self.lastLine()), + start = Math.min(from.line, end); + + // Try finding line comments + var lineString = options.lineComment || mode.lineComment, + lines = []; + var pad = options.padding == null ? " " : options.padding, + didSomething; + lineComment: { + if (!lineString) break lineComment; + for (var i = start; i <= end; ++i) { + var line = self.getLine(i); + var found = line.indexOf(lineString); + if (found > -1 && !/comment/.test(self.getTokenTypeAt(Pos(i, found + 1)))) found = -1; + if (found == -1 && nonWS.test(line)) break lineComment; + if (found > -1 && nonWS.test(line.slice(0, found))) break lineComment; + lines.push(line); + } + self.operation(function () { + for (var i = start; i <= end; ++i) { + var line = lines[i - start]; + var pos = line.indexOf(lineString), + endPos = pos + lineString.length; + if (pos < 0) continue; + if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length; + didSomething = true; + self.replaceRange("", Pos(i, pos), Pos(i, endPos)); + } + }); + if (didSomething) return true; + } + + // Try block comments + var startString = options.blockCommentStart || mode.blockCommentStart; + var endString = options.blockCommentEnd || mode.blockCommentEnd; + if (!startString || !endString) return false; + var lead = options.blockCommentLead || mode.blockCommentLead; + var startLine = self.getLine(start), + open = startLine.indexOf(startString); + if (open == -1) return false; + var endLine = end == start ? startLine : self.getLine(end); + var close = endLine.indexOf(endString, end == start ? open + startString.length : 0); + var insideStart = Pos(start, open + 1), + insideEnd = Pos(end, close + 1); + if (close == -1 || !/comment/.test(self.getTokenTypeAt(insideStart)) || !/comment/.test(self.getTokenTypeAt(insideEnd)) || self.getRange(insideStart, insideEnd, "\n").indexOf(endString) > -1) return false; + + // Avoid killing block comments completely outside the selection. + // Positions of the last startString before the start of the selection, and the first endString after it. + var lastStart = startLine.lastIndexOf(startString, from.ch); + var firstEnd = lastStart == -1 ? -1 : startLine.slice(0, from.ch).indexOf(endString, lastStart + startString.length); + if (lastStart != -1 && firstEnd != -1 && firstEnd + endString.length != from.ch) return false; + // Positions of the first endString after the end of the selection, and the last startString before it. + firstEnd = endLine.indexOf(endString, to.ch); + var almostLastStart = endLine.slice(to.ch).lastIndexOf(startString, firstEnd - to.ch); + lastStart = firstEnd == -1 || almostLastStart == -1 ? -1 : to.ch + almostLastStart; + if (firstEnd != -1 && lastStart != -1 && lastStart != to.ch) return false; + self.operation(function () { + self.replaceRange("", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)), Pos(end, close + endString.length)); + var openEnd = open + startString.length; + if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length; + self.replaceRange("", Pos(start, open), Pos(start, openEnd)); + if (lead) for (var i = start + 1; i <= end; ++i) { + var line = self.getLine(i), + found = line.indexOf(lead); + if (found == -1 || nonWS.test(line.slice(0, found))) continue; + var foundEnd = found + lead.length; + if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length; + self.replaceRange("", Pos(i, found), Pos(i, foundEnd)); + } + }); + return true; + }); +}); + +/***/ }), + +/***/ "../../../node_modules/codemirror/addon/dialog/dialog.js": +/*!***************************************************************!*\ + !*** ../../../node_modules/codemirror/addon/dialog/dialog.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// Open simple dialogs on top of an editor. Relies on dialog.css. + +(function (mod) { + if (true) + // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"));else {} +})(function (CodeMirror) { + function dialogDiv(cm, template, bottom) { + var wrap = cm.getWrapperElement(); + var dialog; + dialog = wrap.appendChild(document.createElement("div")); + if (bottom) dialog.className = "CodeMirror-dialog CodeMirror-dialog-bottom";else dialog.className = "CodeMirror-dialog CodeMirror-dialog-top"; + if (typeof template == "string") { + dialog.innerHTML = template; + } else { + // Assuming it's a detached DOM element. + dialog.appendChild(template); + } + CodeMirror.addClass(wrap, 'dialog-opened'); + return dialog; + } + function closeNotification(cm, newVal) { + if (cm.state.currentNotificationClose) cm.state.currentNotificationClose(); + cm.state.currentNotificationClose = newVal; + } + CodeMirror.defineExtension("openDialog", function (template, callback, options) { + if (!options) options = {}; + closeNotification(this, null); + var dialog = dialogDiv(this, template, options.bottom); + var closed = false, + me = this; + function close(newVal) { + if (typeof newVal == 'string') { + inp.value = newVal; + } else { + if (closed) return; + closed = true; + CodeMirror.rmClass(dialog.parentNode, 'dialog-opened'); + dialog.parentNode.removeChild(dialog); + me.focus(); + if (options.onClose) options.onClose(dialog); + } + } + var inp = dialog.getElementsByTagName("input")[0], + button; + if (inp) { + inp.focus(); + if (options.value) { + inp.value = options.value; + if (options.selectValueOnOpen !== false) { + inp.select(); + } + } + if (options.onInput) CodeMirror.on(inp, "input", function (e) { + options.onInput(e, inp.value, close); + }); + if (options.onKeyUp) CodeMirror.on(inp, "keyup", function (e) { + options.onKeyUp(e, inp.value, close); + }); + CodeMirror.on(inp, "keydown", function (e) { + if (options && options.onKeyDown && options.onKeyDown(e, inp.value, close)) { + return; + } + if (e.keyCode == 27 || options.closeOnEnter !== false && e.keyCode == 13) { + inp.blur(); + CodeMirror.e_stop(e); + close(); + } + if (e.keyCode == 13) callback(inp.value, e); + }); + if (options.closeOnBlur !== false) CodeMirror.on(dialog, "focusout", function (evt) { + if (evt.relatedTarget !== null) close(); + }); + } else if (button = dialog.getElementsByTagName("button")[0]) { + CodeMirror.on(button, "click", function () { + close(); + me.focus(); + }); + if (options.closeOnBlur !== false) CodeMirror.on(button, "blur", close); + button.focus(); + } + return close; + }); + CodeMirror.defineExtension("openConfirm", function (template, callbacks, options) { + closeNotification(this, null); + var dialog = dialogDiv(this, template, options && options.bottom); + var buttons = dialog.getElementsByTagName("button"); + var closed = false, + me = this, + blurring = 1; + function close() { + if (closed) return; + closed = true; + CodeMirror.rmClass(dialog.parentNode, 'dialog-opened'); + dialog.parentNode.removeChild(dialog); + me.focus(); + } + buttons[0].focus(); + for (var i = 0; i < buttons.length; ++i) { + var b = buttons[i]; + (function (callback) { + CodeMirror.on(b, "click", function (e) { + CodeMirror.e_preventDefault(e); + close(); + if (callback) callback(me); + }); + })(callbacks[i]); + CodeMirror.on(b, "blur", function () { + --blurring; + setTimeout(function () { + if (blurring <= 0) close(); + }, 200); + }); + CodeMirror.on(b, "focus", function () { + ++blurring; + }); + } + }); + + /* + * openNotification + * Opens a notification, that can be closed with an optional timer + * (default 5000ms timer) and always closes on click. + * + * If a notification is opened while another is opened, it will close the + * currently opened one and open the new one immediately. + */ + CodeMirror.defineExtension("openNotification", function (template, options) { + closeNotification(this, close); + var dialog = dialogDiv(this, template, options && options.bottom); + var closed = false, + doneTimer; + var duration = options && typeof options.duration !== "undefined" ? options.duration : 5000; + function close() { + if (closed) return; + closed = true; + clearTimeout(doneTimer); + CodeMirror.rmClass(dialog.parentNode, 'dialog-opened'); + dialog.parentNode.removeChild(dialog); + } + CodeMirror.on(dialog, 'click', function (e) { + CodeMirror.e_preventDefault(e); + close(); + }); + if (duration) doneTimer = setTimeout(close, duration); + return close; + }); +}); + +/***/ }), + +/***/ "../../../node_modules/codemirror/addon/edit/closebrackets.js": +/*!********************************************************************!*\ + !*** ../../../node_modules/codemirror/addon/edit/closebrackets.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function (mod) { + if (true) + // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"));else {} +})(function (CodeMirror) { + var defaults = { + pairs: "()[]{}''\"\"", + closeBefore: ")]}'\":;>", + triples: "", + explode: "[]{}" + }; + var Pos = CodeMirror.Pos; + CodeMirror.defineOption("autoCloseBrackets", false, function (cm, val, old) { + if (old && old != CodeMirror.Init) { + cm.removeKeyMap(keyMap); + cm.state.closeBrackets = null; + } + if (val) { + ensureBound(getOption(val, "pairs")); + cm.state.closeBrackets = val; + cm.addKeyMap(keyMap); + } + }); + function getOption(conf, name) { + if (name == "pairs" && typeof conf == "string") return conf; + if (typeof conf == "object" && conf[name] != null) return conf[name]; + return defaults[name]; + } + var keyMap = { + Backspace: handleBackspace, + Enter: handleEnter + }; + function ensureBound(chars) { + for (var i = 0; i < chars.length; i++) { + var ch = chars.charAt(i), + key = "'" + ch + "'"; + if (!keyMap[key]) keyMap[key] = handler(ch); + } + } + ensureBound(defaults.pairs + "`"); + function handler(ch) { + return function (cm) { + return handleChar(cm, ch); + }; + } + function getConfig(cm) { + var deflt = cm.state.closeBrackets; + if (!deflt || deflt.override) return deflt; + var mode = cm.getModeAt(cm.getCursor()); + return mode.closeBrackets || deflt; + } + function handleBackspace(cm) { + var conf = getConfig(cm); + if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass; + var pairs = getOption(conf, "pairs"); + var ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) return CodeMirror.Pass; + var around = charsAround(cm, ranges[i].head); + if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass; + } + for (var i = ranges.length - 1; i >= 0; i--) { + var cur = ranges[i].head; + cm.replaceRange("", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1), "+delete"); + } + } + function handleEnter(cm) { + var conf = getConfig(cm); + var explode = conf && getOption(conf, "explode"); + if (!explode || cm.getOption("disableInput")) return CodeMirror.Pass; + var ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) return CodeMirror.Pass; + var around = charsAround(cm, ranges[i].head); + if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass; + } + cm.operation(function () { + var linesep = cm.lineSeparator() || "\n"; + cm.replaceSelection(linesep + linesep, null); + moveSel(cm, -1); + ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + var line = ranges[i].head.line; + cm.indentLine(line, null, true); + cm.indentLine(line + 1, null, true); + } + }); + } + function moveSel(cm, dir) { + var newRanges = [], + ranges = cm.listSelections(), + primary = 0; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + if (range.head == cm.getCursor()) primary = i; + var pos = range.head.ch || dir > 0 ? { + line: range.head.line, + ch: range.head.ch + dir + } : { + line: range.head.line - 1 + }; + newRanges.push({ + anchor: pos, + head: pos + }); + } + cm.setSelections(newRanges, primary); + } + function contractSelection(sel) { + var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0; + return { + anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)), + head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1)) + }; + } + function handleChar(cm, ch) { + var conf = getConfig(cm); + if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass; + var pairs = getOption(conf, "pairs"); + var pos = pairs.indexOf(ch); + if (pos == -1) return CodeMirror.Pass; + var closeBefore = getOption(conf, "closeBefore"); + var triples = getOption(conf, "triples"); + var identical = pairs.charAt(pos + 1) == ch; + var ranges = cm.listSelections(); + var opening = pos % 2 == 0; + var type; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i], + cur = range.head, + curType; + var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1)); + if (opening && !range.empty()) { + curType = "surround"; + } else if ((identical || !opening) && next == ch) { + if (identical && stringStartsAfter(cm, cur)) curType = "both";else if (triples.indexOf(ch) >= 0 && cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch) curType = "skipThree";else curType = "skip"; + } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 && cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch) { + if (cur.ch > 2 && /\bstring/.test(cm.getTokenTypeAt(Pos(cur.line, cur.ch - 2)))) return CodeMirror.Pass; + curType = "addFour"; + } else if (identical) { + var prev = cur.ch == 0 ? " " : cm.getRange(Pos(cur.line, cur.ch - 1), cur); + if (!CodeMirror.isWordChar(next) && prev != ch && !CodeMirror.isWordChar(prev)) curType = "both";else return CodeMirror.Pass; + } else if (opening && (next.length === 0 || /\s/.test(next) || closeBefore.indexOf(next) > -1)) { + curType = "both"; + } else { + return CodeMirror.Pass; + } + if (!type) type = curType;else if (type != curType) return CodeMirror.Pass; + } + var left = pos % 2 ? pairs.charAt(pos - 1) : ch; + var right = pos % 2 ? ch : pairs.charAt(pos + 1); + cm.operation(function () { + if (type == "skip") { + moveSel(cm, 1); + } else if (type == "skipThree") { + moveSel(cm, 3); + } else if (type == "surround") { + var sels = cm.getSelections(); + for (var i = 0; i < sels.length; i++) sels[i] = left + sels[i] + right; + cm.replaceSelections(sels, "around"); + sels = cm.listSelections().slice(); + for (var i = 0; i < sels.length; i++) sels[i] = contractSelection(sels[i]); + cm.setSelections(sels); + } else if (type == "both") { + cm.replaceSelection(left + right, null); + cm.triggerElectric(left + right); + moveSel(cm, -1); + } else if (type == "addFour") { + cm.replaceSelection(left + left + left + left, "before"); + moveSel(cm, 1); + } + }); + } + function charsAround(cm, pos) { + var str = cm.getRange(Pos(pos.line, pos.ch - 1), Pos(pos.line, pos.ch + 1)); + return str.length == 2 ? str : null; + } + function stringStartsAfter(cm, pos) { + var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1)); + return /\bstring/.test(token.type) && token.start == pos.ch && (pos.ch == 0 || !/\bstring/.test(cm.getTokenTypeAt(pos))); + } +}); + +/***/ }), + +/***/ "../../../node_modules/codemirror/addon/edit/matchbrackets.js": +/*!********************************************************************!*\ + !*** ../../../node_modules/codemirror/addon/edit/matchbrackets.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function (mod) { + if (true) + // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"));else {} +})(function (CodeMirror) { + var ie_lt8 = /MSIE \d/.test(navigator.userAgent) && (document.documentMode == null || document.documentMode < 8); + var Pos = CodeMirror.Pos; + var matching = { + "(": ")>", + ")": "(<", + "[": "]>", + "]": "[<", + "{": "}>", + "}": "{<", + "<": ">>", + ">": "<<" + }; + function bracketRegex(config) { + return config && config.bracketRegex || /[(){}[\]]/; + } + function findMatchingBracket(cm, where, config) { + var line = cm.getLineHandle(where.line), + pos = where.ch - 1; + var afterCursor = config && config.afterCursor; + if (afterCursor == null) afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className); + var re = bracketRegex(config); + + // A cursor is defined as between two characters, but in in vim command mode + // (i.e. not insert mode), the cursor is visually represented as a + // highlighted box on top of the 2nd character. Otherwise, we allow matches + // from before or after the cursor. + var match = !afterCursor && pos >= 0 && re.test(line.text.charAt(pos)) && matching[line.text.charAt(pos)] || re.test(line.text.charAt(pos + 1)) && matching[line.text.charAt(++pos)]; + if (!match) return null; + var dir = match.charAt(1) == ">" ? 1 : -1; + if (config && config.strict && dir > 0 != (pos == where.ch)) return null; + var style = cm.getTokenTypeAt(Pos(where.line, pos + 1)); + var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style, config); + if (found == null) return null; + return { + from: Pos(where.line, pos), + to: found && found.pos, + match: found && found.ch == match.charAt(0), + forward: dir > 0 + }; + } + + // bracketRegex is used to specify which type of bracket to scan + // should be a regexp, e.g. /[[\]]/ + // + // Note: If "where" is on an open bracket, then this bracket is ignored. + // + // Returns false when no bracket was found, null when it reached + // maxScanLines and gave up + function scanForBracket(cm, where, dir, style, config) { + var maxScanLen = config && config.maxScanLineLength || 10000; + var maxScanLines = config && config.maxScanLines || 1000; + var stack = []; + var re = bracketRegex(config); + var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1) : Math.max(cm.firstLine() - 1, where.line - maxScanLines); + for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) { + var line = cm.getLine(lineNo); + if (!line) continue; + var pos = dir > 0 ? 0 : line.length - 1, + end = dir > 0 ? line.length : -1; + if (line.length > maxScanLen) continue; + if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0); + for (; pos != end; pos += dir) { + var ch = line.charAt(pos); + if (re.test(ch) && (style === undefined || (cm.getTokenTypeAt(Pos(lineNo, pos + 1)) || "") == (style || ""))) { + var match = matching[ch]; + if (match && match.charAt(1) == ">" == dir > 0) stack.push(ch);else if (!stack.length) return { + pos: Pos(lineNo, pos), + ch: ch + };else stack.pop(); + } + } + } + return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null; + } + function matchBrackets(cm, autoclear, config) { + // Disable brace matching in long lines, since it'll cause hugely slow updates + var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000, + highlightNonMatching = config && config.highlightNonMatching; + var marks = [], + ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config); + if (match && (match.match || highlightNonMatching !== false) && cm.getLine(match.from.line).length <= maxHighlightLen) { + var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket"; + marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), { + className: style + })); + if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen) marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), { + className: style + })); + } + } + if (marks.length) { + // Kludge to work around the IE bug from issue #1193, where text + // input stops going to the textarea whenever this fires. + if (ie_lt8 && cm.state.focused) cm.focus(); + var clear = function () { + cm.operation(function () { + for (var i = 0; i < marks.length; i++) marks[i].clear(); + }); + }; + if (autoclear) setTimeout(clear, 800);else return clear; + } + } + function doMatchBrackets(cm) { + cm.operation(function () { + if (cm.state.matchBrackets.currentlyHighlighted) { + cm.state.matchBrackets.currentlyHighlighted(); + cm.state.matchBrackets.currentlyHighlighted = null; + } + cm.state.matchBrackets.currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets); + }); + } + function clearHighlighted(cm) { + if (cm.state.matchBrackets && cm.state.matchBrackets.currentlyHighlighted) { + cm.state.matchBrackets.currentlyHighlighted(); + cm.state.matchBrackets.currentlyHighlighted = null; + } + } + CodeMirror.defineOption("matchBrackets", false, function (cm, val, old) { + if (old && old != CodeMirror.Init) { + cm.off("cursorActivity", doMatchBrackets); + cm.off("focus", doMatchBrackets); + cm.off("blur", clearHighlighted); + clearHighlighted(cm); + } + if (val) { + cm.state.matchBrackets = typeof val == "object" ? val : {}; + cm.on("cursorActivity", doMatchBrackets); + cm.on("focus", doMatchBrackets); + cm.on("blur", clearHighlighted); + } + }); + CodeMirror.defineExtension("matchBrackets", function () { + matchBrackets(this, true); + }); + CodeMirror.defineExtension("findMatchingBracket", function (pos, config, oldConfig) { + // Backwards-compatibility kludge + if (oldConfig || typeof config == "boolean") { + if (!oldConfig) { + config = config ? { + strict: true + } : null; + } else { + oldConfig.strict = config; + config = oldConfig; + } + } + return findMatchingBracket(this, pos, config); + }); + CodeMirror.defineExtension("scanForBracket", function (pos, dir, style, config) { + return scanForBracket(this, pos, dir, style, config); + }); +}); + +/***/ }), + +/***/ "../../../node_modules/codemirror/addon/fold/brace-fold.js": +/*!*****************************************************************!*\ + !*** ../../../node_modules/codemirror/addon/fold/brace-fold.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function (mod) { + if (true) + // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"));else {} +})(function (CodeMirror) { + "use strict"; + + function bracketFolding(pairs) { + return function (cm, start) { + var line = start.line, + lineText = cm.getLine(line); + function findOpening(pair) { + var tokenType; + for (var at = start.ch, pass = 0;;) { + var found = at <= 0 ? -1 : lineText.lastIndexOf(pair[0], at - 1); + if (found == -1) { + if (pass == 1) break; + pass = 1; + at = lineText.length; + continue; + } + if (pass == 1 && found < start.ch) break; + tokenType = cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1)); + if (!/^(comment|string)/.test(tokenType)) return { + ch: found + 1, + tokenType: tokenType, + pair: pair + }; + at = found - 1; + } + } + function findRange(found) { + var count = 1, + lastLine = cm.lastLine(), + end, + startCh = found.ch, + endCh; + outer: for (var i = line; i <= lastLine; ++i) { + var text = cm.getLine(i), + pos = i == line ? startCh : 0; + for (;;) { + var nextOpen = text.indexOf(found.pair[0], pos), + nextClose = text.indexOf(found.pair[1], pos); + if (nextOpen < 0) nextOpen = text.length; + if (nextClose < 0) nextClose = text.length; + pos = Math.min(nextOpen, nextClose); + if (pos == text.length) break; + if (cm.getTokenTypeAt(CodeMirror.Pos(i, pos + 1)) == found.tokenType) { + if (pos == nextOpen) ++count;else if (! --count) { + end = i; + endCh = pos; + break outer; + } + } + ++pos; + } + } + if (end == null || line == end) return null; + return { + from: CodeMirror.Pos(line, startCh), + to: CodeMirror.Pos(end, endCh) + }; + } + var found = []; + for (var i = 0; i < pairs.length; i++) { + var open = findOpening(pairs[i]); + if (open) found.push(open); + } + found.sort(function (a, b) { + return a.ch - b.ch; + }); + for (var i = 0; i < found.length; i++) { + var range = findRange(found[i]); + if (range) return range; + } + return null; + }; + } + CodeMirror.registerHelper("fold", "brace", bracketFolding([["{", "}"], ["[", "]"]])); + CodeMirror.registerHelper("fold", "brace-paren", bracketFolding([["{", "}"], ["[", "]"], ["(", ")"]])); + CodeMirror.registerHelper("fold", "import", function (cm, start) { + function hasImport(line) { + if (line < cm.firstLine() || line > cm.lastLine()) return null; + var start = cm.getTokenAt(CodeMirror.Pos(line, 1)); + if (!/\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1)); + if (start.type != "keyword" || start.string != "import") return null; + // Now find closing semicolon, return its position + for (var i = line, e = Math.min(cm.lastLine(), line + 10); i <= e; ++i) { + var text = cm.getLine(i), + semi = text.indexOf(";"); + if (semi != -1) return { + startCh: start.end, + end: CodeMirror.Pos(i, semi) + }; + } + } + var startLine = start.line, + has = hasImport(startLine), + prev; + if (!has || hasImport(startLine - 1) || (prev = hasImport(startLine - 2)) && prev.end.line == startLine - 1) return null; + for (var end = has.end;;) { + var next = hasImport(end.line + 1); + if (next == null) break; + end = next.end; + } + return { + from: cm.clipPos(CodeMirror.Pos(startLine, has.startCh + 1)), + to: end + }; + }); + CodeMirror.registerHelper("fold", "include", function (cm, start) { + function hasInclude(line) { + if (line < cm.firstLine() || line > cm.lastLine()) return null; + var start = cm.getTokenAt(CodeMirror.Pos(line, 1)); + if (!/\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1)); + if (start.type == "meta" && start.string.slice(0, 8) == "#include") return start.start + 8; + } + var startLine = start.line, + has = hasInclude(startLine); + if (has == null || hasInclude(startLine - 1) != null) return null; + for (var end = startLine;;) { + var next = hasInclude(end + 1); + if (next == null) break; + ++end; + } + return { + from: CodeMirror.Pos(startLine, has + 1), + to: cm.clipPos(CodeMirror.Pos(end)) + }; + }); +}); + +/***/ }), + +/***/ "../../../node_modules/codemirror/addon/fold/foldcode.js": +/*!***************************************************************!*\ + !*** ../../../node_modules/codemirror/addon/fold/foldcode.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function (mod) { + if (true) + // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"));else {} +})(function (CodeMirror) { + "use strict"; + + function doFold(cm, pos, options, force) { + if (options && options.call) { + var finder = options; + options = null; + } else { + var finder = getOption(cm, options, "rangeFinder"); + } + if (typeof pos == "number") pos = CodeMirror.Pos(pos, 0); + var minSize = getOption(cm, options, "minFoldSize"); + function getRange(allowFolded) { + var range = finder(cm, pos); + if (!range || range.to.line - range.from.line < minSize) return null; + if (force === "fold") return range; + var marks = cm.findMarksAt(range.from); + for (var i = 0; i < marks.length; ++i) { + if (marks[i].__isFold) { + if (!allowFolded) return null; + range.cleared = true; + marks[i].clear(); + } + } + return range; + } + var range = getRange(true); + if (getOption(cm, options, "scanUp")) while (!range && pos.line > cm.firstLine()) { + pos = CodeMirror.Pos(pos.line - 1, 0); + range = getRange(false); + } + if (!range || range.cleared || force === "unfold") return; + var myWidget = makeWidget(cm, options, range); + CodeMirror.on(myWidget, "mousedown", function (e) { + myRange.clear(); + CodeMirror.e_preventDefault(e); + }); + var myRange = cm.markText(range.from, range.to, { + replacedWith: myWidget, + clearOnEnter: getOption(cm, options, "clearOnEnter"), + __isFold: true + }); + myRange.on("clear", function (from, to) { + CodeMirror.signal(cm, "unfold", cm, from, to); + }); + CodeMirror.signal(cm, "fold", cm, range.from, range.to); + } + function makeWidget(cm, options, range) { + var widget = getOption(cm, options, "widget"); + if (typeof widget == "function") { + widget = widget(range.from, range.to); + } + if (typeof widget == "string") { + var text = document.createTextNode(widget); + widget = document.createElement("span"); + widget.appendChild(text); + widget.className = "CodeMirror-foldmarker"; + } else if (widget) { + widget = widget.cloneNode(true); + } + return widget; + } + + // Clumsy backwards-compatible interface + CodeMirror.newFoldFunction = function (rangeFinder, widget) { + return function (cm, pos) { + doFold(cm, pos, { + rangeFinder: rangeFinder, + widget: widget + }); + }; + }; + + // New-style interface + CodeMirror.defineExtension("foldCode", function (pos, options, force) { + doFold(this, pos, options, force); + }); + CodeMirror.defineExtension("isFolded", function (pos) { + var marks = this.findMarksAt(pos); + for (var i = 0; i < marks.length; ++i) if (marks[i].__isFold) return true; + }); + CodeMirror.commands.toggleFold = function (cm) { + cm.foldCode(cm.getCursor()); + }; + CodeMirror.commands.fold = function (cm) { + cm.foldCode(cm.getCursor(), null, "fold"); + }; + CodeMirror.commands.unfold = function (cm) { + cm.foldCode(cm.getCursor(), { + scanUp: false + }, "unfold"); + }; + CodeMirror.commands.foldAll = function (cm) { + cm.operation(function () { + for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++) cm.foldCode(CodeMirror.Pos(i, 0), { + scanUp: false + }, "fold"); + }); + }; + CodeMirror.commands.unfoldAll = function (cm) { + cm.operation(function () { + for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++) cm.foldCode(CodeMirror.Pos(i, 0), { + scanUp: false + }, "unfold"); + }); + }; + CodeMirror.registerHelper("fold", "combine", function () { + var funcs = Array.prototype.slice.call(arguments, 0); + return function (cm, start) { + for (var i = 0; i < funcs.length; ++i) { + var found = funcs[i](cm, start); + if (found) return found; + } + }; + }); + CodeMirror.registerHelper("fold", "auto", function (cm, start) { + var helpers = cm.getHelpers(start, "fold"); + for (var i = 0; i < helpers.length; i++) { + var cur = helpers[i](cm, start); + if (cur) return cur; + } + }); + var defaultOptions = { + rangeFinder: CodeMirror.fold.auto, + widget: "\u2194", + minFoldSize: 0, + scanUp: false, + clearOnEnter: true + }; + CodeMirror.defineOption("foldOptions", null); + function getOption(cm, options, name) { + if (options && options[name] !== undefined) return options[name]; + var editorOptions = cm.options.foldOptions; + if (editorOptions && editorOptions[name] !== undefined) return editorOptions[name]; + return defaultOptions[name]; + } + CodeMirror.defineExtension("foldOption", function (options, name) { + return getOption(this, options, name); + }); +}); + +/***/ }), + +/***/ "../../../node_modules/codemirror/addon/fold/foldgutter.js": +/*!*****************************************************************!*\ + !*** ../../../node_modules/codemirror/addon/fold/foldgutter.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function (mod) { + if (true) + // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"), __webpack_require__(/*! ./foldcode */ "../../../node_modules/codemirror/addon/fold/foldcode.js"));else {} +})(function (CodeMirror) { + "use strict"; + + CodeMirror.defineOption("foldGutter", false, function (cm, val, old) { + if (old && old != CodeMirror.Init) { + cm.clearGutter(cm.state.foldGutter.options.gutter); + cm.state.foldGutter = null; + cm.off("gutterClick", onGutterClick); + cm.off("changes", onChange); + cm.off("viewportChange", onViewportChange); + cm.off("fold", onFold); + cm.off("unfold", onFold); + cm.off("swapDoc", onChange); + } + if (val) { + cm.state.foldGutter = new State(parseOptions(val)); + updateInViewport(cm); + cm.on("gutterClick", onGutterClick); + cm.on("changes", onChange); + cm.on("viewportChange", onViewportChange); + cm.on("fold", onFold); + cm.on("unfold", onFold); + cm.on("swapDoc", onChange); + } + }); + var Pos = CodeMirror.Pos; + function State(options) { + this.options = options; + this.from = this.to = 0; + } + function parseOptions(opts) { + if (opts === true) opts = {}; + if (opts.gutter == null) opts.gutter = "CodeMirror-foldgutter"; + if (opts.indicatorOpen == null) opts.indicatorOpen = "CodeMirror-foldgutter-open"; + if (opts.indicatorFolded == null) opts.indicatorFolded = "CodeMirror-foldgutter-folded"; + return opts; + } + function isFolded(cm, line) { + var marks = cm.findMarks(Pos(line, 0), Pos(line + 1, 0)); + for (var i = 0; i < marks.length; ++i) { + if (marks[i].__isFold) { + var fromPos = marks[i].find(-1); + if (fromPos && fromPos.line === line) return marks[i]; + } + } + } + function marker(spec) { + if (typeof spec == "string") { + var elt = document.createElement("div"); + elt.className = spec + " CodeMirror-guttermarker-subtle"; + return elt; + } else { + return spec.cloneNode(true); + } + } + function updateFoldInfo(cm, from, to) { + var opts = cm.state.foldGutter.options, + cur = from - 1; + var minSize = cm.foldOption(opts, "minFoldSize"); + var func = cm.foldOption(opts, "rangeFinder"); + // we can reuse the built-in indicator element if its className matches the new state + var clsFolded = typeof opts.indicatorFolded == "string" && classTest(opts.indicatorFolded); + var clsOpen = typeof opts.indicatorOpen == "string" && classTest(opts.indicatorOpen); + cm.eachLine(from, to, function (line) { + ++cur; + var mark = null; + var old = line.gutterMarkers; + if (old) old = old[opts.gutter]; + if (isFolded(cm, cur)) { + if (clsFolded && old && clsFolded.test(old.className)) return; + mark = marker(opts.indicatorFolded); + } else { + var pos = Pos(cur, 0); + var range = func && func(cm, pos); + if (range && range.to.line - range.from.line >= minSize) { + if (clsOpen && old && clsOpen.test(old.className)) return; + mark = marker(opts.indicatorOpen); + } + } + if (!mark && !old) return; + cm.setGutterMarker(line, opts.gutter, mark); + }); + } + + // copied from CodeMirror/src/util/dom.js + function classTest(cls) { + return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*"); + } + function updateInViewport(cm) { + var vp = cm.getViewport(), + state = cm.state.foldGutter; + if (!state) return; + cm.operation(function () { + updateFoldInfo(cm, vp.from, vp.to); + }); + state.from = vp.from; + state.to = vp.to; + } + function onGutterClick(cm, line, gutter) { + var state = cm.state.foldGutter; + if (!state) return; + var opts = state.options; + if (gutter != opts.gutter) return; + var folded = isFolded(cm, line); + if (folded) folded.clear();else cm.foldCode(Pos(line, 0), opts); + } + function onChange(cm) { + var state = cm.state.foldGutter; + if (!state) return; + var opts = state.options; + state.from = state.to = 0; + clearTimeout(state.changeUpdate); + state.changeUpdate = setTimeout(function () { + updateInViewport(cm); + }, opts.foldOnChangeTimeSpan || 600); + } + function onViewportChange(cm) { + var state = cm.state.foldGutter; + if (!state) return; + var opts = state.options; + clearTimeout(state.changeUpdate); + state.changeUpdate = setTimeout(function () { + var vp = cm.getViewport(); + if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) { + updateInViewport(cm); + } else { + cm.operation(function () { + if (vp.from < state.from) { + updateFoldInfo(cm, vp.from, state.from); + state.from = vp.from; + } + if (vp.to > state.to) { + updateFoldInfo(cm, state.to, vp.to); + state.to = vp.to; + } + }); + } + }, opts.updateViewportTimeSpan || 400); + } + function onFold(cm, from) { + var state = cm.state.foldGutter; + if (!state) return; + var line = from.line; + if (line >= state.from && line < state.to) updateFoldInfo(cm, line, line + 1); + } +}); + +/***/ }), + +/***/ "../../../node_modules/codemirror/addon/hint/show-hint.js": +/*!****************************************************************!*\ + !*** ../../../node_modules/codemirror/addon/hint/show-hint.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// declare global: DOMRect + +(function (mod) { + if (true) + // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"));else {} +})(function (CodeMirror) { + "use strict"; + + var HINT_ELEMENT_CLASS = "CodeMirror-hint"; + var ACTIVE_HINT_ELEMENT_CLASS = "CodeMirror-hint-active"; + + // This is the old interface, kept around for now to stay + // backwards-compatible. + CodeMirror.showHint = function (cm, getHints, options) { + if (!getHints) return cm.showHint(options); + if (options && options.async) getHints.async = true; + var newOpts = { + hint: getHints + }; + if (options) for (var prop in options) newOpts[prop] = options[prop]; + return cm.showHint(newOpts); + }; + CodeMirror.defineExtension("showHint", function (options) { + options = parseOptions(this, this.getCursor("start"), options); + var selections = this.listSelections(); + if (selections.length > 1) return; + // By default, don't allow completion when something is selected. + // A hint function can have a `supportsSelection` property to + // indicate that it can handle selections. + if (this.somethingSelected()) { + if (!options.hint.supportsSelection) return; + // Don't try with cross-line selections + for (var i = 0; i < selections.length; i++) if (selections[i].head.line != selections[i].anchor.line) return; + } + if (this.state.completionActive) this.state.completionActive.close(); + var completion = this.state.completionActive = new Completion(this, options); + if (!completion.options.hint) return; + CodeMirror.signal(this, "startCompletion", this); + completion.update(true); + }); + CodeMirror.defineExtension("closeHint", function () { + if (this.state.completionActive) this.state.completionActive.close(); + }); + function Completion(cm, options) { + this.cm = cm; + this.options = options; + this.widget = null; + this.debounce = 0; + this.tick = 0; + this.startPos = this.cm.getCursor("start"); + this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length; + if (this.options.updateOnCursorActivity) { + var self = this; + cm.on("cursorActivity", this.activityFunc = function () { + self.cursorActivity(); + }); + } + } + var requestAnimationFrame = window.requestAnimationFrame || function (fn) { + return setTimeout(fn, 1000 / 60); + }; + var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout; + Completion.prototype = { + close: function () { + if (!this.active()) return; + this.cm.state.completionActive = null; + this.tick = null; + if (this.options.updateOnCursorActivity) { + this.cm.off("cursorActivity", this.activityFunc); + } + if (this.widget && this.data) CodeMirror.signal(this.data, "close"); + if (this.widget) this.widget.close(); + CodeMirror.signal(this.cm, "endCompletion", this.cm); + }, + active: function () { + return this.cm.state.completionActive == this; + }, + pick: function (data, i) { + var completion = data.list[i], + self = this; + this.cm.operation(function () { + if (completion.hint) completion.hint(self.cm, data, completion);else self.cm.replaceRange(getText(completion), completion.from || data.from, completion.to || data.to, "complete"); + CodeMirror.signal(data, "pick", completion); + self.cm.scrollIntoView(); + }); + if (this.options.closeOnPick) { + this.close(); + } + }, + cursorActivity: function () { + if (this.debounce) { + cancelAnimationFrame(this.debounce); + this.debounce = 0; + } + var identStart = this.startPos; + if (this.data) { + identStart = this.data.from; + } + var pos = this.cm.getCursor(), + line = this.cm.getLine(pos.line); + if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch || pos.ch < identStart.ch || this.cm.somethingSelected() || !pos.ch || this.options.closeCharacters.test(line.charAt(pos.ch - 1))) { + this.close(); + } else { + var self = this; + this.debounce = requestAnimationFrame(function () { + self.update(); + }); + if (this.widget) this.widget.disable(); + } + }, + update: function (first) { + if (this.tick == null) return; + var self = this, + myTick = ++this.tick; + fetchHints(this.options.hint, this.cm, this.options, function (data) { + if (self.tick == myTick) self.finishUpdate(data, first); + }); + }, + finishUpdate: function (data, first) { + if (this.data) CodeMirror.signal(this.data, "update"); + var picked = this.widget && this.widget.picked || first && this.options.completeSingle; + if (this.widget) this.widget.close(); + this.data = data; + if (data && data.list.length) { + if (picked && data.list.length == 1) { + this.pick(data, 0); + } else { + this.widget = new Widget(this, data); + CodeMirror.signal(data, "shown"); + } + } + } + }; + function parseOptions(cm, pos, options) { + var editor = cm.options.hintOptions; + var out = {}; + for (var prop in defaultOptions) out[prop] = defaultOptions[prop]; + if (editor) for (var prop in editor) if (editor[prop] !== undefined) out[prop] = editor[prop]; + if (options) for (var prop in options) if (options[prop] !== undefined) out[prop] = options[prop]; + if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos); + return out; + } + function getText(completion) { + if (typeof completion == "string") return completion;else return completion.text; + } + function buildKeyMap(completion, handle) { + var baseMap = { + Up: function () { + handle.moveFocus(-1); + }, + Down: function () { + handle.moveFocus(1); + }, + PageUp: function () { + handle.moveFocus(-handle.menuSize() + 1, true); + }, + PageDown: function () { + handle.moveFocus(handle.menuSize() - 1, true); + }, + Home: function () { + handle.setFocus(0); + }, + End: function () { + handle.setFocus(handle.length - 1); + }, + Enter: handle.pick, + Tab: handle.pick, + Esc: handle.close + }; + var mac = /Mac/.test(navigator.platform); + if (mac) { + baseMap["Ctrl-P"] = function () { + handle.moveFocus(-1); + }; + baseMap["Ctrl-N"] = function () { + handle.moveFocus(1); + }; + } + var custom = completion.options.customKeys; + var ourMap = custom ? {} : baseMap; + function addBinding(key, val) { + var bound; + if (typeof val != "string") bound = function (cm) { + return val(cm, handle); + }; + // This mechanism is deprecated + else if (baseMap.hasOwnProperty(val)) bound = baseMap[val];else bound = val; + ourMap[key] = bound; + } + if (custom) for (var key in custom) if (custom.hasOwnProperty(key)) addBinding(key, custom[key]); + var extra = completion.options.extraKeys; + if (extra) for (var key in extra) if (extra.hasOwnProperty(key)) addBinding(key, extra[key]); + return ourMap; + } + function getHintElement(hintsElement, el) { + while (el && el != hintsElement) { + if (el.nodeName.toUpperCase() === "LI" && el.parentNode == hintsElement) return el; + el = el.parentNode; + } + } + function Widget(completion, data) { + this.id = "cm-complete-" + Math.floor(Math.random(1e6)); + this.completion = completion; + this.data = data; + this.picked = false; + var widget = this, + cm = completion.cm; + var ownerDocument = cm.getInputField().ownerDocument; + var parentWindow = ownerDocument.defaultView || ownerDocument.parentWindow; + var hints = this.hints = ownerDocument.createElement("ul"); + hints.setAttribute("role", "listbox"); + hints.setAttribute("aria-expanded", "true"); + hints.id = this.id; + var theme = completion.cm.options.theme; + hints.className = "CodeMirror-hints " + theme; + this.selectedHint = data.selectedHint || 0; + var completions = data.list; + for (var i = 0; i < completions.length; ++i) { + var elt = hints.appendChild(ownerDocument.createElement("li")), + cur = completions[i]; + var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? "" : " " + ACTIVE_HINT_ELEMENT_CLASS); + if (cur.className != null) className = cur.className + " " + className; + elt.className = className; + if (i == this.selectedHint) elt.setAttribute("aria-selected", "true"); + elt.id = this.id + "-" + i; + elt.setAttribute("role", "option"); + if (cur.render) cur.render(elt, data, cur);else elt.appendChild(ownerDocument.createTextNode(cur.displayText || getText(cur))); + elt.hintId = i; + } + var container = completion.options.container || ownerDocument.body; + var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null); + var left = pos.left, + top = pos.bottom, + below = true; + var offsetLeft = 0, + offsetTop = 0; + if (container !== ownerDocument.body) { + // We offset the cursor position because left and top are relative to the offsetParent's top left corner. + var isContainerPositioned = ['absolute', 'relative', 'fixed'].indexOf(parentWindow.getComputedStyle(container).position) !== -1; + var offsetParent = isContainerPositioned ? container : container.offsetParent; + var offsetParentPosition = offsetParent.getBoundingClientRect(); + var bodyPosition = ownerDocument.body.getBoundingClientRect(); + offsetLeft = offsetParentPosition.left - bodyPosition.left - offsetParent.scrollLeft; + offsetTop = offsetParentPosition.top - bodyPosition.top - offsetParent.scrollTop; + } + hints.style.left = left - offsetLeft + "px"; + hints.style.top = top - offsetTop + "px"; + + // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor. + var winW = parentWindow.innerWidth || Math.max(ownerDocument.body.offsetWidth, ownerDocument.documentElement.offsetWidth); + var winH = parentWindow.innerHeight || Math.max(ownerDocument.body.offsetHeight, ownerDocument.documentElement.offsetHeight); + container.appendChild(hints); + cm.getInputField().setAttribute("aria-autocomplete", "list"); + cm.getInputField().setAttribute("aria-owns", this.id); + cm.getInputField().setAttribute("aria-activedescendant", this.id + "-" + this.selectedHint); + var box = completion.options.moveOnOverlap ? hints.getBoundingClientRect() : new DOMRect(); + var scrolls = completion.options.paddingForScrollbar ? hints.scrollHeight > hints.clientHeight + 1 : false; + + // Compute in the timeout to avoid reflow on init + var startScroll; + setTimeout(function () { + startScroll = cm.getScrollInfo(); + }); + var overlapY = box.bottom - winH; + if (overlapY > 0) { + var height = box.bottom - box.top, + curTop = pos.top - (pos.bottom - box.top); + if (curTop - height > 0) { + // Fits above cursor + hints.style.top = (top = pos.top - height - offsetTop) + "px"; + below = false; + } else if (height > winH) { + hints.style.height = winH - 5 + "px"; + hints.style.top = (top = pos.bottom - box.top - offsetTop) + "px"; + var cursor = cm.getCursor(); + if (data.from.ch != cursor.ch) { + pos = cm.cursorCoords(cursor); + hints.style.left = (left = pos.left - offsetLeft) + "px"; + box = hints.getBoundingClientRect(); + } + } + } + var overlapX = box.right - winW; + if (scrolls) overlapX += cm.display.nativeBarWidth; + if (overlapX > 0) { + if (box.right - box.left > winW) { + hints.style.width = winW - 5 + "px"; + overlapX -= box.right - box.left - winW; + } + hints.style.left = (left = pos.left - overlapX - offsetLeft) + "px"; + } + if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling) node.style.paddingRight = cm.display.nativeBarWidth + "px"; + cm.addKeyMap(this.keyMap = buildKeyMap(completion, { + moveFocus: function (n, avoidWrap) { + widget.changeActive(widget.selectedHint + n, avoidWrap); + }, + setFocus: function (n) { + widget.changeActive(n); + }, + menuSize: function () { + return widget.screenAmount(); + }, + length: completions.length, + close: function () { + completion.close(); + }, + pick: function () { + widget.pick(); + }, + data: data + })); + if (completion.options.closeOnUnfocus) { + var closingOnBlur; + cm.on("blur", this.onBlur = function () { + closingOnBlur = setTimeout(function () { + completion.close(); + }, 100); + }); + cm.on("focus", this.onFocus = function () { + clearTimeout(closingOnBlur); + }); + } + cm.on("scroll", this.onScroll = function () { + var curScroll = cm.getScrollInfo(), + editor = cm.getWrapperElement().getBoundingClientRect(); + if (!startScroll) startScroll = cm.getScrollInfo(); + var newTop = top + startScroll.top - curScroll.top; + var point = newTop - (parentWindow.pageYOffset || (ownerDocument.documentElement || ownerDocument.body).scrollTop); + if (!below) point += hints.offsetHeight; + if (point <= editor.top || point >= editor.bottom) return completion.close(); + hints.style.top = newTop + "px"; + hints.style.left = left + startScroll.left - curScroll.left + "px"; + }); + CodeMirror.on(hints, "dblclick", function (e) { + var t = getHintElement(hints, e.target || e.srcElement); + if (t && t.hintId != null) { + widget.changeActive(t.hintId); + widget.pick(); + } + }); + CodeMirror.on(hints, "click", function (e) { + var t = getHintElement(hints, e.target || e.srcElement); + if (t && t.hintId != null) { + widget.changeActive(t.hintId); + if (completion.options.completeOnSingleClick) widget.pick(); + } + }); + CodeMirror.on(hints, "mousedown", function () { + setTimeout(function () { + cm.focus(); + }, 20); + }); + + // The first hint doesn't need to be scrolled to on init + var selectedHintRange = this.getSelectedHintRange(); + if (selectedHintRange.from !== 0 || selectedHintRange.to !== 0) { + this.scrollToActive(); + } + CodeMirror.signal(data, "select", completions[this.selectedHint], hints.childNodes[this.selectedHint]); + return true; + } + Widget.prototype = { + close: function () { + if (this.completion.widget != this) return; + this.completion.widget = null; + if (this.hints.parentNode) this.hints.parentNode.removeChild(this.hints); + this.completion.cm.removeKeyMap(this.keyMap); + var input = this.completion.cm.getInputField(); + input.removeAttribute("aria-activedescendant"); + input.removeAttribute("aria-owns"); + var cm = this.completion.cm; + if (this.completion.options.closeOnUnfocus) { + cm.off("blur", this.onBlur); + cm.off("focus", this.onFocus); + } + cm.off("scroll", this.onScroll); + }, + disable: function () { + this.completion.cm.removeKeyMap(this.keyMap); + var widget = this; + this.keyMap = { + Enter: function () { + widget.picked = true; + } + }; + this.completion.cm.addKeyMap(this.keyMap); + }, + pick: function () { + this.completion.pick(this.data, this.selectedHint); + }, + changeActive: function (i, avoidWrap) { + if (i >= this.data.list.length) i = avoidWrap ? this.data.list.length - 1 : 0;else if (i < 0) i = avoidWrap ? 0 : this.data.list.length - 1; + if (this.selectedHint == i) return; + var node = this.hints.childNodes[this.selectedHint]; + if (node) { + node.className = node.className.replace(" " + ACTIVE_HINT_ELEMENT_CLASS, ""); + node.removeAttribute("aria-selected"); + } + node = this.hints.childNodes[this.selectedHint = i]; + node.className += " " + ACTIVE_HINT_ELEMENT_CLASS; + node.setAttribute("aria-selected", "true"); + this.completion.cm.getInputField().setAttribute("aria-activedescendant", node.id); + this.scrollToActive(); + CodeMirror.signal(this.data, "select", this.data.list[this.selectedHint], node); + }, + scrollToActive: function () { + var selectedHintRange = this.getSelectedHintRange(); + var node1 = this.hints.childNodes[selectedHintRange.from]; + var node2 = this.hints.childNodes[selectedHintRange.to]; + var firstNode = this.hints.firstChild; + if (node1.offsetTop < this.hints.scrollTop) this.hints.scrollTop = node1.offsetTop - firstNode.offsetTop;else if (node2.offsetTop + node2.offsetHeight > this.hints.scrollTop + this.hints.clientHeight) this.hints.scrollTop = node2.offsetTop + node2.offsetHeight - this.hints.clientHeight + firstNode.offsetTop; + }, + screenAmount: function () { + return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1; + }, + getSelectedHintRange: function () { + var margin = this.completion.options.scrollMargin || 0; + return { + from: Math.max(0, this.selectedHint - margin), + to: Math.min(this.data.list.length - 1, this.selectedHint + margin) + }; + } + }; + function applicableHelpers(cm, helpers) { + if (!cm.somethingSelected()) return helpers; + var result = []; + for (var i = 0; i < helpers.length; i++) if (helpers[i].supportsSelection) result.push(helpers[i]); + return result; + } + function fetchHints(hint, cm, options, callback) { + if (hint.async) { + hint(cm, callback, options); + } else { + var result = hint(cm, options); + if (result && result.then) result.then(callback);else callback(result); + } + } + function resolveAutoHints(cm, pos) { + var helpers = cm.getHelpers(pos, "hint"), + words; + if (helpers.length) { + var resolved = function (cm, callback, options) { + var app = applicableHelpers(cm, helpers); + function run(i) { + if (i == app.length) return callback(null); + fetchHints(app[i], cm, options, function (result) { + if (result && result.list.length > 0) callback(result);else run(i + 1); + }); + } + run(0); + }; + resolved.async = true; + resolved.supportsSelection = true; + return resolved; + } else if (words = cm.getHelper(cm.getCursor(), "hintWords")) { + return function (cm) { + return CodeMirror.hint.fromList(cm, { + words: words + }); + }; + } else if (CodeMirror.hint.anyword) { + return function (cm, options) { + return CodeMirror.hint.anyword(cm, options); + }; + } else { + return function () {}; + } + } + CodeMirror.registerHelper("hint", "auto", { + resolve: resolveAutoHints + }); + CodeMirror.registerHelper("hint", "fromList", function (cm, options) { + var cur = cm.getCursor(), + token = cm.getTokenAt(cur); + var term, + from = CodeMirror.Pos(cur.line, token.start), + to = cur; + if (token.start < cur.ch && /\w/.test(token.string.charAt(cur.ch - token.start - 1))) { + term = token.string.substr(0, cur.ch - token.start); + } else { + term = ""; + from = cur; + } + var found = []; + for (var i = 0; i < options.words.length; i++) { + var word = options.words[i]; + if (word.slice(0, term.length) == term) found.push(word); + } + if (found.length) return { + list: found, + from: from, + to: to + }; + }); + CodeMirror.commands.autocomplete = CodeMirror.showHint; + var defaultOptions = { + hint: CodeMirror.hint.auto, + completeSingle: true, + alignWithWord: true, + closeCharacters: /[\s()\[\]{};:>,]/, + closeOnPick: true, + closeOnUnfocus: true, + updateOnCursorActivity: true, + completeOnSingleClick: true, + container: null, + customKeys: null, + extraKeys: null, + paddingForScrollbar: true, + moveOnOverlap: true + }; + CodeMirror.defineOption("hintOptions", null); +}); + +/***/ }), + +/***/ "../../../node_modules/codemirror/addon/lint/lint.js": +/*!***********************************************************!*\ + !*** ../../../node_modules/codemirror/addon/lint/lint.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function (mod) { + if (true) + // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"));else {} +})(function (CodeMirror) { + "use strict"; + + var GUTTER_ID = "CodeMirror-lint-markers"; + var LINT_LINE_ID = "CodeMirror-lint-line-"; + function showTooltip(cm, e, content) { + var tt = document.createElement("div"); + tt.className = "CodeMirror-lint-tooltip cm-s-" + cm.options.theme; + tt.appendChild(content.cloneNode(true)); + if (cm.state.lint.options.selfContain) cm.getWrapperElement().appendChild(tt);else document.body.appendChild(tt); + function position(e) { + if (!tt.parentNode) return CodeMirror.off(document, "mousemove", position); + tt.style.top = Math.max(0, e.clientY - tt.offsetHeight - 5) + "px"; + tt.style.left = e.clientX + 5 + "px"; + } + CodeMirror.on(document, "mousemove", position); + position(e); + if (tt.style.opacity != null) tt.style.opacity = 1; + return tt; + } + function rm(elt) { + if (elt.parentNode) elt.parentNode.removeChild(elt); + } + function hideTooltip(tt) { + if (!tt.parentNode) return; + if (tt.style.opacity == null) rm(tt); + tt.style.opacity = 0; + setTimeout(function () { + rm(tt); + }, 600); + } + function showTooltipFor(cm, e, content, node) { + var tooltip = showTooltip(cm, e, content); + function hide() { + CodeMirror.off(node, "mouseout", hide); + if (tooltip) { + hideTooltip(tooltip); + tooltip = null; + } + } + var poll = setInterval(function () { + if (tooltip) for (var n = node;; n = n.parentNode) { + if (n && n.nodeType == 11) n = n.host; + if (n == document.body) return; + if (!n) { + hide(); + break; + } + } + if (!tooltip) return clearInterval(poll); + }, 400); + CodeMirror.on(node, "mouseout", hide); + } + function LintState(cm, conf, hasGutter) { + this.marked = []; + if (conf instanceof Function) conf = { + getAnnotations: conf + }; + if (!conf || conf === true) conf = {}; + this.options = {}; + this.linterOptions = conf.options || {}; + for (var prop in defaults) this.options[prop] = defaults[prop]; + for (var prop in conf) { + if (defaults.hasOwnProperty(prop)) { + if (conf[prop] != null) this.options[prop] = conf[prop]; + } else if (!conf.options) { + this.linterOptions[prop] = conf[prop]; + } + } + this.timeout = null; + this.hasGutter = hasGutter; + this.onMouseOver = function (e) { + onMouseOver(cm, e); + }; + this.waitingFor = 0; + } + var defaults = { + highlightLines: false, + tooltips: true, + delay: 500, + lintOnChange: true, + getAnnotations: null, + async: false, + selfContain: null, + formatAnnotation: null, + onUpdateLinting: null + }; + function clearMarks(cm) { + var state = cm.state.lint; + if (state.hasGutter) cm.clearGutter(GUTTER_ID); + if (state.options.highlightLines) clearErrorLines(cm); + for (var i = 0; i < state.marked.length; ++i) state.marked[i].clear(); + state.marked.length = 0; + } + function clearErrorLines(cm) { + cm.eachLine(function (line) { + var has = line.wrapClass && /\bCodeMirror-lint-line-\w+\b/.exec(line.wrapClass); + if (has) cm.removeLineClass(line, "wrap", has[0]); + }); + } + function makeMarker(cm, labels, severity, multiple, tooltips) { + var marker = document.createElement("div"), + inner = marker; + marker.className = "CodeMirror-lint-marker CodeMirror-lint-marker-" + severity; + if (multiple) { + inner = marker.appendChild(document.createElement("div")); + inner.className = "CodeMirror-lint-marker CodeMirror-lint-marker-multiple"; + } + if (tooltips != false) CodeMirror.on(inner, "mouseover", function (e) { + showTooltipFor(cm, e, labels, inner); + }); + return marker; + } + function getMaxSeverity(a, b) { + if (a == "error") return a;else return b; + } + function groupByLine(annotations) { + var lines = []; + for (var i = 0; i < annotations.length; ++i) { + var ann = annotations[i], + line = ann.from.line; + (lines[line] || (lines[line] = [])).push(ann); + } + return lines; + } + function annotationTooltip(ann) { + var severity = ann.severity; + if (!severity) severity = "error"; + var tip = document.createElement("div"); + tip.className = "CodeMirror-lint-message CodeMirror-lint-message-" + severity; + if (typeof ann.messageHTML != 'undefined') { + tip.innerHTML = ann.messageHTML; + } else { + tip.appendChild(document.createTextNode(ann.message)); + } + return tip; + } + function lintAsync(cm, getAnnotations) { + var state = cm.state.lint; + var id = ++state.waitingFor; + function abort() { + id = -1; + cm.off("change", abort); + } + cm.on("change", abort); + getAnnotations(cm.getValue(), function (annotations, arg2) { + cm.off("change", abort); + if (state.waitingFor != id) return; + if (arg2 && annotations instanceof CodeMirror) annotations = arg2; + cm.operation(function () { + updateLinting(cm, annotations); + }); + }, state.linterOptions, cm); + } + function startLinting(cm) { + var state = cm.state.lint; + if (!state) return; + var options = state.options; + /* + * Passing rules in `options` property prevents JSHint (and other linters) from complaining + * about unrecognized rules like `onUpdateLinting`, `delay`, `lintOnChange`, etc. + */ + var getAnnotations = options.getAnnotations || cm.getHelper(CodeMirror.Pos(0, 0), "lint"); + if (!getAnnotations) return; + if (options.async || getAnnotations.async) { + lintAsync(cm, getAnnotations); + } else { + var annotations = getAnnotations(cm.getValue(), state.linterOptions, cm); + if (!annotations) return; + if (annotations.then) annotations.then(function (issues) { + cm.operation(function () { + updateLinting(cm, issues); + }); + });else cm.operation(function () { + updateLinting(cm, annotations); + }); + } + } + function updateLinting(cm, annotationsNotSorted) { + var state = cm.state.lint; + if (!state) return; + var options = state.options; + clearMarks(cm); + var annotations = groupByLine(annotationsNotSorted); + for (var line = 0; line < annotations.length; ++line) { + var anns = annotations[line]; + if (!anns) continue; + + // filter out duplicate messages + var message = []; + anns = anns.filter(function (item) { + return message.indexOf(item.message) > -1 ? false : message.push(item.message); + }); + var maxSeverity = null; + var tipLabel = state.hasGutter && document.createDocumentFragment(); + for (var i = 0; i < anns.length; ++i) { + var ann = anns[i]; + var severity = ann.severity; + if (!severity) severity = "error"; + maxSeverity = getMaxSeverity(maxSeverity, severity); + if (options.formatAnnotation) ann = options.formatAnnotation(ann); + if (state.hasGutter) tipLabel.appendChild(annotationTooltip(ann)); + if (ann.to) state.marked.push(cm.markText(ann.from, ann.to, { + className: "CodeMirror-lint-mark CodeMirror-lint-mark-" + severity, + __annotation: ann + })); + } + // use original annotations[line] to show multiple messages + if (state.hasGutter) cm.setGutterMarker(line, GUTTER_ID, makeMarker(cm, tipLabel, maxSeverity, annotations[line].length > 1, options.tooltips)); + if (options.highlightLines) cm.addLineClass(line, "wrap", LINT_LINE_ID + maxSeverity); + } + if (options.onUpdateLinting) options.onUpdateLinting(annotationsNotSorted, annotations, cm); + } + function onChange(cm) { + var state = cm.state.lint; + if (!state) return; + clearTimeout(state.timeout); + state.timeout = setTimeout(function () { + startLinting(cm); + }, state.options.delay); + } + function popupTooltips(cm, annotations, e) { + var target = e.target || e.srcElement; + var tooltip = document.createDocumentFragment(); + for (var i = 0; i < annotations.length; i++) { + var ann = annotations[i]; + tooltip.appendChild(annotationTooltip(ann)); + } + showTooltipFor(cm, e, tooltip, target); + } + function onMouseOver(cm, e) { + var target = e.target || e.srcElement; + if (!/\bCodeMirror-lint-mark-/.test(target.className)) return; + var box = target.getBoundingClientRect(), + x = (box.left + box.right) / 2, + y = (box.top + box.bottom) / 2; + var spans = cm.findMarksAt(cm.coordsChar({ + left: x, + top: y + }, "client")); + var annotations = []; + for (var i = 0; i < spans.length; ++i) { + var ann = spans[i].__annotation; + if (ann) annotations.push(ann); + } + if (annotations.length) popupTooltips(cm, annotations, e); + } + CodeMirror.defineOption("lint", false, function (cm, val, old) { + if (old && old != CodeMirror.Init) { + clearMarks(cm); + if (cm.state.lint.options.lintOnChange !== false) cm.off("change", onChange); + CodeMirror.off(cm.getWrapperElement(), "mouseover", cm.state.lint.onMouseOver); + clearTimeout(cm.state.lint.timeout); + delete cm.state.lint; + } + if (val) { + var gutters = cm.getOption("gutters"), + hasLintGutter = false; + for (var i = 0; i < gutters.length; ++i) if (gutters[i] == GUTTER_ID) hasLintGutter = true; + var state = cm.state.lint = new LintState(cm, val, hasLintGutter); + if (state.options.lintOnChange) cm.on("change", onChange); + if (state.options.tooltips != false && state.options.tooltips != "gutter") CodeMirror.on(cm.getWrapperElement(), "mouseover", state.onMouseOver); + startLinting(cm); + } + }); + CodeMirror.defineExtension("performLint", function () { + startLinting(this); + }); +}); + +/***/ }), + +/***/ "../../../node_modules/codemirror/addon/search/jump-to-line.js": +/*!*********************************************************************!*\ + !*** ../../../node_modules/codemirror/addon/search/jump-to-line.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// Defines jumpToLine command. Uses dialog.js if present. + +(function (mod) { + if (true) + // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"), __webpack_require__(/*! ../dialog/dialog */ "../../../node_modules/codemirror/addon/dialog/dialog.js"));else {} +})(function (CodeMirror) { + "use strict"; + + // default search panel location + CodeMirror.defineOption("search", { + bottom: false + }); + function dialog(cm, text, shortText, deflt, f) { + if (cm.openDialog) cm.openDialog(text, f, { + value: deflt, + selectValueOnOpen: true, + bottom: cm.options.search.bottom + });else f(prompt(shortText, deflt)); + } + function getJumpDialog(cm) { + return cm.phrase("Jump to line:") + ' ' + cm.phrase("(Use line:column or scroll% syntax)") + ''; + } + function interpretLine(cm, string) { + var num = Number(string); + if (/^[-+]/.test(string)) return cm.getCursor().line + num;else return num - 1; + } + CodeMirror.commands.jumpToLine = function (cm) { + var cur = cm.getCursor(); + dialog(cm, getJumpDialog(cm), cm.phrase("Jump to line:"), cur.line + 1 + ":" + cur.ch, function (posStr) { + if (!posStr) return; + var match; + if (match = /^\s*([\+\-]?\d+)\s*\:\s*(\d+)\s*$/.exec(posStr)) { + cm.setCursor(interpretLine(cm, match[1]), Number(match[2])); + } else if (match = /^\s*([\+\-]?\d+(\.\d+)?)\%\s*/.exec(posStr)) { + var line = Math.round(cm.lineCount() * Number(match[1]) / 100); + if (/^[-+]/.test(match[1])) line = cur.line + line + 1; + cm.setCursor(line - 1, cur.ch); + } else if (match = /^\s*\:?\s*([\+\-]?\d+)\s*/.exec(posStr)) { + cm.setCursor(interpretLine(cm, match[1]), cur.ch); + } + }); + }; + CodeMirror.keyMap["default"]["Alt-G"] = "jumpToLine"; +}); + +/***/ }), + +/***/ "../../../node_modules/codemirror/addon/search/search.js": +/*!***************************************************************!*\ + !*** ../../../node_modules/codemirror/addon/search/search.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// Define search commands. Depends on dialog.js or another +// implementation of the openDialog method. + +// Replace works a little oddly -- it will do the replace on the next +// Ctrl-G (or whatever is bound to findNext) press. You prevent a +// replace by making sure the match is no longer selected when hitting +// Ctrl-G. + +(function (mod) { + if (true) + // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"), __webpack_require__(/*! ./searchcursor */ "../../../node_modules/codemirror/addon/search/searchcursor.js"), __webpack_require__(/*! ../dialog/dialog */ "../../../node_modules/codemirror/addon/dialog/dialog.js"));else {} +})(function (CodeMirror) { + "use strict"; + + // default search panel location + CodeMirror.defineOption("search", { + bottom: false + }); + function searchOverlay(query, caseInsensitive) { + if (typeof query == "string") query = new RegExp(query.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"), caseInsensitive ? "gi" : "g");else if (!query.global) query = new RegExp(query.source, query.ignoreCase ? "gi" : "g"); + return { + token: function (stream) { + query.lastIndex = stream.pos; + var match = query.exec(stream.string); + if (match && match.index == stream.pos) { + stream.pos += match[0].length || 1; + return "searching"; + } else if (match) { + stream.pos = match.index; + } else { + stream.skipToEnd(); + } + } + }; + } + function SearchState() { + this.posFrom = this.posTo = this.lastQuery = this.query = null; + this.overlay = null; + } + function getSearchState(cm) { + return cm.state.search || (cm.state.search = new SearchState()); + } + function queryCaseInsensitive(query) { + return typeof query == "string" && query == query.toLowerCase(); + } + function getSearchCursor(cm, query, pos) { + // Heuristic: if the query string is all lowercase, do a case insensitive search. + return cm.getSearchCursor(query, pos, { + caseFold: queryCaseInsensitive(query), + multiline: true + }); + } + function persistentDialog(cm, text, deflt, onEnter, onKeyDown) { + cm.openDialog(text, onEnter, { + value: deflt, + selectValueOnOpen: true, + closeOnEnter: false, + onClose: function () { + clearSearch(cm); + }, + onKeyDown: onKeyDown, + bottom: cm.options.search.bottom + }); + } + function dialog(cm, text, shortText, deflt, f) { + if (cm.openDialog) cm.openDialog(text, f, { + value: deflt, + selectValueOnOpen: true, + bottom: cm.options.search.bottom + });else f(prompt(shortText, deflt)); + } + function confirmDialog(cm, text, shortText, fs) { + if (cm.openConfirm) cm.openConfirm(text, fs);else if (confirm(shortText)) fs[0](); + } + function parseString(string) { + return string.replace(/\\([nrt\\])/g, function (match, ch) { + if (ch == "n") return "\n"; + if (ch == "r") return "\r"; + if (ch == "t") return "\t"; + if (ch == "\\") return "\\"; + return match; + }); + } + function parseQuery(query) { + var isRE = query.match(/^\/(.*)\/([a-z]*)$/); + if (isRE) { + try { + query = new RegExp(isRE[1], isRE[2].indexOf("i") == -1 ? "" : "i"); + } catch (e) {} // Not a regular expression after all, do a string search + } else { + query = parseString(query); + } + if (typeof query == "string" ? query == "" : query.test("")) query = /x^/; + return query; + } + function startSearch(cm, state, query) { + state.queryText = query; + state.query = parseQuery(query); + cm.removeOverlay(state.overlay, queryCaseInsensitive(state.query)); + state.overlay = searchOverlay(state.query, queryCaseInsensitive(state.query)); + cm.addOverlay(state.overlay); + if (cm.showMatchesOnScrollbar) { + if (state.annotate) { + state.annotate.clear(); + state.annotate = null; + } + state.annotate = cm.showMatchesOnScrollbar(state.query, queryCaseInsensitive(state.query)); + } + } + function doSearch(cm, rev, persistent, immediate) { + var state = getSearchState(cm); + if (state.query) return findNext(cm, rev); + var q = cm.getSelection() || state.lastQuery; + if (q instanceof RegExp && q.source == "x^") q = null; + if (persistent && cm.openDialog) { + var hiding = null; + var searchNext = function (query, event) { + CodeMirror.e_stop(event); + if (!query) return; + if (query != state.queryText) { + startSearch(cm, state, query); + state.posFrom = state.posTo = cm.getCursor(); + } + if (hiding) hiding.style.opacity = 1; + findNext(cm, event.shiftKey, function (_, to) { + var dialog; + if (to.line < 3 && document.querySelector && (dialog = cm.display.wrapper.querySelector(".CodeMirror-dialog")) && dialog.getBoundingClientRect().bottom - 4 > cm.cursorCoords(to, "window").top) (hiding = dialog).style.opacity = .4; + }); + }; + persistentDialog(cm, getQueryDialog(cm), q, searchNext, function (event, query) { + var keyName = CodeMirror.keyName(event); + var extra = cm.getOption('extraKeys'), + cmd = extra && extra[keyName] || CodeMirror.keyMap[cm.getOption("keyMap")][keyName]; + if (cmd == "findNext" || cmd == "findPrev" || cmd == "findPersistentNext" || cmd == "findPersistentPrev") { + CodeMirror.e_stop(event); + startSearch(cm, getSearchState(cm), query); + cm.execCommand(cmd); + } else if (cmd == "find" || cmd == "findPersistent") { + CodeMirror.e_stop(event); + searchNext(query, event); + } + }); + if (immediate && q) { + startSearch(cm, state, q); + findNext(cm, rev); + } + } else { + dialog(cm, getQueryDialog(cm), "Search for:", q, function (query) { + if (query && !state.query) cm.operation(function () { + startSearch(cm, state, query); + state.posFrom = state.posTo = cm.getCursor(); + findNext(cm, rev); + }); + }); + } + } + function findNext(cm, rev, callback) { + cm.operation(function () { + var state = getSearchState(cm); + var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo); + if (!cursor.find(rev)) { + cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0)); + if (!cursor.find(rev)) return; + } + cm.setSelection(cursor.from(), cursor.to()); + cm.scrollIntoView({ + from: cursor.from(), + to: cursor.to() + }, 20); + state.posFrom = cursor.from(); + state.posTo = cursor.to(); + if (callback) callback(cursor.from(), cursor.to()); + }); + } + function clearSearch(cm) { + cm.operation(function () { + var state = getSearchState(cm); + state.lastQuery = state.query; + if (!state.query) return; + state.query = state.queryText = null; + cm.removeOverlay(state.overlay); + if (state.annotate) { + state.annotate.clear(); + state.annotate = null; + } + }); + } + function el(tag, attrs) { + var element = tag ? document.createElement(tag) : document.createDocumentFragment(); + for (var key in attrs) { + element[key] = attrs[key]; + } + for (var i = 2; i < arguments.length; i++) { + var child = arguments[i]; + element.appendChild(typeof child == "string" ? document.createTextNode(child) : child); + } + return element; + } + function getQueryDialog(cm) { + return el("", null, el("span", { + className: "CodeMirror-search-label" + }, cm.phrase("Search:")), " ", el("input", { + type: "text", + "style": "width: 10em", + className: "CodeMirror-search-field" + }), " ", el("span", { + style: "color: #888", + className: "CodeMirror-search-hint" + }, cm.phrase("(Use /re/ syntax for regexp search)"))); + } + function getReplaceQueryDialog(cm) { + return el("", null, " ", el("input", { + type: "text", + "style": "width: 10em", + className: "CodeMirror-search-field" + }), " ", el("span", { + style: "color: #888", + className: "CodeMirror-search-hint" + }, cm.phrase("(Use /re/ syntax for regexp search)"))); + } + function getReplacementQueryDialog(cm) { + return el("", null, el("span", { + className: "CodeMirror-search-label" + }, cm.phrase("With:")), " ", el("input", { + type: "text", + "style": "width: 10em", + className: "CodeMirror-search-field" + })); + } + function getDoReplaceConfirm(cm) { + return el("", null, el("span", { + className: "CodeMirror-search-label" + }, cm.phrase("Replace?")), " ", el("button", {}, cm.phrase("Yes")), " ", el("button", {}, cm.phrase("No")), " ", el("button", {}, cm.phrase("All")), " ", el("button", {}, cm.phrase("Stop"))); + } + function replaceAll(cm, query, text) { + cm.operation(function () { + for (var cursor = getSearchCursor(cm, query); cursor.findNext();) { + if (typeof query != "string") { + var match = cm.getRange(cursor.from(), cursor.to()).match(query); + cursor.replace(text.replace(/\$(\d)/g, function (_, i) { + return match[i]; + })); + } else cursor.replace(text); + } + }); + } + function replace(cm, all) { + if (cm.getOption("readOnly")) return; + var query = cm.getSelection() || getSearchState(cm).lastQuery; + var dialogText = all ? cm.phrase("Replace all:") : cm.phrase("Replace:"); + var fragment = el("", null, el("span", { + className: "CodeMirror-search-label" + }, dialogText), getReplaceQueryDialog(cm)); + dialog(cm, fragment, dialogText, query, function (query) { + if (!query) return; + query = parseQuery(query); + dialog(cm, getReplacementQueryDialog(cm), cm.phrase("Replace with:"), "", function (text) { + text = parseString(text); + if (all) { + replaceAll(cm, query, text); + } else { + clearSearch(cm); + var cursor = getSearchCursor(cm, query, cm.getCursor("from")); + var advance = function () { + var start = cursor.from(), + match; + if (!(match = cursor.findNext())) { + cursor = getSearchCursor(cm, query); + if (!(match = cursor.findNext()) || start && cursor.from().line == start.line && cursor.from().ch == start.ch) return; + } + cm.setSelection(cursor.from(), cursor.to()); + cm.scrollIntoView({ + from: cursor.from(), + to: cursor.to() + }); + confirmDialog(cm, getDoReplaceConfirm(cm), cm.phrase("Replace?"), [function () { + doReplace(match); + }, advance, function () { + replaceAll(cm, query, text); + }]); + }; + var doReplace = function (match) { + cursor.replace(typeof query == "string" ? text : text.replace(/\$(\d)/g, function (_, i) { + return match[i]; + })); + advance(); + }; + advance(); + } + }); + }); + } + CodeMirror.commands.find = function (cm) { + clearSearch(cm); + doSearch(cm); + }; + CodeMirror.commands.findPersistent = function (cm) { + clearSearch(cm); + doSearch(cm, false, true); + }; + CodeMirror.commands.findPersistentNext = function (cm) { + doSearch(cm, false, true, true); + }; + CodeMirror.commands.findPersistentPrev = function (cm) { + doSearch(cm, true, true, true); + }; + CodeMirror.commands.findNext = doSearch; + CodeMirror.commands.findPrev = function (cm) { + doSearch(cm, true); + }; + CodeMirror.commands.clearSearch = clearSearch; + CodeMirror.commands.replace = replace; + CodeMirror.commands.replaceAll = function (cm) { + replace(cm, true); + }; +}); + +/***/ }), + +/***/ "../../../node_modules/codemirror/addon/search/searchcursor.js": +/*!*********************************************************************!*\ + !*** ../../../node_modules/codemirror/addon/search/searchcursor.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function (mod) { + if (true) + // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"));else {} +})(function (CodeMirror) { + "use strict"; + + var Pos = CodeMirror.Pos; + function regexpFlags(regexp) { + var flags = regexp.flags; + return flags != null ? flags : (regexp.ignoreCase ? "i" : "") + (regexp.global ? "g" : "") + (regexp.multiline ? "m" : ""); + } + function ensureFlags(regexp, flags) { + var current = regexpFlags(regexp), + target = current; + for (var i = 0; i < flags.length; i++) if (target.indexOf(flags.charAt(i)) == -1) target += flags.charAt(i); + return current == target ? regexp : new RegExp(regexp.source, target); + } + function maybeMultiline(regexp) { + return /\\s|\\n|\n|\\W|\\D|\[\^/.test(regexp.source); + } + function searchRegexpForward(doc, regexp, start) { + regexp = ensureFlags(regexp, "g"); + for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) { + regexp.lastIndex = ch; + var string = doc.getLine(line), + match = regexp.exec(string); + if (match) return { + from: Pos(line, match.index), + to: Pos(line, match.index + match[0].length), + match: match + }; + } + } + function searchRegexpForwardMultiline(doc, regexp, start) { + if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start); + regexp = ensureFlags(regexp, "gm"); + var string, + chunk = 1; + for (var line = start.line, last = doc.lastLine(); line <= last;) { + // This grows the search buffer in exponentially-sized chunks + // between matches, so that nearby matches are fast and don't + // require concatenating the whole document (in case we're + // searching for something that has tons of matches), but at the + // same time, the amount of retries is limited. + for (var i = 0; i < chunk; i++) { + if (line > last) break; + var curLine = doc.getLine(line++); + string = string == null ? curLine : string + "\n" + curLine; + } + chunk = chunk * 2; + regexp.lastIndex = start.ch; + var match = regexp.exec(string); + if (match) { + var before = string.slice(0, match.index).split("\n"), + inside = match[0].split("\n"); + var startLine = start.line + before.length - 1, + startCh = before[before.length - 1].length; + return { + from: Pos(startLine, startCh), + to: Pos(startLine + inside.length - 1, inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length), + match: match + }; + } + } + } + function lastMatchIn(string, regexp, endMargin) { + var match, + from = 0; + while (from <= string.length) { + regexp.lastIndex = from; + var newMatch = regexp.exec(string); + if (!newMatch) break; + var end = newMatch.index + newMatch[0].length; + if (end > string.length - endMargin) break; + if (!match || end > match.index + match[0].length) match = newMatch; + from = newMatch.index + 1; + } + return match; + } + function searchRegexpBackward(doc, regexp, start) { + regexp = ensureFlags(regexp, "g"); + for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) { + var string = doc.getLine(line); + var match = lastMatchIn(string, regexp, ch < 0 ? 0 : string.length - ch); + if (match) return { + from: Pos(line, match.index), + to: Pos(line, match.index + match[0].length), + match: match + }; + } + } + function searchRegexpBackwardMultiline(doc, regexp, start) { + if (!maybeMultiline(regexp)) return searchRegexpBackward(doc, regexp, start); + regexp = ensureFlags(regexp, "gm"); + var string, + chunkSize = 1, + endMargin = doc.getLine(start.line).length - start.ch; + for (var line = start.line, first = doc.firstLine(); line >= first;) { + for (var i = 0; i < chunkSize && line >= first; i++) { + var curLine = doc.getLine(line--); + string = string == null ? curLine : curLine + "\n" + string; + } + chunkSize *= 2; + var match = lastMatchIn(string, regexp, endMargin); + if (match) { + var before = string.slice(0, match.index).split("\n"), + inside = match[0].split("\n"); + var startLine = line + before.length, + startCh = before[before.length - 1].length; + return { + from: Pos(startLine, startCh), + to: Pos(startLine + inside.length - 1, inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length), + match: match + }; + } + } + } + var doFold, noFold; + if (String.prototype.normalize) { + doFold = function (str) { + return str.normalize("NFD").toLowerCase(); + }; + noFold = function (str) { + return str.normalize("NFD"); + }; + } else { + doFold = function (str) { + return str.toLowerCase(); + }; + noFold = function (str) { + return str; + }; + } + + // Maps a position in a case-folded line back to a position in the original line + // (compensating for codepoints increasing in number during folding) + function adjustPos(orig, folded, pos, foldFunc) { + if (orig.length == folded.length) return pos; + for (var min = 0, max = pos + Math.max(0, orig.length - folded.length);;) { + if (min == max) return min; + var mid = min + max >> 1; + var len = foldFunc(orig.slice(0, mid)).length; + if (len == pos) return mid;else if (len > pos) max = mid;else min = mid + 1; + } + } + function searchStringForward(doc, query, start, caseFold) { + // Empty string would match anything and never progress, so we + // define it to match nothing instead. + if (!query.length) return null; + var fold = caseFold ? doFold : noFold; + var lines = fold(query).split(/\r|\n\r?/); + search: for (var line = start.line, ch = start.ch, last = doc.lastLine() + 1 - lines.length; line <= last; line++, ch = 0) { + var orig = doc.getLine(line).slice(ch), + string = fold(orig); + if (lines.length == 1) { + var found = string.indexOf(lines[0]); + if (found == -1) continue search; + var start = adjustPos(orig, string, found, fold) + ch; + return { + from: Pos(line, adjustPos(orig, string, found, fold) + ch), + to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold) + ch) + }; + } else { + var cutFrom = string.length - lines[0].length; + if (string.slice(cutFrom) != lines[0]) continue search; + for (var i = 1; i < lines.length - 1; i++) if (fold(doc.getLine(line + i)) != lines[i]) continue search; + var end = doc.getLine(line + lines.length - 1), + endString = fold(end), + lastLine = lines[lines.length - 1]; + if (endString.slice(0, lastLine.length) != lastLine) continue search; + return { + from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch), + to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold)) + }; + } + } + } + function searchStringBackward(doc, query, start, caseFold) { + if (!query.length) return null; + var fold = caseFold ? doFold : noFold; + var lines = fold(query).split(/\r|\n\r?/); + search: for (var line = start.line, ch = start.ch, first = doc.firstLine() - 1 + lines.length; line >= first; line--, ch = -1) { + var orig = doc.getLine(line); + if (ch > -1) orig = orig.slice(0, ch); + var string = fold(orig); + if (lines.length == 1) { + var found = string.lastIndexOf(lines[0]); + if (found == -1) continue search; + return { + from: Pos(line, adjustPos(orig, string, found, fold)), + to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold)) + }; + } else { + var lastLine = lines[lines.length - 1]; + if (string.slice(0, lastLine.length) != lastLine) continue search; + for (var i = 1, start = line - lines.length + 1; i < lines.length - 1; i++) if (fold(doc.getLine(start + i)) != lines[i]) continue search; + var top = doc.getLine(line + 1 - lines.length), + topString = fold(top); + if (topString.slice(topString.length - lines[0].length) != lines[0]) continue search; + return { + from: Pos(line + 1 - lines.length, adjustPos(top, topString, top.length - lines[0].length, fold)), + to: Pos(line, adjustPos(orig, string, lastLine.length, fold)) + }; + } + } + } + function SearchCursor(doc, query, pos, options) { + this.atOccurrence = false; + this.afterEmptyMatch = false; + this.doc = doc; + pos = pos ? doc.clipPos(pos) : Pos(0, 0); + this.pos = { + from: pos, + to: pos + }; + var caseFold; + if (typeof options == "object") { + caseFold = options.caseFold; + } else { + // Backwards compat for when caseFold was the 4th argument + caseFold = options; + options = null; + } + if (typeof query == "string") { + if (caseFold == null) caseFold = false; + this.matches = function (reverse, pos) { + return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold); + }; + } else { + query = ensureFlags(query, "gm"); + if (!options || options.multiline !== false) this.matches = function (reverse, pos) { + return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos); + };else this.matches = function (reverse, pos) { + return (reverse ? searchRegexpBackward : searchRegexpForward)(doc, query, pos); + }; + } + } + SearchCursor.prototype = { + findNext: function () { + return this.find(false); + }, + findPrevious: function () { + return this.find(true); + }, + find: function (reverse) { + var head = this.doc.clipPos(reverse ? this.pos.from : this.pos.to); + if (this.afterEmptyMatch && this.atOccurrence) { + // do not return the same 0 width match twice + head = Pos(head.line, head.ch); + if (reverse) { + head.ch--; + if (head.ch < 0) { + head.line--; + head.ch = (this.doc.getLine(head.line) || "").length; + } + } else { + head.ch++; + if (head.ch > (this.doc.getLine(head.line) || "").length) { + head.ch = 0; + head.line++; + } + } + if (CodeMirror.cmpPos(head, this.doc.clipPos(head)) != 0) { + return this.atOccurrence = false; + } + } + var result = this.matches(reverse, head); + this.afterEmptyMatch = result && CodeMirror.cmpPos(result.from, result.to) == 0; + if (result) { + this.pos = result; + this.atOccurrence = true; + return this.pos.match || true; + } else { + var end = Pos(reverse ? this.doc.firstLine() : this.doc.lastLine() + 1, 0); + this.pos = { + from: end, + to: end + }; + return this.atOccurrence = false; + } + }, + from: function () { + if (this.atOccurrence) return this.pos.from; + }, + to: function () { + if (this.atOccurrence) return this.pos.to; + }, + replace: function (newText, origin) { + if (!this.atOccurrence) return; + var lines = CodeMirror.splitLines(newText); + this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin); + this.pos.to = Pos(this.pos.from.line + lines.length - 1, lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0)); + } + }; + CodeMirror.defineExtension("getSearchCursor", function (query, pos, caseFold) { + return new SearchCursor(this.doc, query, pos, caseFold); + }); + CodeMirror.defineDocExtension("getSearchCursor", function (query, pos, caseFold) { + return new SearchCursor(this, query, pos, caseFold); + }); + CodeMirror.defineExtension("selectMatches", function (query, caseFold) { + var ranges = []; + var cur = this.getSearchCursor(query, this.getCursor("from"), caseFold); + while (cur.findNext()) { + if (CodeMirror.cmpPos(cur.to(), this.getCursor("to")) > 0) break; + ranges.push({ + anchor: cur.from(), + head: cur.to() + }); + } + if (ranges.length) this.setSelections(ranges, 0); + }); +}); + +/***/ }), + +/***/ "../../../node_modules/codemirror/keymap/sublime.js": +/*!**********************************************************!*\ + !*** ../../../node_modules/codemirror/keymap/sublime.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// A rough approximation of Sublime Text's keybindings +// Depends on addon/search/searchcursor.js and optionally addon/dialog/dialogs.js + +(function (mod) { + if (true) + // CommonJS + mod(__webpack_require__(/*! ../lib/codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"), __webpack_require__(/*! ../addon/search/searchcursor */ "../../../node_modules/codemirror/addon/search/searchcursor.js"), __webpack_require__(/*! ../addon/edit/matchbrackets */ "../../../node_modules/codemirror/addon/edit/matchbrackets.js"));else {} +})(function (CodeMirror) { + "use strict"; + + var cmds = CodeMirror.commands; + var Pos = CodeMirror.Pos; + + // This is not exactly Sublime's algorithm. I couldn't make heads or tails of that. + function findPosSubword(doc, start, dir) { + if (dir < 0 && start.ch == 0) return doc.clipPos(Pos(start.line - 1)); + var line = doc.getLine(start.line); + if (dir > 0 && start.ch >= line.length) return doc.clipPos(Pos(start.line + 1, 0)); + var state = "start", + type, + startPos = start.ch; + for (var pos = startPos, e = dir < 0 ? 0 : line.length, i = 0; pos != e; pos += dir, i++) { + var next = line.charAt(dir < 0 ? pos - 1 : pos); + var cat = next != "_" && CodeMirror.isWordChar(next) ? "w" : "o"; + if (cat == "w" && next.toUpperCase() == next) cat = "W"; + if (state == "start") { + if (cat != "o") { + state = "in"; + type = cat; + } else startPos = pos + dir; + } else if (state == "in") { + if (type != cat) { + if (type == "w" && cat == "W" && dir < 0) pos--; + if (type == "W" && cat == "w" && dir > 0) { + // From uppercase to lowercase + if (pos == startPos + 1) { + type = "w"; + continue; + } else pos--; + } + break; + } + } + } + return Pos(start.line, pos); + } + function moveSubword(cm, dir) { + cm.extendSelectionsBy(function (range) { + if (cm.display.shift || cm.doc.extend || range.empty()) return findPosSubword(cm.doc, range.head, dir);else return dir < 0 ? range.from() : range.to(); + }); + } + cmds.goSubwordLeft = function (cm) { + moveSubword(cm, -1); + }; + cmds.goSubwordRight = function (cm) { + moveSubword(cm, 1); + }; + cmds.scrollLineUp = function (cm) { + var info = cm.getScrollInfo(); + if (!cm.somethingSelected()) { + var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, "local"); + if (cm.getCursor().line >= visibleBottomLine) cm.execCommand("goLineUp"); + } + cm.scrollTo(null, info.top - cm.defaultTextHeight()); + }; + cmds.scrollLineDown = function (cm) { + var info = cm.getScrollInfo(); + if (!cm.somethingSelected()) { + var visibleTopLine = cm.lineAtHeight(info.top, "local") + 1; + if (cm.getCursor().line <= visibleTopLine) cm.execCommand("goLineDown"); + } + cm.scrollTo(null, info.top + cm.defaultTextHeight()); + }; + cmds.splitSelectionByLine = function (cm) { + var ranges = cm.listSelections(), + lineRanges = []; + for (var i = 0; i < ranges.length; i++) { + var from = ranges[i].from(), + to = ranges[i].to(); + for (var line = from.line; line <= to.line; ++line) if (!(to.line > from.line && line == to.line && to.ch == 0)) lineRanges.push({ + anchor: line == from.line ? from : Pos(line, 0), + head: line == to.line ? to : Pos(line) + }); + } + cm.setSelections(lineRanges, 0); + }; + cmds.singleSelectionTop = function (cm) { + var range = cm.listSelections()[0]; + cm.setSelection(range.anchor, range.head, { + scroll: false + }); + }; + cmds.selectLine = function (cm) { + var ranges = cm.listSelections(), + extended = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + extended.push({ + anchor: Pos(range.from().line, 0), + head: Pos(range.to().line + 1, 0) + }); + } + cm.setSelections(extended); + }; + function insertLine(cm, above) { + if (cm.isReadOnly()) return CodeMirror.Pass; + cm.operation(function () { + var len = cm.listSelections().length, + newSelection = [], + last = -1; + for (var i = 0; i < len; i++) { + var head = cm.listSelections()[i].head; + if (head.line <= last) continue; + var at = Pos(head.line + (above ? 0 : 1), 0); + cm.replaceRange("\n", at, null, "+insertLine"); + cm.indentLine(at.line, null, true); + newSelection.push({ + head: at, + anchor: at + }); + last = head.line + 1; + } + cm.setSelections(newSelection); + }); + cm.execCommand("indentAuto"); + } + cmds.insertLineAfter = function (cm) { + return insertLine(cm, false); + }; + cmds.insertLineBefore = function (cm) { + return insertLine(cm, true); + }; + function wordAt(cm, pos) { + var start = pos.ch, + end = start, + line = cm.getLine(pos.line); + while (start && CodeMirror.isWordChar(line.charAt(start - 1))) --start; + while (end < line.length && CodeMirror.isWordChar(line.charAt(end))) ++end; + return { + from: Pos(pos.line, start), + to: Pos(pos.line, end), + word: line.slice(start, end) + }; + } + cmds.selectNextOccurrence = function (cm) { + var from = cm.getCursor("from"), + to = cm.getCursor("to"); + var fullWord = cm.state.sublimeFindFullWord == cm.doc.sel; + if (CodeMirror.cmpPos(from, to) == 0) { + var word = wordAt(cm, from); + if (!word.word) return; + cm.setSelection(word.from, word.to); + fullWord = true; + } else { + var text = cm.getRange(from, to); + var query = fullWord ? new RegExp("\\b" + text + "\\b") : text; + var cur = cm.getSearchCursor(query, to); + var found = cur.findNext(); + if (!found) { + cur = cm.getSearchCursor(query, Pos(cm.firstLine(), 0)); + found = cur.findNext(); + } + if (!found || isSelectedRange(cm.listSelections(), cur.from(), cur.to())) return; + cm.addSelection(cur.from(), cur.to()); + } + if (fullWord) cm.state.sublimeFindFullWord = cm.doc.sel; + }; + cmds.skipAndSelectNextOccurrence = function (cm) { + var prevAnchor = cm.getCursor("anchor"), + prevHead = cm.getCursor("head"); + cmds.selectNextOccurrence(cm); + if (CodeMirror.cmpPos(prevAnchor, prevHead) != 0) { + cm.doc.setSelections(cm.doc.listSelections().filter(function (sel) { + return sel.anchor != prevAnchor || sel.head != prevHead; + })); + } + }; + function addCursorToSelection(cm, dir) { + var ranges = cm.listSelections(), + newRanges = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + var newAnchor = cm.findPosV(range.anchor, dir, "line", range.anchor.goalColumn); + var newHead = cm.findPosV(range.head, dir, "line", range.head.goalColumn); + newAnchor.goalColumn = range.anchor.goalColumn != null ? range.anchor.goalColumn : cm.cursorCoords(range.anchor, "div").left; + newHead.goalColumn = range.head.goalColumn != null ? range.head.goalColumn : cm.cursorCoords(range.head, "div").left; + var newRange = { + anchor: newAnchor, + head: newHead + }; + newRanges.push(range); + newRanges.push(newRange); + } + cm.setSelections(newRanges); + } + cmds.addCursorToPrevLine = function (cm) { + addCursorToSelection(cm, -1); + }; + cmds.addCursorToNextLine = function (cm) { + addCursorToSelection(cm, 1); + }; + function isSelectedRange(ranges, from, to) { + for (var i = 0; i < ranges.length; i++) if (CodeMirror.cmpPos(ranges[i].from(), from) == 0 && CodeMirror.cmpPos(ranges[i].to(), to) == 0) return true; + return false; + } + var mirror = "(){}[]"; + function selectBetweenBrackets(cm) { + var ranges = cm.listSelections(), + newRanges = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i], + pos = range.head, + opening = cm.scanForBracket(pos, -1); + if (!opening) return false; + for (;;) { + var closing = cm.scanForBracket(pos, 1); + if (!closing) return false; + if (closing.ch == mirror.charAt(mirror.indexOf(opening.ch) + 1)) { + var startPos = Pos(opening.pos.line, opening.pos.ch + 1); + if (CodeMirror.cmpPos(startPos, range.from()) == 0 && CodeMirror.cmpPos(closing.pos, range.to()) == 0) { + opening = cm.scanForBracket(opening.pos, -1); + if (!opening) return false; + } else { + newRanges.push({ + anchor: startPos, + head: closing.pos + }); + break; + } + } + pos = Pos(closing.pos.line, closing.pos.ch + 1); + } + } + cm.setSelections(newRanges); + return true; + } + cmds.selectScope = function (cm) { + selectBetweenBrackets(cm) || cm.execCommand("selectAll"); + }; + cmds.selectBetweenBrackets = function (cm) { + if (!selectBetweenBrackets(cm)) return CodeMirror.Pass; + }; + function puncType(type) { + return !type ? null : /\bpunctuation\b/.test(type) ? type : undefined; + } + cmds.goToBracket = function (cm) { + cm.extendSelectionsBy(function (range) { + var next = cm.scanForBracket(range.head, 1, puncType(cm.getTokenTypeAt(range.head))); + if (next && CodeMirror.cmpPos(next.pos, range.head) != 0) return next.pos; + var prev = cm.scanForBracket(range.head, -1, puncType(cm.getTokenTypeAt(Pos(range.head.line, range.head.ch + 1)))); + return prev && Pos(prev.pos.line, prev.pos.ch + 1) || range.head; + }); + }; + cmds.swapLineUp = function (cm) { + if (cm.isReadOnly()) return CodeMirror.Pass; + var ranges = cm.listSelections(), + linesToMove = [], + at = cm.firstLine() - 1, + newSels = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i], + from = range.from().line - 1, + to = range.to().line; + newSels.push({ + anchor: Pos(range.anchor.line - 1, range.anchor.ch), + head: Pos(range.head.line - 1, range.head.ch) + }); + if (range.to().ch == 0 && !range.empty()) --to; + if (from > at) linesToMove.push(from, to);else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to; + at = to; + } + cm.operation(function () { + for (var i = 0; i < linesToMove.length; i += 2) { + var from = linesToMove[i], + to = linesToMove[i + 1]; + var line = cm.getLine(from); + cm.replaceRange("", Pos(from, 0), Pos(from + 1, 0), "+swapLine"); + if (to > cm.lastLine()) cm.replaceRange("\n" + line, Pos(cm.lastLine()), null, "+swapLine");else cm.replaceRange(line + "\n", Pos(to, 0), null, "+swapLine"); + } + cm.setSelections(newSels); + cm.scrollIntoView(); + }); + }; + cmds.swapLineDown = function (cm) { + if (cm.isReadOnly()) return CodeMirror.Pass; + var ranges = cm.listSelections(), + linesToMove = [], + at = cm.lastLine() + 1; + for (var i = ranges.length - 1; i >= 0; i--) { + var range = ranges[i], + from = range.to().line + 1, + to = range.from().line; + if (range.to().ch == 0 && !range.empty()) from--; + if (from < at) linesToMove.push(from, to);else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to; + at = to; + } + cm.operation(function () { + for (var i = linesToMove.length - 2; i >= 0; i -= 2) { + var from = linesToMove[i], + to = linesToMove[i + 1]; + var line = cm.getLine(from); + if (from == cm.lastLine()) cm.replaceRange("", Pos(from - 1), Pos(from), "+swapLine");else cm.replaceRange("", Pos(from, 0), Pos(from + 1, 0), "+swapLine"); + cm.replaceRange(line + "\n", Pos(to, 0), null, "+swapLine"); + } + cm.scrollIntoView(); + }); + }; + cmds.toggleCommentIndented = function (cm) { + cm.toggleComment({ + indent: true + }); + }; + cmds.joinLines = function (cm) { + var ranges = cm.listSelections(), + joined = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i], + from = range.from(); + var start = from.line, + end = range.to().line; + while (i < ranges.length - 1 && ranges[i + 1].from().line == end) end = ranges[++i].to().line; + joined.push({ + start: start, + end: end, + anchor: !range.empty() && from + }); + } + cm.operation(function () { + var offset = 0, + ranges = []; + for (var i = 0; i < joined.length; i++) { + var obj = joined[i]; + var anchor = obj.anchor && Pos(obj.anchor.line - offset, obj.anchor.ch), + head; + for (var line = obj.start; line <= obj.end; line++) { + var actual = line - offset; + if (line == obj.end) head = Pos(actual, cm.getLine(actual).length + 1); + if (actual < cm.lastLine()) { + cm.replaceRange(" ", Pos(actual), Pos(actual + 1, /^\s*/.exec(cm.getLine(actual + 1))[0].length)); + ++offset; + } + } + ranges.push({ + anchor: anchor || head, + head: head + }); + } + cm.setSelections(ranges, 0); + }); + }; + cmds.duplicateLine = function (cm) { + cm.operation(function () { + var rangeCount = cm.listSelections().length; + for (var i = 0; i < rangeCount; i++) { + var range = cm.listSelections()[i]; + if (range.empty()) cm.replaceRange(cm.getLine(range.head.line) + "\n", Pos(range.head.line, 0));else cm.replaceRange(cm.getRange(range.from(), range.to()), range.from()); + } + cm.scrollIntoView(); + }); + }; + function sortLines(cm, caseSensitive, direction) { + if (cm.isReadOnly()) return CodeMirror.Pass; + var ranges = cm.listSelections(), + toSort = [], + selected; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + if (range.empty()) continue; + var from = range.from().line, + to = range.to().line; + while (i < ranges.length - 1 && ranges[i + 1].from().line == to) to = ranges[++i].to().line; + if (!ranges[i].to().ch) to--; + toSort.push(from, to); + } + if (toSort.length) selected = true;else toSort.push(cm.firstLine(), cm.lastLine()); + cm.operation(function () { + var ranges = []; + for (var i = 0; i < toSort.length; i += 2) { + var from = toSort[i], + to = toSort[i + 1]; + var start = Pos(from, 0), + end = Pos(to); + var lines = cm.getRange(start, end, false); + if (caseSensitive) lines.sort(function (a, b) { + return a < b ? -direction : a == b ? 0 : direction; + });else lines.sort(function (a, b) { + var au = a.toUpperCase(), + bu = b.toUpperCase(); + if (au != bu) { + a = au; + b = bu; + } + return a < b ? -direction : a == b ? 0 : direction; + }); + cm.replaceRange(lines, start, end); + if (selected) ranges.push({ + anchor: start, + head: Pos(to + 1, 0) + }); + } + if (selected) cm.setSelections(ranges, 0); + }); + } + cmds.sortLines = function (cm) { + sortLines(cm, true, 1); + }; + cmds.reverseSortLines = function (cm) { + sortLines(cm, true, -1); + }; + cmds.sortLinesInsensitive = function (cm) { + sortLines(cm, false, 1); + }; + cmds.reverseSortLinesInsensitive = function (cm) { + sortLines(cm, false, -1); + }; + cmds.nextBookmark = function (cm) { + var marks = cm.state.sublimeBookmarks; + if (marks) while (marks.length) { + var current = marks.shift(); + var found = current.find(); + if (found) { + marks.push(current); + return cm.setSelection(found.from, found.to); + } + } + }; + cmds.prevBookmark = function (cm) { + var marks = cm.state.sublimeBookmarks; + if (marks) while (marks.length) { + marks.unshift(marks.pop()); + var found = marks[marks.length - 1].find(); + if (!found) marks.pop();else return cm.setSelection(found.from, found.to); + } + }; + cmds.toggleBookmark = function (cm) { + var ranges = cm.listSelections(); + var marks = cm.state.sublimeBookmarks || (cm.state.sublimeBookmarks = []); + for (var i = 0; i < ranges.length; i++) { + var from = ranges[i].from(), + to = ranges[i].to(); + var found = ranges[i].empty() ? cm.findMarksAt(from) : cm.findMarks(from, to); + for (var j = 0; j < found.length; j++) { + if (found[j].sublimeBookmark) { + found[j].clear(); + for (var k = 0; k < marks.length; k++) if (marks[k] == found[j]) marks.splice(k--, 1); + break; + } + } + if (j == found.length) marks.push(cm.markText(from, to, { + sublimeBookmark: true, + clearWhenEmpty: false + })); + } + }; + cmds.clearBookmarks = function (cm) { + var marks = cm.state.sublimeBookmarks; + if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear(); + marks.length = 0; + }; + cmds.selectBookmarks = function (cm) { + var marks = cm.state.sublimeBookmarks, + ranges = []; + if (marks) for (var i = 0; i < marks.length; i++) { + var found = marks[i].find(); + if (!found) marks.splice(i--, 0);else ranges.push({ + anchor: found.from, + head: found.to + }); + } + if (ranges.length) cm.setSelections(ranges, 0); + }; + function modifyWordOrSelection(cm, mod) { + cm.operation(function () { + var ranges = cm.listSelections(), + indices = [], + replacements = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + if (range.empty()) { + indices.push(i); + replacements.push(""); + } else replacements.push(mod(cm.getRange(range.from(), range.to()))); + } + cm.replaceSelections(replacements, "around", "case"); + for (var i = indices.length - 1, at; i >= 0; i--) { + var range = ranges[indices[i]]; + if (at && CodeMirror.cmpPos(range.head, at) > 0) continue; + var word = wordAt(cm, range.head); + at = word.from; + cm.replaceRange(mod(word.word), word.from, word.to); + } + }); + } + cmds.smartBackspace = function (cm) { + if (cm.somethingSelected()) return CodeMirror.Pass; + cm.operation(function () { + var cursors = cm.listSelections(); + var indentUnit = cm.getOption("indentUnit"); + for (var i = cursors.length - 1; i >= 0; i--) { + var cursor = cursors[i].head; + var toStartOfLine = cm.getRange({ + line: cursor.line, + ch: 0 + }, cursor); + var column = CodeMirror.countColumn(toStartOfLine, null, cm.getOption("tabSize")); + + // Delete by one character by default + var deletePos = cm.findPosH(cursor, -1, "char", false); + if (toStartOfLine && !/\S/.test(toStartOfLine) && column % indentUnit == 0) { + var prevIndent = new Pos(cursor.line, CodeMirror.findColumn(toStartOfLine, column - indentUnit, indentUnit)); + + // Smart delete only if we found a valid prevIndent location + if (prevIndent.ch != cursor.ch) deletePos = prevIndent; + } + cm.replaceRange("", deletePos, cursor, "+delete"); + } + }); + }; + cmds.delLineRight = function (cm) { + cm.operation(function () { + var ranges = cm.listSelections(); + for (var i = ranges.length - 1; i >= 0; i--) cm.replaceRange("", ranges[i].anchor, Pos(ranges[i].to().line), "+delete"); + cm.scrollIntoView(); + }); + }; + cmds.upcaseAtCursor = function (cm) { + modifyWordOrSelection(cm, function (str) { + return str.toUpperCase(); + }); + }; + cmds.downcaseAtCursor = function (cm) { + modifyWordOrSelection(cm, function (str) { + return str.toLowerCase(); + }); + }; + cmds.setSublimeMark = function (cm) { + if (cm.state.sublimeMark) cm.state.sublimeMark.clear(); + cm.state.sublimeMark = cm.setBookmark(cm.getCursor()); + }; + cmds.selectToSublimeMark = function (cm) { + var found = cm.state.sublimeMark && cm.state.sublimeMark.find(); + if (found) cm.setSelection(cm.getCursor(), found); + }; + cmds.deleteToSublimeMark = function (cm) { + var found = cm.state.sublimeMark && cm.state.sublimeMark.find(); + if (found) { + var from = cm.getCursor(), + to = found; + if (CodeMirror.cmpPos(from, to) > 0) { + var tmp = to; + to = from; + from = tmp; + } + cm.state.sublimeKilled = cm.getRange(from, to); + cm.replaceRange("", from, to); + } + }; + cmds.swapWithSublimeMark = function (cm) { + var found = cm.state.sublimeMark && cm.state.sublimeMark.find(); + if (found) { + cm.state.sublimeMark.clear(); + cm.state.sublimeMark = cm.setBookmark(cm.getCursor()); + cm.setCursor(found); + } + }; + cmds.sublimeYank = function (cm) { + if (cm.state.sublimeKilled != null) cm.replaceSelection(cm.state.sublimeKilled, null, "paste"); + }; + cmds.showInCenter = function (cm) { + var pos = cm.cursorCoords(null, "local"); + cm.scrollTo(null, (pos.top + pos.bottom) / 2 - cm.getScrollInfo().clientHeight / 2); + }; + function getTarget(cm) { + var from = cm.getCursor("from"), + to = cm.getCursor("to"); + if (CodeMirror.cmpPos(from, to) == 0) { + var word = wordAt(cm, from); + if (!word.word) return; + from = word.from; + to = word.to; + } + return { + from: from, + to: to, + query: cm.getRange(from, to), + word: word + }; + } + function findAndGoTo(cm, forward) { + var target = getTarget(cm); + if (!target) return; + var query = target.query; + var cur = cm.getSearchCursor(query, forward ? target.to : target.from); + if (forward ? cur.findNext() : cur.findPrevious()) { + cm.setSelection(cur.from(), cur.to()); + } else { + cur = cm.getSearchCursor(query, forward ? Pos(cm.firstLine(), 0) : cm.clipPos(Pos(cm.lastLine()))); + if (forward ? cur.findNext() : cur.findPrevious()) cm.setSelection(cur.from(), cur.to());else if (target.word) cm.setSelection(target.from, target.to); + } + } + ; + cmds.findUnder = function (cm) { + findAndGoTo(cm, true); + }; + cmds.findUnderPrevious = function (cm) { + findAndGoTo(cm, false); + }; + cmds.findAllUnder = function (cm) { + var target = getTarget(cm); + if (!target) return; + var cur = cm.getSearchCursor(target.query); + var matches = []; + var primaryIndex = -1; + while (cur.findNext()) { + matches.push({ + anchor: cur.from(), + head: cur.to() + }); + if (cur.from().line <= target.from.line && cur.from().ch <= target.from.ch) primaryIndex++; + } + cm.setSelections(matches, primaryIndex); + }; + var keyMap = CodeMirror.keyMap; + keyMap.macSublime = { + "Cmd-Left": "goLineStartSmart", + "Shift-Tab": "indentLess", + "Shift-Ctrl-K": "deleteLine", + "Alt-Q": "wrapLines", + "Ctrl-Left": "goSubwordLeft", + "Ctrl-Right": "goSubwordRight", + "Ctrl-Alt-Up": "scrollLineUp", + "Ctrl-Alt-Down": "scrollLineDown", + "Cmd-L": "selectLine", + "Shift-Cmd-L": "splitSelectionByLine", + "Esc": "singleSelectionTop", + "Cmd-Enter": "insertLineAfter", + "Shift-Cmd-Enter": "insertLineBefore", + "Cmd-D": "selectNextOccurrence", + "Shift-Cmd-Space": "selectScope", + "Shift-Cmd-M": "selectBetweenBrackets", + "Cmd-M": "goToBracket", + "Cmd-Ctrl-Up": "swapLineUp", + "Cmd-Ctrl-Down": "swapLineDown", + "Cmd-/": "toggleCommentIndented", + "Cmd-J": "joinLines", + "Shift-Cmd-D": "duplicateLine", + "F5": "sortLines", + "Shift-F5": "reverseSortLines", + "Cmd-F5": "sortLinesInsensitive", + "Shift-Cmd-F5": "reverseSortLinesInsensitive", + "F2": "nextBookmark", + "Shift-F2": "prevBookmark", + "Cmd-F2": "toggleBookmark", + "Shift-Cmd-F2": "clearBookmarks", + "Alt-F2": "selectBookmarks", + "Backspace": "smartBackspace", + "Cmd-K Cmd-D": "skipAndSelectNextOccurrence", + "Cmd-K Cmd-K": "delLineRight", + "Cmd-K Cmd-U": "upcaseAtCursor", + "Cmd-K Cmd-L": "downcaseAtCursor", + "Cmd-K Cmd-Space": "setSublimeMark", + "Cmd-K Cmd-A": "selectToSublimeMark", + "Cmd-K Cmd-W": "deleteToSublimeMark", + "Cmd-K Cmd-X": "swapWithSublimeMark", + "Cmd-K Cmd-Y": "sublimeYank", + "Cmd-K Cmd-C": "showInCenter", + "Cmd-K Cmd-G": "clearBookmarks", + "Cmd-K Cmd-Backspace": "delLineLeft", + "Cmd-K Cmd-1": "foldAll", + "Cmd-K Cmd-0": "unfoldAll", + "Cmd-K Cmd-J": "unfoldAll", + "Ctrl-Shift-Up": "addCursorToPrevLine", + "Ctrl-Shift-Down": "addCursorToNextLine", + "Cmd-F3": "findUnder", + "Shift-Cmd-F3": "findUnderPrevious", + "Alt-F3": "findAllUnder", + "Shift-Cmd-[": "fold", + "Shift-Cmd-]": "unfold", + "Cmd-I": "findIncremental", + "Shift-Cmd-I": "findIncrementalReverse", + "Cmd-H": "replace", + "F3": "findNext", + "Shift-F3": "findPrev", + "fallthrough": "macDefault" + }; + CodeMirror.normalizeKeyMap(keyMap.macSublime); + keyMap.pcSublime = { + "Shift-Tab": "indentLess", + "Shift-Ctrl-K": "deleteLine", + "Alt-Q": "wrapLines", + "Ctrl-T": "transposeChars", + "Alt-Left": "goSubwordLeft", + "Alt-Right": "goSubwordRight", + "Ctrl-Up": "scrollLineUp", + "Ctrl-Down": "scrollLineDown", + "Ctrl-L": "selectLine", + "Shift-Ctrl-L": "splitSelectionByLine", + "Esc": "singleSelectionTop", + "Ctrl-Enter": "insertLineAfter", + "Shift-Ctrl-Enter": "insertLineBefore", + "Ctrl-D": "selectNextOccurrence", + "Shift-Ctrl-Space": "selectScope", + "Shift-Ctrl-M": "selectBetweenBrackets", + "Ctrl-M": "goToBracket", + "Shift-Ctrl-Up": "swapLineUp", + "Shift-Ctrl-Down": "swapLineDown", + "Ctrl-/": "toggleCommentIndented", + "Ctrl-J": "joinLines", + "Shift-Ctrl-D": "duplicateLine", + "F9": "sortLines", + "Shift-F9": "reverseSortLines", + "Ctrl-F9": "sortLinesInsensitive", + "Shift-Ctrl-F9": "reverseSortLinesInsensitive", + "F2": "nextBookmark", + "Shift-F2": "prevBookmark", + "Ctrl-F2": "toggleBookmark", + "Shift-Ctrl-F2": "clearBookmarks", + "Alt-F2": "selectBookmarks", + "Backspace": "smartBackspace", + "Ctrl-K Ctrl-D": "skipAndSelectNextOccurrence", + "Ctrl-K Ctrl-K": "delLineRight", + "Ctrl-K Ctrl-U": "upcaseAtCursor", + "Ctrl-K Ctrl-L": "downcaseAtCursor", + "Ctrl-K Ctrl-Space": "setSublimeMark", + "Ctrl-K Ctrl-A": "selectToSublimeMark", + "Ctrl-K Ctrl-W": "deleteToSublimeMark", + "Ctrl-K Ctrl-X": "swapWithSublimeMark", + "Ctrl-K Ctrl-Y": "sublimeYank", + "Ctrl-K Ctrl-C": "showInCenter", + "Ctrl-K Ctrl-G": "clearBookmarks", + "Ctrl-K Ctrl-Backspace": "delLineLeft", + "Ctrl-K Ctrl-1": "foldAll", + "Ctrl-K Ctrl-0": "unfoldAll", + "Ctrl-K Ctrl-J": "unfoldAll", + "Ctrl-Alt-Up": "addCursorToPrevLine", + "Ctrl-Alt-Down": "addCursorToNextLine", + "Ctrl-F3": "findUnder", + "Shift-Ctrl-F3": "findUnderPrevious", + "Alt-F3": "findAllUnder", + "Shift-Ctrl-[": "fold", + "Shift-Ctrl-]": "unfold", + "Ctrl-I": "findIncremental", + "Shift-Ctrl-I": "findIncrementalReverse", + "Ctrl-H": "replace", + "F3": "findNext", + "Shift-F3": "findPrev", + "fallthrough": "pcDefault" + }; + CodeMirror.normalizeKeyMap(keyMap.pcSublime); + var mac = keyMap.default == keyMap.macDefault; + keyMap.sublime = mac ? keyMap.macSublime : keyMap.pcSublime; +}); + +/***/ }), + +/***/ "../../../node_modules/codemirror/lib/codemirror.js": +/*!**********************************************************!*\ + !*** ../../../node_modules/codemirror/lib/codemirror.js ***! + \**********************************************************/ +/***/ (function(module) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// This is CodeMirror (https://codemirror.net), a code editor +// implemented in JavaScript on top of the browser's DOM. +// +// You can find some technical background for some of the code below +// at http://marijnhaverbeke.nl/blog/#cm-internals . + +(function (global, factory) { + true ? module.exports = factory() : 0; +})(void 0, function () { + 'use strict'; + + // Kludges for bugs and behavior differences that can't be feature + // detected are enabled based on userAgent etc sniffing. + var userAgent = navigator.userAgent; + var platform = navigator.platform; + var gecko = /gecko\/\d/i.test(userAgent); + var ie_upto10 = /MSIE \d/.test(userAgent); + var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent); + var edge = /Edge\/(\d+)/.exec(userAgent); + var ie = ie_upto10 || ie_11up || edge; + var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]); + var webkit = !edge && /WebKit\//.test(userAgent); + var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent); + var chrome = !edge && /Chrome\//.test(userAgent); + var presto = /Opera\//.test(userAgent); + var safari = /Apple Computer/.test(navigator.vendor); + var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent); + var phantom = /PhantomJS/.test(userAgent); + var ios = safari && (/Mobile\/\w+/.test(userAgent) || navigator.maxTouchPoints > 2); + var android = /Android/.test(userAgent); + // This is woefully incomplete. Suggestions for alternative methods welcome. + var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent); + var mac = ios || /Mac/.test(platform); + var chromeOS = /\bCrOS\b/.test(userAgent); + var windows = /win/i.test(platform); + var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/); + if (presto_version) { + presto_version = Number(presto_version[1]); + } + if (presto_version && presto_version >= 15) { + presto = false; + webkit = true; + } + // Some browsers use the wrong event properties to signal cmd/ctrl on OS X + var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11)); + var captureRightClick = gecko || ie && ie_version >= 9; + function classTest(cls) { + return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*"); + } + var rmClass = function (node, cls) { + var current = node.className; + var match = classTest(cls).exec(current); + if (match) { + var after = current.slice(match.index + match[0].length); + node.className = current.slice(0, match.index) + (after ? match[1] + after : ""); + } + }; + function removeChildren(e) { + for (var count = e.childNodes.length; count > 0; --count) { + e.removeChild(e.firstChild); + } + return e; + } + function removeChildrenAndAdd(parent, e) { + return removeChildren(parent).appendChild(e); + } + function elt(tag, content, className, style) { + var e = document.createElement(tag); + if (className) { + e.className = className; + } + if (style) { + e.style.cssText = style; + } + if (typeof content == "string") { + e.appendChild(document.createTextNode(content)); + } else if (content) { + for (var i = 0; i < content.length; ++i) { + e.appendChild(content[i]); + } + } + return e; + } + // wrapper for elt, which removes the elt from the accessibility tree + function eltP(tag, content, className, style) { + var e = elt(tag, content, className, style); + e.setAttribute("role", "presentation"); + return e; + } + var range; + if (document.createRange) { + range = function (node, start, end, endNode) { + var r = document.createRange(); + r.setEnd(endNode || node, end); + r.setStart(node, start); + return r; + }; + } else { + range = function (node, start, end) { + var r = document.body.createTextRange(); + try { + r.moveToElementText(node.parentNode); + } catch (e) { + return r; + } + r.collapse(true); + r.moveEnd("character", end); + r.moveStart("character", start); + return r; + }; + } + function contains(parent, child) { + if (child.nodeType == 3) + // Android browser always returns false when child is a textnode + { + child = child.parentNode; + } + if (parent.contains) { + return parent.contains(child); + } + do { + if (child.nodeType == 11) { + child = child.host; + } + if (child == parent) { + return true; + } + } while (child = child.parentNode); + } + function activeElt() { + // IE and Edge may throw an "Unspecified Error" when accessing document.activeElement. + // IE < 10 will throw when accessed while the page is loading or in an iframe. + // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable. + var activeElement; + try { + activeElement = document.activeElement; + } catch (e) { + activeElement = document.body || null; + } + while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement) { + activeElement = activeElement.shadowRoot.activeElement; + } + return activeElement; + } + function addClass(node, cls) { + var current = node.className; + if (!classTest(cls).test(current)) { + node.className += (current ? " " : "") + cls; + } + } + function joinClasses(a, b) { + var as = a.split(" "); + for (var i = 0; i < as.length; i++) { + if (as[i] && !classTest(as[i]).test(b)) { + b += " " + as[i]; + } + } + return b; + } + var selectInput = function (node) { + node.select(); + }; + if (ios) + // Mobile Safari apparently has a bug where select() is broken. + { + selectInput = function (node) { + node.selectionStart = 0; + node.selectionEnd = node.value.length; + }; + } else if (ie) + // Suppress mysterious IE10 errors + { + selectInput = function (node) { + try { + node.select(); + } catch (_e) {} + }; + } + function bind(f) { + var args = Array.prototype.slice.call(arguments, 1); + return function () { + return f.apply(null, args); + }; + } + function copyObj(obj, target, overwrite) { + if (!target) { + target = {}; + } + for (var prop in obj) { + if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop))) { + target[prop] = obj[prop]; + } + } + return target; + } + + // Counts the column offset in a string, taking tabs into account. + // Used mostly to find indentation. + function countColumn(string, end, tabSize, startIndex, startValue) { + if (end == null) { + end = string.search(/[^\s\u00a0]/); + if (end == -1) { + end = string.length; + } + } + for (var i = startIndex || 0, n = startValue || 0;;) { + var nextTab = string.indexOf("\t", i); + if (nextTab < 0 || nextTab >= end) { + return n + (end - i); + } + n += nextTab - i; + n += tabSize - n % tabSize; + i = nextTab + 1; + } + } + var Delayed = function () { + this.id = null; + this.f = null; + this.time = 0; + this.handler = bind(this.onTimeout, this); + }; + Delayed.prototype.onTimeout = function (self) { + self.id = 0; + if (self.time <= +new Date()) { + self.f(); + } else { + setTimeout(self.handler, self.time - +new Date()); + } + }; + Delayed.prototype.set = function (ms, f) { + this.f = f; + var time = +new Date() + ms; + if (!this.id || time < this.time) { + clearTimeout(this.id); + this.id = setTimeout(this.handler, ms); + this.time = time; + } + }; + function indexOf(array, elt) { + for (var i = 0; i < array.length; ++i) { + if (array[i] == elt) { + return i; + } + } + return -1; + } + + // Number of pixels added to scroller and sizer to hide scrollbar + var scrollerGap = 50; + + // Returned or thrown by various protocols to signal 'I'm not + // handling this'. + var Pass = { + toString: function () { + return "CodeMirror.Pass"; + } + }; + + // Reused option objects for setSelection & friends + var sel_dontScroll = { + scroll: false + }, + sel_mouse = { + origin: "*mouse" + }, + sel_move = { + origin: "+move" + }; + + // The inverse of countColumn -- find the offset that corresponds to + // a particular column. + function findColumn(string, goal, tabSize) { + for (var pos = 0, col = 0;;) { + var nextTab = string.indexOf("\t", pos); + if (nextTab == -1) { + nextTab = string.length; + } + var skipped = nextTab - pos; + if (nextTab == string.length || col + skipped >= goal) { + return pos + Math.min(skipped, goal - col); + } + col += nextTab - pos; + col += tabSize - col % tabSize; + pos = nextTab + 1; + if (col >= goal) { + return pos; + } + } + } + var spaceStrs = [""]; + function spaceStr(n) { + while (spaceStrs.length <= n) { + spaceStrs.push(lst(spaceStrs) + " "); + } + return spaceStrs[n]; + } + function lst(arr) { + return arr[arr.length - 1]; + } + function map(array, f) { + var out = []; + for (var i = 0; i < array.length; i++) { + out[i] = f(array[i], i); + } + return out; + } + function insertSorted(array, value, score) { + var pos = 0, + priority = score(value); + while (pos < array.length && score(array[pos]) <= priority) { + pos++; + } + array.splice(pos, 0, value); + } + function nothing() {} + function createObj(base, props) { + var inst; + if (Object.create) { + inst = Object.create(base); + } else { + nothing.prototype = base; + inst = new nothing(); + } + if (props) { + copyObj(props, inst); + } + return inst; + } + var nonASCIISingleCaseWordChar = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/; + function isWordCharBasic(ch) { + return /\w/.test(ch) || ch > "\x80" && (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)); + } + function isWordChar(ch, helper) { + if (!helper) { + return isWordCharBasic(ch); + } + if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) { + return true; + } + return helper.test(ch); + } + function isEmpty(obj) { + for (var n in obj) { + if (obj.hasOwnProperty(n) && obj[n]) { + return false; + } + } + return true; + } + + // Extending unicode characters. A series of a non-extending char + + // any number of extending chars is treated as a single unit as far + // as editing and measuring is concerned. This is not fully correct, + // since some scripts/fonts/browsers also treat other configurations + // of code points as a group. + var extendingChars = /[\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 isExtendingChar(ch) { + return ch.charCodeAt(0) >= 768 && extendingChars.test(ch); + } + + // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range. + function skipExtendingChars(str, pos, dir) { + while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { + pos += dir; + } + return pos; + } + + // Returns the value from the range [`from`; `to`] that satisfies + // `pred` and is closest to `from`. Assumes that at least `to` + // satisfies `pred`. Supports `from` being greater than `to`. + function findFirst(pred, from, to) { + // At any point we are certain `to` satisfies `pred`, don't know + // whether `from` does. + var dir = from > to ? -1 : 1; + for (;;) { + if (from == to) { + return from; + } + var midF = (from + to) / 2, + mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF); + if (mid == from) { + return pred(mid) ? from : to; + } + if (pred(mid)) { + to = mid; + } else { + from = mid + dir; + } + } + } + + // BIDI HELPERS + + function iterateBidiSections(order, from, to, f) { + if (!order) { + return f(from, to, "ltr", 0); + } + var found = false; + for (var i = 0; i < order.length; ++i) { + var part = order[i]; + if (part.from < to && part.to > from || from == to && part.to == from) { + f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr", i); + found = true; + } + } + if (!found) { + f(from, to, "ltr"); + } + } + var bidiOther = null; + function getBidiPartAt(order, ch, sticky) { + var found; + bidiOther = null; + for (var i = 0; i < order.length; ++i) { + var cur = order[i]; + if (cur.from < ch && cur.to > ch) { + return i; + } + if (cur.to == ch) { + if (cur.from != cur.to && sticky == "before") { + found = i; + } else { + bidiOther = i; + } + } + if (cur.from == ch) { + if (cur.from != cur.to && sticky != "before") { + found = i; + } else { + bidiOther = i; + } + } + } + return found != null ? found : bidiOther; + } + + // Bidirectional ordering algorithm + // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm + // that this (partially) implements. + + // One-char codes used for character types: + // L (L): Left-to-Right + // R (R): Right-to-Left + // r (AL): Right-to-Left Arabic + // 1 (EN): European Number + // + (ES): European Number Separator + // % (ET): European Number Terminator + // n (AN): Arabic Number + // , (CS): Common Number Separator + // m (NSM): Non-Spacing Mark + // b (BN): Boundary Neutral + // s (B): Paragraph Separator + // t (S): Segment Separator + // w (WS): Whitespace + // N (ON): Other Neutrals + + // Returns null if characters are ordered as they appear + // (left-to-right), or an array of sections ({from, to, level} + // objects) in the order in which they occur visually. + var bidiOrdering = function () { + // Character types for codepoints 0 to 0xff + var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN"; + // Character types for codepoints 0x600 to 0x6f9 + var arabicTypes = "nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111"; + function charType(code) { + if (code <= 0xf7) { + return lowTypes.charAt(code); + } else if (0x590 <= code && code <= 0x5f4) { + return "R"; + } else if (0x600 <= code && code <= 0x6f9) { + return arabicTypes.charAt(code - 0x600); + } else if (0x6ee <= code && code <= 0x8ac) { + return "r"; + } else if (0x2000 <= code && code <= 0x200b) { + return "w"; + } else if (code == 0x200c) { + return "b"; + } else { + return "L"; + } + } + var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; + var isNeutral = /[stwN]/, + isStrong = /[LRr]/, + countsAsLeft = /[Lb1n]/, + countsAsNum = /[1n]/; + function BidiSpan(level, from, to) { + this.level = level; + this.from = from; + this.to = to; + } + return function (str, direction) { + var outerType = direction == "ltr" ? "L" : "R"; + if (str.length == 0 || direction == "ltr" && !bidiRE.test(str)) { + return false; + } + var len = str.length, + types = []; + for (var i = 0; i < len; ++i) { + types.push(charType(str.charCodeAt(i))); + } + + // W1. Examine each non-spacing mark (NSM) in the level run, and + // change the type of the NSM to the type of the previous + // character. If the NSM is at the start of the level run, it will + // get the type of sor. + for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) { + var type = types[i$1]; + if (type == "m") { + types[i$1] = prev; + } else { + prev = type; + } + } + + // W2. Search backwards from each instance of a European number + // until the first strong type (R, L, AL, or sor) is found. If an + // AL is found, change the type of the European number to Arabic + // number. + // W3. Change all ALs to R. + for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) { + var type$1 = types[i$2]; + if (type$1 == "1" && cur == "r") { + types[i$2] = "n"; + } else if (isStrong.test(type$1)) { + cur = type$1; + if (type$1 == "r") { + types[i$2] = "R"; + } + } + } + + // W4. A single European separator between two European numbers + // changes to a European number. A single common separator between + // two numbers of the same type changes to that type. + for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) { + var type$2 = types[i$3]; + if (type$2 == "+" && prev$1 == "1" && types[i$3 + 1] == "1") { + types[i$3] = "1"; + } else if (type$2 == "," && prev$1 == types[i$3 + 1] && (prev$1 == "1" || prev$1 == "n")) { + types[i$3] = prev$1; + } + prev$1 = type$2; + } + + // W5. A sequence of European terminators adjacent to European + // numbers changes to all European numbers. + // W6. Otherwise, separators and terminators change to Other + // Neutral. + for (var i$4 = 0; i$4 < len; ++i$4) { + var type$3 = types[i$4]; + if (type$3 == ",") { + types[i$4] = "N"; + } else if (type$3 == "%") { + var end = void 0; + for (end = i$4 + 1; end < len && types[end] == "%"; ++end) {} + var replace = i$4 && types[i$4 - 1] == "!" || end < len && types[end] == "1" ? "1" : "N"; + for (var j = i$4; j < end; ++j) { + types[j] = replace; + } + i$4 = end - 1; + } + } + + // W7. Search backwards from each instance of a European number + // until the first strong type (R, L, or sor) is found. If an L is + // found, then change the type of the European number to L. + for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) { + var type$4 = types[i$5]; + if (cur$1 == "L" && type$4 == "1") { + types[i$5] = "L"; + } else if (isStrong.test(type$4)) { + cur$1 = type$4; + } + } + + // N1. A sequence of neutrals takes the direction of the + // surrounding strong text if the text on both sides has the same + // direction. European and Arabic numbers act as if they were R in + // terms of their influence on neutrals. Start-of-level-run (sor) + // and end-of-level-run (eor) are used at level run boundaries. + // N2. Any remaining neutrals take the embedding direction. + for (var i$6 = 0; i$6 < len; ++i$6) { + if (isNeutral.test(types[i$6])) { + var end$1 = void 0; + for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {} + var before = (i$6 ? types[i$6 - 1] : outerType) == "L"; + var after = (end$1 < len ? types[end$1] : outerType) == "L"; + var replace$1 = before == after ? before ? "L" : "R" : outerType; + for (var j$1 = i$6; j$1 < end$1; ++j$1) { + types[j$1] = replace$1; + } + i$6 = end$1 - 1; + } + } + + // Here we depart from the documented algorithm, in order to avoid + // building up an actual levels array. Since there are only three + // levels (0, 1, 2) in an implementation that doesn't take + // explicit embedding into account, we can build up the order on + // the fly, without following the level-based algorithm. + var order = [], + m; + for (var i$7 = 0; i$7 < len;) { + if (countsAsLeft.test(types[i$7])) { + var start = i$7; + for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {} + order.push(new BidiSpan(0, start, i$7)); + } else { + var pos = i$7, + at = order.length, + isRTL = direction == "rtl" ? 1 : 0; + for (++i$7; i$7 < len && types[i$7] != "L"; ++i$7) {} + for (var j$2 = pos; j$2 < i$7;) { + if (countsAsNum.test(types[j$2])) { + if (pos < j$2) { + order.splice(at, 0, new BidiSpan(1, pos, j$2)); + at += isRTL; + } + var nstart = j$2; + for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {} + order.splice(at, 0, new BidiSpan(2, nstart, j$2)); + at += isRTL; + pos = j$2; + } else { + ++j$2; + } + } + if (pos < i$7) { + order.splice(at, 0, new BidiSpan(1, pos, i$7)); + } + } + } + if (direction == "ltr") { + if (order[0].level == 1 && (m = str.match(/^\s+/))) { + order[0].from = m[0].length; + order.unshift(new BidiSpan(0, 0, m[0].length)); + } + if (lst(order).level == 1 && (m = str.match(/\s+$/))) { + lst(order).to -= m[0].length; + order.push(new BidiSpan(0, len - m[0].length, len)); + } + } + return direction == "rtl" ? order.reverse() : order; + }; + }(); + + // Get the bidi ordering for the given line (and cache it). Returns + // false for lines that are fully left-to-right, and an array of + // BidiSpan objects otherwise. + function getOrder(line, direction) { + var order = line.order; + if (order == null) { + order = line.order = bidiOrdering(line.text, direction); + } + return order; + } + + // EVENT HANDLING + + // Lightweight event framework. on/off also work on DOM nodes, + // registering native DOM handlers. + + var noHandlers = []; + var on = function (emitter, type, f) { + if (emitter.addEventListener) { + emitter.addEventListener(type, f, false); + } else if (emitter.attachEvent) { + emitter.attachEvent("on" + type, f); + } else { + var map = emitter._handlers || (emitter._handlers = {}); + map[type] = (map[type] || noHandlers).concat(f); + } + }; + function getHandlers(emitter, type) { + return emitter._handlers && emitter._handlers[type] || noHandlers; + } + function off(emitter, type, f) { + if (emitter.removeEventListener) { + emitter.removeEventListener(type, f, false); + } else if (emitter.detachEvent) { + emitter.detachEvent("on" + type, f); + } else { + var map = emitter._handlers, + arr = map && map[type]; + if (arr) { + var index = indexOf(arr, f); + if (index > -1) { + map[type] = arr.slice(0, index).concat(arr.slice(index + 1)); + } + } + } + } + function signal(emitter, type /*, values...*/) { + var handlers = getHandlers(emitter, type); + if (!handlers.length) { + return; + } + var args = Array.prototype.slice.call(arguments, 2); + for (var i = 0; i < handlers.length; ++i) { + handlers[i].apply(null, args); + } + } + + // The DOM events that CodeMirror handles can be overridden by + // registering a (non-DOM) handler on the editor for the event name, + // and preventDefault-ing the event in that handler. + function signalDOMEvent(cm, e, override) { + if (typeof e == "string") { + e = { + type: e, + preventDefault: function () { + this.defaultPrevented = true; + } + }; + } + signal(cm, override || e.type, cm, e); + return e_defaultPrevented(e) || e.codemirrorIgnore; + } + function signalCursorActivity(cm) { + var arr = cm._handlers && cm._handlers.cursorActivity; + if (!arr) { + return; + } + var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []); + for (var i = 0; i < arr.length; ++i) { + if (indexOf(set, arr[i]) == -1) { + set.push(arr[i]); + } + } + } + function hasHandler(emitter, type) { + return getHandlers(emitter, type).length > 0; + } + + // Add on and off methods to a constructor's prototype, to make + // registering events on such objects more convenient. + function eventMixin(ctor) { + ctor.prototype.on = function (type, f) { + on(this, type, f); + }; + ctor.prototype.off = function (type, f) { + off(this, type, f); + }; + } + + // Due to the fact that we still support jurassic IE versions, some + // compatibility wrappers are needed. + + function e_preventDefault(e) { + if (e.preventDefault) { + e.preventDefault(); + } else { + e.returnValue = false; + } + } + function e_stopPropagation(e) { + if (e.stopPropagation) { + e.stopPropagation(); + } else { + e.cancelBubble = true; + } + } + function e_defaultPrevented(e) { + return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false; + } + function e_stop(e) { + e_preventDefault(e); + e_stopPropagation(e); + } + function e_target(e) { + return e.target || e.srcElement; + } + function e_button(e) { + var b = e.which; + if (b == null) { + if (e.button & 1) { + b = 1; + } else if (e.button & 2) { + b = 3; + } else if (e.button & 4) { + b = 2; + } + } + if (mac && e.ctrlKey && b == 1) { + b = 3; + } + return b; + } + + // Detect drag-and-drop + var dragAndDrop = function () { + // There is *some* kind of drag-and-drop support in IE6-8, but I + // couldn't get it to work yet. + if (ie && ie_version < 9) { + return false; + } + var div = elt('div'); + return "draggable" in div || "dragDrop" in div; + }(); + var zwspSupported; + function zeroWidthElement(measure) { + if (zwspSupported == null) { + var test = elt("span", "\u200b"); + removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")])); + if (measure.firstChild.offsetHeight != 0) { + zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); + } + } + var node = zwspSupported ? elt("span", "\u200b") : elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px"); + node.setAttribute("cm-text", ""); + return node; + } + + // Feature-detect IE's crummy client rect reporting for bidi text + var badBidiRects; + function hasBadBidiRects(measure) { + if (badBidiRects != null) { + return badBidiRects; + } + var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA")); + var r0 = range(txt, 0, 1).getBoundingClientRect(); + var r1 = range(txt, 1, 2).getBoundingClientRect(); + removeChildren(measure); + if (!r0 || r0.left == r0.right) { + return false; + } // Safari returns null in some cases (#2780) + return badBidiRects = r1.right - r0.right < 3; + } + + // See if "".split is the broken IE version, if so, provide an + // alternative way to split lines. + var splitLinesAuto = "\n\nb".split(/\n/).length != 3 ? function (string) { + var pos = 0, + result = [], + l = string.length; + while (pos <= l) { + var nl = string.indexOf("\n", pos); + if (nl == -1) { + nl = string.length; + } + var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); + var rt = line.indexOf("\r"); + if (rt != -1) { + result.push(line.slice(0, rt)); + pos += rt + 1; + } else { + result.push(line); + pos = nl + 1; + } + } + return result; + } : function (string) { + return string.split(/\r\n?|\n/); + }; + var hasSelection = window.getSelection ? function (te) { + try { + return te.selectionStart != te.selectionEnd; + } catch (e) { + return false; + } + } : function (te) { + var range; + try { + range = te.ownerDocument.selection.createRange(); + } catch (e) {} + if (!range || range.parentElement() != te) { + return false; + } + return range.compareEndPoints("StartToEnd", range) != 0; + }; + var hasCopyEvent = function () { + var e = elt("div"); + if ("oncopy" in e) { + return true; + } + e.setAttribute("oncopy", "return;"); + return typeof e.oncopy == "function"; + }(); + var badZoomedRects = null; + function hasBadZoomedRects(measure) { + if (badZoomedRects != null) { + return badZoomedRects; + } + var node = removeChildrenAndAdd(measure, elt("span", "x")); + var normal = node.getBoundingClientRect(); + var fromRange = range(node, 0, 1).getBoundingClientRect(); + return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1; + } + + // Known modes, by name and by MIME + var modes = {}, + mimeModes = {}; + + // Extra arguments are stored as the mode's dependencies, which is + // used by (legacy) mechanisms like loadmode.js to automatically + // load a mode. (Preferred mechanism is the require/define calls.) + function defineMode(name, mode) { + if (arguments.length > 2) { + mode.dependencies = Array.prototype.slice.call(arguments, 2); + } + modes[name] = mode; + } + function defineMIME(mime, spec) { + mimeModes[mime] = spec; + } + + // Given a MIME type, a {name, ...options} config object, or a name + // string, return a mode config object. + function resolveMode(spec) { + if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) { + spec = mimeModes[spec]; + } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) { + var found = mimeModes[spec.name]; + if (typeof found == "string") { + found = { + name: found + }; + } + spec = createObj(found, spec); + spec.name = found.name; + } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) { + return resolveMode("application/xml"); + } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+json$/.test(spec)) { + return resolveMode("application/json"); + } + if (typeof spec == "string") { + return { + name: spec + }; + } else { + return spec || { + name: "null" + }; + } + } + + // Given a mode spec (anything that resolveMode accepts), find and + // initialize an actual mode object. + function getMode(options, spec) { + spec = resolveMode(spec); + var mfactory = modes[spec.name]; + if (!mfactory) { + return getMode(options, "text/plain"); + } + var modeObj = mfactory(options, spec); + if (modeExtensions.hasOwnProperty(spec.name)) { + var exts = modeExtensions[spec.name]; + for (var prop in exts) { + if (!exts.hasOwnProperty(prop)) { + continue; + } + if (modeObj.hasOwnProperty(prop)) { + modeObj["_" + prop] = modeObj[prop]; + } + modeObj[prop] = exts[prop]; + } + } + modeObj.name = spec.name; + if (spec.helperType) { + modeObj.helperType = spec.helperType; + } + if (spec.modeProps) { + for (var prop$1 in spec.modeProps) { + modeObj[prop$1] = spec.modeProps[prop$1]; + } + } + return modeObj; + } + + // This can be used to attach properties to mode objects from + // outside the actual mode definition. + var modeExtensions = {}; + function extendMode(mode, properties) { + var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : modeExtensions[mode] = {}; + copyObj(properties, exts); + } + function copyState(mode, state) { + if (state === true) { + return state; + } + if (mode.copyState) { + return mode.copyState(state); + } + var nstate = {}; + for (var n in state) { + var val = state[n]; + if (val instanceof Array) { + val = val.concat([]); + } + nstate[n] = val; + } + return nstate; + } + + // Given a mode and a state (for that mode), find the inner mode and + // state at the position that the state refers to. + function innerMode(mode, state) { + var info; + while (mode.innerMode) { + info = mode.innerMode(state); + if (!info || info.mode == mode) { + break; + } + state = info.state; + mode = info.mode; + } + return info || { + mode: mode, + state: state + }; + } + function startState(mode, a1, a2) { + return mode.startState ? mode.startState(a1, a2) : true; + } + + // STRING STREAM + + // Fed to the mode parsers, provides helper functions to make + // parsers more succinct. + + var StringStream = function (string, tabSize, lineOracle) { + this.pos = this.start = 0; + this.string = string; + this.tabSize = tabSize || 8; + this.lastColumnPos = this.lastColumnValue = 0; + this.lineStart = 0; + this.lineOracle = lineOracle; + }; + StringStream.prototype.eol = function () { + return this.pos >= this.string.length; + }; + StringStream.prototype.sol = function () { + return this.pos == this.lineStart; + }; + StringStream.prototype.peek = function () { + return this.string.charAt(this.pos) || undefined; + }; + StringStream.prototype.next = function () { + if (this.pos < this.string.length) { + return this.string.charAt(this.pos++); + } + }; + StringStream.prototype.eat = function (match) { + var ch = this.string.charAt(this.pos); + var ok; + if (typeof match == "string") { + ok = ch == match; + } else { + ok = ch && (match.test ? match.test(ch) : match(ch)); + } + if (ok) { + ++this.pos; + return ch; + } + }; + StringStream.prototype.eatWhile = function (match) { + var start = this.pos; + while (this.eat(match)) {} + return this.pos > start; + }; + StringStream.prototype.eatSpace = function () { + var start = this.pos; + while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) { + ++this.pos; + } + return this.pos > start; + }; + StringStream.prototype.skipToEnd = function () { + this.pos = this.string.length; + }; + StringStream.prototype.skipTo = function (ch) { + var found = this.string.indexOf(ch, this.pos); + if (found > -1) { + this.pos = found; + return true; + } + }; + StringStream.prototype.backUp = function (n) { + this.pos -= n; + }; + StringStream.prototype.column = function () { + if (this.lastColumnPos < this.start) { + this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue); + this.lastColumnPos = this.start; + } + return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0); + }; + StringStream.prototype.indentation = function () { + return countColumn(this.string, null, this.tabSize) - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0); + }; + StringStream.prototype.match = function (pattern, consume, caseInsensitive) { + if (typeof pattern == "string") { + var cased = function (str) { + return caseInsensitive ? str.toLowerCase() : str; + }; + var substr = this.string.substr(this.pos, pattern.length); + if (cased(substr) == cased(pattern)) { + if (consume !== false) { + this.pos += pattern.length; + } + return true; + } + } else { + var match = this.string.slice(this.pos).match(pattern); + if (match && match.index > 0) { + return null; + } + if (match && consume !== false) { + this.pos += match[0].length; + } + return match; + } + }; + StringStream.prototype.current = function () { + return this.string.slice(this.start, this.pos); + }; + StringStream.prototype.hideFirstChars = function (n, inner) { + this.lineStart += n; + try { + return inner(); + } finally { + this.lineStart -= n; + } + }; + StringStream.prototype.lookAhead = function (n) { + var oracle = this.lineOracle; + return oracle && oracle.lookAhead(n); + }; + StringStream.prototype.baseToken = function () { + var oracle = this.lineOracle; + return oracle && oracle.baseToken(this.pos); + }; + + // Find the line object corresponding to the given line number. + function getLine(doc, n) { + n -= doc.first; + if (n < 0 || n >= doc.size) { + throw new Error("There is no line " + (n + doc.first) + " in the document."); + } + var chunk = doc; + while (!chunk.lines) { + for (var i = 0;; ++i) { + var child = chunk.children[i], + sz = child.chunkSize(); + if (n < sz) { + chunk = child; + break; + } + n -= sz; + } + } + return chunk.lines[n]; + } + + // Get the part of a document between two positions, as an array of + // strings. + function getBetween(doc, start, end) { + var out = [], + n = start.line; + doc.iter(start.line, end.line + 1, function (line) { + var text = line.text; + if (n == end.line) { + text = text.slice(0, end.ch); + } + if (n == start.line) { + text = text.slice(start.ch); + } + out.push(text); + ++n; + }); + return out; + } + // Get the lines between from and to, as array of strings. + function getLines(doc, from, to) { + var out = []; + doc.iter(from, to, function (line) { + out.push(line.text); + }); // iter aborts when callback returns truthy value + return out; + } + + // Update the height of a line, propagating the height change + // upwards to parent nodes. + function updateLineHeight(line, height) { + var diff = height - line.height; + if (diff) { + for (var n = line; n; n = n.parent) { + n.height += diff; + } + } + } + + // Given a line object, find its line number by walking up through + // its parent links. + function lineNo(line) { + if (line.parent == null) { + return null; + } + var cur = line.parent, + no = indexOf(cur.lines, line); + for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { + for (var i = 0;; ++i) { + if (chunk.children[i] == cur) { + break; + } + no += chunk.children[i].chunkSize(); + } + } + return no + cur.first; + } + + // Find the line at the given vertical position, using the height + // information in the document tree. + function lineAtHeight(chunk, h) { + var n = chunk.first; + outer: do { + for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) { + var child = chunk.children[i$1], + ch = child.height; + if (h < ch) { + chunk = child; + continue outer; + } + h -= ch; + n += child.chunkSize(); + } + return n; + } while (!chunk.lines); + var i = 0; + for (; i < chunk.lines.length; ++i) { + var line = chunk.lines[i], + lh = line.height; + if (h < lh) { + break; + } + h -= lh; + } + return n + i; + } + function isLine(doc, l) { + return l >= doc.first && l < doc.first + doc.size; + } + function lineNumberFor(options, i) { + return String(options.lineNumberFormatter(i + options.firstLineNumber)); + } + + // A Pos instance represents a position within the text. + function Pos(line, ch, sticky) { + if (sticky === void 0) sticky = null; + if (!(this instanceof Pos)) { + return new Pos(line, ch, sticky); + } + this.line = line; + this.ch = ch; + this.sticky = sticky; + } + + // Compare two positions, return 0 if they are the same, a negative + // number when a is less, and a positive number otherwise. + function cmp(a, b) { + return a.line - b.line || a.ch - b.ch; + } + function equalCursorPos(a, b) { + return a.sticky == b.sticky && cmp(a, b) == 0; + } + function copyPos(x) { + return Pos(x.line, x.ch); + } + function maxPos(a, b) { + return cmp(a, b) < 0 ? b : a; + } + function minPos(a, b) { + return cmp(a, b) < 0 ? a : b; + } + + // Most of the external API clips given positions to make sure they + // actually exist within the document. + function clipLine(doc, n) { + return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1)); + } + function clipPos(doc, pos) { + if (pos.line < doc.first) { + return Pos(doc.first, 0); + } + var last = doc.first + doc.size - 1; + if (pos.line > last) { + return Pos(last, getLine(doc, last).text.length); + } + return clipToLen(pos, getLine(doc, pos.line).text.length); + } + function clipToLen(pos, linelen) { + var ch = pos.ch; + if (ch == null || ch > linelen) { + return Pos(pos.line, linelen); + } else if (ch < 0) { + return Pos(pos.line, 0); + } else { + return pos; + } + } + function clipPosArray(doc, array) { + var out = []; + for (var i = 0; i < array.length; i++) { + out[i] = clipPos(doc, array[i]); + } + return out; + } + var SavedContext = function (state, lookAhead) { + this.state = state; + this.lookAhead = lookAhead; + }; + var Context = function (doc, state, line, lookAhead) { + this.state = state; + this.doc = doc; + this.line = line; + this.maxLookAhead = lookAhead || 0; + this.baseTokens = null; + this.baseTokenPos = 1; + }; + Context.prototype.lookAhead = function (n) { + var line = this.doc.getLine(this.line + n); + if (line != null && n > this.maxLookAhead) { + this.maxLookAhead = n; + } + return line; + }; + Context.prototype.baseToken = function (n) { + if (!this.baseTokens) { + return null; + } + while (this.baseTokens[this.baseTokenPos] <= n) { + this.baseTokenPos += 2; + } + var type = this.baseTokens[this.baseTokenPos + 1]; + return { + type: type && type.replace(/( |^)overlay .*/, ""), + size: this.baseTokens[this.baseTokenPos] - n + }; + }; + Context.prototype.nextLine = function () { + this.line++; + if (this.maxLookAhead > 0) { + this.maxLookAhead--; + } + }; + Context.fromSaved = function (doc, saved, line) { + if (saved instanceof SavedContext) { + return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead); + } else { + return new Context(doc, copyState(doc.mode, saved), line); + } + }; + Context.prototype.save = function (copy) { + var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state; + return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state; + }; + + // Compute a style array (an array starting with a mode generation + // -- for invalidation -- followed by pairs of end positions and + // style strings), which is used to highlight the tokens on the + // line. + function highlightLine(cm, line, context, forceToEnd) { + // A styles array always starts with a number identifying the + // mode/overlays that it is based on (for easy invalidation). + var st = [cm.state.modeGen], + lineClasses = {}; + // Compute the base array of styles + runMode(cm, line.text, cm.doc.mode, context, function (end, style) { + return st.push(end, style); + }, lineClasses, forceToEnd); + var state = context.state; + + // Run overlays, adjust style array. + var loop = function (o) { + context.baseTokens = st; + var overlay = cm.state.overlays[o], + i = 1, + at = 0; + context.state = true; + runMode(cm, line.text, overlay.mode, context, function (end, style) { + var start = i; + // Ensure there's a token end at the current position, and that i points at it + while (at < end) { + var i_end = st[i]; + if (i_end > end) { + st.splice(i, 1, end, st[i + 1], i_end); + } + i += 2; + at = Math.min(end, i_end); + } + if (!style) { + return; + } + if (overlay.opaque) { + st.splice(start, i - start, end, "overlay " + style); + i = start + 2; + } else { + for (; start < i; start += 2) { + var cur = st[start + 1]; + st[start + 1] = (cur ? cur + " " : "") + "overlay " + style; + } + } + }, lineClasses); + context.state = state; + context.baseTokens = null; + context.baseTokenPos = 1; + }; + for (var o = 0; o < cm.state.overlays.length; ++o) loop(o); + return { + styles: st, + classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null + }; + } + function getLineStyles(cm, line, updateFrontier) { + if (!line.styles || line.styles[0] != cm.state.modeGen) { + var context = getContextBefore(cm, lineNo(line)); + var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state); + var result = highlightLine(cm, line, context); + if (resetState) { + context.state = resetState; + } + line.stateAfter = context.save(!resetState); + line.styles = result.styles; + if (result.classes) { + line.styleClasses = result.classes; + } else if (line.styleClasses) { + line.styleClasses = null; + } + if (updateFrontier === cm.doc.highlightFrontier) { + cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); + } + } + return line.styles; + } + function getContextBefore(cm, n, precise) { + var doc = cm.doc, + display = cm.display; + if (!doc.mode.startState) { + return new Context(doc, true, n); + } + var start = findStartLine(cm, n, precise); + var saved = start > doc.first && getLine(doc, start - 1).stateAfter; + var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start); + doc.iter(start, n, function (line) { + processLine(cm, line.text, context); + var pos = context.line; + line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null; + context.nextLine(); + }); + if (precise) { + doc.modeFrontier = context.line; + } + return context; + } + + // Lightweight form of highlight -- proceed over this line and + // update state, but don't save a style array. Used for lines that + // aren't currently visible. + function processLine(cm, text, context, startAt) { + var mode = cm.doc.mode; + var stream = new StringStream(text, cm.options.tabSize, context); + stream.start = stream.pos = startAt || 0; + if (text == "") { + callBlankLine(mode, context.state); + } + while (!stream.eol()) { + readToken(mode, stream, context.state); + stream.start = stream.pos; + } + } + function callBlankLine(mode, state) { + if (mode.blankLine) { + return mode.blankLine(state); + } + if (!mode.innerMode) { + return; + } + var inner = innerMode(mode, state); + if (inner.mode.blankLine) { + return inner.mode.blankLine(inner.state); + } + } + function readToken(mode, stream, state, inner) { + for (var i = 0; i < 10; i++) { + if (inner) { + inner[0] = innerMode(mode, state).mode; + } + var style = mode.token(stream, state); + if (stream.pos > stream.start) { + return style; + } + } + throw new Error("Mode " + mode.name + " failed to advance stream."); + } + var Token = function (stream, type, state) { + this.start = stream.start; + this.end = stream.pos; + this.string = stream.current(); + this.type = type || null; + this.state = state; + }; + + // Utility for getTokenAt and getLineTokens + function takeToken(cm, pos, precise, asArray) { + var doc = cm.doc, + mode = doc.mode, + style; + pos = clipPos(doc, pos); + var line = getLine(doc, pos.line), + context = getContextBefore(cm, pos.line, precise); + var stream = new StringStream(line.text, cm.options.tabSize, context), + tokens; + if (asArray) { + tokens = []; + } + while ((asArray || stream.pos < pos.ch) && !stream.eol()) { + stream.start = stream.pos; + style = readToken(mode, stream, context.state); + if (asArray) { + tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); + } + } + return asArray ? tokens : new Token(stream, style, context.state); + } + function extractLineClasses(type, output) { + if (type) { + for (;;) { + var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/); + if (!lineClass) { + break; + } + type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length); + var prop = lineClass[1] ? "bgClass" : "textClass"; + if (output[prop] == null) { + output[prop] = lineClass[2]; + } else if (!new RegExp("(?:^|\\s)" + lineClass[2] + "(?:$|\\s)").test(output[prop])) { + output[prop] += " " + lineClass[2]; + } + } + } + return type; + } + + // Run the given mode's parser over a line, calling f for each token. + function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) { + var flattenSpans = mode.flattenSpans; + if (flattenSpans == null) { + flattenSpans = cm.options.flattenSpans; + } + var curStart = 0, + curStyle = null; + var stream = new StringStream(text, cm.options.tabSize, context), + style; + var inner = cm.options.addModeClass && [null]; + if (text == "") { + extractLineClasses(callBlankLine(mode, context.state), lineClasses); + } + while (!stream.eol()) { + if (stream.pos > cm.options.maxHighlightLength) { + flattenSpans = false; + if (forceToEnd) { + processLine(cm, text, context, stream.pos); + } + stream.pos = text.length; + style = null; + } else { + style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses); + } + if (inner) { + var mName = inner[0].name; + if (mName) { + style = "m-" + (style ? mName + " " + style : mName); + } + } + if (!flattenSpans || curStyle != style) { + while (curStart < stream.start) { + curStart = Math.min(stream.start, curStart + 5000); + f(curStart, curStyle); + } + curStyle = style; + } + stream.start = stream.pos; + } + while (curStart < stream.pos) { + // Webkit seems to refuse to render text nodes longer than 57444 + // characters, and returns inaccurate measurements in nodes + // starting around 5000 chars. + var pos = Math.min(stream.pos, curStart + 5000); + f(pos, curStyle); + curStart = pos; + } + } + + // Finds the line to start with when starting a parse. Tries to + // find a line with a stateAfter, so that it can start with a + // valid state. If that fails, it returns the line with the + // smallest indentation, which tends to need the least context to + // parse correctly. + function findStartLine(cm, n, precise) { + var minindent, + minline, + doc = cm.doc; + var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100); + for (var search = n; search > lim; --search) { + if (search <= doc.first) { + return doc.first; + } + var line = getLine(doc, search - 1), + after = line.stateAfter; + if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier)) { + return search; + } + var indented = countColumn(line.text, null, cm.options.tabSize); + if (minline == null || minindent > indented) { + minline = search - 1; + minindent = indented; + } + } + return minline; + } + function retreatFrontier(doc, n) { + doc.modeFrontier = Math.min(doc.modeFrontier, n); + if (doc.highlightFrontier < n - 10) { + return; + } + var start = doc.first; + for (var line = n - 1; line > start; line--) { + var saved = getLine(doc, line).stateAfter; + // change is on 3 + // state on line 1 looked ahead 2 -- so saw 3 + // test 1 + 2 < 3 should cover this + if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) { + start = line + 1; + break; + } + } + doc.highlightFrontier = Math.min(doc.highlightFrontier, start); + } + + // Optimize some code when these features are not used. + var sawReadOnlySpans = false, + sawCollapsedSpans = false; + function seeReadOnlySpans() { + sawReadOnlySpans = true; + } + function seeCollapsedSpans() { + sawCollapsedSpans = true; + } + + // TEXTMARKER SPANS + + function MarkedSpan(marker, from, to) { + this.marker = marker; + this.from = from; + this.to = to; + } + + // Search an array of spans for a span matching the given marker. + function getMarkedSpanFor(spans, marker) { + if (spans) { + for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.marker == marker) { + return span; + } + } + } + } + + // Remove a span from an array, returning undefined if no spans are + // left (we don't store arrays for lines without spans). + function removeMarkedSpan(spans, span) { + var r; + for (var i = 0; i < spans.length; ++i) { + if (spans[i] != span) { + (r || (r = [])).push(spans[i]); + } + } + return r; + } + + // Add a span to a line. + function addMarkedSpan(line, span, op) { + var inThisOp = op && window.WeakSet && (op.markedSpans || (op.markedSpans = new WeakSet())); + if (inThisOp && line.markedSpans && inThisOp.has(line.markedSpans)) { + line.markedSpans.push(span); + } else { + line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; + if (inThisOp) { + inThisOp.add(line.markedSpans); + } + } + span.marker.attachLine(line); + } + + // Used for the algorithm that adjusts markers for a change in the + // document. These functions cut an array of spans at a given + // character position, returning an array of remaining chunks (or + // undefined if nothing remains). + function markedSpansBefore(old, startCh, isInsert) { + var nw; + if (old) { + for (var i = 0; i < old.length; ++i) { + var span = old[i], + marker = span.marker; + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh); + if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) { + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh); + (nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to)); + } + } + } + return nw; + } + function markedSpansAfter(old, endCh, isInsert) { + var nw; + if (old) { + for (var i = 0; i < old.length; ++i) { + var span = old[i], + marker = span.marker; + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh); + if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) { + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh); + (nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh, span.to == null ? null : span.to - endCh)); + } + } + } + return nw; + } + + // Given a change object, compute the new set of marker spans that + // cover the line in which the change took place. Removes spans + // entirely within the change, reconnects spans belonging to the + // same marker that appear on both sides of the change, and cuts off + // spans partially within the change. Returns an array of span + // arrays with one element for each line in (after) the change. + function stretchSpansOverChange(doc, change) { + if (change.full) { + return null; + } + var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans; + var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans; + if (!oldFirst && !oldLast) { + return null; + } + var startCh = change.from.ch, + endCh = change.to.ch, + isInsert = cmp(change.from, change.to) == 0; + // Get the spans that 'stick out' on both sides + var first = markedSpansBefore(oldFirst, startCh, isInsert); + var last = markedSpansAfter(oldLast, endCh, isInsert); + + // Next, merge those two ends + var sameLine = change.text.length == 1, + offset = lst(change.text).length + (sameLine ? startCh : 0); + if (first) { + // Fix up .to properties of first + for (var i = 0; i < first.length; ++i) { + var span = first[i]; + if (span.to == null) { + var found = getMarkedSpanFor(last, span.marker); + if (!found) { + span.to = startCh; + } else if (sameLine) { + span.to = found.to == null ? null : found.to + offset; + } + } + } + } + if (last) { + // Fix up .from in last (or move them into first in case of sameLine) + for (var i$1 = 0; i$1 < last.length; ++i$1) { + var span$1 = last[i$1]; + if (span$1.to != null) { + span$1.to += offset; + } + if (span$1.from == null) { + var found$1 = getMarkedSpanFor(first, span$1.marker); + if (!found$1) { + span$1.from = offset; + if (sameLine) { + (first || (first = [])).push(span$1); + } + } + } else { + span$1.from += offset; + if (sameLine) { + (first || (first = [])).push(span$1); + } + } + } + } + // Make sure we didn't create any zero-length spans + if (first) { + first = clearEmptySpans(first); + } + if (last && last != first) { + last = clearEmptySpans(last); + } + var newMarkers = [first]; + if (!sameLine) { + // Fill gap with whole-line-spans + var gap = change.text.length - 2, + gapMarkers; + if (gap > 0 && first) { + for (var i$2 = 0; i$2 < first.length; ++i$2) { + if (first[i$2].to == null) { + (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); + } + } + } + for (var i$3 = 0; i$3 < gap; ++i$3) { + newMarkers.push(gapMarkers); + } + newMarkers.push(last); + } + return newMarkers; + } + + // Remove spans that are empty and don't have a clearWhenEmpty + // option of false. + function clearEmptySpans(spans) { + for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false) { + spans.splice(i--, 1); + } + } + if (!spans.length) { + return null; + } + return spans; + } + + // Used to 'clip' out readOnly ranges when making a change. + function removeReadOnlyRanges(doc, from, to) { + var markers = null; + doc.iter(from.line, to.line + 1, function (line) { + if (line.markedSpans) { + for (var i = 0; i < line.markedSpans.length; ++i) { + var mark = line.markedSpans[i].marker; + if (mark.readOnly && (!markers || indexOf(markers, mark) == -1)) { + (markers || (markers = [])).push(mark); + } + } + } + }); + if (!markers) { + return null; + } + var parts = [{ + from: from, + to: to + }]; + for (var i = 0; i < markers.length; ++i) { + var mk = markers[i], + m = mk.find(0); + for (var j = 0; j < parts.length; ++j) { + var p = parts[j]; + if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { + continue; + } + var newParts = [j, 1], + dfrom = cmp(p.from, m.from), + dto = cmp(p.to, m.to); + if (dfrom < 0 || !mk.inclusiveLeft && !dfrom) { + newParts.push({ + from: p.from, + to: m.from + }); + } + if (dto > 0 || !mk.inclusiveRight && !dto) { + newParts.push({ + from: m.to, + to: p.to + }); + } + parts.splice.apply(parts, newParts); + j += newParts.length - 3; + } + } + return parts; + } + + // Connect or disconnect spans from a line. + function detachMarkedSpans(line) { + var spans = line.markedSpans; + if (!spans) { + return; + } + for (var i = 0; i < spans.length; ++i) { + spans[i].marker.detachLine(line); + } + line.markedSpans = null; + } + function attachMarkedSpans(line, spans) { + if (!spans) { + return; + } + for (var i = 0; i < spans.length; ++i) { + spans[i].marker.attachLine(line); + } + line.markedSpans = spans; + } + + // Helpers used when computing which overlapping collapsed span + // counts as the larger one. + function extraLeft(marker) { + return marker.inclusiveLeft ? -1 : 0; + } + function extraRight(marker) { + return marker.inclusiveRight ? 1 : 0; + } + + // Returns a number indicating which of two overlapping collapsed + // spans is larger (and thus includes the other). Falls back to + // comparing ids when the spans cover exactly the same range. + function compareCollapsedMarkers(a, b) { + var lenDiff = a.lines.length - b.lines.length; + if (lenDiff != 0) { + return lenDiff; + } + var aPos = a.find(), + bPos = b.find(); + var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b); + if (fromCmp) { + return -fromCmp; + } + var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b); + if (toCmp) { + return toCmp; + } + return b.id - a.id; + } + + // Find out whether a line ends or starts in a collapsed span. If + // so, return the marker for that span. + function collapsedSpanAtSide(line, start) { + var sps = sawCollapsedSpans && line.markedSpans, + found; + if (sps) { + for (var sp = void 0, i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (sp.marker.collapsed && (start ? sp.from : sp.to) == null && (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { + found = sp.marker; + } + } + } + return found; + } + function collapsedSpanAtStart(line) { + return collapsedSpanAtSide(line, true); + } + function collapsedSpanAtEnd(line) { + return collapsedSpanAtSide(line, false); + } + function collapsedSpanAround(line, ch) { + var sps = sawCollapsedSpans && line.markedSpans, + found; + if (sps) { + for (var i = 0; i < sps.length; ++i) { + var sp = sps[i]; + if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) && (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { + found = sp.marker; + } + } + } + return found; + } + + // Test whether there exists a collapsed span that partially + // overlaps (covers the start or end, but not both) of a new span. + // Such overlap is not allowed. + function conflictingCollapsedRange(doc, lineNo, from, to, marker) { + var line = getLine(doc, lineNo); + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) { + for (var i = 0; i < sps.length; ++i) { + var sp = sps[i]; + if (!sp.marker.collapsed) { + continue; + } + var found = sp.marker.find(0); + var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker); + var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker); + if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { + continue; + } + if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) || fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0)) { + return true; + } + } + } + } + + // A visual line is a line as drawn on the screen. Folding, for + // example, can cause multiple logical lines to appear on the same + // visual line. This finds the start of the visual line that the + // given line is part of (usually that is the line itself). + function visualLine(line) { + var merged; + while (merged = collapsedSpanAtStart(line)) { + line = merged.find(-1, true).line; + } + return line; + } + function visualLineEnd(line) { + var merged; + while (merged = collapsedSpanAtEnd(line)) { + line = merged.find(1, true).line; + } + return line; + } + + // Returns an array of logical lines that continue the visual line + // started by the argument, or undefined if there are no such lines. + function visualLineContinued(line) { + var merged, lines; + while (merged = collapsedSpanAtEnd(line)) { + line = merged.find(1, true).line; + (lines || (lines = [])).push(line); + } + return lines; + } + + // Get the line number of the start of the visual line that the + // given line number is part of. + function visualLineNo(doc, lineN) { + var line = getLine(doc, lineN), + vis = visualLine(line); + if (line == vis) { + return lineN; + } + return lineNo(vis); + } + + // Get the line number of the start of the next visual line after + // the given line. + function visualLineEndNo(doc, lineN) { + if (lineN > doc.lastLine()) { + return lineN; + } + var line = getLine(doc, lineN), + merged; + if (!lineIsHidden(doc, line)) { + return lineN; + } + while (merged = collapsedSpanAtEnd(line)) { + line = merged.find(1, true).line; + } + return lineNo(line) + 1; + } + + // Compute whether a line is hidden. Lines count as hidden when they + // are part of a visual line that starts with another line, or when + // they are entirely covered by collapsed, non-widget span. + function lineIsHidden(doc, line) { + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) { + for (var sp = void 0, i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (!sp.marker.collapsed) { + continue; + } + if (sp.from == null) { + return true; + } + if (sp.marker.widgetNode) { + continue; + } + if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp)) { + return true; + } + } + } + } + function lineIsHiddenInner(doc, line, span) { + if (span.to == null) { + var end = span.marker.find(1, true); + return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker)); + } + if (span.marker.inclusiveRight && span.to == line.text.length) { + return true; + } + for (var sp = void 0, i = 0; i < line.markedSpans.length; ++i) { + sp = line.markedSpans[i]; + if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to && (sp.to == null || sp.to != span.from) && (sp.marker.inclusiveLeft || span.marker.inclusiveRight) && lineIsHiddenInner(doc, line, sp)) { + return true; + } + } + } + + // Find the height above the given line. + function heightAtLine(lineObj) { + lineObj = visualLine(lineObj); + var h = 0, + chunk = lineObj.parent; + for (var i = 0; i < chunk.lines.length; ++i) { + var line = chunk.lines[i]; + if (line == lineObj) { + break; + } else { + h += line.height; + } + } + for (var p = chunk.parent; p; chunk = p, p = chunk.parent) { + for (var i$1 = 0; i$1 < p.children.length; ++i$1) { + var cur = p.children[i$1]; + if (cur == chunk) { + break; + } else { + h += cur.height; + } + } + } + return h; + } + + // Compute the character length of a line, taking into account + // collapsed ranges (see markText) that might hide parts, and join + // other lines onto it. + function lineLength(line) { + if (line.height == 0) { + return 0; + } + var len = line.text.length, + merged, + cur = line; + while (merged = collapsedSpanAtStart(cur)) { + var found = merged.find(0, true); + cur = found.from.line; + len += found.from.ch - found.to.ch; + } + cur = line; + while (merged = collapsedSpanAtEnd(cur)) { + var found$1 = merged.find(0, true); + len -= cur.text.length - found$1.from.ch; + cur = found$1.to.line; + len += cur.text.length - found$1.to.ch; + } + return len; + } + + // Find the longest line in the document. + function findMaxLine(cm) { + var d = cm.display, + doc = cm.doc; + d.maxLine = getLine(doc, doc.first); + d.maxLineLength = lineLength(d.maxLine); + d.maxLineChanged = true; + doc.iter(function (line) { + var len = lineLength(line); + if (len > d.maxLineLength) { + d.maxLineLength = len; + d.maxLine = line; + } + }); + } + + // LINE DATA STRUCTURE + + // Line objects. These hold state related to a line, including + // highlighting info (the styles array). + var Line = function (text, markedSpans, estimateHeight) { + this.text = text; + attachMarkedSpans(this, markedSpans); + this.height = estimateHeight ? estimateHeight(this) : 1; + }; + Line.prototype.lineNo = function () { + return lineNo(this); + }; + eventMixin(Line); + + // Change the content (text, markers) of a line. Automatically + // invalidates cached information and tries to re-estimate the + // line's height. + function updateLine(line, text, markedSpans, estimateHeight) { + line.text = text; + if (line.stateAfter) { + line.stateAfter = null; + } + if (line.styles) { + line.styles = null; + } + if (line.order != null) { + line.order = null; + } + detachMarkedSpans(line); + attachMarkedSpans(line, markedSpans); + var estHeight = estimateHeight ? estimateHeight(line) : 1; + if (estHeight != line.height) { + updateLineHeight(line, estHeight); + } + } + + // Detach a line from the document tree and its markers. + function cleanUpLine(line) { + line.parent = null; + detachMarkedSpans(line); + } + + // Convert a style as returned by a mode (either null, or a string + // containing one or more styles) to a CSS style. This is cached, + // and also looks for line-wide styles. + var styleToClassCache = {}, + styleToClassCacheWithMode = {}; + function interpretTokenStyle(style, options) { + if (!style || /^\s*$/.test(style)) { + return null; + } + var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache; + return cache[style] || (cache[style] = style.replace(/\S+/g, "cm-$&")); + } + + // Render the DOM representation of the text of a line. Also builds + // up a 'line map', which points at the DOM nodes that represent + // specific stretches of text, and is used by the measuring code. + // The returned object contains the DOM node, this map, and + // information about line-wide styles that were set by the mode. + function buildLineContent(cm, lineView) { + // The padding-right forces the element to have a 'border', which + // is needed on Webkit to be able to get line-level bounding + // rectangles for it (in measureChar). + var content = eltP("span", null, null, webkit ? "padding-right: .1px" : null); + var builder = { + pre: eltP("pre", [content], "CodeMirror-line"), + content: content, + col: 0, + pos: 0, + cm: cm, + trailingSpace: false, + splitSpaces: cm.getOption("lineWrapping") + }; + lineView.measure = {}; + + // Iterate over the logical lines that make up this visual line. + for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) { + var line = i ? lineView.rest[i - 1] : lineView.line, + order = void 0; + builder.pos = 0; + builder.addToken = buildToken; + // Optionally wire in some hacks into the token-rendering + // algorithm, to deal with browser quirks. + if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction))) { + builder.addToken = buildTokenBadBidi(builder.addToken, order); + } + builder.map = []; + var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line); + insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate)); + if (line.styleClasses) { + if (line.styleClasses.bgClass) { + builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || ""); + } + if (line.styleClasses.textClass) { + builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || ""); + } + } + + // Ensure at least a single node is present, for measuring. + if (builder.map.length == 0) { + builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); + } + + // Store the map and a cache object for the current logical line + if (i == 0) { + lineView.measure.map = builder.map; + lineView.measure.cache = {}; + } else { + (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map); + (lineView.measure.caches || (lineView.measure.caches = [])).push({}); + } + } + + // See issue #2901 + if (webkit) { + var last = builder.content.lastChild; + if (/\bcm-tab\b/.test(last.className) || last.querySelector && last.querySelector(".cm-tab")) { + builder.content.className = "cm-tab-wrap-hack"; + } + } + signal(cm, "renderLine", cm, lineView.line, builder.pre); + if (builder.pre.className) { + builder.textClass = joinClasses(builder.pre.className, builder.textClass || ""); + } + return builder; + } + function defaultSpecialCharPlaceholder(ch) { + var token = elt("span", "\u2022", "cm-invalidchar"); + token.title = "\\u" + ch.charCodeAt(0).toString(16); + token.setAttribute("aria-label", token.title); + return token; + } + + // Build up the DOM representation for a single token, and add it to + // the line map. Takes care to render special characters separately. + function buildToken(builder, text, style, startStyle, endStyle, css, attributes) { + if (!text) { + return; + } + var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text; + var special = builder.cm.state.specialChars, + mustWrap = false; + var content; + if (!special.test(text)) { + builder.col += text.length; + content = document.createTextNode(displayText); + builder.map.push(builder.pos, builder.pos + text.length, content); + if (ie && ie_version < 9) { + mustWrap = true; + } + builder.pos += text.length; + } else { + content = document.createDocumentFragment(); + var pos = 0; + while (true) { + special.lastIndex = pos; + var m = special.exec(text); + var skipped = m ? m.index - pos : text.length - pos; + if (skipped) { + var txt = document.createTextNode(displayText.slice(pos, pos + skipped)); + if (ie && ie_version < 9) { + content.appendChild(elt("span", [txt])); + } else { + content.appendChild(txt); + } + builder.map.push(builder.pos, builder.pos + skipped, txt); + builder.col += skipped; + builder.pos += skipped; + } + if (!m) { + break; + } + pos += skipped + 1; + var txt$1 = void 0; + if (m[0] == "\t") { + var tabSize = builder.cm.options.tabSize, + tabWidth = tabSize - builder.col % tabSize; + txt$1 = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab")); + txt$1.setAttribute("role", "presentation"); + txt$1.setAttribute("cm-text", "\t"); + builder.col += tabWidth; + } else if (m[0] == "\r" || m[0] == "\n") { + txt$1 = content.appendChild(elt("span", m[0] == "\r" ? "\u240d" : "\u2424", "cm-invalidchar")); + txt$1.setAttribute("cm-text", m[0]); + builder.col += 1; + } else { + txt$1 = builder.cm.options.specialCharPlaceholder(m[0]); + txt$1.setAttribute("cm-text", m[0]); + if (ie && ie_version < 9) { + content.appendChild(elt("span", [txt$1])); + } else { + content.appendChild(txt$1); + } + builder.col += 1; + } + builder.map.push(builder.pos, builder.pos + 1, txt$1); + builder.pos++; + } + } + builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32; + if (style || startStyle || endStyle || mustWrap || css || attributes) { + var fullStyle = style || ""; + if (startStyle) { + fullStyle += startStyle; + } + if (endStyle) { + fullStyle += endStyle; + } + var token = elt("span", [content], fullStyle, css); + if (attributes) { + for (var attr in attributes) { + if (attributes.hasOwnProperty(attr) && attr != "style" && attr != "class") { + token.setAttribute(attr, attributes[attr]); + } + } + } + return builder.content.appendChild(token); + } + builder.content.appendChild(content); + } + + // Change some spaces to NBSP to prevent the browser from collapsing + // trailing spaces at the end of a line when rendering text (issue #1362). + function splitSpaces(text, trailingBefore) { + if (text.length > 1 && !/ /.test(text)) { + return text; + } + var spaceBefore = trailingBefore, + result = ""; + for (var i = 0; i < text.length; i++) { + var ch = text.charAt(i); + if (ch == " " && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32)) { + ch = "\u00a0"; + } + result += ch; + spaceBefore = ch == " "; + } + return result; + } + + // Work around nonsense dimensions being reported for stretches of + // right-to-left text. + function buildTokenBadBidi(inner, order) { + return function (builder, text, style, startStyle, endStyle, css, attributes) { + style = style ? style + " cm-force-border" : "cm-force-border"; + var start = builder.pos, + end = start + text.length; + for (;;) { + // Find the part that overlaps with the start of this text + var part = void 0; + for (var i = 0; i < order.length; i++) { + part = order[i]; + if (part.to > start && part.from <= start) { + break; + } + } + if (part.to >= end) { + return inner(builder, text, style, startStyle, endStyle, css, attributes); + } + inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes); + startStyle = null; + text = text.slice(part.to - start); + start = part.to; + } + }; + } + function buildCollapsedSpan(builder, size, marker, ignoreWidget) { + var widget = !ignoreWidget && marker.widgetNode; + if (widget) { + builder.map.push(builder.pos, builder.pos + size, widget); + } + if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) { + if (!widget) { + widget = builder.content.appendChild(document.createElement("span")); + } + widget.setAttribute("cm-marker", marker.id); + } + if (widget) { + builder.cm.display.input.setUneditable(widget); + builder.content.appendChild(widget); + } + builder.pos += size; + builder.trailingSpace = false; + } + + // Outputs a number of spans to make up a line, taking highlighting + // and marked text into account. + function insertLineContent(line, builder, styles) { + var spans = line.markedSpans, + allText = line.text, + at = 0; + if (!spans) { + for (var i$1 = 1; i$1 < styles.length; i$1 += 2) { + builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1 + 1], builder.cm.options)); + } + return; + } + var len = allText.length, + pos = 0, + i = 1, + text = "", + style, + css; + var nextChange = 0, + spanStyle, + spanEndStyle, + spanStartStyle, + collapsed, + attributes; + for (;;) { + if (nextChange == pos) { + // Update current marker set + spanStyle = spanEndStyle = spanStartStyle = css = ""; + attributes = null; + collapsed = null; + nextChange = Infinity; + var foundBookmarks = [], + endStyles = void 0; + for (var j = 0; j < spans.length; ++j) { + var sp = spans[j], + m = sp.marker; + if (m.type == "bookmark" && sp.from == pos && m.widgetNode) { + foundBookmarks.push(m); + } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) { + if (sp.to != null && sp.to != pos && nextChange > sp.to) { + nextChange = sp.to; + spanEndStyle = ""; + } + if (m.className) { + spanStyle += " " + m.className; + } + if (m.css) { + css = (css ? css + ";" : "") + m.css; + } + if (m.startStyle && sp.from == pos) { + spanStartStyle += " " + m.startStyle; + } + if (m.endStyle && sp.to == nextChange) { + (endStyles || (endStyles = [])).push(m.endStyle, sp.to); + } + // support for the old title property + // https://github.com/codemirror/CodeMirror/pull/5673 + if (m.title) { + (attributes || (attributes = {})).title = m.title; + } + if (m.attributes) { + for (var attr in m.attributes) { + (attributes || (attributes = {}))[attr] = m.attributes[attr]; + } + } + if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0)) { + collapsed = sp; + } + } else if (sp.from > pos && nextChange > sp.from) { + nextChange = sp.from; + } + } + if (endStyles) { + for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2) { + if (endStyles[j$1 + 1] == nextChange) { + spanEndStyle += " " + endStyles[j$1]; + } + } + } + if (!collapsed || collapsed.from == pos) { + for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2) { + buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); + } + } + if (collapsed && (collapsed.from || 0) == pos) { + buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos, collapsed.marker, collapsed.from == null); + if (collapsed.to == null) { + return; + } + if (collapsed.to == pos) { + collapsed = false; + } + } + } + if (pos >= len) { + break; + } + var upto = Math.min(len, nextChange); + while (true) { + if (text) { + var end = pos + text.length; + if (!collapsed) { + var tokenText = end > upto ? text.slice(0, upto - pos) : text; + builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle, spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", css, attributes); + } + if (end >= upto) { + text = text.slice(upto - pos); + pos = upto; + break; + } + pos = end; + spanStartStyle = ""; + } + text = allText.slice(at, at = styles[i++]); + style = interpretTokenStyle(styles[i++], builder.cm.options); + } + } + } + + // These objects are used to represent the visible (currently drawn) + // part of the document. A LineView may correspond to multiple + // logical lines, if those are connected by collapsed ranges. + function LineView(doc, line, lineN) { + // The starting line + this.line = line; + // Continuing lines, if any + this.rest = visualLineContinued(line); + // Number of logical lines in this visual line + this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1; + this.node = this.text = null; + this.hidden = lineIsHidden(doc, line); + } + + // Create a range of LineView objects for the given lines. + function buildViewArray(cm, from, to) { + var array = [], + nextPos; + for (var pos = from; pos < to; pos = nextPos) { + var view = new LineView(cm.doc, getLine(cm.doc, pos), pos); + nextPos = pos + view.size; + array.push(view); + } + return array; + } + var operationGroup = null; + function pushOperation(op) { + if (operationGroup) { + operationGroup.ops.push(op); + } else { + op.ownsGroup = operationGroup = { + ops: [op], + delayedCallbacks: [] + }; + } + } + function fireCallbacksForOps(group) { + // Calls delayed callbacks and cursorActivity handlers until no + // new ones appear + var callbacks = group.delayedCallbacks, + i = 0; + do { + for (; i < callbacks.length; i++) { + callbacks[i].call(null); + } + for (var j = 0; j < group.ops.length; j++) { + var op = group.ops[j]; + if (op.cursorActivityHandlers) { + while (op.cursorActivityCalled < op.cursorActivityHandlers.length) { + op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); + } + } + } + } while (i < callbacks.length); + } + function finishOperation(op, endCb) { + var group = op.ownsGroup; + if (!group) { + return; + } + try { + fireCallbacksForOps(group); + } finally { + operationGroup = null; + endCb(group); + } + } + var orphanDelayedCallbacks = null; + + // Often, we want to signal events at a point where we are in the + // middle of some work, but don't want the handler to start calling + // other methods on the editor, which might be in an inconsistent + // state or simply not expect any other events to happen. + // signalLater looks whether there are any handlers, and schedules + // them to be executed when the last operation ends, or, if no + // operation is active, when a timeout fires. + function signalLater(emitter, type /*, values...*/) { + var arr = getHandlers(emitter, type); + if (!arr.length) { + return; + } + var args = Array.prototype.slice.call(arguments, 2), + list; + if (operationGroup) { + list = operationGroup.delayedCallbacks; + } else if (orphanDelayedCallbacks) { + list = orphanDelayedCallbacks; + } else { + list = orphanDelayedCallbacks = []; + setTimeout(fireOrphanDelayed, 0); + } + var loop = function (i) { + list.push(function () { + return arr[i].apply(null, args); + }); + }; + for (var i = 0; i < arr.length; ++i) loop(i); + } + function fireOrphanDelayed() { + var delayed = orphanDelayedCallbacks; + orphanDelayedCallbacks = null; + for (var i = 0; i < delayed.length; ++i) { + delayed[i](); + } + } + + // When an aspect of a line changes, a string is added to + // lineView.changes. This updates the relevant part of the line's + // DOM structure. + function updateLineForChanges(cm, lineView, lineN, dims) { + for (var j = 0; j < lineView.changes.length; j++) { + var type = lineView.changes[j]; + if (type == "text") { + updateLineText(cm, lineView); + } else if (type == "gutter") { + updateLineGutter(cm, lineView, lineN, dims); + } else if (type == "class") { + updateLineClasses(cm, lineView); + } else if (type == "widget") { + updateLineWidgets(cm, lineView, dims); + } + } + lineView.changes = null; + } + + // Lines with gutter elements, widgets or a background class need to + // be wrapped, and have the extra elements added to the wrapper div + function ensureLineWrapped(lineView) { + if (lineView.node == lineView.text) { + lineView.node = elt("div", null, null, "position: relative"); + if (lineView.text.parentNode) { + lineView.text.parentNode.replaceChild(lineView.node, lineView.text); + } + lineView.node.appendChild(lineView.text); + if (ie && ie_version < 8) { + lineView.node.style.zIndex = 2; + } + } + return lineView.node; + } + function updateLineBackground(cm, lineView) { + var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass; + if (cls) { + cls += " CodeMirror-linebackground"; + } + if (lineView.background) { + if (cls) { + lineView.background.className = cls; + } else { + lineView.background.parentNode.removeChild(lineView.background); + lineView.background = null; + } + } else if (cls) { + var wrap = ensureLineWrapped(lineView); + lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild); + cm.display.input.setUneditable(lineView.background); + } + } + + // Wrapper around buildLineContent which will reuse the structure + // in display.externalMeasured when possible. + function getLineContent(cm, lineView) { + var ext = cm.display.externalMeasured; + if (ext && ext.line == lineView.line) { + cm.display.externalMeasured = null; + lineView.measure = ext.measure; + return ext.built; + } + return buildLineContent(cm, lineView); + } + + // Redraw the line's text. Interacts with the background and text + // classes because the mode may output tokens that influence these + // classes. + function updateLineText(cm, lineView) { + var cls = lineView.text.className; + var built = getLineContent(cm, lineView); + if (lineView.text == lineView.node) { + lineView.node = built.pre; + } + lineView.text.parentNode.replaceChild(built.pre, lineView.text); + lineView.text = built.pre; + if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) { + lineView.bgClass = built.bgClass; + lineView.textClass = built.textClass; + updateLineClasses(cm, lineView); + } else if (cls) { + lineView.text.className = cls; + } + } + function updateLineClasses(cm, lineView) { + updateLineBackground(cm, lineView); + if (lineView.line.wrapClass) { + ensureLineWrapped(lineView).className = lineView.line.wrapClass; + } else if (lineView.node != lineView.text) { + lineView.node.className = ""; + } + var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass; + lineView.text.className = textClass || ""; + } + function updateLineGutter(cm, lineView, lineN, dims) { + if (lineView.gutter) { + lineView.node.removeChild(lineView.gutter); + lineView.gutter = null; + } + if (lineView.gutterBackground) { + lineView.node.removeChild(lineView.gutterBackground); + lineView.gutterBackground = null; + } + if (lineView.line.gutterClass) { + var wrap = ensureLineWrapped(lineView); + lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass, "left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px; width: " + dims.gutterTotalWidth + "px"); + cm.display.input.setUneditable(lineView.gutterBackground); + wrap.insertBefore(lineView.gutterBackground, lineView.text); + } + var markers = lineView.line.gutterMarkers; + if (cm.options.lineNumbers || markers) { + var wrap$1 = ensureLineWrapped(lineView); + var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", "left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px"); + gutterWrap.setAttribute("aria-hidden", "true"); + cm.display.input.setUneditable(gutterWrap); + wrap$1.insertBefore(gutterWrap, lineView.text); + if (lineView.line.gutterClass) { + gutterWrap.className += " " + lineView.line.gutterClass; + } + if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) { + lineView.lineNumber = gutterWrap.appendChild(elt("div", lineNumberFor(cm.options, lineN), "CodeMirror-linenumber CodeMirror-gutter-elt", "left: " + dims.gutterLeft["CodeMirror-linenumbers"] + "px; width: " + cm.display.lineNumInnerWidth + "px")); + } + if (markers) { + for (var k = 0; k < cm.display.gutterSpecs.length; ++k) { + var id = cm.display.gutterSpecs[k].className, + found = markers.hasOwnProperty(id) && markers[id]; + if (found) { + gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", "left: " + dims.gutterLeft[id] + "px; width: " + dims.gutterWidth[id] + "px")); + } + } + } + } + } + function updateLineWidgets(cm, lineView, dims) { + if (lineView.alignable) { + lineView.alignable = null; + } + var isWidget = classTest("CodeMirror-linewidget"); + for (var node = lineView.node.firstChild, next = void 0; node; node = next) { + next = node.nextSibling; + if (isWidget.test(node.className)) { + lineView.node.removeChild(node); + } + } + insertLineWidgets(cm, lineView, dims); + } + + // Build a line's DOM representation from scratch + function buildLineElement(cm, lineView, lineN, dims) { + var built = getLineContent(cm, lineView); + lineView.text = lineView.node = built.pre; + if (built.bgClass) { + lineView.bgClass = built.bgClass; + } + if (built.textClass) { + lineView.textClass = built.textClass; + } + updateLineClasses(cm, lineView); + updateLineGutter(cm, lineView, lineN, dims); + insertLineWidgets(cm, lineView, dims); + return lineView.node; + } + + // A lineView may contain multiple logical lines (when merged by + // collapsed spans). The widgets for all of them need to be drawn. + function insertLineWidgets(cm, lineView, dims) { + insertLineWidgetsFor(cm, lineView.line, lineView, dims, true); + if (lineView.rest) { + for (var i = 0; i < lineView.rest.length; i++) { + insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); + } + } + } + function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) { + if (!line.widgets) { + return; + } + var wrap = ensureLineWrapped(lineView); + for (var i = 0, ws = line.widgets; i < ws.length; ++i) { + var widget = ws[i], + node = elt("div", [widget.node], "CodeMirror-linewidget" + (widget.className ? " " + widget.className : "")); + if (!widget.handleMouseEvents) { + node.setAttribute("cm-ignore-events", "true"); + } + positionLineWidget(widget, node, lineView, dims); + cm.display.input.setUneditable(node); + if (allowAbove && widget.above) { + wrap.insertBefore(node, lineView.gutter || lineView.text); + } else { + wrap.appendChild(node); + } + signalLater(widget, "redraw"); + } + } + function positionLineWidget(widget, node, lineView, dims) { + if (widget.noHScroll) { + (lineView.alignable || (lineView.alignable = [])).push(node); + var width = dims.wrapperWidth; + node.style.left = dims.fixedPos + "px"; + if (!widget.coverGutter) { + width -= dims.gutterTotalWidth; + node.style.paddingLeft = dims.gutterTotalWidth + "px"; + } + node.style.width = width + "px"; + } + if (widget.coverGutter) { + node.style.zIndex = 5; + node.style.position = "relative"; + if (!widget.noHScroll) { + node.style.marginLeft = -dims.gutterTotalWidth + "px"; + } + } + } + function widgetHeight(widget) { + if (widget.height != null) { + return widget.height; + } + var cm = widget.doc.cm; + if (!cm) { + return 0; + } + if (!contains(document.body, widget.node)) { + var parentStyle = "position: relative;"; + if (widget.coverGutter) { + parentStyle += "margin-left: -" + cm.display.gutters.offsetWidth + "px;"; + } + if (widget.noHScroll) { + parentStyle += "width: " + cm.display.wrapper.clientWidth + "px;"; + } + removeChildrenAndAdd(cm.display.measure, elt("div", [widget.node], null, parentStyle)); + } + return widget.height = widget.node.parentNode.offsetHeight; + } + + // Return true when the given mouse event happened in a widget + function eventInWidget(display, e) { + for (var n = e_target(e); n != display.wrapper; n = n.parentNode) { + if (!n || n.nodeType == 1 && n.getAttribute("cm-ignore-events") == "true" || n.parentNode == display.sizer && n != display.mover) { + return true; + } + } + } + + // POSITION MEASUREMENT + + function paddingTop(display) { + return display.lineSpace.offsetTop; + } + function paddingVert(display) { + return display.mover.offsetHeight - display.lineSpace.offsetHeight; + } + function paddingH(display) { + if (display.cachedPaddingH) { + return display.cachedPaddingH; + } + var e = removeChildrenAndAdd(display.measure, elt("pre", "x", "CodeMirror-line-like")); + var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle; + var data = { + left: parseInt(style.paddingLeft), + right: parseInt(style.paddingRight) + }; + if (!isNaN(data.left) && !isNaN(data.right)) { + display.cachedPaddingH = data; + } + return data; + } + function scrollGap(cm) { + return scrollerGap - cm.display.nativeBarWidth; + } + function displayWidth(cm) { + return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth; + } + function displayHeight(cm) { + return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight; + } + + // Ensure the lineView.wrapping.heights array is populated. This is + // an array of bottom offsets for the lines that make up a drawn + // line. When lineWrapping is on, there might be more than one + // height. + function ensureLineHeights(cm, lineView, rect) { + var wrapping = cm.options.lineWrapping; + var curWidth = wrapping && displayWidth(cm); + if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) { + var heights = lineView.measure.heights = []; + if (wrapping) { + lineView.measure.width = curWidth; + var rects = lineView.text.firstChild.getClientRects(); + for (var i = 0; i < rects.length - 1; i++) { + var cur = rects[i], + next = rects[i + 1]; + if (Math.abs(cur.bottom - next.bottom) > 2) { + heights.push((cur.bottom + next.top) / 2 - rect.top); + } + } + } + heights.push(rect.bottom - rect.top); + } + } + + // Find a line map (mapping character offsets to text nodes) and a + // measurement cache for the given line number. (A line view might + // contain multiple lines when collapsed ranges are present.) + function mapFromLineView(lineView, line, lineN) { + if (lineView.line == line) { + return { + map: lineView.measure.map, + cache: lineView.measure.cache + }; + } + if (lineView.rest) { + for (var i = 0; i < lineView.rest.length; i++) { + if (lineView.rest[i] == line) { + return { + map: lineView.measure.maps[i], + cache: lineView.measure.caches[i] + }; + } + } + for (var i$1 = 0; i$1 < lineView.rest.length; i$1++) { + if (lineNo(lineView.rest[i$1]) > lineN) { + return { + map: lineView.measure.maps[i$1], + cache: lineView.measure.caches[i$1], + before: true + }; + } + } + } + } + + // Render a line into the hidden node display.externalMeasured. Used + // when measurement is needed for a line that's not in the viewport. + function updateExternalMeasurement(cm, line) { + line = visualLine(line); + var lineN = lineNo(line); + var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN); + view.lineN = lineN; + var built = view.built = buildLineContent(cm, view); + view.text = built.pre; + removeChildrenAndAdd(cm.display.lineMeasure, built.pre); + return view; + } + + // Get a {top, bottom, left, right} box (in line-local coordinates) + // for a given character. + function measureChar(cm, line, ch, bias) { + return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias); + } + + // Find a line view that corresponds to the given line number. + function findViewForLine(cm, lineN) { + if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo) { + return cm.display.view[findViewIndex(cm, lineN)]; + } + var ext = cm.display.externalMeasured; + if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size) { + return ext; + } + } + + // Measurement can be split in two steps, the set-up work that + // applies to the whole line, and the measurement of the actual + // character. Functions like coordsChar, that need to do a lot of + // measurements in a row, can thus ensure that the set-up work is + // only done once. + function prepareMeasureForLine(cm, line) { + var lineN = lineNo(line); + var view = findViewForLine(cm, lineN); + if (view && !view.text) { + view = null; + } else if (view && view.changes) { + updateLineForChanges(cm, view, lineN, getDimensions(cm)); + cm.curOp.forceUpdate = true; + } + if (!view) { + view = updateExternalMeasurement(cm, line); + } + var info = mapFromLineView(view, line, lineN); + return { + line: line, + view: view, + rect: null, + map: info.map, + cache: info.cache, + before: info.before, + hasHeights: false + }; + } + + // Given a prepared measurement object, measures the position of an + // actual character (or fetches it from the cache). + function measureCharPrepared(cm, prepared, ch, bias, varHeight) { + if (prepared.before) { + ch = -1; + } + var key = ch + (bias || ""), + found; + if (prepared.cache.hasOwnProperty(key)) { + found = prepared.cache[key]; + } else { + if (!prepared.rect) { + prepared.rect = prepared.view.text.getBoundingClientRect(); + } + if (!prepared.hasHeights) { + ensureLineHeights(cm, prepared.view, prepared.rect); + prepared.hasHeights = true; + } + found = measureCharInner(cm, prepared, ch, bias); + if (!found.bogus) { + prepared.cache[key] = found; + } + } + return { + left: found.left, + right: found.right, + top: varHeight ? found.rtop : found.top, + bottom: varHeight ? found.rbottom : found.bottom + }; + } + var nullRect = { + left: 0, + right: 0, + top: 0, + bottom: 0 + }; + function nodeAndOffsetInLineMap(map, ch, bias) { + var node, start, end, collapse, mStart, mEnd; + // First, search the line map for the text node corresponding to, + // or closest to, the target character. + for (var i = 0; i < map.length; i += 3) { + mStart = map[i]; + mEnd = map[i + 1]; + if (ch < mStart) { + start = 0; + end = 1; + collapse = "left"; + } else if (ch < mEnd) { + start = ch - mStart; + end = start + 1; + } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) { + end = mEnd - mStart; + start = end - 1; + if (ch >= mEnd) { + collapse = "right"; + } + } + if (start != null) { + node = map[i + 2]; + if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right")) { + collapse = bias; + } + if (bias == "left" && start == 0) { + while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) { + node = map[(i -= 3) + 2]; + collapse = "left"; + } + } + if (bias == "right" && start == mEnd - mStart) { + while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) { + node = map[(i += 3) + 2]; + collapse = "right"; + } + } + break; + } + } + return { + node: node, + start: start, + end: end, + collapse: collapse, + coverStart: mStart, + coverEnd: mEnd + }; + } + function getUsefulRect(rects, bias) { + var rect = nullRect; + if (bias == "left") { + for (var i = 0; i < rects.length; i++) { + if ((rect = rects[i]).left != rect.right) { + break; + } + } + } else { + for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) { + if ((rect = rects[i$1]).left != rect.right) { + break; + } + } + } + return rect; + } + function measureCharInner(cm, prepared, ch, bias) { + var place = nodeAndOffsetInLineMap(prepared.map, ch, bias); + var node = place.node, + start = place.start, + end = place.end, + collapse = place.collapse; + var rect; + if (node.nodeType == 3) { + // If it is a text node, use a range to retrieve the coordinates. + for (var i$1 = 0; i$1 < 4; i$1++) { + // Retry a maximum of 4 times when nonsense rectangles are returned + while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { + --start; + } + while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { + ++end; + } + if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart) { + rect = node.parentNode.getBoundingClientRect(); + } else { + rect = getUsefulRect(range(node, start, end).getClientRects(), bias); + } + if (rect.left || rect.right || start == 0) { + break; + } + end = start; + start = start - 1; + collapse = "right"; + } + if (ie && ie_version < 11) { + rect = maybeUpdateRectForZooming(cm.display.measure, rect); + } + } else { + // If it is a widget, simply get the box for the whole widget. + if (start > 0) { + collapse = bias = "right"; + } + var rects; + if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1) { + rect = rects[bias == "right" ? rects.length - 1 : 0]; + } else { + rect = node.getBoundingClientRect(); + } + } + if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) { + var rSpan = node.parentNode.getClientRects()[0]; + if (rSpan) { + rect = { + left: rSpan.left, + right: rSpan.left + charWidth(cm.display), + top: rSpan.top, + bottom: rSpan.bottom + }; + } else { + rect = nullRect; + } + } + var rtop = rect.top - prepared.rect.top, + rbot = rect.bottom - prepared.rect.top; + var mid = (rtop + rbot) / 2; + var heights = prepared.view.measure.heights; + var i = 0; + for (; i < heights.length - 1; i++) { + if (mid < heights[i]) { + break; + } + } + var top = i ? heights[i - 1] : 0, + bot = heights[i]; + var result = { + left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left, + right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left, + top: top, + bottom: bot + }; + if (!rect.left && !rect.right) { + result.bogus = true; + } + if (!cm.options.singleCursorHeightPerLine) { + result.rtop = rtop; + result.rbottom = rbot; + } + return result; + } + + // Work around problem with bounding client rects on ranges being + // returned incorrectly when zoomed on IE10 and below. + function maybeUpdateRectForZooming(measure, rect) { + if (!window.screen || screen.logicalXDPI == null || screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure)) { + return rect; + } + var scaleX = screen.logicalXDPI / screen.deviceXDPI; + var scaleY = screen.logicalYDPI / screen.deviceYDPI; + return { + left: rect.left * scaleX, + right: rect.right * scaleX, + top: rect.top * scaleY, + bottom: rect.bottom * scaleY + }; + } + function clearLineMeasurementCacheFor(lineView) { + if (lineView.measure) { + lineView.measure.cache = {}; + lineView.measure.heights = null; + if (lineView.rest) { + for (var i = 0; i < lineView.rest.length; i++) { + lineView.measure.caches[i] = {}; + } + } + } + } + function clearLineMeasurementCache(cm) { + cm.display.externalMeasure = null; + removeChildren(cm.display.lineMeasure); + for (var i = 0; i < cm.display.view.length; i++) { + clearLineMeasurementCacheFor(cm.display.view[i]); + } + } + function clearCaches(cm) { + clearLineMeasurementCache(cm); + cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null; + if (!cm.options.lineWrapping) { + cm.display.maxLineChanged = true; + } + cm.display.lineNumChars = null; + } + function pageScrollX() { + // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206 + // which causes page_Offset and bounding client rects to use + // different reference viewports and invalidate our calculations. + if (chrome && android) { + return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)); + } + return window.pageXOffset || (document.documentElement || document.body).scrollLeft; + } + function pageScrollY() { + if (chrome && android) { + return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)); + } + return window.pageYOffset || (document.documentElement || document.body).scrollTop; + } + function widgetTopHeight(lineObj) { + var ref = visualLine(lineObj); + var widgets = ref.widgets; + var height = 0; + if (widgets) { + for (var i = 0; i < widgets.length; ++i) { + if (widgets[i].above) { + height += widgetHeight(widgets[i]); + } + } + } + return height; + } + + // Converts a {top, bottom, left, right} box from line-local + // coordinates into another coordinate system. Context may be one of + // "line", "div" (display.lineDiv), "local"./null (editor), "window", + // or "page". + function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) { + if (!includeWidgets) { + var height = widgetTopHeight(lineObj); + rect.top += height; + rect.bottom += height; + } + if (context == "line") { + return rect; + } + if (!context) { + context = "local"; + } + var yOff = heightAtLine(lineObj); + if (context == "local") { + yOff += paddingTop(cm.display); + } else { + yOff -= cm.display.viewOffset; + } + if (context == "page" || context == "window") { + var lOff = cm.display.lineSpace.getBoundingClientRect(); + yOff += lOff.top + (context == "window" ? 0 : pageScrollY()); + var xOff = lOff.left + (context == "window" ? 0 : pageScrollX()); + rect.left += xOff; + rect.right += xOff; + } + rect.top += yOff; + rect.bottom += yOff; + return rect; + } + + // Coverts a box from "div" coords to another coordinate system. + // Context may be "window", "page", "div", or "local"./null. + function fromCoordSystem(cm, coords, context) { + if (context == "div") { + return coords; + } + var left = coords.left, + top = coords.top; + // First move into "page" coordinate system + if (context == "page") { + left -= pageScrollX(); + top -= pageScrollY(); + } else if (context == "local" || !context) { + var localBox = cm.display.sizer.getBoundingClientRect(); + left += localBox.left; + top += localBox.top; + } + var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect(); + return { + left: left - lineSpaceBox.left, + top: top - lineSpaceBox.top + }; + } + function charCoords(cm, pos, context, lineObj, bias) { + if (!lineObj) { + lineObj = getLine(cm.doc, pos.line); + } + return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context); + } + + // Returns a box for a given cursor position, which may have an + // 'other' property containing the position of the secondary cursor + // on a bidi boundary. + // A cursor Pos(line, char, "before") is on the same visual line as `char - 1` + // and after `char - 1` in writing order of `char - 1` + // A cursor Pos(line, char, "after") is on the same visual line as `char` + // and before `char` in writing order of `char` + // Examples (upper-case letters are RTL, lower-case are LTR): + // Pos(0, 1, ...) + // before after + // ab a|b a|b + // aB a|B aB| + // Ab |Ab A|b + // AB B|A B|A + // Every position after the last character on a line is considered to stick + // to the last character on the line. + function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) { + lineObj = lineObj || getLine(cm.doc, pos.line); + if (!preparedMeasure) { + preparedMeasure = prepareMeasureForLine(cm, lineObj); + } + function get(ch, right) { + var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight); + if (right) { + m.left = m.right; + } else { + m.right = m.left; + } + return intoCoordSystem(cm, lineObj, m, context); + } + var order = getOrder(lineObj, cm.doc.direction), + ch = pos.ch, + sticky = pos.sticky; + if (ch >= lineObj.text.length) { + ch = lineObj.text.length; + sticky = "before"; + } else if (ch <= 0) { + ch = 0; + sticky = "after"; + } + if (!order) { + return get(sticky == "before" ? ch - 1 : ch, sticky == "before"); + } + function getBidi(ch, partPos, invert) { + var part = order[partPos], + right = part.level == 1; + return get(invert ? ch - 1 : ch, right != invert); + } + var partPos = getBidiPartAt(order, ch, sticky); + var other = bidiOther; + var val = getBidi(ch, partPos, sticky == "before"); + if (other != null) { + val.other = getBidi(ch, other, sticky != "before"); + } + return val; + } + + // Used to cheaply estimate the coordinates for a position. Used for + // intermediate scroll updates. + function estimateCoords(cm, pos) { + var left = 0; + pos = clipPos(cm.doc, pos); + if (!cm.options.lineWrapping) { + left = charWidth(cm.display) * pos.ch; + } + var lineObj = getLine(cm.doc, pos.line); + var top = heightAtLine(lineObj) + paddingTop(cm.display); + return { + left: left, + right: left, + top: top, + bottom: top + lineObj.height + }; + } + + // Positions returned by coordsChar contain some extra information. + // xRel is the relative x position of the input coordinates compared + // to the found position (so xRel > 0 means the coordinates are to + // the right of the character position, for example). When outside + // is true, that means the coordinates lie outside the line's + // vertical range. + function PosWithInfo(line, ch, sticky, outside, xRel) { + var pos = Pos(line, ch, sticky); + pos.xRel = xRel; + if (outside) { + pos.outside = outside; + } + return pos; + } + + // Compute the character position closest to the given coordinates. + // Input must be lineSpace-local ("div" coordinate system). + function coordsChar(cm, x, y) { + var doc = cm.doc; + y += cm.display.viewOffset; + if (y < 0) { + return PosWithInfo(doc.first, 0, null, -1, -1); + } + var lineN = lineAtHeight(doc, y), + last = doc.first + doc.size - 1; + if (lineN > last) { + return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1); + } + if (x < 0) { + x = 0; + } + var lineObj = getLine(doc, lineN); + for (;;) { + var found = coordsCharInner(cm, lineObj, lineN, x, y); + var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0)); + if (!collapsed) { + return found; + } + var rangeEnd = collapsed.find(1); + if (rangeEnd.line == lineN) { + return rangeEnd; + } + lineObj = getLine(doc, lineN = rangeEnd.line); + } + } + function wrappedLineExtent(cm, lineObj, preparedMeasure, y) { + y -= widgetTopHeight(lineObj); + var end = lineObj.text.length; + var begin = findFirst(function (ch) { + return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; + }, end, 0); + end = findFirst(function (ch) { + return measureCharPrepared(cm, preparedMeasure, ch).top > y; + }, begin, end); + return { + begin: begin, + end: end + }; + } + function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) { + if (!preparedMeasure) { + preparedMeasure = prepareMeasureForLine(cm, lineObj); + } + var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top; + return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop); + } + + // Returns true if the given side of a box is after the given + // coordinates, in top-to-bottom, left-to-right order. + function boxIsAfter(box, x, y, left) { + return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x; + } + function coordsCharInner(cm, lineObj, lineNo, x, y) { + // Move y into line-local coordinate space + y -= heightAtLine(lineObj); + var preparedMeasure = prepareMeasureForLine(cm, lineObj); + // When directly calling `measureCharPrepared`, we have to adjust + // for the widgets at this line. + var widgetHeight = widgetTopHeight(lineObj); + var begin = 0, + end = lineObj.text.length, + ltr = true; + var order = getOrder(lineObj, cm.doc.direction); + // If the line isn't plain left-to-right text, first figure out + // which bidi section the coordinates fall into. + if (order) { + var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)(cm, lineObj, lineNo, preparedMeasure, order, x, y); + ltr = part.level != 1; + // The awkward -1 offsets are needed because findFirst (called + // on these below) will treat its first bound as inclusive, + // second as exclusive, but we want to actually address the + // characters in the part's range + begin = ltr ? part.from : part.to - 1; + end = ltr ? part.to : part.from - 1; + } + + // A binary search to find the first character whose bounding box + // starts after the coordinates. If we run across any whose box wrap + // the coordinates, store that. + var chAround = null, + boxAround = null; + var ch = findFirst(function (ch) { + var box = measureCharPrepared(cm, preparedMeasure, ch); + box.top += widgetHeight; + box.bottom += widgetHeight; + if (!boxIsAfter(box, x, y, false)) { + return false; + } + if (box.top <= y && box.left <= x) { + chAround = ch; + boxAround = box; + } + return true; + }, begin, end); + var baseX, + sticky, + outside = false; + // If a box around the coordinates was found, use that + if (boxAround) { + // Distinguish coordinates nearer to the left or right side of the box + var atLeft = x - boxAround.left < boxAround.right - x, + atStart = atLeft == ltr; + ch = chAround + (atStart ? 0 : 1); + sticky = atStart ? "after" : "before"; + baseX = atLeft ? boxAround.left : boxAround.right; + } else { + // (Adjust for extended bound, if necessary.) + if (!ltr && (ch == end || ch == begin)) { + ch++; + } + // To determine which side to associate with, get the box to the + // left of the character and compare it's vertical position to the + // coordinates + sticky = ch == 0 ? "after" : ch == lineObj.text.length ? "before" : measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight <= y == ltr ? "after" : "before"; + // Now get accurate coordinates for this place, in order to get a + // base X position + var coords = cursorCoords(cm, Pos(lineNo, ch, sticky), "line", lineObj, preparedMeasure); + baseX = coords.left; + outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0; + } + ch = skipExtendingChars(lineObj.text, ch, 1); + return PosWithInfo(lineNo, ch, sticky, outside, x - baseX); + } + function coordsBidiPart(cm, lineObj, lineNo, preparedMeasure, order, x, y) { + // Bidi parts are sorted left-to-right, and in a non-line-wrapping + // situation, we can take this ordering to correspond to the visual + // ordering. This finds the first part whose end is after the given + // coordinates. + var index = findFirst(function (i) { + var part = order[i], + ltr = part.level != 1; + return boxIsAfter(cursorCoords(cm, Pos(lineNo, ltr ? part.to : part.from, ltr ? "before" : "after"), "line", lineObj, preparedMeasure), x, y, true); + }, 0, order.length - 1); + var part = order[index]; + // If this isn't the first part, the part's start is also after + // the coordinates, and the coordinates aren't on the same line as + // that start, move one part back. + if (index > 0) { + var ltr = part.level != 1; + var start = cursorCoords(cm, Pos(lineNo, ltr ? part.from : part.to, ltr ? "after" : "before"), "line", lineObj, preparedMeasure); + if (boxIsAfter(start, x, y, true) && start.top > y) { + part = order[index - 1]; + } + } + return part; + } + function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) { + // In a wrapped line, rtl text on wrapping boundaries can do things + // that don't correspond to the ordering in our `order` array at + // all, so a binary search doesn't work, and we want to return a + // part that only spans one line so that the binary search in + // coordsCharInner is safe. As such, we first find the extent of the + // wrapped line, and then do a flat search in which we discard any + // spans that aren't on the line. + var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y); + var begin = ref.begin; + var end = ref.end; + if (/\s/.test(lineObj.text.charAt(end - 1))) { + end--; + } + var part = null, + closestDist = null; + for (var i = 0; i < order.length; i++) { + var p = order[i]; + if (p.from >= end || p.to <= begin) { + continue; + } + var ltr = p.level != 1; + var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right; + // Weigh against spans ending before this, so that they are only + // picked if nothing ends after + var dist = endX < x ? x - endX + 1e9 : endX - x; + if (!part || closestDist > dist) { + part = p; + closestDist = dist; + } + } + if (!part) { + part = order[order.length - 1]; + } + // Clip the part to the wrapped line. + if (part.from < begin) { + part = { + from: begin, + to: part.to, + level: part.level + }; + } + if (part.to > end) { + part = { + from: part.from, + to: end, + level: part.level + }; + } + return part; + } + var measureText; + // Compute the default text height. + function textHeight(display) { + if (display.cachedTextHeight != null) { + return display.cachedTextHeight; + } + if (measureText == null) { + measureText = elt("pre", null, "CodeMirror-line-like"); + // Measure a bunch of lines, for browsers that compute + // fractional heights. + for (var i = 0; i < 49; ++i) { + measureText.appendChild(document.createTextNode("x")); + measureText.appendChild(elt("br")); + } + measureText.appendChild(document.createTextNode("x")); + } + removeChildrenAndAdd(display.measure, measureText); + var height = measureText.offsetHeight / 50; + if (height > 3) { + display.cachedTextHeight = height; + } + removeChildren(display.measure); + return height || 1; + } + + // Compute the default character width. + function charWidth(display) { + if (display.cachedCharWidth != null) { + return display.cachedCharWidth; + } + var anchor = elt("span", "xxxxxxxxxx"); + var pre = elt("pre", [anchor], "CodeMirror-line-like"); + removeChildrenAndAdd(display.measure, pre); + var rect = anchor.getBoundingClientRect(), + width = (rect.right - rect.left) / 10; + if (width > 2) { + display.cachedCharWidth = width; + } + return width || 10; + } + + // Do a bulk-read of the DOM positions and sizes needed to draw the + // view, so that we don't interleave reading and writing to the DOM. + function getDimensions(cm) { + var d = cm.display, + left = {}, + width = {}; + var gutterLeft = d.gutters.clientLeft; + for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) { + var id = cm.display.gutterSpecs[i].className; + left[id] = n.offsetLeft + n.clientLeft + gutterLeft; + width[id] = n.clientWidth; + } + return { + fixedPos: compensateForHScroll(d), + gutterTotalWidth: d.gutters.offsetWidth, + gutterLeft: left, + gutterWidth: width, + wrapperWidth: d.wrapper.clientWidth + }; + } + + // Computes display.scroller.scrollLeft + display.gutters.offsetWidth, + // but using getBoundingClientRect to get a sub-pixel-accurate + // result. + function compensateForHScroll(display) { + return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left; + } + + // Returns a function that estimates the height of a line, to use as + // first approximation until the line becomes visible (and is thus + // properly measurable). + function estimateHeight(cm) { + var th = textHeight(cm.display), + wrapping = cm.options.lineWrapping; + var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3); + return function (line) { + if (lineIsHidden(cm.doc, line)) { + return 0; + } + var widgetsHeight = 0; + if (line.widgets) { + for (var i = 0; i < line.widgets.length; i++) { + if (line.widgets[i].height) { + widgetsHeight += line.widgets[i].height; + } + } + } + if (wrapping) { + return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th; + } else { + return widgetsHeight + th; + } + }; + } + function estimateLineHeights(cm) { + var doc = cm.doc, + est = estimateHeight(cm); + doc.iter(function (line) { + var estHeight = est(line); + if (estHeight != line.height) { + updateLineHeight(line, estHeight); + } + }); + } + + // Given a mouse event, find the corresponding position. If liberal + // is false, it checks whether a gutter or scrollbar was clicked, + // and returns null if it was. forRect is used by rectangular + // selections, and tries to estimate a character position even for + // coordinates beyond the right of the text. + function posFromMouse(cm, e, liberal, forRect) { + var display = cm.display; + if (!liberal && e_target(e).getAttribute("cm-not-content") == "true") { + return null; + } + var x, + y, + space = display.lineSpace.getBoundingClientRect(); + // Fails unpredictably on IE[67] when mouse is dragged around quickly. + try { + x = e.clientX - space.left; + y = e.clientY - space.top; + } catch (e$1) { + return null; + } + var coords = coordsChar(cm, x, y), + line; + if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) { + var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length; + coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff)); + } + return coords; + } + + // Find the view element corresponding to a given line. Return null + // when the line isn't visible. + function findViewIndex(cm, n) { + if (n >= cm.display.viewTo) { + return null; + } + n -= cm.display.viewFrom; + if (n < 0) { + return null; + } + var view = cm.display.view; + for (var i = 0; i < view.length; i++) { + n -= view[i].size; + if (n < 0) { + return i; + } + } + } + + // Updates the display.view data structure for a given change to the + // document. From and to are in pre-change coordinates. Lendiff is + // the amount of lines added or subtracted by the change. This is + // used for changes that span multiple lines, or change the way + // lines are divided into visual lines. regLineChange (below) + // registers single-line changes. + function regChange(cm, from, to, lendiff) { + if (from == null) { + from = cm.doc.first; + } + if (to == null) { + to = cm.doc.first + cm.doc.size; + } + if (!lendiff) { + lendiff = 0; + } + var display = cm.display; + if (lendiff && to < display.viewTo && (display.updateLineNumbers == null || display.updateLineNumbers > from)) { + display.updateLineNumbers = from; + } + cm.curOp.viewChanged = true; + if (from >= display.viewTo) { + // Change after + if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo) { + resetView(cm); + } + } else if (to <= display.viewFrom) { + // Change before + if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) { + resetView(cm); + } else { + display.viewFrom += lendiff; + display.viewTo += lendiff; + } + } else if (from <= display.viewFrom && to >= display.viewTo) { + // Full overlap + resetView(cm); + } else if (from <= display.viewFrom) { + // Top overlap + var cut = viewCuttingPoint(cm, to, to + lendiff, 1); + if (cut) { + display.view = display.view.slice(cut.index); + display.viewFrom = cut.lineN; + display.viewTo += lendiff; + } else { + resetView(cm); + } + } else if (to >= display.viewTo) { + // Bottom overlap + var cut$1 = viewCuttingPoint(cm, from, from, -1); + if (cut$1) { + display.view = display.view.slice(0, cut$1.index); + display.viewTo = cut$1.lineN; + } else { + resetView(cm); + } + } else { + // Gap in the middle + var cutTop = viewCuttingPoint(cm, from, from, -1); + var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1); + if (cutTop && cutBot) { + display.view = display.view.slice(0, cutTop.index).concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN)).concat(display.view.slice(cutBot.index)); + display.viewTo += lendiff; + } else { + resetView(cm); + } + } + var ext = display.externalMeasured; + if (ext) { + if (to < ext.lineN) { + ext.lineN += lendiff; + } else if (from < ext.lineN + ext.size) { + display.externalMeasured = null; + } + } + } + + // Register a change to a single line. Type must be one of "text", + // "gutter", "class", "widget" + function regLineChange(cm, line, type) { + cm.curOp.viewChanged = true; + var display = cm.display, + ext = cm.display.externalMeasured; + if (ext && line >= ext.lineN && line < ext.lineN + ext.size) { + display.externalMeasured = null; + } + if (line < display.viewFrom || line >= display.viewTo) { + return; + } + var lineView = display.view[findViewIndex(cm, line)]; + if (lineView.node == null) { + return; + } + var arr = lineView.changes || (lineView.changes = []); + if (indexOf(arr, type) == -1) { + arr.push(type); + } + } + + // Clear the view. + function resetView(cm) { + cm.display.viewFrom = cm.display.viewTo = cm.doc.first; + cm.display.view = []; + cm.display.viewOffset = 0; + } + function viewCuttingPoint(cm, oldN, newN, dir) { + var index = findViewIndex(cm, oldN), + diff, + view = cm.display.view; + if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size) { + return { + index: index, + lineN: newN + }; + } + var n = cm.display.viewFrom; + for (var i = 0; i < index; i++) { + n += view[i].size; + } + if (n != oldN) { + if (dir > 0) { + if (index == view.length - 1) { + return null; + } + diff = n + view[index].size - oldN; + index++; + } else { + diff = n - oldN; + } + oldN += diff; + newN += diff; + } + while (visualLineNo(cm.doc, newN) != newN) { + if (index == (dir < 0 ? 0 : view.length - 1)) { + return null; + } + newN += dir * view[index - (dir < 0 ? 1 : 0)].size; + index += dir; + } + return { + index: index, + lineN: newN + }; + } + + // Force the view to cover a given range, adding empty view element + // or clipping off existing ones as needed. + function adjustView(cm, from, to) { + var display = cm.display, + view = display.view; + if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) { + display.view = buildViewArray(cm, from, to); + display.viewFrom = from; + } else { + if (display.viewFrom > from) { + display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); + } else if (display.viewFrom < from) { + display.view = display.view.slice(findViewIndex(cm, from)); + } + display.viewFrom = from; + if (display.viewTo < to) { + display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); + } else if (display.viewTo > to) { + display.view = display.view.slice(0, findViewIndex(cm, to)); + } + } + display.viewTo = to; + } + + // Count the number of lines in the view whose DOM representation is + // out of date (or nonexistent). + function countDirtyView(cm) { + var view = cm.display.view, + dirty = 0; + for (var i = 0; i < view.length; i++) { + var lineView = view[i]; + if (!lineView.hidden && (!lineView.node || lineView.changes)) { + ++dirty; + } + } + return dirty; + } + function updateSelection(cm) { + cm.display.input.showSelection(cm.display.input.prepareSelection()); + } + function prepareSelection(cm, primary) { + if (primary === void 0) primary = true; + var doc = cm.doc, + result = {}; + var curFragment = result.cursors = document.createDocumentFragment(); + var selFragment = result.selection = document.createDocumentFragment(); + var customCursor = cm.options.$customCursor; + if (customCursor) { + primary = true; + } + for (var i = 0; i < doc.sel.ranges.length; i++) { + if (!primary && i == doc.sel.primIndex) { + continue; + } + var range = doc.sel.ranges[i]; + if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { + continue; + } + var collapsed = range.empty(); + if (customCursor) { + var head = customCursor(cm, range); + if (head) { + drawSelectionCursor(cm, head, curFragment); + } + } else if (collapsed || cm.options.showCursorWhenSelecting) { + drawSelectionCursor(cm, range.head, curFragment); + } + if (!collapsed) { + drawSelectionRange(cm, range, selFragment); + } + } + return result; + } + + // Draws a cursor for the given range + function drawSelectionCursor(cm, head, output) { + var pos = cursorCoords(cm, head, "div", null, null, !cm.options.singleCursorHeightPerLine); + var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor")); + cursor.style.left = pos.left + "px"; + cursor.style.top = pos.top + "px"; + cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px"; + if (/\bcm-fat-cursor\b/.test(cm.getWrapperElement().className)) { + var charPos = charCoords(cm, head, "div", null, null); + var width = charPos.right - charPos.left; + cursor.style.width = (width > 0 ? width : cm.defaultCharWidth()) + "px"; + } + if (pos.other) { + // Secondary cursor, shown when on a 'jump' in bi-directional text + var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor")); + otherCursor.style.display = ""; + otherCursor.style.left = pos.other.left + "px"; + otherCursor.style.top = pos.other.top + "px"; + otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px"; + } + } + function cmpCoords(a, b) { + return a.top - b.top || a.left - b.left; + } + + // Draws the given range as a highlighted selection + function drawSelectionRange(cm, range, output) { + var display = cm.display, + doc = cm.doc; + var fragment = document.createDocumentFragment(); + var padding = paddingH(cm.display), + leftSide = padding.left; + var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right; + var docLTR = doc.direction == "ltr"; + function add(left, top, width, bottom) { + if (top < 0) { + top = 0; + } + top = Math.round(top); + bottom = Math.round(bottom); + fragment.appendChild(elt("div", null, "CodeMirror-selected", "position: absolute; left: " + left + "px;\n top: " + top + "px; width: " + (width == null ? rightSide - left : width) + "px;\n height: " + (bottom - top) + "px")); + } + function drawForLine(line, fromArg, toArg) { + var lineObj = getLine(doc, line); + var lineLen = lineObj.text.length; + var start, end; + function coords(ch, bias) { + return charCoords(cm, Pos(line, ch), "div", lineObj, bias); + } + function wrapX(pos, dir, side) { + var extent = wrappedLineExtentChar(cm, lineObj, null, pos); + var prop = dir == "ltr" == (side == "after") ? "left" : "right"; + var ch = side == "after" ? extent.begin : extent.end - (/\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1); + return coords(ch, prop)[prop]; + } + var order = getOrder(lineObj, doc.direction); + iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) { + var ltr = dir == "ltr"; + var fromPos = coords(from, ltr ? "left" : "right"); + var toPos = coords(to - 1, ltr ? "right" : "left"); + var openStart = fromArg == null && from == 0, + openEnd = toArg == null && to == lineLen; + var first = i == 0, + last = !order || i == order.length - 1; + if (toPos.top - fromPos.top <= 3) { + // Single line + var openLeft = (docLTR ? openStart : openEnd) && first; + var openRight = (docLTR ? openEnd : openStart) && last; + var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left; + var right = openRight ? rightSide : (ltr ? toPos : fromPos).right; + add(left, fromPos.top, right - left, fromPos.bottom); + } else { + // Multiple lines + var topLeft, topRight, botLeft, botRight; + if (ltr) { + topLeft = docLTR && openStart && first ? leftSide : fromPos.left; + topRight = docLTR ? rightSide : wrapX(from, dir, "before"); + botLeft = docLTR ? leftSide : wrapX(to, dir, "after"); + botRight = docLTR && openEnd && last ? rightSide : toPos.right; + } else { + topLeft = !docLTR ? leftSide : wrapX(from, dir, "before"); + topRight = !docLTR && openStart && first ? rightSide : fromPos.right; + botLeft = !docLTR && openEnd && last ? leftSide : toPos.left; + botRight = !docLTR ? rightSide : wrapX(to, dir, "after"); + } + add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom); + if (fromPos.bottom < toPos.top) { + add(leftSide, fromPos.bottom, null, toPos.top); + } + add(botLeft, toPos.top, botRight - botLeft, toPos.bottom); + } + if (!start || cmpCoords(fromPos, start) < 0) { + start = fromPos; + } + if (cmpCoords(toPos, start) < 0) { + start = toPos; + } + if (!end || cmpCoords(fromPos, end) < 0) { + end = fromPos; + } + if (cmpCoords(toPos, end) < 0) { + end = toPos; + } + }); + return { + start: start, + end: end + }; + } + var sFrom = range.from(), + sTo = range.to(); + if (sFrom.line == sTo.line) { + drawForLine(sFrom.line, sFrom.ch, sTo.ch); + } else { + var fromLine = getLine(doc, sFrom.line), + toLine = getLine(doc, sTo.line); + var singleVLine = visualLine(fromLine) == visualLine(toLine); + var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end; + var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start; + if (singleVLine) { + if (leftEnd.top < rightStart.top - 2) { + add(leftEnd.right, leftEnd.top, null, leftEnd.bottom); + add(leftSide, rightStart.top, rightStart.left, rightStart.bottom); + } else { + add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom); + } + } + if (leftEnd.bottom < rightStart.top) { + add(leftSide, leftEnd.bottom, null, rightStart.top); + } + } + output.appendChild(fragment); + } + + // Cursor-blinking + function restartBlink(cm) { + if (!cm.state.focused) { + return; + } + var display = cm.display; + clearInterval(display.blinker); + var on = true; + display.cursorDiv.style.visibility = ""; + if (cm.options.cursorBlinkRate > 0) { + display.blinker = setInterval(function () { + if (!cm.hasFocus()) { + onBlur(cm); + } + display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden"; + }, cm.options.cursorBlinkRate); + } else if (cm.options.cursorBlinkRate < 0) { + display.cursorDiv.style.visibility = "hidden"; + } + } + function ensureFocus(cm) { + if (!cm.hasFocus()) { + cm.display.input.focus(); + if (!cm.state.focused) { + onFocus(cm); + } + } + } + function delayBlurEvent(cm) { + cm.state.delayingBlurEvent = true; + setTimeout(function () { + if (cm.state.delayingBlurEvent) { + cm.state.delayingBlurEvent = false; + if (cm.state.focused) { + onBlur(cm); + } + } + }, 100); + } + function onFocus(cm, e) { + if (cm.state.delayingBlurEvent && !cm.state.draggingText) { + cm.state.delayingBlurEvent = false; + } + if (cm.options.readOnly == "nocursor") { + return; + } + if (!cm.state.focused) { + signal(cm, "focus", cm, e); + cm.state.focused = true; + addClass(cm.display.wrapper, "CodeMirror-focused"); + // This test prevents this from firing when a context + // menu is closed (since the input reset would kill the + // select-all detection hack) + if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) { + cm.display.input.reset(); + if (webkit) { + setTimeout(function () { + return cm.display.input.reset(true); + }, 20); + } // Issue #1730 + } + cm.display.input.receivedFocus(); + } + restartBlink(cm); + } + function onBlur(cm, e) { + if (cm.state.delayingBlurEvent) { + return; + } + if (cm.state.focused) { + signal(cm, "blur", cm, e); + cm.state.focused = false; + rmClass(cm.display.wrapper, "CodeMirror-focused"); + } + clearInterval(cm.display.blinker); + setTimeout(function () { + if (!cm.state.focused) { + cm.display.shift = false; + } + }, 150); + } + + // Read the actual heights of the rendered lines, and update their + // stored heights to match. + function updateHeightsInViewport(cm) { + var display = cm.display; + var prevBottom = display.lineDiv.offsetTop; + var viewTop = Math.max(0, display.scroller.getBoundingClientRect().top); + var oldHeight = display.lineDiv.getBoundingClientRect().top; + var mustScroll = 0; + for (var i = 0; i < display.view.length; i++) { + var cur = display.view[i], + wrapping = cm.options.lineWrapping; + var height = void 0, + width = 0; + if (cur.hidden) { + continue; + } + oldHeight += cur.line.height; + if (ie && ie_version < 8) { + var bot = cur.node.offsetTop + cur.node.offsetHeight; + height = bot - prevBottom; + prevBottom = bot; + } else { + var box = cur.node.getBoundingClientRect(); + height = box.bottom - box.top; + // Check that lines don't extend past the right of the current + // editor width + if (!wrapping && cur.text.firstChild) { + width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; + } + } + var diff = cur.line.height - height; + if (diff > .005 || diff < -.005) { + if (oldHeight < viewTop) { + mustScroll -= diff; + } + updateLineHeight(cur.line, height); + updateWidgetHeight(cur.line); + if (cur.rest) { + for (var j = 0; j < cur.rest.length; j++) { + updateWidgetHeight(cur.rest[j]); + } + } + } + if (width > cm.display.sizerWidth) { + var chWidth = Math.ceil(width / charWidth(cm.display)); + if (chWidth > cm.display.maxLineLength) { + cm.display.maxLineLength = chWidth; + cm.display.maxLine = cur.line; + cm.display.maxLineChanged = true; + } + } + } + if (Math.abs(mustScroll) > 2) { + display.scroller.scrollTop += mustScroll; + } + } + + // Read and store the height of line widgets associated with the + // given line. + function updateWidgetHeight(line) { + if (line.widgets) { + for (var i = 0; i < line.widgets.length; ++i) { + var w = line.widgets[i], + parent = w.node.parentNode; + if (parent) { + w.height = parent.offsetHeight; + } + } + } + } + + // Compute the lines that are visible in a given viewport (defaults + // the the current scroll position). viewport may contain top, + // height, and ensure (see op.scrollToPos) properties. + function visibleLines(display, doc, viewport) { + var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop; + top = Math.floor(top - paddingTop(display)); + var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight; + var from = lineAtHeight(doc, top), + to = lineAtHeight(doc, bottom); + // Ensure is a {from: {line, ch}, to: {line, ch}} object, and + // forces those lines into the viewport (if possible). + if (viewport && viewport.ensure) { + var ensureFrom = viewport.ensure.from.line, + ensureTo = viewport.ensure.to.line; + if (ensureFrom < from) { + from = ensureFrom; + to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight); + } else if (Math.min(ensureTo, doc.lastLine()) >= to) { + from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight); + to = ensureTo; + } + } + return { + from: from, + to: Math.max(to, from + 1) + }; + } + + // SCROLLING THINGS INTO VIEW + + // If an editor sits on the top or bottom of the window, partially + // scrolled out of view, this ensures that the cursor is visible. + function maybeScrollWindow(cm, rect) { + if (signalDOMEvent(cm, "scrollCursorIntoView")) { + return; + } + var display = cm.display, + box = display.sizer.getBoundingClientRect(), + doScroll = null; + if (rect.top + box.top < 0) { + doScroll = true; + } else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { + doScroll = false; + } + if (doScroll != null && !phantom) { + var scrollNode = elt("div", "\u200b", null, "position: absolute;\n top: " + (rect.top - display.viewOffset - paddingTop(cm.display)) + "px;\n height: " + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + "px;\n left: " + rect.left + "px; width: " + Math.max(2, rect.right - rect.left) + "px;"); + cm.display.lineSpace.appendChild(scrollNode); + scrollNode.scrollIntoView(doScroll); + cm.display.lineSpace.removeChild(scrollNode); + } + } + + // Scroll a given position into view (immediately), verifying that + // it actually became visible (as line heights are accurately + // measured, the position of something may 'drift' during drawing). + function scrollPosIntoView(cm, pos, end, margin) { + if (margin == null) { + margin = 0; + } + var rect; + if (!cm.options.lineWrapping && pos == end) { + // Set pos and end to the cursor positions around the character pos sticks to + // If pos.sticky == "before", that is around pos.ch - 1, otherwise around pos.ch + // If pos == Pos(_, 0, "before"), pos and end are unchanged + end = pos.sticky == "before" ? Pos(pos.line, pos.ch + 1, "before") : pos; + pos = pos.ch ? Pos(pos.line, pos.sticky == "before" ? pos.ch - 1 : pos.ch, "after") : pos; + } + for (var limit = 0; limit < 5; limit++) { + var changed = false; + var coords = cursorCoords(cm, pos); + var endCoords = !end || end == pos ? coords : cursorCoords(cm, end); + rect = { + left: Math.min(coords.left, endCoords.left), + top: Math.min(coords.top, endCoords.top) - margin, + right: Math.max(coords.left, endCoords.left), + bottom: Math.max(coords.bottom, endCoords.bottom) + margin + }; + var scrollPos = calculateScrollPos(cm, rect); + var startTop = cm.doc.scrollTop, + startLeft = cm.doc.scrollLeft; + if (scrollPos.scrollTop != null) { + updateScrollTop(cm, scrollPos.scrollTop); + if (Math.abs(cm.doc.scrollTop - startTop) > 1) { + changed = true; + } + } + if (scrollPos.scrollLeft != null) { + setScrollLeft(cm, scrollPos.scrollLeft); + if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { + changed = true; + } + } + if (!changed) { + break; + } + } + return rect; + } + + // Scroll a given set of coordinates into view (immediately). + function scrollIntoView(cm, rect) { + var scrollPos = calculateScrollPos(cm, rect); + if (scrollPos.scrollTop != null) { + updateScrollTop(cm, scrollPos.scrollTop); + } + if (scrollPos.scrollLeft != null) { + setScrollLeft(cm, scrollPos.scrollLeft); + } + } + + // Calculate a new scroll position needed to scroll the given + // rectangle into view. Returns an object with scrollTop and + // scrollLeft properties. When these are undefined, the + // vertical/horizontal position does not need to be adjusted. + function calculateScrollPos(cm, rect) { + var display = cm.display, + snapMargin = textHeight(cm.display); + if (rect.top < 0) { + rect.top = 0; + } + var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop; + var screen = displayHeight(cm), + result = {}; + if (rect.bottom - rect.top > screen) { + rect.bottom = rect.top + screen; + } + var docBottom = cm.doc.height + paddingVert(display); + var atTop = rect.top < snapMargin, + atBottom = rect.bottom > docBottom - snapMargin; + if (rect.top < screentop) { + result.scrollTop = atTop ? 0 : rect.top; + } else if (rect.bottom > screentop + screen) { + var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen); + if (newTop != screentop) { + result.scrollTop = newTop; + } + } + var gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth; + var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace; + var screenw = displayWidth(cm) - display.gutters.offsetWidth; + var tooWide = rect.right - rect.left > screenw; + if (tooWide) { + rect.right = rect.left + screenw; + } + if (rect.left < 10) { + result.scrollLeft = 0; + } else if (rect.left < screenleft) { + result.scrollLeft = Math.max(0, rect.left + gutterSpace - (tooWide ? 0 : 10)); + } else if (rect.right > screenw + screenleft - 3) { + result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; + } + return result; + } + + // Store a relative adjustment to the scroll position in the current + // operation (to be applied when the operation finishes). + function addToScrollTop(cm, top) { + if (top == null) { + return; + } + resolveScrollToPos(cm); + cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top; + } + + // Make sure that at the end of the operation the current cursor is + // shown. + function ensureCursorVisible(cm) { + resolveScrollToPos(cm); + var cur = cm.getCursor(); + cm.curOp.scrollToPos = { + from: cur, + to: cur, + margin: cm.options.cursorScrollMargin + }; + } + function scrollToCoords(cm, x, y) { + if (x != null || y != null) { + resolveScrollToPos(cm); + } + if (x != null) { + cm.curOp.scrollLeft = x; + } + if (y != null) { + cm.curOp.scrollTop = y; + } + } + function scrollToRange(cm, range) { + resolveScrollToPos(cm); + cm.curOp.scrollToPos = range; + } + + // When an operation has its scrollToPos property set, and another + // scroll action is applied before the end of the operation, this + // 'simulates' scrolling that position into view in a cheap way, so + // that the effect of intermediate scroll commands is not ignored. + function resolveScrollToPos(cm) { + var range = cm.curOp.scrollToPos; + if (range) { + cm.curOp.scrollToPos = null; + var from = estimateCoords(cm, range.from), + to = estimateCoords(cm, range.to); + scrollToCoordsRange(cm, from, to, range.margin); + } + } + function scrollToCoordsRange(cm, from, to, margin) { + var sPos = calculateScrollPos(cm, { + left: Math.min(from.left, to.left), + top: Math.min(from.top, to.top) - margin, + right: Math.max(from.right, to.right), + bottom: Math.max(from.bottom, to.bottom) + margin + }); + scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop); + } + + // Sync the scrollable area and scrollbars, ensure the viewport + // covers the visible area. + function updateScrollTop(cm, val) { + if (Math.abs(cm.doc.scrollTop - val) < 2) { + return; + } + if (!gecko) { + updateDisplaySimple(cm, { + top: val + }); + } + setScrollTop(cm, val, true); + if (gecko) { + updateDisplaySimple(cm); + } + startWorker(cm, 100); + } + function setScrollTop(cm, val, forceScroll) { + val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val)); + if (cm.display.scroller.scrollTop == val && !forceScroll) { + return; + } + cm.doc.scrollTop = val; + cm.display.scrollbars.setScrollTop(val); + if (cm.display.scroller.scrollTop != val) { + cm.display.scroller.scrollTop = val; + } + } + + // Sync scroller and scrollbar, ensure the gutter elements are + // aligned. + function setScrollLeft(cm, val, isScroller, forceScroll) { + val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth)); + if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { + return; + } + cm.doc.scrollLeft = val; + alignHorizontally(cm); + if (cm.display.scroller.scrollLeft != val) { + cm.display.scroller.scrollLeft = val; + } + cm.display.scrollbars.setScrollLeft(val); + } + + // SCROLLBARS + + // Prepare DOM reads needed to update the scrollbars. Done in one + // shot to minimize update/measure roundtrips. + function measureForScrollbars(cm) { + var d = cm.display, + gutterW = d.gutters.offsetWidth; + var docH = Math.round(cm.doc.height + paddingVert(cm.display)); + return { + clientHeight: d.scroller.clientHeight, + viewHeight: d.wrapper.clientHeight, + scrollWidth: d.scroller.scrollWidth, + clientWidth: d.scroller.clientWidth, + viewWidth: d.wrapper.clientWidth, + barLeft: cm.options.fixedGutter ? gutterW : 0, + docHeight: docH, + scrollHeight: docH + scrollGap(cm) + d.barHeight, + nativeBarWidth: d.nativeBarWidth, + gutterWidth: gutterW + }; + } + var NativeScrollbars = function (place, scroll, cm) { + this.cm = cm; + var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar"); + var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar"); + vert.tabIndex = horiz.tabIndex = -1; + place(vert); + place(horiz); + on(vert, "scroll", function () { + if (vert.clientHeight) { + scroll(vert.scrollTop, "vertical"); + } + }); + on(horiz, "scroll", function () { + if (horiz.clientWidth) { + scroll(horiz.scrollLeft, "horizontal"); + } + }); + this.checkedZeroWidth = false; + // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8). + if (ie && ie_version < 8) { + this.horiz.style.minHeight = this.vert.style.minWidth = "18px"; + } + }; + NativeScrollbars.prototype.update = function (measure) { + var needsH = measure.scrollWidth > measure.clientWidth + 1; + var needsV = measure.scrollHeight > measure.clientHeight + 1; + var sWidth = measure.nativeBarWidth; + if (needsV) { + this.vert.style.display = "block"; + this.vert.style.bottom = needsH ? sWidth + "px" : "0"; + var totalHeight = measure.viewHeight - (needsH ? sWidth : 0); + // A bug in IE8 can cause this value to be negative, so guard it. + this.vert.firstChild.style.height = Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px"; + } else { + this.vert.scrollTop = 0; + this.vert.style.display = ""; + this.vert.firstChild.style.height = "0"; + } + if (needsH) { + this.horiz.style.display = "block"; + this.horiz.style.right = needsV ? sWidth + "px" : "0"; + this.horiz.style.left = measure.barLeft + "px"; + var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0); + this.horiz.firstChild.style.width = Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + "px"; + } else { + this.horiz.style.display = ""; + this.horiz.firstChild.style.width = "0"; + } + if (!this.checkedZeroWidth && measure.clientHeight > 0) { + if (sWidth == 0) { + this.zeroWidthHack(); + } + this.checkedZeroWidth = true; + } + return { + right: needsV ? sWidth : 0, + bottom: needsH ? sWidth : 0 + }; + }; + NativeScrollbars.prototype.setScrollLeft = function (pos) { + if (this.horiz.scrollLeft != pos) { + this.horiz.scrollLeft = pos; + } + if (this.disableHoriz) { + this.enableZeroWidthBar(this.horiz, this.disableHoriz, "horiz"); + } + }; + NativeScrollbars.prototype.setScrollTop = function (pos) { + if (this.vert.scrollTop != pos) { + this.vert.scrollTop = pos; + } + if (this.disableVert) { + this.enableZeroWidthBar(this.vert, this.disableVert, "vert"); + } + }; + NativeScrollbars.prototype.zeroWidthHack = function () { + var w = mac && !mac_geMountainLion ? "12px" : "18px"; + this.horiz.style.height = this.vert.style.width = w; + this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none"; + this.disableHoriz = new Delayed(); + this.disableVert = new Delayed(); + }; + NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) { + bar.style.pointerEvents = "auto"; + function maybeDisable() { + // To find out whether the scrollbar is still visible, we + // check whether the element under the pixel in the bottom + // right corner of the scrollbar box is the scrollbar box + // itself (when the bar is still visible) or its filler child + // (when the bar is hidden). If it is still visible, we keep + // it enabled, if it's hidden, we disable pointer events. + var box = bar.getBoundingClientRect(); + var elt = type == "vert" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2) : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1); + if (elt != bar) { + bar.style.pointerEvents = "none"; + } else { + delay.set(1000, maybeDisable); + } + } + delay.set(1000, maybeDisable); + }; + NativeScrollbars.prototype.clear = function () { + var parent = this.horiz.parentNode; + parent.removeChild(this.horiz); + parent.removeChild(this.vert); + }; + var NullScrollbars = function () {}; + NullScrollbars.prototype.update = function () { + return { + bottom: 0, + right: 0 + }; + }; + NullScrollbars.prototype.setScrollLeft = function () {}; + NullScrollbars.prototype.setScrollTop = function () {}; + NullScrollbars.prototype.clear = function () {}; + function updateScrollbars(cm, measure) { + if (!measure) { + measure = measureForScrollbars(cm); + } + var startWidth = cm.display.barWidth, + startHeight = cm.display.barHeight; + updateScrollbarsInner(cm, measure); + for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) { + if (startWidth != cm.display.barWidth && cm.options.lineWrapping) { + updateHeightsInViewport(cm); + } + updateScrollbarsInner(cm, measureForScrollbars(cm)); + startWidth = cm.display.barWidth; + startHeight = cm.display.barHeight; + } + } + + // Re-synchronize the fake scrollbars with the actual size of the + // content. + function updateScrollbarsInner(cm, measure) { + var d = cm.display; + var sizes = d.scrollbars.update(measure); + d.sizer.style.paddingRight = (d.barWidth = sizes.right) + "px"; + d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + "px"; + d.heightForcer.style.borderBottom = sizes.bottom + "px solid transparent"; + if (sizes.right && sizes.bottom) { + d.scrollbarFiller.style.display = "block"; + d.scrollbarFiller.style.height = sizes.bottom + "px"; + d.scrollbarFiller.style.width = sizes.right + "px"; + } else { + d.scrollbarFiller.style.display = ""; + } + if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) { + d.gutterFiller.style.display = "block"; + d.gutterFiller.style.height = sizes.bottom + "px"; + d.gutterFiller.style.width = measure.gutterWidth + "px"; + } else { + d.gutterFiller.style.display = ""; + } + } + var scrollbarModel = { + "native": NativeScrollbars, + "null": NullScrollbars + }; + function initScrollbars(cm) { + if (cm.display.scrollbars) { + cm.display.scrollbars.clear(); + if (cm.display.scrollbars.addClass) { + rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); + } + } + cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) { + cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller); + // Prevent clicks in the scrollbars from killing focus + on(node, "mousedown", function () { + if (cm.state.focused) { + setTimeout(function () { + return cm.display.input.focus(); + }, 0); + } + }); + node.setAttribute("cm-not-content", "true"); + }, function (pos, axis) { + if (axis == "horizontal") { + setScrollLeft(cm, pos); + } else { + updateScrollTop(cm, pos); + } + }, cm); + if (cm.display.scrollbars.addClass) { + addClass(cm.display.wrapper, cm.display.scrollbars.addClass); + } + } + + // Operations are used to wrap a series of changes to the editor + // state in such a way that each change won't have to update the + // cursor and display (which would be awkward, slow, and + // error-prone). Instead, display updates are batched and then all + // combined and executed at once. + + var nextOpId = 0; + // Start a new operation. + function startOperation(cm) { + cm.curOp = { + cm: cm, + viewChanged: false, + // Flag that indicates that lines might need to be redrawn + startHeight: cm.doc.height, + // Used to detect need to update scrollbar + forceUpdate: false, + // Used to force a redraw + updateInput: 0, + // Whether to reset the input textarea + typing: false, + // Whether this reset should be careful to leave existing text (for compositing) + changeObjs: null, + // Accumulated changes, for firing change events + cursorActivityHandlers: null, + // Set of handlers to fire cursorActivity on + cursorActivityCalled: 0, + // Tracks which cursorActivity handlers have been called already + selectionChanged: false, + // Whether the selection needs to be redrawn + updateMaxLine: false, + // Set when the widest line needs to be determined anew + scrollLeft: null, + scrollTop: null, + // Intermediate scroll position, not pushed to DOM yet + scrollToPos: null, + // Used to scroll to a specific position + focus: false, + id: ++nextOpId, + // Unique ID + markArrays: null // Used by addMarkedSpan + }; + pushOperation(cm.curOp); + } + + // Finish an operation, updating the display and signalling delayed events + function endOperation(cm) { + var op = cm.curOp; + if (op) { + finishOperation(op, function (group) { + for (var i = 0; i < group.ops.length; i++) { + group.ops[i].cm.curOp = null; + } + endOperations(group); + }); + } + } + + // The DOM updates done when an operation finishes are batched so + // that the minimum number of relayouts are required. + function endOperations(group) { + var ops = group.ops; + for (var i = 0; i < ops.length; i++) + // Read DOM + { + endOperation_R1(ops[i]); + } + for (var i$1 = 0; i$1 < ops.length; i$1++) + // Write DOM (maybe) + { + endOperation_W1(ops[i$1]); + } + for (var i$2 = 0; i$2 < ops.length; i$2++) + // Read DOM + { + endOperation_R2(ops[i$2]); + } + for (var i$3 = 0; i$3 < ops.length; i$3++) + // Write DOM (maybe) + { + endOperation_W2(ops[i$3]); + } + for (var i$4 = 0; i$4 < ops.length; i$4++) + // Read DOM + { + endOperation_finish(ops[i$4]); + } + } + function endOperation_R1(op) { + var cm = op.cm, + display = cm.display; + maybeClipScrollbars(cm); + if (op.updateMaxLine) { + findMaxLine(cm); + } + op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null || op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom || op.scrollToPos.to.line >= display.viewTo) || display.maxLineChanged && cm.options.lineWrapping; + op.update = op.mustUpdate && new DisplayUpdate(cm, op.mustUpdate && { + top: op.scrollTop, + ensure: op.scrollToPos + }, op.forceUpdate); + } + function endOperation_W1(op) { + op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update); + } + function endOperation_R2(op) { + var cm = op.cm, + display = cm.display; + if (op.updatedDisplay) { + updateHeightsInViewport(cm); + } + op.barMeasure = measureForScrollbars(cm); + + // If the max line changed since it was last measured, measure it, + // and ensure the document's width matches it. + // updateDisplay_W2 will use these properties to do the actual resizing + if (display.maxLineChanged && !cm.options.lineWrapping) { + op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3; + cm.display.sizerWidth = op.adjustWidthTo; + op.barMeasure.scrollWidth = Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth); + op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm)); + } + if (op.updatedDisplay || op.selectionChanged) { + op.preparedSelection = display.input.prepareSelection(); + } + } + function endOperation_W2(op) { + var cm = op.cm; + if (op.adjustWidthTo != null) { + cm.display.sizer.style.minWidth = op.adjustWidthTo + "px"; + if (op.maxScrollLeft < cm.doc.scrollLeft) { + setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); + } + cm.display.maxLineChanged = false; + } + var takeFocus = op.focus && op.focus == activeElt(); + if (op.preparedSelection) { + cm.display.input.showSelection(op.preparedSelection, takeFocus); + } + if (op.updatedDisplay || op.startHeight != cm.doc.height) { + updateScrollbars(cm, op.barMeasure); + } + if (op.updatedDisplay) { + setDocumentHeight(cm, op.barMeasure); + } + if (op.selectionChanged) { + restartBlink(cm); + } + if (cm.state.focused && op.updateInput) { + cm.display.input.reset(op.typing); + } + if (takeFocus) { + ensureFocus(op.cm); + } + } + function endOperation_finish(op) { + var cm = op.cm, + display = cm.display, + doc = cm.doc; + if (op.updatedDisplay) { + postUpdateDisplay(cm, op.update); + } + + // Abort mouse wheel delta measurement, when scrolling explicitly + if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos)) { + display.wheelStartX = display.wheelStartY = null; + } + + // Propagate the scroll position to the actual DOM scroller + if (op.scrollTop != null) { + setScrollTop(cm, op.scrollTop, op.forceScroll); + } + if (op.scrollLeft != null) { + setScrollLeft(cm, op.scrollLeft, true, true); + } + // If we need to scroll a specific position into view, do so. + if (op.scrollToPos) { + var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from), clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin); + maybeScrollWindow(cm, rect); + } + + // Fire events for markers that are hidden/unidden by editing or + // undoing + var hidden = op.maybeHiddenMarkers, + unhidden = op.maybeUnhiddenMarkers; + if (hidden) { + for (var i = 0; i < hidden.length; ++i) { + if (!hidden[i].lines.length) { + signal(hidden[i], "hide"); + } + } + } + if (unhidden) { + for (var i$1 = 0; i$1 < unhidden.length; ++i$1) { + if (unhidden[i$1].lines.length) { + signal(unhidden[i$1], "unhide"); + } + } + } + if (display.wrapper.offsetHeight) { + doc.scrollTop = cm.display.scroller.scrollTop; + } + + // Fire change events, and delayed event handlers + if (op.changeObjs) { + signal(cm, "changes", cm, op.changeObjs); + } + if (op.update) { + op.update.finish(); + } + } + + // Run the given function in an operation + function runInOp(cm, f) { + if (cm.curOp) { + return f(); + } + startOperation(cm); + try { + return f(); + } finally { + endOperation(cm); + } + } + // Wraps a function in an operation. Returns the wrapped function. + function operation(cm, f) { + return function () { + if (cm.curOp) { + return f.apply(cm, arguments); + } + startOperation(cm); + try { + return f.apply(cm, arguments); + } finally { + endOperation(cm); + } + }; + } + // Used to add methods to editor and doc instances, wrapping them in + // operations. + function methodOp(f) { + return function () { + if (this.curOp) { + return f.apply(this, arguments); + } + startOperation(this); + try { + return f.apply(this, arguments); + } finally { + endOperation(this); + } + }; + } + function docMethodOp(f) { + return function () { + var cm = this.cm; + if (!cm || cm.curOp) { + return f.apply(this, arguments); + } + startOperation(cm); + try { + return f.apply(this, arguments); + } finally { + endOperation(cm); + } + }; + } + + // HIGHLIGHT WORKER + + function startWorker(cm, time) { + if (cm.doc.highlightFrontier < cm.display.viewTo) { + cm.state.highlight.set(time, bind(highlightWorker, cm)); + } + } + function highlightWorker(cm) { + var doc = cm.doc; + if (doc.highlightFrontier >= cm.display.viewTo) { + return; + } + var end = +new Date() + cm.options.workTime; + var context = getContextBefore(cm, doc.highlightFrontier); + var changedLines = []; + doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) { + if (context.line >= cm.display.viewFrom) { + // Visible + var oldStyles = line.styles; + var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null; + var highlighted = highlightLine(cm, line, context, true); + if (resetState) { + context.state = resetState; + } + line.styles = highlighted.styles; + var oldCls = line.styleClasses, + newCls = highlighted.classes; + if (newCls) { + line.styleClasses = newCls; + } else if (oldCls) { + line.styleClasses = null; + } + var ischange = !oldStyles || oldStyles.length != line.styles.length || oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass); + for (var i = 0; !ischange && i < oldStyles.length; ++i) { + ischange = oldStyles[i] != line.styles[i]; + } + if (ischange) { + changedLines.push(context.line); + } + line.stateAfter = context.save(); + context.nextLine(); + } else { + if (line.text.length <= cm.options.maxHighlightLength) { + processLine(cm, line.text, context); + } + line.stateAfter = context.line % 5 == 0 ? context.save() : null; + context.nextLine(); + } + if (+new Date() > end) { + startWorker(cm, cm.options.workDelay); + return true; + } + }); + doc.highlightFrontier = context.line; + doc.modeFrontier = Math.max(doc.modeFrontier, context.line); + if (changedLines.length) { + runInOp(cm, function () { + for (var i = 0; i < changedLines.length; i++) { + regLineChange(cm, changedLines[i], "text"); + } + }); + } + } + + // DISPLAY DRAWING + + var DisplayUpdate = function (cm, viewport, force) { + var display = cm.display; + this.viewport = viewport; + // Store some values that we'll need later (but don't want to force a relayout for) + this.visible = visibleLines(display, cm.doc, viewport); + this.editorIsHidden = !display.wrapper.offsetWidth; + this.wrapperHeight = display.wrapper.clientHeight; + this.wrapperWidth = display.wrapper.clientWidth; + this.oldDisplayWidth = displayWidth(cm); + this.force = force; + this.dims = getDimensions(cm); + this.events = []; + }; + DisplayUpdate.prototype.signal = function (emitter, type) { + if (hasHandler(emitter, type)) { + this.events.push(arguments); + } + }; + DisplayUpdate.prototype.finish = function () { + for (var i = 0; i < this.events.length; i++) { + signal.apply(null, this.events[i]); + } + }; + function maybeClipScrollbars(cm) { + var display = cm.display; + if (!display.scrollbarsClipped && display.scroller.offsetWidth) { + display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth; + display.heightForcer.style.height = scrollGap(cm) + "px"; + display.sizer.style.marginBottom = -display.nativeBarWidth + "px"; + display.sizer.style.borderRightWidth = scrollGap(cm) + "px"; + display.scrollbarsClipped = true; + } + } + function selectionSnapshot(cm) { + if (cm.hasFocus()) { + return null; + } + var active = activeElt(); + if (!active || !contains(cm.display.lineDiv, active)) { + return null; + } + var result = { + activeElt: active + }; + if (window.getSelection) { + var sel = window.getSelection(); + if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) { + result.anchorNode = sel.anchorNode; + result.anchorOffset = sel.anchorOffset; + result.focusNode = sel.focusNode; + result.focusOffset = sel.focusOffset; + } + } + return result; + } + function restoreSelection(snapshot) { + if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { + return; + } + snapshot.activeElt.focus(); + if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) && snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) { + var sel = window.getSelection(), + range = document.createRange(); + range.setEnd(snapshot.anchorNode, snapshot.anchorOffset); + range.collapse(false); + sel.removeAllRanges(); + sel.addRange(range); + sel.extend(snapshot.focusNode, snapshot.focusOffset); + } + } + + // Does the actual updating of the line display. Bails out + // (returning false) when there is nothing to be done and forced is + // false. + function updateDisplayIfNeeded(cm, update) { + var display = cm.display, + doc = cm.doc; + if (update.editorIsHidden) { + resetView(cm); + return false; + } + + // Bail out if the visible area is already rendered and nothing changed. + if (!update.force && update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo && (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) && display.renderedView == display.view && countDirtyView(cm) == 0) { + return false; + } + if (maybeUpdateLineNumberWidth(cm)) { + resetView(cm); + update.dims = getDimensions(cm); + } + + // Compute a suitable new viewport (from & to) + var end = doc.first + doc.size; + var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first); + var to = Math.min(end, update.visible.to + cm.options.viewportMargin); + if (display.viewFrom < from && from - display.viewFrom < 20) { + from = Math.max(doc.first, display.viewFrom); + } + if (display.viewTo > to && display.viewTo - to < 20) { + to = Math.min(end, display.viewTo); + } + if (sawCollapsedSpans) { + from = visualLineNo(cm.doc, from); + to = visualLineEndNo(cm.doc, to); + } + var different = from != display.viewFrom || to != display.viewTo || display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth; + adjustView(cm, from, to); + display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom)); + // Position the mover div to align with the current scroll position + cm.display.mover.style.top = display.viewOffset + "px"; + var toUpdate = countDirtyView(cm); + if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view && (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo)) { + return false; + } + + // For big changes, we hide the enclosing element during the + // update, since that speeds up the operations on most browsers. + var selSnapshot = selectionSnapshot(cm); + if (toUpdate > 4) { + display.lineDiv.style.display = "none"; + } + patchDisplay(cm, display.updateLineNumbers, update.dims); + if (toUpdate > 4) { + display.lineDiv.style.display = ""; + } + display.renderedView = display.view; + // There might have been a widget with a focused element that got + // hidden or updated, if so re-focus it. + restoreSelection(selSnapshot); + + // Prevent selection and cursors from interfering with the scroll + // width and height. + removeChildren(display.cursorDiv); + removeChildren(display.selectionDiv); + display.gutters.style.height = display.sizer.style.minHeight = 0; + if (different) { + display.lastWrapHeight = update.wrapperHeight; + display.lastWrapWidth = update.wrapperWidth; + startWorker(cm, 400); + } + display.updateLineNumbers = null; + return true; + } + function postUpdateDisplay(cm, update) { + var viewport = update.viewport; + for (var first = true;; first = false) { + if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) { + // Clip forced viewport to actual scrollable area. + if (viewport && viewport.top != null) { + viewport = { + top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top) + }; + } + // Updated line heights might result in the drawn area not + // actually covering the viewport. Keep looping until it does. + update.visible = visibleLines(cm.display, cm.doc, viewport); + if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo) { + break; + } + } else if (first) { + update.visible = visibleLines(cm.display, cm.doc, viewport); + } + if (!updateDisplayIfNeeded(cm, update)) { + break; + } + updateHeightsInViewport(cm); + var barMeasure = measureForScrollbars(cm); + updateSelection(cm); + updateScrollbars(cm, barMeasure); + setDocumentHeight(cm, barMeasure); + update.force = false; + } + update.signal(cm, "update", cm); + if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) { + update.signal(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo); + cm.display.reportedViewFrom = cm.display.viewFrom; + cm.display.reportedViewTo = cm.display.viewTo; + } + } + function updateDisplaySimple(cm, viewport) { + var update = new DisplayUpdate(cm, viewport); + if (updateDisplayIfNeeded(cm, update)) { + updateHeightsInViewport(cm); + postUpdateDisplay(cm, update); + var barMeasure = measureForScrollbars(cm); + updateSelection(cm); + updateScrollbars(cm, barMeasure); + setDocumentHeight(cm, barMeasure); + update.finish(); + } + } + + // Sync the actual display DOM structure with display.view, removing + // nodes for lines that are no longer in view, and creating the ones + // that are not there yet, and updating the ones that are out of + // date. + function patchDisplay(cm, updateNumbersFrom, dims) { + var display = cm.display, + lineNumbers = cm.options.lineNumbers; + var container = display.lineDiv, + cur = container.firstChild; + function rm(node) { + var next = node.nextSibling; + // Works around a throw-scroll bug in OS X Webkit + if (webkit && mac && cm.display.currentWheelTarget == node) { + node.style.display = "none"; + } else { + node.parentNode.removeChild(node); + } + return next; + } + var view = display.view, + lineN = display.viewFrom; + // Loop over the elements in the view, syncing cur (the DOM nodes + // in display.lineDiv) with the view as we go. + for (var i = 0; i < view.length; i++) { + var lineView = view[i]; + if (lineView.hidden) ;else if (!lineView.node || lineView.node.parentNode != container) { + // Not drawn yet + var node = buildLineElement(cm, lineView, lineN, dims); + container.insertBefore(node, cur); + } else { + // Already drawn + while (cur != lineView.node) { + cur = rm(cur); + } + var updateNumber = lineNumbers && updateNumbersFrom != null && updateNumbersFrom <= lineN && lineView.lineNumber; + if (lineView.changes) { + if (indexOf(lineView.changes, "gutter") > -1) { + updateNumber = false; + } + updateLineForChanges(cm, lineView, lineN, dims); + } + if (updateNumber) { + removeChildren(lineView.lineNumber); + lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN))); + } + cur = lineView.node.nextSibling; + } + lineN += lineView.size; + } + while (cur) { + cur = rm(cur); + } + } + function updateGutterSpace(display) { + var width = display.gutters.offsetWidth; + display.sizer.style.marginLeft = width + "px"; + // Send an event to consumers responding to changes in gutter width. + signalLater(display, "gutterChanged", display); + } + function setDocumentHeight(cm, measure) { + cm.display.sizer.style.minHeight = measure.docHeight + "px"; + cm.display.heightForcer.style.top = measure.docHeight + "px"; + cm.display.gutters.style.height = measure.docHeight + cm.display.barHeight + scrollGap(cm) + "px"; + } + + // Re-align line numbers and gutter marks to compensate for + // horizontal scrolling. + function alignHorizontally(cm) { + var display = cm.display, + view = display.view; + if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { + return; + } + var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft; + var gutterW = display.gutters.offsetWidth, + left = comp + "px"; + for (var i = 0; i < view.length; i++) { + if (!view[i].hidden) { + if (cm.options.fixedGutter) { + if (view[i].gutter) { + view[i].gutter.style.left = left; + } + if (view[i].gutterBackground) { + view[i].gutterBackground.style.left = left; + } + } + var align = view[i].alignable; + if (align) { + for (var j = 0; j < align.length; j++) { + align[j].style.left = left; + } + } + } + } + if (cm.options.fixedGutter) { + display.gutters.style.left = comp + gutterW + "px"; + } + } + + // Used to ensure that the line number gutter is still the right + // size for the current document size. Returns true when an update + // is needed. + function maybeUpdateLineNumberWidth(cm) { + if (!cm.options.lineNumbers) { + return false; + } + var doc = cm.doc, + last = lineNumberFor(cm.options, doc.first + doc.size - 1), + display = cm.display; + if (last.length != display.lineNumChars) { + var test = display.measure.appendChild(elt("div", [elt("div", last)], "CodeMirror-linenumber CodeMirror-gutter-elt")); + var innerW = test.firstChild.offsetWidth, + padding = test.offsetWidth - innerW; + display.lineGutter.style.width = ""; + display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1; + display.lineNumWidth = display.lineNumInnerWidth + padding; + display.lineNumChars = display.lineNumInnerWidth ? last.length : -1; + display.lineGutter.style.width = display.lineNumWidth + "px"; + updateGutterSpace(cm.display); + return true; + } + return false; + } + function getGutters(gutters, lineNumbers) { + var result = [], + sawLineNumbers = false; + for (var i = 0; i < gutters.length; i++) { + var name = gutters[i], + style = null; + if (typeof name != "string") { + style = name.style; + name = name.className; + } + if (name == "CodeMirror-linenumbers") { + if (!lineNumbers) { + continue; + } else { + sawLineNumbers = true; + } + } + result.push({ + className: name, + style: style + }); + } + if (lineNumbers && !sawLineNumbers) { + result.push({ + className: "CodeMirror-linenumbers", + style: null + }); + } + return result; + } + + // Rebuild the gutter elements, ensure the margin to the left of the + // code matches their width. + function renderGutters(display) { + var gutters = display.gutters, + specs = display.gutterSpecs; + removeChildren(gutters); + display.lineGutter = null; + for (var i = 0; i < specs.length; ++i) { + var ref = specs[i]; + var className = ref.className; + var style = ref.style; + var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + className)); + if (style) { + gElt.style.cssText = style; + } + if (className == "CodeMirror-linenumbers") { + display.lineGutter = gElt; + gElt.style.width = (display.lineNumWidth || 1) + "px"; + } + } + gutters.style.display = specs.length ? "" : "none"; + updateGutterSpace(display); + } + function updateGutters(cm) { + renderGutters(cm.display); + regChange(cm); + alignHorizontally(cm); + } + + // The display handles the DOM integration, both for input reading + // and content drawing. It holds references to DOM nodes and + // display-related state. + + function Display(place, doc, input, options) { + var d = this; + this.input = input; + + // Covers bottom-right square when both scrollbars are present. + d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler"); + d.scrollbarFiller.setAttribute("cm-not-content", "true"); + // Covers bottom of gutter when coverGutterNextToScrollbar is on + // and h scrollbar is present. + d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler"); + d.gutterFiller.setAttribute("cm-not-content", "true"); + // Will contain the actual code, positioned to cover the viewport. + d.lineDiv = eltP("div", null, "CodeMirror-code"); + // Elements are added to these to represent selection and cursors. + d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1"); + d.cursorDiv = elt("div", null, "CodeMirror-cursors"); + // A visibility: hidden element used to find the size of things. + d.measure = elt("div", null, "CodeMirror-measure"); + // When lines outside of the viewport are measured, they are drawn in this. + d.lineMeasure = elt("div", null, "CodeMirror-measure"); + // Wraps everything that needs to exist inside the vertically-padded coordinate system + d.lineSpace = eltP("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv], null, "position: relative; outline: none"); + var lines = eltP("div", [d.lineSpace], "CodeMirror-lines"); + // Moved around its parent to cover visible view. + d.mover = elt("div", [lines], null, "position: relative"); + // Set to the height of the document, allowing scrolling. + d.sizer = elt("div", [d.mover], "CodeMirror-sizer"); + d.sizerWidth = null; + // Behavior of elts with overflow: auto and padding is + // inconsistent across browsers. This is used to ensure the + // scrollable area is big enough. + d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerGap + "px; width: 1px;"); + // Will contain the gutters, if any. + d.gutters = elt("div", null, "CodeMirror-gutters"); + d.lineGutter = null; + // Actual scrollable element. + d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll"); + d.scroller.setAttribute("tabIndex", "-1"); + // The element in which the editor lives. + d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror"); + + // This attribute is respected by automatic translation systems such as Google Translate, + // and may also be respected by tools used by human translators. + d.wrapper.setAttribute('translate', 'no'); + + // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported) + if (ie && ie_version < 8) { + d.gutters.style.zIndex = -1; + d.scroller.style.paddingRight = 0; + } + if (!webkit && !(gecko && mobile)) { + d.scroller.draggable = true; + } + if (place) { + if (place.appendChild) { + place.appendChild(d.wrapper); + } else { + place(d.wrapper); + } + } + + // Current rendered range (may be bigger than the view window). + d.viewFrom = d.viewTo = doc.first; + d.reportedViewFrom = d.reportedViewTo = doc.first; + // Information about the rendered lines. + d.view = []; + d.renderedView = null; + // Holds info about a single rendered line when it was rendered + // for measurement, while not in view. + d.externalMeasured = null; + // Empty space (in pixels) above the view + d.viewOffset = 0; + d.lastWrapHeight = d.lastWrapWidth = 0; + d.updateLineNumbers = null; + d.nativeBarWidth = d.barHeight = d.barWidth = 0; + d.scrollbarsClipped = false; + + // Used to only resize the line number gutter when necessary (when + // the amount of lines crosses a boundary that makes its width change) + d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null; + // Set to true when a non-horizontal-scrolling line widget is + // added. As an optimization, line widget aligning is skipped when + // this is false. + d.alignWidgets = false; + d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; + + // Tracks the maximum line length so that the horizontal scrollbar + // can be kept static when scrolling. + d.maxLine = null; + d.maxLineLength = 0; + d.maxLineChanged = false; + + // Used for measuring wheel scrolling granularity + d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null; + + // True when shift is held down. + d.shift = false; + + // Used to track whether anything happened since the context menu + // was opened. + d.selForContextMenu = null; + d.activeTouch = null; + d.gutterSpecs = getGutters(options.gutters, options.lineNumbers); + renderGutters(d); + input.init(d); + } + + // Since the delta values reported on mouse wheel events are + // unstandardized between browsers and even browser versions, and + // generally horribly unpredictable, this code starts by measuring + // the scroll effect that the first few mouse wheel events have, + // and, from that, detects the way it can convert deltas to pixel + // offsets afterwards. + // + // The reason we want to know the amount a wheel event will scroll + // is that it gives us a chance to update the display before the + // actual scrolling happens, reducing flickering. + + var wheelSamples = 0, + wheelPixelsPerUnit = null; + // Fill in a browser-detected starting value on browsers where we + // know one. These don't have to be accurate -- the result of them + // being wrong would just be a slight flicker on the first wheel + // scroll (if it is large enough). + if (ie) { + wheelPixelsPerUnit = -.53; + } else if (gecko) { + wheelPixelsPerUnit = 15; + } else if (chrome) { + wheelPixelsPerUnit = -.7; + } else if (safari) { + wheelPixelsPerUnit = -1 / 3; + } + function wheelEventDelta(e) { + var dx = e.wheelDeltaX, + dy = e.wheelDeltaY; + if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { + dx = e.detail; + } + if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { + dy = e.detail; + } else if (dy == null) { + dy = e.wheelDelta; + } + return { + x: dx, + y: dy + }; + } + function wheelEventPixels(e) { + var delta = wheelEventDelta(e); + delta.x *= wheelPixelsPerUnit; + delta.y *= wheelPixelsPerUnit; + return delta; + } + function onScrollWheel(cm, e) { + var delta = wheelEventDelta(e), + dx = delta.x, + dy = delta.y; + var pixelsPerUnit = wheelPixelsPerUnit; + if (e.deltaMode === 0) { + dx = e.deltaX; + dy = e.deltaY; + pixelsPerUnit = 1; + } + var display = cm.display, + scroll = display.scroller; + // Quit if there's nothing to scroll here + var canScrollX = scroll.scrollWidth > scroll.clientWidth; + var canScrollY = scroll.scrollHeight > scroll.clientHeight; + if (!(dx && canScrollX || dy && canScrollY)) { + return; + } + + // Webkit browsers on OS X abort momentum scrolls when the target + // of the scroll event is removed from the scrollable element. + // This hack (see related code in patchDisplay) makes sure the + // element is kept around. + if (dy && mac && webkit) { + outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) { + for (var i = 0; i < view.length; i++) { + if (view[i].node == cur) { + cm.display.currentWheelTarget = cur; + break outer; + } + } + } + } + + // On some browsers, horizontal scrolling will cause redraws to + // happen before the gutter has been realigned, causing it to + // wriggle around in a most unseemly way. When we have an + // estimated pixels/delta value, we just handle horizontal + // scrolling entirely here. It'll be slightly off from native, but + // better than glitching out. + if (dx && !gecko && !presto && pixelsPerUnit != null) { + if (dy && canScrollY) { + updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * pixelsPerUnit)); + } + setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * pixelsPerUnit)); + // Only prevent default scrolling if vertical scrolling is + // actually possible. Otherwise, it causes vertical scroll + // jitter on OSX trackpads when deltaX is small and deltaY + // is large (issue #3579) + if (!dy || dy && canScrollY) { + e_preventDefault(e); + } + display.wheelStartX = null; // Abort measurement, if in progress + return; + } + + // 'Project' the visible viewport to cover the area that is being + // scrolled into view (if we know enough to estimate it). + if (dy && pixelsPerUnit != null) { + var pixels = dy * pixelsPerUnit; + var top = cm.doc.scrollTop, + bot = top + display.wrapper.clientHeight; + if (pixels < 0) { + top = Math.max(0, top + pixels - 50); + } else { + bot = Math.min(cm.doc.height, bot + pixels + 50); + } + updateDisplaySimple(cm, { + top: top, + bottom: bot + }); + } + if (wheelSamples < 20 && e.deltaMode !== 0) { + if (display.wheelStartX == null) { + display.wheelStartX = scroll.scrollLeft; + display.wheelStartY = scroll.scrollTop; + display.wheelDX = dx; + display.wheelDY = dy; + setTimeout(function () { + if (display.wheelStartX == null) { + return; + } + var movedX = scroll.scrollLeft - display.wheelStartX; + var movedY = scroll.scrollTop - display.wheelStartY; + var sample = movedY && display.wheelDY && movedY / display.wheelDY || movedX && display.wheelDX && movedX / display.wheelDX; + display.wheelStartX = display.wheelStartY = null; + if (!sample) { + return; + } + wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1); + ++wheelSamples; + }, 200); + } else { + display.wheelDX += dx; + display.wheelDY += dy; + } + } + } + + // Selection objects are immutable. A new one is created every time + // the selection changes. A selection is one or more non-overlapping + // (and non-touching) ranges, sorted, and an integer that indicates + // which one is the primary selection (the one that's scrolled into + // view, that getCursor returns, etc). + var Selection = function (ranges, primIndex) { + this.ranges = ranges; + this.primIndex = primIndex; + }; + Selection.prototype.primary = function () { + return this.ranges[this.primIndex]; + }; + Selection.prototype.equals = function (other) { + if (other == this) { + return true; + } + if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { + return false; + } + for (var i = 0; i < this.ranges.length; i++) { + var here = this.ranges[i], + there = other.ranges[i]; + if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { + return false; + } + } + return true; + }; + Selection.prototype.deepCopy = function () { + var out = []; + for (var i = 0; i < this.ranges.length; i++) { + out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); + } + return new Selection(out, this.primIndex); + }; + Selection.prototype.somethingSelected = function () { + for (var i = 0; i < this.ranges.length; i++) { + if (!this.ranges[i].empty()) { + return true; + } + } + return false; + }; + Selection.prototype.contains = function (pos, end) { + if (!end) { + end = pos; + } + for (var i = 0; i < this.ranges.length; i++) { + var range = this.ranges[i]; + if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0) { + return i; + } + } + return -1; + }; + var Range = function (anchor, head) { + this.anchor = anchor; + this.head = head; + }; + Range.prototype.from = function () { + return minPos(this.anchor, this.head); + }; + Range.prototype.to = function () { + return maxPos(this.anchor, this.head); + }; + Range.prototype.empty = function () { + return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch; + }; + + // Take an unsorted, potentially overlapping set of ranges, and + // build a selection out of it. 'Consumes' ranges array (modifying + // it). + function normalizeSelection(cm, ranges, primIndex) { + var mayTouch = cm && cm.options.selectionsMayTouch; + var prim = ranges[primIndex]; + ranges.sort(function (a, b) { + return cmp(a.from(), b.from()); + }); + primIndex = indexOf(ranges, prim); + for (var i = 1; i < ranges.length; i++) { + var cur = ranges[i], + prev = ranges[i - 1]; + var diff = cmp(prev.to(), cur.from()); + if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) { + var from = minPos(prev.from(), cur.from()), + to = maxPos(prev.to(), cur.to()); + var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head; + if (i <= primIndex) { + --primIndex; + } + ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to)); + } + } + return new Selection(ranges, primIndex); + } + function simpleSelection(anchor, head) { + return new Selection([new Range(anchor, head || anchor)], 0); + } + + // Compute the position of the end of a change (its 'to' property + // refers to the pre-change end). + function changeEnd(change) { + if (!change.text) { + return change.to; + } + return Pos(change.from.line + change.text.length - 1, lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0)); + } + + // Adjust a position to refer to the post-change position of the + // same text, or the end of the change if the change covers it. + function adjustForChange(pos, change) { + if (cmp(pos, change.from) < 0) { + return pos; + } + if (cmp(pos, change.to) <= 0) { + return changeEnd(change); + } + var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, + ch = pos.ch; + if (pos.line == change.to.line) { + ch += changeEnd(change).ch - change.to.ch; + } + return Pos(line, ch); + } + function computeSelAfterChange(doc, change) { + var out = []; + for (var i = 0; i < doc.sel.ranges.length; i++) { + var range = doc.sel.ranges[i]; + out.push(new Range(adjustForChange(range.anchor, change), adjustForChange(range.head, change))); + } + return normalizeSelection(doc.cm, out, doc.sel.primIndex); + } + function offsetPos(pos, old, nw) { + if (pos.line == old.line) { + return Pos(nw.line, pos.ch - old.ch + nw.ch); + } else { + return Pos(nw.line + (pos.line - old.line), pos.ch); + } + } + + // Used by replaceSelections to allow moving the selection to the + // start or around the replaced test. Hint may be "start" or "around". + function computeReplacedSel(doc, changes, hint) { + var out = []; + var oldPrev = Pos(doc.first, 0), + newPrev = oldPrev; + for (var i = 0; i < changes.length; i++) { + var change = changes[i]; + var from = offsetPos(change.from, oldPrev, newPrev); + var to = offsetPos(changeEnd(change), oldPrev, newPrev); + oldPrev = change.to; + newPrev = to; + if (hint == "around") { + var range = doc.sel.ranges[i], + inv = cmp(range.head, range.anchor) < 0; + out[i] = new Range(inv ? to : from, inv ? from : to); + } else { + out[i] = new Range(from, from); + } + } + return new Selection(out, doc.sel.primIndex); + } + + // Used to get the editor into a consistent state again when options change. + + function loadMode(cm) { + cm.doc.mode = getMode(cm.options, cm.doc.modeOption); + resetModeState(cm); + } + function resetModeState(cm) { + cm.doc.iter(function (line) { + if (line.stateAfter) { + line.stateAfter = null; + } + if (line.styles) { + line.styles = null; + } + }); + cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first; + startWorker(cm, 100); + cm.state.modeGen++; + if (cm.curOp) { + regChange(cm); + } + } + + // DOCUMENT DATA STRUCTURE + + // By default, updates that start and end at the beginning of a line + // are treated specially, in order to make the association of line + // widgets and marker elements with the text behave more intuitive. + function isWholeLineUpdate(doc, change) { + return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" && (!doc.cm || doc.cm.options.wholeLineUpdateBefore); + } + + // Perform a change on the document data structure. + function updateDoc(doc, change, markedSpans, estimateHeight) { + function spansFor(n) { + return markedSpans ? markedSpans[n] : null; + } + function update(line, text, spans) { + updateLine(line, text, spans, estimateHeight); + signalLater(line, "change", line, change); + } + function linesFor(start, end) { + var result = []; + for (var i = start; i < end; ++i) { + result.push(new Line(text[i], spansFor(i), estimateHeight)); + } + return result; + } + var from = change.from, + to = change.to, + text = change.text; + var firstLine = getLine(doc, from.line), + lastLine = getLine(doc, to.line); + var lastText = lst(text), + lastSpans = spansFor(text.length - 1), + nlines = to.line - from.line; + + // Adjust the line structure + if (change.full) { + doc.insert(0, linesFor(0, text.length)); + doc.remove(text.length, doc.size - text.length); + } else if (isWholeLineUpdate(doc, change)) { + // This is a whole-line replace. Treated specially to make + // sure line objects move the way they are supposed to. + var added = linesFor(0, text.length - 1); + update(lastLine, lastLine.text, lastSpans); + if (nlines) { + doc.remove(from.line, nlines); + } + if (added.length) { + doc.insert(from.line, added); + } + } else if (firstLine == lastLine) { + if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans); + } else { + var added$1 = linesFor(1, text.length - 1); + added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight)); + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + doc.insert(from.line + 1, added$1); + } + } else if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0)); + doc.remove(from.line + 1, nlines); + } else { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans); + var added$2 = linesFor(1, text.length - 1); + if (nlines > 1) { + doc.remove(from.line + 1, nlines - 1); + } + doc.insert(from.line + 1, added$2); + } + signalLater(doc, "change", doc, change); + } + + // Call f for all linked documents. + function linkedDocs(doc, f, sharedHistOnly) { + function propagate(doc, skip, sharedHist) { + if (doc.linked) { + for (var i = 0; i < doc.linked.length; ++i) { + var rel = doc.linked[i]; + if (rel.doc == skip) { + continue; + } + var shared = sharedHist && rel.sharedHist; + if (sharedHistOnly && !shared) { + continue; + } + f(rel.doc, shared); + propagate(rel.doc, doc, shared); + } + } + } + propagate(doc, null, true); + } + + // Attach a document to an editor. + function attachDoc(cm, doc) { + if (doc.cm) { + throw new Error("This document is already in use."); + } + cm.doc = doc; + doc.cm = cm; + estimateLineHeights(cm); + loadMode(cm); + setDirectionClass(cm); + cm.options.direction = doc.direction; + if (!cm.options.lineWrapping) { + findMaxLine(cm); + } + cm.options.mode = doc.modeOption; + regChange(cm); + } + function setDirectionClass(cm) { + (cm.doc.direction == "rtl" ? addClass : rmClass)(cm.display.lineDiv, "CodeMirror-rtl"); + } + function directionChanged(cm) { + runInOp(cm, function () { + setDirectionClass(cm); + regChange(cm); + }); + } + function History(prev) { + // Arrays of change events and selections. Doing something adds an + // event to done and clears undo. Undoing moves events from done + // to undone, redoing moves them in the other direction. + this.done = []; + this.undone = []; + this.undoDepth = prev ? prev.undoDepth : Infinity; + // Used to track when changes can be merged into a single undo + // event + this.lastModTime = this.lastSelTime = 0; + this.lastOp = this.lastSelOp = null; + this.lastOrigin = this.lastSelOrigin = null; + // Used by the isClean() method + this.generation = this.maxGeneration = prev ? prev.maxGeneration : 1; + } + + // Create a history change event from an updateDoc-style change + // object. + function historyChangeFromChange(doc, change) { + var histChange = { + from: copyPos(change.from), + to: changeEnd(change), + text: getBetween(doc, change.from, change.to) + }; + attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); + linkedDocs(doc, function (doc) { + return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); + }, true); + return histChange; + } + + // Pop all selection events off the end of a history array. Stop at + // a change event. + function clearSelectionEvents(array) { + while (array.length) { + var last = lst(array); + if (last.ranges) { + array.pop(); + } else { + break; + } + } + } + + // Find the top change event in the history. Pop off selection + // events that are in the way. + function lastChangeEvent(hist, force) { + if (force) { + clearSelectionEvents(hist.done); + return lst(hist.done); + } else if (hist.done.length && !lst(hist.done).ranges) { + return lst(hist.done); + } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) { + hist.done.pop(); + return lst(hist.done); + } + } + + // Register a change in the history. Merges changes that are within + // a single operation, or are close together with an origin that + // allows merging (starting with "+") into a single event. + function addChangeToHistory(doc, change, selAfter, opId) { + var hist = doc.history; + hist.undone.length = 0; + var time = +new Date(), + cur; + var last; + if ((hist.lastOp == opId || hist.lastOrigin == change.origin && change.origin && (change.origin.charAt(0) == "+" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500) || change.origin.charAt(0) == "*")) && (cur = lastChangeEvent(hist, hist.lastOp == opId))) { + // Merge this change into the last event + last = lst(cur.changes); + if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) { + // Optimized case for simple insertion -- don't want to add + // new changesets for every character typed + last.to = changeEnd(change); + } else { + // Add new sub-event + cur.changes.push(historyChangeFromChange(doc, change)); + } + } else { + // Can not be merged, start a new event. + var before = lst(hist.done); + if (!before || !before.ranges) { + pushSelectionToHistory(doc.sel, hist.done); + } + cur = { + changes: [historyChangeFromChange(doc, change)], + generation: hist.generation + }; + hist.done.push(cur); + while (hist.done.length > hist.undoDepth) { + hist.done.shift(); + if (!hist.done[0].ranges) { + hist.done.shift(); + } + } + } + hist.done.push(selAfter); + hist.generation = ++hist.maxGeneration; + hist.lastModTime = hist.lastSelTime = time; + hist.lastOp = hist.lastSelOp = opId; + hist.lastOrigin = hist.lastSelOrigin = change.origin; + if (!last) { + signal(doc, "historyAdded"); + } + } + function selectionEventCanBeMerged(doc, origin, prev, sel) { + var ch = origin.charAt(0); + return ch == "*" || ch == "+" && prev.ranges.length == sel.ranges.length && prev.somethingSelected() == sel.somethingSelected() && new Date() - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500); + } + + // Called whenever the selection changes, sets the new selection as + // the pending selection in the history, and pushes the old pending + // selection into the 'done' array when it was significantly + // different (in number of selected ranges, emptiness, or time). + function addSelectionToHistory(doc, sel, opId, options) { + var hist = doc.history, + origin = options && options.origin; + + // A new event is started when the previous origin does not match + // the current, or the origins don't allow matching. Origins + // starting with * are always merged, those starting with + are + // merged when similar and close together in time. + if (opId == hist.lastSelOp || origin && hist.lastSelOrigin == origin && (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin || selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))) { + hist.done[hist.done.length - 1] = sel; + } else { + pushSelectionToHistory(sel, hist.done); + } + hist.lastSelTime = +new Date(); + hist.lastSelOrigin = origin; + hist.lastSelOp = opId; + if (options && options.clearRedo !== false) { + clearSelectionEvents(hist.undone); + } + } + function pushSelectionToHistory(sel, dest) { + var top = lst(dest); + if (!(top && top.ranges && top.equals(sel))) { + dest.push(sel); + } + } + + // Used to store marked span information in the history. + function attachLocalSpans(doc, change, from, to) { + var existing = change["spans_" + doc.id], + n = 0; + doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) { + if (line.markedSpans) { + (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; + } + ++n; + }); + } + + // When un/re-doing restores text containing marked spans, those + // that have been explicitly cleared should not be restored. + function removeClearedSpans(spans) { + if (!spans) { + return null; + } + var out; + for (var i = 0; i < spans.length; ++i) { + if (spans[i].marker.explicitlyCleared) { + if (!out) { + out = spans.slice(0, i); + } + } else if (out) { + out.push(spans[i]); + } + } + return !out ? spans : out.length ? out : null; + } + + // Retrieve and filter the old marked spans stored in a change event. + function getOldSpans(doc, change) { + var found = change["spans_" + doc.id]; + if (!found) { + return null; + } + var nw = []; + for (var i = 0; i < change.text.length; ++i) { + nw.push(removeClearedSpans(found[i])); + } + return nw; + } + + // Used for un/re-doing changes from the history. Combines the + // result of computing the existing spans with the set of spans that + // existed in the history (so that deleting around a span and then + // undoing brings back the span). + function mergeOldSpans(doc, change) { + var old = getOldSpans(doc, change); + var stretched = stretchSpansOverChange(doc, change); + if (!old) { + return stretched; + } + if (!stretched) { + return old; + } + for (var i = 0; i < old.length; ++i) { + var oldCur = old[i], + stretchCur = stretched[i]; + if (oldCur && stretchCur) { + spans: for (var j = 0; j < stretchCur.length; ++j) { + var span = stretchCur[j]; + for (var k = 0; k < oldCur.length; ++k) { + if (oldCur[k].marker == span.marker) { + continue spans; + } + } + oldCur.push(span); + } + } else if (stretchCur) { + old[i] = stretchCur; + } + } + return old; + } + + // Used both to provide a JSON-safe object in .getHistory, and, when + // detaching a document, to split the history in two + function copyHistoryArray(events, newGroup, instantiateSel) { + var copy = []; + for (var i = 0; i < events.length; ++i) { + var event = events[i]; + if (event.ranges) { + copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event); + continue; + } + var changes = event.changes, + newChanges = []; + copy.push({ + changes: newChanges + }); + for (var j = 0; j < changes.length; ++j) { + var change = changes[j], + m = void 0; + newChanges.push({ + from: change.from, + to: change.to, + text: change.text + }); + if (newGroup) { + for (var prop in change) { + if (m = prop.match(/^spans_(\d+)$/)) { + if (indexOf(newGroup, Number(m[1])) > -1) { + lst(newChanges)[prop] = change[prop]; + delete change[prop]; + } + } + } + } + } + } + return copy; + } + + // The 'scroll' parameter given to many of these indicated whether + // the new cursor position should be scrolled into view after + // modifying the selection. + + // If shift is held or the extend flag is set, extends a range to + // include a given position (and optionally a second position). + // Otherwise, simply returns the range between the given positions. + // Used for cursor motion and such. + function extendRange(range, head, other, extend) { + if (extend) { + var anchor = range.anchor; + if (other) { + var posBefore = cmp(head, anchor) < 0; + if (posBefore != cmp(other, anchor) < 0) { + anchor = head; + head = other; + } else if (posBefore != cmp(head, other) < 0) { + head = other; + } + } + return new Range(anchor, head); + } else { + return new Range(other || head, head); + } + } + + // Extend the primary selection range, discard the rest. + function extendSelection(doc, head, other, options, extend) { + if (extend == null) { + extend = doc.cm && (doc.cm.display.shift || doc.extend); + } + setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options); + } + + // Extend all selections (pos is an array of selections with length + // equal the number of selections) + function extendSelections(doc, heads, options) { + var out = []; + var extend = doc.cm && (doc.cm.display.shift || doc.extend); + for (var i = 0; i < doc.sel.ranges.length; i++) { + out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); + } + var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex); + setSelection(doc, newSel, options); + } + + // Updates a single range in the selection. + function replaceOneSelection(doc, i, range, options) { + var ranges = doc.sel.ranges.slice(0); + ranges[i] = range; + setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options); + } + + // Reset the selection to a single range. + function setSimpleSelection(doc, anchor, head, options) { + setSelection(doc, simpleSelection(anchor, head), options); + } + + // Give beforeSelectionChange handlers a change to influence a + // selection update. + function filterSelectionChange(doc, sel, options) { + var obj = { + ranges: sel.ranges, + update: function (ranges) { + this.ranges = []; + for (var i = 0; i < ranges.length; i++) { + this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor), clipPos(doc, ranges[i].head)); + } + }, + origin: options && options.origin + }; + signal(doc, "beforeSelectionChange", doc, obj); + if (doc.cm) { + signal(doc.cm, "beforeSelectionChange", doc.cm, obj); + } + if (obj.ranges != sel.ranges) { + return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1); + } else { + return sel; + } + } + function setSelectionReplaceHistory(doc, sel, options) { + var done = doc.history.done, + last = lst(done); + if (last && last.ranges) { + done[done.length - 1] = sel; + setSelectionNoUndo(doc, sel, options); + } else { + setSelection(doc, sel, options); + } + } + + // Set a new selection. + function setSelection(doc, sel, options) { + setSelectionNoUndo(doc, sel, options); + addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options); + } + function setSelectionNoUndo(doc, sel, options) { + if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange")) { + sel = filterSelectionChange(doc, sel, options); + } + var bias = options && options.bias || (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1); + setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true)); + if (!(options && options.scroll === false) && doc.cm && doc.cm.getOption("readOnly") != "nocursor") { + ensureCursorVisible(doc.cm); + } + } + function setSelectionInner(doc, sel) { + if (sel.equals(doc.sel)) { + return; + } + doc.sel = sel; + if (doc.cm) { + doc.cm.curOp.updateInput = 1; + doc.cm.curOp.selectionChanged = true; + signalCursorActivity(doc.cm); + } + signalLater(doc, "cursorActivity", doc); + } + + // Verify that the selection does not partially select any atomic + // marked ranges. + function reCheckSelection(doc) { + setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false)); + } + + // Return a selection that does not partially select any atomic + // ranges. + function skipAtomicInSelection(doc, sel, bias, mayClear) { + var out; + for (var i = 0; i < sel.ranges.length; i++) { + var range = sel.ranges[i]; + var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i]; + var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear); + var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear); + if (out || newAnchor != range.anchor || newHead != range.head) { + if (!out) { + out = sel.ranges.slice(0, i); + } + out[i] = new Range(newAnchor, newHead); + } + } + return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel; + } + function skipAtomicInner(doc, pos, oldPos, dir, mayClear) { + var line = getLine(doc, pos.line); + if (line.markedSpans) { + for (var i = 0; i < line.markedSpans.length; ++i) { + var sp = line.markedSpans[i], + m = sp.marker; + + // Determine if we should prevent the cursor being placed to the left/right of an atomic marker + // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it + // is with selectLeft/Right + var preventCursorLeft = "selectLeft" in m ? !m.selectLeft : m.inclusiveLeft; + var preventCursorRight = "selectRight" in m ? !m.selectRight : m.inclusiveRight; + if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) && (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) { + if (mayClear) { + signal(m, "beforeCursorEnter"); + if (m.explicitlyCleared) { + if (!line.markedSpans) { + break; + } else { + --i; + continue; + } + } + } + if (!m.atomic) { + continue; + } + if (oldPos) { + var near = m.find(dir < 0 ? 1 : -1), + diff = void 0; + if (dir < 0 ? preventCursorRight : preventCursorLeft) { + near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); + } + if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0)) { + return skipAtomicInner(doc, near, pos, dir, mayClear); + } + } + var far = m.find(dir < 0 ? -1 : 1); + if (dir < 0 ? preventCursorLeft : preventCursorRight) { + far = movePos(doc, far, dir, far.line == pos.line ? line : null); + } + return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null; + } + } + } + return pos; + } + + // Ensure a given position is not inside an atomic range. + function skipAtomic(doc, pos, oldPos, bias, mayClear) { + var dir = bias || 1; + var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) || !mayClear && skipAtomicInner(doc, pos, oldPos, dir, true) || skipAtomicInner(doc, pos, oldPos, -dir, mayClear) || !mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true); + if (!found) { + doc.cantEdit = true; + return Pos(doc.first, 0); + } + return found; + } + function movePos(doc, pos, dir, line) { + if (dir < 0 && pos.ch == 0) { + if (pos.line > doc.first) { + return clipPos(doc, Pos(pos.line - 1)); + } else { + return null; + } + } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) { + if (pos.line < doc.first + doc.size - 1) { + return Pos(pos.line + 1, 0); + } else { + return null; + } + } else { + return new Pos(pos.line, pos.ch + dir); + } + } + function selectAll(cm) { + cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll); + } + + // UPDATING + + // Allow "beforeChange" event handlers to influence a change + function filterChange(doc, change, update) { + var obj = { + canceled: false, + from: change.from, + to: change.to, + text: change.text, + origin: change.origin, + cancel: function () { + return obj.canceled = true; + } + }; + if (update) { + obj.update = function (from, to, text, origin) { + if (from) { + obj.from = clipPos(doc, from); + } + if (to) { + obj.to = clipPos(doc, to); + } + if (text) { + obj.text = text; + } + if (origin !== undefined) { + obj.origin = origin; + } + }; + } + signal(doc, "beforeChange", doc, obj); + if (doc.cm) { + signal(doc.cm, "beforeChange", doc.cm, obj); + } + if (obj.canceled) { + if (doc.cm) { + doc.cm.curOp.updateInput = 2; + } + return null; + } + return { + from: obj.from, + to: obj.to, + text: obj.text, + origin: obj.origin + }; + } + + // Apply a change to a document, and add it to the document's + // history, and propagating it to all linked documents. + function makeChange(doc, change, ignoreReadOnly) { + if (doc.cm) { + if (!doc.cm.curOp) { + return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly); + } + if (doc.cm.state.suppressEdits) { + return; + } + } + if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) { + change = filterChange(doc, change, true); + if (!change) { + return; + } + } + + // Possibly split or suppress the update based on the presence + // of read-only spans in its range. + var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to); + if (split) { + for (var i = split.length - 1; i >= 0; --i) { + makeChangeInner(doc, { + from: split[i].from, + to: split[i].to, + text: i ? [""] : change.text, + origin: change.origin + }); + } + } else { + makeChangeInner(doc, change); + } + } + function makeChangeInner(doc, change) { + if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) { + return; + } + var selAfter = computeSelAfterChange(doc, change); + addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN); + makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change)); + var rebased = []; + linkedDocs(doc, function (doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change)); + }); + } + + // Revert a change stored in a document's history. + function makeChangeFromHistory(doc, type, allowSelectionOnly) { + var suppress = doc.cm && doc.cm.state.suppressEdits; + if (suppress && !allowSelectionOnly) { + return; + } + var hist = doc.history, + event, + selAfter = doc.sel; + var source = type == "undo" ? hist.done : hist.undone, + dest = type == "undo" ? hist.undone : hist.done; + + // Verify that there is a useable event (so that ctrl-z won't + // needlessly clear selection events) + var i = 0; + for (; i < source.length; i++) { + event = source[i]; + if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges) { + break; + } + } + if (i == source.length) { + return; + } + hist.lastOrigin = hist.lastSelOrigin = null; + for (;;) { + event = source.pop(); + if (event.ranges) { + pushSelectionToHistory(event, dest); + if (allowSelectionOnly && !event.equals(doc.sel)) { + setSelection(doc, event, { + clearRedo: false + }); + return; + } + selAfter = event; + } else if (suppress) { + source.push(event); + return; + } else { + break; + } + } + + // Build up a reverse change object to add to the opposite history + // stack (redo when undoing, and vice versa). + var antiChanges = []; + pushSelectionToHistory(selAfter, dest); + dest.push({ + changes: antiChanges, + generation: hist.generation + }); + hist.generation = event.generation || ++hist.maxGeneration; + var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange"); + var loop = function (i) { + var change = event.changes[i]; + change.origin = type; + if (filter && !filterChange(doc, change, false)) { + source.length = 0; + return {}; + } + antiChanges.push(historyChangeFromChange(doc, change)); + var after = i ? computeSelAfterChange(doc, change) : lst(source); + makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change)); + if (!i && doc.cm) { + doc.cm.scrollIntoView({ + from: change.from, + to: changeEnd(change) + }); + } + var rebased = []; + + // Propagate to the linked documents + linkedDocs(doc, function (doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change)); + }); + }; + for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) { + var returned = loop(i$1); + if (returned) return returned.v; + } + } + + // Sub-views need their line numbers shifted when text is added + // above or below them in the parent document. + function shiftDoc(doc, distance) { + if (distance == 0) { + return; + } + doc.first += distance; + doc.sel = new Selection(map(doc.sel.ranges, function (range) { + return new Range(Pos(range.anchor.line + distance, range.anchor.ch), Pos(range.head.line + distance, range.head.ch)); + }), doc.sel.primIndex); + if (doc.cm) { + regChange(doc.cm, doc.first, doc.first - distance, distance); + for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++) { + regLineChange(doc.cm, l, "gutter"); + } + } + } + + // More lower-level change function, handling only a single document + // (not linked ones). + function makeChangeSingleDoc(doc, change, selAfter, spans) { + if (doc.cm && !doc.cm.curOp) { + return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans); + } + if (change.to.line < doc.first) { + shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line)); + return; + } + if (change.from.line > doc.lastLine()) { + return; + } + + // Clip the change to the size of this doc + if (change.from.line < doc.first) { + var shift = change.text.length - 1 - (doc.first - change.from.line); + shiftDoc(doc, shift); + change = { + from: Pos(doc.first, 0), + to: Pos(change.to.line + shift, change.to.ch), + text: [lst(change.text)], + origin: change.origin + }; + } + var last = doc.lastLine(); + if (change.to.line > last) { + change = { + from: change.from, + to: Pos(last, getLine(doc, last).text.length), + text: [change.text[0]], + origin: change.origin + }; + } + change.removed = getBetween(doc, change.from, change.to); + if (!selAfter) { + selAfter = computeSelAfterChange(doc, change); + } + if (doc.cm) { + makeChangeSingleDocInEditor(doc.cm, change, spans); + } else { + updateDoc(doc, change, spans); + } + setSelectionNoUndo(doc, selAfter, sel_dontScroll); + if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0))) { + doc.cantEdit = false; + } + } + + // Handle the interaction of a change to a document with the editor + // that this document is part of. + function makeChangeSingleDocInEditor(cm, change, spans) { + var doc = cm.doc, + display = cm.display, + from = change.from, + to = change.to; + var recomputeMaxLength = false, + checkWidthStart = from.line; + if (!cm.options.lineWrapping) { + checkWidthStart = lineNo(visualLine(getLine(doc, from.line))); + doc.iter(checkWidthStart, to.line + 1, function (line) { + if (line == display.maxLine) { + recomputeMaxLength = true; + return true; + } + }); + } + if (doc.sel.contains(change.from, change.to) > -1) { + signalCursorActivity(cm); + } + updateDoc(doc, change, spans, estimateHeight(cm)); + if (!cm.options.lineWrapping) { + doc.iter(checkWidthStart, from.line + change.text.length, function (line) { + var len = lineLength(line); + if (len > display.maxLineLength) { + display.maxLine = line; + display.maxLineLength = len; + display.maxLineChanged = true; + recomputeMaxLength = false; + } + }); + if (recomputeMaxLength) { + cm.curOp.updateMaxLine = true; + } + } + retreatFrontier(doc, from.line); + startWorker(cm, 400); + var lendiff = change.text.length - (to.line - from.line) - 1; + // Remember that these lines changed, for updating the display + if (change.full) { + regChange(cm); + } else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change)) { + regLineChange(cm, from.line, "text"); + } else { + regChange(cm, from.line, to.line + 1, lendiff); + } + var changesHandler = hasHandler(cm, "changes"), + changeHandler = hasHandler(cm, "change"); + if (changeHandler || changesHandler) { + var obj = { + from: from, + to: to, + text: change.text, + removed: change.removed, + origin: change.origin + }; + if (changeHandler) { + signalLater(cm, "change", cm, obj); + } + if (changesHandler) { + (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); + } + } + cm.display.selForContextMenu = null; + } + function replaceRange(doc, code, from, to, origin) { + var assign; + if (!to) { + to = from; + } + if (cmp(to, from) < 0) { + assign = [to, from], from = assign[0], to = assign[1]; + } + if (typeof code == "string") { + code = doc.splitLines(code); + } + makeChange(doc, { + from: from, + to: to, + text: code, + origin: origin + }); + } + + // Rebasing/resetting history to deal with externally-sourced changes + + function rebaseHistSelSingle(pos, from, to, diff) { + if (to < pos.line) { + pos.line += diff; + } else if (from < pos.line) { + pos.line = from; + pos.ch = 0; + } + } + + // Tries to rebase an array of history events given a change in the + // document. If the change touches the same lines as the event, the + // event, and everything 'behind' it, is discarded. If the change is + // before the event, the event's positions are updated. Uses a + // copy-on-write scheme for the positions, to avoid having to + // reallocate them all on every rebase, but also avoid problems with + // shared position objects being unsafely updated. + function rebaseHistArray(array, from, to, diff) { + for (var i = 0; i < array.length; ++i) { + var sub = array[i], + ok = true; + if (sub.ranges) { + if (!sub.copied) { + sub = array[i] = sub.deepCopy(); + sub.copied = true; + } + for (var j = 0; j < sub.ranges.length; j++) { + rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff); + rebaseHistSelSingle(sub.ranges[j].head, from, to, diff); + } + continue; + } + for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) { + var cur = sub.changes[j$1]; + if (to < cur.from.line) { + cur.from = Pos(cur.from.line + diff, cur.from.ch); + cur.to = Pos(cur.to.line + diff, cur.to.ch); + } else if (from <= cur.to.line) { + ok = false; + break; + } + } + if (!ok) { + array.splice(0, i + 1); + i = 0; + } + } + } + function rebaseHist(hist, change) { + var from = change.from.line, + to = change.to.line, + diff = change.text.length - (to - from) - 1; + rebaseHistArray(hist.done, from, to, diff); + rebaseHistArray(hist.undone, from, to, diff); + } + + // Utility for applying a change to a line by handle or number, + // returning the number and optionally registering the line as + // changed. + function changeLine(doc, handle, changeType, op) { + var no = handle, + line = handle; + if (typeof handle == "number") { + line = getLine(doc, clipLine(doc, handle)); + } else { + no = lineNo(handle); + } + if (no == null) { + return null; + } + if (op(line, no) && doc.cm) { + regLineChange(doc.cm, no, changeType); + } + return line; + } + + // The document is represented as a BTree consisting of leaves, with + // chunk of lines in them, and branches, with up to ten leaves or + // other branch nodes below them. The top node is always a branch + // node, and is the document object itself (meaning it has + // additional methods and properties). + // + // All nodes have parent links. The tree is used both to go from + // line numbers to line objects, and to go from objects to numbers. + // It also indexes by height, and is used to convert between height + // and line object, and to find the total height of the document. + // + // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html + + function LeafChunk(lines) { + this.lines = lines; + this.parent = null; + var height = 0; + for (var i = 0; i < lines.length; ++i) { + lines[i].parent = this; + height += lines[i].height; + } + this.height = height; + } + LeafChunk.prototype = { + chunkSize: function () { + return this.lines.length; + }, + // Remove the n lines at offset 'at'. + removeInner: function (at, n) { + for (var i = at, e = at + n; i < e; ++i) { + var line = this.lines[i]; + this.height -= line.height; + cleanUpLine(line); + signalLater(line, "delete"); + } + this.lines.splice(at, n); + }, + // Helper used to collapse a small branch into a single leaf. + collapse: function (lines) { + lines.push.apply(lines, this.lines); + }, + // Insert the given array of lines at offset 'at', count them as + // having the given height. + insertInner: function (at, lines, height) { + this.height += height; + this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); + for (var i = 0; i < lines.length; ++i) { + lines[i].parent = this; + } + }, + // Used to iterate over a part of the tree. + iterN: function (at, n, op) { + for (var e = at + n; at < e; ++at) { + if (op(this.lines[at])) { + return true; + } + } + } + }; + function BranchChunk(children) { + this.children = children; + var size = 0, + height = 0; + for (var i = 0; i < children.length; ++i) { + var ch = children[i]; + size += ch.chunkSize(); + height += ch.height; + ch.parent = this; + } + this.size = size; + this.height = height; + this.parent = null; + } + BranchChunk.prototype = { + chunkSize: function () { + return this.size; + }, + removeInner: function (at, n) { + this.size -= n; + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], + sz = child.chunkSize(); + if (at < sz) { + var rm = Math.min(n, sz - at), + oldHeight = child.height; + child.removeInner(at, rm); + this.height -= oldHeight - child.height; + if (sz == rm) { + this.children.splice(i--, 1); + child.parent = null; + } + if ((n -= rm) == 0) { + break; + } + at = 0; + } else { + at -= sz; + } + } + // If the result is smaller than 25 lines, ensure that it is a + // single leaf node. + if (this.size - n < 25 && (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) { + var lines = []; + this.collapse(lines); + this.children = [new LeafChunk(lines)]; + this.children[0].parent = this; + } + }, + collapse: function (lines) { + for (var i = 0; i < this.children.length; ++i) { + this.children[i].collapse(lines); + } + }, + insertInner: function (at, lines, height) { + this.size += lines.length; + this.height += height; + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], + sz = child.chunkSize(); + if (at <= sz) { + child.insertInner(at, lines, height); + if (child.lines && child.lines.length > 50) { + // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced. + // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest. + var remaining = child.lines.length % 25 + 25; + for (var pos = remaining; pos < child.lines.length;) { + var leaf = new LeafChunk(child.lines.slice(pos, pos += 25)); + child.height -= leaf.height; + this.children.splice(++i, 0, leaf); + leaf.parent = this; + } + child.lines = child.lines.slice(0, remaining); + this.maybeSpill(); + } + break; + } + at -= sz; + } + }, + // When a node has grown, check whether it should be split. + maybeSpill: function () { + if (this.children.length <= 10) { + return; + } + var me = this; + do { + var spilled = me.children.splice(me.children.length - 5, 5); + var sibling = new BranchChunk(spilled); + if (!me.parent) { + // Become the parent node + var copy = new BranchChunk(me.children); + copy.parent = me; + me.children = [copy, sibling]; + me = copy; + } else { + me.size -= sibling.size; + me.height -= sibling.height; + var myIndex = indexOf(me.parent.children, me); + me.parent.children.splice(myIndex + 1, 0, sibling); + } + sibling.parent = me.parent; + } while (me.children.length > 10); + me.parent.maybeSpill(); + }, + iterN: function (at, n, op) { + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], + sz = child.chunkSize(); + if (at < sz) { + var used = Math.min(n, sz - at); + if (child.iterN(at, used, op)) { + return true; + } + if ((n -= used) == 0) { + break; + } + at = 0; + } else { + at -= sz; + } + } + } + }; + + // Line widgets are block elements displayed above or below a line. + + var LineWidget = function (doc, node, options) { + if (options) { + for (var opt in options) { + if (options.hasOwnProperty(opt)) { + this[opt] = options[opt]; + } + } + } + this.doc = doc; + this.node = node; + }; + LineWidget.prototype.clear = function () { + var cm = this.doc.cm, + ws = this.line.widgets, + line = this.line, + no = lineNo(line); + if (no == null || !ws) { + return; + } + for (var i = 0; i < ws.length; ++i) { + if (ws[i] == this) { + ws.splice(i--, 1); + } + } + if (!ws.length) { + line.widgets = null; + } + var height = widgetHeight(this); + updateLineHeight(line, Math.max(0, line.height - height)); + if (cm) { + runInOp(cm, function () { + adjustScrollWhenAboveVisible(cm, line, -height); + regLineChange(cm, no, "widget"); + }); + signalLater(cm, "lineWidgetCleared", cm, this, no); + } + }; + LineWidget.prototype.changed = function () { + var this$1 = this; + var oldH = this.height, + cm = this.doc.cm, + line = this.line; + this.height = null; + var diff = widgetHeight(this) - oldH; + if (!diff) { + return; + } + if (!lineIsHidden(this.doc, line)) { + updateLineHeight(line, line.height + diff); + } + if (cm) { + runInOp(cm, function () { + cm.curOp.forceUpdate = true; + adjustScrollWhenAboveVisible(cm, line, diff); + signalLater(cm, "lineWidgetChanged", cm, this$1, lineNo(line)); + }); + } + }; + eventMixin(LineWidget); + function adjustScrollWhenAboveVisible(cm, line, diff) { + if (heightAtLine(line) < (cm.curOp && cm.curOp.scrollTop || cm.doc.scrollTop)) { + addToScrollTop(cm, diff); + } + } + function addLineWidget(doc, handle, node, options) { + var widget = new LineWidget(doc, node, options); + var cm = doc.cm; + if (cm && widget.noHScroll) { + cm.display.alignWidgets = true; + } + changeLine(doc, handle, "widget", function (line) { + var widgets = line.widgets || (line.widgets = []); + if (widget.insertAt == null) { + widgets.push(widget); + } else { + widgets.splice(Math.min(widgets.length, Math.max(0, widget.insertAt)), 0, widget); + } + widget.line = line; + if (cm && !lineIsHidden(doc, line)) { + var aboveVisible = heightAtLine(line) < doc.scrollTop; + updateLineHeight(line, line.height + widgetHeight(widget)); + if (aboveVisible) { + addToScrollTop(cm, widget.height); + } + cm.curOp.forceUpdate = true; + } + return true; + }); + if (cm) { + signalLater(cm, "lineWidgetAdded", cm, widget, typeof handle == "number" ? handle : lineNo(handle)); + } + return widget; + } + + // TEXTMARKERS + + // Created with markText and setBookmark methods. A TextMarker is a + // handle that can be used to clear or find a marked position in the + // document. Line objects hold arrays (markedSpans) containing + // {from, to, marker} object pointing to such marker objects, and + // indicating that such a marker is present on that line. Multiple + // lines may point to the same marker when it spans across lines. + // The spans will have null for their from/to properties when the + // marker continues beyond the start/end of the line. Markers have + // links back to the lines they currently touch. + + // Collapsed markers have unique ids, in order to be able to order + // them, which is needed for uniquely determining an outer marker + // when they overlap (they may nest, but not partially overlap). + var nextMarkerId = 0; + var TextMarker = function (doc, type) { + this.lines = []; + this.type = type; + this.doc = doc; + this.id = ++nextMarkerId; + }; + + // Clear the marker. + TextMarker.prototype.clear = function () { + if (this.explicitlyCleared) { + return; + } + var cm = this.doc.cm, + withOp = cm && !cm.curOp; + if (withOp) { + startOperation(cm); + } + if (hasHandler(this, "clear")) { + var found = this.find(); + if (found) { + signalLater(this, "clear", found.from, found.to); + } + } + var min = null, + max = null; + for (var i = 0; i < this.lines.length; ++i) { + var line = this.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this); + if (cm && !this.collapsed) { + regLineChange(cm, lineNo(line), "text"); + } else if (cm) { + if (span.to != null) { + max = lineNo(line); + } + if (span.from != null) { + min = lineNo(line); + } + } + line.markedSpans = removeMarkedSpan(line.markedSpans, span); + if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm) { + updateLineHeight(line, textHeight(cm.display)); + } + } + if (cm && this.collapsed && !cm.options.lineWrapping) { + for (var i$1 = 0; i$1 < this.lines.length; ++i$1) { + var visual = visualLine(this.lines[i$1]), + len = lineLength(visual); + if (len > cm.display.maxLineLength) { + cm.display.maxLine = visual; + cm.display.maxLineLength = len; + cm.display.maxLineChanged = true; + } + } + } + if (min != null && cm && this.collapsed) { + regChange(cm, min, max + 1); + } + this.lines.length = 0; + this.explicitlyCleared = true; + if (this.atomic && this.doc.cantEdit) { + this.doc.cantEdit = false; + if (cm) { + reCheckSelection(cm.doc); + } + } + if (cm) { + signalLater(cm, "markerCleared", cm, this, min, max); + } + if (withOp) { + endOperation(cm); + } + if (this.parent) { + this.parent.clear(); + } + }; + + // Find the position of the marker in the document. Returns a {from, + // to} object by default. Side can be passed to get a specific side + // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the + // Pos objects returned contain a line object, rather than a line + // number (used to prevent looking up the same line twice). + TextMarker.prototype.find = function (side, lineObj) { + if (side == null && this.type == "bookmark") { + side = 1; + } + var from, to; + for (var i = 0; i < this.lines.length; ++i) { + var line = this.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this); + if (span.from != null) { + from = Pos(lineObj ? line : lineNo(line), span.from); + if (side == -1) { + return from; + } + } + if (span.to != null) { + to = Pos(lineObj ? line : lineNo(line), span.to); + if (side == 1) { + return to; + } + } + } + return from && { + from: from, + to: to + }; + }; + + // Signals that the marker's widget changed, and surrounding layout + // should be recomputed. + TextMarker.prototype.changed = function () { + var this$1 = this; + var pos = this.find(-1, true), + widget = this, + cm = this.doc.cm; + if (!pos || !cm) { + return; + } + runInOp(cm, function () { + var line = pos.line, + lineN = lineNo(pos.line); + var view = findViewForLine(cm, lineN); + if (view) { + clearLineMeasurementCacheFor(view); + cm.curOp.selectionChanged = cm.curOp.forceUpdate = true; + } + cm.curOp.updateMaxLine = true; + if (!lineIsHidden(widget.doc, line) && widget.height != null) { + var oldHeight = widget.height; + widget.height = null; + var dHeight = widgetHeight(widget) - oldHeight; + if (dHeight) { + updateLineHeight(line, line.height + dHeight); + } + } + signalLater(cm, "markerChanged", cm, this$1); + }); + }; + TextMarker.prototype.attachLine = function (line) { + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp; + if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1) { + (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); + } + } + this.lines.push(line); + }; + TextMarker.prototype.detachLine = function (line) { + this.lines.splice(indexOf(this.lines, line), 1); + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp; + (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this); + } + }; + eventMixin(TextMarker); + + // Create a marker, wire it up to the right lines, and + function markText(doc, from, to, options, type) { + // Shared markers (across linked documents) are handled separately + // (markTextShared will call out to this again, once per + // document). + if (options && options.shared) { + return markTextShared(doc, from, to, options, type); + } + // Ensure we are in an operation. + if (doc.cm && !doc.cm.curOp) { + return operation(doc.cm, markText)(doc, from, to, options, type); + } + var marker = new TextMarker(doc, type), + diff = cmp(from, to); + if (options) { + copyObj(options, marker, false); + } + // Don't connect empty markers unless clearWhenEmpty is false + if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false) { + return marker; + } + if (marker.replacedWith) { + // Showing up as a widget implies collapsed (widget replaces text) + marker.collapsed = true; + marker.widgetNode = eltP("span", [marker.replacedWith], "CodeMirror-widget"); + if (!options.handleMouseEvents) { + marker.widgetNode.setAttribute("cm-ignore-events", "true"); + } + if (options.insertLeft) { + marker.widgetNode.insertLeft = true; + } + } + if (marker.collapsed) { + if (conflictingCollapsedRange(doc, from.line, from, to, marker) || from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker)) { + throw new Error("Inserting collapsed marker partially overlapping an existing one"); + } + seeCollapsedSpans(); + } + if (marker.addToHistory) { + addChangeToHistory(doc, { + from: from, + to: to, + origin: "markText" + }, doc.sel, NaN); + } + var curLine = from.line, + cm = doc.cm, + updateMaxLine; + doc.iter(curLine, to.line + 1, function (line) { + if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine) { + updateMaxLine = true; + } + if (marker.collapsed && curLine != from.line) { + updateLineHeight(line, 0); + } + addMarkedSpan(line, new MarkedSpan(marker, curLine == from.line ? from.ch : null, curLine == to.line ? to.ch : null), doc.cm && doc.cm.curOp); + ++curLine; + }); + // lineIsHidden depends on the presence of the spans, so needs a second pass + if (marker.collapsed) { + doc.iter(from.line, to.line + 1, function (line) { + if (lineIsHidden(doc, line)) { + updateLineHeight(line, 0); + } + }); + } + if (marker.clearOnEnter) { + on(marker, "beforeCursorEnter", function () { + return marker.clear(); + }); + } + if (marker.readOnly) { + seeReadOnlySpans(); + if (doc.history.done.length || doc.history.undone.length) { + doc.clearHistory(); + } + } + if (marker.collapsed) { + marker.id = ++nextMarkerId; + marker.atomic = true; + } + if (cm) { + // Sync editor state + if (updateMaxLine) { + cm.curOp.updateMaxLine = true; + } + if (marker.collapsed) { + regChange(cm, from.line, to.line + 1); + } else if (marker.className || marker.startStyle || marker.endStyle || marker.css || marker.attributes || marker.title) { + for (var i = from.line; i <= to.line; i++) { + regLineChange(cm, i, "text"); + } + } + if (marker.atomic) { + reCheckSelection(cm.doc); + } + signalLater(cm, "markerAdded", cm, marker); + } + return marker; + } + + // SHARED TEXTMARKERS + + // A shared marker spans multiple linked documents. It is + // implemented as a meta-marker-object controlling multiple normal + // markers. + var SharedTextMarker = function (markers, primary) { + this.markers = markers; + this.primary = primary; + for (var i = 0; i < markers.length; ++i) { + markers[i].parent = this; + } + }; + SharedTextMarker.prototype.clear = function () { + if (this.explicitlyCleared) { + return; + } + this.explicitlyCleared = true; + for (var i = 0; i < this.markers.length; ++i) { + this.markers[i].clear(); + } + signalLater(this, "clear"); + }; + SharedTextMarker.prototype.find = function (side, lineObj) { + return this.primary.find(side, lineObj); + }; + eventMixin(SharedTextMarker); + function markTextShared(doc, from, to, options, type) { + options = copyObj(options); + options.shared = false; + var markers = [markText(doc, from, to, options, type)], + primary = markers[0]; + var widget = options.widgetNode; + linkedDocs(doc, function (doc) { + if (widget) { + options.widgetNode = widget.cloneNode(true); + } + markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type)); + for (var i = 0; i < doc.linked.length; ++i) { + if (doc.linked[i].isParent) { + return; + } + } + primary = lst(markers); + }); + return new SharedTextMarker(markers, primary); + } + function findSharedMarkers(doc) { + return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { + return m.parent; + }); + } + function copySharedMarkers(doc, markers) { + for (var i = 0; i < markers.length; i++) { + var marker = markers[i], + pos = marker.find(); + var mFrom = doc.clipPos(pos.from), + mTo = doc.clipPos(pos.to); + if (cmp(mFrom, mTo)) { + var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type); + marker.markers.push(subMark); + subMark.parent = marker; + } + } + } + function detachSharedMarkers(markers) { + var loop = function (i) { + var marker = markers[i], + linked = [marker.primary.doc]; + linkedDocs(marker.primary.doc, function (d) { + return linked.push(d); + }); + for (var j = 0; j < marker.markers.length; j++) { + var subMarker = marker.markers[j]; + if (indexOf(linked, subMarker.doc) == -1) { + subMarker.parent = null; + marker.markers.splice(j--, 1); + } + } + }; + for (var i = 0; i < markers.length; i++) loop(i); + } + var nextDocId = 0; + var Doc = function (text, mode, firstLine, lineSep, direction) { + if (!(this instanceof Doc)) { + return new Doc(text, mode, firstLine, lineSep, direction); + } + if (firstLine == null) { + firstLine = 0; + } + BranchChunk.call(this, [new LeafChunk([new Line("", null)])]); + this.first = firstLine; + this.scrollTop = this.scrollLeft = 0; + this.cantEdit = false; + this.cleanGeneration = 1; + this.modeFrontier = this.highlightFrontier = firstLine; + var start = Pos(firstLine, 0); + this.sel = simpleSelection(start); + this.history = new History(null); + this.id = ++nextDocId; + this.modeOption = mode; + this.lineSep = lineSep; + this.direction = direction == "rtl" ? "rtl" : "ltr"; + this.extend = false; + if (typeof text == "string") { + text = this.splitLines(text); + } + updateDoc(this, { + from: start, + to: start, + text: text + }); + setSelection(this, simpleSelection(start), sel_dontScroll); + }; + Doc.prototype = createObj(BranchChunk.prototype, { + constructor: Doc, + // Iterate over the document. Supports two forms -- with only one + // argument, it calls that for each line in the document. With + // three, it iterates over the range given by the first two (with + // the second being non-inclusive). + iter: function (from, to, op) { + if (op) { + this.iterN(from - this.first, to - from, op); + } else { + this.iterN(this.first, this.first + this.size, from); + } + }, + // Non-public interface for adding and removing lines. + insert: function (at, lines) { + var height = 0; + for (var i = 0; i < lines.length; ++i) { + height += lines[i].height; + } + this.insertInner(at - this.first, lines, height); + }, + remove: function (at, n) { + this.removeInner(at - this.first, n); + }, + // From here, the methods are part of the public interface. Most + // are also available from CodeMirror (editor) instances. + + getValue: function (lineSep) { + var lines = getLines(this, this.first, this.first + this.size); + if (lineSep === false) { + return lines; + } + return lines.join(lineSep || this.lineSeparator()); + }, + setValue: docMethodOp(function (code) { + var top = Pos(this.first, 0), + last = this.first + this.size - 1; + makeChange(this, { + from: top, + to: Pos(last, getLine(this, last).text.length), + text: this.splitLines(code), + origin: "setValue", + full: true + }, true); + if (this.cm) { + scrollToCoords(this.cm, 0, 0); + } + setSelection(this, simpleSelection(top), sel_dontScroll); + }), + replaceRange: function (code, from, to, origin) { + from = clipPos(this, from); + to = to ? clipPos(this, to) : from; + replaceRange(this, code, from, to, origin); + }, + getRange: function (from, to, lineSep) { + var lines = getBetween(this, clipPos(this, from), clipPos(this, to)); + if (lineSep === false) { + return lines; + } + if (lineSep === '') { + return lines.join(''); + } + return lines.join(lineSep || this.lineSeparator()); + }, + getLine: function (line) { + var l = this.getLineHandle(line); + return l && l.text; + }, + getLineHandle: function (line) { + if (isLine(this, line)) { + return getLine(this, line); + } + }, + getLineNumber: function (line) { + return lineNo(line); + }, + getLineHandleVisualStart: function (line) { + if (typeof line == "number") { + line = getLine(this, line); + } + return visualLine(line); + }, + lineCount: function () { + return this.size; + }, + firstLine: function () { + return this.first; + }, + lastLine: function () { + return this.first + this.size - 1; + }, + clipPos: function (pos) { + return clipPos(this, pos); + }, + getCursor: function (start) { + var range = this.sel.primary(), + pos; + if (start == null || start == "head") { + pos = range.head; + } else if (start == "anchor") { + pos = range.anchor; + } else if (start == "end" || start == "to" || start === false) { + pos = range.to(); + } else { + pos = range.from(); + } + return pos; + }, + listSelections: function () { + return this.sel.ranges; + }, + somethingSelected: function () { + return this.sel.somethingSelected(); + }, + setCursor: docMethodOp(function (line, ch, options) { + setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options); + }), + setSelection: docMethodOp(function (anchor, head, options) { + setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options); + }), + extendSelection: docMethodOp(function (head, other, options) { + extendSelection(this, clipPos(this, head), other && clipPos(this, other), options); + }), + extendSelections: docMethodOp(function (heads, options) { + extendSelections(this, clipPosArray(this, heads), options); + }), + extendSelectionsBy: docMethodOp(function (f, options) { + var heads = map(this.sel.ranges, f); + extendSelections(this, clipPosArray(this, heads), options); + }), + setSelections: docMethodOp(function (ranges, primary, options) { + if (!ranges.length) { + return; + } + var out = []; + for (var i = 0; i < ranges.length; i++) { + out[i] = new Range(clipPos(this, ranges[i].anchor), clipPos(this, ranges[i].head || ranges[i].anchor)); + } + if (primary == null) { + primary = Math.min(ranges.length - 1, this.sel.primIndex); + } + setSelection(this, normalizeSelection(this.cm, out, primary), options); + }), + addSelection: docMethodOp(function (anchor, head, options) { + var ranges = this.sel.ranges.slice(0); + ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor))); + setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options); + }), + getSelection: function (lineSep) { + var ranges = this.sel.ranges, + lines; + for (var i = 0; i < ranges.length; i++) { + var sel = getBetween(this, ranges[i].from(), ranges[i].to()); + lines = lines ? lines.concat(sel) : sel; + } + if (lineSep === false) { + return lines; + } else { + return lines.join(lineSep || this.lineSeparator()); + } + }, + getSelections: function (lineSep) { + var parts = [], + ranges = this.sel.ranges; + for (var i = 0; i < ranges.length; i++) { + var sel = getBetween(this, ranges[i].from(), ranges[i].to()); + if (lineSep !== false) { + sel = sel.join(lineSep || this.lineSeparator()); + } + parts[i] = sel; + } + return parts; + }, + replaceSelection: function (code, collapse, origin) { + var dup = []; + for (var i = 0; i < this.sel.ranges.length; i++) { + dup[i] = code; + } + this.replaceSelections(dup, collapse, origin || "+input"); + }, + replaceSelections: docMethodOp(function (code, collapse, origin) { + var changes = [], + sel = this.sel; + for (var i = 0; i < sel.ranges.length; i++) { + var range = sel.ranges[i]; + changes[i] = { + from: range.from(), + to: range.to(), + text: this.splitLines(code[i]), + origin: origin + }; + } + var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse); + for (var i$1 = changes.length - 1; i$1 >= 0; i$1--) { + makeChange(this, changes[i$1]); + } + if (newSel) { + setSelectionReplaceHistory(this, newSel); + } else if (this.cm) { + ensureCursorVisible(this.cm); + } + }), + undo: docMethodOp(function () { + makeChangeFromHistory(this, "undo"); + }), + redo: docMethodOp(function () { + makeChangeFromHistory(this, "redo"); + }), + undoSelection: docMethodOp(function () { + makeChangeFromHistory(this, "undo", true); + }), + redoSelection: docMethodOp(function () { + makeChangeFromHistory(this, "redo", true); + }), + setExtending: function (val) { + this.extend = val; + }, + getExtending: function () { + return this.extend; + }, + historySize: function () { + var hist = this.history, + done = 0, + undone = 0; + for (var i = 0; i < hist.done.length; i++) { + if (!hist.done[i].ranges) { + ++done; + } + } + for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { + if (!hist.undone[i$1].ranges) { + ++undone; + } + } + return { + undo: done, + redo: undone + }; + }, + clearHistory: function () { + var this$1 = this; + this.history = new History(this.history); + linkedDocs(this, function (doc) { + return doc.history = this$1.history; + }, true); + }, + markClean: function () { + this.cleanGeneration = this.changeGeneration(true); + }, + changeGeneration: function (forceSplit) { + if (forceSplit) { + this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; + } + return this.history.generation; + }, + isClean: function (gen) { + return this.history.generation == (gen || this.cleanGeneration); + }, + getHistory: function () { + return { + done: copyHistoryArray(this.history.done), + undone: copyHistoryArray(this.history.undone) + }; + }, + setHistory: function (histData) { + var hist = this.history = new History(this.history); + hist.done = copyHistoryArray(histData.done.slice(0), null, true); + hist.undone = copyHistoryArray(histData.undone.slice(0), null, true); + }, + setGutterMarker: docMethodOp(function (line, gutterID, value) { + return changeLine(this, line, "gutter", function (line) { + var markers = line.gutterMarkers || (line.gutterMarkers = {}); + markers[gutterID] = value; + if (!value && isEmpty(markers)) { + line.gutterMarkers = null; + } + return true; + }); + }), + clearGutter: docMethodOp(function (gutterID) { + var this$1 = this; + this.iter(function (line) { + if (line.gutterMarkers && line.gutterMarkers[gutterID]) { + changeLine(this$1, line, "gutter", function () { + line.gutterMarkers[gutterID] = null; + if (isEmpty(line.gutterMarkers)) { + line.gutterMarkers = null; + } + return true; + }); + } + }); + }), + lineInfo: function (line) { + var n; + if (typeof line == "number") { + if (!isLine(this, line)) { + return null; + } + n = line; + line = getLine(this, line); + if (!line) { + return null; + } + } else { + n = lineNo(line); + if (n == null) { + return null; + } + } + return { + line: n, + handle: line, + text: line.text, + gutterMarkers: line.gutterMarkers, + textClass: line.textClass, + bgClass: line.bgClass, + wrapClass: line.wrapClass, + widgets: line.widgets + }; + }, + addLineClass: docMethodOp(function (handle, where, cls) { + return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) { + var prop = where == "text" ? "textClass" : where == "background" ? "bgClass" : where == "gutter" ? "gutterClass" : "wrapClass"; + if (!line[prop]) { + line[prop] = cls; + } else if (classTest(cls).test(line[prop])) { + return false; + } else { + line[prop] += " " + cls; + } + return true; + }); + }), + removeLineClass: docMethodOp(function (handle, where, cls) { + return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) { + var prop = where == "text" ? "textClass" : where == "background" ? "bgClass" : where == "gutter" ? "gutterClass" : "wrapClass"; + var cur = line[prop]; + if (!cur) { + return false; + } else if (cls == null) { + line[prop] = null; + } else { + var found = cur.match(classTest(cls)); + if (!found) { + return false; + } + var end = found.index + found[0].length; + line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null; + } + return true; + }); + }), + addLineWidget: docMethodOp(function (handle, node, options) { + return addLineWidget(this, handle, node, options); + }), + removeLineWidget: function (widget) { + widget.clear(); + }, + markText: function (from, to, options) { + return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range"); + }, + setBookmark: function (pos, options) { + var realOpts = { + replacedWith: options && (options.nodeType == null ? options.widget : options), + insertLeft: options && options.insertLeft, + clearWhenEmpty: false, + shared: options && options.shared, + handleMouseEvents: options && options.handleMouseEvents + }; + pos = clipPos(this, pos); + return markText(this, pos, pos, realOpts, "bookmark"); + }, + findMarksAt: function (pos) { + pos = clipPos(this, pos); + var markers = [], + spans = getLine(this, pos.line).markedSpans; + if (spans) { + for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if ((span.from == null || span.from <= pos.ch) && (span.to == null || span.to >= pos.ch)) { + markers.push(span.marker.parent || span.marker); + } + } + } + return markers; + }, + findMarks: function (from, to, filter) { + from = clipPos(this, from); + to = clipPos(this, to); + var found = [], + lineNo = from.line; + this.iter(from.line, to.line + 1, function (line) { + var spans = line.markedSpans; + if (spans) { + for (var i = 0; i < spans.length; i++) { + var span = spans[i]; + if (!(span.to != null && lineNo == from.line && from.ch >= span.to || span.from == null && lineNo != from.line || span.from != null && lineNo == to.line && span.from >= to.ch) && (!filter || filter(span.marker))) { + found.push(span.marker.parent || span.marker); + } + } + } + ++lineNo; + }); + return found; + }, + getAllMarks: function () { + var markers = []; + this.iter(function (line) { + var sps = line.markedSpans; + if (sps) { + for (var i = 0; i < sps.length; ++i) { + if (sps[i].from != null) { + markers.push(sps[i].marker); + } + } + } + }); + return markers; + }, + posFromIndex: function (off) { + var ch, + lineNo = this.first, + sepSize = this.lineSeparator().length; + this.iter(function (line) { + var sz = line.text.length + sepSize; + if (sz > off) { + ch = off; + return true; + } + off -= sz; + ++lineNo; + }); + return clipPos(this, Pos(lineNo, ch)); + }, + indexFromPos: function (coords) { + coords = clipPos(this, coords); + var index = coords.ch; + if (coords.line < this.first || coords.ch < 0) { + return 0; + } + var sepSize = this.lineSeparator().length; + this.iter(this.first, coords.line, function (line) { + // iter aborts when callback returns a truthy value + index += line.text.length + sepSize; + }); + return index; + }, + copy: function (copyHistory) { + var doc = new Doc(getLines(this, this.first, this.first + this.size), this.modeOption, this.first, this.lineSep, this.direction); + doc.scrollTop = this.scrollTop; + doc.scrollLeft = this.scrollLeft; + doc.sel = this.sel; + doc.extend = false; + if (copyHistory) { + doc.history.undoDepth = this.history.undoDepth; + doc.setHistory(this.getHistory()); + } + return doc; + }, + linkedDoc: function (options) { + if (!options) { + options = {}; + } + var from = this.first, + to = this.first + this.size; + if (options.from != null && options.from > from) { + from = options.from; + } + if (options.to != null && options.to < to) { + to = options.to; + } + var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction); + if (options.sharedHist) { + copy.history = this.history; + } + (this.linked || (this.linked = [])).push({ + doc: copy, + sharedHist: options.sharedHist + }); + copy.linked = [{ + doc: this, + isParent: true, + sharedHist: options.sharedHist + }]; + copySharedMarkers(copy, findSharedMarkers(this)); + return copy; + }, + unlinkDoc: function (other) { + if (other instanceof CodeMirror) { + other = other.doc; + } + if (this.linked) { + for (var i = 0; i < this.linked.length; ++i) { + var link = this.linked[i]; + if (link.doc != other) { + continue; + } + this.linked.splice(i, 1); + other.unlinkDoc(this); + detachSharedMarkers(findSharedMarkers(this)); + break; + } + } + // If the histories were shared, split them again + if (other.history == this.history) { + var splitIds = [other.id]; + linkedDocs(other, function (doc) { + return splitIds.push(doc.id); + }, true); + other.history = new History(null); + other.history.done = copyHistoryArray(this.history.done, splitIds); + other.history.undone = copyHistoryArray(this.history.undone, splitIds); + } + }, + iterLinkedDocs: function (f) { + linkedDocs(this, f); + }, + getMode: function () { + return this.mode; + }, + getEditor: function () { + return this.cm; + }, + splitLines: function (str) { + if (this.lineSep) { + return str.split(this.lineSep); + } + return splitLinesAuto(str); + }, + lineSeparator: function () { + return this.lineSep || "\n"; + }, + setDirection: docMethodOp(function (dir) { + if (dir != "rtl") { + dir = "ltr"; + } + if (dir == this.direction) { + return; + } + this.direction = dir; + this.iter(function (line) { + return line.order = null; + }); + if (this.cm) { + directionChanged(this.cm); + } + }) + }); + + // Public alias. + Doc.prototype.eachLine = Doc.prototype.iter; + + // Kludge to work around strange IE behavior where it'll sometimes + // re-fire a series of drag-related events right after the drop (#1551) + var lastDrop = 0; + function onDrop(e) { + var cm = this; + clearDragCursor(cm); + if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { + return; + } + e_preventDefault(e); + if (ie) { + lastDrop = +new Date(); + } + var pos = posFromMouse(cm, e, true), + files = e.dataTransfer.files; + if (!pos || cm.isReadOnly()) { + return; + } + // Might be a file drop, in which case we simply extract the text + // and insert it. + if (files && files.length && window.FileReader && window.File) { + var n = files.length, + text = Array(n), + read = 0; + var markAsReadAndPasteIfAllFilesAreRead = function () { + if (++read == n) { + operation(cm, function () { + pos = clipPos(cm.doc, pos); + var change = { + from: pos, + to: pos, + text: cm.doc.splitLines(text.filter(function (t) { + return t != null; + }).join(cm.doc.lineSeparator())), + origin: "paste" + }; + makeChange(cm.doc, change); + setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change)))); + })(); + } + }; + var readTextFromFile = function (file, i) { + if (cm.options.allowDropFileTypes && indexOf(cm.options.allowDropFileTypes, file.type) == -1) { + markAsReadAndPasteIfAllFilesAreRead(); + return; + } + var reader = new FileReader(); + reader.onerror = function () { + return markAsReadAndPasteIfAllFilesAreRead(); + }; + reader.onload = function () { + var content = reader.result; + if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) { + markAsReadAndPasteIfAllFilesAreRead(); + return; + } + text[i] = content; + markAsReadAndPasteIfAllFilesAreRead(); + }; + reader.readAsText(file); + }; + for (var i = 0; i < files.length; i++) { + readTextFromFile(files[i], i); + } + } else { + // Normal drop + // Don't do a replace if the drop happened inside of the selected text. + if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) { + cm.state.draggingText(e); + // Ensure the editor is re-focused + setTimeout(function () { + return cm.display.input.focus(); + }, 20); + return; + } + try { + var text$1 = e.dataTransfer.getData("Text"); + if (text$1) { + var selected; + if (cm.state.draggingText && !cm.state.draggingText.copy) { + selected = cm.listSelections(); + } + setSelectionNoUndo(cm.doc, simpleSelection(pos, pos)); + if (selected) { + for (var i$1 = 0; i$1 < selected.length; ++i$1) { + replaceRange(cm.doc, "", selected[i$1].anchor, selected[i$1].head, "drag"); + } + } + cm.replaceSelection(text$1, "around", "paste"); + cm.display.input.focus(); + } + } catch (e$1) {} + } + } + function onDragStart(cm, e) { + if (ie && (!cm.state.draggingText || +new Date() - lastDrop < 100)) { + e_stop(e); + return; + } + if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { + return; + } + e.dataTransfer.setData("Text", cm.getSelection()); + e.dataTransfer.effectAllowed = "copyMove"; + + // Use dummy image instead of default browsers image. + // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there. + if (e.dataTransfer.setDragImage && !safari) { + var img = elt("img", null, null, "position: fixed; left: 0; top: 0;"); + img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; + if (presto) { + img.width = img.height = 1; + cm.display.wrapper.appendChild(img); + // Force a relayout, or Opera won't use our image for some obscure reason + img._top = img.offsetTop; + } + e.dataTransfer.setDragImage(img, 0, 0); + if (presto) { + img.parentNode.removeChild(img); + } + } + } + function onDragOver(cm, e) { + var pos = posFromMouse(cm, e); + if (!pos) { + return; + } + var frag = document.createDocumentFragment(); + drawSelectionCursor(cm, pos, frag); + if (!cm.display.dragCursor) { + cm.display.dragCursor = elt("div", null, "CodeMirror-cursors CodeMirror-dragcursors"); + cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv); + } + removeChildrenAndAdd(cm.display.dragCursor, frag); + } + function clearDragCursor(cm) { + if (cm.display.dragCursor) { + cm.display.lineSpace.removeChild(cm.display.dragCursor); + cm.display.dragCursor = null; + } + } + + // These must be handled carefully, because naively registering a + // handler for each editor will cause the editors to never be + // garbage collected. + + function forEachCodeMirror(f) { + if (!document.getElementsByClassName) { + return; + } + var byClass = document.getElementsByClassName("CodeMirror"), + editors = []; + for (var i = 0; i < byClass.length; i++) { + var cm = byClass[i].CodeMirror; + if (cm) { + editors.push(cm); + } + } + if (editors.length) { + editors[0].operation(function () { + for (var i = 0; i < editors.length; i++) { + f(editors[i]); + } + }); + } + } + var globalsRegistered = false; + function ensureGlobalHandlers() { + if (globalsRegistered) { + return; + } + registerGlobalHandlers(); + globalsRegistered = true; + } + function registerGlobalHandlers() { + // When the window resizes, we need to refresh active editors. + var resizeTimer; + on(window, "resize", function () { + if (resizeTimer == null) { + resizeTimer = setTimeout(function () { + resizeTimer = null; + forEachCodeMirror(onResize); + }, 100); + } + }); + // When the window loses focus, we want to show the editor as blurred + on(window, "blur", function () { + return forEachCodeMirror(onBlur); + }); + } + // Called when the window resizes + function onResize(cm) { + var d = cm.display; + // Might be a text scaling operation, clear size caches. + d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; + d.scrollbarsClipped = false; + cm.setSize(); + } + var keyNames = { + 3: "Pause", + 8: "Backspace", + 9: "Tab", + 13: "Enter", + 16: "Shift", + 17: "Ctrl", + 18: "Alt", + 19: "Pause", + 20: "CapsLock", + 27: "Esc", + 32: "Space", + 33: "PageUp", + 34: "PageDown", + 35: "End", + 36: "Home", + 37: "Left", + 38: "Up", + 39: "Right", + 40: "Down", + 44: "PrintScrn", + 45: "Insert", + 46: "Delete", + 59: ";", + 61: "=", + 91: "Mod", + 92: "Mod", + 93: "Mod", + 106: "*", + 107: "=", + 109: "-", + 110: ".", + 111: "/", + 145: "ScrollLock", + 173: "-", + 186: ";", + 187: "=", + 188: ",", + 189: "-", + 190: ".", + 191: "/", + 192: "`", + 219: "[", + 220: "\\", + 221: "]", + 222: "'", + 224: "Mod", + 63232: "Up", + 63233: "Down", + 63234: "Left", + 63235: "Right", + 63272: "Delete", + 63273: "Home", + 63275: "End", + 63276: "PageUp", + 63277: "PageDown", + 63302: "Insert" + }; + + // Number keys + for (var i = 0; i < 10; i++) { + keyNames[i + 48] = keyNames[i + 96] = String(i); + } + // Alphabetic keys + for (var i$1 = 65; i$1 <= 90; i$1++) { + keyNames[i$1] = String.fromCharCode(i$1); + } + // Function keys + for (var i$2 = 1; i$2 <= 12; i$2++) { + keyNames[i$2 + 111] = keyNames[i$2 + 63235] = "F" + i$2; + } + var keyMap = {}; + keyMap.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" + }; + // Note that the save and find-related commands aren't defined by + // default. User code or addons can define them. Unknown commands + // are simply ignored. + keyMap.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" + }; + // Very basic readline/emacs-style bindings, which are standard on Mac. + keyMap.emacsy = { + "Ctrl-F": "goCharRight", + "Ctrl-B": "goCharLeft", + "Ctrl-P": "goLineUp", + "Ctrl-N": "goLineDown", + "Ctrl-A": "goLineStart", + "Ctrl-E": "goLineEnd", + "Ctrl-V": "goPageDown", + "Shift-Ctrl-V": "goPageUp", + "Ctrl-D": "delCharAfter", + "Ctrl-H": "delCharBefore", + "Alt-Backspace": "delWordBefore", + "Ctrl-K": "killLine", + "Ctrl-T": "transposeChars", + "Ctrl-O": "openLine" + }; + keyMap.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"] + }; + keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; + + // KEYMAP DISPATCH + + function normalizeKeyName(name) { + var parts = name.split(/-(?!$)/); + name = parts[parts.length - 1]; + var alt, ctrl, shift, cmd; + for (var i = 0; i < parts.length - 1; i++) { + var mod = parts[i]; + if (/^(cmd|meta|m)$/i.test(mod)) { + cmd = true; + } else if (/^a(lt)?$/i.test(mod)) { + alt = true; + } else if (/^(c|ctrl|control)$/i.test(mod)) { + ctrl = true; + } else if (/^s(hift)?$/i.test(mod)) { + shift = true; + } else { + throw new Error("Unrecognized modifier name: " + mod); + } + } + if (alt) { + name = "Alt-" + name; + } + if (ctrl) { + name = "Ctrl-" + name; + } + if (cmd) { + name = "Cmd-" + name; + } + if (shift) { + name = "Shift-" + name; + } + return name; + } + + // This is a kludge to keep keymaps mostly working as raw objects + // (backwards compatibility) while at the same time support features + // like normalization and multi-stroke key bindings. It compiles a + // new normalized keymap, and then updates the old object to reflect + // this. + function normalizeKeyMap(keymap) { + var copy = {}; + for (var keyname in keymap) { + if (keymap.hasOwnProperty(keyname)) { + var value = keymap[keyname]; + if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { + continue; + } + if (value == "...") { + delete keymap[keyname]; + continue; + } + var keys = map(keyname.split(" "), normalizeKeyName); + for (var i = 0; i < keys.length; i++) { + var val = void 0, + name = void 0; + if (i == keys.length - 1) { + name = keys.join(" "); + val = value; + } else { + name = keys.slice(0, i + 1).join(" "); + val = "..."; + } + var prev = copy[name]; + if (!prev) { + copy[name] = val; + } else if (prev != val) { + throw new Error("Inconsistent bindings for " + name); + } + } + delete keymap[keyname]; + } + } + for (var prop in copy) { + keymap[prop] = copy[prop]; + } + return keymap; + } + function lookupKey(key, map, handle, context) { + map = getKeyMap(map); + var found = map.call ? map.call(key, context) : map[key]; + if (found === false) { + return "nothing"; + } + if (found === "...") { + return "multi"; + } + if (found != null && handle(found)) { + return "handled"; + } + if (map.fallthrough) { + if (Object.prototype.toString.call(map.fallthrough) != "[object Array]") { + return lookupKey(key, map.fallthrough, handle, context); + } + for (var i = 0; i < map.fallthrough.length; i++) { + var result = lookupKey(key, map.fallthrough[i], handle, context); + if (result) { + return result; + } + } + } + } + + // Modifier key presses don't count as 'real' key presses for the + // purpose of keymap fallthrough. + function isModifierKey(value) { + var name = typeof value == "string" ? value : keyNames[value.keyCode]; + return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"; + } + function addModifierNames(name, event, noShift) { + var base = name; + if (event.altKey && base != "Alt") { + name = "Alt-" + name; + } + if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") { + name = "Ctrl-" + name; + } + if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Mod") { + name = "Cmd-" + name; + } + if (!noShift && event.shiftKey && base != "Shift") { + name = "Shift-" + name; + } + return name; + } + + // Look up the name of a key as indicated by an event object. + function keyName(event, noShift) { + if (presto && event.keyCode == 34 && event["char"]) { + return false; + } + var name = keyNames[event.keyCode]; + if (name == null || event.altGraphKey) { + return false; + } + // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause, + // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+) + if (event.keyCode == 3 && event.code) { + name = event.code; + } + return addModifierNames(name, event, noShift); + } + function getKeyMap(val) { + return typeof val == "string" ? keyMap[val] : val; + } + + // Helper for deleting text near the selection(s), used to implement + // backspace, delete, and similar functionality. + function deleteNearSelection(cm, compute) { + var ranges = cm.doc.sel.ranges, + kill = []; + // Build up a set of ranges to kill first, merging overlapping + // ranges. + for (var i = 0; i < ranges.length; i++) { + var toKill = compute(ranges[i]); + while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) { + var replaced = kill.pop(); + if (cmp(replaced.from, toKill.from) < 0) { + toKill.from = replaced.from; + break; + } + } + kill.push(toKill); + } + // Next, remove those actual ranges. + runInOp(cm, function () { + for (var i = kill.length - 1; i >= 0; i--) { + replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete"); + } + ensureCursorVisible(cm); + }); + } + function moveCharLogically(line, ch, dir) { + var target = skipExtendingChars(line.text, ch + dir, dir); + return target < 0 || target > line.text.length ? null : target; + } + function moveLogically(line, start, dir) { + var ch = moveCharLogically(line, start.ch, dir); + return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before"); + } + function endOfLine(visually, cm, lineObj, lineNo, dir) { + if (visually) { + if (cm.doc.direction == "rtl") { + dir = -dir; + } + var order = getOrder(lineObj, cm.doc.direction); + if (order) { + var part = dir < 0 ? lst(order) : order[0]; + var moveInStorageOrder = dir < 0 == (part.level == 1); + var sticky = moveInStorageOrder ? "after" : "before"; + var ch; + // With a wrapped rtl chunk (possibly spanning multiple bidi parts), + // it could be that the last bidi part is not on the last visual line, + // since visual lines contain content order-consecutive chunks. + // Thus, in rtl, we are looking for the first (content-order) character + // in the rtl chunk that is on the last line (that is, the same line + // as the last (content-order) character). + if (part.level > 0 || cm.doc.direction == "rtl") { + var prep = prepareMeasureForLine(cm, lineObj); + ch = dir < 0 ? lineObj.text.length - 1 : 0; + var targetTop = measureCharPrepared(cm, prep, ch).top; + ch = findFirst(function (ch) { + return measureCharPrepared(cm, prep, ch).top == targetTop; + }, dir < 0 == (part.level == 1) ? part.from : part.to - 1, ch); + if (sticky == "before") { + ch = moveCharLogically(lineObj, ch, 1); + } + } else { + ch = dir < 0 ? part.to : part.from; + } + return new Pos(lineNo, ch, sticky); + } + } + return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after"); + } + function moveVisually(cm, line, start, dir) { + var bidi = getOrder(line, cm.doc.direction); + if (!bidi) { + return moveLogically(line, start, dir); + } + if (start.ch >= line.text.length) { + start.ch = line.text.length; + start.sticky = "before"; + } else if (start.ch <= 0) { + start.ch = 0; + start.sticky = "after"; + } + var partPos = getBidiPartAt(bidi, start.ch, start.sticky), + part = bidi[partPos]; + if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) { + // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines, + // nothing interesting happens. + return moveLogically(line, start, dir); + } + var mv = function (pos, dir) { + return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); + }; + var prep; + var getWrappedLineExtent = function (ch) { + if (!cm.options.lineWrapping) { + return { + begin: 0, + end: line.text.length + }; + } + prep = prep || prepareMeasureForLine(cm, line); + return wrappedLineExtentChar(cm, line, prep, ch); + }; + var wrappedLineExtent = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch); + if (cm.doc.direction == "rtl" || part.level == 1) { + var moveInStorageOrder = part.level == 1 == dir < 0; + var ch = mv(start, moveInStorageOrder ? 1 : -1); + if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) { + // Case 2: We move within an rtl part or in an rtl editor on the same visual line + var sticky = moveInStorageOrder ? "before" : "after"; + return new Pos(start.line, ch, sticky); + } + } + + // Case 3: Could not move within this bidi part in this visual line, so leave + // the current bidi part + + var searchInVisualLine = function (partPos, dir, wrappedLineExtent) { + var getRes = function (ch, moveInStorageOrder) { + return moveInStorageOrder ? new Pos(start.line, mv(ch, 1), "before") : new Pos(start.line, ch, "after"); + }; + for (; partPos >= 0 && partPos < bidi.length; partPos += dir) { + var part = bidi[partPos]; + var moveInStorageOrder = dir > 0 == (part.level != 1); + var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1); + if (part.from <= ch && ch < part.to) { + return getRes(ch, moveInStorageOrder); + } + ch = moveInStorageOrder ? part.from : mv(part.to, -1); + if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { + return getRes(ch, moveInStorageOrder); + } + } + }; + + // Case 3a: Look for other bidi parts on the same visual line + var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent); + if (res) { + return res; + } + + // Case 3b: Look for other bidi parts on the next visual line + var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1); + if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) { + res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh)); + if (res) { + return res; + } + } + + // Case 4: Nowhere to move + return null; + } + + // Commands are parameter-less actions that can be performed on an + // editor, mostly used for keybindings. + var commands = { + selectAll: selectAll, + singleSelection: function (cm) { + return cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll); + }, + killLine: function (cm) { + return deleteNearSelection(cm, function (range) { + if (range.empty()) { + var len = getLine(cm.doc, range.head.line).text.length; + if (range.head.ch == len && range.head.line < cm.lastLine()) { + return { + from: range.head, + to: Pos(range.head.line + 1, 0) + }; + } else { + return { + from: range.head, + to: Pos(range.head.line, len) + }; + } + } else { + return { + from: range.from(), + to: range.to() + }; + } + }); + }, + deleteLine: function (cm) { + return deleteNearSelection(cm, function (range) { + return { + from: Pos(range.from().line, 0), + to: clipPos(cm.doc, Pos(range.to().line + 1, 0)) + }; + }); + }, + delLineLeft: function (cm) { + return deleteNearSelection(cm, function (range) { + return { + from: Pos(range.from().line, 0), + to: range.from() + }; + }); + }, + delWrappedLineLeft: function (cm) { + return deleteNearSelection(cm, function (range) { + var top = cm.charCoords(range.head, "div").top + 5; + var leftPos = cm.coordsChar({ + left: 0, + top: top + }, "div"); + return { + from: leftPos, + to: range.from() + }; + }); + }, + delWrappedLineRight: function (cm) { + return deleteNearSelection(cm, function (range) { + var top = cm.charCoords(range.head, "div").top + 5; + var rightPos = cm.coordsChar({ + left: cm.display.lineDiv.offsetWidth + 100, + top: top + }, "div"); + return { + from: range.from(), + to: rightPos + }; + }); + }, + undo: function (cm) { + return cm.undo(); + }, + redo: function (cm) { + return cm.redo(); + }, + undoSelection: function (cm) { + return cm.undoSelection(); + }, + redoSelection: function (cm) { + return cm.redoSelection(); + }, + goDocStart: function (cm) { + return cm.extendSelection(Pos(cm.firstLine(), 0)); + }, + goDocEnd: function (cm) { + return cm.extendSelection(Pos(cm.lastLine())); + }, + goLineStart: function (cm) { + return cm.extendSelectionsBy(function (range) { + return lineStart(cm, range.head.line); + }, { + origin: "+move", + bias: 1 + }); + }, + goLineStartSmart: function (cm) { + return cm.extendSelectionsBy(function (range) { + return lineStartSmart(cm, range.head); + }, { + origin: "+move", + bias: 1 + }); + }, + goLineEnd: function (cm) { + return cm.extendSelectionsBy(function (range) { + return lineEnd(cm, range.head.line); + }, { + origin: "+move", + bias: -1 + }); + }, + goLineRight: function (cm) { + return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + return cm.coordsChar({ + left: cm.display.lineDiv.offsetWidth + 100, + top: top + }, "div"); + }, sel_move); + }, + goLineLeft: function (cm) { + return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + return cm.coordsChar({ + left: 0, + top: top + }, "div"); + }, sel_move); + }, + goLineLeftSmart: function (cm) { + return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + var pos = cm.coordsChar({ + left: 0, + top: top + }, "div"); + if (pos.ch < cm.getLine(pos.line).search(/\S/)) { + return lineStartSmart(cm, range.head); + } + return pos; + }, sel_move); + }, + goLineUp: function (cm) { + return cm.moveV(-1, "line"); + }, + goLineDown: function (cm) { + return cm.moveV(1, "line"); + }, + goPageUp: function (cm) { + return cm.moveV(-1, "page"); + }, + goPageDown: function (cm) { + return cm.moveV(1, "page"); + }, + goCharLeft: function (cm) { + return cm.moveH(-1, "char"); + }, + goCharRight: function (cm) { + return cm.moveH(1, "char"); + }, + goColumnLeft: function (cm) { + return cm.moveH(-1, "column"); + }, + goColumnRight: function (cm) { + return cm.moveH(1, "column"); + }, + goWordLeft: function (cm) { + return cm.moveH(-1, "word"); + }, + goGroupRight: function (cm) { + return cm.moveH(1, "group"); + }, + goGroupLeft: function (cm) { + return cm.moveH(-1, "group"); + }, + goWordRight: function (cm) { + return cm.moveH(1, "word"); + }, + delCharBefore: function (cm) { + return cm.deleteH(-1, "codepoint"); + }, + delCharAfter: function (cm) { + return cm.deleteH(1, "char"); + }, + delWordBefore: function (cm) { + return cm.deleteH(-1, "word"); + }, + delWordAfter: function (cm) { + return cm.deleteH(1, "word"); + }, + delGroupBefore: function (cm) { + return cm.deleteH(-1, "group"); + }, + delGroupAfter: function (cm) { + return cm.deleteH(1, "group"); + }, + indentAuto: function (cm) { + return cm.indentSelection("smart"); + }, + indentMore: function (cm) { + return cm.indentSelection("add"); + }, + indentLess: function (cm) { + return cm.indentSelection("subtract"); + }, + insertTab: function (cm) { + return cm.replaceSelection("\t"); + }, + insertSoftTab: function (cm) { + var spaces = [], + ranges = cm.listSelections(), + tabSize = cm.options.tabSize; + for (var i = 0; i < ranges.length; i++) { + var pos = ranges[i].from(); + var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize); + spaces.push(spaceStr(tabSize - col % tabSize)); + } + cm.replaceSelections(spaces); + }, + defaultTab: function (cm) { + if (cm.somethingSelected()) { + cm.indentSelection("add"); + } else { + cm.execCommand("insertTab"); + } + }, + // Swap the two chars left and right of each selection's head. + // Move cursor behind the two swapped characters afterwards. + // + // Doesn't consider line feeds a character. + // Doesn't scan more than one line above to find a character. + // Doesn't do anything on an empty line. + // Doesn't do anything with non-empty selections. + transposeChars: function (cm) { + return runInOp(cm, function () { + var ranges = cm.listSelections(), + newSel = []; + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) { + continue; + } + var cur = ranges[i].head, + line = getLine(cm.doc, cur.line).text; + if (line) { + if (cur.ch == line.length) { + cur = new Pos(cur.line, cur.ch - 1); + } + if (cur.ch > 0) { + cur = new Pos(cur.line, cur.ch + 1); + cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2), Pos(cur.line, cur.ch - 2), cur, "+transpose"); + } else if (cur.line > cm.doc.first) { + var prev = getLine(cm.doc, cur.line - 1).text; + if (prev) { + cur = new Pos(cur.line, 1); + cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() + prev.charAt(prev.length - 1), Pos(cur.line - 1, prev.length - 1), cur, "+transpose"); + } + } + } + newSel.push(new Range(cur, cur)); + } + cm.setSelections(newSel); + }); + }, + newlineAndIndent: function (cm) { + return runInOp(cm, function () { + var sels = cm.listSelections(); + for (var i = sels.length - 1; i >= 0; i--) { + cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, "+input"); + } + sels = cm.listSelections(); + for (var i$1 = 0; i$1 < sels.length; i$1++) { + cm.indentLine(sels[i$1].from().line, null, true); + } + ensureCursorVisible(cm); + }); + }, + openLine: function (cm) { + return cm.replaceSelection("\n", "start"); + }, + toggleOverwrite: function (cm) { + return cm.toggleOverwrite(); + } + }; + function lineStart(cm, lineN) { + var line = getLine(cm.doc, lineN); + var visual = visualLine(line); + if (visual != line) { + lineN = lineNo(visual); + } + return endOfLine(true, cm, visual, lineN, 1); + } + function lineEnd(cm, lineN) { + var line = getLine(cm.doc, lineN); + var visual = visualLineEnd(line); + if (visual != line) { + lineN = lineNo(visual); + } + return endOfLine(true, cm, line, lineN, -1); + } + function lineStartSmart(cm, pos) { + var start = lineStart(cm, pos.line); + var line = getLine(cm.doc, start.line); + var order = getOrder(line, cm.doc.direction); + if (!order || order[0].level == 0) { + var firstNonWS = Math.max(start.ch, line.text.search(/\S/)); + var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch; + return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky); + } + return start; + } + + // Run a handler that was bound to a key. + function doHandleBinding(cm, bound, dropShift) { + if (typeof bound == "string") { + bound = commands[bound]; + if (!bound) { + return false; + } + } + // Ensure previous input has been read, so that the handler sees a + // consistent view of the document + cm.display.input.ensurePolled(); + var prevShift = cm.display.shift, + done = false; + try { + if (cm.isReadOnly()) { + cm.state.suppressEdits = true; + } + if (dropShift) { + cm.display.shift = false; + } + done = bound(cm) != Pass; + } finally { + cm.display.shift = prevShift; + cm.state.suppressEdits = false; + } + return done; + } + function lookupKeyForEditor(cm, name, handle) { + for (var i = 0; i < cm.state.keyMaps.length; i++) { + var result = lookupKey(name, cm.state.keyMaps[i], handle, cm); + if (result) { + return result; + } + } + return cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm) || lookupKey(name, cm.options.keyMap, handle, cm); + } + + // Note that, despite the name, this function is also used to check + // for bound mouse clicks. + + var stopSeq = new Delayed(); + function dispatchKey(cm, name, e, handle) { + var seq = cm.state.keySeq; + if (seq) { + if (isModifierKey(name)) { + return "handled"; + } + if (/\'$/.test(name)) { + cm.state.keySeq = null; + } else { + stopSeq.set(50, function () { + if (cm.state.keySeq == seq) { + cm.state.keySeq = null; + cm.display.input.reset(); + } + }); + } + if (dispatchKeyInner(cm, seq + " " + name, e, handle)) { + return true; + } + } + return dispatchKeyInner(cm, name, e, handle); + } + function dispatchKeyInner(cm, name, e, handle) { + var result = lookupKeyForEditor(cm, name, handle); + if (result == "multi") { + cm.state.keySeq = name; + } + if (result == "handled") { + signalLater(cm, "keyHandled", cm, name, e); + } + if (result == "handled" || result == "multi") { + e_preventDefault(e); + restartBlink(cm); + } + return !!result; + } + + // Handle a key from the keydown event. + function handleKeyBinding(cm, e) { + var name = keyName(e, true); + if (!name) { + return false; + } + if (e.shiftKey && !cm.state.keySeq) { + // First try to resolve full name (including 'Shift-'). Failing + // that, see if there is a cursor-motion command (starting with + // 'go') bound to the keyname without 'Shift-'. + return dispatchKey(cm, "Shift-" + name, e, function (b) { + return doHandleBinding(cm, b, true); + }) || dispatchKey(cm, name, e, function (b) { + if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion) { + return doHandleBinding(cm, b); + } + }); + } else { + return dispatchKey(cm, name, e, function (b) { + return doHandleBinding(cm, b); + }); + } + } + + // Handle a key from the keypress event + function handleCharBinding(cm, e, ch) { + return dispatchKey(cm, "'" + ch + "'", e, function (b) { + return doHandleBinding(cm, b, true); + }); + } + var lastStoppedKey = null; + function onKeyDown(e) { + var cm = this; + if (e.target && e.target != cm.display.input.getField()) { + return; + } + cm.curOp.focus = activeElt(); + if (signalDOMEvent(cm, e)) { + return; + } + // IE does strange things with escape. + if (ie && ie_version < 11 && e.keyCode == 27) { + e.returnValue = false; + } + var code = e.keyCode; + cm.display.shift = code == 16 || e.shiftKey; + var handled = handleKeyBinding(cm, e); + if (presto) { + lastStoppedKey = handled ? code : null; + // Opera has no cut event... we try to at least catch the key combo + if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey)) { + cm.replaceSelection("", null, "cut"); + } + } + if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand) { + document.execCommand("cut"); + } + + // Turn mouse into crosshair when Alt is held on Mac. + if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className)) { + showCrossHair(cm); + } + } + function showCrossHair(cm) { + var lineDiv = cm.display.lineDiv; + addClass(lineDiv, "CodeMirror-crosshair"); + function up(e) { + if (e.keyCode == 18 || !e.altKey) { + rmClass(lineDiv, "CodeMirror-crosshair"); + off(document, "keyup", up); + off(document, "mouseover", up); + } + } + on(document, "keyup", up); + on(document, "mouseover", up); + } + function onKeyUp(e) { + if (e.keyCode == 16) { + this.doc.sel.shift = false; + } + signalDOMEvent(this, e); + } + function onKeyPress(e) { + var cm = this; + if (e.target && e.target != cm.display.input.getField()) { + return; + } + if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { + return; + } + var keyCode = e.keyCode, + charCode = e.charCode; + if (presto && keyCode == lastStoppedKey) { + lastStoppedKey = null; + e_preventDefault(e); + return; + } + if (presto && (!e.which || e.which < 10) && handleKeyBinding(cm, e)) { + return; + } + var ch = String.fromCharCode(charCode == null ? keyCode : charCode); + // Some browsers fire keypress events for backspace + if (ch == "\x08") { + return; + } + if (handleCharBinding(cm, e, ch)) { + return; + } + cm.display.input.onKeyPress(e); + } + var DOUBLECLICK_DELAY = 400; + var PastClick = function (time, pos, button) { + this.time = time; + this.pos = pos; + this.button = button; + }; + PastClick.prototype.compare = function (time, pos, button) { + return this.time + DOUBLECLICK_DELAY > time && cmp(pos, this.pos) == 0 && button == this.button; + }; + var lastClick, lastDoubleClick; + function clickRepeat(pos, button) { + var now = +new Date(); + if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) { + lastClick = lastDoubleClick = null; + return "triple"; + } else if (lastClick && lastClick.compare(now, pos, button)) { + lastDoubleClick = new PastClick(now, pos, button); + lastClick = null; + return "double"; + } else { + lastClick = new PastClick(now, pos, button); + lastDoubleClick = null; + return "single"; + } + } + + // A mouse down can be a single click, double click, triple click, + // start of selection drag, start of text drag, new cursor + // (ctrl-click), rectangle drag (alt-drag), or xwin + // middle-click-paste. Or it might be a click on something we should + // not interfere with, such as a scrollbar or widget. + function onMouseDown(e) { + var cm = this, + display = cm.display; + if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { + return; + } + display.input.ensurePolled(); + display.shift = e.shiftKey; + if (eventInWidget(display, e)) { + if (!webkit) { + // Briefly turn off draggability, to allow widgets to do + // normal dragging things. + display.scroller.draggable = false; + setTimeout(function () { + return display.scroller.draggable = true; + }, 100); + } + return; + } + if (clickInGutter(cm, e)) { + return; + } + var pos = posFromMouse(cm, e), + button = e_button(e), + repeat = pos ? clickRepeat(pos, button) : "single"; + window.focus(); + + // #3261: make sure, that we're not starting a second selection + if (button == 1 && cm.state.selectingText) { + cm.state.selectingText(e); + } + if (pos && handleMappedButton(cm, button, pos, repeat, e)) { + return; + } + if (button == 1) { + if (pos) { + leftButtonDown(cm, pos, repeat, e); + } else if (e_target(e) == display.scroller) { + e_preventDefault(e); + } + } else if (button == 2) { + if (pos) { + extendSelection(cm.doc, pos); + } + setTimeout(function () { + return display.input.focus(); + }, 20); + } else if (button == 3) { + if (captureRightClick) { + cm.display.input.onContextMenu(e); + } else { + delayBlurEvent(cm); + } + } + } + function handleMappedButton(cm, button, pos, repeat, event) { + var name = "Click"; + if (repeat == "double") { + name = "Double" + name; + } else if (repeat == "triple") { + name = "Triple" + name; + } + name = (button == 1 ? "Left" : button == 2 ? "Middle" : "Right") + name; + return dispatchKey(cm, addModifierNames(name, event), event, function (bound) { + if (typeof bound == "string") { + bound = commands[bound]; + } + if (!bound) { + return false; + } + var done = false; + try { + if (cm.isReadOnly()) { + cm.state.suppressEdits = true; + } + done = bound(cm, pos) != Pass; + } finally { + cm.state.suppressEdits = false; + } + return done; + }); + } + function configureMouse(cm, repeat, event) { + var option = cm.getOption("configureMouse"); + var value = option ? option(cm, repeat, event) : {}; + if (value.unit == null) { + var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey; + value.unit = rect ? "rectangle" : repeat == "single" ? "char" : repeat == "double" ? "word" : "line"; + } + if (value.extend == null || cm.doc.extend) { + value.extend = cm.doc.extend || event.shiftKey; + } + if (value.addNew == null) { + value.addNew = mac ? event.metaKey : event.ctrlKey; + } + if (value.moveOnDrag == null) { + value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); + } + return value; + } + function leftButtonDown(cm, pos, repeat, event) { + if (ie) { + setTimeout(bind(ensureFocus, cm), 0); + } else { + cm.curOp.focus = activeElt(); + } + var behavior = configureMouse(cm, repeat, event); + var sel = cm.doc.sel, + contained; + if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() && repeat == "single" && (contained = sel.contains(pos)) > -1 && (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) && (cmp(contained.to(), pos) > 0 || pos.xRel < 0)) { + leftButtonStartDrag(cm, event, pos, behavior); + } else { + leftButtonSelect(cm, event, pos, behavior); + } + } + + // Start a text drag. When it ends, see if any dragging actually + // happen, and treat as a click if it didn't. + function leftButtonStartDrag(cm, event, pos, behavior) { + var display = cm.display, + moved = false; + var dragEnd = operation(cm, function (e) { + if (webkit) { + display.scroller.draggable = false; + } + cm.state.draggingText = false; + if (cm.state.delayingBlurEvent) { + if (cm.hasFocus()) { + cm.state.delayingBlurEvent = false; + } else { + delayBlurEvent(cm); + } + } + off(display.wrapper.ownerDocument, "mouseup", dragEnd); + off(display.wrapper.ownerDocument, "mousemove", mouseMove); + off(display.scroller, "dragstart", dragStart); + off(display.scroller, "drop", dragEnd); + if (!moved) { + e_preventDefault(e); + if (!behavior.addNew) { + extendSelection(cm.doc, pos, null, null, behavior.extend); + } + // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081) + if (webkit && !safari || ie && ie_version == 9) { + setTimeout(function () { + display.wrapper.ownerDocument.body.focus({ + preventScroll: true + }); + display.input.focus(); + }, 20); + } else { + display.input.focus(); + } + } + }); + var mouseMove = function (e2) { + moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10; + }; + var dragStart = function () { + return moved = true; + }; + // Let the drag handler handle this. + if (webkit) { + display.scroller.draggable = true; + } + cm.state.draggingText = dragEnd; + dragEnd.copy = !behavior.moveOnDrag; + on(display.wrapper.ownerDocument, "mouseup", dragEnd); + on(display.wrapper.ownerDocument, "mousemove", mouseMove); + on(display.scroller, "dragstart", dragStart); + on(display.scroller, "drop", dragEnd); + cm.state.delayingBlurEvent = true; + setTimeout(function () { + return display.input.focus(); + }, 20); + // IE's approach to draggable + if (display.scroller.dragDrop) { + display.scroller.dragDrop(); + } + } + function rangeForUnit(cm, pos, unit) { + if (unit == "char") { + return new Range(pos, pos); + } + if (unit == "word") { + return cm.findWordAt(pos); + } + if (unit == "line") { + return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); + } + var result = unit(cm, pos); + return new Range(result.from, result.to); + } + + // Normal selection, as opposed to text dragging. + function leftButtonSelect(cm, event, start, behavior) { + if (ie) { + delayBlurEvent(cm); + } + var display = cm.display, + doc = cm.doc; + e_preventDefault(event); + var ourRange, + ourIndex, + startSel = doc.sel, + ranges = startSel.ranges; + if (behavior.addNew && !behavior.extend) { + ourIndex = doc.sel.contains(start); + if (ourIndex > -1) { + ourRange = ranges[ourIndex]; + } else { + ourRange = new Range(start, start); + } + } else { + ourRange = doc.sel.primary(); + ourIndex = doc.sel.primIndex; + } + if (behavior.unit == "rectangle") { + if (!behavior.addNew) { + ourRange = new Range(start, start); + } + start = posFromMouse(cm, event, true, true); + ourIndex = -1; + } else { + var range = rangeForUnit(cm, start, behavior.unit); + if (behavior.extend) { + ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); + } else { + ourRange = range; + } + } + if (!behavior.addNew) { + ourIndex = 0; + setSelection(doc, new Selection([ourRange], 0), sel_mouse); + startSel = doc.sel; + } else if (ourIndex == -1) { + ourIndex = ranges.length; + setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex), { + scroll: false, + origin: "*mouse" + }); + } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == "char" && !behavior.extend) { + setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0), { + scroll: false, + origin: "*mouse" + }); + startSel = doc.sel; + } else { + replaceOneSelection(doc, ourIndex, ourRange, sel_mouse); + } + var lastPos = start; + function extendTo(pos) { + if (cmp(lastPos, pos) == 0) { + return; + } + lastPos = pos; + if (behavior.unit == "rectangle") { + var ranges = [], + tabSize = cm.options.tabSize; + var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize); + var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize); + var left = Math.min(startCol, posCol), + right = Math.max(startCol, posCol); + for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line)); line <= end; line++) { + var text = getLine(doc, line).text, + leftPos = findColumn(text, left, tabSize); + if (left == right) { + ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); + } else if (text.length > leftPos) { + ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); + } + } + if (!ranges.length) { + ranges.push(new Range(start, start)); + } + setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex), { + origin: "*mouse", + scroll: false + }); + cm.scrollIntoView(pos); + } else { + var oldRange = ourRange; + var range = rangeForUnit(cm, pos, behavior.unit); + var anchor = oldRange.anchor, + head; + if (cmp(range.anchor, anchor) > 0) { + head = range.head; + anchor = minPos(oldRange.from(), range.anchor); + } else { + head = range.anchor; + anchor = maxPos(oldRange.to(), range.head); + } + var ranges$1 = startSel.ranges.slice(0); + ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head)); + setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse); + } + } + var editorSize = display.wrapper.getBoundingClientRect(); + // Used to ensure timeout re-tries don't fire when another extend + // happened in the meantime (clearTimeout isn't reliable -- at + // least on Chrome, the timeouts still happen even when cleared, + // if the clear happens after their scheduled firing time). + var counter = 0; + function extend(e) { + var curCount = ++counter; + var cur = posFromMouse(cm, e, true, behavior.unit == "rectangle"); + if (!cur) { + return; + } + if (cmp(cur, lastPos) != 0) { + cm.curOp.focus = activeElt(); + extendTo(cur); + var visible = visibleLines(display, doc); + if (cur.line >= visible.to || cur.line < visible.from) { + setTimeout(operation(cm, function () { + if (counter == curCount) { + extend(e); + } + }), 150); + } + } else { + var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0; + if (outside) { + setTimeout(operation(cm, function () { + if (counter != curCount) { + return; + } + display.scroller.scrollTop += outside; + extend(e); + }), 50); + } + } + } + function done(e) { + cm.state.selectingText = false; + counter = Infinity; + // If e is null or undefined we interpret this as someone trying + // to explicitly cancel the selection rather than the user + // letting go of the mouse button. + if (e) { + e_preventDefault(e); + display.input.focus(); + } + off(display.wrapper.ownerDocument, "mousemove", move); + off(display.wrapper.ownerDocument, "mouseup", up); + doc.history.lastSelOrigin = null; + } + var move = operation(cm, function (e) { + if (e.buttons === 0 || !e_button(e)) { + done(e); + } else { + extend(e); + } + }); + var up = operation(cm, done); + cm.state.selectingText = up; + on(display.wrapper.ownerDocument, "mousemove", move); + on(display.wrapper.ownerDocument, "mouseup", up); + } + + // Used when mouse-selecting to adjust the anchor to the proper side + // of a bidi jump depending on the visual position of the head. + function bidiSimplify(cm, range) { + var anchor = range.anchor; + var head = range.head; + var anchorLine = getLine(cm.doc, anchor.line); + if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { + return range; + } + var order = getOrder(anchorLine); + if (!order) { + return range; + } + var index = getBidiPartAt(order, anchor.ch, anchor.sticky), + part = order[index]; + if (part.from != anchor.ch && part.to != anchor.ch) { + return range; + } + var boundary = index + (part.from == anchor.ch == (part.level != 1) ? 0 : 1); + if (boundary == 0 || boundary == order.length) { + return range; + } + + // Compute the relative visual position of the head compared to the + // anchor (<0 is to the left, >0 to the right) + var leftSide; + if (head.line != anchor.line) { + leftSide = (head.line - anchor.line) * (cm.doc.direction == "ltr" ? 1 : -1) > 0; + } else { + var headIndex = getBidiPartAt(order, head.ch, head.sticky); + var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1); + if (headIndex == boundary - 1 || headIndex == boundary) { + leftSide = dir < 0; + } else { + leftSide = dir > 0; + } + } + var usePart = order[boundary + (leftSide ? -1 : 0)]; + var from = leftSide == (usePart.level == 1); + var ch = from ? usePart.from : usePart.to, + sticky = from ? "after" : "before"; + return anchor.ch == ch && anchor.sticky == sticky ? range : new Range(new Pos(anchor.line, ch, sticky), head); + } + + // Determines whether an event happened in the gutter, and fires the + // handlers for the corresponding event. + function gutterEvent(cm, e, type, prevent) { + var mX, mY; + if (e.touches) { + mX = e.touches[0].clientX; + mY = e.touches[0].clientY; + } else { + try { + mX = e.clientX; + mY = e.clientY; + } catch (e$1) { + return false; + } + } + if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { + return false; + } + if (prevent) { + e_preventDefault(e); + } + var display = cm.display; + var lineBox = display.lineDiv.getBoundingClientRect(); + if (mY > lineBox.bottom || !hasHandler(cm, type)) { + return e_defaultPrevented(e); + } + mY -= lineBox.top - display.viewOffset; + for (var i = 0; i < cm.display.gutterSpecs.length; ++i) { + var g = display.gutters.childNodes[i]; + if (g && g.getBoundingClientRect().right >= mX) { + var line = lineAtHeight(cm.doc, mY); + var gutter = cm.display.gutterSpecs[i]; + signal(cm, type, cm, line, gutter.className, e); + return e_defaultPrevented(e); + } + } + } + function clickInGutter(cm, e) { + return gutterEvent(cm, e, "gutterClick", true); + } + + // CONTEXT MENU HANDLING + + // To make the context menu work, we need to briefly unhide the + // textarea (making it as unobtrusive as possible) to let the + // right-click take effect on it. + function onContextMenu(cm, e) { + if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { + return; + } + if (signalDOMEvent(cm, e, "contextmenu")) { + return; + } + if (!captureRightClick) { + cm.display.input.onContextMenu(e); + } + } + function contextMenuInGutter(cm, e) { + if (!hasHandler(cm, "gutterContextMenu")) { + return false; + } + return gutterEvent(cm, e, "gutterContextMenu", false); + } + function themeChanged(cm) { + cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-"); + clearCaches(cm); + } + var Init = { + toString: function () { + return "CodeMirror.Init"; + } + }; + var defaults = {}; + var optionHandlers = {}; + function defineOptions(CodeMirror) { + var optionHandlers = CodeMirror.optionHandlers; + function option(name, deflt, handle, notOnInit) { + CodeMirror.defaults[name] = deflt; + if (handle) { + optionHandlers[name] = notOnInit ? function (cm, val, old) { + if (old != Init) { + handle(cm, val, old); + } + } : handle; + } + } + CodeMirror.defineOption = option; + + // Passed to option handlers when there is no old value. + CodeMirror.Init = Init; + + // These two are, on init, called from the constructor because they + // have to be initialized before the editor can start at all. + option("value", "", function (cm, val) { + return cm.setValue(val); + }, true); + option("mode", null, function (cm, val) { + cm.doc.modeOption = val; + loadMode(cm); + }, true); + option("indentUnit", 2, loadMode, true); + option("indentWithTabs", false); + option("smartIndent", true); + option("tabSize", 4, function (cm) { + resetModeState(cm); + clearCaches(cm); + regChange(cm); + }, true); + option("lineSeparator", null, function (cm, val) { + cm.doc.lineSep = val; + if (!val) { + return; + } + var newBreaks = [], + lineNo = cm.doc.first; + cm.doc.iter(function (line) { + for (var pos = 0;;) { + var found = line.text.indexOf(val, pos); + if (found == -1) { + break; + } + pos = found + val.length; + newBreaks.push(Pos(lineNo, found)); + } + lineNo++; + }); + for (var i = newBreaks.length - 1; i >= 0; i--) { + replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); + } + }); + option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g, function (cm, val, old) { + cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g"); + if (old != Init) { + cm.refresh(); + } + }); + option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function (cm) { + return cm.refresh(); + }, true); + option("electricChars", true); + option("inputStyle", mobile ? "contenteditable" : "textarea", function () { + throw new Error("inputStyle can not (yet) be changed in a running editor"); // FIXME + }, true); + option("spellcheck", false, function (cm, val) { + return cm.getInputField().spellcheck = val; + }, true); + option("autocorrect", false, function (cm, val) { + return cm.getInputField().autocorrect = val; + }, true); + option("autocapitalize", false, function (cm, val) { + return cm.getInputField().autocapitalize = val; + }, true); + option("rtlMoveVisually", !windows); + option("wholeLineUpdateBefore", true); + option("theme", "default", function (cm) { + themeChanged(cm); + updateGutters(cm); + }, true); + option("keyMap", "default", function (cm, val, old) { + var next = getKeyMap(val); + var prev = old != Init && getKeyMap(old); + if (prev && prev.detach) { + prev.detach(cm, next); + } + if (next.attach) { + next.attach(cm, prev || null); + } + }); + option("extraKeys", null); + option("configureMouse", null); + option("lineWrapping", false, wrappingChanged, true); + option("gutters", [], function (cm, val) { + cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers); + updateGutters(cm); + }, true); + option("fixedGutter", true, function (cm, val) { + cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0"; + cm.refresh(); + }, true); + option("coverGutterNextToScrollbar", false, function (cm) { + return updateScrollbars(cm); + }, true); + option("scrollbarStyle", "native", function (cm) { + initScrollbars(cm); + updateScrollbars(cm); + cm.display.scrollbars.setScrollTop(cm.doc.scrollTop); + cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft); + }, true); + option("lineNumbers", false, function (cm, val) { + cm.display.gutterSpecs = getGutters(cm.options.gutters, val); + updateGutters(cm); + }, true); + option("firstLineNumber", 1, updateGutters, true); + option("lineNumberFormatter", function (integer) { + return integer; + }, updateGutters, true); + option("showCursorWhenSelecting", false, updateSelection, true); + option("resetSelectionOnContextMenu", true); + option("lineWiseCopyCut", true); + option("pasteLinesPerSelection", true); + option("selectionsMayTouch", false); + option("readOnly", false, function (cm, val) { + if (val == "nocursor") { + onBlur(cm); + cm.display.input.blur(); + } + cm.display.input.readOnlyChanged(val); + }); + option("screenReaderLabel", null, function (cm, val) { + val = val === '' ? null : val; + cm.display.input.screenReaderLabelChanged(val); + }); + option("disableInput", false, function (cm, val) { + if (!val) { + cm.display.input.reset(); + } + }, true); + option("dragDrop", true, dragDropChanged); + option("allowDropFileTypes", null); + option("cursorBlinkRate", 530); + option("cursorScrollMargin", 0); + option("cursorHeight", 1, updateSelection, true); + option("singleCursorHeightPerLine", true, updateSelection, true); + option("workTime", 100); + option("workDelay", 100); + option("flattenSpans", true, resetModeState, true); + option("addModeClass", false, resetModeState, true); + option("pollInterval", 100); + option("undoDepth", 200, function (cm, val) { + return cm.doc.history.undoDepth = val; + }); + option("historyEventDelay", 1250); + option("viewportMargin", 10, function (cm) { + return cm.refresh(); + }, true); + option("maxHighlightLength", 10000, resetModeState, true); + option("moveInputWithCursor", true, function (cm, val) { + if (!val) { + cm.display.input.resetPosition(); + } + }); + option("tabindex", null, function (cm, val) { + return cm.display.input.getField().tabIndex = val || ""; + }); + option("autofocus", null); + option("direction", "ltr", function (cm, val) { + return cm.doc.setDirection(val); + }, true); + option("phrases", null); + } + function dragDropChanged(cm, value, old) { + var wasOn = old && old != Init; + if (!value != !wasOn) { + var funcs = cm.display.dragFunctions; + var toggle = value ? on : off; + toggle(cm.display.scroller, "dragstart", funcs.start); + toggle(cm.display.scroller, "dragenter", funcs.enter); + toggle(cm.display.scroller, "dragover", funcs.over); + toggle(cm.display.scroller, "dragleave", funcs.leave); + toggle(cm.display.scroller, "drop", funcs.drop); + } + } + function wrappingChanged(cm) { + if (cm.options.lineWrapping) { + addClass(cm.display.wrapper, "CodeMirror-wrap"); + cm.display.sizer.style.minWidth = ""; + cm.display.sizerWidth = null; + } else { + rmClass(cm.display.wrapper, "CodeMirror-wrap"); + findMaxLine(cm); + } + estimateLineHeights(cm); + regChange(cm); + clearCaches(cm); + setTimeout(function () { + return updateScrollbars(cm); + }, 100); + } + + // A CodeMirror instance represents an editor. This is the object + // that user code is usually dealing with. + + function CodeMirror(place, options) { + var this$1 = this; + if (!(this instanceof CodeMirror)) { + return new CodeMirror(place, options); + } + this.options = options = options ? copyObj(options) : {}; + // Determine effective options based on given values and defaults. + copyObj(defaults, options, false); + var doc = options.value; + if (typeof doc == "string") { + doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); + } else if (options.mode) { + doc.modeOption = options.mode; + } + this.doc = doc; + var input = new CodeMirror.inputStyles[options.inputStyle](this); + var display = this.display = new Display(place, doc, input, options); + display.wrapper.CodeMirror = this; + themeChanged(this); + if (options.lineWrapping) { + this.display.wrapper.className += " CodeMirror-wrap"; + } + initScrollbars(this); + this.state = { + keyMaps: [], + // stores maps added by addKeyMap + overlays: [], + // highlighting overlays, as added by addOverlay + modeGen: 0, + // bumped when mode/overlay changes, used to invalidate highlighting info + overwrite: false, + delayingBlurEvent: false, + focused: false, + suppressEdits: false, + // used to disable editing during key handlers when in readOnly mode + pasteIncoming: -1, + cutIncoming: -1, + // help recognize paste/cut edits in input.poll + selectingText: false, + draggingText: false, + highlight: new Delayed(), + // stores highlight worker timeout + keySeq: null, + // Unfinished key sequence + specialChars: null + }; + if (options.autofocus && !mobile) { + display.input.focus(); + } + + // Override magic textarea content restore that IE sometimes does + // on our hidden textarea on reload + if (ie && ie_version < 11) { + setTimeout(function () { + return this$1.display.input.reset(true); + }, 20); + } + registerEventHandlers(this); + ensureGlobalHandlers(); + startOperation(this); + this.curOp.forceUpdate = true; + attachDoc(this, doc); + if (options.autofocus && !mobile || this.hasFocus()) { + setTimeout(function () { + if (this$1.hasFocus() && !this$1.state.focused) { + onFocus(this$1); + } + }, 20); + } else { + onBlur(this); + } + for (var opt in optionHandlers) { + if (optionHandlers.hasOwnProperty(opt)) { + optionHandlers[opt](this, options[opt], Init); + } + } + maybeUpdateLineNumberWidth(this); + if (options.finishInit) { + options.finishInit(this); + } + for (var i = 0; i < initHooks.length; ++i) { + initHooks[i](this); + } + endOperation(this); + // Suppress optimizelegibility in Webkit, since it breaks text + // measuring on line wrapping boundaries. + if (webkit && options.lineWrapping && getComputedStyle(display.lineDiv).textRendering == "optimizelegibility") { + display.lineDiv.style.textRendering = "auto"; + } + } + + // The default configuration options. + CodeMirror.defaults = defaults; + // Functions to run when options are changed. + CodeMirror.optionHandlers = optionHandlers; + + // Attach the necessary event handlers when initializing the editor + function registerEventHandlers(cm) { + var d = cm.display; + on(d.scroller, "mousedown", operation(cm, onMouseDown)); + // Older IE's will not fire a second mousedown for a double click + if (ie && ie_version < 11) { + on(d.scroller, "dblclick", operation(cm, function (e) { + if (signalDOMEvent(cm, e)) { + return; + } + var pos = posFromMouse(cm, e); + if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { + return; + } + e_preventDefault(e); + var word = cm.findWordAt(pos); + extendSelection(cm.doc, word.anchor, word.head); + })); + } else { + on(d.scroller, "dblclick", function (e) { + return signalDOMEvent(cm, e) || e_preventDefault(e); + }); + } + // Some browsers fire contextmenu *after* opening the menu, at + // which point we can't mess with it anymore. Context menu is + // handled in onMouseDown for these browsers. + on(d.scroller, "contextmenu", function (e) { + return onContextMenu(cm, e); + }); + on(d.input.getField(), "contextmenu", function (e) { + if (!d.scroller.contains(e.target)) { + onContextMenu(cm, e); + } + }); + + // Used to suppress mouse event handling when a touch happens + var touchFinished, + prevTouch = { + end: 0 + }; + function finishTouch() { + if (d.activeTouch) { + touchFinished = setTimeout(function () { + return d.activeTouch = null; + }, 1000); + prevTouch = d.activeTouch; + prevTouch.end = +new Date(); + } + } + function isMouseLikeTouchEvent(e) { + if (e.touches.length != 1) { + return false; + } + var touch = e.touches[0]; + return touch.radiusX <= 1 && touch.radiusY <= 1; + } + function farAway(touch, other) { + if (other.left == null) { + return true; + } + var dx = other.left - touch.left, + dy = other.top - touch.top; + return dx * dx + dy * dy > 20 * 20; + } + on(d.scroller, "touchstart", function (e) { + if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) { + d.input.ensurePolled(); + clearTimeout(touchFinished); + var now = +new Date(); + d.activeTouch = { + start: now, + moved: false, + prev: now - prevTouch.end <= 300 ? prevTouch : null + }; + if (e.touches.length == 1) { + d.activeTouch.left = e.touches[0].pageX; + d.activeTouch.top = e.touches[0].pageY; + } + } + }); + on(d.scroller, "touchmove", function () { + if (d.activeTouch) { + d.activeTouch.moved = true; + } + }); + on(d.scroller, "touchend", function (e) { + var touch = d.activeTouch; + if (touch && !eventInWidget(d, e) && touch.left != null && !touch.moved && new Date() - touch.start < 300) { + var pos = cm.coordsChar(d.activeTouch, "page"), + range; + if (!touch.prev || farAway(touch, touch.prev)) + // Single tap + { + range = new Range(pos, pos); + } else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) + // Double tap + { + range = cm.findWordAt(pos); + } else + // Triple tap + { + range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); + } + cm.setSelection(range.anchor, range.head); + cm.focus(); + e_preventDefault(e); + } + finishTouch(); + }); + on(d.scroller, "touchcancel", finishTouch); + + // Sync scrolling between fake scrollbars and real scrollable + // area, ensure viewport is updated when scrolling. + on(d.scroller, "scroll", function () { + if (d.scroller.clientHeight) { + updateScrollTop(cm, d.scroller.scrollTop); + setScrollLeft(cm, d.scroller.scrollLeft, true); + signal(cm, "scroll", cm); + } + }); + + // Listen to wheel events in order to try and update the viewport on time. + on(d.scroller, "mousewheel", function (e) { + return onScrollWheel(cm, e); + }); + on(d.scroller, "DOMMouseScroll", function (e) { + return onScrollWheel(cm, e); + }); + + // Prevent wrapper from ever scrolling + on(d.wrapper, "scroll", function () { + return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; + }); + d.dragFunctions = { + enter: function (e) { + if (!signalDOMEvent(cm, e)) { + e_stop(e); + } + }, + over: function (e) { + if (!signalDOMEvent(cm, e)) { + onDragOver(cm, e); + e_stop(e); + } + }, + start: function (e) { + return onDragStart(cm, e); + }, + drop: operation(cm, onDrop), + leave: function (e) { + if (!signalDOMEvent(cm, e)) { + clearDragCursor(cm); + } + } + }; + var inp = d.input.getField(); + on(inp, "keyup", function (e) { + return onKeyUp.call(cm, e); + }); + on(inp, "keydown", operation(cm, onKeyDown)); + on(inp, "keypress", operation(cm, onKeyPress)); + on(inp, "focus", function (e) { + return onFocus(cm, e); + }); + on(inp, "blur", function (e) { + return onBlur(cm, e); + }); + } + var initHooks = []; + CodeMirror.defineInitHook = function (f) { + return initHooks.push(f); + }; + + // Indent the given line. The how parameter can be "smart", + // "add"/null, "subtract", or "prev". When aggressive is false + // (typically set to true for forced single-line indents), empty + // lines are not indented, and places where the mode returns Pass + // are left alone. + function indentLine(cm, n, how, aggressive) { + var doc = cm.doc, + state; + if (how == null) { + how = "add"; + } + if (how == "smart") { + // Fall back to "prev" when the mode doesn't have an indentation + // method. + if (!doc.mode.indent) { + how = "prev"; + } else { + state = getContextBefore(cm, n).state; + } + } + var tabSize = cm.options.tabSize; + var line = getLine(doc, n), + curSpace = countColumn(line.text, null, tabSize); + if (line.stateAfter) { + line.stateAfter = null; + } + var curSpaceString = line.text.match(/^\s*/)[0], + indentation; + if (!aggressive && !/\S/.test(line.text)) { + indentation = 0; + how = "not"; + } else if (how == "smart") { + indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text); + if (indentation == Pass || indentation > 150) { + if (!aggressive) { + return; + } + how = "prev"; + } + } + if (how == "prev") { + if (n > doc.first) { + indentation = countColumn(getLine(doc, n - 1).text, null, tabSize); + } else { + indentation = 0; + } + } else if (how == "add") { + indentation = curSpace + cm.options.indentUnit; + } else if (how == "subtract") { + indentation = curSpace - cm.options.indentUnit; + } else if (typeof how == "number") { + indentation = curSpace + how; + } + indentation = Math.max(0, indentation); + var indentString = "", + pos = 0; + if (cm.options.indentWithTabs) { + for (var i = Math.floor(indentation / tabSize); i; --i) { + pos += tabSize; + indentString += "\t"; + } + } + if (pos < indentation) { + indentString += spaceStr(indentation - pos); + } + if (indentString != curSpaceString) { + replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input"); + line.stateAfter = null; + return true; + } else { + // Ensure that, if the cursor was in the whitespace at the start + // of the line, it is moved to the end of that space. + for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) { + var range = doc.sel.ranges[i$1]; + if (range.head.line == n && range.head.ch < curSpaceString.length) { + var pos$1 = Pos(n, curSpaceString.length); + replaceOneSelection(doc, i$1, new Range(pos$1, pos$1)); + break; + } + } + } + } + + // This will be set to a {lineWise: bool, text: [string]} object, so + // that, when pasting, we know what kind of selections the copied + // text was made out of. + var lastCopied = null; + function setLastCopied(newLastCopied) { + lastCopied = newLastCopied; + } + function applyTextInput(cm, inserted, deleted, sel, origin) { + var doc = cm.doc; + cm.display.shift = false; + if (!sel) { + sel = doc.sel; + } + var recent = +new Date() - 200; + var paste = origin == "paste" || cm.state.pasteIncoming > recent; + var textLines = splitLinesAuto(inserted), + multiPaste = null; + // When pasting N lines into N selections, insert one line per selection + if (paste && sel.ranges.length > 1) { + if (lastCopied && lastCopied.text.join("\n") == inserted) { + if (sel.ranges.length % lastCopied.text.length == 0) { + multiPaste = []; + for (var i = 0; i < lastCopied.text.length; i++) { + multiPaste.push(doc.splitLines(lastCopied.text[i])); + } + } + } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) { + multiPaste = map(textLines, function (l) { + return [l]; + }); + } + } + var updateInput = cm.curOp.updateInput; + // Normal behavior is to insert the new text into every selection + for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) { + var range = sel.ranges[i$1]; + var from = range.from(), + to = range.to(); + if (range.empty()) { + if (deleted && deleted > 0) + // Handle deletion + { + from = Pos(from.line, from.ch - deleted); + } else if (cm.state.overwrite && !paste) + // Handle overwrite + { + to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); + } else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join("\n") == textLines.join("\n")) { + from = to = Pos(from.line, 0); + } + } + var changeEvent = { + from: from, + to: to, + text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines, + origin: origin || (paste ? "paste" : cm.state.cutIncoming > recent ? "cut" : "+input") + }; + makeChange(cm.doc, changeEvent); + signalLater(cm, "inputRead", cm, changeEvent); + } + if (inserted && !paste) { + triggerElectric(cm, inserted); + } + ensureCursorVisible(cm); + if (cm.curOp.updateInput < 2) { + cm.curOp.updateInput = updateInput; + } + cm.curOp.typing = true; + cm.state.pasteIncoming = cm.state.cutIncoming = -1; + } + function handlePaste(e, cm) { + var pasted = e.clipboardData && e.clipboardData.getData("Text"); + if (pasted) { + e.preventDefault(); + if (!cm.isReadOnly() && !cm.options.disableInput) { + runInOp(cm, function () { + return applyTextInput(cm, pasted, 0, null, "paste"); + }); + } + return true; + } + } + function triggerElectric(cm, inserted) { + // When an 'electric' character is inserted, immediately trigger a reindent + if (!cm.options.electricChars || !cm.options.smartIndent) { + return; + } + var sel = cm.doc.sel; + for (var i = sel.ranges.length - 1; i >= 0; i--) { + var range = sel.ranges[i]; + if (range.head.ch > 100 || i && sel.ranges[i - 1].head.line == range.head.line) { + continue; + } + var mode = cm.getModeAt(range.head); + var indented = false; + if (mode.electricChars) { + for (var j = 0; j < mode.electricChars.length; j++) { + if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) { + indented = indentLine(cm, range.head.line, "smart"); + break; + } + } + } else if (mode.electricInput) { + if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch))) { + indented = indentLine(cm, range.head.line, "smart"); + } + } + if (indented) { + signalLater(cm, "electricInput", cm, range.head.line); + } + } + } + function copyableRanges(cm) { + var text = [], + ranges = []; + for (var i = 0; i < cm.doc.sel.ranges.length; i++) { + var line = cm.doc.sel.ranges[i].head.line; + var lineRange = { + anchor: Pos(line, 0), + head: Pos(line + 1, 0) + }; + ranges.push(lineRange); + text.push(cm.getRange(lineRange.anchor, lineRange.head)); + } + return { + text: text, + ranges: ranges + }; + } + function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) { + field.setAttribute("autocorrect", autocorrect ? "" : "off"); + field.setAttribute("autocapitalize", autocapitalize ? "" : "off"); + field.setAttribute("spellcheck", !!spellcheck); + } + function hiddenTextarea() { + var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; min-height: 1em; outline: none"); + var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); + // The textarea is kept positioned near the cursor to prevent the + // fact that it'll be scrolled into view on input from scrolling + // our fake cursor out of view. On webkit, when wrap=off, paste is + // very slow. So make the area wide instead. + if (webkit) { + te.style.width = "1000px"; + } else { + te.setAttribute("wrap", "off"); + } + // If border: 0; -- iOS fails to open keyboard (issue #1287) + if (ios) { + te.style.border = "1px solid black"; + } + disableBrowserMagic(te); + return div; + } + + // The publicly visible API. Note that methodOp(f) means + // 'wrap f in an operation, performed on its `this` parameter'. + + // This is not the complete set of editor methods. Most of the + // methods defined on the Doc type are also injected into + // CodeMirror.prototype, for backwards compatibility and + // convenience. + + function addEditorMethods(CodeMirror) { + var optionHandlers = CodeMirror.optionHandlers; + var helpers = CodeMirror.helpers = {}; + CodeMirror.prototype = { + constructor: CodeMirror, + focus: function () { + window.focus(); + this.display.input.focus(); + }, + setOption: function (option, value) { + var options = this.options, + old = options[option]; + if (options[option] == value && option != "mode") { + return; + } + options[option] = value; + if (optionHandlers.hasOwnProperty(option)) { + operation(this, optionHandlers[option])(this, value, old); + } + signal(this, "optionChange", this, option); + }, + getOption: function (option) { + return this.options[option]; + }, + getDoc: function () { + return this.doc; + }, + addKeyMap: function (map, bottom) { + this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map)); + }, + removeKeyMap: function (map) { + var maps = this.state.keyMaps; + for (var i = 0; i < maps.length; ++i) { + if (maps[i] == map || maps[i].name == map) { + maps.splice(i, 1); + return true; + } + } + }, + addOverlay: methodOp(function (spec, options) { + var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec); + if (mode.startState) { + throw new Error("Overlays may not be stateful."); + } + insertSorted(this.state.overlays, { + mode: mode, + modeSpec: spec, + opaque: options && options.opaque, + priority: options && options.priority || 0 + }, function (overlay) { + return overlay.priority; + }); + this.state.modeGen++; + regChange(this); + }), + removeOverlay: methodOp(function (spec) { + var overlays = this.state.overlays; + for (var i = 0; i < overlays.length; ++i) { + var cur = overlays[i].modeSpec; + if (cur == spec || typeof spec == "string" && cur.name == spec) { + overlays.splice(i, 1); + this.state.modeGen++; + regChange(this); + return; + } + } + }), + indentLine: methodOp(function (n, dir, aggressive) { + if (typeof dir != "string" && typeof dir != "number") { + if (dir == null) { + dir = this.options.smartIndent ? "smart" : "prev"; + } else { + dir = dir ? "add" : "subtract"; + } + } + if (isLine(this.doc, n)) { + indentLine(this, n, dir, aggressive); + } + }), + indentSelection: methodOp(function (how) { + var ranges = this.doc.sel.ranges, + end = -1; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + if (!range.empty()) { + var from = range.from(), + to = range.to(); + var start = Math.max(end, from.line); + end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1; + for (var j = start; j < end; ++j) { + indentLine(this, j, how); + } + var newRanges = this.doc.sel.ranges; + if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0) { + replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); + } + } else if (range.head.line > end) { + indentLine(this, range.head.line, how, true); + end = range.head.line; + if (i == this.doc.sel.primIndex) { + ensureCursorVisible(this); + } + } + } + }), + // Fetch the parser token for a given character. Useful for hacks + // that want to inspect the mode state (say, for completion). + getTokenAt: function (pos, precise) { + return takeToken(this, pos, precise); + }, + getLineTokens: function (line, precise) { + return takeToken(this, Pos(line), precise, true); + }, + getTokenTypeAt: function (pos) { + pos = clipPos(this.doc, pos); + var styles = getLineStyles(this, getLine(this.doc, pos.line)); + var before = 0, + after = (styles.length - 1) / 2, + ch = pos.ch; + var type; + if (ch == 0) { + type = styles[2]; + } else { + for (;;) { + var mid = before + after >> 1; + if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { + after = mid; + } else if (styles[mid * 2 + 1] < ch) { + before = mid + 1; + } else { + type = styles[mid * 2 + 2]; + break; + } + } + } + var cut = type ? type.indexOf("overlay ") : -1; + return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1); + }, + getModeAt: function (pos) { + var mode = this.doc.mode; + if (!mode.innerMode) { + return mode; + } + return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode; + }, + getHelper: function (pos, type) { + return this.getHelpers(pos, type)[0]; + }, + getHelpers: function (pos, type) { + var found = []; + if (!helpers.hasOwnProperty(type)) { + return found; + } + var help = helpers[type], + mode = this.getModeAt(pos); + if (typeof mode[type] == "string") { + if (help[mode[type]]) { + found.push(help[mode[type]]); + } + } else if (mode[type]) { + for (var i = 0; i < mode[type].length; i++) { + var val = help[mode[type][i]]; + if (val) { + found.push(val); + } + } + } else if (mode.helperType && help[mode.helperType]) { + found.push(help[mode.helperType]); + } else if (help[mode.name]) { + found.push(help[mode.name]); + } + for (var i$1 = 0; i$1 < help._global.length; i$1++) { + var cur = help._global[i$1]; + if (cur.pred(mode, this) && indexOf(found, cur.val) == -1) { + found.push(cur.val); + } + } + return found; + }, + getStateAfter: function (line, precise) { + var doc = this.doc; + line = clipLine(doc, line == null ? doc.first + doc.size - 1 : line); + return getContextBefore(this, line + 1, precise).state; + }, + cursorCoords: function (start, mode) { + var pos, + range = this.doc.sel.primary(); + if (start == null) { + pos = range.head; + } else if (typeof start == "object") { + pos = clipPos(this.doc, start); + } else { + pos = start ? range.from() : range.to(); + } + return cursorCoords(this, pos, mode || "page"); + }, + charCoords: function (pos, mode) { + return charCoords(this, clipPos(this.doc, pos), mode || "page"); + }, + coordsChar: function (coords, mode) { + coords = fromCoordSystem(this, coords, mode || "page"); + return coordsChar(this, coords.left, coords.top); + }, + lineAtHeight: function (height, mode) { + height = fromCoordSystem(this, { + top: height, + left: 0 + }, mode || "page").top; + return lineAtHeight(this.doc, height + this.display.viewOffset); + }, + heightAtLine: function (line, mode, includeWidgets) { + var end = false, + lineObj; + if (typeof line == "number") { + var last = this.doc.first + this.doc.size - 1; + if (line < this.doc.first) { + line = this.doc.first; + } else if (line > last) { + line = last; + end = true; + } + lineObj = getLine(this.doc, line); + } else { + lineObj = line; + } + return intoCoordSystem(this, lineObj, { + top: 0, + left: 0 + }, mode || "page", includeWidgets || end).top + (end ? this.doc.height - heightAtLine(lineObj) : 0); + }, + defaultTextHeight: function () { + return textHeight(this.display); + }, + defaultCharWidth: function () { + return charWidth(this.display); + }, + getViewport: function () { + return { + from: this.display.viewFrom, + to: this.display.viewTo + }; + }, + addWidget: function (pos, node, scroll, vert, horiz) { + var display = this.display; + pos = cursorCoords(this, clipPos(this.doc, pos)); + var top = pos.bottom, + left = pos.left; + node.style.position = "absolute"; + node.setAttribute("cm-ignore-events", "true"); + this.display.input.setUneditable(node); + display.sizer.appendChild(node); + if (vert == "over") { + top = pos.top; + } else if (vert == "above" || vert == "near") { + var vspace = Math.max(display.wrapper.clientHeight, this.doc.height), + hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth); + // Default to positioning above (if specified and possible); otherwise default to positioning below + if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight) { + top = pos.top - node.offsetHeight; + } else if (pos.bottom + node.offsetHeight <= vspace) { + top = pos.bottom; + } + if (left + node.offsetWidth > hspace) { + left = hspace - node.offsetWidth; + } + } + node.style.top = top + "px"; + node.style.left = node.style.right = ""; + if (horiz == "right") { + left = display.sizer.clientWidth - node.offsetWidth; + node.style.right = "0px"; + } else { + if (horiz == "left") { + left = 0; + } else if (horiz == "middle") { + left = (display.sizer.clientWidth - node.offsetWidth) / 2; + } + node.style.left = left + "px"; + } + if (scroll) { + scrollIntoView(this, { + left: left, + top: top, + right: left + node.offsetWidth, + bottom: top + node.offsetHeight + }); + } + }, + triggerOnKeyDown: methodOp(onKeyDown), + triggerOnKeyPress: methodOp(onKeyPress), + triggerOnKeyUp: onKeyUp, + triggerOnMouseDown: methodOp(onMouseDown), + execCommand: function (cmd) { + if (commands.hasOwnProperty(cmd)) { + return commands[cmd].call(null, this); + } + }, + triggerElectric: methodOp(function (text) { + triggerElectric(this, text); + }), + findPosH: function (from, amount, unit, visually) { + var dir = 1; + if (amount < 0) { + dir = -1; + amount = -amount; + } + var cur = clipPos(this.doc, from); + for (var i = 0; i < amount; ++i) { + cur = findPosH(this.doc, cur, dir, unit, visually); + if (cur.hitSide) { + break; + } + } + return cur; + }, + moveH: methodOp(function (dir, unit) { + var this$1 = this; + this.extendSelectionsBy(function (range) { + if (this$1.display.shift || this$1.doc.extend || range.empty()) { + return findPosH(this$1.doc, range.head, dir, unit, this$1.options.rtlMoveVisually); + } else { + return dir < 0 ? range.from() : range.to(); + } + }, sel_move); + }), + deleteH: methodOp(function (dir, unit) { + var sel = this.doc.sel, + doc = this.doc; + if (sel.somethingSelected()) { + doc.replaceSelection("", null, "+delete"); + } else { + deleteNearSelection(this, function (range) { + var other = findPosH(doc, range.head, dir, unit, false); + return dir < 0 ? { + from: other, + to: range.head + } : { + from: range.head, + to: other + }; + }); + } + }), + findPosV: function (from, amount, unit, goalColumn) { + var dir = 1, + x = goalColumn; + if (amount < 0) { + dir = -1; + amount = -amount; + } + var cur = clipPos(this.doc, from); + for (var i = 0; i < amount; ++i) { + var coords = cursorCoords(this, cur, "div"); + if (x == null) { + x = coords.left; + } else { + coords.left = x; + } + cur = findPosV(this, coords, dir, unit); + if (cur.hitSide) { + break; + } + } + return cur; + }, + moveV: methodOp(function (dir, unit) { + var this$1 = this; + var doc = this.doc, + goals = []; + var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected(); + doc.extendSelectionsBy(function (range) { + if (collapse) { + return dir < 0 ? range.from() : range.to(); + } + var headPos = cursorCoords(this$1, range.head, "div"); + if (range.goalColumn != null) { + headPos.left = range.goalColumn; + } + goals.push(headPos.left); + var pos = findPosV(this$1, headPos, dir, unit); + if (unit == "page" && range == doc.sel.primary()) { + addToScrollTop(this$1, charCoords(this$1, pos, "div").top - headPos.top); + } + return pos; + }, sel_move); + if (goals.length) { + for (var i = 0; i < doc.sel.ranges.length; i++) { + doc.sel.ranges[i].goalColumn = goals[i]; + } + } + }), + // Find the word at the given position (as returned by coordsChar). + findWordAt: function (pos) { + var doc = this.doc, + line = getLine(doc, pos.line).text; + var start = pos.ch, + end = pos.ch; + if (line) { + var helper = this.getHelper(pos, "wordChars"); + if ((pos.sticky == "before" || end == line.length) && start) { + --start; + } else { + ++end; + } + var startChar = line.charAt(start); + var check = isWordChar(startChar, helper) ? function (ch) { + return isWordChar(ch, helper); + } : /\s/.test(startChar) ? function (ch) { + return /\s/.test(ch); + } : function (ch) { + return !/\s/.test(ch) && !isWordChar(ch); + }; + while (start > 0 && check(line.charAt(start - 1))) { + --start; + } + while (end < line.length && check(line.charAt(end))) { + ++end; + } + } + return new Range(Pos(pos.line, start), Pos(pos.line, end)); + }, + toggleOverwrite: function (value) { + if (value != null && value == this.state.overwrite) { + return; + } + if (this.state.overwrite = !this.state.overwrite) { + addClass(this.display.cursorDiv, "CodeMirror-overwrite"); + } else { + rmClass(this.display.cursorDiv, "CodeMirror-overwrite"); + } + signal(this, "overwriteToggle", this, this.state.overwrite); + }, + hasFocus: function () { + return this.display.input.getField() == activeElt(); + }, + isReadOnly: function () { + return !!(this.options.readOnly || this.doc.cantEdit); + }, + scrollTo: methodOp(function (x, y) { + scrollToCoords(this, x, y); + }), + getScrollInfo: function () { + var scroller = this.display.scroller; + return { + left: scroller.scrollLeft, + top: scroller.scrollTop, + height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight, + width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth, + clientHeight: displayHeight(this), + clientWidth: displayWidth(this) + }; + }, + scrollIntoView: methodOp(function (range, margin) { + if (range == null) { + range = { + from: this.doc.sel.primary().head, + to: null + }; + if (margin == null) { + margin = this.options.cursorScrollMargin; + } + } else if (typeof range == "number") { + range = { + from: Pos(range, 0), + to: null + }; + } else if (range.from == null) { + range = { + from: range, + to: null + }; + } + if (!range.to) { + range.to = range.from; + } + range.margin = margin || 0; + if (range.from.line != null) { + scrollToRange(this, range); + } else { + scrollToCoordsRange(this, range.from, range.to, range.margin); + } + }), + setSize: methodOp(function (width, height) { + var this$1 = this; + var interpret = function (val) { + return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; + }; + if (width != null) { + this.display.wrapper.style.width = interpret(width); + } + if (height != null) { + this.display.wrapper.style.height = interpret(height); + } + if (this.options.lineWrapping) { + clearLineMeasurementCache(this); + } + var lineNo = this.display.viewFrom; + this.doc.iter(lineNo, this.display.viewTo, function (line) { + if (line.widgets) { + for (var i = 0; i < line.widgets.length; i++) { + if (line.widgets[i].noHScroll) { + regLineChange(this$1, lineNo, "widget"); + break; + } + } + } + ++lineNo; + }); + this.curOp.forceUpdate = true; + signal(this, "refresh", this); + }), + operation: function (f) { + return runInOp(this, f); + }, + startOperation: function () { + return startOperation(this); + }, + endOperation: function () { + return endOperation(this); + }, + refresh: methodOp(function () { + var oldHeight = this.display.cachedTextHeight; + regChange(this); + this.curOp.forceUpdate = true; + clearCaches(this); + scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop); + updateGutterSpace(this.display); + if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping) { + estimateLineHeights(this); + } + signal(this, "refresh", this); + }), + swapDoc: methodOp(function (doc) { + var old = this.doc; + old.cm = null; + // Cancel the current text selection if any (#5821) + if (this.state.selectingText) { + this.state.selectingText(); + } + attachDoc(this, doc); + clearCaches(this); + this.display.input.reset(); + scrollToCoords(this, doc.scrollLeft, doc.scrollTop); + this.curOp.forceScroll = true; + signalLater(this, "swapDoc", this, old); + return old; + }), + phrase: function (phraseText) { + var phrases = this.options.phrases; + return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText; + }, + 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; + } + }; + eventMixin(CodeMirror); + CodeMirror.registerHelper = function (type, name, value) { + if (!helpers.hasOwnProperty(type)) { + helpers[type] = CodeMirror[type] = { + _global: [] + }; + } + helpers[type][name] = value; + }; + CodeMirror.registerGlobalHelper = function (type, name, predicate, value) { + CodeMirror.registerHelper(type, name, value); + helpers[type]._global.push({ + pred: predicate, + val: value + }); + }; + } + + // Used for horizontal relative motion. Dir is -1 or 1 (left or + // right), unit can be "codepoint", "char", "column" (like char, but + // doesn't cross line boundaries), "word" (across next word), or + // "group" (to the start of next group of word or + // non-word-non-whitespace chars). The visually param controls + // whether, in right-to-left text, direction 1 means to move towards + // the next index in the string, or towards the character to the right + // of the current position. The resulting position will have a + // hitSide=true property if it reached the end of the document. + function findPosH(doc, pos, dir, unit, visually) { + var oldPos = pos; + var origDir = dir; + var lineObj = getLine(doc, pos.line); + var lineDir = visually && doc.direction == "rtl" ? -dir : dir; + function findNextLine() { + var l = pos.line + lineDir; + if (l < doc.first || l >= doc.first + doc.size) { + return false; + } + pos = new Pos(l, pos.ch, pos.sticky); + return lineObj = getLine(doc, l); + } + function moveOnce(boundToLine) { + var next; + if (unit == "codepoint") { + var ch = lineObj.text.charCodeAt(pos.ch + (dir > 0 ? 0 : -1)); + if (isNaN(ch)) { + next = null; + } else { + var astral = dir > 0 ? ch >= 0xD800 && ch < 0xDC00 : ch >= 0xDC00 && ch < 0xDFFF; + next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (astral ? 2 : 1))), -dir); + } + } else if (visually) { + next = moveVisually(doc.cm, lineObj, pos, dir); + } else { + next = moveLogically(lineObj, pos, dir); + } + if (next == null) { + if (!boundToLine && findNextLine()) { + pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); + } else { + return false; + } + } else { + pos = next; + } + return true; + } + if (unit == "char" || unit == "codepoint") { + moveOnce(); + } else if (unit == "column") { + moveOnce(true); + } else if (unit == "word" || unit == "group") { + var sawType = null, + group = unit == "group"; + var helper = doc.cm && doc.cm.getHelper(pos, "wordChars"); + for (var first = true;; first = false) { + if (dir < 0 && !moveOnce(!first)) { + break; + } + var cur = lineObj.text.charAt(pos.ch) || "\n"; + var type = isWordChar(cur, helper) ? "w" : group && cur == "\n" ? "n" : !group || /\s/.test(cur) ? null : "p"; + if (group && !first && !type) { + type = "s"; + } + if (sawType && sawType != type) { + if (dir < 0) { + dir = 1; + moveOnce(); + pos.sticky = "after"; + } + break; + } + if (type) { + sawType = type; + } + if (dir > 0 && !moveOnce(!first)) { + break; + } + } + } + var result = skipAtomic(doc, pos, oldPos, origDir, true); + if (equalCursorPos(oldPos, result)) { + result.hitSide = true; + } + return result; + } + + // For relative vertical movement. Dir may be -1 or 1. Unit can be + // "page" or "line". The resulting position will have a hitSide=true + // property if it reached the end of the document. + function findPosV(cm, pos, dir, unit) { + var doc = cm.doc, + x = pos.left, + y; + if (unit == "page") { + var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); + var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3); + y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount; + } else if (unit == "line") { + y = dir > 0 ? pos.bottom + 3 : pos.top - 3; + } + var target; + for (;;) { + target = coordsChar(cm, x, y); + if (!target.outside) { + break; + } + if (dir < 0 ? y <= 0 : y >= doc.height) { + target.hitSide = true; + break; + } + y += dir * 5; + } + return target; + } + + // CONTENTEDITABLE INPUT STYLE + + var ContentEditableInput = function (cm) { + this.cm = cm; + this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null; + this.polling = new Delayed(); + this.composing = null; + this.gracePeriod = false; + this.readDOMTimeout = null; + }; + ContentEditableInput.prototype.init = function (display) { + var this$1 = this; + var input = this, + cm = input.cm; + var div = input.div = display.lineDiv; + div.contentEditable = true; + disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize); + function belongsToInput(e) { + for (var t = e.target; t; t = t.parentNode) { + if (t == div) { + return true; + } + if (/\bCodeMirror-(?:line)?widget\b/.test(t.className)) { + break; + } + } + return false; + } + on(div, "paste", function (e) { + if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { + return; + } + // IE doesn't fire input events, so we schedule a read for the pasted content in this way + if (ie_version <= 11) { + setTimeout(operation(cm, function () { + return this$1.updateFromDOM(); + }), 20); + } + }); + on(div, "compositionstart", function (e) { + this$1.composing = { + data: e.data, + done: false + }; + }); + on(div, "compositionupdate", function (e) { + if (!this$1.composing) { + this$1.composing = { + data: e.data, + done: false + }; + } + }); + on(div, "compositionend", function (e) { + if (this$1.composing) { + if (e.data != this$1.composing.data) { + this$1.readFromDOMSoon(); + } + this$1.composing.done = true; + } + }); + on(div, "touchstart", function () { + return input.forceCompositionEnd(); + }); + on(div, "input", function () { + if (!this$1.composing) { + this$1.readFromDOMSoon(); + } + }); + function onCopyCut(e) { + if (!belongsToInput(e) || signalDOMEvent(cm, e)) { + return; + } + if (cm.somethingSelected()) { + setLastCopied({ + lineWise: false, + text: cm.getSelections() + }); + if (e.type == "cut") { + cm.replaceSelection("", null, "cut"); + } + } else if (!cm.options.lineWiseCopyCut) { + return; + } else { + var ranges = copyableRanges(cm); + setLastCopied({ + lineWise: true, + text: ranges.text + }); + if (e.type == "cut") { + cm.operation(function () { + cm.setSelections(ranges.ranges, 0, sel_dontScroll); + cm.replaceSelection("", null, "cut"); + }); + } + } + if (e.clipboardData) { + e.clipboardData.clearData(); + var content = lastCopied.text.join("\n"); + // iOS exposes the clipboard API, but seems to discard content inserted into it + e.clipboardData.setData("Text", content); + if (e.clipboardData.getData("Text") == content) { + e.preventDefault(); + return; + } + } + // Old-fashioned briefly-focus-a-textarea hack + var kludge = hiddenTextarea(), + te = kludge.firstChild; + cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild); + te.value = lastCopied.text.join("\n"); + var hadFocus = activeElt(); + selectInput(te); + setTimeout(function () { + cm.display.lineSpace.removeChild(kludge); + hadFocus.focus(); + if (hadFocus == div) { + input.showPrimarySelection(); + } + }, 50); + } + on(div, "copy", onCopyCut); + on(div, "cut", onCopyCut); + }; + ContentEditableInput.prototype.screenReaderLabelChanged = function (label) { + // Label for screenreaders, accessibility + if (label) { + this.div.setAttribute('aria-label', label); + } else { + this.div.removeAttribute('aria-label'); + } + }; + ContentEditableInput.prototype.prepareSelection = function () { + var result = prepareSelection(this.cm, false); + result.focus = activeElt() == this.div; + return result; + }; + ContentEditableInput.prototype.showSelection = function (info, takeFocus) { + if (!info || !this.cm.display.view.length) { + return; + } + if (info.focus || takeFocus) { + this.showPrimarySelection(); + } + this.showMultipleSelections(info); + }; + ContentEditableInput.prototype.getSelection = function () { + return this.cm.display.wrapper.ownerDocument.getSelection(); + }; + ContentEditableInput.prototype.showPrimarySelection = function () { + var sel = this.getSelection(), + cm = this.cm, + prim = cm.doc.sel.primary(); + var from = prim.from(), + to = prim.to(); + if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) { + sel.removeAllRanges(); + return; + } + var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); + var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset); + if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad && cmp(minPos(curAnchor, curFocus), from) == 0 && cmp(maxPos(curAnchor, curFocus), to) == 0) { + return; + } + var view = cm.display.view; + var start = from.line >= cm.display.viewFrom && posToDOM(cm, from) || { + node: view[0].measure.map[2], + offset: 0 + }; + var end = to.line < cm.display.viewTo && posToDOM(cm, to); + if (!end) { + var measure = view[view.length - 1].measure; + var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map; + end = { + node: map[map.length - 1], + offset: map[map.length - 2] - map[map.length - 3] + }; + } + if (!start || !end) { + sel.removeAllRanges(); + return; + } + var old = sel.rangeCount && sel.getRangeAt(0), + rng; + try { + rng = range(start.node, start.offset, end.offset, end.node); + } catch (e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible + if (rng) { + if (!gecko && cm.state.focused) { + sel.collapse(start.node, start.offset); + if (!rng.collapsed) { + sel.removeAllRanges(); + sel.addRange(rng); + } + } else { + sel.removeAllRanges(); + sel.addRange(rng); + } + if (old && sel.anchorNode == null) { + sel.addRange(old); + } else if (gecko) { + this.startGracePeriod(); + } + } + this.rememberSelection(); + }; + ContentEditableInput.prototype.startGracePeriod = function () { + var this$1 = this; + clearTimeout(this.gracePeriod); + this.gracePeriod = setTimeout(function () { + this$1.gracePeriod = false; + if (this$1.selectionChanged()) { + this$1.cm.operation(function () { + return this$1.cm.curOp.selectionChanged = true; + }); + } + }, 20); + }; + ContentEditableInput.prototype.showMultipleSelections = function (info) { + removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors); + removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection); + }; + ContentEditableInput.prototype.rememberSelection = function () { + var sel = this.getSelection(); + this.lastAnchorNode = sel.anchorNode; + this.lastAnchorOffset = sel.anchorOffset; + this.lastFocusNode = sel.focusNode; + this.lastFocusOffset = sel.focusOffset; + }; + ContentEditableInput.prototype.selectionInEditor = function () { + var sel = this.getSelection(); + if (!sel.rangeCount) { + return false; + } + var node = sel.getRangeAt(0).commonAncestorContainer; + return contains(this.div, node); + }; + ContentEditableInput.prototype.focus = function () { + if (this.cm.options.readOnly != "nocursor") { + if (!this.selectionInEditor() || activeElt() != this.div) { + this.showSelection(this.prepareSelection(), true); + } + this.div.focus(); + } + }; + ContentEditableInput.prototype.blur = function () { + this.div.blur(); + }; + ContentEditableInput.prototype.getField = function () { + return this.div; + }; + ContentEditableInput.prototype.supportsTouch = function () { + return true; + }; + ContentEditableInput.prototype.receivedFocus = function () { + var this$1 = this; + var input = this; + if (this.selectionInEditor()) { + setTimeout(function () { + return this$1.pollSelection(); + }, 20); + } else { + runInOp(this.cm, function () { + return input.cm.curOp.selectionChanged = true; + }); + } + function poll() { + if (input.cm.state.focused) { + input.pollSelection(); + input.polling.set(input.cm.options.pollInterval, poll); + } + } + this.polling.set(this.cm.options.pollInterval, poll); + }; + ContentEditableInput.prototype.selectionChanged = function () { + var sel = this.getSelection(); + return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset || sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset; + }; + ContentEditableInput.prototype.pollSelection = function () { + if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { + return; + } + var sel = this.getSelection(), + cm = this.cm; + // On Android Chrome (version 56, at least), backspacing into an + // uneditable block element will put the cursor in that element, + // and then, because it's not editable, hide the virtual keyboard. + // Because Android doesn't allow us to actually detect backspace + // presses in a sane way, this code checks for when that happens + // and simulates a backspace press in this case. + if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) { + this.cm.triggerOnKeyDown({ + type: "keydown", + keyCode: 8, + preventDefault: Math.abs + }); + this.blur(); + this.focus(); + return; + } + if (this.composing) { + return; + } + this.rememberSelection(); + var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); + var head = domToPos(cm, sel.focusNode, sel.focusOffset); + if (anchor && head) { + runInOp(cm, function () { + setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll); + if (anchor.bad || head.bad) { + cm.curOp.selectionChanged = true; + } + }); + } + }; + ContentEditableInput.prototype.pollContent = function () { + if (this.readDOMTimeout != null) { + clearTimeout(this.readDOMTimeout); + this.readDOMTimeout = null; + } + var cm = this.cm, + display = cm.display, + sel = cm.doc.sel.primary(); + var from = sel.from(), + to = sel.to(); + if (from.ch == 0 && from.line > cm.firstLine()) { + from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); + } + if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine()) { + to = Pos(to.line + 1, 0); + } + if (from.line < display.viewFrom || to.line > display.viewTo - 1) { + return false; + } + var fromIndex, fromLine, fromNode; + if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) { + fromLine = lineNo(display.view[0].line); + fromNode = display.view[0].node; + } else { + fromLine = lineNo(display.view[fromIndex].line); + fromNode = display.view[fromIndex - 1].node.nextSibling; + } + var toIndex = findViewIndex(cm, to.line); + var toLine, toNode; + if (toIndex == display.view.length - 1) { + toLine = display.viewTo - 1; + toNode = display.lineDiv.lastChild; + } else { + toLine = lineNo(display.view[toIndex + 1].line) - 1; + toNode = display.view[toIndex + 1].node.previousSibling; + } + if (!fromNode) { + return false; + } + var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine)); + var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length)); + while (newText.length > 1 && oldText.length > 1) { + if (lst(newText) == lst(oldText)) { + newText.pop(); + oldText.pop(); + toLine--; + } else if (newText[0] == oldText[0]) { + newText.shift(); + oldText.shift(); + fromLine++; + } else { + break; + } + } + var cutFront = 0, + cutEnd = 0; + var newTop = newText[0], + oldTop = oldText[0], + maxCutFront = Math.min(newTop.length, oldTop.length); + while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront)) { + ++cutFront; + } + var newBot = lst(newText), + oldBot = lst(oldText); + var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0), oldBot.length - (oldText.length == 1 ? cutFront : 0)); + while (cutEnd < maxCutEnd && newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) { + ++cutEnd; + } + // Try to move start of change to start of selection if ambiguous + if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) { + while (cutFront && cutFront > from.ch && newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) { + cutFront--; + cutEnd++; + } + } + newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\u200b+/, ""); + newText[0] = newText[0].slice(cutFront).replace(/\u200b+$/, ""); + var chFrom = Pos(fromLine, cutFront); + var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0); + if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) { + replaceRange(cm.doc, newText, chFrom, chTo, "+input"); + return true; + } + }; + ContentEditableInput.prototype.ensurePolled = function () { + this.forceCompositionEnd(); + }; + ContentEditableInput.prototype.reset = function () { + this.forceCompositionEnd(); + }; + ContentEditableInput.prototype.forceCompositionEnd = function () { + if (!this.composing) { + return; + } + clearTimeout(this.readDOMTimeout); + this.composing = null; + this.updateFromDOM(); + this.div.blur(); + this.div.focus(); + }; + ContentEditableInput.prototype.readFromDOMSoon = function () { + var this$1 = this; + if (this.readDOMTimeout != null) { + return; + } + this.readDOMTimeout = setTimeout(function () { + this$1.readDOMTimeout = null; + if (this$1.composing) { + if (this$1.composing.done) { + this$1.composing = null; + } else { + return; + } + } + this$1.updateFromDOM(); + }, 80); + }; + ContentEditableInput.prototype.updateFromDOM = function () { + var this$1 = this; + if (this.cm.isReadOnly() || !this.pollContent()) { + runInOp(this.cm, function () { + return regChange(this$1.cm); + }); + } + }; + ContentEditableInput.prototype.setUneditable = function (node) { + node.contentEditable = "false"; + }; + ContentEditableInput.prototype.onKeyPress = function (e) { + if (e.charCode == 0 || this.composing) { + return; + } + e.preventDefault(); + if (!this.cm.isReadOnly()) { + operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); + } + }; + ContentEditableInput.prototype.readOnlyChanged = function (val) { + this.div.contentEditable = String(val != "nocursor"); + }; + ContentEditableInput.prototype.onContextMenu = function () {}; + ContentEditableInput.prototype.resetPosition = function () {}; + ContentEditableInput.prototype.needsContentAttribute = true; + function posToDOM(cm, pos) { + var view = findViewForLine(cm, pos.line); + if (!view || view.hidden) { + return null; + } + var line = getLine(cm.doc, pos.line); + var info = mapFromLineView(view, line, pos.line); + var order = getOrder(line, cm.doc.direction), + side = "left"; + if (order) { + var partPos = getBidiPartAt(order, pos.ch); + side = partPos % 2 ? "right" : "left"; + } + var result = nodeAndOffsetInLineMap(info.map, pos.ch, side); + result.offset = result.collapse == "right" ? result.end : result.start; + return result; + } + function isInGutter(node) { + for (var scan = node; scan; scan = scan.parentNode) { + if (/CodeMirror-gutter-wrapper/.test(scan.className)) { + return true; + } + } + return false; + } + function badPos(pos, bad) { + if (bad) { + pos.bad = true; + } + return pos; + } + function domTextBetween(cm, from, to, fromLine, toLine) { + var text = "", + closing = false, + lineSep = cm.doc.lineSeparator(), + extraLinebreak = false; + function recognizeMarker(id) { + return function (marker) { + return marker.id == id; + }; + } + function close() { + if (closing) { + text += lineSep; + if (extraLinebreak) { + text += lineSep; + } + closing = extraLinebreak = false; + } + } + function addText(str) { + if (str) { + close(); + text += str; + } + } + function walk(node) { + if (node.nodeType == 1) { + var cmText = node.getAttribute("cm-text"); + if (cmText) { + addText(cmText); + return; + } + var markerID = node.getAttribute("cm-marker"), + range; + if (markerID) { + var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID)); + if (found.length && (range = found[0].find(0))) { + addText(getBetween(cm.doc, range.from, range.to).join(lineSep)); + } + return; + } + if (node.getAttribute("contenteditable") == "false") { + return; + } + var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName); + if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { + return; + } + if (isBlock) { + close(); + } + for (var i = 0; i < node.childNodes.length; i++) { + walk(node.childNodes[i]); + } + if (/^(pre|p)$/i.test(node.nodeName)) { + extraLinebreak = true; + } + if (isBlock) { + closing = true; + } + } else if (node.nodeType == 3) { + addText(node.nodeValue.replace(/\u200b/g, "").replace(/\u00a0/g, " ")); + } + } + for (;;) { + walk(from); + if (from == to) { + break; + } + from = from.nextSibling; + extraLinebreak = false; + } + return text; + } + function domToPos(cm, node, offset) { + var lineNode; + if (node == cm.display.lineDiv) { + lineNode = cm.display.lineDiv.childNodes[offset]; + if (!lineNode) { + return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true); + } + node = null; + offset = 0; + } else { + for (lineNode = node;; lineNode = lineNode.parentNode) { + if (!lineNode || lineNode == cm.display.lineDiv) { + return null; + } + if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { + break; + } + } + } + for (var i = 0; i < cm.display.view.length; i++) { + var lineView = cm.display.view[i]; + if (lineView.node == lineNode) { + return locateNodeInLineView(lineView, node, offset); + } + } + } + function locateNodeInLineView(lineView, node, offset) { + var wrapper = lineView.text.firstChild, + bad = false; + if (!node || !contains(wrapper, node)) { + return badPos(Pos(lineNo(lineView.line), 0), true); + } + if (node == wrapper) { + bad = true; + node = wrapper.childNodes[offset]; + offset = 0; + if (!node) { + var line = lineView.rest ? lst(lineView.rest) : lineView.line; + return badPos(Pos(lineNo(line), line.text.length), bad); + } + } + var textNode = node.nodeType == 3 ? node : null, + topNode = node; + if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) { + textNode = node.firstChild; + if (offset) { + offset = textNode.nodeValue.length; + } + } + while (topNode.parentNode != wrapper) { + topNode = topNode.parentNode; + } + var measure = lineView.measure, + maps = measure.maps; + function find(textNode, topNode, offset) { + for (var i = -1; i < (maps ? maps.length : 0); i++) { + var map = i < 0 ? measure.map : maps[i]; + for (var j = 0; j < map.length; j += 3) { + var curNode = map[j + 2]; + if (curNode == textNode || curNode == topNode) { + var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]); + var ch = map[j] + offset; + if (offset < 0 || curNode != textNode) { + ch = map[j + (offset ? 1 : 0)]; + } + return Pos(line, ch); + } + } + } + } + var found = find(textNode, topNode, offset); + if (found) { + return badPos(found, bad); + } + + // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems + for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) { + found = find(after, after.firstChild, 0); + if (found) { + return badPos(Pos(found.line, found.ch - dist), bad); + } else { + dist += after.textContent.length; + } + } + for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) { + found = find(before, before.firstChild, -1); + if (found) { + return badPos(Pos(found.line, found.ch + dist$1), bad); + } else { + dist$1 += before.textContent.length; + } + } + } + + // TEXTAREA INPUT STYLE + + var TextareaInput = function (cm) { + this.cm = cm; + // See input.poll and input.reset + this.prevInput = ""; + + // Flag that indicates whether we expect input to appear real soon + // now (after some event like 'keypress' or 'input') and are + // polling intensively. + this.pollingFast = false; + // Self-resetting timeout for the poller + this.polling = new Delayed(); + // Used to work around IE issue with selection being forgotten when focus moves away from textarea + this.hasSelection = false; + this.composing = null; + }; + TextareaInput.prototype.init = function (display) { + var this$1 = this; + var input = this, + cm = this.cm; + this.createField(display); + var te = this.textarea; + display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild); + + // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore) + if (ios) { + te.style.width = "0px"; + } + on(te, "input", function () { + if (ie && ie_version >= 9 && this$1.hasSelection) { + this$1.hasSelection = null; + } + input.poll(); + }); + on(te, "paste", function (e) { + if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { + return; + } + cm.state.pasteIncoming = +new Date(); + input.fastPoll(); + }); + function prepareCopyCut(e) { + if (signalDOMEvent(cm, e)) { + return; + } + if (cm.somethingSelected()) { + setLastCopied({ + lineWise: false, + text: cm.getSelections() + }); + } else if (!cm.options.lineWiseCopyCut) { + return; + } else { + var ranges = copyableRanges(cm); + setLastCopied({ + lineWise: true, + text: ranges.text + }); + if (e.type == "cut") { + cm.setSelections(ranges.ranges, null, sel_dontScroll); + } else { + input.prevInput = ""; + te.value = ranges.text.join("\n"); + selectInput(te); + } + } + if (e.type == "cut") { + cm.state.cutIncoming = +new Date(); + } + } + on(te, "cut", prepareCopyCut); + on(te, "copy", prepareCopyCut); + on(display.scroller, "paste", function (e) { + if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { + return; + } + if (!te.dispatchEvent) { + cm.state.pasteIncoming = +new Date(); + input.focus(); + return; + } + + // Pass the `paste` event to the textarea so it's handled by its event listener. + var event = new Event("paste"); + event.clipboardData = e.clipboardData; + te.dispatchEvent(event); + }); + + // Prevent normal selection in the editor (we handle our own) + on(display.lineSpace, "selectstart", function (e) { + if (!eventInWidget(display, e)) { + e_preventDefault(e); + } + }); + on(te, "compositionstart", function () { + var start = cm.getCursor("from"); + if (input.composing) { + input.composing.range.clear(); + } + input.composing = { + start: start, + range: cm.markText(start, cm.getCursor("to"), { + className: "CodeMirror-composing" + }) + }; + }); + on(te, "compositionend", function () { + if (input.composing) { + input.poll(); + input.composing.range.clear(); + input.composing = null; + } + }); + }; + TextareaInput.prototype.createField = function (_display) { + // Wraps and hides input textarea + this.wrapper = hiddenTextarea(); + // The semihidden textarea that is focused when the editor is + // focused, and receives input. + this.textarea = this.wrapper.firstChild; + }; + TextareaInput.prototype.screenReaderLabelChanged = function (label) { + // Label for screenreaders, accessibility + if (label) { + this.textarea.setAttribute('aria-label', label); + } else { + this.textarea.removeAttribute('aria-label'); + } + }; + TextareaInput.prototype.prepareSelection = function () { + // Redraw the selection and/or cursor + var cm = this.cm, + display = cm.display, + doc = cm.doc; + var result = prepareSelection(cm); + + // Move the hidden textarea near the cursor to prevent scrolling artifacts + if (cm.options.moveInputWithCursor) { + var headPos = cursorCoords(cm, doc.sel.primary().head, "div"); + var wrapOff = display.wrapper.getBoundingClientRect(), + lineOff = display.lineDiv.getBoundingClientRect(); + result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10, headPos.top + lineOff.top - wrapOff.top)); + result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10, headPos.left + lineOff.left - wrapOff.left)); + } + return result; + }; + TextareaInput.prototype.showSelection = function (drawn) { + var cm = this.cm, + display = cm.display; + removeChildrenAndAdd(display.cursorDiv, drawn.cursors); + removeChildrenAndAdd(display.selectionDiv, drawn.selection); + if (drawn.teTop != null) { + this.wrapper.style.top = drawn.teTop + "px"; + this.wrapper.style.left = drawn.teLeft + "px"; + } + }; + + // Reset the input to correspond to the selection (or to be empty, + // when not typing and nothing is selected) + TextareaInput.prototype.reset = function (typing) { + if (this.contextMenuPending || this.composing) { + return; + } + var cm = this.cm; + if (cm.somethingSelected()) { + this.prevInput = ""; + var content = cm.getSelection(); + this.textarea.value = content; + if (cm.state.focused) { + selectInput(this.textarea); + } + if (ie && ie_version >= 9) { + this.hasSelection = content; + } + } else if (!typing) { + this.prevInput = this.textarea.value = ""; + if (ie && ie_version >= 9) { + this.hasSelection = null; + } + } + }; + TextareaInput.prototype.getField = function () { + return this.textarea; + }; + TextareaInput.prototype.supportsTouch = function () { + return false; + }; + TextareaInput.prototype.focus = function () { + if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) { + try { + this.textarea.focus(); + } catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM + } + }; + TextareaInput.prototype.blur = function () { + this.textarea.blur(); + }; + TextareaInput.prototype.resetPosition = function () { + this.wrapper.style.top = this.wrapper.style.left = 0; + }; + TextareaInput.prototype.receivedFocus = function () { + this.slowPoll(); + }; + + // Poll for input changes, using the normal rate of polling. This + // runs as long as the editor is focused. + TextareaInput.prototype.slowPoll = function () { + var this$1 = this; + if (this.pollingFast) { + return; + } + this.polling.set(this.cm.options.pollInterval, function () { + this$1.poll(); + if (this$1.cm.state.focused) { + this$1.slowPoll(); + } + }); + }; + + // When an event has just come in that is likely to add or change + // something in the input textarea, we poll faster, to ensure that + // the change appears on the screen quickly. + TextareaInput.prototype.fastPoll = function () { + var missed = false, + input = this; + input.pollingFast = true; + function p() { + var changed = input.poll(); + if (!changed && !missed) { + missed = true; + input.polling.set(60, p); + } else { + input.pollingFast = false; + input.slowPoll(); + } + } + input.polling.set(20, p); + }; + + // Read input from the textarea, and update the document to match. + // When something is selected, it is present in the textarea, and + // selected (unless it is huge, in which case a placeholder is + // used). When nothing is selected, the cursor sits after previously + // seen text (can be empty), which is stored in prevInput (we must + // not reset the textarea when typing, because that breaks IME). + TextareaInput.prototype.poll = function () { + var this$1 = this; + var cm = this.cm, + input = this.textarea, + prevInput = this.prevInput; + // Since this is called a *lot*, try to bail out as cheaply as + // possible when it is clear that nothing happened. hasSelection + // will be the case when there is a lot of text in the textarea, + // in which case reading its value would be expensive. + if (this.contextMenuPending || !cm.state.focused || hasSelection(input) && !prevInput && !this.composing || cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq) { + return false; + } + var text = input.value; + // If nothing changed, bail. + if (text == prevInput && !cm.somethingSelected()) { + return false; + } + // Work around nonsensical selection resetting in IE9/10, and + // inexplicable appearance of private area unicode characters on + // some key combos in Mac (#2689). + if (ie && ie_version >= 9 && this.hasSelection === text || mac && /[\uf700-\uf7ff]/.test(text)) { + cm.display.input.reset(); + return false; + } + if (cm.doc.sel == cm.display.selForContextMenu) { + var first = text.charCodeAt(0); + if (first == 0x200b && !prevInput) { + prevInput = "\u200b"; + } + if (first == 0x21da) { + this.reset(); + return this.cm.execCommand("undo"); + } + } + // Find the part of the input that is actually new + var same = 0, + l = Math.min(prevInput.length, text.length); + while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { + ++same; + } + runInOp(cm, function () { + applyTextInput(cm, text.slice(same), prevInput.length - same, null, this$1.composing ? "*compose" : null); + + // Don't leave long text in the textarea, since it makes further polling slow + if (text.length > 1000 || text.indexOf("\n") > -1) { + input.value = this$1.prevInput = ""; + } else { + this$1.prevInput = text; + } + if (this$1.composing) { + this$1.composing.range.clear(); + this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor("to"), { + className: "CodeMirror-composing" + }); + } + }); + return true; + }; + TextareaInput.prototype.ensurePolled = function () { + if (this.pollingFast && this.poll()) { + this.pollingFast = false; + } + }; + TextareaInput.prototype.onKeyPress = function () { + if (ie && ie_version >= 9) { + this.hasSelection = null; + } + this.fastPoll(); + }; + TextareaInput.prototype.onContextMenu = function (e) { + var input = this, + cm = input.cm, + display = cm.display, + te = input.textarea; + if (input.contextMenuPending) { + input.contextMenuPending(); + } + var pos = posFromMouse(cm, e), + scrollPos = display.scroller.scrollTop; + if (!pos || presto) { + return; + } // Opera is difficult. + + // Reset the current text selection only if the click is done outside of the selection + // and 'resetSelectionOnContextMenu' option is true. + var reset = cm.options.resetSelectionOnContextMenu; + if (reset && cm.doc.sel.contains(pos) == -1) { + operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); + } + var oldCSS = te.style.cssText, + oldWrapperCSS = input.wrapper.style.cssText; + var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect(); + input.wrapper.style.cssText = "position: static"; + te.style.cssText = "position: absolute; width: 30px; height: 30px;\n top: " + (e.clientY - wrapperBox.top - 5) + "px; left: " + (e.clientX - wrapperBox.left - 5) + "px;\n z-index: 1000; background: " + (ie ? "rgba(255, 255, 255, .05)" : "transparent") + ";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; + var oldScrollY; + if (webkit) { + oldScrollY = window.scrollY; + } // Work around Chrome issue (#2712) + display.input.focus(); + if (webkit) { + window.scrollTo(null, oldScrollY); + } + display.input.reset(); + // Adds "Select all" to context menu in FF + if (!cm.somethingSelected()) { + te.value = input.prevInput = " "; + } + input.contextMenuPending = rehide; + display.selForContextMenu = cm.doc.sel; + clearTimeout(display.detectingSelectAll); + + // Select-all will be greyed out if there's nothing to select, so + // this adds a zero-width space so that we can later check whether + // it got selected. + function prepareSelectAllHack() { + if (te.selectionStart != null) { + var selected = cm.somethingSelected(); + var extval = "\u200b" + (selected ? te.value : ""); + te.value = "\u21da"; // Used to catch context-menu undo + te.value = extval; + input.prevInput = selected ? "" : "\u200b"; + te.selectionStart = 1; + te.selectionEnd = extval.length; + // Re-set this, in case some other handler touched the + // selection in the meantime. + display.selForContextMenu = cm.doc.sel; + } + } + function rehide() { + if (input.contextMenuPending != rehide) { + return; + } + input.contextMenuPending = false; + input.wrapper.style.cssText = oldWrapperCSS; + te.style.cssText = oldCSS; + if (ie && ie_version < 9) { + display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); + } + + // Try to detect the user choosing select-all + if (te.selectionStart != null) { + if (!ie || ie && ie_version < 9) { + prepareSelectAllHack(); + } + var i = 0, + poll = function () { + if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 && te.selectionEnd > 0 && input.prevInput == "\u200b") { + operation(cm, selectAll)(cm); + } else if (i++ < 10) { + display.detectingSelectAll = setTimeout(poll, 500); + } else { + display.selForContextMenu = null; + display.input.reset(); + } + }; + display.detectingSelectAll = setTimeout(poll, 200); + } + } + if (ie && ie_version >= 9) { + prepareSelectAllHack(); + } + if (captureRightClick) { + e_stop(e); + var mouseup = function () { + off(window, "mouseup", mouseup); + setTimeout(rehide, 20); + }; + on(window, "mouseup", mouseup); + } else { + setTimeout(rehide, 50); + } + }; + TextareaInput.prototype.readOnlyChanged = function (val) { + if (!val) { + this.reset(); + } + this.textarea.disabled = val == "nocursor"; + this.textarea.readOnly = !!val; + }; + TextareaInput.prototype.setUneditable = function () {}; + TextareaInput.prototype.needsContentAttribute = false; + function fromTextArea(textarea, options) { + options = options ? copyObj(options) : {}; + options.value = textarea.value; + if (!options.tabindex && textarea.tabIndex) { + options.tabindex = textarea.tabIndex; + } + if (!options.placeholder && textarea.placeholder) { + options.placeholder = textarea.placeholder; + } + // Set autofocus to true if this textarea is focused, or if it has + // autofocus and no other element is focused. + if (options.autofocus == null) { + var hasFocus = activeElt(); + options.autofocus = hasFocus == textarea || textarea.getAttribute("autofocus") != null && hasFocus == document.body; + } + function save() { + textarea.value = cm.getValue(); + } + var realSubmit; + if (textarea.form) { + on(textarea.form, "submit", save); + // Deplorable hack to make the submit method do the right thing. + if (!options.leaveSubmitMethodAlone) { + var form = textarea.form; + realSubmit = form.submit; + try { + var wrappedSubmit = form.submit = function () { + save(); + form.submit = realSubmit; + form.submit(); + form.submit = wrappedSubmit; + }; + } catch (e) {} + } + } + options.finishInit = function (cm) { + cm.save = save; + cm.getTextArea = function () { + return textarea; + }; + cm.toTextArea = function () { + cm.toTextArea = isNaN; // Prevent this from being ran twice + save(); + textarea.parentNode.removeChild(cm.getWrapperElement()); + textarea.style.display = ""; + if (textarea.form) { + off(textarea.form, "submit", save); + if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == "function") { + textarea.form.submit = realSubmit; + } + } + }; + }; + textarea.style.display = "none"; + var cm = CodeMirror(function (node) { + return textarea.parentNode.insertBefore(node, textarea.nextSibling); + }, options); + return cm; + } + function addLegacyProps(CodeMirror) { + CodeMirror.off = off; + CodeMirror.on = on; + CodeMirror.wheelEventPixels = wheelEventPixels; + CodeMirror.Doc = Doc; + CodeMirror.splitLines = splitLinesAuto; + CodeMirror.countColumn = countColumn; + CodeMirror.findColumn = findColumn; + CodeMirror.isWordChar = isWordCharBasic; + CodeMirror.Pass = Pass; + CodeMirror.signal = signal; + CodeMirror.Line = Line; + CodeMirror.changeEnd = changeEnd; + CodeMirror.scrollbarModel = scrollbarModel; + CodeMirror.Pos = Pos; + CodeMirror.cmpPos = cmp; + CodeMirror.modes = modes; + CodeMirror.mimeModes = mimeModes; + CodeMirror.resolveMode = resolveMode; + CodeMirror.getMode = getMode; + CodeMirror.modeExtensions = modeExtensions; + CodeMirror.extendMode = extendMode; + CodeMirror.copyState = copyState; + CodeMirror.startState = startState; + CodeMirror.innerMode = innerMode; + CodeMirror.commands = commands; + CodeMirror.keyMap = keyMap; + CodeMirror.keyName = keyName; + CodeMirror.isModifierKey = isModifierKey; + CodeMirror.lookupKey = lookupKey; + CodeMirror.normalizeKeyMap = normalizeKeyMap; + CodeMirror.StringStream = StringStream; + CodeMirror.SharedTextMarker = SharedTextMarker; + CodeMirror.TextMarker = TextMarker; + CodeMirror.LineWidget = LineWidget; + CodeMirror.e_preventDefault = e_preventDefault; + CodeMirror.e_stopPropagation = e_stopPropagation; + CodeMirror.e_stop = e_stop; + CodeMirror.addClass = addClass; + CodeMirror.contains = contains; + CodeMirror.rmClass = rmClass; + CodeMirror.keyNames = keyNames; + } + + // EDITOR CONSTRUCTOR + + defineOptions(CodeMirror); + addEditorMethods(CodeMirror); + + // Set up methods on CodeMirror's prototype to redirect to the editor's document. + var dontDelegate = "iter insert remove copy getEditor constructor".split(" "); + for (var prop in Doc.prototype) { + if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0) { + CodeMirror.prototype[prop] = function (method) { + return function () { + return method.apply(this.doc, arguments); + }; + }(Doc.prototype[prop]); + } + } + eventMixin(Doc); + CodeMirror.inputStyles = { + "textarea": TextareaInput, + "contenteditable": ContentEditableInput + }; + + // Extra arguments are stored as the mode's dependencies, which is + // used by (legacy) mechanisms like loadmode.js to automatically + // load a mode. (Preferred mechanism is the require/define calls.) + CodeMirror.defineMode = function (name /*, mode, …*/) { + if (!CodeMirror.defaults.mode && name != "null") { + CodeMirror.defaults.mode = name; + } + defineMode.apply(this, arguments); + }; + CodeMirror.defineMIME = defineMIME; + + // Minimal default mode. + CodeMirror.defineMode("null", function () { + return { + token: function (stream) { + return stream.skipToEnd(); + } + }; + }); + CodeMirror.defineMIME("text/plain", "null"); + + // EXTENSIONS + + CodeMirror.defineExtension = function (name, func) { + CodeMirror.prototype[name] = func; + }; + CodeMirror.defineDocExtension = function (name, func) { + Doc.prototype[name] = func; + }; + CodeMirror.fromTextArea = fromTextArea; + addLegacyProps(CodeMirror); + CodeMirror.version = "5.65.3"; + return CodeMirror; +}); + +/***/ }), + +/***/ "../../../node_modules/codemirror/mode/javascript/javascript.js": +/*!**********************************************************************!*\ + !*** ../../../node_modules/codemirror/mode/javascript/javascript.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function (mod) { + if (true) + // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"));else {} +})(function (CodeMirror) { + "use strict"; + + CodeMirror.defineMode("javascript", function (config, parserConfig) { + var indentUnit = config.indentUnit; + var statementIndent = parserConfig.statementIndent; + var jsonldMode = parserConfig.jsonld; + var jsonMode = parserConfig.json || jsonldMode; + var trackScope = parserConfig.trackScope !== false; + var isTS = parserConfig.typescript; + var wordRE = parserConfig.wordCharacters || /[\w$\xa1-\uffff]/; + + // Tokenizer + + var keywords = function () { + function kw(type) { + return { + type: type, + style: "keyword" + }; + } + var A = kw("keyword a"), + B = kw("keyword b"), + C = kw("keyword c"), + D = kw("keyword d"); + var operator = kw("operator"), + atom = { + type: "atom", + style: "atom" + }; + return { + "if": kw("if"), + "while": A, + "with": A, + "else": B, + "do": B, + "try": B, + "finally": B, + "return": D, + "break": D, + "continue": D, + "new": kw("new"), + "delete": C, + "void": C, + "throw": C, + "debugger": kw("debugger"), + "var": kw("var"), + "const": kw("var"), + "let": kw("var"), + "function": kw("function"), + "catch": kw("catch"), + "for": kw("for"), + "switch": kw("switch"), + "case": kw("case"), + "default": kw("default"), + "in": operator, + "typeof": operator, + "instanceof": operator, + "true": atom, + "false": atom, + "null": atom, + "undefined": atom, + "NaN": atom, + "Infinity": atom, + "this": kw("this"), + "class": kw("class"), + "super": kw("atom"), + "yield": C, + "export": kw("export"), + "import": kw("import"), + "extends": C, + "await": C + }; + }(); + var isOperatorChar = /[+\-*&%=<>!?|~^@]/; + var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/; + function readRegexp(stream) { + var escaped = false, + next, + inSet = false; + while ((next = stream.next()) != null) { + if (!escaped) { + if (next == "/" && !inSet) return; + if (next == "[") inSet = true;else if (inSet && next == "]") inSet = false; + } + escaped = !escaped && next == "\\"; + } + } + + // Used as scratch variables to communicate multiple values without + // consing up tons of objects. + var type, content; + function ret(tp, style, cont) { + type = tp; + content = cont; + return style; + } + function tokenBase(stream, state) { + var ch = stream.next(); + if (ch == '"' || ch == "'") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } else if (ch == "." && stream.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/)) { + return ret("number", "number"); + } else if (ch == "." && stream.match("..")) { + return ret("spread", "meta"); + } else if (/[\[\]{}\(\),;\:\.]/.test(ch)) { + return ret(ch); + } else if (ch == "=" && stream.eat(">")) { + return ret("=>", "operator"); + } else if (ch == "0" && stream.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) { + return ret("number", "number"); + } else if (/\d/.test(ch)) { + stream.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/); + return ret("number", "number"); + } else if (ch == "/") { + if (stream.eat("*")) { + state.tokenize = tokenComment; + return tokenComment(stream, state); + } else if (stream.eat("/")) { + stream.skipToEnd(); + return ret("comment", "comment"); + } else if (expressionAllowed(stream, state, 1)) { + readRegexp(stream); + stream.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/); + return ret("regexp", "string-2"); + } else { + stream.eat("="); + return ret("operator", "operator", stream.current()); + } + } else if (ch == "`") { + state.tokenize = tokenQuasi; + return tokenQuasi(stream, state); + } else if (ch == "#" && stream.peek() == "!") { + stream.skipToEnd(); + return ret("meta", "meta"); + } else if (ch == "#" && stream.eatWhile(wordRE)) { + return ret("variable", "property"); + } else if (ch == "<" && stream.match("!--") || ch == "-" && stream.match("->") && !/\S/.test(stream.string.slice(0, stream.start))) { + stream.skipToEnd(); + return ret("comment", "comment"); + } else if (isOperatorChar.test(ch)) { + if (ch != ">" || !state.lexical || state.lexical.type != ">") { + if (stream.eat("=")) { + if (ch == "!" || ch == "=") stream.eat("="); + } else if (/[<>*+\-|&?]/.test(ch)) { + stream.eat(ch); + if (ch == ">") stream.eat(ch); + } + } + if (ch == "?" && stream.eat(".")) return ret("."); + return ret("operator", "operator", stream.current()); + } else if (wordRE.test(ch)) { + stream.eatWhile(wordRE); + var word = stream.current(); + if (state.lastType != ".") { + if (keywords.propertyIsEnumerable(word)) { + var kw = keywords[word]; + return ret(kw.type, kw.style, word); + } + if (word == "async" && stream.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/, false)) return ret("async", "keyword", word); + } + return ret("variable", "variable", word); + } + } + function tokenString(quote) { + return function (stream, state) { + var escaped = false, + next; + if (jsonldMode && stream.peek() == "@" && stream.match(isJsonldKeyword)) { + state.tokenize = tokenBase; + return ret("jsonld-keyword", "meta"); + } + while ((next = stream.next()) != null) { + if (next == quote && !escaped) break; + escaped = !escaped && next == "\\"; + } + if (!escaped) state.tokenize = tokenBase; + return ret("string", "string"); + }; + } + function tokenComment(stream, state) { + var maybeEnd = false, + ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = tokenBase; + break; + } + maybeEnd = ch == "*"; + } + return ret("comment", "comment"); + } + function tokenQuasi(stream, state) { + var escaped = false, + next; + while ((next = stream.next()) != null) { + if (!escaped && (next == "`" || next == "$" && stream.eat("{"))) { + state.tokenize = tokenBase; + break; + } + escaped = !escaped && next == "\\"; + } + return ret("quasi", "string-2", stream.current()); + } + var brackets = "([{}])"; + // This is a crude lookahead trick to try and notice that we're + // parsing the argument patterns for a fat-arrow function before we + // actually hit the arrow token. It only works if the arrow is on + // the same line as the arguments and there's no strange noise + // (comments) in between. Fallback is to only notice when we hit the + // arrow, and not declare the arguments as locals for the arrow + // body. + function findFatArrow(stream, state) { + if (state.fatArrowAt) state.fatArrowAt = null; + var arrow = stream.string.indexOf("=>", stream.start); + if (arrow < 0) return; + if (isTS) { + // Try to skip TypeScript return type declarations after the arguments + var m = /:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(stream.string.slice(stream.start, arrow)); + if (m) arrow = m.index; + } + var depth = 0, + sawSomething = false; + for (var pos = arrow - 1; pos >= 0; --pos) { + var ch = stream.string.charAt(pos); + var bracket = brackets.indexOf(ch); + if (bracket >= 0 && bracket < 3) { + if (!depth) { + ++pos; + break; + } + if (--depth == 0) { + if (ch == "(") sawSomething = true; + break; + } + } else if (bracket >= 3 && bracket < 6) { + ++depth; + } else if (wordRE.test(ch)) { + sawSomething = true; + } else if (/["'\/`]/.test(ch)) { + for (;; --pos) { + if (pos == 0) return; + var next = stream.string.charAt(pos - 1); + if (next == ch && stream.string.charAt(pos - 2) != "\\") { + pos--; + break; + } + } + } else if (sawSomething && !depth) { + ++pos; + break; + } + } + if (sawSomething && !depth) state.fatArrowAt = pos; + } + + // Parser + + var atomicTypes = { + "atom": true, + "number": true, + "variable": true, + "string": true, + "regexp": true, + "this": true, + "import": true, + "jsonld-keyword": true + }; + function JSLexical(indented, column, type, align, prev, info) { + this.indented = indented; + this.column = column; + this.type = type; + this.prev = prev; + this.info = info; + if (align != null) this.align = align; + } + function inScope(state, varname) { + if (!trackScope) return false; + for (var v = state.localVars; v; v = v.next) if (v.name == varname) return true; + for (var cx = state.context; cx; cx = cx.prev) { + for (var v = cx.vars; v; v = v.next) if (v.name == varname) return true; + } + } + function parseJS(state, style, type, content, stream) { + var cc = state.cc; + // Communicate our context to the combinators. + // (Less wasteful than consing up a hundred closures on every call.) + cx.state = state; + cx.stream = stream; + cx.marked = null, cx.cc = cc; + cx.style = style; + if (!state.lexical.hasOwnProperty("align")) state.lexical.align = true; + while (true) { + var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement; + if (combinator(type, content)) { + while (cc.length && cc[cc.length - 1].lex) cc.pop()(); + if (cx.marked) return cx.marked; + if (type == "variable" && inScope(state, content)) return "variable-2"; + return style; + } + } + } + + // Combinator utils + + var cx = { + state: null, + column: null, + marked: null, + cc: null + }; + function pass() { + for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]); + } + function cont() { + pass.apply(null, arguments); + return true; + } + function inList(name, list) { + for (var v = list; v; v = v.next) if (v.name == name) return true; + return false; + } + function register(varname) { + var state = cx.state; + cx.marked = "def"; + if (!trackScope) return; + if (state.context) { + if (state.lexical.info == "var" && state.context && state.context.block) { + // FIXME function decls are also not block scoped + var newContext = registerVarScoped(varname, state.context); + if (newContext != null) { + state.context = newContext; + return; + } + } else if (!inList(varname, state.localVars)) { + state.localVars = new Var(varname, state.localVars); + return; + } + } + // Fall through means this is global + if (parserConfig.globalVars && !inList(varname, state.globalVars)) state.globalVars = new Var(varname, state.globalVars); + } + function registerVarScoped(varname, context) { + if (!context) { + return null; + } else if (context.block) { + var inner = registerVarScoped(varname, context.prev); + if (!inner) return null; + if (inner == context.prev) return context; + return new Context(inner, context.vars, true); + } else if (inList(varname, context.vars)) { + return context; + } else { + return new Context(context.prev, new Var(varname, context.vars), false); + } + } + function isModifier(name) { + return name == "public" || name == "private" || name == "protected" || name == "abstract" || name == "readonly"; + } + + // Combinators + + function Context(prev, vars, block) { + this.prev = prev; + this.vars = vars; + this.block = block; + } + function Var(name, next) { + this.name = name; + this.next = next; + } + var defaultVars = new Var("this", new Var("arguments", null)); + function pushcontext() { + cx.state.context = new Context(cx.state.context, cx.state.localVars, false); + cx.state.localVars = defaultVars; + } + function pushblockcontext() { + cx.state.context = new Context(cx.state.context, cx.state.localVars, true); + cx.state.localVars = null; + } + pushcontext.lex = pushblockcontext.lex = true; + function popcontext() { + cx.state.localVars = cx.state.context.vars; + cx.state.context = cx.state.context.prev; + } + popcontext.lex = true; + function pushlex(type, info) { + var result = function () { + var state = cx.state, + indent = state.indented; + if (state.lexical.type == "stat") indent = state.lexical.indented;else for (var outer = state.lexical; outer && outer.type == ")" && outer.align; outer = outer.prev) indent = outer.indented; + state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info); + }; + result.lex = true; + return result; + } + function poplex() { + var state = cx.state; + if (state.lexical.prev) { + if (state.lexical.type == ")") state.indented = state.lexical.indented; + state.lexical = state.lexical.prev; + } + } + poplex.lex = true; + function expect(wanted) { + function exp(type) { + if (type == wanted) return cont();else if (wanted == ";" || type == "}" || type == ")" || type == "]") return pass();else return cont(exp); + } + ; + return exp; + } + function statement(type, value) { + if (type == "var") return cont(pushlex("vardef", value), vardef, expect(";"), poplex); + if (type == "keyword a") return cont(pushlex("form"), parenExpr, statement, poplex); + if (type == "keyword b") return cont(pushlex("form"), statement, poplex); + if (type == "keyword d") return cx.stream.match(/^\s*$/, false) ? cont() : cont(pushlex("stat"), maybeexpression, expect(";"), poplex); + if (type == "debugger") return cont(expect(";")); + if (type == "{") return cont(pushlex("}"), pushblockcontext, block, poplex, popcontext); + if (type == ";") return cont(); + if (type == "if") { + if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex) cx.state.cc.pop()(); + return cont(pushlex("form"), parenExpr, statement, poplex, maybeelse); + } + if (type == "function") return cont(functiondef); + if (type == "for") return cont(pushlex("form"), pushblockcontext, forspec, statement, popcontext, poplex); + if (type == "class" || isTS && value == "interface") { + cx.marked = "keyword"; + return cont(pushlex("form", type == "class" ? type : value), className, poplex); + } + if (type == "variable") { + if (isTS && value == "declare") { + cx.marked = "keyword"; + return cont(statement); + } else if (isTS && (value == "module" || value == "enum" || value == "type") && cx.stream.match(/^\s*\w/, false)) { + cx.marked = "keyword"; + if (value == "enum") return cont(enumdef);else if (value == "type") return cont(typename, expect("operator"), typeexpr, expect(";"));else return cont(pushlex("form"), pattern, expect("{"), pushlex("}"), block, poplex, poplex); + } else if (isTS && value == "namespace") { + cx.marked = "keyword"; + return cont(pushlex("form"), expression, statement, poplex); + } else if (isTS && value == "abstract") { + cx.marked = "keyword"; + return cont(statement); + } else { + return cont(pushlex("stat"), maybelabel); + } + } + if (type == "switch") return cont(pushlex("form"), parenExpr, expect("{"), pushlex("}", "switch"), pushblockcontext, block, poplex, poplex, popcontext); + if (type == "case") return cont(expression, expect(":")); + if (type == "default") return cont(expect(":")); + if (type == "catch") return cont(pushlex("form"), pushcontext, maybeCatchBinding, statement, poplex, popcontext); + if (type == "export") return cont(pushlex("stat"), afterExport, poplex); + if (type == "import") return cont(pushlex("stat"), afterImport, poplex); + if (type == "async") return cont(statement); + if (value == "@") return cont(expression, statement); + return pass(pushlex("stat"), expression, expect(";"), poplex); + } + function maybeCatchBinding(type) { + if (type == "(") return cont(funarg, expect(")")); + } + function expression(type, value) { + return expressionInner(type, value, false); + } + function expressionNoComma(type, value) { + return expressionInner(type, value, true); + } + function parenExpr(type) { + if (type != "(") return pass(); + return cont(pushlex(")"), maybeexpression, expect(")"), poplex); + } + function expressionInner(type, value, noComma) { + if (cx.state.fatArrowAt == cx.stream.start) { + var body = noComma ? arrowBodyNoComma : arrowBody; + if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, expect("=>"), body, popcontext);else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext); + } + var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma; + if (atomicTypes.hasOwnProperty(type)) return cont(maybeop); + if (type == "function") return cont(functiondef, maybeop); + if (type == "class" || isTS && value == "interface") { + cx.marked = "keyword"; + return cont(pushlex("form"), classExpression, poplex); + } + if (type == "keyword c" || type == "async") return cont(noComma ? expressionNoComma : expression); + if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeop); + if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression); + if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop); + if (type == "{") return contCommasep(objprop, "}", null, maybeop); + if (type == "quasi") return pass(quasi, maybeop); + if (type == "new") return cont(maybeTarget(noComma)); + return cont(); + } + function maybeexpression(type) { + if (type.match(/[;\}\)\],]/)) return pass(); + return pass(expression); + } + function maybeoperatorComma(type, value) { + if (type == ",") return cont(maybeexpression); + return maybeoperatorNoComma(type, value, false); + } + function maybeoperatorNoComma(type, value, noComma) { + var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma; + var expr = noComma == false ? expression : expressionNoComma; + if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext); + if (type == "operator") { + if (/\+\+|--/.test(value) || isTS && value == "!") return cont(me); + if (isTS && value == "<" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/, false)) return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, me); + if (value == "?") return cont(expression, expect(":"), expr); + return cont(expr); + } + if (type == "quasi") { + return pass(quasi, me); + } + if (type == ";") return; + if (type == "(") return contCommasep(expressionNoComma, ")", "call", me); + if (type == ".") return cont(property, me); + if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me); + if (isTS && value == "as") { + cx.marked = "keyword"; + return cont(typeexpr, me); + } + if (type == "regexp") { + cx.state.lastType = cx.marked = "operator"; + cx.stream.backUp(cx.stream.pos - cx.stream.start - 1); + return cont(expr); + } + } + function quasi(type, value) { + if (type != "quasi") return pass(); + if (value.slice(value.length - 2) != "${") return cont(quasi); + return cont(maybeexpression, continueQuasi); + } + function continueQuasi(type) { + if (type == "}") { + cx.marked = "string-2"; + cx.state.tokenize = tokenQuasi; + return cont(quasi); + } + } + function arrowBody(type) { + findFatArrow(cx.stream, cx.state); + return pass(type == "{" ? statement : expression); + } + function arrowBodyNoComma(type) { + findFatArrow(cx.stream, cx.state); + return pass(type == "{" ? statement : expressionNoComma); + } + function maybeTarget(noComma) { + return function (type) { + if (type == ".") return cont(noComma ? targetNoComma : target);else if (type == "variable" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma);else return pass(noComma ? expressionNoComma : expression); + }; + } + function target(_, value) { + if (value == "target") { + cx.marked = "keyword"; + return cont(maybeoperatorComma); + } + } + function targetNoComma(_, value) { + if (value == "target") { + cx.marked = "keyword"; + return cont(maybeoperatorNoComma); + } + } + function maybelabel(type) { + if (type == ":") return cont(poplex, statement); + return pass(maybeoperatorComma, expect(";"), poplex); + } + function property(type) { + if (type == "variable") { + cx.marked = "property"; + return cont(); + } + } + function objprop(type, value) { + if (type == "async") { + cx.marked = "property"; + return cont(objprop); + } else if (type == "variable" || cx.style == "keyword") { + cx.marked = "property"; + if (value == "get" || value == "set") return cont(getterSetter); + var m; // Work around fat-arrow-detection complication for detecting typescript typed arrow params + if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\s*:\s*/, false))) cx.state.fatArrowAt = cx.stream.pos + m[0].length; + return cont(afterprop); + } else if (type == "number" || type == "string") { + cx.marked = jsonldMode ? "property" : cx.style + " property"; + return cont(afterprop); + } else if (type == "jsonld-keyword") { + return cont(afterprop); + } else if (isTS && isModifier(value)) { + cx.marked = "keyword"; + return cont(objprop); + } else if (type == "[") { + return cont(expression, maybetype, expect("]"), afterprop); + } else if (type == "spread") { + return cont(expressionNoComma, afterprop); + } else if (value == "*") { + cx.marked = "keyword"; + return cont(objprop); + } else if (type == ":") { + return pass(afterprop); + } + } + function getterSetter(type) { + if (type != "variable") return pass(afterprop); + cx.marked = "property"; + return cont(functiondef); + } + function afterprop(type) { + if (type == ":") return cont(expressionNoComma); + if (type == "(") return pass(functiondef); + } + function commasep(what, end, sep) { + function proceed(type, value) { + if (sep ? sep.indexOf(type) > -1 : type == ",") { + var lex = cx.state.lexical; + if (lex.info == "call") lex.pos = (lex.pos || 0) + 1; + return cont(function (type, value) { + if (type == end || value == end) return pass(); + return pass(what); + }, proceed); + } + if (type == end || value == end) return cont(); + if (sep && sep.indexOf(";") > -1) return pass(what); + return cont(expect(end)); + } + return function (type, value) { + if (type == end || value == end) return cont(); + return pass(what, proceed); + }; + } + function contCommasep(what, end, info) { + for (var i = 3; i < arguments.length; i++) cx.cc.push(arguments[i]); + return cont(pushlex(end, info), commasep(what, end), poplex); + } + function block(type) { + if (type == "}") return cont(); + return pass(statement, block); + } + function maybetype(type, value) { + if (isTS) { + if (type == ":") return cont(typeexpr); + if (value == "?") return cont(maybetype); + } + } + function maybetypeOrIn(type, value) { + if (isTS && (type == ":" || value == "in")) return cont(typeexpr); + } + function mayberettype(type) { + if (isTS && type == ":") { + if (cx.stream.match(/^\s*\w+\s+is\b/, false)) return cont(expression, isKW, typeexpr);else return cont(typeexpr); + } + } + function isKW(_, value) { + if (value == "is") { + cx.marked = "keyword"; + return cont(); + } + } + function typeexpr(type, value) { + if (value == "keyof" || value == "typeof" || value == "infer" || value == "readonly") { + cx.marked = "keyword"; + return cont(value == "typeof" ? expressionNoComma : typeexpr); + } + if (type == "variable" || value == "void") { + cx.marked = "type"; + return cont(afterType); + } + if (value == "|" || value == "&") return cont(typeexpr); + if (type == "string" || type == "number" || type == "atom") return cont(afterType); + if (type == "[") return cont(pushlex("]"), commasep(typeexpr, "]", ","), poplex, afterType); + if (type == "{") return cont(pushlex("}"), typeprops, poplex, afterType); + if (type == "(") return cont(commasep(typearg, ")"), maybeReturnType, afterType); + if (type == "<") return cont(commasep(typeexpr, ">"), typeexpr); + if (type == "quasi") { + return pass(quasiType, afterType); + } + } + function maybeReturnType(type) { + if (type == "=>") return cont(typeexpr); + } + function typeprops(type) { + if (type.match(/[\}\)\]]/)) return cont(); + if (type == "," || type == ";") return cont(typeprops); + return pass(typeprop, typeprops); + } + function typeprop(type, value) { + if (type == "variable" || cx.style == "keyword") { + cx.marked = "property"; + return cont(typeprop); + } else if (value == "?" || type == "number" || type == "string") { + return cont(typeprop); + } else if (type == ":") { + return cont(typeexpr); + } else if (type == "[") { + return cont(expect("variable"), maybetypeOrIn, expect("]"), typeprop); + } else if (type == "(") { + return pass(functiondecl, typeprop); + } else if (!type.match(/[;\}\)\],]/)) { + return cont(); + } + } + function quasiType(type, value) { + if (type != "quasi") return pass(); + if (value.slice(value.length - 2) != "${") return cont(quasiType); + return cont(typeexpr, continueQuasiType); + } + function continueQuasiType(type) { + if (type == "}") { + cx.marked = "string-2"; + cx.state.tokenize = tokenQuasi; + return cont(quasiType); + } + } + function typearg(type, value) { + if (type == "variable" && cx.stream.match(/^\s*[?:]/, false) || value == "?") return cont(typearg); + if (type == ":") return cont(typeexpr); + if (type == "spread") return cont(typearg); + return pass(typeexpr); + } + function afterType(type, value) { + if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType); + if (value == "|" || type == "." || value == "&") return cont(typeexpr); + if (type == "[") return cont(typeexpr, expect("]"), afterType); + if (value == "extends" || value == "implements") { + cx.marked = "keyword"; + return cont(typeexpr); + } + if (value == "?") return cont(typeexpr, expect(":"), typeexpr); + } + function maybeTypeArgs(_, value) { + if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType); + } + function typeparam() { + return pass(typeexpr, maybeTypeDefault); + } + function maybeTypeDefault(_, value) { + if (value == "=") return cont(typeexpr); + } + function vardef(_, value) { + if (value == "enum") { + cx.marked = "keyword"; + return cont(enumdef); + } + return pass(pattern, maybetype, maybeAssign, vardefCont); + } + function pattern(type, value) { + if (isTS && isModifier(value)) { + cx.marked = "keyword"; + return cont(pattern); + } + if (type == "variable") { + register(value); + return cont(); + } + if (type == "spread") return cont(pattern); + if (type == "[") return contCommasep(eltpattern, "]"); + if (type == "{") return contCommasep(proppattern, "}"); + } + function proppattern(type, value) { + if (type == "variable" && !cx.stream.match(/^\s*:/, false)) { + register(value); + return cont(maybeAssign); + } + if (type == "variable") cx.marked = "property"; + if (type == "spread") return cont(pattern); + if (type == "}") return pass(); + if (type == "[") return cont(expression, expect(']'), expect(':'), proppattern); + return cont(expect(":"), pattern, maybeAssign); + } + function eltpattern() { + return pass(pattern, maybeAssign); + } + function maybeAssign(_type, value) { + if (value == "=") return cont(expressionNoComma); + } + function vardefCont(type) { + if (type == ",") return cont(vardef); + } + function maybeelse(type, value) { + if (type == "keyword b" && value == "else") return cont(pushlex("form", "else"), statement, poplex); + } + function forspec(type, value) { + if (value == "await") return cont(forspec); + if (type == "(") return cont(pushlex(")"), forspec1, poplex); + } + function forspec1(type) { + if (type == "var") return cont(vardef, forspec2); + if (type == "variable") return cont(forspec2); + return pass(forspec2); + } + function forspec2(type, value) { + if (type == ")") return cont(); + if (type == ";") return cont(forspec2); + if (value == "in" || value == "of") { + cx.marked = "keyword"; + return cont(expression, forspec2); + } + return pass(expression, forspec2); + } + function functiondef(type, value) { + if (value == "*") { + cx.marked = "keyword"; + return cont(functiondef); + } + if (type == "variable") { + register(value); + return cont(functiondef); + } + if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, mayberettype, statement, popcontext); + if (isTS && value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, functiondef); + } + function functiondecl(type, value) { + if (value == "*") { + cx.marked = "keyword"; + return cont(functiondecl); + } + if (type == "variable") { + register(value); + return cont(functiondecl); + } + if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, mayberettype, popcontext); + if (isTS && value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, functiondecl); + } + function typename(type, value) { + if (type == "keyword" || type == "variable") { + cx.marked = "type"; + return cont(typename); + } else if (value == "<") { + return cont(pushlex(">"), commasep(typeparam, ">"), poplex); + } + } + function funarg(type, value) { + if (value == "@") cont(expression, funarg); + if (type == "spread") return cont(funarg); + if (isTS && isModifier(value)) { + cx.marked = "keyword"; + return cont(funarg); + } + if (isTS && type == "this") return cont(maybetype, maybeAssign); + return pass(pattern, maybetype, maybeAssign); + } + function classExpression(type, value) { + // Class expressions may have an optional name. + if (type == "variable") return className(type, value); + return classNameAfter(type, value); + } + function className(type, value) { + if (type == "variable") { + register(value); + return cont(classNameAfter); + } + } + function classNameAfter(type, value) { + if (value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, classNameAfter); + if (value == "extends" || value == "implements" || isTS && type == ",") { + if (value == "implements") cx.marked = "keyword"; + return cont(isTS ? typeexpr : expression, classNameAfter); + } + if (type == "{") return cont(pushlex("}"), classBody, poplex); + } + function classBody(type, value) { + if (type == "async" || type == "variable" && (value == "static" || value == "get" || value == "set" || isTS && isModifier(value)) && cx.stream.match(/^\s+[\w$\xa1-\uffff]/, false)) { + cx.marked = "keyword"; + return cont(classBody); + } + if (type == "variable" || cx.style == "keyword") { + cx.marked = "property"; + return cont(classfield, classBody); + } + if (type == "number" || type == "string") return cont(classfield, classBody); + if (type == "[") return cont(expression, maybetype, expect("]"), classfield, classBody); + if (value == "*") { + cx.marked = "keyword"; + return cont(classBody); + } + if (isTS && type == "(") return pass(functiondecl, classBody); + if (type == ";" || type == ",") return cont(classBody); + if (type == "}") return cont(); + if (value == "@") return cont(expression, classBody); + } + function classfield(type, value) { + if (value == "!") return cont(classfield); + if (value == "?") return cont(classfield); + if (type == ":") return cont(typeexpr, maybeAssign); + if (value == "=") return cont(expressionNoComma); + var context = cx.state.lexical.prev, + isInterface = context && context.info == "interface"; + return pass(isInterface ? functiondecl : functiondef); + } + function afterExport(type, value) { + if (value == "*") { + cx.marked = "keyword"; + return cont(maybeFrom, expect(";")); + } + if (value == "default") { + cx.marked = "keyword"; + return cont(expression, expect(";")); + } + if (type == "{") return cont(commasep(exportField, "}"), maybeFrom, expect(";")); + return pass(statement); + } + function exportField(type, value) { + if (value == "as") { + cx.marked = "keyword"; + return cont(expect("variable")); + } + if (type == "variable") return pass(expressionNoComma, exportField); + } + function afterImport(type) { + if (type == "string") return cont(); + if (type == "(") return pass(expression); + if (type == ".") return pass(maybeoperatorComma); + return pass(importSpec, maybeMoreImports, maybeFrom); + } + function importSpec(type, value) { + if (type == "{") return contCommasep(importSpec, "}"); + if (type == "variable") register(value); + if (value == "*") cx.marked = "keyword"; + return cont(maybeAs); + } + function maybeMoreImports(type) { + if (type == ",") return cont(importSpec, maybeMoreImports); + } + function maybeAs(_type, value) { + if (value == "as") { + cx.marked = "keyword"; + return cont(importSpec); + } + } + function maybeFrom(_type, value) { + if (value == "from") { + cx.marked = "keyword"; + return cont(expression); + } + } + function arrayLiteral(type) { + if (type == "]") return cont(); + return pass(commasep(expressionNoComma, "]")); + } + function enumdef() { + return pass(pushlex("form"), pattern, expect("{"), pushlex("}"), commasep(enummember, "}"), poplex, poplex); + } + function enummember() { + return pass(pattern, maybeAssign); + } + function isContinuedStatement(state, textAfter) { + return state.lastType == "operator" || state.lastType == "," || isOperatorChar.test(textAfter.charAt(0)) || /[,.]/.test(textAfter.charAt(0)); + } + function expressionAllowed(stream, state, backUp) { + return state.tokenize == tokenBase && /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(state.lastType) || state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))); + } + + // Interface + + return { + startState: function (basecolumn) { + var state = { + tokenize: tokenBase, + lastType: "sof", + cc: [], + lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false), + localVars: parserConfig.localVars, + context: parserConfig.localVars && new Context(null, null, false), + indented: basecolumn || 0 + }; + if (parserConfig.globalVars && typeof parserConfig.globalVars == "object") state.globalVars = parserConfig.globalVars; + return state; + }, + token: function (stream, state) { + if (stream.sol()) { + if (!state.lexical.hasOwnProperty("align")) state.lexical.align = false; + state.indented = stream.indentation(); + findFatArrow(stream, state); + } + if (state.tokenize != tokenComment && stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + if (type == "comment") return style; + state.lastType = type == "operator" && (content == "++" || content == "--") ? "incdec" : type; + return parseJS(state, style, type, content, stream); + }, + indent: function (state, textAfter) { + if (state.tokenize == tokenComment || state.tokenize == tokenQuasi) return CodeMirror.Pass; + if (state.tokenize != tokenBase) return 0; + var firstChar = textAfter && textAfter.charAt(0), + lexical = state.lexical, + top; + // Kludge to prevent 'maybelse' from blocking lexical scope pops + if (!/^\s*else\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) { + var c = state.cc[i]; + if (c == poplex) lexical = lexical.prev;else if (c != maybeelse && c != popcontext) break; + } + while ((lexical.type == "stat" || lexical.type == "form") && (firstChar == "}" || (top = state.cc[state.cc.length - 1]) && (top == maybeoperatorComma || top == maybeoperatorNoComma) && !/^[,\.=+\-*:?[\(]/.test(textAfter))) lexical = lexical.prev; + if (statementIndent && lexical.type == ")" && lexical.prev.type == "stat") lexical = lexical.prev; + var type = lexical.type, + closing = firstChar == type; + if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info.length + 1 : 0);else if (type == "form" && firstChar == "{") return lexical.indented;else if (type == "form") return lexical.indented + indentUnit;else if (type == "stat") return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);else if (lexical.info == "switch" && !closing && parserConfig.doubleIndentSwitch != false) return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit);else if (lexical.align) return lexical.column + (closing ? 0 : 1);else return lexical.indented + (closing ? 0 : indentUnit); + }, + electricInput: /^\s*(?:case .*?:|default:|\{|\})$/, + blockCommentStart: jsonMode ? null : "/*", + blockCommentEnd: jsonMode ? null : "*/", + blockCommentContinue: jsonMode ? null : " * ", + lineComment: jsonMode ? null : "//", + fold: "brace", + closeBrackets: "()[]{}''\"\"``", + helperType: jsonMode ? "json" : "javascript", + jsonldMode: jsonldMode, + jsonMode: jsonMode, + expressionAllowed: expressionAllowed, + skipExpression: function (state) { + parseJS(state, "atom", "atom", "true", new CodeMirror.StringStream("", 2, null)); + } + }; + }); + CodeMirror.registerHelper("wordChars", "javascript", /[\w$]/); + CodeMirror.defineMIME("text/javascript", "javascript"); + CodeMirror.defineMIME("text/ecmascript", "javascript"); + CodeMirror.defineMIME("application/javascript", "javascript"); + CodeMirror.defineMIME("application/x-javascript", "javascript"); + CodeMirror.defineMIME("application/ecmascript", "javascript"); + CodeMirror.defineMIME("application/json", { + name: "javascript", + json: true + }); + CodeMirror.defineMIME("application/x-json", { + name: "javascript", + json: true + }); + CodeMirror.defineMIME("application/manifest+json", { + name: "javascript", + json: true + }); + CodeMirror.defineMIME("application/ld+json", { + name: "javascript", + jsonld: true + }); + CodeMirror.defineMIME("text/typescript", { + name: "javascript", + typescript: true + }); + CodeMirror.defineMIME("application/typescript", { + name: "javascript", + typescript: true + }); +}); + +/***/ }), + /***/ "../../../node_modules/copy-to-clipboard/index.js": /*!********************************************************!*\ !*** ../../../node_modules/copy-to-clipboard/index.js ***! \********************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var deselectCurrent = __webpack_require__(/*! toggle-selection */ "../../../node_modules/toggle-selection/index.js"); @@ -11488,6 +28739,7 @@ module.exports = copy; \***********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -11504,6 +28756,7 @@ const isNode = exports.isNode = false; \****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) { @@ -12065,6 +29318,7 @@ exports.decodeXML = decodeXML; \**************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; // Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134 @@ -12124,6 +29378,7 @@ exports["default"] = decodeCodePoint; \****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; var __importDefault = void 0 && (void 0).__importDefault || function (mod) { @@ -12209,6 +29464,7 @@ function encodeHTMLTrieRe(regExp, str) { \****************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -12322,6 +29578,7 @@ exports.escapeText = getEscaper(/[&<>\u00A0]/g, new Map([[38, "&"], [60, "&l \************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; // Generated using scripts/write-decode-map.ts @@ -12342,6 +29599,7 @@ exports["default"] = new Uint16Array( \***********************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; // Generated using scripts/write-decode-map.ts @@ -12362,6 +29620,7 @@ exports["default"] = new Uint16Array( \*******************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; // Generated using scripts/write-encode-map.ts @@ -12636,6 +29895,7 @@ exports["default"] = new Map( /* #__PURE__ */restoreDiff([[9, " "], [0, "&Ne \***************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -12880,6 +30140,7 @@ Object.defineProperty(exports, "decodeXMLStrict", ({ \*************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -21547,6 +38808,7 @@ exports.wrapHandler = wrapHandler; \*************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -21667,6 +38929,7 @@ exports.getFrameData = getFrameData; \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -21697,6 +38960,7 @@ exports.getNonce = getNonce; \************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; /*! @@ -21799,6 +39063,7 @@ function isValidObject(val) { \*******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -22367,6 +39632,7 @@ function isWebSocket(val) { \*******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -22568,6 +39834,7 @@ function stringifyMessage(msg, replacer) { \*****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) { @@ -22604,6 +39871,7 @@ __exportStar(__webpack_require__(/*! ./common */ "../../../node_modules/graphql- \*******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -22917,6 +40185,7 @@ function handleProtocols(protocols) { \******************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -22980,6 +40249,7 @@ function limitCloseReason(reason, whenTooLong) { \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -23195,6 +40465,7 @@ function formatError(error) { \*****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -23242,6 +40513,7 @@ var _locatedError = __webpack_require__(/*! ./locatedError.mjs */ "../../../node \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -23283,6 +40555,7 @@ function isLocatedGraphQLError(error) { \***********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -23310,6 +40583,7 @@ function syntaxError(source, position, description) { \*****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -23450,6 +40724,7 @@ function getFieldEntryKey(node) { \***********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -24127,6 +41402,7 @@ function getFieldDef(schema, parentType, fieldNode) { \*********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -24205,6 +41481,7 @@ var _values = __webpack_require__(/*! ./values.mjs */ "../../../node_modules/gra \********************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -24271,6 +41548,7 @@ function mapAsyncIterator(iterable, callback) { \*************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -24470,6 +41748,7 @@ async function executeSubscription(exeContext) { \**********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -24661,6 +41940,7 @@ function hasOwnProperty(obj, prop) { \*************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -24790,6 +42070,7 @@ function graphqlImpl(args) { \***********************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26078,6 +43359,7 @@ var _index6 = __webpack_require__(/*! ./utilities/index.mjs */ "../../../node_mo \******************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26117,6 +43399,7 @@ function pathToArray(path) { \***********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26138,6 +43421,7 @@ function devAssert(condition, message) { \************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26177,6 +43461,7 @@ function didYouMean(firstArg, secondArg) { \*********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26208,6 +43493,7 @@ function groupBy(list, keyFn) { \**************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26229,6 +43515,7 @@ function identityFunc(x) { \*********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26328,6 +43615,7 @@ function getObjectTag(object) { \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26391,6 +43679,7 @@ spurious results.`); \***********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26412,6 +43701,7 @@ function invariant(condition, message) { \*****************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26434,6 +43724,7 @@ function isAsyncIterable(maybeAsyncIterable) { \******************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26469,6 +43760,7 @@ function isIterableObject(maybeIterable) { \**************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26491,6 +43783,7 @@ function isObjectLike(value) { \***********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26513,6 +43806,7 @@ function isPromise(value) { \********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26562,6 +43856,7 @@ function keyMap(list, keyFn) { \***********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26601,6 +43896,7 @@ function keyValMap(list, keyFn, valFn) { \**********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26627,6 +43923,7 @@ function mapValue(map, fn) { \**********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26669,6 +43966,7 @@ function memoize3(fn) { \****************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26734,6 +44032,7 @@ function isDigit(code) { \****************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26755,6 +44054,7 @@ function printPathArray(path) { \******************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26786,6 +44086,7 @@ function promiseForObject(object) { \***************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26816,6 +44117,7 @@ function promiseReduce(values, callbackFn, initialValue) { \****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26938,6 +44240,7 @@ function stringToArray(str) { \*********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26968,6 +44271,7 @@ class NonErrorThrown extends Error { \**********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -26996,6 +44300,7 @@ function toObjMap(obj) { \******************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -27186,6 +44491,7 @@ var OperationTypeNode; \**************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -27341,6 +44647,7 @@ function printBlockString(value, options) { \*******************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -27424,6 +44731,7 @@ function isNameContinue(code) { \********************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -27470,6 +44778,7 @@ var DirectiveLocation; \********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -27682,6 +44991,7 @@ var _directiveLocation = __webpack_require__(/*! ./directiveLocation.mjs */ "../ \********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -27752,6 +45062,7 @@ var Kind; \********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -28480,6 +45791,7 @@ function readName(lexer, start) { \***********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -28521,6 +45833,7 @@ function getLocation(source, position) { \*********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -29871,6 +47184,7 @@ function getTokenKindDesc(kind) { \*************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -29926,6 +47240,7 @@ function isTypeExtensionNode(node) { \****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -29983,6 +47298,7 @@ function printPrefixedLines(lines) { \**************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -30022,6 +47338,7 @@ const escapeSequences = ['\\u0000', '\\u0001', '\\u0002', '\\u0003', '\\u0004', \**********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -30380,6 +47697,7 @@ function hasMultilineItems(maybeArray) { \*********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -30431,6 +47749,7 @@ function isSource(source) { \************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -30481,6 +47800,7 @@ var TokenKind; \**********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -30807,6 +48127,7 @@ function getVisitFn(visitor, kind, isLeaving) { \*********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -30858,6 +48179,7 @@ function assertEnumValueName(name) { \*********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -31823,6 +49145,7 @@ function isRequiredInputField(field) { \*********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -32000,6 +49323,7 @@ function isSpecifiedDirective(directive) { \****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -32555,6 +49879,7 @@ var _assertName = __webpack_require__(/*! ./assertName.mjs */ "../../../node_mod \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -33073,6 +50398,7 @@ function isIntrospectionType(type) { \******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -33297,6 +50623,7 @@ function serializeObject(outputValue) { \*****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -33617,6 +50944,7 @@ function collectReferencedTypes(type, typeSet) { \*******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -34024,6 +51352,7 @@ function getDeprecatedDirectiveNode(definitionNode) { \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -34322,6 +51651,7 @@ function visitWithTypeInfo(typeInfo, visitor) { \*******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -34372,6 +51702,7 @@ function isValidNameError(name) { \****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -34537,6 +51868,7 @@ const integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/; \******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -34628,6 +51960,7 @@ function buildSchema(source, options) { \*********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -34888,6 +52221,7 @@ function buildClientSchema(introspection, options) { \********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -35017,6 +52351,7 @@ function coerceInputValueImpl(inputValue, type, onError, path) { \*************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -35049,6 +52384,7 @@ function concatAST(documents) { \****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -35595,6 +52931,7 @@ function isOneOf(node) { \***********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -35991,6 +53328,7 @@ function diff(oldArray, newArray) { \*************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -36136,6 +53474,7 @@ function getIntrospectionQuery(options) { \*******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -36178,6 +53517,7 @@ function getOperationAST(documentAST, operationName) { \************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -36231,6 +53571,7 @@ function getOperationRootType(schema, operation) { \*********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -36452,6 +53793,7 @@ var _findBreakingChanges = __webpack_require__(/*! ./findBreakingChanges.mjs */ \***************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -36498,6 +53840,7 @@ function introspectionFromSchema(schema, options) { \***************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -36649,6 +53992,7 @@ function sortBy(array, mapToKey) { \***************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -36856,6 +54200,7 @@ function printDescription(def, indentation = '', firstInBlock = true) { \**********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -36937,6 +54282,7 @@ function collectDependencies(selectionSet) { \*****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -36990,6 +54336,7 @@ function sortFields(fields) { \**************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -37103,6 +54450,7 @@ function stripIgnoredCharacters(source) { \*******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -37207,6 +54555,7 @@ function doTypesOverlap(schema, typeA, typeB) { \***************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -37240,6 +54589,7 @@ function typeFromAST(schema, typeNode) { \****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -37398,6 +54748,7 @@ function isMissingVariable(valueNode, variables) { \***********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -37452,6 +54803,7 @@ function valueFromASTUntyped(valueNode, variables) { \**********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -37636,6 +54988,7 @@ exports.ValidationContext = ValidationContext; \**********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -37936,6 +55289,7 @@ var _NoSchemaIntrospectionCustomRule = __webpack_require__(/*! ./rules/custom/No \************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -37977,6 +55331,7 @@ function ExecutableDefinitionsRule(context) { \**********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -38089,6 +55444,7 @@ function getSuggestedFieldNames(type, fieldName) { \****************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -38142,6 +55498,7 @@ function FragmentsOnCompositeTypesRule(context) { \*********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -38233,6 +55590,7 @@ function KnownArgumentNamesOnDirectivesRule(context) { \******************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -38360,6 +55718,7 @@ function getDirectiveLocationForOperation(operation) { \*********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -38397,6 +55756,7 @@ function KnownFragmentNamesRule(context) { \*****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -38458,6 +55818,7 @@ function isSDLNode(value) { \*************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -38498,6 +55859,7 @@ function LoneAnonymousOperationRule(context) { \***********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -38541,6 +55903,7 @@ function LoneSchemaDefinitionRule(context) { \************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -38620,6 +55983,7 @@ function MaxIntrospectionDepthRule(context) { \*******************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -38694,6 +56058,7 @@ function NoFragmentCyclesRule(context) { \***********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -38744,6 +56109,7 @@ function NoUndefinedVariablesRule(context) { \********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -38800,6 +56166,7 @@ function NoUnusedFragmentsRule(context) { \********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -38854,6 +56221,7 @@ function NoUnusedVariablesRule(context) { \*******************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -39318,6 +56686,7 @@ class PairSet { \**************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -39381,6 +56750,7 @@ function getFragmentType(context, name) { \*************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -39508,6 +56878,7 @@ function extensionKindToTypeName(kind) { \****************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -39619,6 +56990,7 @@ function isRequiredArgumentNode(arg) { \**************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -39668,6 +57040,7 @@ function ScalarLeafsRule(context) { \***************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -39733,6 +57106,7 @@ function SingleFieldSubscriptionsRule(context) { \********************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -39802,6 +57176,7 @@ function UniqueArgumentDefinitionNamesRule(context) { \**********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -39849,6 +57224,7 @@ function UniqueArgumentNamesRule(context) { \***********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -39893,6 +57269,7 @@ function UniqueDirectiveNamesRule(context) { \******************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -39970,6 +57347,7 @@ function UniqueDirectivesPerLocationRule(context) { \***********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -40029,6 +57407,7 @@ function UniqueEnumValueNamesRule(context) { \*****************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -40097,6 +57476,7 @@ function hasField(type, fieldName) { \**********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -40137,6 +57517,7 @@ function UniqueFragmentNamesRule(context) { \************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -40189,6 +57570,7 @@ function UniqueInputFieldNamesRule(context) { \***********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -40231,6 +57613,7 @@ function UniqueOperationNamesRule(context) { \***********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -40289,6 +57672,7 @@ function UniqueOperationTypesRule(context) { \******************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -40339,6 +57723,7 @@ function UniqueTypeNamesRule(context) { \**********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -40381,6 +57766,7 @@ function UniqueVariableNamesRule(context) { \**********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -40550,6 +57936,7 @@ function validateOneOfInputObject(context, node, type, fieldNodeMap, variableDef \*************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -40591,6 +57978,7 @@ function VariablesAreInputTypesRule(context) { \*****************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -40677,6 +58065,7 @@ function allowedVariableUsage(schema, varType, varDefaultValue, locationType, lo \****************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -40762,6 +58151,7 @@ function NoDeprecatedCustomRule(context) { \*************************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -40802,6 +58192,7 @@ function NoSchemaIntrospectionCustomRule(context) { \*******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -40925,6 +58316,7 @@ const specifiedSDLRules = exports.specifiedSDLRules = Object.freeze([_LoneSchema \*************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -41040,6 +58432,7 @@ function assertValidSDLExtension(documentAST, schema) { \*************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -41072,6 +58465,7 @@ const versionInfo = exports.versionInfo = Object.freeze({ \**************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -41103,6 +58497,7 @@ if (true) { \******************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; /*! * is-plain-object * @@ -41145,6 +58540,7 @@ module.exports = function isPlainObject(o) { \***************************************************/ /***/ (function(module) { +"use strict"; /*! * is-primitive * @@ -41169,6 +58565,7 @@ module.exports = function isPrimitive(val) { \**********************************************/ /***/ (function(module) { +"use strict"; var toString = {}.toString; @@ -41184,6 +58581,7 @@ module.exports = Array.isArray || function (arr) { \***********************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; /*! * isobject * @@ -41206,6 +58604,7 @@ module.exports = function isObject(val) { \***********************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var uc_micro = __webpack_require__(/*! uc.micro */ "../../../node_modules/uc.micro/build/index.cjs.js"); @@ -41899,6 +59298,7 @@ module.exports = LinkifyIt; \***********************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var mdurl = __webpack_require__(/*! mdurl */ "../../../node_modules/mdurl/build/index.cjs.js"); @@ -47438,6 +64838,7 @@ module.exports = MarkdownIt; \******************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; /* eslint-disable no-bitwise */ @@ -47934,6 +65335,7 @@ exports.parse = urlParse; \****************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; var e = new TextDecoder(); @@ -48003,6 +65405,7 @@ exports.meros = t; \******************************************************/ /***/ (function(module) { +"use strict"; function nullthrows(x, message) { @@ -48027,6 +65430,7 @@ Object.defineProperty(module.exports, "__esModule", ({ \*************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -48981,6 +66385,7 @@ exports.wrap = wrap; \*********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; /** Highest positive signed 32-bit float value */ @@ -49415,12 +66820,293 @@ var _default = exports["default"] = punycode; /***/ }), +/***/ "../../../node_modules/react-compiler-runtime/dist/index.js": +/*!******************************************************************!*\ + !*** ../../../node_modules/react-compiler-runtime/dist/index.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @lightSyntaxTransform + * @noflow + * @nolint + * @preventMunge + * @preserve-invariant-messages + */ + +"use no memo"; +'use strict'; + +var React = __webpack_require__(/*! react */ "react"); +function _interopNamespaceDefault(e) { + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { + return e[k]; + } + }); + } + }); + } + n.default = e; + return Object.freeze(n); +} +var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React); +var _a, _b; +const { + useRef, + useEffect, + isValidElement +} = React__namespace; +const ReactSecretInternals = (_a = React__namespace.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE) !== null && _a !== void 0 ? _a : React__namespace.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; +const $empty = Symbol.for('react.memo_cache_sentinel'); +const c = typeof ((_b = React__namespace.__COMPILER_RUNTIME) === null || _b === void 0 ? void 0 : _b.c) === 'function' ? React__namespace.__COMPILER_RUNTIME.c : function c(size) { + return React__namespace.useMemo(() => { + const $ = new Array(size); + for (let ii = 0; ii < size; ii++) { + $[ii] = $empty; + } + $[$empty] = true; + return $; + }, []); +}; +const LazyGuardDispatcher = {}; +['readContext', 'useCallback', 'useContext', 'useEffect', 'useImperativeHandle', 'useInsertionEffect', 'useLayoutEffect', 'useMemo', 'useReducer', 'useRef', 'useState', 'useDebugValue', 'useDeferredValue', 'useTransition', 'useMutableSource', 'useSyncExternalStore', 'useId', 'unstable_isNewReconciler', 'getCacheSignal', 'getCacheForType', 'useCacheRefresh'].forEach(name => { + LazyGuardDispatcher[name] = () => { + throw new Error(`[React] Unexpected React hook call (${name}) from a React compiled function. ` + "Check that all hooks are called directly and named according to convention ('use[A-Z]') "); + }; +}); +let originalDispatcher = null; +LazyGuardDispatcher['useMemoCache'] = count => { + if (originalDispatcher == null) { + throw new Error('React Compiler internal invariant violation: unexpected null dispatcher'); + } else { + return originalDispatcher.useMemoCache(count); + } +}; +var GuardKind; +(function (GuardKind) { + GuardKind[GuardKind["PushGuardContext"] = 0] = "PushGuardContext"; + GuardKind[GuardKind["PopGuardContext"] = 1] = "PopGuardContext"; + GuardKind[GuardKind["PushExpectHook"] = 2] = "PushExpectHook"; + GuardKind[GuardKind["PopExpectHook"] = 3] = "PopExpectHook"; +})(GuardKind || (GuardKind = {})); +function setCurrent(newDispatcher) { + ReactSecretInternals.ReactCurrentDispatcher.current = newDispatcher; + return ReactSecretInternals.ReactCurrentDispatcher.current; +} +const guardFrames = []; +function $dispatcherGuard(kind) { + const curr = ReactSecretInternals.ReactCurrentDispatcher.current; + if (kind === GuardKind.PushGuardContext) { + guardFrames.push(curr); + if (guardFrames.length === 1) { + originalDispatcher = curr; + } + if (curr === LazyGuardDispatcher) { + throw new Error(`[React] Unexpected call to custom hook or component from a React compiled function. ` + "Check that (1) all hooks are called directly and named according to convention ('use[A-Z]') " + 'and (2) components are returned as JSX instead of being directly invoked.'); + } + setCurrent(LazyGuardDispatcher); + } else if (kind === GuardKind.PopGuardContext) { + const lastFrame = guardFrames.pop(); + if (lastFrame == null) { + throw new Error('React Compiler internal error: unexpected null in guard stack'); + } + if (guardFrames.length === 0) { + originalDispatcher = null; + } + setCurrent(lastFrame); + } else if (kind === GuardKind.PushExpectHook) { + guardFrames.push(curr); + setCurrent(originalDispatcher); + } else if (kind === GuardKind.PopExpectHook) { + const lastFrame = guardFrames.pop(); + if (lastFrame == null) { + throw new Error('React Compiler internal error: unexpected null in guard stack'); + } + setCurrent(lastFrame); + } else { + throw new Error('React Compiler internal error: unreachable block' + kind); + } +} +function $reset($) { + for (let ii = 0; ii < $.length; ii++) { + $[ii] = $empty; + } +} +function $makeReadOnly() { + throw new Error('TODO: implement $makeReadOnly in react-compiler-runtime'); +} +const renderCounterRegistry = new Map(); +function clearRenderCounterRegistry() { + for (const counters of renderCounterRegistry.values()) { + counters.forEach(counter => { + counter.count = 0; + }); + } +} +function registerRenderCounter(name, val) { + let counters = renderCounterRegistry.get(name); + if (counters == null) { + counters = new Set(); + renderCounterRegistry.set(name, counters); + } + counters.add(val); +} +function removeRenderCounter(name, val) { + const counters = renderCounterRegistry.get(name); + if (counters == null) { + return; + } + counters.delete(val); +} +function useRenderCounter(name) { + const val = useRef(null); + if (val.current != null) { + val.current.count += 1; + } + useEffect(() => { + if (val.current == null) { + const counter = { + count: 0 + }; + registerRenderCounter(name, counter); + val.current = counter; + } + return () => { + if (val.current !== null) { + removeRenderCounter(name, val.current); + } + }; + }); +} +const seenErrors = new Set(); +function $structuralCheck(oldValue, newValue, variableName, fnName, kind, loc) { + function error(l, r, path, depth) { + const str = `${fnName}:${loc} [${kind}] ${variableName}${path} changed from ${l} to ${r} at depth ${depth}`; + if (seenErrors.has(str)) { + return; + } + seenErrors.add(str); + console.error(str); + } + const depthLimit = 2; + function recur(oldValue, newValue, path, depth) { + if (depth > depthLimit) { + return; + } else if (oldValue === newValue) { + return; + } else if (typeof oldValue !== typeof newValue) { + error(`type ${typeof oldValue}`, `type ${typeof newValue}`, path, depth); + } else if (typeof oldValue === 'object') { + const oldArray = Array.isArray(oldValue); + const newArray = Array.isArray(newValue); + if (oldValue === null && newValue !== null) { + error('null', `type ${typeof newValue}`, path, depth); + } else if (newValue === null) { + error(`type ${typeof oldValue}`, 'null', path, depth); + } else if (oldValue instanceof Map) { + if (!(newValue instanceof Map)) { + error(`Map instance`, `other value`, path, depth); + } else if (oldValue.size !== newValue.size) { + error(`Map instance with size ${oldValue.size}`, `Map instance with size ${newValue.size}`, path, depth); + } else { + for (const [k, v] of oldValue) { + if (!newValue.has(k)) { + error(`Map instance with key ${k}`, `Map instance without key ${k}`, path, depth); + } else { + recur(v, newValue.get(k), `${path}.get(${k})`, depth + 1); + } + } + } + } else if (newValue instanceof Map) { + error('other value', `Map instance`, path, depth); + } else if (oldValue instanceof Set) { + if (!(newValue instanceof Set)) { + error(`Set instance`, `other value`, path, depth); + } else if (oldValue.size !== newValue.size) { + error(`Set instance with size ${oldValue.size}`, `Set instance with size ${newValue.size}`, path, depth); + } else { + for (const v of newValue) { + if (!oldValue.has(v)) { + error(`Set instance without element ${v}`, `Set instance with element ${v}`, path, depth); + } + } + } + } else if (newValue instanceof Set) { + error('other value', `Set instance`, path, depth); + } else if (oldArray || newArray) { + if (oldArray !== newArray) { + error(`type ${oldArray ? 'array' : 'object'}`, `type ${newArray ? 'array' : 'object'}`, path, depth); + } else if (oldValue.length !== newValue.length) { + error(`array with length ${oldValue.length}`, `array with length ${newValue.length}`, path, depth); + } else { + for (let ii = 0; ii < oldValue.length; ii++) { + recur(oldValue[ii], newValue[ii], `${path}[${ii}]`, depth + 1); + } + } + } else if (isValidElement(oldValue) || isValidElement(newValue)) { + if (isValidElement(oldValue) !== isValidElement(newValue)) { + error(`type ${isValidElement(oldValue) ? 'React element' : 'object'}`, `type ${isValidElement(newValue) ? 'React element' : 'object'}`, path, depth); + } else if (oldValue.type !== newValue.type) { + error(`React element of type ${oldValue.type}`, `React element of type ${newValue.type}`, path, depth); + } else { + recur(oldValue.props, newValue.props, `[props of ${path}]`, depth + 1); + } + } else { + for (const key in newValue) { + if (!(key in oldValue)) { + error(`object without key ${key}`, `object with key ${key}`, path, depth); + } + } + for (const key in oldValue) { + if (!(key in newValue)) { + error(`object with key ${key}`, `object without key ${key}`, path, depth); + } else { + recur(oldValue[key], newValue[key], `${path}.${key}`, depth + 1); + } + } + } + } else if (typeof oldValue === 'function') { + return; + } else if (isNaN(oldValue) || isNaN(newValue)) { + if (isNaN(oldValue) !== isNaN(newValue)) { + error(`${isNaN(oldValue) ? 'NaN' : 'non-NaN value'}`, `${isNaN(newValue) ? 'NaN' : 'non-NaN value'}`, path, depth); + } + } else if (oldValue !== newValue) { + error(oldValue, newValue, path, depth); + } + } + recur(oldValue, newValue, '', 0); +} +exports.$dispatcherGuard = $dispatcherGuard; +exports.$makeReadOnly = $makeReadOnly; +exports.$reset = $reset; +exports.$structuralCheck = $structuralCheck; +exports.c = c; +exports.clearRenderCounterRegistry = clearRenderCounterRegistry; +exports.renderCounterRegistry = renderCounterRegistry; +exports.useRenderCounter = useRenderCounter; + +/***/ }), + /***/ "../../../node_modules/react-remove-scroll-bar/dist/es2015/component.js": /*!******************************************************************************!*\ !*** ../../../node_modules/react-remove-scroll-bar/dist/es2015/component.js ***! \******************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -49472,6 +67158,7 @@ exports.RemoveScrollBar = RemoveScrollBar; \******************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -49495,6 +67182,7 @@ var removedBarSizeVariable = exports.removedBarSizeVariable = '--removed-body-sc \**************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -49548,6 +67236,7 @@ var _utils = __webpack_require__(/*! ./utils */ "../../../node_modules/react-rem \**************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -49602,6 +67291,7 @@ exports.getGapWidth = getGapWidth; \****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -49632,6 +67322,7 @@ var _default = exports["default"] = ReactRemoveScroll; \***************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -49822,6 +67513,7 @@ function RemoveScrollSideCar(props) { \*******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -49900,6 +67592,7 @@ RemoveScroll.classNames = { \*********************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -49935,6 +67628,7 @@ var nonPassive = exports.nonPassive = passiveSupported ? { \*****************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -50052,6 +67746,7 @@ exports.handleScroll = handleScroll; \**********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -50074,6 +67769,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de \***********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -50091,6 +67787,7 @@ var effectCar = exports.effectCar = (0, _useSidecar.createSidecarMedium)(); \************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -50110,6 +67807,7 @@ var _default = exports["default"] = (0, _useSidecar.exportSidecar)(_medium.effec \****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -50143,6 +67841,7 @@ exports.styleSingleton = styleSingleton; \***********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -50183,6 +67882,7 @@ exports.styleHookSingleton = styleHookSingleton; \************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -50218,6 +67918,7 @@ var _hook = __webpack_require__(/*! ./hook */ "../../../node_modules/react-style \****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -50280,6 +67981,7 @@ exports.stylesheetSingleton = stylesheetSingleton; \************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; /** * @license React * react-jsx-runtime.development.js @@ -51418,6 +69120,7 @@ if (true) { \**************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; if (false) {} else { @@ -51432,6 +69135,7 @@ if (false) {} else { \************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; /*! * set-value * @@ -51578,6 +69282,7 @@ module.exports = setValue; \**********************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -51802,6 +69507,7 @@ exports.vw = vw; \*******************************************************/ /***/ (function(module) { +"use strict"; module.exports = function () { @@ -51844,6 +69550,7 @@ module.exports = function () { \*************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -52412,6 +70119,7 @@ var _default = exports["default"] = { \*********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; var regex$5 = /[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; @@ -52435,6 +70143,7 @@ exports.Z = regex; \***********************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -52471,6 +70180,7 @@ function assignRef(ref, value) { \***********************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -52509,6 +70219,7 @@ function createCallbackRef(callback) { \*******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -52585,6 +70296,7 @@ var _refToCallback = __webpack_require__(/*! ./refToCallback */ "../../../node_m \**********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -52622,6 +70334,7 @@ function mergeRefs(refs) { \***************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -52687,6 +70400,7 @@ function useRefToCallback(ref) { \**************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -52718,6 +70432,7 @@ function transformRef(ref, transformer) { \*************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -52756,6 +70471,7 @@ function useMergeRefs(refs, defaultValue) { \********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -52812,6 +70528,7 @@ function useCallbackRef(initialValue, callback) { \*****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -52847,6 +70564,7 @@ function useTransformRef(ref, transformer) { \***************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -52871,6 +70589,7 @@ exports.setConfig = setConfig; \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -52891,6 +70610,7 @@ var env = exports.env = { \****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -52927,6 +70647,7 @@ function exportSidecar(medium, exported) { \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -52963,6 +70684,7 @@ function sidecar(importer, errorComponent) { \*************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -53032,6 +70754,7 @@ function useRealSidecar(importer, effect) { \**************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -53094,6 +70817,7 @@ var _exports = __webpack_require__(/*! ./exports */ "../../../node_modules/use-s \***************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -53205,6 +70929,7 @@ function createSidecarMedium(options) { \*******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -53273,6 +70998,7 @@ function renderCar(WrappedComponent, defaults) { \*************************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; /* -------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. @@ -55541,12584 +73267,20 @@ var Is; /***/ }), -/***/ "../../graphiql-react/dist/SchemaReference.cjs.js": -/*!********************************************************!*\ - !*** ../../graphiql-react/dist/SchemaReference.cjs.js ***! - \********************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs"); -const forEachState = __webpack_require__(/*! ./forEachState.cjs.js */ "../../graphiql-react/dist/forEachState.cjs.js"); -function getTypeInfo(schema, tokenState) { - const info = { - schema, - type: null, - parentType: null, - inputType: null, - directiveDef: null, - fieldDef: null, - argDef: null, - argDefs: null, - objectFieldDefs: null - }; - forEachState.forEachState(tokenState, state => { - var _a, _b; - switch (state.kind) { - case "Query": - case "ShortQuery": - info.type = schema.getQueryType(); - break; - case "Mutation": - info.type = schema.getMutationType(); - break; - case "Subscription": - info.type = schema.getSubscriptionType(); - break; - case "InlineFragment": - case "FragmentDefinition": - if (state.type) { - info.type = schema.getType(state.type); - } - break; - case "Field": - case "AliasedField": - info.fieldDef = info.type && state.name ? getFieldDef(schema, info.parentType, state.name) : null; - info.type = (_a = info.fieldDef) === null || _a === void 0 ? void 0 : _a.type; - break; - case "SelectionSet": - info.parentType = info.type ? graphql.getNamedType(info.type) : null; - break; - case "Directive": - info.directiveDef = state.name ? schema.getDirective(state.name) : null; - break; - case "Arguments": - const parentDef = state.prevState ? state.prevState.kind === "Field" ? info.fieldDef : state.prevState.kind === "Directive" ? info.directiveDef : state.prevState.kind === "AliasedField" ? state.prevState.name && getFieldDef(schema, info.parentType, state.prevState.name) : null : null; - info.argDefs = parentDef ? parentDef.args : null; - break; - case "Argument": - info.argDef = null; - if (info.argDefs) { - for (let i = 0; i < info.argDefs.length; i++) { - if (info.argDefs[i].name === state.name) { - info.argDef = info.argDefs[i]; - break; - } - } - } - info.inputType = (_b = info.argDef) === null || _b === void 0 ? void 0 : _b.type; - break; - case "EnumValue": - const enumType = info.inputType ? graphql.getNamedType(info.inputType) : null; - info.enumValue = enumType instanceof graphql.GraphQLEnumType ? find(enumType.getValues(), val => val.value === state.name) : null; - break; - case "ListValue": - const nullableType = info.inputType ? graphql.getNullableType(info.inputType) : null; - info.inputType = nullableType instanceof graphql.GraphQLList ? nullableType.ofType : null; - break; - case "ObjectValue": - const objectType = info.inputType ? graphql.getNamedType(info.inputType) : null; - info.objectFieldDefs = objectType instanceof graphql.GraphQLInputObjectType ? objectType.getFields() : null; - break; - case "ObjectField": - const objectField = state.name && info.objectFieldDefs ? info.objectFieldDefs[state.name] : null; - info.inputType = objectField === null || objectField === void 0 ? void 0 : objectField.type; - info.fieldDef = objectField; - break; - case "NamedType": - info.type = state.name ? schema.getType(state.name) : null; - break; - } - }); - return info; -} -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 && graphql.isCompositeType(type)) { - return graphql.TypeNameMetaFieldDef; - } - if (type && type.getFields) { - return type.getFields()[fieldName]; - } -} -function find(array, predicate) { - for (let i = 0; i < array.length; i++) { - if (predicate(array[i])) { - return array[i]; - } - } -} -function getFieldReference(typeInfo) { - return { - kind: "Field", - schema: typeInfo.schema, - field: typeInfo.fieldDef, - type: isMetaField(typeInfo.fieldDef) ? null : typeInfo.parentType - }; -} -function getDirectiveReference(typeInfo) { - return { - kind: "Directive", - schema: typeInfo.schema, - directive: typeInfo.directiveDef - }; -} -function getArgumentReference(typeInfo) { - return typeInfo.directiveDef ? { - kind: "Argument", - schema: typeInfo.schema, - argument: typeInfo.argDef, - directive: typeInfo.directiveDef - } : { - kind: "Argument", - schema: typeInfo.schema, - argument: typeInfo.argDef, - field: typeInfo.fieldDef, - type: isMetaField(typeInfo.fieldDef) ? null : typeInfo.parentType - }; -} -function getEnumValueReference(typeInfo) { - return { - kind: "EnumValue", - value: typeInfo.enumValue || void 0, - type: typeInfo.inputType ? graphql.getNamedType(typeInfo.inputType) : void 0 - }; -} -function getTypeReference(typeInfo, type) { - return { - kind: "Type", - schema: typeInfo.schema, - type: type || typeInfo.type - }; -} -function isMetaField(fieldDef) { - return fieldDef.name.slice(0, 2) === "__"; -} -exports.getArgumentReference = getArgumentReference; -exports.getDirectiveReference = getDirectiveReference; -exports.getEnumValueReference = getEnumValueReference; -exports.getFieldReference = getFieldReference; -exports.getTypeInfo = getTypeInfo; -exports.getTypeReference = getTypeReference; - -/***/ }), - -/***/ "../../graphiql-react/dist/brace-fold.cjs.js": -/*!***************************************************!*\ - !*** ../../graphiql-react/dist/brace-fold.cjs.js ***! - \***************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { - value: "Module" - })); -} -var braceFold$2 = { - exports: {} -}; -(function (module2, exports2) { - (function (mod) { - mod(codemirror.requireCodemirror()); - })(function (CodeMirror) { - function bracketFolding(pairs) { - return function (cm, start) { - var line = start.line, - lineText = cm.getLine(line); - function findOpening(pair) { - var tokenType; - for (var at = start.ch, pass = 0;;) { - var found2 = at <= 0 ? -1 : lineText.lastIndexOf(pair[0], at - 1); - if (found2 == -1) { - if (pass == 1) break; - pass = 1; - at = lineText.length; - continue; - } - if (pass == 1 && found2 < start.ch) break; - tokenType = cm.getTokenTypeAt(CodeMirror.Pos(line, found2 + 1)); - if (!/^(comment|string)/.test(tokenType)) return { - ch: found2 + 1, - tokenType, - pair - }; - at = found2 - 1; - } - } - function findRange(found2) { - var count = 1, - lastLine = cm.lastLine(), - end, - startCh = found2.ch, - endCh; - outer: for (var i2 = line; i2 <= lastLine; ++i2) { - var text = cm.getLine(i2), - pos = i2 == line ? startCh : 0; - for (;;) { - var nextOpen = text.indexOf(found2.pair[0], pos), - nextClose = text.indexOf(found2.pair[1], pos); - if (nextOpen < 0) nextOpen = text.length; - if (nextClose < 0) nextClose = text.length; - pos = Math.min(nextOpen, nextClose); - if (pos == text.length) break; - if (cm.getTokenTypeAt(CodeMirror.Pos(i2, pos + 1)) == found2.tokenType) { - if (pos == nextOpen) ++count;else if (! --count) { - end = i2; - endCh = pos; - break outer; - } - } - ++pos; - } - } - if (end == null || line == end) return null; - return { - from: CodeMirror.Pos(line, startCh), - to: CodeMirror.Pos(end, endCh) - }; - } - var found = []; - for (var i = 0; i < pairs.length; i++) { - var open = findOpening(pairs[i]); - if (open) found.push(open); - } - found.sort(function (a, b) { - return a.ch - b.ch; - }); - for (var i = 0; i < found.length; i++) { - var range = findRange(found[i]); - if (range) return range; - } - return null; - }; - } - CodeMirror.registerHelper("fold", "brace", bracketFolding([["{", "}"], ["[", "]"]])); - CodeMirror.registerHelper("fold", "brace-paren", bracketFolding([["{", "}"], ["[", "]"], ["(", ")"]])); - CodeMirror.registerHelper("fold", "import", function (cm, start) { - function hasImport(line) { - if (line < cm.firstLine() || line > cm.lastLine()) return null; - var start2 = cm.getTokenAt(CodeMirror.Pos(line, 1)); - if (!/\S/.test(start2.string)) start2 = cm.getTokenAt(CodeMirror.Pos(line, start2.end + 1)); - if (start2.type != "keyword" || start2.string != "import") return null; - for (var i = line, e = Math.min(cm.lastLine(), line + 10); i <= e; ++i) { - var text = cm.getLine(i), - semi = text.indexOf(";"); - if (semi != -1) return { - startCh: start2.end, - end: CodeMirror.Pos(i, semi) - }; - } - } - var startLine = start.line, - has = hasImport(startLine), - prev; - if (!has || hasImport(startLine - 1) || (prev = hasImport(startLine - 2)) && prev.end.line == startLine - 1) return null; - for (var end = has.end;;) { - var next = hasImport(end.line + 1); - if (next == null) break; - end = next.end; - } - return { - from: cm.clipPos(CodeMirror.Pos(startLine, has.startCh + 1)), - to: end - }; - }); - CodeMirror.registerHelper("fold", "include", function (cm, start) { - function hasInclude(line) { - if (line < cm.firstLine() || line > cm.lastLine()) return null; - var start2 = cm.getTokenAt(CodeMirror.Pos(line, 1)); - if (!/\S/.test(start2.string)) start2 = cm.getTokenAt(CodeMirror.Pos(line, start2.end + 1)); - if (start2.type == "meta" && start2.string.slice(0, 8) == "#include") return start2.start + 8; - } - var startLine = start.line, - has = hasInclude(startLine); - if (has == null || hasInclude(startLine - 1) != null) return null; - for (var end = startLine;;) { - var next = hasInclude(end + 1); - if (next == null) break; - ++end; - } - return { - from: CodeMirror.Pos(startLine, has + 1), - to: cm.clipPos(CodeMirror.Pos(end)) - }; - }); - }); -})(); -var braceFoldExports = braceFold$2.exports; -const braceFold = /* @__PURE__ */codemirror.getDefaultExportFromCjs(braceFoldExports); -const braceFold$1 = /* @__PURE__ */_mergeNamespaces({ - __proto__: null, - default: braceFold -}, [braceFoldExports]); -exports.braceFold = braceFold$1; - -/***/ }), - -/***/ "../../graphiql-react/dist/closebrackets.cjs.js": -/*!******************************************************!*\ - !*** ../../graphiql-react/dist/closebrackets.cjs.js ***! - \******************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { - value: "Module" - })); -} -var closebrackets$2 = { - exports: {} -}; -(function (module2, exports2) { - (function (mod) { - mod(codemirror.requireCodemirror()); - })(function (CodeMirror) { - var defaults = { - pairs: `()[]{}''""`, - closeBefore: `)]}'":;>`, - triples: "", - explode: "[]{}" - }; - var Pos = CodeMirror.Pos; - CodeMirror.defineOption("autoCloseBrackets", false, function (cm, val, old) { - if (old && old != CodeMirror.Init) { - cm.removeKeyMap(keyMap); - cm.state.closeBrackets = null; - } - if (val) { - ensureBound(getOption(val, "pairs")); - cm.state.closeBrackets = val; - cm.addKeyMap(keyMap); - } - }); - function getOption(conf, name) { - if (name == "pairs" && typeof conf == "string") return conf; - if (typeof conf == "object" && conf[name] != null) return conf[name]; - return defaults[name]; - } - var keyMap = { - Backspace: handleBackspace, - Enter: handleEnter - }; - function ensureBound(chars) { - for (var i = 0; i < chars.length; i++) { - var ch = chars.charAt(i), - key = "'" + ch + "'"; - if (!keyMap[key]) keyMap[key] = handler(ch); - } - } - ensureBound(defaults.pairs + "`"); - function handler(ch) { - return function (cm) { - return handleChar(cm, ch); - }; - } - function getConfig(cm) { - var deflt = cm.state.closeBrackets; - if (!deflt || deflt.override) return deflt; - var mode = cm.getModeAt(cm.getCursor()); - return mode.closeBrackets || deflt; - } - function handleBackspace(cm) { - var conf = getConfig(cm); - if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass; - var pairs = getOption(conf, "pairs"); - var ranges = cm.listSelections(); - for (var i = 0; i < ranges.length; i++) { - if (!ranges[i].empty()) return CodeMirror.Pass; - var around = charsAround(cm, ranges[i].head); - if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass; - } - for (var i = ranges.length - 1; i >= 0; i--) { - var cur = ranges[i].head; - cm.replaceRange("", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1), "+delete"); - } - } - function handleEnter(cm) { - var conf = getConfig(cm); - var explode = conf && getOption(conf, "explode"); - if (!explode || cm.getOption("disableInput")) return CodeMirror.Pass; - var ranges = cm.listSelections(); - for (var i = 0; i < ranges.length; i++) { - if (!ranges[i].empty()) return CodeMirror.Pass; - var around = charsAround(cm, ranges[i].head); - if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass; - } - cm.operation(function () { - var linesep = cm.lineSeparator() || "\n"; - cm.replaceSelection(linesep + linesep, null); - moveSel(cm, -1); - ranges = cm.listSelections(); - for (var i2 = 0; i2 < ranges.length; i2++) { - var line = ranges[i2].head.line; - cm.indentLine(line, null, true); - cm.indentLine(line + 1, null, true); - } - }); - } - function moveSel(cm, dir) { - var newRanges = [], - ranges = cm.listSelections(), - primary = 0; - for (var i = 0; i < ranges.length; i++) { - var range = ranges[i]; - if (range.head == cm.getCursor()) primary = i; - var pos = range.head.ch || dir > 0 ? { - line: range.head.line, - ch: range.head.ch + dir - } : { - line: range.head.line - 1 - }; - newRanges.push({ - anchor: pos, - head: pos - }); - } - cm.setSelections(newRanges, primary); - } - function contractSelection(sel) { - var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0; - return { - anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)), - head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1)) - }; - } - function handleChar(cm, ch) { - var conf = getConfig(cm); - if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass; - var pairs = getOption(conf, "pairs"); - var pos = pairs.indexOf(ch); - if (pos == -1) return CodeMirror.Pass; - var closeBefore = getOption(conf, "closeBefore"); - var triples = getOption(conf, "triples"); - var identical = pairs.charAt(pos + 1) == ch; - var ranges = cm.listSelections(); - var opening = pos % 2 == 0; - var type; - for (var i = 0; i < ranges.length; i++) { - var range = ranges[i], - cur = range.head, - curType; - var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1)); - if (opening && !range.empty()) { - curType = "surround"; - } else if ((identical || !opening) && next == ch) { - if (identical && stringStartsAfter(cm, cur)) curType = "both";else if (triples.indexOf(ch) >= 0 && cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch) curType = "skipThree";else curType = "skip"; - } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 && cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch) { - if (cur.ch > 2 && /\bstring/.test(cm.getTokenTypeAt(Pos(cur.line, cur.ch - 2)))) return CodeMirror.Pass; - curType = "addFour"; - } else if (identical) { - var prev = cur.ch == 0 ? " " : cm.getRange(Pos(cur.line, cur.ch - 1), cur); - if (!CodeMirror.isWordChar(next) && prev != ch && !CodeMirror.isWordChar(prev)) curType = "both";else return CodeMirror.Pass; - } else if (opening && (next.length === 0 || /\s/.test(next) || closeBefore.indexOf(next) > -1)) { - curType = "both"; - } else { - return CodeMirror.Pass; - } - if (!type) type = curType;else if (type != curType) return CodeMirror.Pass; - } - var left = pos % 2 ? pairs.charAt(pos - 1) : ch; - var right = pos % 2 ? ch : pairs.charAt(pos + 1); - cm.operation(function () { - if (type == "skip") { - moveSel(cm, 1); - } else if (type == "skipThree") { - moveSel(cm, 3); - } else if (type == "surround") { - var sels = cm.getSelections(); - for (var i2 = 0; i2 < sels.length; i2++) sels[i2] = left + sels[i2] + right; - cm.replaceSelections(sels, "around"); - sels = cm.listSelections().slice(); - for (var i2 = 0; i2 < sels.length; i2++) sels[i2] = contractSelection(sels[i2]); - cm.setSelections(sels); - } else if (type == "both") { - cm.replaceSelection(left + right, null); - cm.triggerElectric(left + right); - moveSel(cm, -1); - } else if (type == "addFour") { - cm.replaceSelection(left + left + left + left, "before"); - moveSel(cm, 1); - } - }); - } - function charsAround(cm, pos) { - var str = cm.getRange(Pos(pos.line, pos.ch - 1), Pos(pos.line, pos.ch + 1)); - return str.length == 2 ? str : null; - } - function stringStartsAfter(cm, pos) { - var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1)); - return /\bstring/.test(token.type) && token.start == pos.ch && (pos.ch == 0 || !/\bstring/.test(cm.getTokenTypeAt(pos))); - } - }); -})(); -var closebracketsExports = closebrackets$2.exports; -const closebrackets = /* @__PURE__ */codemirror.getDefaultExportFromCjs(closebracketsExports); -const closebrackets$1 = /* @__PURE__ */_mergeNamespaces({ - __proto__: null, - default: closebrackets -}, [closebracketsExports]); -exports.closebrackets = closebrackets$1; - -/***/ }), - -/***/ "../../graphiql-react/dist/codemirror.cjs.js": -/*!***************************************************!*\ - !*** ../../graphiql-react/dist/codemirror.cjs.js ***! - \***************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror$1 = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { - value: "Module" - })); -} -var codemirrorExports = codemirror$1.requireCodemirror(); -const CodeMirror = /* @__PURE__ */codemirror$1.getDefaultExportFromCjs(codemirrorExports); -const codemirror = /* @__PURE__ */_mergeNamespaces({ - __proto__: null, - default: CodeMirror -}, [codemirrorExports]); -exports.CodeMirror = CodeMirror; -exports.codemirror = codemirror; - -/***/ }), - -/***/ "../../graphiql-react/dist/codemirror.cjs2.js": -/*!****************************************************!*\ - !*** ../../graphiql-react/dist/codemirror.cjs2.js ***! - \****************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof __webpack_require__.g !== "undefined" ? __webpack_require__.g : typeof self !== "undefined" ? self : {}; -function getDefaultExportFromCjs(x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; -} -var codemirror = { - exports: {} -}; -var hasRequiredCodemirror; -function requireCodemirror() { - if (hasRequiredCodemirror) return codemirror.exports; - hasRequiredCodemirror = 1; - (function (module2, exports2) { - (function (global2, factory) { - module2.exports = factory(); - })(commonjsGlobal, function () { - var userAgent = navigator.userAgent; - var platform = navigator.platform; - var gecko = /gecko\/\d/i.test(userAgent); - var ie_upto10 = /MSIE \d/.test(userAgent); - var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent); - var edge = /Edge\/(\d+)/.exec(userAgent); - var ie = ie_upto10 || ie_11up || edge; - var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]); - var webkit = !edge && /WebKit\//.test(userAgent); - var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent); - var chrome = !edge && /Chrome\//.test(userAgent); - var presto = /Opera\//.test(userAgent); - var safari = /Apple Computer/.test(navigator.vendor); - var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent); - var phantom = /PhantomJS/.test(userAgent); - var ios = safari && (/Mobile\/\w+/.test(userAgent) || navigator.maxTouchPoints > 2); - var android = /Android/.test(userAgent); - var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent); - var mac = ios || /Mac/.test(platform); - var chromeOS = /\bCrOS\b/.test(userAgent); - var windows = /win/i.test(platform); - var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/); - if (presto_version) { - presto_version = Number(presto_version[1]); - } - if (presto_version && presto_version >= 15) { - presto = false; - webkit = true; - } - var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11)); - var captureRightClick = gecko || ie && ie_version >= 9; - function classTest(cls) { - return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*"); - } - var rmClass = function (node, cls) { - var current = node.className; - var match = classTest(cls).exec(current); - if (match) { - var after = current.slice(match.index + match[0].length); - node.className = current.slice(0, match.index) + (after ? match[1] + after : ""); - } - }; - function removeChildren(e) { - for (var count = e.childNodes.length; count > 0; --count) { - e.removeChild(e.firstChild); - } - return e; - } - function removeChildrenAndAdd(parent, e) { - return removeChildren(parent).appendChild(e); - } - function elt(tag, content, className, style) { - var e = document.createElement(tag); - if (className) { - e.className = className; - } - if (style) { - e.style.cssText = style; - } - if (typeof content == "string") { - e.appendChild(document.createTextNode(content)); - } else if (content) { - for (var i2 = 0; i2 < content.length; ++i2) { - e.appendChild(content[i2]); - } - } - return e; - } - function eltP(tag, content, className, style) { - var e = elt(tag, content, className, style); - e.setAttribute("role", "presentation"); - return e; - } - var range; - if (document.createRange) { - range = function (node, start, end, endNode) { - var r = document.createRange(); - r.setEnd(endNode || node, end); - r.setStart(node, start); - return r; - }; - } else { - range = function (node, start, end) { - var r = document.body.createTextRange(); - try { - r.moveToElementText(node.parentNode); - } catch (e) { - return r; - } - r.collapse(true); - r.moveEnd("character", end); - r.moveStart("character", start); - return r; - }; - } - function contains(parent, child) { - if (child.nodeType == 3) { - child = child.parentNode; - } - if (parent.contains) { - return parent.contains(child); - } - do { - if (child.nodeType == 11) { - child = child.host; - } - if (child == parent) { - return true; - } - } while (child = child.parentNode); - } - function activeElt() { - var activeElement; - try { - activeElement = document.activeElement; - } catch (e) { - activeElement = document.body || null; - } - while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement) { - activeElement = activeElement.shadowRoot.activeElement; - } - return activeElement; - } - function addClass(node, cls) { - var current = node.className; - if (!classTest(cls).test(current)) { - node.className += (current ? " " : "") + cls; - } - } - function joinClasses(a, b) { - var as = a.split(" "); - for (var i2 = 0; i2 < as.length; i2++) { - if (as[i2] && !classTest(as[i2]).test(b)) { - b += " " + as[i2]; - } - } - return b; - } - var selectInput = function (node) { - node.select(); - }; - if (ios) { - selectInput = function (node) { - node.selectionStart = 0; - node.selectionEnd = node.value.length; - }; - } else if (ie) { - selectInput = function (node) { - try { - node.select(); - } catch (_e) {} - }; - } - function bind(f) { - var args = Array.prototype.slice.call(arguments, 1); - return function () { - return f.apply(null, args); - }; - } - function copyObj(obj, target, overwrite) { - if (!target) { - target = {}; - } - for (var prop2 in obj) { - if (obj.hasOwnProperty(prop2) && (overwrite !== false || !target.hasOwnProperty(prop2))) { - target[prop2] = obj[prop2]; - } - } - return target; - } - function countColumn(string, end, tabSize, startIndex, startValue) { - if (end == null) { - end = string.search(/[^\s\u00a0]/); - if (end == -1) { - end = string.length; - } - } - for (var i2 = startIndex || 0, n = startValue || 0;;) { - var nextTab = string.indexOf(" ", i2); - if (nextTab < 0 || nextTab >= end) { - return n + (end - i2); - } - n += nextTab - i2; - n += tabSize - n % tabSize; - i2 = nextTab + 1; - } - } - var Delayed = function () { - this.id = null; - this.f = null; - this.time = 0; - this.handler = bind(this.onTimeout, this); - }; - Delayed.prototype.onTimeout = function (self2) { - self2.id = 0; - if (self2.time <= + /* @__PURE__ */new Date()) { - self2.f(); - } else { - setTimeout(self2.handler, self2.time - + /* @__PURE__ */new Date()); - } - }; - Delayed.prototype.set = function (ms, f) { - this.f = f; - var time = + /* @__PURE__ */new Date() + ms; - if (!this.id || time < this.time) { - clearTimeout(this.id); - this.id = setTimeout(this.handler, ms); - this.time = time; - } - }; - function indexOf(array, elt2) { - for (var i2 = 0; i2 < array.length; ++i2) { - if (array[i2] == elt2) { - return i2; - } - } - return -1; - } - var scrollerGap = 50; - var Pass = { - toString: function () { - return "CodeMirror.Pass"; - } - }; - var sel_dontScroll = { - scroll: false - }, - sel_mouse = { - origin: "*mouse" - }, - sel_move = { - origin: "+move" - }; - function findColumn(string, goal, tabSize) { - for (var pos = 0, col = 0;;) { - var nextTab = string.indexOf(" ", pos); - if (nextTab == -1) { - nextTab = string.length; - } - var skipped = nextTab - pos; - if (nextTab == string.length || col + skipped >= goal) { - return pos + Math.min(skipped, goal - col); - } - col += nextTab - pos; - col += tabSize - col % tabSize; - pos = nextTab + 1; - if (col >= goal) { - return pos; - } - } - } - var spaceStrs = [""]; - function spaceStr(n) { - while (spaceStrs.length <= n) { - spaceStrs.push(lst(spaceStrs) + " "); - } - return spaceStrs[n]; - } - function lst(arr) { - return arr[arr.length - 1]; - } - function map(array, f) { - var out = []; - for (var i2 = 0; i2 < array.length; i2++) { - out[i2] = f(array[i2], i2); - } - return out; - } - function insertSorted(array, value, score) { - var pos = 0, - priority = score(value); - while (pos < array.length && score(array[pos]) <= priority) { - pos++; - } - array.splice(pos, 0, value); - } - function nothing() {} - function createObj(base, props) { - var inst; - if (Object.create) { - inst = Object.create(base); - } else { - nothing.prototype = base; - inst = new nothing(); - } - if (props) { - copyObj(props, inst); - } - return inst; - } - var nonASCIISingleCaseWordChar = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/; - function isWordCharBasic(ch) { - return /\w/.test(ch) || ch > "€" && (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)); - } - function isWordChar(ch, helper) { - if (!helper) { - return isWordCharBasic(ch); - } - if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) { - return true; - } - return helper.test(ch); - } - function isEmpty(obj) { - for (var n in obj) { - if (obj.hasOwnProperty(n) && obj[n]) { - return false; - } - } - return true; - } - var extendingChars = /[\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 isExtendingChar(ch) { - return ch.charCodeAt(0) >= 768 && extendingChars.test(ch); - } - function skipExtendingChars(str, pos, dir) { - while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { - pos += dir; - } - return pos; - } - function findFirst(pred, from, to) { - var dir = from > to ? -1 : 1; - for (;;) { - if (from == to) { - return from; - } - var midF = (from + to) / 2, - mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF); - if (mid == from) { - return pred(mid) ? from : to; - } - if (pred(mid)) { - to = mid; - } else { - from = mid + dir; - } - } - } - function iterateBidiSections(order, from, to, f) { - if (!order) { - return f(from, to, "ltr", 0); - } - var found = false; - for (var i2 = 0; i2 < order.length; ++i2) { - var part = order[i2]; - if (part.from < to && part.to > from || from == to && part.to == from) { - f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr", i2); - found = true; - } - } - if (!found) { - f(from, to, "ltr"); - } - } - var bidiOther = null; - function getBidiPartAt(order, ch, sticky) { - var found; - bidiOther = null; - for (var i2 = 0; i2 < order.length; ++i2) { - var cur = order[i2]; - if (cur.from < ch && cur.to > ch) { - return i2; - } - if (cur.to == ch) { - if (cur.from != cur.to && sticky == "before") { - found = i2; - } else { - bidiOther = i2; - } - } - if (cur.from == ch) { - if (cur.from != cur.to && sticky != "before") { - found = i2; - } else { - bidiOther = i2; - } - } - } - return found != null ? found : bidiOther; - } - var bidiOrdering = /* @__PURE__ */function () { - var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN"; - var arabicTypes = "nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111"; - function charType(code) { - if (code <= 247) { - return lowTypes.charAt(code); - } else if (1424 <= code && code <= 1524) { - return "R"; - } else if (1536 <= code && code <= 1785) { - return arabicTypes.charAt(code - 1536); - } else if (1774 <= code && code <= 2220) { - return "r"; - } else if (8192 <= code && code <= 8203) { - return "w"; - } else if (code == 8204) { - return "b"; - } else { - return "L"; - } - } - var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; - var isNeutral = /[stwN]/, - isStrong = /[LRr]/, - countsAsLeft = /[Lb1n]/, - countsAsNum = /[1n]/; - function BidiSpan(level, from, to) { - this.level = level; - this.from = from; - this.to = to; - } - return function (str, direction) { - var outerType = direction == "ltr" ? "L" : "R"; - if (str.length == 0 || direction == "ltr" && !bidiRE.test(str)) { - return false; - } - var len = str.length, - types = []; - for (var i2 = 0; i2 < len; ++i2) { - types.push(charType(str.charCodeAt(i2))); - } - for (var i$12 = 0, prev = outerType; i$12 < len; ++i$12) { - var type = types[i$12]; - if (type == "m") { - types[i$12] = prev; - } else { - prev = type; - } - } - for (var i$22 = 0, cur = outerType; i$22 < len; ++i$22) { - var type$1 = types[i$22]; - if (type$1 == "1" && cur == "r") { - types[i$22] = "n"; - } else if (isStrong.test(type$1)) { - cur = type$1; - if (type$1 == "r") { - types[i$22] = "R"; - } - } - } - for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) { - var type$2 = types[i$3]; - if (type$2 == "+" && prev$1 == "1" && types[i$3 + 1] == "1") { - types[i$3] = "1"; - } else if (type$2 == "," && prev$1 == types[i$3 + 1] && (prev$1 == "1" || prev$1 == "n")) { - types[i$3] = prev$1; - } - prev$1 = type$2; - } - for (var i$4 = 0; i$4 < len; ++i$4) { - var type$3 = types[i$4]; - if (type$3 == ",") { - types[i$4] = "N"; - } else if (type$3 == "%") { - var end = void 0; - for (end = i$4 + 1; end < len && types[end] == "%"; ++end) {} - var replace = i$4 && types[i$4 - 1] == "!" || end < len && types[end] == "1" ? "1" : "N"; - for (var j = i$4; j < end; ++j) { - types[j] = replace; - } - i$4 = end - 1; - } - } - for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) { - var type$4 = types[i$5]; - if (cur$1 == "L" && type$4 == "1") { - types[i$5] = "L"; - } else if (isStrong.test(type$4)) { - cur$1 = type$4; - } - } - for (var i$6 = 0; i$6 < len; ++i$6) { - if (isNeutral.test(types[i$6])) { - var end$1 = void 0; - for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {} - var before = (i$6 ? types[i$6 - 1] : outerType) == "L"; - var after = (end$1 < len ? types[end$1] : outerType) == "L"; - var replace$1 = before == after ? before ? "L" : "R" : outerType; - for (var j$1 = i$6; j$1 < end$1; ++j$1) { - types[j$1] = replace$1; - } - i$6 = end$1 - 1; - } - } - var order = [], - m; - for (var i$7 = 0; i$7 < len;) { - if (countsAsLeft.test(types[i$7])) { - var start = i$7; - for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {} - order.push(new BidiSpan(0, start, i$7)); - } else { - var pos = i$7, - at = order.length, - isRTL = direction == "rtl" ? 1 : 0; - for (++i$7; i$7 < len && types[i$7] != "L"; ++i$7) {} - for (var j$2 = pos; j$2 < i$7;) { - if (countsAsNum.test(types[j$2])) { - if (pos < j$2) { - order.splice(at, 0, new BidiSpan(1, pos, j$2)); - at += isRTL; - } - var nstart = j$2; - for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {} - order.splice(at, 0, new BidiSpan(2, nstart, j$2)); - at += isRTL; - pos = j$2; - } else { - ++j$2; - } - } - if (pos < i$7) { - order.splice(at, 0, new BidiSpan(1, pos, i$7)); - } - } - } - if (direction == "ltr") { - if (order[0].level == 1 && (m = str.match(/^\s+/))) { - order[0].from = m[0].length; - order.unshift(new BidiSpan(0, 0, m[0].length)); - } - if (lst(order).level == 1 && (m = str.match(/\s+$/))) { - lst(order).to -= m[0].length; - order.push(new BidiSpan(0, len - m[0].length, len)); - } - } - return direction == "rtl" ? order.reverse() : order; - }; - }(); - function getOrder(line, direction) { - var order = line.order; - if (order == null) { - order = line.order = bidiOrdering(line.text, direction); - } - return order; - } - var noHandlers = []; - var on = function (emitter, type, f) { - if (emitter.addEventListener) { - emitter.addEventListener(type, f, false); - } else if (emitter.attachEvent) { - emitter.attachEvent("on" + type, f); - } else { - var map2 = emitter._handlers || (emitter._handlers = {}); - map2[type] = (map2[type] || noHandlers).concat(f); - } - }; - function getHandlers(emitter, type) { - return emitter._handlers && emitter._handlers[type] || noHandlers; - } - function off(emitter, type, f) { - if (emitter.removeEventListener) { - emitter.removeEventListener(type, f, false); - } else if (emitter.detachEvent) { - emitter.detachEvent("on" + type, f); - } else { - var map2 = emitter._handlers, - arr = map2 && map2[type]; - if (arr) { - var index = indexOf(arr, f); - if (index > -1) { - map2[type] = arr.slice(0, index).concat(arr.slice(index + 1)); - } - } - } - } - function signal(emitter, type) { - var handlers = getHandlers(emitter, type); - if (!handlers.length) { - return; - } - var args = Array.prototype.slice.call(arguments, 2); - for (var i2 = 0; i2 < handlers.length; ++i2) { - handlers[i2].apply(null, args); - } - } - function signalDOMEvent(cm, e, override) { - if (typeof e == "string") { - e = { - type: e, - preventDefault: function () { - this.defaultPrevented = true; - } - }; - } - signal(cm, override || e.type, cm, e); - return e_defaultPrevented(e) || e.codemirrorIgnore; - } - function signalCursorActivity(cm) { - var arr = cm._handlers && cm._handlers.cursorActivity; - if (!arr) { - return; - } - var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []); - for (var i2 = 0; i2 < arr.length; ++i2) { - if (indexOf(set, arr[i2]) == -1) { - set.push(arr[i2]); - } - } - } - function hasHandler(emitter, type) { - return getHandlers(emitter, type).length > 0; - } - function eventMixin(ctor) { - ctor.prototype.on = function (type, f) { - on(this, type, f); - }; - ctor.prototype.off = function (type, f) { - off(this, type, f); - }; - } - function e_preventDefault(e) { - if (e.preventDefault) { - e.preventDefault(); - } else { - e.returnValue = false; - } - } - function e_stopPropagation(e) { - if (e.stopPropagation) { - e.stopPropagation(); - } else { - e.cancelBubble = true; - } - } - function e_defaultPrevented(e) { - return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false; - } - function e_stop(e) { - e_preventDefault(e); - e_stopPropagation(e); - } - function e_target(e) { - return e.target || e.srcElement; - } - function e_button(e) { - var b = e.which; - if (b == null) { - if (e.button & 1) { - b = 1; - } else if (e.button & 2) { - b = 3; - } else if (e.button & 4) { - b = 2; - } - } - if (mac && e.ctrlKey && b == 1) { - b = 3; - } - return b; - } - var dragAndDrop = function () { - if (ie && ie_version < 9) { - return false; - } - var div = elt("div"); - return "draggable" in div || "dragDrop" in div; - }(); - var zwspSupported; - function zeroWidthElement(measure) { - if (zwspSupported == null) { - var test = elt("span", "​"); - removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")])); - if (measure.firstChild.offsetHeight != 0) { - zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); - } - } - var node = zwspSupported ? elt("span", "​") : elt("span", " ", null, "display: inline-block; width: 1px; margin-right: -1px"); - node.setAttribute("cm-text", ""); - return node; - } - var badBidiRects; - function hasBadBidiRects(measure) { - if (badBidiRects != null) { - return badBidiRects; - } - var txt = removeChildrenAndAdd(measure, document.createTextNode("AخA")); - var r0 = range(txt, 0, 1).getBoundingClientRect(); - var r1 = range(txt, 1, 2).getBoundingClientRect(); - removeChildren(measure); - if (!r0 || r0.left == r0.right) { - return false; - } - return badBidiRects = r1.right - r0.right < 3; - } - var splitLinesAuto = "\n\nb".split(/\n/).length != 3 ? function (string) { - var pos = 0, - result = [], - l = string.length; - while (pos <= l) { - var nl = string.indexOf("\n", pos); - if (nl == -1) { - nl = string.length; - } - var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); - var rt = line.indexOf("\r"); - if (rt != -1) { - result.push(line.slice(0, rt)); - pos += rt + 1; - } else { - result.push(line); - pos = nl + 1; - } - } - return result; - } : function (string) { - return string.split(/\r\n?|\n/); - }; - var hasSelection = window.getSelection ? function (te) { - try { - return te.selectionStart != te.selectionEnd; - } catch (e) { - return false; - } - } : function (te) { - var range2; - try { - range2 = te.ownerDocument.selection.createRange(); - } catch (e) {} - if (!range2 || range2.parentElement() != te) { - return false; - } - return range2.compareEndPoints("StartToEnd", range2) != 0; - }; - var hasCopyEvent = function () { - var e = elt("div"); - if ("oncopy" in e) { - return true; - } - e.setAttribute("oncopy", "return;"); - return typeof e.oncopy == "function"; - }(); - var badZoomedRects = null; - function hasBadZoomedRects(measure) { - if (badZoomedRects != null) { - return badZoomedRects; - } - var node = removeChildrenAndAdd(measure, elt("span", "x")); - var normal = node.getBoundingClientRect(); - var fromRange = range(node, 0, 1).getBoundingClientRect(); - return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1; - } - var modes = {}, - mimeModes = {}; - function defineMode(name, mode) { - if (arguments.length > 2) { - mode.dependencies = Array.prototype.slice.call(arguments, 2); - } - modes[name] = mode; - } - function defineMIME(mime, spec) { - mimeModes[mime] = spec; - } - function resolveMode(spec) { - if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) { - spec = mimeModes[spec]; - } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) { - var found = mimeModes[spec.name]; - if (typeof found == "string") { - found = { - name: found - }; - } - spec = createObj(found, spec); - spec.name = found.name; - } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) { - return resolveMode("application/xml"); - } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+json$/.test(spec)) { - return resolveMode("application/json"); - } - if (typeof spec == "string") { - return { - name: spec - }; - } else { - return spec || { - name: "null" - }; - } - } - function getMode(options, spec) { - spec = resolveMode(spec); - var mfactory = modes[spec.name]; - if (!mfactory) { - return getMode(options, "text/plain"); - } - var modeObj = mfactory(options, spec); - if (modeExtensions.hasOwnProperty(spec.name)) { - var exts = modeExtensions[spec.name]; - for (var prop2 in exts) { - if (!exts.hasOwnProperty(prop2)) { - continue; - } - if (modeObj.hasOwnProperty(prop2)) { - modeObj["_" + prop2] = modeObj[prop2]; - } - modeObj[prop2] = exts[prop2]; - } - } - modeObj.name = spec.name; - if (spec.helperType) { - modeObj.helperType = spec.helperType; - } - if (spec.modeProps) { - for (var prop$1 in spec.modeProps) { - modeObj[prop$1] = spec.modeProps[prop$1]; - } - } - return modeObj; - } - var modeExtensions = {}; - function extendMode(mode, properties) { - var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : modeExtensions[mode] = {}; - copyObj(properties, exts); - } - function copyState(mode, state) { - if (state === true) { - return state; - } - if (mode.copyState) { - return mode.copyState(state); - } - var nstate = {}; - for (var n in state) { - var val = state[n]; - if (val instanceof Array) { - val = val.concat([]); - } - nstate[n] = val; - } - return nstate; - } - function innerMode(mode, state) { - var info; - while (mode.innerMode) { - info = mode.innerMode(state); - if (!info || info.mode == mode) { - break; - } - state = info.state; - mode = info.mode; - } - return info || { - mode, - state - }; - } - function startState(mode, a1, a2) { - return mode.startState ? mode.startState(a1, a2) : true; - } - var StringStream = function (string, tabSize, lineOracle) { - this.pos = this.start = 0; - this.string = string; - this.tabSize = tabSize || 8; - this.lastColumnPos = this.lastColumnValue = 0; - this.lineStart = 0; - this.lineOracle = lineOracle; - }; - StringStream.prototype.eol = function () { - return this.pos >= this.string.length; - }; - StringStream.prototype.sol = function () { - return this.pos == this.lineStart; - }; - StringStream.prototype.peek = function () { - return this.string.charAt(this.pos) || void 0; - }; - StringStream.prototype.next = function () { - if (this.pos < this.string.length) { - return this.string.charAt(this.pos++); - } - }; - StringStream.prototype.eat = function (match) { - var ch = this.string.charAt(this.pos); - var ok; - if (typeof match == "string") { - ok = ch == match; - } else { - ok = ch && (match.test ? match.test(ch) : match(ch)); - } - if (ok) { - ++this.pos; - return ch; - } - }; - StringStream.prototype.eatWhile = function (match) { - var start = this.pos; - while (this.eat(match)) {} - return this.pos > start; - }; - StringStream.prototype.eatSpace = function () { - var start = this.pos; - while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) { - ++this.pos; - } - return this.pos > start; - }; - StringStream.prototype.skipToEnd = function () { - this.pos = this.string.length; - }; - StringStream.prototype.skipTo = function (ch) { - var found = this.string.indexOf(ch, this.pos); - if (found > -1) { - this.pos = found; - return true; - } - }; - StringStream.prototype.backUp = function (n) { - this.pos -= n; - }; - StringStream.prototype.column = function () { - if (this.lastColumnPos < this.start) { - this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue); - this.lastColumnPos = this.start; - } - return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0); - }; - StringStream.prototype.indentation = function () { - return countColumn(this.string, null, this.tabSize) - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0); - }; - StringStream.prototype.match = function (pattern, consume, caseInsensitive) { - if (typeof pattern == "string") { - var cased = function (str) { - return caseInsensitive ? str.toLowerCase() : str; - }; - var substr = this.string.substr(this.pos, pattern.length); - if (cased(substr) == cased(pattern)) { - if (consume !== false) { - this.pos += pattern.length; - } - return true; - } - } else { - var match = this.string.slice(this.pos).match(pattern); - if (match && match.index > 0) { - return null; - } - if (match && consume !== false) { - this.pos += match[0].length; - } - return match; - } - }; - StringStream.prototype.current = function () { - return this.string.slice(this.start, this.pos); - }; - StringStream.prototype.hideFirstChars = function (n, inner) { - this.lineStart += n; - try { - return inner(); - } finally { - this.lineStart -= n; - } - }; - StringStream.prototype.lookAhead = function (n) { - var oracle = this.lineOracle; - return oracle && oracle.lookAhead(n); - }; - StringStream.prototype.baseToken = function () { - var oracle = this.lineOracle; - return oracle && oracle.baseToken(this.pos); - }; - function getLine(doc, n) { - n -= doc.first; - if (n < 0 || n >= doc.size) { - throw new Error("There is no line " + (n + doc.first) + " in the document."); - } - var chunk = doc; - while (!chunk.lines) { - for (var i2 = 0;; ++i2) { - var child = chunk.children[i2], - sz = child.chunkSize(); - if (n < sz) { - chunk = child; - break; - } - n -= sz; - } - } - return chunk.lines[n]; - } - function getBetween(doc, start, end) { - var out = [], - n = start.line; - doc.iter(start.line, end.line + 1, function (line) { - var text = line.text; - if (n == end.line) { - text = text.slice(0, end.ch); - } - if (n == start.line) { - text = text.slice(start.ch); - } - out.push(text); - ++n; - }); - return out; - } - function getLines(doc, from, to) { - var out = []; - doc.iter(from, to, function (line) { - out.push(line.text); - }); - return out; - } - function updateLineHeight(line, height) { - var diff = height - line.height; - if (diff) { - for (var n = line; n; n = n.parent) { - n.height += diff; - } - } - } - function lineNo(line) { - if (line.parent == null) { - return null; - } - var cur = line.parent, - no = indexOf(cur.lines, line); - for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { - for (var i2 = 0;; ++i2) { - if (chunk.children[i2] == cur) { - break; - } - no += chunk.children[i2].chunkSize(); - } - } - return no + cur.first; - } - function lineAtHeight(chunk, h) { - var n = chunk.first; - outer: do { - for (var i$12 = 0; i$12 < chunk.children.length; ++i$12) { - var child = chunk.children[i$12], - ch = child.height; - if (h < ch) { - chunk = child; - continue outer; - } - h -= ch; - n += child.chunkSize(); - } - return n; - } while (!chunk.lines); - var i2 = 0; - for (; i2 < chunk.lines.length; ++i2) { - var line = chunk.lines[i2], - lh = line.height; - if (h < lh) { - break; - } - h -= lh; - } - return n + i2; - } - function isLine(doc, l) { - return l >= doc.first && l < doc.first + doc.size; - } - function lineNumberFor(options, i2) { - return String(options.lineNumberFormatter(i2 + options.firstLineNumber)); - } - function Pos(line, ch, sticky) { - if (sticky === void 0) sticky = null; - if (!(this instanceof Pos)) { - return new Pos(line, ch, sticky); - } - this.line = line; - this.ch = ch; - this.sticky = sticky; - } - function cmp(a, b) { - return a.line - b.line || a.ch - b.ch; - } - function equalCursorPos(a, b) { - return a.sticky == b.sticky && cmp(a, b) == 0; - } - function copyPos(x) { - return Pos(x.line, x.ch); - } - function maxPos(a, b) { - return cmp(a, b) < 0 ? b : a; - } - function minPos(a, b) { - return cmp(a, b) < 0 ? a : b; - } - function clipLine(doc, n) { - return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1)); - } - function clipPos(doc, pos) { - if (pos.line < doc.first) { - return Pos(doc.first, 0); - } - var last = doc.first + doc.size - 1; - if (pos.line > last) { - return Pos(last, getLine(doc, last).text.length); - } - return clipToLen(pos, getLine(doc, pos.line).text.length); - } - function clipToLen(pos, linelen) { - var ch = pos.ch; - if (ch == null || ch > linelen) { - return Pos(pos.line, linelen); - } else if (ch < 0) { - return Pos(pos.line, 0); - } else { - return pos; - } - } - function clipPosArray(doc, array) { - var out = []; - for (var i2 = 0; i2 < array.length; i2++) { - out[i2] = clipPos(doc, array[i2]); - } - return out; - } - var SavedContext = function (state, lookAhead) { - this.state = state; - this.lookAhead = lookAhead; - }; - var Context = function (doc, state, line, lookAhead) { - this.state = state; - this.doc = doc; - this.line = line; - this.maxLookAhead = lookAhead || 0; - this.baseTokens = null; - this.baseTokenPos = 1; - }; - Context.prototype.lookAhead = function (n) { - var line = this.doc.getLine(this.line + n); - if (line != null && n > this.maxLookAhead) { - this.maxLookAhead = n; - } - return line; - }; - Context.prototype.baseToken = function (n) { - if (!this.baseTokens) { - return null; - } - while (this.baseTokens[this.baseTokenPos] <= n) { - this.baseTokenPos += 2; - } - var type = this.baseTokens[this.baseTokenPos + 1]; - return { - type: type && type.replace(/( |^)overlay .*/, ""), - size: this.baseTokens[this.baseTokenPos] - n - }; - }; - Context.prototype.nextLine = function () { - this.line++; - if (this.maxLookAhead > 0) { - this.maxLookAhead--; - } - }; - Context.fromSaved = function (doc, saved, line) { - if (saved instanceof SavedContext) { - return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead); - } else { - return new Context(doc, copyState(doc.mode, saved), line); - } - }; - Context.prototype.save = function (copy) { - var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state; - return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state; - }; - function highlightLine(cm, line, context, forceToEnd) { - var st = [cm.state.modeGen], - lineClasses = {}; - runMode(cm, line.text, cm.doc.mode, context, function (end, style) { - return st.push(end, style); - }, lineClasses, forceToEnd); - var state = context.state; - var loop = function (o2) { - context.baseTokens = st; - var overlay = cm.state.overlays[o2], - i2 = 1, - at = 0; - context.state = true; - runMode(cm, line.text, overlay.mode, context, function (end, style) { - var start = i2; - while (at < end) { - var i_end = st[i2]; - if (i_end > end) { - st.splice(i2, 1, end, st[i2 + 1], i_end); - } - i2 += 2; - at = Math.min(end, i_end); - } - if (!style) { - return; - } - if (overlay.opaque) { - st.splice(start, i2 - start, end, "overlay " + style); - i2 = start + 2; - } else { - for (; start < i2; start += 2) { - var cur = st[start + 1]; - st[start + 1] = (cur ? cur + " " : "") + "overlay " + style; - } - } - }, lineClasses); - context.state = state; - context.baseTokens = null; - context.baseTokenPos = 1; - }; - for (var o = 0; o < cm.state.overlays.length; ++o) loop(o); - return { - styles: st, - classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null - }; - } - function getLineStyles(cm, line, updateFrontier) { - if (!line.styles || line.styles[0] != cm.state.modeGen) { - var context = getContextBefore(cm, lineNo(line)); - var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state); - var result = highlightLine(cm, line, context); - if (resetState) { - context.state = resetState; - } - line.stateAfter = context.save(!resetState); - line.styles = result.styles; - if (result.classes) { - line.styleClasses = result.classes; - } else if (line.styleClasses) { - line.styleClasses = null; - } - if (updateFrontier === cm.doc.highlightFrontier) { - cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); - } - } - return line.styles; - } - function getContextBefore(cm, n, precise) { - var doc = cm.doc, - display = cm.display; - if (!doc.mode.startState) { - return new Context(doc, true, n); - } - var start = findStartLine(cm, n, precise); - var saved = start > doc.first && getLine(doc, start - 1).stateAfter; - var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start); - doc.iter(start, n, function (line) { - processLine(cm, line.text, context); - var pos = context.line; - line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null; - context.nextLine(); - }); - if (precise) { - doc.modeFrontier = context.line; - } - return context; - } - function processLine(cm, text, context, startAt) { - var mode = cm.doc.mode; - var stream = new StringStream(text, cm.options.tabSize, context); - stream.start = stream.pos = startAt || 0; - if (text == "") { - callBlankLine(mode, context.state); - } - while (!stream.eol()) { - readToken(mode, stream, context.state); - stream.start = stream.pos; - } - } - function callBlankLine(mode, state) { - if (mode.blankLine) { - return mode.blankLine(state); - } - if (!mode.innerMode) { - return; - } - var inner = innerMode(mode, state); - if (inner.mode.blankLine) { - return inner.mode.blankLine(inner.state); - } - } - function readToken(mode, stream, state, inner) { - for (var i2 = 0; i2 < 10; i2++) { - if (inner) { - inner[0] = innerMode(mode, state).mode; - } - var style = mode.token(stream, state); - if (stream.pos > stream.start) { - return style; - } - } - throw new Error("Mode " + mode.name + " failed to advance stream."); - } - var Token = function (stream, type, state) { - this.start = stream.start; - this.end = stream.pos; - this.string = stream.current(); - this.type = type || null; - this.state = state; - }; - function takeToken(cm, pos, precise, asArray) { - var doc = cm.doc, - mode = doc.mode, - style; - pos = clipPos(doc, pos); - var line = getLine(doc, pos.line), - context = getContextBefore(cm, pos.line, precise); - var stream = new StringStream(line.text, cm.options.tabSize, context), - tokens; - if (asArray) { - tokens = []; - } - while ((asArray || stream.pos < pos.ch) && !stream.eol()) { - stream.start = stream.pos; - style = readToken(mode, stream, context.state); - if (asArray) { - tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); - } - } - return asArray ? tokens : new Token(stream, style, context.state); - } - function extractLineClasses(type, output) { - if (type) { - for (;;) { - var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/); - if (!lineClass) { - break; - } - type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length); - var prop2 = lineClass[1] ? "bgClass" : "textClass"; - if (output[prop2] == null) { - output[prop2] = lineClass[2]; - } else if (!new RegExp("(?:^|\\s)" + lineClass[2] + "(?:$|\\s)").test(output[prop2])) { - output[prop2] += " " + lineClass[2]; - } - } - } - return type; - } - function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) { - var flattenSpans = mode.flattenSpans; - if (flattenSpans == null) { - flattenSpans = cm.options.flattenSpans; - } - var curStart = 0, - curStyle = null; - var stream = new StringStream(text, cm.options.tabSize, context), - style; - var inner = cm.options.addModeClass && [null]; - if (text == "") { - extractLineClasses(callBlankLine(mode, context.state), lineClasses); - } - while (!stream.eol()) { - if (stream.pos > cm.options.maxHighlightLength) { - flattenSpans = false; - if (forceToEnd) { - processLine(cm, text, context, stream.pos); - } - stream.pos = text.length; - style = null; - } else { - style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses); - } - if (inner) { - var mName = inner[0].name; - if (mName) { - style = "m-" + (style ? mName + " " + style : mName); - } - } - if (!flattenSpans || curStyle != style) { - while (curStart < stream.start) { - curStart = Math.min(stream.start, curStart + 5e3); - f(curStart, curStyle); - } - curStyle = style; - } - stream.start = stream.pos; - } - while (curStart < stream.pos) { - var pos = Math.min(stream.pos, curStart + 5e3); - f(pos, curStyle); - curStart = pos; - } - } - function findStartLine(cm, n, precise) { - var minindent, - minline, - doc = cm.doc; - var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1e3 : 100); - for (var search = n; search > lim; --search) { - if (search <= doc.first) { - return doc.first; - } - var line = getLine(doc, search - 1), - after = line.stateAfter; - if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier)) { - return search; - } - var indented = countColumn(line.text, null, cm.options.tabSize); - if (minline == null || minindent > indented) { - minline = search - 1; - minindent = indented; - } - } - return minline; - } - function retreatFrontier(doc, n) { - doc.modeFrontier = Math.min(doc.modeFrontier, n); - if (doc.highlightFrontier < n - 10) { - return; - } - var start = doc.first; - for (var line = n - 1; line > start; line--) { - var saved = getLine(doc, line).stateAfter; - if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) { - start = line + 1; - break; - } - } - doc.highlightFrontier = Math.min(doc.highlightFrontier, start); - } - var sawReadOnlySpans = false, - sawCollapsedSpans = false; - function seeReadOnlySpans() { - sawReadOnlySpans = true; - } - function seeCollapsedSpans() { - sawCollapsedSpans = true; - } - function MarkedSpan(marker, from, to) { - this.marker = marker; - this.from = from; - this.to = to; - } - function getMarkedSpanFor(spans, marker) { - if (spans) { - for (var i2 = 0; i2 < spans.length; ++i2) { - var span = spans[i2]; - if (span.marker == marker) { - return span; - } - } - } - } - function removeMarkedSpan(spans, span) { - var r; - for (var i2 = 0; i2 < spans.length; ++i2) { - if (spans[i2] != span) { - (r || (r = [])).push(spans[i2]); - } - } - return r; - } - function addMarkedSpan(line, span, op) { - var inThisOp = op && window.WeakSet && (op.markedSpans || (op.markedSpans = /* @__PURE__ */new WeakSet())); - if (inThisOp && line.markedSpans && inThisOp.has(line.markedSpans)) { - line.markedSpans.push(span); - } else { - line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; - if (inThisOp) { - inThisOp.add(line.markedSpans); - } - } - span.marker.attachLine(line); - } - function markedSpansBefore(old, startCh, isInsert) { - var nw; - if (old) { - for (var i2 = 0; i2 < old.length; ++i2) { - var span = old[i2], - marker = span.marker; - var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh); - if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) { - var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh); - (nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to)); - } - } - } - return nw; - } - function markedSpansAfter(old, endCh, isInsert) { - var nw; - if (old) { - for (var i2 = 0; i2 < old.length; ++i2) { - var span = old[i2], - marker = span.marker; - var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh); - if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) { - var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh); - (nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh, span.to == null ? null : span.to - endCh)); - } - } - } - return nw; - } - function stretchSpansOverChange(doc, change) { - if (change.full) { - return null; - } - var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans; - var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans; - if (!oldFirst && !oldLast) { - return null; - } - var startCh = change.from.ch, - endCh = change.to.ch, - isInsert = cmp(change.from, change.to) == 0; - var first = markedSpansBefore(oldFirst, startCh, isInsert); - var last = markedSpansAfter(oldLast, endCh, isInsert); - var sameLine = change.text.length == 1, - offset = lst(change.text).length + (sameLine ? startCh : 0); - if (first) { - for (var i2 = 0; i2 < first.length; ++i2) { - var span = first[i2]; - if (span.to == null) { - var found = getMarkedSpanFor(last, span.marker); - if (!found) { - span.to = startCh; - } else if (sameLine) { - span.to = found.to == null ? null : found.to + offset; - } - } - } - } - if (last) { - for (var i$12 = 0; i$12 < last.length; ++i$12) { - var span$1 = last[i$12]; - if (span$1.to != null) { - span$1.to += offset; - } - if (span$1.from == null) { - var found$1 = getMarkedSpanFor(first, span$1.marker); - if (!found$1) { - span$1.from = offset; - if (sameLine) { - (first || (first = [])).push(span$1); - } - } - } else { - span$1.from += offset; - if (sameLine) { - (first || (first = [])).push(span$1); - } - } - } - } - if (first) { - first = clearEmptySpans(first); - } - if (last && last != first) { - last = clearEmptySpans(last); - } - var newMarkers = [first]; - if (!sameLine) { - var gap = change.text.length - 2, - gapMarkers; - if (gap > 0 && first) { - for (var i$22 = 0; i$22 < first.length; ++i$22) { - if (first[i$22].to == null) { - (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$22].marker, null, null)); - } - } - } - for (var i$3 = 0; i$3 < gap; ++i$3) { - newMarkers.push(gapMarkers); - } - newMarkers.push(last); - } - return newMarkers; - } - function clearEmptySpans(spans) { - for (var i2 = 0; i2 < spans.length; ++i2) { - var span = spans[i2]; - if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false) { - spans.splice(i2--, 1); - } - } - if (!spans.length) { - return null; - } - return spans; - } - function removeReadOnlyRanges(doc, from, to) { - var markers = null; - doc.iter(from.line, to.line + 1, function (line) { - if (line.markedSpans) { - for (var i3 = 0; i3 < line.markedSpans.length; ++i3) { - var mark = line.markedSpans[i3].marker; - if (mark.readOnly && (!markers || indexOf(markers, mark) == -1)) { - (markers || (markers = [])).push(mark); - } - } - } - }); - if (!markers) { - return null; - } - var parts = [{ - from, - to - }]; - for (var i2 = 0; i2 < markers.length; ++i2) { - var mk = markers[i2], - m = mk.find(0); - for (var j = 0; j < parts.length; ++j) { - var p = parts[j]; - if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { - continue; - } - var newParts = [j, 1], - dfrom = cmp(p.from, m.from), - dto = cmp(p.to, m.to); - if (dfrom < 0 || !mk.inclusiveLeft && !dfrom) { - newParts.push({ - from: p.from, - to: m.from - }); - } - if (dto > 0 || !mk.inclusiveRight && !dto) { - newParts.push({ - from: m.to, - to: p.to - }); - } - parts.splice.apply(parts, newParts); - j += newParts.length - 3; - } - } - return parts; - } - function detachMarkedSpans(line) { - var spans = line.markedSpans; - if (!spans) { - return; - } - for (var i2 = 0; i2 < spans.length; ++i2) { - spans[i2].marker.detachLine(line); - } - line.markedSpans = null; - } - function attachMarkedSpans(line, spans) { - if (!spans) { - return; - } - for (var i2 = 0; i2 < spans.length; ++i2) { - spans[i2].marker.attachLine(line); - } - line.markedSpans = spans; - } - function extraLeft(marker) { - return marker.inclusiveLeft ? -1 : 0; - } - function extraRight(marker) { - return marker.inclusiveRight ? 1 : 0; - } - function compareCollapsedMarkers(a, b) { - var lenDiff = a.lines.length - b.lines.length; - if (lenDiff != 0) { - return lenDiff; - } - var aPos = a.find(), - bPos = b.find(); - var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b); - if (fromCmp) { - return -fromCmp; - } - var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b); - if (toCmp) { - return toCmp; - } - return b.id - a.id; - } - function collapsedSpanAtSide(line, start) { - var sps = sawCollapsedSpans && line.markedSpans, - found; - if (sps) { - for (var sp = void 0, i2 = 0; i2 < sps.length; ++i2) { - sp = sps[i2]; - if (sp.marker.collapsed && (start ? sp.from : sp.to) == null && (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { - found = sp.marker; - } - } - } - return found; - } - function collapsedSpanAtStart(line) { - return collapsedSpanAtSide(line, true); - } - function collapsedSpanAtEnd(line) { - return collapsedSpanAtSide(line, false); - } - function collapsedSpanAround(line, ch) { - var sps = sawCollapsedSpans && line.markedSpans, - found; - if (sps) { - for (var i2 = 0; i2 < sps.length; ++i2) { - var sp = sps[i2]; - if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) && (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { - found = sp.marker; - } - } - } - return found; - } - function conflictingCollapsedRange(doc, lineNo2, from, to, marker) { - var line = getLine(doc, lineNo2); - var sps = sawCollapsedSpans && line.markedSpans; - if (sps) { - for (var i2 = 0; i2 < sps.length; ++i2) { - var sp = sps[i2]; - if (!sp.marker.collapsed) { - continue; - } - var found = sp.marker.find(0); - var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker); - var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker); - if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { - continue; - } - if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) || fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0)) { - return true; - } - } - } - } - function visualLine(line) { - var merged; - while (merged = collapsedSpanAtStart(line)) { - line = merged.find(-1, true).line; - } - return line; - } - function visualLineEnd(line) { - var merged; - while (merged = collapsedSpanAtEnd(line)) { - line = merged.find(1, true).line; - } - return line; - } - function visualLineContinued(line) { - var merged, lines; - while (merged = collapsedSpanAtEnd(line)) { - line = merged.find(1, true).line; - (lines || (lines = [])).push(line); - } - return lines; - } - function visualLineNo(doc, lineN) { - var line = getLine(doc, lineN), - vis = visualLine(line); - if (line == vis) { - return lineN; - } - return lineNo(vis); - } - function visualLineEndNo(doc, lineN) { - if (lineN > doc.lastLine()) { - return lineN; - } - var line = getLine(doc, lineN), - merged; - if (!lineIsHidden(doc, line)) { - return lineN; - } - while (merged = collapsedSpanAtEnd(line)) { - line = merged.find(1, true).line; - } - return lineNo(line) + 1; - } - function lineIsHidden(doc, line) { - var sps = sawCollapsedSpans && line.markedSpans; - if (sps) { - for (var sp = void 0, i2 = 0; i2 < sps.length; ++i2) { - sp = sps[i2]; - if (!sp.marker.collapsed) { - continue; - } - if (sp.from == null) { - return true; - } - if (sp.marker.widgetNode) { - continue; - } - if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp)) { - return true; - } - } - } - } - function lineIsHiddenInner(doc, line, span) { - if (span.to == null) { - var end = span.marker.find(1, true); - return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker)); - } - if (span.marker.inclusiveRight && span.to == line.text.length) { - return true; - } - for (var sp = void 0, i2 = 0; i2 < line.markedSpans.length; ++i2) { - sp = line.markedSpans[i2]; - if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to && (sp.to == null || sp.to != span.from) && (sp.marker.inclusiveLeft || span.marker.inclusiveRight) && lineIsHiddenInner(doc, line, sp)) { - return true; - } - } - } - function heightAtLine(lineObj) { - lineObj = visualLine(lineObj); - var h = 0, - chunk = lineObj.parent; - for (var i2 = 0; i2 < chunk.lines.length; ++i2) { - var line = chunk.lines[i2]; - if (line == lineObj) { - break; - } else { - h += line.height; - } - } - for (var p = chunk.parent; p; chunk = p, p = chunk.parent) { - for (var i$12 = 0; i$12 < p.children.length; ++i$12) { - var cur = p.children[i$12]; - if (cur == chunk) { - break; - } else { - h += cur.height; - } - } - } - return h; - } - function lineLength(line) { - if (line.height == 0) { - return 0; - } - var len = line.text.length, - merged, - cur = line; - while (merged = collapsedSpanAtStart(cur)) { - var found = merged.find(0, true); - cur = found.from.line; - len += found.from.ch - found.to.ch; - } - cur = line; - while (merged = collapsedSpanAtEnd(cur)) { - var found$1 = merged.find(0, true); - len -= cur.text.length - found$1.from.ch; - cur = found$1.to.line; - len += cur.text.length - found$1.to.ch; - } - return len; - } - function findMaxLine(cm) { - var d = cm.display, - doc = cm.doc; - d.maxLine = getLine(doc, doc.first); - d.maxLineLength = lineLength(d.maxLine); - d.maxLineChanged = true; - doc.iter(function (line) { - var len = lineLength(line); - if (len > d.maxLineLength) { - d.maxLineLength = len; - d.maxLine = line; - } - }); - } - var Line = function (text, markedSpans, estimateHeight2) { - this.text = text; - attachMarkedSpans(this, markedSpans); - this.height = estimateHeight2 ? estimateHeight2(this) : 1; - }; - Line.prototype.lineNo = function () { - return lineNo(this); - }; - eventMixin(Line); - function updateLine(line, text, markedSpans, estimateHeight2) { - line.text = text; - if (line.stateAfter) { - line.stateAfter = null; - } - if (line.styles) { - line.styles = null; - } - if (line.order != null) { - line.order = null; - } - detachMarkedSpans(line); - attachMarkedSpans(line, markedSpans); - var estHeight = estimateHeight2 ? estimateHeight2(line) : 1; - if (estHeight != line.height) { - updateLineHeight(line, estHeight); - } - } - function cleanUpLine(line) { - line.parent = null; - detachMarkedSpans(line); - } - var styleToClassCache = {}, - styleToClassCacheWithMode = {}; - function interpretTokenStyle(style, options) { - if (!style || /^\s*$/.test(style)) { - return null; - } - var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache; - return cache[style] || (cache[style] = style.replace(/\S+/g, "cm-$&")); - } - function buildLineContent(cm, lineView) { - var content = eltP("span", null, null, webkit ? "padding-right: .1px" : null); - var builder = { - pre: eltP("pre", [content], "CodeMirror-line"), - content, - col: 0, - pos: 0, - cm, - trailingSpace: false, - splitSpaces: cm.getOption("lineWrapping") - }; - lineView.measure = {}; - for (var i2 = 0; i2 <= (lineView.rest ? lineView.rest.length : 0); i2++) { - var line = i2 ? lineView.rest[i2 - 1] : lineView.line, - order = void 0; - builder.pos = 0; - builder.addToken = buildToken; - if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction))) { - builder.addToken = buildTokenBadBidi(builder.addToken, order); - } - builder.map = []; - var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line); - insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate)); - if (line.styleClasses) { - if (line.styleClasses.bgClass) { - builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || ""); - } - if (line.styleClasses.textClass) { - builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || ""); - } - } - if (builder.map.length == 0) { - builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); - } - if (i2 == 0) { - lineView.measure.map = builder.map; - lineView.measure.cache = {}; - } else { - (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map); - (lineView.measure.caches || (lineView.measure.caches = [])).push({}); - } - } - if (webkit) { - var last = builder.content.lastChild; - if (/\bcm-tab\b/.test(last.className) || last.querySelector && last.querySelector(".cm-tab")) { - builder.content.className = "cm-tab-wrap-hack"; - } - } - signal(cm, "renderLine", cm, lineView.line, builder.pre); - if (builder.pre.className) { - builder.textClass = joinClasses(builder.pre.className, builder.textClass || ""); - } - return builder; - } - function defaultSpecialCharPlaceholder(ch) { - var token = elt("span", "•", "cm-invalidchar"); - token.title = "\\u" + ch.charCodeAt(0).toString(16); - token.setAttribute("aria-label", token.title); - return token; - } - function buildToken(builder, text, style, startStyle, endStyle, css, attributes) { - if (!text) { - return; - } - var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text; - var special = builder.cm.state.specialChars, - mustWrap = false; - var content; - if (!special.test(text)) { - builder.col += text.length; - content = document.createTextNode(displayText); - builder.map.push(builder.pos, builder.pos + text.length, content); - if (ie && ie_version < 9) { - mustWrap = true; - } - builder.pos += text.length; - } else { - content = document.createDocumentFragment(); - var pos = 0; - while (true) { - special.lastIndex = pos; - var m = special.exec(text); - var skipped = m ? m.index - pos : text.length - pos; - if (skipped) { - var txt = document.createTextNode(displayText.slice(pos, pos + skipped)); - if (ie && ie_version < 9) { - content.appendChild(elt("span", [txt])); - } else { - content.appendChild(txt); - } - builder.map.push(builder.pos, builder.pos + skipped, txt); - builder.col += skipped; - builder.pos += skipped; - } - if (!m) { - break; - } - pos += skipped + 1; - var txt$1 = void 0; - if (m[0] == " ") { - var tabSize = builder.cm.options.tabSize, - tabWidth = tabSize - builder.col % tabSize; - txt$1 = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab")); - txt$1.setAttribute("role", "presentation"); - txt$1.setAttribute("cm-text", " "); - builder.col += tabWidth; - } else if (m[0] == "\r" || m[0] == "\n") { - txt$1 = content.appendChild(elt("span", m[0] == "\r" ? "␍" : "␤", "cm-invalidchar")); - txt$1.setAttribute("cm-text", m[0]); - builder.col += 1; - } else { - txt$1 = builder.cm.options.specialCharPlaceholder(m[0]); - txt$1.setAttribute("cm-text", m[0]); - if (ie && ie_version < 9) { - content.appendChild(elt("span", [txt$1])); - } else { - content.appendChild(txt$1); - } - builder.col += 1; - } - builder.map.push(builder.pos, builder.pos + 1, txt$1); - builder.pos++; - } - } - builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32; - if (style || startStyle || endStyle || mustWrap || css || attributes) { - var fullStyle = style || ""; - if (startStyle) { - fullStyle += startStyle; - } - if (endStyle) { - fullStyle += endStyle; - } - var token = elt("span", [content], fullStyle, css); - if (attributes) { - for (var attr in attributes) { - if (attributes.hasOwnProperty(attr) && attr != "style" && attr != "class") { - token.setAttribute(attr, attributes[attr]); - } - } - } - return builder.content.appendChild(token); - } - builder.content.appendChild(content); - } - function splitSpaces(text, trailingBefore) { - if (text.length > 1 && !/ /.test(text)) { - return text; - } - var spaceBefore = trailingBefore, - result = ""; - for (var i2 = 0; i2 < text.length; i2++) { - var ch = text.charAt(i2); - if (ch == " " && spaceBefore && (i2 == text.length - 1 || text.charCodeAt(i2 + 1) == 32)) { - ch = " "; - } - result += ch; - spaceBefore = ch == " "; - } - return result; - } - function buildTokenBadBidi(inner, order) { - return function (builder, text, style, startStyle, endStyle, css, attributes) { - style = style ? style + " cm-force-border" : "cm-force-border"; - var start = builder.pos, - end = start + text.length; - for (;;) { - var part = void 0; - for (var i2 = 0; i2 < order.length; i2++) { - part = order[i2]; - if (part.to > start && part.from <= start) { - break; - } - } - if (part.to >= end) { - return inner(builder, text, style, startStyle, endStyle, css, attributes); - } - inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes); - startStyle = null; - text = text.slice(part.to - start); - start = part.to; - } - }; - } - function buildCollapsedSpan(builder, size, marker, ignoreWidget) { - var widget = !ignoreWidget && marker.widgetNode; - if (widget) { - builder.map.push(builder.pos, builder.pos + size, widget); - } - if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) { - if (!widget) { - widget = builder.content.appendChild(document.createElement("span")); - } - widget.setAttribute("cm-marker", marker.id); - } - if (widget) { - builder.cm.display.input.setUneditable(widget); - builder.content.appendChild(widget); - } - builder.pos += size; - builder.trailingSpace = false; - } - function insertLineContent(line, builder, styles) { - var spans = line.markedSpans, - allText = line.text, - at = 0; - if (!spans) { - for (var i$12 = 1; i$12 < styles.length; i$12 += 2) { - builder.addToken(builder, allText.slice(at, at = styles[i$12]), interpretTokenStyle(styles[i$12 + 1], builder.cm.options)); - } - return; - } - var len = allText.length, - pos = 0, - i2 = 1, - text = "", - style, - css; - var nextChange = 0, - spanStyle, - spanEndStyle, - spanStartStyle, - collapsed, - attributes; - for (;;) { - if (nextChange == pos) { - spanStyle = spanEndStyle = spanStartStyle = css = ""; - attributes = null; - collapsed = null; - nextChange = Infinity; - var foundBookmarks = [], - endStyles = void 0; - for (var j = 0; j < spans.length; ++j) { - var sp = spans[j], - m = sp.marker; - if (m.type == "bookmark" && sp.from == pos && m.widgetNode) { - foundBookmarks.push(m); - } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) { - if (sp.to != null && sp.to != pos && nextChange > sp.to) { - nextChange = sp.to; - spanEndStyle = ""; - } - if (m.className) { - spanStyle += " " + m.className; - } - if (m.css) { - css = (css ? css + ";" : "") + m.css; - } - if (m.startStyle && sp.from == pos) { - spanStartStyle += " " + m.startStyle; - } - if (m.endStyle && sp.to == nextChange) { - (endStyles || (endStyles = [])).push(m.endStyle, sp.to); - } - if (m.title) { - (attributes || (attributes = {})).title = m.title; - } - if (m.attributes) { - for (var attr in m.attributes) { - (attributes || (attributes = {}))[attr] = m.attributes[attr]; - } - } - if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0)) { - collapsed = sp; - } - } else if (sp.from > pos && nextChange > sp.from) { - nextChange = sp.from; - } - } - if (endStyles) { - for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2) { - if (endStyles[j$1 + 1] == nextChange) { - spanEndStyle += " " + endStyles[j$1]; - } - } - } - if (!collapsed || collapsed.from == pos) { - for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2) { - buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); - } - } - if (collapsed && (collapsed.from || 0) == pos) { - buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos, collapsed.marker, collapsed.from == null); - if (collapsed.to == null) { - return; - } - if (collapsed.to == pos) { - collapsed = false; - } - } - } - if (pos >= len) { - break; - } - var upto = Math.min(len, nextChange); - while (true) { - if (text) { - var end = pos + text.length; - if (!collapsed) { - var tokenText = end > upto ? text.slice(0, upto - pos) : text; - builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle, spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", css, attributes); - } - if (end >= upto) { - text = text.slice(upto - pos); - pos = upto; - break; - } - pos = end; - spanStartStyle = ""; - } - text = allText.slice(at, at = styles[i2++]); - style = interpretTokenStyle(styles[i2++], builder.cm.options); - } - } - } - function LineView(doc, line, lineN) { - this.line = line; - this.rest = visualLineContinued(line); - this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1; - this.node = this.text = null; - this.hidden = lineIsHidden(doc, line); - } - function buildViewArray(cm, from, to) { - var array = [], - nextPos; - for (var pos = from; pos < to; pos = nextPos) { - var view = new LineView(cm.doc, getLine(cm.doc, pos), pos); - nextPos = pos + view.size; - array.push(view); - } - return array; - } - var operationGroup = null; - function pushOperation(op) { - if (operationGroup) { - operationGroup.ops.push(op); - } else { - op.ownsGroup = operationGroup = { - ops: [op], - delayedCallbacks: [] - }; - } - } - function fireCallbacksForOps(group) { - var callbacks = group.delayedCallbacks, - i2 = 0; - do { - for (; i2 < callbacks.length; i2++) { - callbacks[i2].call(null); - } - for (var j = 0; j < group.ops.length; j++) { - var op = group.ops[j]; - if (op.cursorActivityHandlers) { - while (op.cursorActivityCalled < op.cursorActivityHandlers.length) { - op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); - } - } - } - } while (i2 < callbacks.length); - } - function finishOperation(op, endCb) { - var group = op.ownsGroup; - if (!group) { - return; - } - try { - fireCallbacksForOps(group); - } finally { - operationGroup = null; - endCb(group); - } - } - var orphanDelayedCallbacks = null; - function signalLater(emitter, type) { - var arr = getHandlers(emitter, type); - if (!arr.length) { - return; - } - var args = Array.prototype.slice.call(arguments, 2), - list; - if (operationGroup) { - list = operationGroup.delayedCallbacks; - } else if (orphanDelayedCallbacks) { - list = orphanDelayedCallbacks; - } else { - list = orphanDelayedCallbacks = []; - setTimeout(fireOrphanDelayed, 0); - } - var loop = function (i3) { - list.push(function () { - return arr[i3].apply(null, args); - }); - }; - for (var i2 = 0; i2 < arr.length; ++i2) loop(i2); - } - function fireOrphanDelayed() { - var delayed = orphanDelayedCallbacks; - orphanDelayedCallbacks = null; - for (var i2 = 0; i2 < delayed.length; ++i2) { - delayed[i2](); - } - } - function updateLineForChanges(cm, lineView, lineN, dims) { - for (var j = 0; j < lineView.changes.length; j++) { - var type = lineView.changes[j]; - if (type == "text") { - updateLineText(cm, lineView); - } else if (type == "gutter") { - updateLineGutter(cm, lineView, lineN, dims); - } else if (type == "class") { - updateLineClasses(cm, lineView); - } else if (type == "widget") { - updateLineWidgets(cm, lineView, dims); - } - } - lineView.changes = null; - } - function ensureLineWrapped(lineView) { - if (lineView.node == lineView.text) { - lineView.node = elt("div", null, null, "position: relative"); - if (lineView.text.parentNode) { - lineView.text.parentNode.replaceChild(lineView.node, lineView.text); - } - lineView.node.appendChild(lineView.text); - if (ie && ie_version < 8) { - lineView.node.style.zIndex = 2; - } - } - return lineView.node; - } - function updateLineBackground(cm, lineView) { - var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass; - if (cls) { - cls += " CodeMirror-linebackground"; - } - if (lineView.background) { - if (cls) { - lineView.background.className = cls; - } else { - lineView.background.parentNode.removeChild(lineView.background); - lineView.background = null; - } - } else if (cls) { - var wrap = ensureLineWrapped(lineView); - lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild); - cm.display.input.setUneditable(lineView.background); - } - } - function getLineContent(cm, lineView) { - var ext = cm.display.externalMeasured; - if (ext && ext.line == lineView.line) { - cm.display.externalMeasured = null; - lineView.measure = ext.measure; - return ext.built; - } - return buildLineContent(cm, lineView); - } - function updateLineText(cm, lineView) { - var cls = lineView.text.className; - var built = getLineContent(cm, lineView); - if (lineView.text == lineView.node) { - lineView.node = built.pre; - } - lineView.text.parentNode.replaceChild(built.pre, lineView.text); - lineView.text = built.pre; - if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) { - lineView.bgClass = built.bgClass; - lineView.textClass = built.textClass; - updateLineClasses(cm, lineView); - } else if (cls) { - lineView.text.className = cls; - } - } - function updateLineClasses(cm, lineView) { - updateLineBackground(cm, lineView); - if (lineView.line.wrapClass) { - ensureLineWrapped(lineView).className = lineView.line.wrapClass; - } else if (lineView.node != lineView.text) { - lineView.node.className = ""; - } - var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass; - lineView.text.className = textClass || ""; - } - function updateLineGutter(cm, lineView, lineN, dims) { - if (lineView.gutter) { - lineView.node.removeChild(lineView.gutter); - lineView.gutter = null; - } - if (lineView.gutterBackground) { - lineView.node.removeChild(lineView.gutterBackground); - lineView.gutterBackground = null; - } - if (lineView.line.gutterClass) { - var wrap = ensureLineWrapped(lineView); - lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass, "left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px; width: " + dims.gutterTotalWidth + "px"); - cm.display.input.setUneditable(lineView.gutterBackground); - wrap.insertBefore(lineView.gutterBackground, lineView.text); - } - var markers = lineView.line.gutterMarkers; - if (cm.options.lineNumbers || markers) { - var wrap$1 = ensureLineWrapped(lineView); - var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", "left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px"); - gutterWrap.setAttribute("aria-hidden", "true"); - cm.display.input.setUneditable(gutterWrap); - wrap$1.insertBefore(gutterWrap, lineView.text); - if (lineView.line.gutterClass) { - gutterWrap.className += " " + lineView.line.gutterClass; - } - if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) { - lineView.lineNumber = gutterWrap.appendChild(elt("div", lineNumberFor(cm.options, lineN), "CodeMirror-linenumber CodeMirror-gutter-elt", "left: " + dims.gutterLeft["CodeMirror-linenumbers"] + "px; width: " + cm.display.lineNumInnerWidth + "px")); - } - if (markers) { - for (var k = 0; k < cm.display.gutterSpecs.length; ++k) { - var id = cm.display.gutterSpecs[k].className, - found = markers.hasOwnProperty(id) && markers[id]; - if (found) { - gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", "left: " + dims.gutterLeft[id] + "px; width: " + dims.gutterWidth[id] + "px")); - } - } - } - } - } - function updateLineWidgets(cm, lineView, dims) { - if (lineView.alignable) { - lineView.alignable = null; - } - var isWidget = classTest("CodeMirror-linewidget"); - for (var node = lineView.node.firstChild, next = void 0; node; node = next) { - next = node.nextSibling; - if (isWidget.test(node.className)) { - lineView.node.removeChild(node); - } - } - insertLineWidgets(cm, lineView, dims); - } - function buildLineElement(cm, lineView, lineN, dims) { - var built = getLineContent(cm, lineView); - lineView.text = lineView.node = built.pre; - if (built.bgClass) { - lineView.bgClass = built.bgClass; - } - if (built.textClass) { - lineView.textClass = built.textClass; - } - updateLineClasses(cm, lineView); - updateLineGutter(cm, lineView, lineN, dims); - insertLineWidgets(cm, lineView, dims); - return lineView.node; - } - function insertLineWidgets(cm, lineView, dims) { - insertLineWidgetsFor(cm, lineView.line, lineView, dims, true); - if (lineView.rest) { - for (var i2 = 0; i2 < lineView.rest.length; i2++) { - insertLineWidgetsFor(cm, lineView.rest[i2], lineView, dims, false); - } - } - } - function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) { - if (!line.widgets) { - return; - } - var wrap = ensureLineWrapped(lineView); - for (var i2 = 0, ws = line.widgets; i2 < ws.length; ++i2) { - var widget = ws[i2], - node = elt("div", [widget.node], "CodeMirror-linewidget" + (widget.className ? " " + widget.className : "")); - if (!widget.handleMouseEvents) { - node.setAttribute("cm-ignore-events", "true"); - } - positionLineWidget(widget, node, lineView, dims); - cm.display.input.setUneditable(node); - if (allowAbove && widget.above) { - wrap.insertBefore(node, lineView.gutter || lineView.text); - } else { - wrap.appendChild(node); - } - signalLater(widget, "redraw"); - } - } - function positionLineWidget(widget, node, lineView, dims) { - if (widget.noHScroll) { - (lineView.alignable || (lineView.alignable = [])).push(node); - var width = dims.wrapperWidth; - node.style.left = dims.fixedPos + "px"; - if (!widget.coverGutter) { - width -= dims.gutterTotalWidth; - node.style.paddingLeft = dims.gutterTotalWidth + "px"; - } - node.style.width = width + "px"; - } - if (widget.coverGutter) { - node.style.zIndex = 5; - node.style.position = "relative"; - if (!widget.noHScroll) { - node.style.marginLeft = -dims.gutterTotalWidth + "px"; - } - } - } - function widgetHeight(widget) { - if (widget.height != null) { - return widget.height; - } - var cm = widget.doc.cm; - if (!cm) { - return 0; - } - if (!contains(document.body, widget.node)) { - var parentStyle = "position: relative;"; - if (widget.coverGutter) { - parentStyle += "margin-left: -" + cm.display.gutters.offsetWidth + "px;"; - } - if (widget.noHScroll) { - parentStyle += "width: " + cm.display.wrapper.clientWidth + "px;"; - } - removeChildrenAndAdd(cm.display.measure, elt("div", [widget.node], null, parentStyle)); - } - return widget.height = widget.node.parentNode.offsetHeight; - } - function eventInWidget(display, e) { - for (var n = e_target(e); n != display.wrapper; n = n.parentNode) { - if (!n || n.nodeType == 1 && n.getAttribute("cm-ignore-events") == "true" || n.parentNode == display.sizer && n != display.mover) { - return true; - } - } - } - function paddingTop(display) { - return display.lineSpace.offsetTop; - } - function paddingVert(display) { - return display.mover.offsetHeight - display.lineSpace.offsetHeight; - } - function paddingH(display) { - if (display.cachedPaddingH) { - return display.cachedPaddingH; - } - var e = removeChildrenAndAdd(display.measure, elt("pre", "x", "CodeMirror-line-like")); - var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle; - var data = { - left: parseInt(style.paddingLeft), - right: parseInt(style.paddingRight) - }; - if (!isNaN(data.left) && !isNaN(data.right)) { - display.cachedPaddingH = data; - } - return data; - } - function scrollGap(cm) { - return scrollerGap - cm.display.nativeBarWidth; - } - function displayWidth(cm) { - return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth; - } - function displayHeight(cm) { - return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight; - } - function ensureLineHeights(cm, lineView, rect) { - var wrapping = cm.options.lineWrapping; - var curWidth = wrapping && displayWidth(cm); - if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) { - var heights = lineView.measure.heights = []; - if (wrapping) { - lineView.measure.width = curWidth; - var rects = lineView.text.firstChild.getClientRects(); - for (var i2 = 0; i2 < rects.length - 1; i2++) { - var cur = rects[i2], - next = rects[i2 + 1]; - if (Math.abs(cur.bottom - next.bottom) > 2) { - heights.push((cur.bottom + next.top) / 2 - rect.top); - } - } - } - heights.push(rect.bottom - rect.top); - } - } - function mapFromLineView(lineView, line, lineN) { - if (lineView.line == line) { - return { - map: lineView.measure.map, - cache: lineView.measure.cache - }; - } - if (lineView.rest) { - for (var i2 = 0; i2 < lineView.rest.length; i2++) { - if (lineView.rest[i2] == line) { - return { - map: lineView.measure.maps[i2], - cache: lineView.measure.caches[i2] - }; - } - } - for (var i$12 = 0; i$12 < lineView.rest.length; i$12++) { - if (lineNo(lineView.rest[i$12]) > lineN) { - return { - map: lineView.measure.maps[i$12], - cache: lineView.measure.caches[i$12], - before: true - }; - } - } - } - } - function updateExternalMeasurement(cm, line) { - line = visualLine(line); - var lineN = lineNo(line); - var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN); - view.lineN = lineN; - var built = view.built = buildLineContent(cm, view); - view.text = built.pre; - removeChildrenAndAdd(cm.display.lineMeasure, built.pre); - return view; - } - function measureChar(cm, line, ch, bias) { - return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias); - } - function findViewForLine(cm, lineN) { - if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo) { - return cm.display.view[findViewIndex(cm, lineN)]; - } - var ext = cm.display.externalMeasured; - if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size) { - return ext; - } - } - function prepareMeasureForLine(cm, line) { - var lineN = lineNo(line); - var view = findViewForLine(cm, lineN); - if (view && !view.text) { - view = null; - } else if (view && view.changes) { - updateLineForChanges(cm, view, lineN, getDimensions(cm)); - cm.curOp.forceUpdate = true; - } - if (!view) { - view = updateExternalMeasurement(cm, line); - } - var info = mapFromLineView(view, line, lineN); - return { - line, - view, - rect: null, - map: info.map, - cache: info.cache, - before: info.before, - hasHeights: false - }; - } - function measureCharPrepared(cm, prepared, ch, bias, varHeight) { - if (prepared.before) { - ch = -1; - } - var key = ch + (bias || ""), - found; - if (prepared.cache.hasOwnProperty(key)) { - found = prepared.cache[key]; - } else { - if (!prepared.rect) { - prepared.rect = prepared.view.text.getBoundingClientRect(); - } - if (!prepared.hasHeights) { - ensureLineHeights(cm, prepared.view, prepared.rect); - prepared.hasHeights = true; - } - found = measureCharInner(cm, prepared, ch, bias); - if (!found.bogus) { - prepared.cache[key] = found; - } - } - return { - left: found.left, - right: found.right, - top: varHeight ? found.rtop : found.top, - bottom: varHeight ? found.rbottom : found.bottom - }; - } - var nullRect = { - left: 0, - right: 0, - top: 0, - bottom: 0 - }; - function nodeAndOffsetInLineMap(map2, ch, bias) { - var node, start, end, collapse, mStart, mEnd; - for (var i2 = 0; i2 < map2.length; i2 += 3) { - mStart = map2[i2]; - mEnd = map2[i2 + 1]; - if (ch < mStart) { - start = 0; - end = 1; - collapse = "left"; - } else if (ch < mEnd) { - start = ch - mStart; - end = start + 1; - } else if (i2 == map2.length - 3 || ch == mEnd && map2[i2 + 3] > ch) { - end = mEnd - mStart; - start = end - 1; - if (ch >= mEnd) { - collapse = "right"; - } - } - if (start != null) { - node = map2[i2 + 2]; - if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right")) { - collapse = bias; - } - if (bias == "left" && start == 0) { - while (i2 && map2[i2 - 2] == map2[i2 - 3] && map2[i2 - 1].insertLeft) { - node = map2[(i2 -= 3) + 2]; - collapse = "left"; - } - } - if (bias == "right" && start == mEnd - mStart) { - while (i2 < map2.length - 3 && map2[i2 + 3] == map2[i2 + 4] && !map2[i2 + 5].insertLeft) { - node = map2[(i2 += 3) + 2]; - collapse = "right"; - } - } - break; - } - } - return { - node, - start, - end, - collapse, - coverStart: mStart, - coverEnd: mEnd - }; - } - function getUsefulRect(rects, bias) { - var rect = nullRect; - if (bias == "left") { - for (var i2 = 0; i2 < rects.length; i2++) { - if ((rect = rects[i2]).left != rect.right) { - break; - } - } - } else { - for (var i$12 = rects.length - 1; i$12 >= 0; i$12--) { - if ((rect = rects[i$12]).left != rect.right) { - break; - } - } - } - return rect; - } - function measureCharInner(cm, prepared, ch, bias) { - var place = nodeAndOffsetInLineMap(prepared.map, ch, bias); - var node = place.node, - start = place.start, - end = place.end, - collapse = place.collapse; - var rect; - if (node.nodeType == 3) { - for (var i$12 = 0; i$12 < 4; i$12++) { - while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { - --start; - } - while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { - ++end; - } - if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart) { - rect = node.parentNode.getBoundingClientRect(); - } else { - rect = getUsefulRect(range(node, start, end).getClientRects(), bias); - } - if (rect.left || rect.right || start == 0) { - break; - } - end = start; - start = start - 1; - collapse = "right"; - } - if (ie && ie_version < 11) { - rect = maybeUpdateRectForZooming(cm.display.measure, rect); - } - } else { - if (start > 0) { - collapse = bias = "right"; - } - var rects; - if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1) { - rect = rects[bias == "right" ? rects.length - 1 : 0]; - } else { - rect = node.getBoundingClientRect(); - } - } - if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) { - var rSpan = node.parentNode.getClientRects()[0]; - if (rSpan) { - rect = { - left: rSpan.left, - right: rSpan.left + charWidth(cm.display), - top: rSpan.top, - bottom: rSpan.bottom - }; - } else { - rect = nullRect; - } - } - var rtop = rect.top - prepared.rect.top, - rbot = rect.bottom - prepared.rect.top; - var mid = (rtop + rbot) / 2; - var heights = prepared.view.measure.heights; - var i2 = 0; - for (; i2 < heights.length - 1; i2++) { - if (mid < heights[i2]) { - break; - } - } - var top = i2 ? heights[i2 - 1] : 0, - bot = heights[i2]; - var result = { - left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left, - right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left, - top, - bottom: bot - }; - if (!rect.left && !rect.right) { - result.bogus = true; - } - if (!cm.options.singleCursorHeightPerLine) { - result.rtop = rtop; - result.rbottom = rbot; - } - return result; - } - function maybeUpdateRectForZooming(measure, rect) { - if (!window.screen || screen.logicalXDPI == null || screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure)) { - return rect; - } - var scaleX = screen.logicalXDPI / screen.deviceXDPI; - var scaleY = screen.logicalYDPI / screen.deviceYDPI; - return { - left: rect.left * scaleX, - right: rect.right * scaleX, - top: rect.top * scaleY, - bottom: rect.bottom * scaleY - }; - } - function clearLineMeasurementCacheFor(lineView) { - if (lineView.measure) { - lineView.measure.cache = {}; - lineView.measure.heights = null; - if (lineView.rest) { - for (var i2 = 0; i2 < lineView.rest.length; i2++) { - lineView.measure.caches[i2] = {}; - } - } - } - } - function clearLineMeasurementCache(cm) { - cm.display.externalMeasure = null; - removeChildren(cm.display.lineMeasure); - for (var i2 = 0; i2 < cm.display.view.length; i2++) { - clearLineMeasurementCacheFor(cm.display.view[i2]); - } - } - function clearCaches(cm) { - clearLineMeasurementCache(cm); - cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null; - if (!cm.options.lineWrapping) { - cm.display.maxLineChanged = true; - } - cm.display.lineNumChars = null; - } - function pageScrollX() { - if (chrome && android) { - return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)); - } - return window.pageXOffset || (document.documentElement || document.body).scrollLeft; - } - function pageScrollY() { - if (chrome && android) { - return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)); - } - return window.pageYOffset || (document.documentElement || document.body).scrollTop; - } - function widgetTopHeight(lineObj) { - var ref = visualLine(lineObj); - var widgets = ref.widgets; - var height = 0; - if (widgets) { - for (var i2 = 0; i2 < widgets.length; ++i2) { - if (widgets[i2].above) { - height += widgetHeight(widgets[i2]); - } - } - } - return height; - } - function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) { - if (!includeWidgets) { - var height = widgetTopHeight(lineObj); - rect.top += height; - rect.bottom += height; - } - if (context == "line") { - return rect; - } - if (!context) { - context = "local"; - } - var yOff = heightAtLine(lineObj); - if (context == "local") { - yOff += paddingTop(cm.display); - } else { - yOff -= cm.display.viewOffset; - } - if (context == "page" || context == "window") { - var lOff = cm.display.lineSpace.getBoundingClientRect(); - yOff += lOff.top + (context == "window" ? 0 : pageScrollY()); - var xOff = lOff.left + (context == "window" ? 0 : pageScrollX()); - rect.left += xOff; - rect.right += xOff; - } - rect.top += yOff; - rect.bottom += yOff; - return rect; - } - function fromCoordSystem(cm, coords, context) { - if (context == "div") { - return coords; - } - var left = coords.left, - top = coords.top; - if (context == "page") { - left -= pageScrollX(); - top -= pageScrollY(); - } else if (context == "local" || !context) { - var localBox = cm.display.sizer.getBoundingClientRect(); - left += localBox.left; - top += localBox.top; - } - var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect(); - return { - left: left - lineSpaceBox.left, - top: top - lineSpaceBox.top - }; - } - function charCoords(cm, pos, context, lineObj, bias) { - if (!lineObj) { - lineObj = getLine(cm.doc, pos.line); - } - return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context); - } - function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) { - lineObj = lineObj || getLine(cm.doc, pos.line); - if (!preparedMeasure) { - preparedMeasure = prepareMeasureForLine(cm, lineObj); - } - function get(ch2, right) { - var m = measureCharPrepared(cm, preparedMeasure, ch2, right ? "right" : "left", varHeight); - if (right) { - m.left = m.right; - } else { - m.right = m.left; - } - return intoCoordSystem(cm, lineObj, m, context); - } - var order = getOrder(lineObj, cm.doc.direction), - ch = pos.ch, - sticky = pos.sticky; - if (ch >= lineObj.text.length) { - ch = lineObj.text.length; - sticky = "before"; - } else if (ch <= 0) { - ch = 0; - sticky = "after"; - } - if (!order) { - return get(sticky == "before" ? ch - 1 : ch, sticky == "before"); - } - function getBidi(ch2, partPos2, invert) { - var part = order[partPos2], - right = part.level == 1; - return get(invert ? ch2 - 1 : ch2, right != invert); - } - var partPos = getBidiPartAt(order, ch, sticky); - var other = bidiOther; - var val = getBidi(ch, partPos, sticky == "before"); - if (other != null) { - val.other = getBidi(ch, other, sticky != "before"); - } - return val; - } - function estimateCoords(cm, pos) { - var left = 0; - pos = clipPos(cm.doc, pos); - if (!cm.options.lineWrapping) { - left = charWidth(cm.display) * pos.ch; - } - var lineObj = getLine(cm.doc, pos.line); - var top = heightAtLine(lineObj) + paddingTop(cm.display); - return { - left, - right: left, - top, - bottom: top + lineObj.height - }; - } - function PosWithInfo(line, ch, sticky, outside, xRel) { - var pos = Pos(line, ch, sticky); - pos.xRel = xRel; - if (outside) { - pos.outside = outside; - } - return pos; - } - function coordsChar(cm, x, y) { - var doc = cm.doc; - y += cm.display.viewOffset; - if (y < 0) { - return PosWithInfo(doc.first, 0, null, -1, -1); - } - var lineN = lineAtHeight(doc, y), - last = doc.first + doc.size - 1; - if (lineN > last) { - return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1); - } - if (x < 0) { - x = 0; - } - var lineObj = getLine(doc, lineN); - for (;;) { - var found = coordsCharInner(cm, lineObj, lineN, x, y); - var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0)); - if (!collapsed) { - return found; - } - var rangeEnd = collapsed.find(1); - if (rangeEnd.line == lineN) { - return rangeEnd; - } - lineObj = getLine(doc, lineN = rangeEnd.line); - } - } - function wrappedLineExtent(cm, lineObj, preparedMeasure, y) { - y -= widgetTopHeight(lineObj); - var end = lineObj.text.length; - var begin = findFirst(function (ch) { - return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; - }, end, 0); - end = findFirst(function (ch) { - return measureCharPrepared(cm, preparedMeasure, ch).top > y; - }, begin, end); - return { - begin, - end - }; - } - function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) { - if (!preparedMeasure) { - preparedMeasure = prepareMeasureForLine(cm, lineObj); - } - var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top; - return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop); - } - function boxIsAfter(box, x, y, left) { - return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x; - } - function coordsCharInner(cm, lineObj, lineNo2, x, y) { - y -= heightAtLine(lineObj); - var preparedMeasure = prepareMeasureForLine(cm, lineObj); - var widgetHeight2 = widgetTopHeight(lineObj); - var begin = 0, - end = lineObj.text.length, - ltr = true; - var order = getOrder(lineObj, cm.doc.direction); - if (order) { - var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)(cm, lineObj, lineNo2, preparedMeasure, order, x, y); - ltr = part.level != 1; - begin = ltr ? part.from : part.to - 1; - end = ltr ? part.to : part.from - 1; - } - var chAround = null, - boxAround = null; - var ch = findFirst(function (ch2) { - var box = measureCharPrepared(cm, preparedMeasure, ch2); - box.top += widgetHeight2; - box.bottom += widgetHeight2; - if (!boxIsAfter(box, x, y, false)) { - return false; - } - if (box.top <= y && box.left <= x) { - chAround = ch2; - boxAround = box; - } - return true; - }, begin, end); - var baseX, - sticky, - outside = false; - if (boxAround) { - var atLeft = x - boxAround.left < boxAround.right - x, - atStart = atLeft == ltr; - ch = chAround + (atStart ? 0 : 1); - sticky = atStart ? "after" : "before"; - baseX = atLeft ? boxAround.left : boxAround.right; - } else { - if (!ltr && (ch == end || ch == begin)) { - ch++; - } - sticky = ch == 0 ? "after" : ch == lineObj.text.length ? "before" : measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight2 <= y == ltr ? "after" : "before"; - var coords = cursorCoords(cm, Pos(lineNo2, ch, sticky), "line", lineObj, preparedMeasure); - baseX = coords.left; - outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0; - } - ch = skipExtendingChars(lineObj.text, ch, 1); - return PosWithInfo(lineNo2, ch, sticky, outside, x - baseX); - } - function coordsBidiPart(cm, lineObj, lineNo2, preparedMeasure, order, x, y) { - var index = findFirst(function (i2) { - var part2 = order[i2], - ltr2 = part2.level != 1; - return boxIsAfter(cursorCoords(cm, Pos(lineNo2, ltr2 ? part2.to : part2.from, ltr2 ? "before" : "after"), "line", lineObj, preparedMeasure), x, y, true); - }, 0, order.length - 1); - var part = order[index]; - if (index > 0) { - var ltr = part.level != 1; - var start = cursorCoords(cm, Pos(lineNo2, ltr ? part.from : part.to, ltr ? "after" : "before"), "line", lineObj, preparedMeasure); - if (boxIsAfter(start, x, y, true) && start.top > y) { - part = order[index - 1]; - } - } - return part; - } - function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) { - var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y); - var begin = ref.begin; - var end = ref.end; - if (/\s/.test(lineObj.text.charAt(end - 1))) { - end--; - } - var part = null, - closestDist = null; - for (var i2 = 0; i2 < order.length; i2++) { - var p = order[i2]; - if (p.from >= end || p.to <= begin) { - continue; - } - var ltr = p.level != 1; - var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right; - var dist = endX < x ? x - endX + 1e9 : endX - x; - if (!part || closestDist > dist) { - part = p; - closestDist = dist; - } - } - if (!part) { - part = order[order.length - 1]; - } - if (part.from < begin) { - part = { - from: begin, - to: part.to, - level: part.level - }; - } - if (part.to > end) { - part = { - from: part.from, - to: end, - level: part.level - }; - } - return part; - } - var measureText; - function textHeight(display) { - if (display.cachedTextHeight != null) { - return display.cachedTextHeight; - } - if (measureText == null) { - measureText = elt("pre", null, "CodeMirror-line-like"); - for (var i2 = 0; i2 < 49; ++i2) { - measureText.appendChild(document.createTextNode("x")); - measureText.appendChild(elt("br")); - } - measureText.appendChild(document.createTextNode("x")); - } - removeChildrenAndAdd(display.measure, measureText); - var height = measureText.offsetHeight / 50; - if (height > 3) { - display.cachedTextHeight = height; - } - removeChildren(display.measure); - return height || 1; - } - function charWidth(display) { - if (display.cachedCharWidth != null) { - return display.cachedCharWidth; - } - var anchor = elt("span", "xxxxxxxxxx"); - var pre = elt("pre", [anchor], "CodeMirror-line-like"); - removeChildrenAndAdd(display.measure, pre); - var rect = anchor.getBoundingClientRect(), - width = (rect.right - rect.left) / 10; - if (width > 2) { - display.cachedCharWidth = width; - } - return width || 10; - } - function getDimensions(cm) { - var d = cm.display, - left = {}, - width = {}; - var gutterLeft = d.gutters.clientLeft; - for (var n = d.gutters.firstChild, i2 = 0; n; n = n.nextSibling, ++i2) { - var id = cm.display.gutterSpecs[i2].className; - left[id] = n.offsetLeft + n.clientLeft + gutterLeft; - width[id] = n.clientWidth; - } - return { - fixedPos: compensateForHScroll(d), - gutterTotalWidth: d.gutters.offsetWidth, - gutterLeft: left, - gutterWidth: width, - wrapperWidth: d.wrapper.clientWidth - }; - } - function compensateForHScroll(display) { - return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left; - } - function estimateHeight(cm) { - var th = textHeight(cm.display), - wrapping = cm.options.lineWrapping; - var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3); - return function (line) { - if (lineIsHidden(cm.doc, line)) { - return 0; - } - var widgetsHeight = 0; - if (line.widgets) { - for (var i2 = 0; i2 < line.widgets.length; i2++) { - if (line.widgets[i2].height) { - widgetsHeight += line.widgets[i2].height; - } - } - } - if (wrapping) { - return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th; - } else { - return widgetsHeight + th; - } - }; - } - function estimateLineHeights(cm) { - var doc = cm.doc, - est = estimateHeight(cm); - doc.iter(function (line) { - var estHeight = est(line); - if (estHeight != line.height) { - updateLineHeight(line, estHeight); - } - }); - } - function posFromMouse(cm, e, liberal, forRect) { - var display = cm.display; - if (!liberal && e_target(e).getAttribute("cm-not-content") == "true") { - return null; - } - var x, - y, - space = display.lineSpace.getBoundingClientRect(); - try { - x = e.clientX - space.left; - y = e.clientY - space.top; - } catch (e$1) { - return null; - } - var coords = coordsChar(cm, x, y), - line; - if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) { - var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length; - coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff)); - } - return coords; - } - function findViewIndex(cm, n) { - if (n >= cm.display.viewTo) { - return null; - } - n -= cm.display.viewFrom; - if (n < 0) { - return null; - } - var view = cm.display.view; - for (var i2 = 0; i2 < view.length; i2++) { - n -= view[i2].size; - if (n < 0) { - return i2; - } - } - } - function regChange(cm, from, to, lendiff) { - if (from == null) { - from = cm.doc.first; - } - if (to == null) { - to = cm.doc.first + cm.doc.size; - } - if (!lendiff) { - lendiff = 0; - } - var display = cm.display; - if (lendiff && to < display.viewTo && (display.updateLineNumbers == null || display.updateLineNumbers > from)) { - display.updateLineNumbers = from; - } - cm.curOp.viewChanged = true; - if (from >= display.viewTo) { - if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo) { - resetView(cm); - } - } else if (to <= display.viewFrom) { - if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) { - resetView(cm); - } else { - display.viewFrom += lendiff; - display.viewTo += lendiff; - } - } else if (from <= display.viewFrom && to >= display.viewTo) { - resetView(cm); - } else if (from <= display.viewFrom) { - var cut = viewCuttingPoint(cm, to, to + lendiff, 1); - if (cut) { - display.view = display.view.slice(cut.index); - display.viewFrom = cut.lineN; - display.viewTo += lendiff; - } else { - resetView(cm); - } - } else if (to >= display.viewTo) { - var cut$1 = viewCuttingPoint(cm, from, from, -1); - if (cut$1) { - display.view = display.view.slice(0, cut$1.index); - display.viewTo = cut$1.lineN; - } else { - resetView(cm); - } - } else { - var cutTop = viewCuttingPoint(cm, from, from, -1); - var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1); - if (cutTop && cutBot) { - display.view = display.view.slice(0, cutTop.index).concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN)).concat(display.view.slice(cutBot.index)); - display.viewTo += lendiff; - } else { - resetView(cm); - } - } - var ext = display.externalMeasured; - if (ext) { - if (to < ext.lineN) { - ext.lineN += lendiff; - } else if (from < ext.lineN + ext.size) { - display.externalMeasured = null; - } - } - } - function regLineChange(cm, line, type) { - cm.curOp.viewChanged = true; - var display = cm.display, - ext = cm.display.externalMeasured; - if (ext && line >= ext.lineN && line < ext.lineN + ext.size) { - display.externalMeasured = null; - } - if (line < display.viewFrom || line >= display.viewTo) { - return; - } - var lineView = display.view[findViewIndex(cm, line)]; - if (lineView.node == null) { - return; - } - var arr = lineView.changes || (lineView.changes = []); - if (indexOf(arr, type) == -1) { - arr.push(type); - } - } - function resetView(cm) { - cm.display.viewFrom = cm.display.viewTo = cm.doc.first; - cm.display.view = []; - cm.display.viewOffset = 0; - } - function viewCuttingPoint(cm, oldN, newN, dir) { - var index = findViewIndex(cm, oldN), - diff, - view = cm.display.view; - if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size) { - return { - index, - lineN: newN - }; - } - var n = cm.display.viewFrom; - for (var i2 = 0; i2 < index; i2++) { - n += view[i2].size; - } - if (n != oldN) { - if (dir > 0) { - if (index == view.length - 1) { - return null; - } - diff = n + view[index].size - oldN; - index++; - } else { - diff = n - oldN; - } - oldN += diff; - newN += diff; - } - while (visualLineNo(cm.doc, newN) != newN) { - if (index == (dir < 0 ? 0 : view.length - 1)) { - return null; - } - newN += dir * view[index - (dir < 0 ? 1 : 0)].size; - index += dir; - } - return { - index, - lineN: newN - }; - } - function adjustView(cm, from, to) { - var display = cm.display, - view = display.view; - if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) { - display.view = buildViewArray(cm, from, to); - display.viewFrom = from; - } else { - if (display.viewFrom > from) { - display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); - } else if (display.viewFrom < from) { - display.view = display.view.slice(findViewIndex(cm, from)); - } - display.viewFrom = from; - if (display.viewTo < to) { - display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); - } else if (display.viewTo > to) { - display.view = display.view.slice(0, findViewIndex(cm, to)); - } - } - display.viewTo = to; - } - function countDirtyView(cm) { - var view = cm.display.view, - dirty = 0; - for (var i2 = 0; i2 < view.length; i2++) { - var lineView = view[i2]; - if (!lineView.hidden && (!lineView.node || lineView.changes)) { - ++dirty; - } - } - return dirty; - } - function updateSelection(cm) { - cm.display.input.showSelection(cm.display.input.prepareSelection()); - } - function prepareSelection(cm, primary) { - if (primary === void 0) primary = true; - var doc = cm.doc, - result = {}; - var curFragment = result.cursors = document.createDocumentFragment(); - var selFragment = result.selection = document.createDocumentFragment(); - var customCursor = cm.options.$customCursor; - if (customCursor) { - primary = true; - } - for (var i2 = 0; i2 < doc.sel.ranges.length; i2++) { - if (!primary && i2 == doc.sel.primIndex) { - continue; - } - var range2 = doc.sel.ranges[i2]; - if (range2.from().line >= cm.display.viewTo || range2.to().line < cm.display.viewFrom) { - continue; - } - var collapsed = range2.empty(); - if (customCursor) { - var head = customCursor(cm, range2); - if (head) { - drawSelectionCursor(cm, head, curFragment); - } - } else if (collapsed || cm.options.showCursorWhenSelecting) { - drawSelectionCursor(cm, range2.head, curFragment); - } - if (!collapsed) { - drawSelectionRange(cm, range2, selFragment); - } - } - return result; - } - function drawSelectionCursor(cm, head, output) { - var pos = cursorCoords(cm, head, "div", null, null, !cm.options.singleCursorHeightPerLine); - var cursor = output.appendChild(elt("div", " ", "CodeMirror-cursor")); - cursor.style.left = pos.left + "px"; - cursor.style.top = pos.top + "px"; - cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px"; - if (/\bcm-fat-cursor\b/.test(cm.getWrapperElement().className)) { - var charPos = charCoords(cm, head, "div", null, null); - var width = charPos.right - charPos.left; - cursor.style.width = (width > 0 ? width : cm.defaultCharWidth()) + "px"; - } - if (pos.other) { - var otherCursor = output.appendChild(elt("div", " ", "CodeMirror-cursor CodeMirror-secondarycursor")); - otherCursor.style.display = ""; - otherCursor.style.left = pos.other.left + "px"; - otherCursor.style.top = pos.other.top + "px"; - otherCursor.style.height = (pos.other.bottom - pos.other.top) * 0.85 + "px"; - } - } - function cmpCoords(a, b) { - return a.top - b.top || a.left - b.left; - } - function drawSelectionRange(cm, range2, output) { - var display = cm.display, - doc = cm.doc; - var fragment = document.createDocumentFragment(); - var padding = paddingH(cm.display), - leftSide = padding.left; - var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right; - var docLTR = doc.direction == "ltr"; - function add(left, top, width, bottom) { - if (top < 0) { - top = 0; - } - top = Math.round(top); - bottom = Math.round(bottom); - fragment.appendChild(elt("div", null, "CodeMirror-selected", "position: absolute; left: " + left + "px;\n top: " + top + "px; width: " + (width == null ? rightSide - left : width) + "px;\n height: " + (bottom - top) + "px")); - } - function drawForLine(line, fromArg, toArg) { - var lineObj = getLine(doc, line); - var lineLen = lineObj.text.length; - var start, end; - function coords(ch, bias) { - return charCoords(cm, Pos(line, ch), "div", lineObj, bias); - } - function wrapX(pos, dir, side) { - var extent = wrappedLineExtentChar(cm, lineObj, null, pos); - var prop2 = dir == "ltr" == (side == "after") ? "left" : "right"; - var ch = side == "after" ? extent.begin : extent.end - (/\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1); - return coords(ch, prop2)[prop2]; - } - var order = getOrder(lineObj, doc.direction); - iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i2) { - var ltr = dir == "ltr"; - var fromPos = coords(from, ltr ? "left" : "right"); - var toPos = coords(to - 1, ltr ? "right" : "left"); - var openStart = fromArg == null && from == 0, - openEnd = toArg == null && to == lineLen; - var first = i2 == 0, - last = !order || i2 == order.length - 1; - if (toPos.top - fromPos.top <= 3) { - var openLeft = (docLTR ? openStart : openEnd) && first; - var openRight = (docLTR ? openEnd : openStart) && last; - var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left; - var right = openRight ? rightSide : (ltr ? toPos : fromPos).right; - add(left, fromPos.top, right - left, fromPos.bottom); - } else { - var topLeft, topRight, botLeft, botRight; - if (ltr) { - topLeft = docLTR && openStart && first ? leftSide : fromPos.left; - topRight = docLTR ? rightSide : wrapX(from, dir, "before"); - botLeft = docLTR ? leftSide : wrapX(to, dir, "after"); - botRight = docLTR && openEnd && last ? rightSide : toPos.right; - } else { - topLeft = !docLTR ? leftSide : wrapX(from, dir, "before"); - topRight = !docLTR && openStart && first ? rightSide : fromPos.right; - botLeft = !docLTR && openEnd && last ? leftSide : toPos.left; - botRight = !docLTR ? rightSide : wrapX(to, dir, "after"); - } - add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom); - if (fromPos.bottom < toPos.top) { - add(leftSide, fromPos.bottom, null, toPos.top); - } - add(botLeft, toPos.top, botRight - botLeft, toPos.bottom); - } - if (!start || cmpCoords(fromPos, start) < 0) { - start = fromPos; - } - if (cmpCoords(toPos, start) < 0) { - start = toPos; - } - if (!end || cmpCoords(fromPos, end) < 0) { - end = fromPos; - } - if (cmpCoords(toPos, end) < 0) { - end = toPos; - } - }); - return { - start, - end - }; - } - var sFrom = range2.from(), - sTo = range2.to(); - if (sFrom.line == sTo.line) { - drawForLine(sFrom.line, sFrom.ch, sTo.ch); - } else { - var fromLine = getLine(doc, sFrom.line), - toLine = getLine(doc, sTo.line); - var singleVLine = visualLine(fromLine) == visualLine(toLine); - var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end; - var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start; - if (singleVLine) { - if (leftEnd.top < rightStart.top - 2) { - add(leftEnd.right, leftEnd.top, null, leftEnd.bottom); - add(leftSide, rightStart.top, rightStart.left, rightStart.bottom); - } else { - add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom); - } - } - if (leftEnd.bottom < rightStart.top) { - add(leftSide, leftEnd.bottom, null, rightStart.top); - } - } - output.appendChild(fragment); - } - function restartBlink(cm) { - if (!cm.state.focused) { - return; - } - var display = cm.display; - clearInterval(display.blinker); - var on2 = true; - display.cursorDiv.style.visibility = ""; - if (cm.options.cursorBlinkRate > 0) { - display.blinker = setInterval(function () { - if (!cm.hasFocus()) { - onBlur(cm); - } - display.cursorDiv.style.visibility = (on2 = !on2) ? "" : "hidden"; - }, cm.options.cursorBlinkRate); - } else if (cm.options.cursorBlinkRate < 0) { - display.cursorDiv.style.visibility = "hidden"; - } - } - function ensureFocus(cm) { - if (!cm.hasFocus()) { - cm.display.input.focus(); - if (!cm.state.focused) { - onFocus(cm); - } - } - } - function delayBlurEvent(cm) { - cm.state.delayingBlurEvent = true; - setTimeout(function () { - if (cm.state.delayingBlurEvent) { - cm.state.delayingBlurEvent = false; - if (cm.state.focused) { - onBlur(cm); - } - } - }, 100); - } - function onFocus(cm, e) { - if (cm.state.delayingBlurEvent && !cm.state.draggingText) { - cm.state.delayingBlurEvent = false; - } - if (cm.options.readOnly == "nocursor") { - return; - } - if (!cm.state.focused) { - signal(cm, "focus", cm, e); - cm.state.focused = true; - addClass(cm.display.wrapper, "CodeMirror-focused"); - if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) { - cm.display.input.reset(); - if (webkit) { - setTimeout(function () { - return cm.display.input.reset(true); - }, 20); - } - } - cm.display.input.receivedFocus(); - } - restartBlink(cm); - } - function onBlur(cm, e) { - if (cm.state.delayingBlurEvent) { - return; - } - if (cm.state.focused) { - signal(cm, "blur", cm, e); - cm.state.focused = false; - rmClass(cm.display.wrapper, "CodeMirror-focused"); - } - clearInterval(cm.display.blinker); - setTimeout(function () { - if (!cm.state.focused) { - cm.display.shift = false; - } - }, 150); - } - function updateHeightsInViewport(cm) { - var display = cm.display; - var prevBottom = display.lineDiv.offsetTop; - var viewTop = Math.max(0, display.scroller.getBoundingClientRect().top); - var oldHeight = display.lineDiv.getBoundingClientRect().top; - var mustScroll = 0; - for (var i2 = 0; i2 < display.view.length; i2++) { - var cur = display.view[i2], - wrapping = cm.options.lineWrapping; - var height = void 0, - width = 0; - if (cur.hidden) { - continue; - } - oldHeight += cur.line.height; - if (ie && ie_version < 8) { - var bot = cur.node.offsetTop + cur.node.offsetHeight; - height = bot - prevBottom; - prevBottom = bot; - } else { - var box = cur.node.getBoundingClientRect(); - height = box.bottom - box.top; - if (!wrapping && cur.text.firstChild) { - width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; - } - } - var diff = cur.line.height - height; - if (diff > 5e-3 || diff < -5e-3) { - if (oldHeight < viewTop) { - mustScroll -= diff; - } - updateLineHeight(cur.line, height); - updateWidgetHeight(cur.line); - if (cur.rest) { - for (var j = 0; j < cur.rest.length; j++) { - updateWidgetHeight(cur.rest[j]); - } - } - } - if (width > cm.display.sizerWidth) { - var chWidth = Math.ceil(width / charWidth(cm.display)); - if (chWidth > cm.display.maxLineLength) { - cm.display.maxLineLength = chWidth; - cm.display.maxLine = cur.line; - cm.display.maxLineChanged = true; - } - } - } - if (Math.abs(mustScroll) > 2) { - display.scroller.scrollTop += mustScroll; - } - } - function updateWidgetHeight(line) { - if (line.widgets) { - for (var i2 = 0; i2 < line.widgets.length; ++i2) { - var w = line.widgets[i2], - parent = w.node.parentNode; - if (parent) { - w.height = parent.offsetHeight; - } - } - } - } - function visibleLines(display, doc, viewport) { - var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop; - top = Math.floor(top - paddingTop(display)); - var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight; - var from = lineAtHeight(doc, top), - to = lineAtHeight(doc, bottom); - if (viewport && viewport.ensure) { - var ensureFrom = viewport.ensure.from.line, - ensureTo = viewport.ensure.to.line; - if (ensureFrom < from) { - from = ensureFrom; - to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight); - } else if (Math.min(ensureTo, doc.lastLine()) >= to) { - from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight); - to = ensureTo; - } - } - return { - from, - to: Math.max(to, from + 1) - }; - } - function maybeScrollWindow(cm, rect) { - if (signalDOMEvent(cm, "scrollCursorIntoView")) { - return; - } - var display = cm.display, - box = display.sizer.getBoundingClientRect(), - doScroll = null; - if (rect.top + box.top < 0) { - doScroll = true; - } else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { - doScroll = false; - } - if (doScroll != null && !phantom) { - var scrollNode = elt("div", "​", null, "position: absolute;\n top: " + (rect.top - display.viewOffset - paddingTop(cm.display)) + "px;\n height: " + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + "px;\n left: " + rect.left + "px; width: " + Math.max(2, rect.right - rect.left) + "px;"); - cm.display.lineSpace.appendChild(scrollNode); - scrollNode.scrollIntoView(doScroll); - cm.display.lineSpace.removeChild(scrollNode); - } - } - function scrollPosIntoView(cm, pos, end, margin) { - if (margin == null) { - margin = 0; - } - var rect; - if (!cm.options.lineWrapping && pos == end) { - end = pos.sticky == "before" ? Pos(pos.line, pos.ch + 1, "before") : pos; - pos = pos.ch ? Pos(pos.line, pos.sticky == "before" ? pos.ch - 1 : pos.ch, "after") : pos; - } - for (var limit = 0; limit < 5; limit++) { - var changed = false; - var coords = cursorCoords(cm, pos); - var endCoords = !end || end == pos ? coords : cursorCoords(cm, end); - rect = { - left: Math.min(coords.left, endCoords.left), - top: Math.min(coords.top, endCoords.top) - margin, - right: Math.max(coords.left, endCoords.left), - bottom: Math.max(coords.bottom, endCoords.bottom) + margin - }; - var scrollPos = calculateScrollPos(cm, rect); - var startTop = cm.doc.scrollTop, - startLeft = cm.doc.scrollLeft; - if (scrollPos.scrollTop != null) { - updateScrollTop(cm, scrollPos.scrollTop); - if (Math.abs(cm.doc.scrollTop - startTop) > 1) { - changed = true; - } - } - if (scrollPos.scrollLeft != null) { - setScrollLeft(cm, scrollPos.scrollLeft); - if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { - changed = true; - } - } - if (!changed) { - break; - } - } - return rect; - } - function scrollIntoView(cm, rect) { - var scrollPos = calculateScrollPos(cm, rect); - if (scrollPos.scrollTop != null) { - updateScrollTop(cm, scrollPos.scrollTop); - } - if (scrollPos.scrollLeft != null) { - setScrollLeft(cm, scrollPos.scrollLeft); - } - } - function calculateScrollPos(cm, rect) { - var display = cm.display, - snapMargin = textHeight(cm.display); - if (rect.top < 0) { - rect.top = 0; - } - var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop; - var screen2 = displayHeight(cm), - result = {}; - if (rect.bottom - rect.top > screen2) { - rect.bottom = rect.top + screen2; - } - var docBottom = cm.doc.height + paddingVert(display); - var atTop = rect.top < snapMargin, - atBottom = rect.bottom > docBottom - snapMargin; - if (rect.top < screentop) { - result.scrollTop = atTop ? 0 : rect.top; - } else if (rect.bottom > screentop + screen2) { - var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen2); - if (newTop != screentop) { - result.scrollTop = newTop; - } - } - var gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth; - var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace; - var screenw = displayWidth(cm) - display.gutters.offsetWidth; - var tooWide = rect.right - rect.left > screenw; - if (tooWide) { - rect.right = rect.left + screenw; - } - if (rect.left < 10) { - result.scrollLeft = 0; - } else if (rect.left < screenleft) { - result.scrollLeft = Math.max(0, rect.left + gutterSpace - (tooWide ? 0 : 10)); - } else if (rect.right > screenw + screenleft - 3) { - result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; - } - return result; - } - function addToScrollTop(cm, top) { - if (top == null) { - return; - } - resolveScrollToPos(cm); - cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top; - } - function ensureCursorVisible(cm) { - resolveScrollToPos(cm); - var cur = cm.getCursor(); - cm.curOp.scrollToPos = { - from: cur, - to: cur, - margin: cm.options.cursorScrollMargin - }; - } - function scrollToCoords(cm, x, y) { - if (x != null || y != null) { - resolveScrollToPos(cm); - } - if (x != null) { - cm.curOp.scrollLeft = x; - } - if (y != null) { - cm.curOp.scrollTop = y; - } - } - function scrollToRange(cm, range2) { - resolveScrollToPos(cm); - cm.curOp.scrollToPos = range2; - } - function resolveScrollToPos(cm) { - var range2 = cm.curOp.scrollToPos; - if (range2) { - cm.curOp.scrollToPos = null; - var from = estimateCoords(cm, range2.from), - to = estimateCoords(cm, range2.to); - scrollToCoordsRange(cm, from, to, range2.margin); - } - } - function scrollToCoordsRange(cm, from, to, margin) { - var sPos = calculateScrollPos(cm, { - left: Math.min(from.left, to.left), - top: Math.min(from.top, to.top) - margin, - right: Math.max(from.right, to.right), - bottom: Math.max(from.bottom, to.bottom) + margin - }); - scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop); - } - function updateScrollTop(cm, val) { - if (Math.abs(cm.doc.scrollTop - val) < 2) { - return; - } - if (!gecko) { - updateDisplaySimple(cm, { - top: val - }); - } - setScrollTop(cm, val, true); - if (gecko) { - updateDisplaySimple(cm); - } - startWorker(cm, 100); - } - function setScrollTop(cm, val, forceScroll) { - val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val)); - if (cm.display.scroller.scrollTop == val && !forceScroll) { - return; - } - cm.doc.scrollTop = val; - cm.display.scrollbars.setScrollTop(val); - if (cm.display.scroller.scrollTop != val) { - cm.display.scroller.scrollTop = val; - } - } - function setScrollLeft(cm, val, isScroller, forceScroll) { - val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth)); - if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { - return; - } - cm.doc.scrollLeft = val; - alignHorizontally(cm); - if (cm.display.scroller.scrollLeft != val) { - cm.display.scroller.scrollLeft = val; - } - cm.display.scrollbars.setScrollLeft(val); - } - function measureForScrollbars(cm) { - var d = cm.display, - gutterW = d.gutters.offsetWidth; - var docH = Math.round(cm.doc.height + paddingVert(cm.display)); - return { - clientHeight: d.scroller.clientHeight, - viewHeight: d.wrapper.clientHeight, - scrollWidth: d.scroller.scrollWidth, - clientWidth: d.scroller.clientWidth, - viewWidth: d.wrapper.clientWidth, - barLeft: cm.options.fixedGutter ? gutterW : 0, - docHeight: docH, - scrollHeight: docH + scrollGap(cm) + d.barHeight, - nativeBarWidth: d.nativeBarWidth, - gutterWidth: gutterW - }; - } - var NativeScrollbars = function (place, scroll, cm) { - this.cm = cm; - var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar"); - var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar"); - vert.tabIndex = horiz.tabIndex = -1; - place(vert); - place(horiz); - on(vert, "scroll", function () { - if (vert.clientHeight) { - scroll(vert.scrollTop, "vertical"); - } - }); - on(horiz, "scroll", function () { - if (horiz.clientWidth) { - scroll(horiz.scrollLeft, "horizontal"); - } - }); - this.checkedZeroWidth = false; - if (ie && ie_version < 8) { - this.horiz.style.minHeight = this.vert.style.minWidth = "18px"; - } - }; - NativeScrollbars.prototype.update = function (measure) { - var needsH = measure.scrollWidth > measure.clientWidth + 1; - var needsV = measure.scrollHeight > measure.clientHeight + 1; - var sWidth = measure.nativeBarWidth; - if (needsV) { - this.vert.style.display = "block"; - this.vert.style.bottom = needsH ? sWidth + "px" : "0"; - var totalHeight = measure.viewHeight - (needsH ? sWidth : 0); - this.vert.firstChild.style.height = Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px"; - } else { - this.vert.scrollTop = 0; - this.vert.style.display = ""; - this.vert.firstChild.style.height = "0"; - } - if (needsH) { - this.horiz.style.display = "block"; - this.horiz.style.right = needsV ? sWidth + "px" : "0"; - this.horiz.style.left = measure.barLeft + "px"; - var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0); - this.horiz.firstChild.style.width = Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + "px"; - } else { - this.horiz.style.display = ""; - this.horiz.firstChild.style.width = "0"; - } - if (!this.checkedZeroWidth && measure.clientHeight > 0) { - if (sWidth == 0) { - this.zeroWidthHack(); - } - this.checkedZeroWidth = true; - } - return { - right: needsV ? sWidth : 0, - bottom: needsH ? sWidth : 0 - }; - }; - NativeScrollbars.prototype.setScrollLeft = function (pos) { - if (this.horiz.scrollLeft != pos) { - this.horiz.scrollLeft = pos; - } - if (this.disableHoriz) { - this.enableZeroWidthBar(this.horiz, this.disableHoriz, "horiz"); - } - }; - NativeScrollbars.prototype.setScrollTop = function (pos) { - if (this.vert.scrollTop != pos) { - this.vert.scrollTop = pos; - } - if (this.disableVert) { - this.enableZeroWidthBar(this.vert, this.disableVert, "vert"); - } - }; - NativeScrollbars.prototype.zeroWidthHack = function () { - var w = mac && !mac_geMountainLion ? "12px" : "18px"; - this.horiz.style.height = this.vert.style.width = w; - this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none"; - this.disableHoriz = new Delayed(); - this.disableVert = new Delayed(); - }; - NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) { - bar.style.pointerEvents = "auto"; - function maybeDisable() { - var box = bar.getBoundingClientRect(); - var elt2 = type == "vert" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2) : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1); - if (elt2 != bar) { - bar.style.pointerEvents = "none"; - } else { - delay.set(1e3, maybeDisable); - } - } - delay.set(1e3, maybeDisable); - }; - NativeScrollbars.prototype.clear = function () { - var parent = this.horiz.parentNode; - parent.removeChild(this.horiz); - parent.removeChild(this.vert); - }; - var NullScrollbars = function () {}; - NullScrollbars.prototype.update = function () { - return { - bottom: 0, - right: 0 - }; - }; - NullScrollbars.prototype.setScrollLeft = function () {}; - NullScrollbars.prototype.setScrollTop = function () {}; - NullScrollbars.prototype.clear = function () {}; - function updateScrollbars(cm, measure) { - if (!measure) { - measure = measureForScrollbars(cm); - } - var startWidth = cm.display.barWidth, - startHeight = cm.display.barHeight; - updateScrollbarsInner(cm, measure); - for (var i2 = 0; i2 < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i2++) { - if (startWidth != cm.display.barWidth && cm.options.lineWrapping) { - updateHeightsInViewport(cm); - } - updateScrollbarsInner(cm, measureForScrollbars(cm)); - startWidth = cm.display.barWidth; - startHeight = cm.display.barHeight; - } - } - function updateScrollbarsInner(cm, measure) { - var d = cm.display; - var sizes = d.scrollbars.update(measure); - d.sizer.style.paddingRight = (d.barWidth = sizes.right) + "px"; - d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + "px"; - d.heightForcer.style.borderBottom = sizes.bottom + "px solid transparent"; - if (sizes.right && sizes.bottom) { - d.scrollbarFiller.style.display = "block"; - d.scrollbarFiller.style.height = sizes.bottom + "px"; - d.scrollbarFiller.style.width = sizes.right + "px"; - } else { - d.scrollbarFiller.style.display = ""; - } - if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) { - d.gutterFiller.style.display = "block"; - d.gutterFiller.style.height = sizes.bottom + "px"; - d.gutterFiller.style.width = measure.gutterWidth + "px"; - } else { - d.gutterFiller.style.display = ""; - } - } - var scrollbarModel = { - "native": NativeScrollbars, - "null": NullScrollbars - }; - function initScrollbars(cm) { - if (cm.display.scrollbars) { - cm.display.scrollbars.clear(); - if (cm.display.scrollbars.addClass) { - rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); - } - } - cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) { - cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller); - on(node, "mousedown", function () { - if (cm.state.focused) { - setTimeout(function () { - return cm.display.input.focus(); - }, 0); - } - }); - node.setAttribute("cm-not-content", "true"); - }, function (pos, axis) { - if (axis == "horizontal") { - setScrollLeft(cm, pos); - } else { - updateScrollTop(cm, pos); - } - }, cm); - if (cm.display.scrollbars.addClass) { - addClass(cm.display.wrapper, cm.display.scrollbars.addClass); - } - } - var nextOpId = 0; - function startOperation(cm) { - cm.curOp = { - cm, - viewChanged: false, - // Flag that indicates that lines might need to be redrawn - startHeight: cm.doc.height, - // Used to detect need to update scrollbar - forceUpdate: false, - // Used to force a redraw - updateInput: 0, - // Whether to reset the input textarea - typing: false, - // Whether this reset should be careful to leave existing text (for compositing) - changeObjs: null, - // Accumulated changes, for firing change events - cursorActivityHandlers: null, - // Set of handlers to fire cursorActivity on - cursorActivityCalled: 0, - // Tracks which cursorActivity handlers have been called already - selectionChanged: false, - // Whether the selection needs to be redrawn - updateMaxLine: false, - // Set when the widest line needs to be determined anew - scrollLeft: null, - scrollTop: null, - // Intermediate scroll position, not pushed to DOM yet - scrollToPos: null, - // Used to scroll to a specific position - focus: false, - id: ++nextOpId, - // Unique ID - markArrays: null - // Used by addMarkedSpan - }; - pushOperation(cm.curOp); - } - function endOperation(cm) { - var op = cm.curOp; - if (op) { - finishOperation(op, function (group) { - for (var i2 = 0; i2 < group.ops.length; i2++) { - group.ops[i2].cm.curOp = null; - } - endOperations(group); - }); - } - } - function endOperations(group) { - var ops = group.ops; - for (var i2 = 0; i2 < ops.length; i2++) { - endOperation_R1(ops[i2]); - } - for (var i$12 = 0; i$12 < ops.length; i$12++) { - endOperation_W1(ops[i$12]); - } - for (var i$22 = 0; i$22 < ops.length; i$22++) { - endOperation_R2(ops[i$22]); - } - for (var i$3 = 0; i$3 < ops.length; i$3++) { - endOperation_W2(ops[i$3]); - } - for (var i$4 = 0; i$4 < ops.length; i$4++) { - endOperation_finish(ops[i$4]); - } - } - function endOperation_R1(op) { - var cm = op.cm, - display = cm.display; - maybeClipScrollbars(cm); - if (op.updateMaxLine) { - findMaxLine(cm); - } - op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null || op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom || op.scrollToPos.to.line >= display.viewTo) || display.maxLineChanged && cm.options.lineWrapping; - op.update = op.mustUpdate && new DisplayUpdate(cm, op.mustUpdate && { - top: op.scrollTop, - ensure: op.scrollToPos - }, op.forceUpdate); - } - function endOperation_W1(op) { - op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update); - } - function endOperation_R2(op) { - var cm = op.cm, - display = cm.display; - if (op.updatedDisplay) { - updateHeightsInViewport(cm); - } - op.barMeasure = measureForScrollbars(cm); - if (display.maxLineChanged && !cm.options.lineWrapping) { - op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3; - cm.display.sizerWidth = op.adjustWidthTo; - op.barMeasure.scrollWidth = Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth); - op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm)); - } - if (op.updatedDisplay || op.selectionChanged) { - op.preparedSelection = display.input.prepareSelection(); - } - } - function endOperation_W2(op) { - var cm = op.cm; - if (op.adjustWidthTo != null) { - cm.display.sizer.style.minWidth = op.adjustWidthTo + "px"; - if (op.maxScrollLeft < cm.doc.scrollLeft) { - setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); - } - cm.display.maxLineChanged = false; - } - var takeFocus = op.focus && op.focus == activeElt(); - if (op.preparedSelection) { - cm.display.input.showSelection(op.preparedSelection, takeFocus); - } - if (op.updatedDisplay || op.startHeight != cm.doc.height) { - updateScrollbars(cm, op.barMeasure); - } - if (op.updatedDisplay) { - setDocumentHeight(cm, op.barMeasure); - } - if (op.selectionChanged) { - restartBlink(cm); - } - if (cm.state.focused && op.updateInput) { - cm.display.input.reset(op.typing); - } - if (takeFocus) { - ensureFocus(op.cm); - } - } - function endOperation_finish(op) { - var cm = op.cm, - display = cm.display, - doc = cm.doc; - if (op.updatedDisplay) { - postUpdateDisplay(cm, op.update); - } - if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos)) { - display.wheelStartX = display.wheelStartY = null; - } - if (op.scrollTop != null) { - setScrollTop(cm, op.scrollTop, op.forceScroll); - } - if (op.scrollLeft != null) { - setScrollLeft(cm, op.scrollLeft, true, true); - } - if (op.scrollToPos) { - var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from), clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin); - maybeScrollWindow(cm, rect); - } - var hidden = op.maybeHiddenMarkers, - unhidden = op.maybeUnhiddenMarkers; - if (hidden) { - for (var i2 = 0; i2 < hidden.length; ++i2) { - if (!hidden[i2].lines.length) { - signal(hidden[i2], "hide"); - } - } - } - if (unhidden) { - for (var i$12 = 0; i$12 < unhidden.length; ++i$12) { - if (unhidden[i$12].lines.length) { - signal(unhidden[i$12], "unhide"); - } - } - } - if (display.wrapper.offsetHeight) { - doc.scrollTop = cm.display.scroller.scrollTop; - } - if (op.changeObjs) { - signal(cm, "changes", cm, op.changeObjs); - } - if (op.update) { - op.update.finish(); - } - } - function runInOp(cm, f) { - if (cm.curOp) { - return f(); - } - startOperation(cm); - try { - return f(); - } finally { - endOperation(cm); - } - } - function operation(cm, f) { - return function () { - if (cm.curOp) { - return f.apply(cm, arguments); - } - startOperation(cm); - try { - return f.apply(cm, arguments); - } finally { - endOperation(cm); - } - }; - } - function methodOp(f) { - return function () { - if (this.curOp) { - return f.apply(this, arguments); - } - startOperation(this); - try { - return f.apply(this, arguments); - } finally { - endOperation(this); - } - }; - } - function docMethodOp(f) { - return function () { - var cm = this.cm; - if (!cm || cm.curOp) { - return f.apply(this, arguments); - } - startOperation(cm); - try { - return f.apply(this, arguments); - } finally { - endOperation(cm); - } - }; - } - function startWorker(cm, time) { - if (cm.doc.highlightFrontier < cm.display.viewTo) { - cm.state.highlight.set(time, bind(highlightWorker, cm)); - } - } - function highlightWorker(cm) { - var doc = cm.doc; - if (doc.highlightFrontier >= cm.display.viewTo) { - return; - } - var end = + /* @__PURE__ */new Date() + cm.options.workTime; - var context = getContextBefore(cm, doc.highlightFrontier); - var changedLines = []; - doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) { - if (context.line >= cm.display.viewFrom) { - var oldStyles = line.styles; - var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null; - var highlighted = highlightLine(cm, line, context, true); - if (resetState) { - context.state = resetState; - } - line.styles = highlighted.styles; - var oldCls = line.styleClasses, - newCls = highlighted.classes; - if (newCls) { - line.styleClasses = newCls; - } else if (oldCls) { - line.styleClasses = null; - } - var ischange = !oldStyles || oldStyles.length != line.styles.length || oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass); - for (var i2 = 0; !ischange && i2 < oldStyles.length; ++i2) { - ischange = oldStyles[i2] != line.styles[i2]; - } - if (ischange) { - changedLines.push(context.line); - } - line.stateAfter = context.save(); - context.nextLine(); - } else { - if (line.text.length <= cm.options.maxHighlightLength) { - processLine(cm, line.text, context); - } - line.stateAfter = context.line % 5 == 0 ? context.save() : null; - context.nextLine(); - } - if (+ /* @__PURE__ */new Date() > end) { - startWorker(cm, cm.options.workDelay); - return true; - } - }); - doc.highlightFrontier = context.line; - doc.modeFrontier = Math.max(doc.modeFrontier, context.line); - if (changedLines.length) { - runInOp(cm, function () { - for (var i2 = 0; i2 < changedLines.length; i2++) { - regLineChange(cm, changedLines[i2], "text"); - } - }); - } - } - var DisplayUpdate = function (cm, viewport, force) { - var display = cm.display; - this.viewport = viewport; - this.visible = visibleLines(display, cm.doc, viewport); - this.editorIsHidden = !display.wrapper.offsetWidth; - this.wrapperHeight = display.wrapper.clientHeight; - this.wrapperWidth = display.wrapper.clientWidth; - this.oldDisplayWidth = displayWidth(cm); - this.force = force; - this.dims = getDimensions(cm); - this.events = []; - }; - DisplayUpdate.prototype.signal = function (emitter, type) { - if (hasHandler(emitter, type)) { - this.events.push(arguments); - } - }; - DisplayUpdate.prototype.finish = function () { - for (var i2 = 0; i2 < this.events.length; i2++) { - signal.apply(null, this.events[i2]); - } - }; - function maybeClipScrollbars(cm) { - var display = cm.display; - if (!display.scrollbarsClipped && display.scroller.offsetWidth) { - display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth; - display.heightForcer.style.height = scrollGap(cm) + "px"; - display.sizer.style.marginBottom = -display.nativeBarWidth + "px"; - display.sizer.style.borderRightWidth = scrollGap(cm) + "px"; - display.scrollbarsClipped = true; - } - } - function selectionSnapshot(cm) { - if (cm.hasFocus()) { - return null; - } - var active = activeElt(); - if (!active || !contains(cm.display.lineDiv, active)) { - return null; - } - var result = { - activeElt: active - }; - if (window.getSelection) { - var sel = window.getSelection(); - if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) { - result.anchorNode = sel.anchorNode; - result.anchorOffset = sel.anchorOffset; - result.focusNode = sel.focusNode; - result.focusOffset = sel.focusOffset; - } - } - return result; - } - function restoreSelection(snapshot) { - if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { - return; - } - snapshot.activeElt.focus(); - if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) && snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) { - var sel = window.getSelection(), - range2 = document.createRange(); - range2.setEnd(snapshot.anchorNode, snapshot.anchorOffset); - range2.collapse(false); - sel.removeAllRanges(); - sel.addRange(range2); - sel.extend(snapshot.focusNode, snapshot.focusOffset); - } - } - function updateDisplayIfNeeded(cm, update) { - var display = cm.display, - doc = cm.doc; - if (update.editorIsHidden) { - resetView(cm); - return false; - } - if (!update.force && update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo && (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) && display.renderedView == display.view && countDirtyView(cm) == 0) { - return false; - } - if (maybeUpdateLineNumberWidth(cm)) { - resetView(cm); - update.dims = getDimensions(cm); - } - var end = doc.first + doc.size; - var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first); - var to = Math.min(end, update.visible.to + cm.options.viewportMargin); - if (display.viewFrom < from && from - display.viewFrom < 20) { - from = Math.max(doc.first, display.viewFrom); - } - if (display.viewTo > to && display.viewTo - to < 20) { - to = Math.min(end, display.viewTo); - } - if (sawCollapsedSpans) { - from = visualLineNo(cm.doc, from); - to = visualLineEndNo(cm.doc, to); - } - var different = from != display.viewFrom || to != display.viewTo || display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth; - adjustView(cm, from, to); - display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom)); - cm.display.mover.style.top = display.viewOffset + "px"; - var toUpdate = countDirtyView(cm); - if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view && (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo)) { - return false; - } - var selSnapshot = selectionSnapshot(cm); - if (toUpdate > 4) { - display.lineDiv.style.display = "none"; - } - patchDisplay(cm, display.updateLineNumbers, update.dims); - if (toUpdate > 4) { - display.lineDiv.style.display = ""; - } - display.renderedView = display.view; - restoreSelection(selSnapshot); - removeChildren(display.cursorDiv); - removeChildren(display.selectionDiv); - display.gutters.style.height = display.sizer.style.minHeight = 0; - if (different) { - display.lastWrapHeight = update.wrapperHeight; - display.lastWrapWidth = update.wrapperWidth; - startWorker(cm, 400); - } - display.updateLineNumbers = null; - return true; - } - function postUpdateDisplay(cm, update) { - var viewport = update.viewport; - for (var first = true;; first = false) { - if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) { - if (viewport && viewport.top != null) { - viewport = { - top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top) - }; - } - update.visible = visibleLines(cm.display, cm.doc, viewport); - if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo) { - break; - } - } else if (first) { - update.visible = visibleLines(cm.display, cm.doc, viewport); - } - if (!updateDisplayIfNeeded(cm, update)) { - break; - } - updateHeightsInViewport(cm); - var barMeasure = measureForScrollbars(cm); - updateSelection(cm); - updateScrollbars(cm, barMeasure); - setDocumentHeight(cm, barMeasure); - update.force = false; - } - update.signal(cm, "update", cm); - if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) { - update.signal(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo); - cm.display.reportedViewFrom = cm.display.viewFrom; - cm.display.reportedViewTo = cm.display.viewTo; - } - } - function updateDisplaySimple(cm, viewport) { - var update = new DisplayUpdate(cm, viewport); - if (updateDisplayIfNeeded(cm, update)) { - updateHeightsInViewport(cm); - postUpdateDisplay(cm, update); - var barMeasure = measureForScrollbars(cm); - updateSelection(cm); - updateScrollbars(cm, barMeasure); - setDocumentHeight(cm, barMeasure); - update.finish(); - } - } - function patchDisplay(cm, updateNumbersFrom, dims) { - var display = cm.display, - lineNumbers = cm.options.lineNumbers; - var container = display.lineDiv, - cur = container.firstChild; - function rm(node2) { - var next = node2.nextSibling; - if (webkit && mac && cm.display.currentWheelTarget == node2) { - node2.style.display = "none"; - } else { - node2.parentNode.removeChild(node2); - } - return next; - } - var view = display.view, - lineN = display.viewFrom; - for (var i2 = 0; i2 < view.length; i2++) { - var lineView = view[i2]; - if (lineView.hidden) ;else if (!lineView.node || lineView.node.parentNode != container) { - var node = buildLineElement(cm, lineView, lineN, dims); - container.insertBefore(node, cur); - } else { - while (cur != lineView.node) { - cur = rm(cur); - } - var updateNumber = lineNumbers && updateNumbersFrom != null && updateNumbersFrom <= lineN && lineView.lineNumber; - if (lineView.changes) { - if (indexOf(lineView.changes, "gutter") > -1) { - updateNumber = false; - } - updateLineForChanges(cm, lineView, lineN, dims); - } - if (updateNumber) { - removeChildren(lineView.lineNumber); - lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN))); - } - cur = lineView.node.nextSibling; - } - lineN += lineView.size; - } - while (cur) { - cur = rm(cur); - } - } - function updateGutterSpace(display) { - var width = display.gutters.offsetWidth; - display.sizer.style.marginLeft = width + "px"; - signalLater(display, "gutterChanged", display); - } - function setDocumentHeight(cm, measure) { - cm.display.sizer.style.minHeight = measure.docHeight + "px"; - cm.display.heightForcer.style.top = measure.docHeight + "px"; - cm.display.gutters.style.height = measure.docHeight + cm.display.barHeight + scrollGap(cm) + "px"; - } - function alignHorizontally(cm) { - var display = cm.display, - view = display.view; - if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { - return; - } - var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft; - var gutterW = display.gutters.offsetWidth, - left = comp + "px"; - for (var i2 = 0; i2 < view.length; i2++) { - if (!view[i2].hidden) { - if (cm.options.fixedGutter) { - if (view[i2].gutter) { - view[i2].gutter.style.left = left; - } - if (view[i2].gutterBackground) { - view[i2].gutterBackground.style.left = left; - } - } - var align = view[i2].alignable; - if (align) { - for (var j = 0; j < align.length; j++) { - align[j].style.left = left; - } - } - } - } - if (cm.options.fixedGutter) { - display.gutters.style.left = comp + gutterW + "px"; - } - } - function maybeUpdateLineNumberWidth(cm) { - if (!cm.options.lineNumbers) { - return false; - } - var doc = cm.doc, - last = lineNumberFor(cm.options, doc.first + doc.size - 1), - display = cm.display; - if (last.length != display.lineNumChars) { - var test = display.measure.appendChild(elt("div", [elt("div", last)], "CodeMirror-linenumber CodeMirror-gutter-elt")); - var innerW = test.firstChild.offsetWidth, - padding = test.offsetWidth - innerW; - display.lineGutter.style.width = ""; - display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1; - display.lineNumWidth = display.lineNumInnerWidth + padding; - display.lineNumChars = display.lineNumInnerWidth ? last.length : -1; - display.lineGutter.style.width = display.lineNumWidth + "px"; - updateGutterSpace(cm.display); - return true; - } - return false; - } - function getGutters(gutters, lineNumbers) { - var result = [], - sawLineNumbers = false; - for (var i2 = 0; i2 < gutters.length; i2++) { - var name = gutters[i2], - style = null; - if (typeof name != "string") { - style = name.style; - name = name.className; - } - if (name == "CodeMirror-linenumbers") { - if (!lineNumbers) { - continue; - } else { - sawLineNumbers = true; - } - } - result.push({ - className: name, - style - }); - } - if (lineNumbers && !sawLineNumbers) { - result.push({ - className: "CodeMirror-linenumbers", - style: null - }); - } - return result; - } - function renderGutters(display) { - var gutters = display.gutters, - specs = display.gutterSpecs; - removeChildren(gutters); - display.lineGutter = null; - for (var i2 = 0; i2 < specs.length; ++i2) { - var ref = specs[i2]; - var className = ref.className; - var style = ref.style; - var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + className)); - if (style) { - gElt.style.cssText = style; - } - if (className == "CodeMirror-linenumbers") { - display.lineGutter = gElt; - gElt.style.width = (display.lineNumWidth || 1) + "px"; - } - } - gutters.style.display = specs.length ? "" : "none"; - updateGutterSpace(display); - } - function updateGutters(cm) { - renderGutters(cm.display); - regChange(cm); - alignHorizontally(cm); - } - function Display(place, doc, input, options) { - var d = this; - this.input = input; - d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler"); - d.scrollbarFiller.setAttribute("cm-not-content", "true"); - d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler"); - d.gutterFiller.setAttribute("cm-not-content", "true"); - d.lineDiv = eltP("div", null, "CodeMirror-code"); - d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1"); - d.cursorDiv = elt("div", null, "CodeMirror-cursors"); - d.measure = elt("div", null, "CodeMirror-measure"); - d.lineMeasure = elt("div", null, "CodeMirror-measure"); - d.lineSpace = eltP("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv], null, "position: relative; outline: none"); - var lines = eltP("div", [d.lineSpace], "CodeMirror-lines"); - d.mover = elt("div", [lines], null, "position: relative"); - d.sizer = elt("div", [d.mover], "CodeMirror-sizer"); - d.sizerWidth = null; - d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerGap + "px; width: 1px;"); - d.gutters = elt("div", null, "CodeMirror-gutters"); - d.lineGutter = null; - d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll"); - d.scroller.setAttribute("tabIndex", "-1"); - d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror"); - d.wrapper.setAttribute("translate", "no"); - if (ie && ie_version < 8) { - d.gutters.style.zIndex = -1; - d.scroller.style.paddingRight = 0; - } - if (!webkit && !(gecko && mobile)) { - d.scroller.draggable = true; - } - if (place) { - if (place.appendChild) { - place.appendChild(d.wrapper); - } else { - place(d.wrapper); - } - } - d.viewFrom = d.viewTo = doc.first; - d.reportedViewFrom = d.reportedViewTo = doc.first; - d.view = []; - d.renderedView = null; - d.externalMeasured = null; - d.viewOffset = 0; - d.lastWrapHeight = d.lastWrapWidth = 0; - d.updateLineNumbers = null; - d.nativeBarWidth = d.barHeight = d.barWidth = 0; - d.scrollbarsClipped = false; - d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null; - d.alignWidgets = false; - d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; - d.maxLine = null; - d.maxLineLength = 0; - d.maxLineChanged = false; - d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null; - d.shift = false; - d.selForContextMenu = null; - d.activeTouch = null; - d.gutterSpecs = getGutters(options.gutters, options.lineNumbers); - renderGutters(d); - input.init(d); - } - var wheelSamples = 0, - wheelPixelsPerUnit = null; - if (ie) { - wheelPixelsPerUnit = -0.53; - } else if (gecko) { - wheelPixelsPerUnit = 15; - } else if (chrome) { - wheelPixelsPerUnit = -0.7; - } else if (safari) { - wheelPixelsPerUnit = -1 / 3; - } - function wheelEventDelta(e) { - var dx = e.wheelDeltaX, - dy = e.wheelDeltaY; - if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { - dx = e.detail; - } - if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { - dy = e.detail; - } else if (dy == null) { - dy = e.wheelDelta; - } - return { - x: dx, - y: dy - }; - } - function wheelEventPixels(e) { - var delta = wheelEventDelta(e); - delta.x *= wheelPixelsPerUnit; - delta.y *= wheelPixelsPerUnit; - return delta; - } - function onScrollWheel(cm, e) { - var delta = wheelEventDelta(e), - dx = delta.x, - dy = delta.y; - var pixelsPerUnit = wheelPixelsPerUnit; - if (e.deltaMode === 0) { - dx = e.deltaX; - dy = e.deltaY; - pixelsPerUnit = 1; - } - var display = cm.display, - scroll = display.scroller; - var canScrollX = scroll.scrollWidth > scroll.clientWidth; - var canScrollY = scroll.scrollHeight > scroll.clientHeight; - if (!(dx && canScrollX || dy && canScrollY)) { - return; - } - if (dy && mac && webkit) { - outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) { - for (var i2 = 0; i2 < view.length; i2++) { - if (view[i2].node == cur) { - cm.display.currentWheelTarget = cur; - break outer; - } - } - } - } - if (dx && !gecko && !presto && pixelsPerUnit != null) { - if (dy && canScrollY) { - updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * pixelsPerUnit)); - } - setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * pixelsPerUnit)); - if (!dy || dy && canScrollY) { - e_preventDefault(e); - } - display.wheelStartX = null; - return; - } - if (dy && pixelsPerUnit != null) { - var pixels = dy * pixelsPerUnit; - var top = cm.doc.scrollTop, - bot = top + display.wrapper.clientHeight; - if (pixels < 0) { - top = Math.max(0, top + pixels - 50); - } else { - bot = Math.min(cm.doc.height, bot + pixels + 50); - } - updateDisplaySimple(cm, { - top, - bottom: bot - }); - } - if (wheelSamples < 20 && e.deltaMode !== 0) { - if (display.wheelStartX == null) { - display.wheelStartX = scroll.scrollLeft; - display.wheelStartY = scroll.scrollTop; - display.wheelDX = dx; - display.wheelDY = dy; - setTimeout(function () { - if (display.wheelStartX == null) { - return; - } - var movedX = scroll.scrollLeft - display.wheelStartX; - var movedY = scroll.scrollTop - display.wheelStartY; - var sample = movedY && display.wheelDY && movedY / display.wheelDY || movedX && display.wheelDX && movedX / display.wheelDX; - display.wheelStartX = display.wheelStartY = null; - if (!sample) { - return; - } - wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1); - ++wheelSamples; - }, 200); - } else { - display.wheelDX += dx; - display.wheelDY += dy; - } - } - } - var Selection = function (ranges, primIndex) { - this.ranges = ranges; - this.primIndex = primIndex; - }; - Selection.prototype.primary = function () { - return this.ranges[this.primIndex]; - }; - Selection.prototype.equals = function (other) { - if (other == this) { - return true; - } - if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { - return false; - } - for (var i2 = 0; i2 < this.ranges.length; i2++) { - var here = this.ranges[i2], - there = other.ranges[i2]; - if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { - return false; - } - } - return true; - }; - Selection.prototype.deepCopy = function () { - var out = []; - for (var i2 = 0; i2 < this.ranges.length; i2++) { - out[i2] = new Range(copyPos(this.ranges[i2].anchor), copyPos(this.ranges[i2].head)); - } - return new Selection(out, this.primIndex); - }; - Selection.prototype.somethingSelected = function () { - for (var i2 = 0; i2 < this.ranges.length; i2++) { - if (!this.ranges[i2].empty()) { - return true; - } - } - return false; - }; - Selection.prototype.contains = function (pos, end) { - if (!end) { - end = pos; - } - for (var i2 = 0; i2 < this.ranges.length; i2++) { - var range2 = this.ranges[i2]; - if (cmp(end, range2.from()) >= 0 && cmp(pos, range2.to()) <= 0) { - return i2; - } - } - return -1; - }; - var Range = function (anchor, head) { - this.anchor = anchor; - this.head = head; - }; - Range.prototype.from = function () { - return minPos(this.anchor, this.head); - }; - Range.prototype.to = function () { - return maxPos(this.anchor, this.head); - }; - Range.prototype.empty = function () { - return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch; - }; - function normalizeSelection(cm, ranges, primIndex) { - var mayTouch = cm && cm.options.selectionsMayTouch; - var prim = ranges[primIndex]; - ranges.sort(function (a, b) { - return cmp(a.from(), b.from()); - }); - primIndex = indexOf(ranges, prim); - for (var i2 = 1; i2 < ranges.length; i2++) { - var cur = ranges[i2], - prev = ranges[i2 - 1]; - var diff = cmp(prev.to(), cur.from()); - if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) { - var from = minPos(prev.from(), cur.from()), - to = maxPos(prev.to(), cur.to()); - var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head; - if (i2 <= primIndex) { - --primIndex; - } - ranges.splice(--i2, 2, new Range(inv ? to : from, inv ? from : to)); - } - } - return new Selection(ranges, primIndex); - } - function simpleSelection(anchor, head) { - return new Selection([new Range(anchor, head || anchor)], 0); - } - function changeEnd(change) { - if (!change.text) { - return change.to; - } - return Pos(change.from.line + change.text.length - 1, lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0)); - } - function adjustForChange(pos, change) { - if (cmp(pos, change.from) < 0) { - return pos; - } - if (cmp(pos, change.to) <= 0) { - return changeEnd(change); - } - var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, - ch = pos.ch; - if (pos.line == change.to.line) { - ch += changeEnd(change).ch - change.to.ch; - } - return Pos(line, ch); - } - function computeSelAfterChange(doc, change) { - var out = []; - for (var i2 = 0; i2 < doc.sel.ranges.length; i2++) { - var range2 = doc.sel.ranges[i2]; - out.push(new Range(adjustForChange(range2.anchor, change), adjustForChange(range2.head, change))); - } - return normalizeSelection(doc.cm, out, doc.sel.primIndex); - } - function offsetPos(pos, old, nw) { - if (pos.line == old.line) { - return Pos(nw.line, pos.ch - old.ch + nw.ch); - } else { - return Pos(nw.line + (pos.line - old.line), pos.ch); - } - } - function computeReplacedSel(doc, changes, hint) { - var out = []; - var oldPrev = Pos(doc.first, 0), - newPrev = oldPrev; - for (var i2 = 0; i2 < changes.length; i2++) { - var change = changes[i2]; - var from = offsetPos(change.from, oldPrev, newPrev); - var to = offsetPos(changeEnd(change), oldPrev, newPrev); - oldPrev = change.to; - newPrev = to; - if (hint == "around") { - var range2 = doc.sel.ranges[i2], - inv = cmp(range2.head, range2.anchor) < 0; - out[i2] = new Range(inv ? to : from, inv ? from : to); - } else { - out[i2] = new Range(from, from); - } - } - return new Selection(out, doc.sel.primIndex); - } - function loadMode(cm) { - cm.doc.mode = getMode(cm.options, cm.doc.modeOption); - resetModeState(cm); - } - function resetModeState(cm) { - cm.doc.iter(function (line) { - if (line.stateAfter) { - line.stateAfter = null; - } - if (line.styles) { - line.styles = null; - } - }); - cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first; - startWorker(cm, 100); - cm.state.modeGen++; - if (cm.curOp) { - regChange(cm); - } - } - function isWholeLineUpdate(doc, change) { - return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" && (!doc.cm || doc.cm.options.wholeLineUpdateBefore); - } - function updateDoc(doc, change, markedSpans, estimateHeight2) { - function spansFor(n) { - return markedSpans ? markedSpans[n] : null; - } - function update(line, text2, spans) { - updateLine(line, text2, spans, estimateHeight2); - signalLater(line, "change", line, change); - } - function linesFor(start, end) { - var result = []; - for (var i2 = start; i2 < end; ++i2) { - result.push(new Line(text[i2], spansFor(i2), estimateHeight2)); - } - return result; - } - var from = change.from, - to = change.to, - text = change.text; - var firstLine = getLine(doc, from.line), - lastLine = getLine(doc, to.line); - var lastText = lst(text), - lastSpans = spansFor(text.length - 1), - nlines = to.line - from.line; - if (change.full) { - doc.insert(0, linesFor(0, text.length)); - doc.remove(text.length, doc.size - text.length); - } else if (isWholeLineUpdate(doc, change)) { - var added = linesFor(0, text.length - 1); - update(lastLine, lastLine.text, lastSpans); - if (nlines) { - doc.remove(from.line, nlines); - } - if (added.length) { - doc.insert(from.line, added); - } - } else if (firstLine == lastLine) { - if (text.length == 1) { - update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans); - } else { - var added$1 = linesFor(1, text.length - 1); - added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight2)); - update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); - doc.insert(from.line + 1, added$1); - } - } else if (text.length == 1) { - update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0)); - doc.remove(from.line + 1, nlines); - } else { - update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); - update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans); - var added$2 = linesFor(1, text.length - 1); - if (nlines > 1) { - doc.remove(from.line + 1, nlines - 1); - } - doc.insert(from.line + 1, added$2); - } - signalLater(doc, "change", doc, change); - } - function linkedDocs(doc, f, sharedHistOnly) { - function propagate(doc2, skip, sharedHist) { - if (doc2.linked) { - for (var i2 = 0; i2 < doc2.linked.length; ++i2) { - var rel = doc2.linked[i2]; - if (rel.doc == skip) { - continue; - } - var shared = sharedHist && rel.sharedHist; - if (sharedHistOnly && !shared) { - continue; - } - f(rel.doc, shared); - propagate(rel.doc, doc2, shared); - } - } - } - propagate(doc, null, true); - } - function attachDoc(cm, doc) { - if (doc.cm) { - throw new Error("This document is already in use."); - } - cm.doc = doc; - doc.cm = cm; - estimateLineHeights(cm); - loadMode(cm); - setDirectionClass(cm); - cm.options.direction = doc.direction; - if (!cm.options.lineWrapping) { - findMaxLine(cm); - } - cm.options.mode = doc.modeOption; - regChange(cm); - } - function setDirectionClass(cm) { - (cm.doc.direction == "rtl" ? addClass : rmClass)(cm.display.lineDiv, "CodeMirror-rtl"); - } - function directionChanged(cm) { - runInOp(cm, function () { - setDirectionClass(cm); - regChange(cm); - }); - } - function History(prev) { - this.done = []; - this.undone = []; - this.undoDepth = prev ? prev.undoDepth : Infinity; - this.lastModTime = this.lastSelTime = 0; - this.lastOp = this.lastSelOp = null; - this.lastOrigin = this.lastSelOrigin = null; - this.generation = this.maxGeneration = prev ? prev.maxGeneration : 1; - } - function historyChangeFromChange(doc, change) { - var histChange = { - from: copyPos(change.from), - to: changeEnd(change), - text: getBetween(doc, change.from, change.to) - }; - attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); - linkedDocs(doc, function (doc2) { - return attachLocalSpans(doc2, histChange, change.from.line, change.to.line + 1); - }, true); - return histChange; - } - function clearSelectionEvents(array) { - while (array.length) { - var last = lst(array); - if (last.ranges) { - array.pop(); - } else { - break; - } - } - } - function lastChangeEvent(hist, force) { - if (force) { - clearSelectionEvents(hist.done); - return lst(hist.done); - } else if (hist.done.length && !lst(hist.done).ranges) { - return lst(hist.done); - } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) { - hist.done.pop(); - return lst(hist.done); - } - } - function addChangeToHistory(doc, change, selAfter, opId) { - var hist = doc.history; - hist.undone.length = 0; - var time = + /* @__PURE__ */new Date(), - cur; - var last; - if ((hist.lastOp == opId || hist.lastOrigin == change.origin && change.origin && (change.origin.charAt(0) == "+" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500) || change.origin.charAt(0) == "*")) && (cur = lastChangeEvent(hist, hist.lastOp == opId))) { - last = lst(cur.changes); - if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) { - last.to = changeEnd(change); - } else { - cur.changes.push(historyChangeFromChange(doc, change)); - } - } else { - var before = lst(hist.done); - if (!before || !before.ranges) { - pushSelectionToHistory(doc.sel, hist.done); - } - cur = { - changes: [historyChangeFromChange(doc, change)], - generation: hist.generation - }; - hist.done.push(cur); - while (hist.done.length > hist.undoDepth) { - hist.done.shift(); - if (!hist.done[0].ranges) { - hist.done.shift(); - } - } - } - hist.done.push(selAfter); - hist.generation = ++hist.maxGeneration; - hist.lastModTime = hist.lastSelTime = time; - hist.lastOp = hist.lastSelOp = opId; - hist.lastOrigin = hist.lastSelOrigin = change.origin; - if (!last) { - signal(doc, "historyAdded"); - } - } - function selectionEventCanBeMerged(doc, origin, prev, sel) { - var ch = origin.charAt(0); - return ch == "*" || ch == "+" && prev.ranges.length == sel.ranges.length && prev.somethingSelected() == sel.somethingSelected() && /* @__PURE__ */new Date() - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500); - } - function addSelectionToHistory(doc, sel, opId, options) { - var hist = doc.history, - origin = options && options.origin; - if (opId == hist.lastSelOp || origin && hist.lastSelOrigin == origin && (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin || selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))) { - hist.done[hist.done.length - 1] = sel; - } else { - pushSelectionToHistory(sel, hist.done); - } - hist.lastSelTime = + /* @__PURE__ */new Date(); - hist.lastSelOrigin = origin; - hist.lastSelOp = opId; - if (options && options.clearRedo !== false) { - clearSelectionEvents(hist.undone); - } - } - function pushSelectionToHistory(sel, dest) { - var top = lst(dest); - if (!(top && top.ranges && top.equals(sel))) { - dest.push(sel); - } - } - function attachLocalSpans(doc, change, from, to) { - var existing = change["spans_" + doc.id], - n = 0; - doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) { - if (line.markedSpans) { - (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; - } - ++n; - }); - } - function removeClearedSpans(spans) { - if (!spans) { - return null; - } - var out; - for (var i2 = 0; i2 < spans.length; ++i2) { - if (spans[i2].marker.explicitlyCleared) { - if (!out) { - out = spans.slice(0, i2); - } - } else if (out) { - out.push(spans[i2]); - } - } - return !out ? spans : out.length ? out : null; - } - function getOldSpans(doc, change) { - var found = change["spans_" + doc.id]; - if (!found) { - return null; - } - var nw = []; - for (var i2 = 0; i2 < change.text.length; ++i2) { - nw.push(removeClearedSpans(found[i2])); - } - return nw; - } - function mergeOldSpans(doc, change) { - var old = getOldSpans(doc, change); - var stretched = stretchSpansOverChange(doc, change); - if (!old) { - return stretched; - } - if (!stretched) { - return old; - } - for (var i2 = 0; i2 < old.length; ++i2) { - var oldCur = old[i2], - stretchCur = stretched[i2]; - if (oldCur && stretchCur) { - spans: for (var j = 0; j < stretchCur.length; ++j) { - var span = stretchCur[j]; - for (var k = 0; k < oldCur.length; ++k) { - if (oldCur[k].marker == span.marker) { - continue spans; - } - } - oldCur.push(span); - } - } else if (stretchCur) { - old[i2] = stretchCur; - } - } - return old; - } - function copyHistoryArray(events, newGroup, instantiateSel) { - var copy = []; - for (var i2 = 0; i2 < events.length; ++i2) { - var event = events[i2]; - if (event.ranges) { - copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event); - continue; - } - var changes = event.changes, - newChanges = []; - copy.push({ - changes: newChanges - }); - for (var j = 0; j < changes.length; ++j) { - var change = changes[j], - m = void 0; - newChanges.push({ - from: change.from, - to: change.to, - text: change.text - }); - if (newGroup) { - for (var prop2 in change) { - if (m = prop2.match(/^spans_(\d+)$/)) { - if (indexOf(newGroup, Number(m[1])) > -1) { - lst(newChanges)[prop2] = change[prop2]; - delete change[prop2]; - } - } - } - } - } - } - return copy; - } - function extendRange(range2, head, other, extend) { - if (extend) { - var anchor = range2.anchor; - if (other) { - var posBefore = cmp(head, anchor) < 0; - if (posBefore != cmp(other, anchor) < 0) { - anchor = head; - head = other; - } else if (posBefore != cmp(head, other) < 0) { - head = other; - } - } - return new Range(anchor, head); - } else { - return new Range(other || head, head); - } - } - function extendSelection(doc, head, other, options, extend) { - if (extend == null) { - extend = doc.cm && (doc.cm.display.shift || doc.extend); - } - setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options); - } - function extendSelections(doc, heads, options) { - var out = []; - var extend = doc.cm && (doc.cm.display.shift || doc.extend); - for (var i2 = 0; i2 < doc.sel.ranges.length; i2++) { - out[i2] = extendRange(doc.sel.ranges[i2], heads[i2], null, extend); - } - var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex); - setSelection(doc, newSel, options); - } - function replaceOneSelection(doc, i2, range2, options) { - var ranges = doc.sel.ranges.slice(0); - ranges[i2] = range2; - setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options); - } - function setSimpleSelection(doc, anchor, head, options) { - setSelection(doc, simpleSelection(anchor, head), options); - } - function filterSelectionChange(doc, sel, options) { - var obj = { - ranges: sel.ranges, - update: function (ranges) { - this.ranges = []; - for (var i2 = 0; i2 < ranges.length; i2++) { - this.ranges[i2] = new Range(clipPos(doc, ranges[i2].anchor), clipPos(doc, ranges[i2].head)); - } - }, - origin: options && options.origin - }; - signal(doc, "beforeSelectionChange", doc, obj); - if (doc.cm) { - signal(doc.cm, "beforeSelectionChange", doc.cm, obj); - } - if (obj.ranges != sel.ranges) { - return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1); - } else { - return sel; - } - } - function setSelectionReplaceHistory(doc, sel, options) { - var done = doc.history.done, - last = lst(done); - if (last && last.ranges) { - done[done.length - 1] = sel; - setSelectionNoUndo(doc, sel, options); - } else { - setSelection(doc, sel, options); - } - } - function setSelection(doc, sel, options) { - setSelectionNoUndo(doc, sel, options); - addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options); - } - function setSelectionNoUndo(doc, sel, options) { - if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange")) { - sel = filterSelectionChange(doc, sel, options); - } - var bias = options && options.bias || (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1); - setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true)); - if (!(options && options.scroll === false) && doc.cm && doc.cm.getOption("readOnly") != "nocursor") { - ensureCursorVisible(doc.cm); - } - } - function setSelectionInner(doc, sel) { - if (sel.equals(doc.sel)) { - return; - } - doc.sel = sel; - if (doc.cm) { - doc.cm.curOp.updateInput = 1; - doc.cm.curOp.selectionChanged = true; - signalCursorActivity(doc.cm); - } - signalLater(doc, "cursorActivity", doc); - } - function reCheckSelection(doc) { - setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false)); - } - function skipAtomicInSelection(doc, sel, bias, mayClear) { - var out; - for (var i2 = 0; i2 < sel.ranges.length; i2++) { - var range2 = sel.ranges[i2]; - var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i2]; - var newAnchor = skipAtomic(doc, range2.anchor, old && old.anchor, bias, mayClear); - var newHead = skipAtomic(doc, range2.head, old && old.head, bias, mayClear); - if (out || newAnchor != range2.anchor || newHead != range2.head) { - if (!out) { - out = sel.ranges.slice(0, i2); - } - out[i2] = new Range(newAnchor, newHead); - } - } - return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel; - } - function skipAtomicInner(doc, pos, oldPos, dir, mayClear) { - var line = getLine(doc, pos.line); - if (line.markedSpans) { - for (var i2 = 0; i2 < line.markedSpans.length; ++i2) { - var sp = line.markedSpans[i2], - m = sp.marker; - var preventCursorLeft = "selectLeft" in m ? !m.selectLeft : m.inclusiveLeft; - var preventCursorRight = "selectRight" in m ? !m.selectRight : m.inclusiveRight; - if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) && (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) { - if (mayClear) { - signal(m, "beforeCursorEnter"); - if (m.explicitlyCleared) { - if (!line.markedSpans) { - break; - } else { - --i2; - continue; - } - } - } - if (!m.atomic) { - continue; - } - if (oldPos) { - var near = m.find(dir < 0 ? 1 : -1), - diff = void 0; - if (dir < 0 ? preventCursorRight : preventCursorLeft) { - near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); - } - if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0)) { - return skipAtomicInner(doc, near, pos, dir, mayClear); - } - } - var far = m.find(dir < 0 ? -1 : 1); - if (dir < 0 ? preventCursorLeft : preventCursorRight) { - far = movePos(doc, far, dir, far.line == pos.line ? line : null); - } - return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null; - } - } - } - return pos; - } - function skipAtomic(doc, pos, oldPos, bias, mayClear) { - var dir = bias || 1; - var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) || !mayClear && skipAtomicInner(doc, pos, oldPos, dir, true) || skipAtomicInner(doc, pos, oldPos, -dir, mayClear) || !mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true); - if (!found) { - doc.cantEdit = true; - return Pos(doc.first, 0); - } - return found; - } - function movePos(doc, pos, dir, line) { - if (dir < 0 && pos.ch == 0) { - if (pos.line > doc.first) { - return clipPos(doc, Pos(pos.line - 1)); - } else { - return null; - } - } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) { - if (pos.line < doc.first + doc.size - 1) { - return Pos(pos.line + 1, 0); - } else { - return null; - } - } else { - return new Pos(pos.line, pos.ch + dir); - } - } - function selectAll(cm) { - cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll); - } - function filterChange(doc, change, update) { - var obj = { - canceled: false, - from: change.from, - to: change.to, - text: change.text, - origin: change.origin, - cancel: function () { - return obj.canceled = true; - } - }; - if (update) { - obj.update = function (from, to, text, origin) { - if (from) { - obj.from = clipPos(doc, from); - } - if (to) { - obj.to = clipPos(doc, to); - } - if (text) { - obj.text = text; - } - if (origin !== void 0) { - obj.origin = origin; - } - }; - } - signal(doc, "beforeChange", doc, obj); - if (doc.cm) { - signal(doc.cm, "beforeChange", doc.cm, obj); - } - if (obj.canceled) { - if (doc.cm) { - doc.cm.curOp.updateInput = 2; - } - return null; - } - return { - from: obj.from, - to: obj.to, - text: obj.text, - origin: obj.origin - }; - } - function makeChange(doc, change, ignoreReadOnly) { - if (doc.cm) { - if (!doc.cm.curOp) { - return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly); - } - if (doc.cm.state.suppressEdits) { - return; - } - } - if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) { - change = filterChange(doc, change, true); - if (!change) { - return; - } - } - var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to); - if (split) { - for (var i2 = split.length - 1; i2 >= 0; --i2) { - makeChangeInner(doc, { - from: split[i2].from, - to: split[i2].to, - text: i2 ? [""] : change.text, - origin: change.origin - }); - } - } else { - makeChangeInner(doc, change); - } - } - function makeChangeInner(doc, change) { - if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) { - return; - } - var selAfter = computeSelAfterChange(doc, change); - addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN); - makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change)); - var rebased = []; - linkedDocs(doc, function (doc2, sharedHist) { - if (!sharedHist && indexOf(rebased, doc2.history) == -1) { - rebaseHist(doc2.history, change); - rebased.push(doc2.history); - } - makeChangeSingleDoc(doc2, change, null, stretchSpansOverChange(doc2, change)); - }); - } - function makeChangeFromHistory(doc, type, allowSelectionOnly) { - var suppress = doc.cm && doc.cm.state.suppressEdits; - if (suppress && !allowSelectionOnly) { - return; - } - var hist = doc.history, - event, - selAfter = doc.sel; - var source = type == "undo" ? hist.done : hist.undone, - dest = type == "undo" ? hist.undone : hist.done; - var i2 = 0; - for (; i2 < source.length; i2++) { - event = source[i2]; - if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges) { - break; - } - } - if (i2 == source.length) { - return; - } - hist.lastOrigin = hist.lastSelOrigin = null; - for (;;) { - event = source.pop(); - if (event.ranges) { - pushSelectionToHistory(event, dest); - if (allowSelectionOnly && !event.equals(doc.sel)) { - setSelection(doc, event, { - clearRedo: false - }); - return; - } - selAfter = event; - } else if (suppress) { - source.push(event); - return; - } else { - break; - } - } - var antiChanges = []; - pushSelectionToHistory(selAfter, dest); - dest.push({ - changes: antiChanges, - generation: hist.generation - }); - hist.generation = event.generation || ++hist.maxGeneration; - var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange"); - var loop = function (i3) { - var change = event.changes[i3]; - change.origin = type; - if (filter && !filterChange(doc, change, false)) { - source.length = 0; - return {}; - } - antiChanges.push(historyChangeFromChange(doc, change)); - var after = i3 ? computeSelAfterChange(doc, change) : lst(source); - makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change)); - if (!i3 && doc.cm) { - doc.cm.scrollIntoView({ - from: change.from, - to: changeEnd(change) - }); - } - var rebased = []; - linkedDocs(doc, function (doc2, sharedHist) { - if (!sharedHist && indexOf(rebased, doc2.history) == -1) { - rebaseHist(doc2.history, change); - rebased.push(doc2.history); - } - makeChangeSingleDoc(doc2, change, null, mergeOldSpans(doc2, change)); - }); - }; - for (var i$12 = event.changes.length - 1; i$12 >= 0; --i$12) { - var returned = loop(i$12); - if (returned) return returned.v; - } - } - function shiftDoc(doc, distance) { - if (distance == 0) { - return; - } - doc.first += distance; - doc.sel = new Selection(map(doc.sel.ranges, function (range2) { - return new Range(Pos(range2.anchor.line + distance, range2.anchor.ch), Pos(range2.head.line + distance, range2.head.ch)); - }), doc.sel.primIndex); - if (doc.cm) { - regChange(doc.cm, doc.first, doc.first - distance, distance); - for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++) { - regLineChange(doc.cm, l, "gutter"); - } - } - } - function makeChangeSingleDoc(doc, change, selAfter, spans) { - if (doc.cm && !doc.cm.curOp) { - return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans); - } - if (change.to.line < doc.first) { - shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line)); - return; - } - if (change.from.line > doc.lastLine()) { - return; - } - if (change.from.line < doc.first) { - var shift = change.text.length - 1 - (doc.first - change.from.line); - shiftDoc(doc, shift); - change = { - from: Pos(doc.first, 0), - to: Pos(change.to.line + shift, change.to.ch), - text: [lst(change.text)], - origin: change.origin - }; - } - var last = doc.lastLine(); - if (change.to.line > last) { - change = { - from: change.from, - to: Pos(last, getLine(doc, last).text.length), - text: [change.text[0]], - origin: change.origin - }; - } - change.removed = getBetween(doc, change.from, change.to); - if (!selAfter) { - selAfter = computeSelAfterChange(doc, change); - } - if (doc.cm) { - makeChangeSingleDocInEditor(doc.cm, change, spans); - } else { - updateDoc(doc, change, spans); - } - setSelectionNoUndo(doc, selAfter, sel_dontScroll); - if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0))) { - doc.cantEdit = false; - } - } - function makeChangeSingleDocInEditor(cm, change, spans) { - var doc = cm.doc, - display = cm.display, - from = change.from, - to = change.to; - var recomputeMaxLength = false, - checkWidthStart = from.line; - if (!cm.options.lineWrapping) { - checkWidthStart = lineNo(visualLine(getLine(doc, from.line))); - doc.iter(checkWidthStart, to.line + 1, function (line) { - if (line == display.maxLine) { - recomputeMaxLength = true; - return true; - } - }); - } - if (doc.sel.contains(change.from, change.to) > -1) { - signalCursorActivity(cm); - } - updateDoc(doc, change, spans, estimateHeight(cm)); - if (!cm.options.lineWrapping) { - doc.iter(checkWidthStart, from.line + change.text.length, function (line) { - var len = lineLength(line); - if (len > display.maxLineLength) { - display.maxLine = line; - display.maxLineLength = len; - display.maxLineChanged = true; - recomputeMaxLength = false; - } - }); - if (recomputeMaxLength) { - cm.curOp.updateMaxLine = true; - } - } - retreatFrontier(doc, from.line); - startWorker(cm, 400); - var lendiff = change.text.length - (to.line - from.line) - 1; - if (change.full) { - regChange(cm); - } else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change)) { - regLineChange(cm, from.line, "text"); - } else { - regChange(cm, from.line, to.line + 1, lendiff); - } - var changesHandler = hasHandler(cm, "changes"), - changeHandler = hasHandler(cm, "change"); - if (changeHandler || changesHandler) { - var obj = { - from, - to, - text: change.text, - removed: change.removed, - origin: change.origin - }; - if (changeHandler) { - signalLater(cm, "change", cm, obj); - } - if (changesHandler) { - (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); - } - } - cm.display.selForContextMenu = null; - } - function replaceRange(doc, code, from, to, origin) { - var assign; - if (!to) { - to = from; - } - if (cmp(to, from) < 0) { - assign = [to, from], from = assign[0], to = assign[1]; - } - if (typeof code == "string") { - code = doc.splitLines(code); - } - makeChange(doc, { - from, - to, - text: code, - origin - }); - } - function rebaseHistSelSingle(pos, from, to, diff) { - if (to < pos.line) { - pos.line += diff; - } else if (from < pos.line) { - pos.line = from; - pos.ch = 0; - } - } - function rebaseHistArray(array, from, to, diff) { - for (var i2 = 0; i2 < array.length; ++i2) { - var sub = array[i2], - ok = true; - if (sub.ranges) { - if (!sub.copied) { - sub = array[i2] = sub.deepCopy(); - sub.copied = true; - } - for (var j = 0; j < sub.ranges.length; j++) { - rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff); - rebaseHistSelSingle(sub.ranges[j].head, from, to, diff); - } - continue; - } - for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) { - var cur = sub.changes[j$1]; - if (to < cur.from.line) { - cur.from = Pos(cur.from.line + diff, cur.from.ch); - cur.to = Pos(cur.to.line + diff, cur.to.ch); - } else if (from <= cur.to.line) { - ok = false; - break; - } - } - if (!ok) { - array.splice(0, i2 + 1); - i2 = 0; - } - } - } - function rebaseHist(hist, change) { - var from = change.from.line, - to = change.to.line, - diff = change.text.length - (to - from) - 1; - rebaseHistArray(hist.done, from, to, diff); - rebaseHistArray(hist.undone, from, to, diff); - } - function changeLine(doc, handle, changeType, op) { - var no = handle, - line = handle; - if (typeof handle == "number") { - line = getLine(doc, clipLine(doc, handle)); - } else { - no = lineNo(handle); - } - if (no == null) { - return null; - } - if (op(line, no) && doc.cm) { - regLineChange(doc.cm, no, changeType); - } - return line; - } - function LeafChunk(lines) { - this.lines = lines; - this.parent = null; - var height = 0; - for (var i2 = 0; i2 < lines.length; ++i2) { - lines[i2].parent = this; - height += lines[i2].height; - } - this.height = height; - } - LeafChunk.prototype = { - chunkSize: function () { - return this.lines.length; - }, - // Remove the n lines at offset 'at'. - removeInner: function (at, n) { - for (var i2 = at, e = at + n; i2 < e; ++i2) { - var line = this.lines[i2]; - this.height -= line.height; - cleanUpLine(line); - signalLater(line, "delete"); - } - this.lines.splice(at, n); - }, - // Helper used to collapse a small branch into a single leaf. - collapse: function (lines) { - lines.push.apply(lines, this.lines); - }, - // Insert the given array of lines at offset 'at', count them as - // having the given height. - insertInner: function (at, lines, height) { - this.height += height; - this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); - for (var i2 = 0; i2 < lines.length; ++i2) { - lines[i2].parent = this; - } - }, - // Used to iterate over a part of the tree. - iterN: function (at, n, op) { - for (var e = at + n; at < e; ++at) { - if (op(this.lines[at])) { - return true; - } - } - } - }; - function BranchChunk(children) { - this.children = children; - var size = 0, - height = 0; - for (var i2 = 0; i2 < children.length; ++i2) { - var ch = children[i2]; - size += ch.chunkSize(); - height += ch.height; - ch.parent = this; - } - this.size = size; - this.height = height; - this.parent = null; - } - BranchChunk.prototype = { - chunkSize: function () { - return this.size; - }, - removeInner: function (at, n) { - this.size -= n; - for (var i2 = 0; i2 < this.children.length; ++i2) { - var child = this.children[i2], - sz = child.chunkSize(); - if (at < sz) { - var rm = Math.min(n, sz - at), - oldHeight = child.height; - child.removeInner(at, rm); - this.height -= oldHeight - child.height; - if (sz == rm) { - this.children.splice(i2--, 1); - child.parent = null; - } - if ((n -= rm) == 0) { - break; - } - at = 0; - } else { - at -= sz; - } - } - if (this.size - n < 25 && (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) { - var lines = []; - this.collapse(lines); - this.children = [new LeafChunk(lines)]; - this.children[0].parent = this; - } - }, - collapse: function (lines) { - for (var i2 = 0; i2 < this.children.length; ++i2) { - this.children[i2].collapse(lines); - } - }, - insertInner: function (at, lines, height) { - this.size += lines.length; - this.height += height; - for (var i2 = 0; i2 < this.children.length; ++i2) { - var child = this.children[i2], - sz = child.chunkSize(); - if (at <= sz) { - child.insertInner(at, lines, height); - if (child.lines && child.lines.length > 50) { - var remaining = child.lines.length % 25 + 25; - for (var pos = remaining; pos < child.lines.length;) { - var leaf = new LeafChunk(child.lines.slice(pos, pos += 25)); - child.height -= leaf.height; - this.children.splice(++i2, 0, leaf); - leaf.parent = this; - } - child.lines = child.lines.slice(0, remaining); - this.maybeSpill(); - } - break; - } - at -= sz; - } - }, - // When a node has grown, check whether it should be split. - maybeSpill: function () { - if (this.children.length <= 10) { - return; - } - var me = this; - do { - var spilled = me.children.splice(me.children.length - 5, 5); - var sibling = new BranchChunk(spilled); - if (!me.parent) { - var copy = new BranchChunk(me.children); - copy.parent = me; - me.children = [copy, sibling]; - me = copy; - } else { - me.size -= sibling.size; - me.height -= sibling.height; - var myIndex = indexOf(me.parent.children, me); - me.parent.children.splice(myIndex + 1, 0, sibling); - } - sibling.parent = me.parent; - } while (me.children.length > 10); - me.parent.maybeSpill(); - }, - iterN: function (at, n, op) { - for (var i2 = 0; i2 < this.children.length; ++i2) { - var child = this.children[i2], - sz = child.chunkSize(); - if (at < sz) { - var used = Math.min(n, sz - at); - if (child.iterN(at, used, op)) { - return true; - } - if ((n -= used) == 0) { - break; - } - at = 0; - } else { - at -= sz; - } - } - } - }; - var LineWidget = function (doc, node, options) { - if (options) { - for (var opt in options) { - if (options.hasOwnProperty(opt)) { - this[opt] = options[opt]; - } - } - } - this.doc = doc; - this.node = node; - }; - LineWidget.prototype.clear = function () { - var cm = this.doc.cm, - ws = this.line.widgets, - line = this.line, - no = lineNo(line); - if (no == null || !ws) { - return; - } - for (var i2 = 0; i2 < ws.length; ++i2) { - if (ws[i2] == this) { - ws.splice(i2--, 1); - } - } - if (!ws.length) { - line.widgets = null; - } - var height = widgetHeight(this); - updateLineHeight(line, Math.max(0, line.height - height)); - if (cm) { - runInOp(cm, function () { - adjustScrollWhenAboveVisible(cm, line, -height); - regLineChange(cm, no, "widget"); - }); - signalLater(cm, "lineWidgetCleared", cm, this, no); - } - }; - LineWidget.prototype.changed = function () { - var this$1$1 = this; - var oldH = this.height, - cm = this.doc.cm, - line = this.line; - this.height = null; - var diff = widgetHeight(this) - oldH; - if (!diff) { - return; - } - if (!lineIsHidden(this.doc, line)) { - updateLineHeight(line, line.height + diff); - } - if (cm) { - runInOp(cm, function () { - cm.curOp.forceUpdate = true; - adjustScrollWhenAboveVisible(cm, line, diff); - signalLater(cm, "lineWidgetChanged", cm, this$1$1, lineNo(line)); - }); - } - }; - eventMixin(LineWidget); - function adjustScrollWhenAboveVisible(cm, line, diff) { - if (heightAtLine(line) < (cm.curOp && cm.curOp.scrollTop || cm.doc.scrollTop)) { - addToScrollTop(cm, diff); - } - } - function addLineWidget(doc, handle, node, options) { - var widget = new LineWidget(doc, node, options); - var cm = doc.cm; - if (cm && widget.noHScroll) { - cm.display.alignWidgets = true; - } - changeLine(doc, handle, "widget", function (line) { - var widgets = line.widgets || (line.widgets = []); - if (widget.insertAt == null) { - widgets.push(widget); - } else { - widgets.splice(Math.min(widgets.length, Math.max(0, widget.insertAt)), 0, widget); - } - widget.line = line; - if (cm && !lineIsHidden(doc, line)) { - var aboveVisible = heightAtLine(line) < doc.scrollTop; - updateLineHeight(line, line.height + widgetHeight(widget)); - if (aboveVisible) { - addToScrollTop(cm, widget.height); - } - cm.curOp.forceUpdate = true; - } - return true; - }); - if (cm) { - signalLater(cm, "lineWidgetAdded", cm, widget, typeof handle == "number" ? handle : lineNo(handle)); - } - return widget; - } - var nextMarkerId = 0; - var TextMarker = function (doc, type) { - this.lines = []; - this.type = type; - this.doc = doc; - this.id = ++nextMarkerId; - }; - TextMarker.prototype.clear = function () { - if (this.explicitlyCleared) { - return; - } - var cm = this.doc.cm, - withOp = cm && !cm.curOp; - if (withOp) { - startOperation(cm); - } - if (hasHandler(this, "clear")) { - var found = this.find(); - if (found) { - signalLater(this, "clear", found.from, found.to); - } - } - var min = null, - max = null; - for (var i2 = 0; i2 < this.lines.length; ++i2) { - var line = this.lines[i2]; - var span = getMarkedSpanFor(line.markedSpans, this); - if (cm && !this.collapsed) { - regLineChange(cm, lineNo(line), "text"); - } else if (cm) { - if (span.to != null) { - max = lineNo(line); - } - if (span.from != null) { - min = lineNo(line); - } - } - line.markedSpans = removeMarkedSpan(line.markedSpans, span); - if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm) { - updateLineHeight(line, textHeight(cm.display)); - } - } - if (cm && this.collapsed && !cm.options.lineWrapping) { - for (var i$12 = 0; i$12 < this.lines.length; ++i$12) { - var visual = visualLine(this.lines[i$12]), - len = lineLength(visual); - if (len > cm.display.maxLineLength) { - cm.display.maxLine = visual; - cm.display.maxLineLength = len; - cm.display.maxLineChanged = true; - } - } - } - if (min != null && cm && this.collapsed) { - regChange(cm, min, max + 1); - } - this.lines.length = 0; - this.explicitlyCleared = true; - if (this.atomic && this.doc.cantEdit) { - this.doc.cantEdit = false; - if (cm) { - reCheckSelection(cm.doc); - } - } - if (cm) { - signalLater(cm, "markerCleared", cm, this, min, max); - } - if (withOp) { - endOperation(cm); - } - if (this.parent) { - this.parent.clear(); - } - }; - TextMarker.prototype.find = function (side, lineObj) { - if (side == null && this.type == "bookmark") { - side = 1; - } - var from, to; - for (var i2 = 0; i2 < this.lines.length; ++i2) { - var line = this.lines[i2]; - var span = getMarkedSpanFor(line.markedSpans, this); - if (span.from != null) { - from = Pos(lineObj ? line : lineNo(line), span.from); - if (side == -1) { - return from; - } - } - if (span.to != null) { - to = Pos(lineObj ? line : lineNo(line), span.to); - if (side == 1) { - return to; - } - } - } - return from && { - from, - to - }; - }; - TextMarker.prototype.changed = function () { - var this$1$1 = this; - var pos = this.find(-1, true), - widget = this, - cm = this.doc.cm; - if (!pos || !cm) { - return; - } - runInOp(cm, function () { - var line = pos.line, - lineN = lineNo(pos.line); - var view = findViewForLine(cm, lineN); - if (view) { - clearLineMeasurementCacheFor(view); - cm.curOp.selectionChanged = cm.curOp.forceUpdate = true; - } - cm.curOp.updateMaxLine = true; - if (!lineIsHidden(widget.doc, line) && widget.height != null) { - var oldHeight = widget.height; - widget.height = null; - var dHeight = widgetHeight(widget) - oldHeight; - if (dHeight) { - updateLineHeight(line, line.height + dHeight); - } - } - signalLater(cm, "markerChanged", cm, this$1$1); - }); - }; - TextMarker.prototype.attachLine = function (line) { - if (!this.lines.length && this.doc.cm) { - var op = this.doc.cm.curOp; - if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1) { - (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); - } - } - this.lines.push(line); - }; - TextMarker.prototype.detachLine = function (line) { - this.lines.splice(indexOf(this.lines, line), 1); - if (!this.lines.length && this.doc.cm) { - var op = this.doc.cm.curOp; - (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this); - } - }; - eventMixin(TextMarker); - function markText(doc, from, to, options, type) { - if (options && options.shared) { - return markTextShared(doc, from, to, options, type); - } - if (doc.cm && !doc.cm.curOp) { - return operation(doc.cm, markText)(doc, from, to, options, type); - } - var marker = new TextMarker(doc, type), - diff = cmp(from, to); - if (options) { - copyObj(options, marker, false); - } - if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false) { - return marker; - } - if (marker.replacedWith) { - marker.collapsed = true; - marker.widgetNode = eltP("span", [marker.replacedWith], "CodeMirror-widget"); - if (!options.handleMouseEvents) { - marker.widgetNode.setAttribute("cm-ignore-events", "true"); - } - if (options.insertLeft) { - marker.widgetNode.insertLeft = true; - } - } - if (marker.collapsed) { - if (conflictingCollapsedRange(doc, from.line, from, to, marker) || from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker)) { - throw new Error("Inserting collapsed marker partially overlapping an existing one"); - } - seeCollapsedSpans(); - } - if (marker.addToHistory) { - addChangeToHistory(doc, { - from, - to, - origin: "markText" - }, doc.sel, NaN); - } - var curLine = from.line, - cm = doc.cm, - updateMaxLine; - doc.iter(curLine, to.line + 1, function (line) { - if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine) { - updateMaxLine = true; - } - if (marker.collapsed && curLine != from.line) { - updateLineHeight(line, 0); - } - addMarkedSpan(line, new MarkedSpan(marker, curLine == from.line ? from.ch : null, curLine == to.line ? to.ch : null), doc.cm && doc.cm.curOp); - ++curLine; - }); - if (marker.collapsed) { - doc.iter(from.line, to.line + 1, function (line) { - if (lineIsHidden(doc, line)) { - updateLineHeight(line, 0); - } - }); - } - if (marker.clearOnEnter) { - on(marker, "beforeCursorEnter", function () { - return marker.clear(); - }); - } - if (marker.readOnly) { - seeReadOnlySpans(); - if (doc.history.done.length || doc.history.undone.length) { - doc.clearHistory(); - } - } - if (marker.collapsed) { - marker.id = ++nextMarkerId; - marker.atomic = true; - } - if (cm) { - if (updateMaxLine) { - cm.curOp.updateMaxLine = true; - } - if (marker.collapsed) { - regChange(cm, from.line, to.line + 1); - } else if (marker.className || marker.startStyle || marker.endStyle || marker.css || marker.attributes || marker.title) { - for (var i2 = from.line; i2 <= to.line; i2++) { - regLineChange(cm, i2, "text"); - } - } - if (marker.atomic) { - reCheckSelection(cm.doc); - } - signalLater(cm, "markerAdded", cm, marker); - } - return marker; - } - var SharedTextMarker = function (markers, primary) { - this.markers = markers; - this.primary = primary; - for (var i2 = 0; i2 < markers.length; ++i2) { - markers[i2].parent = this; - } - }; - SharedTextMarker.prototype.clear = function () { - if (this.explicitlyCleared) { - return; - } - this.explicitlyCleared = true; - for (var i2 = 0; i2 < this.markers.length; ++i2) { - this.markers[i2].clear(); - } - signalLater(this, "clear"); - }; - SharedTextMarker.prototype.find = function (side, lineObj) { - return this.primary.find(side, lineObj); - }; - eventMixin(SharedTextMarker); - function markTextShared(doc, from, to, options, type) { - options = copyObj(options); - options.shared = false; - var markers = [markText(doc, from, to, options, type)], - primary = markers[0]; - var widget = options.widgetNode; - linkedDocs(doc, function (doc2) { - if (widget) { - options.widgetNode = widget.cloneNode(true); - } - markers.push(markText(doc2, clipPos(doc2, from), clipPos(doc2, to), options, type)); - for (var i2 = 0; i2 < doc2.linked.length; ++i2) { - if (doc2.linked[i2].isParent) { - return; - } - } - primary = lst(markers); - }); - return new SharedTextMarker(markers, primary); - } - function findSharedMarkers(doc) { - return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { - return m.parent; - }); - } - function copySharedMarkers(doc, markers) { - for (var i2 = 0; i2 < markers.length; i2++) { - var marker = markers[i2], - pos = marker.find(); - var mFrom = doc.clipPos(pos.from), - mTo = doc.clipPos(pos.to); - if (cmp(mFrom, mTo)) { - var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type); - marker.markers.push(subMark); - subMark.parent = marker; - } - } - } - function detachSharedMarkers(markers) { - var loop = function (i3) { - var marker = markers[i3], - linked = [marker.primary.doc]; - linkedDocs(marker.primary.doc, function (d) { - return linked.push(d); - }); - for (var j = 0; j < marker.markers.length; j++) { - var subMarker = marker.markers[j]; - if (indexOf(linked, subMarker.doc) == -1) { - subMarker.parent = null; - marker.markers.splice(j--, 1); - } - } - }; - for (var i2 = 0; i2 < markers.length; i2++) loop(i2); - } - var nextDocId = 0; - var Doc = function (text, mode, firstLine, lineSep, direction) { - if (!(this instanceof Doc)) { - return new Doc(text, mode, firstLine, lineSep, direction); - } - if (firstLine == null) { - firstLine = 0; - } - BranchChunk.call(this, [new LeafChunk([new Line("", null)])]); - this.first = firstLine; - this.scrollTop = this.scrollLeft = 0; - this.cantEdit = false; - this.cleanGeneration = 1; - this.modeFrontier = this.highlightFrontier = firstLine; - var start = Pos(firstLine, 0); - this.sel = simpleSelection(start); - this.history = new History(null); - this.id = ++nextDocId; - this.modeOption = mode; - this.lineSep = lineSep; - this.direction = direction == "rtl" ? "rtl" : "ltr"; - this.extend = false; - if (typeof text == "string") { - text = this.splitLines(text); - } - updateDoc(this, { - from: start, - to: start, - text - }); - setSelection(this, simpleSelection(start), sel_dontScroll); - }; - Doc.prototype = createObj(BranchChunk.prototype, { - constructor: Doc, - // Iterate over the document. Supports two forms -- with only one - // argument, it calls that for each line in the document. With - // three, it iterates over the range given by the first two (with - // the second being non-inclusive). - iter: function (from, to, op) { - if (op) { - this.iterN(from - this.first, to - from, op); - } else { - this.iterN(this.first, this.first + this.size, from); - } - }, - // Non-public interface for adding and removing lines. - insert: function (at, lines) { - var height = 0; - for (var i2 = 0; i2 < lines.length; ++i2) { - height += lines[i2].height; - } - this.insertInner(at - this.first, lines, height); - }, - remove: function (at, n) { - this.removeInner(at - this.first, n); - }, - // From here, the methods are part of the public interface. Most - // are also available from CodeMirror (editor) instances. - getValue: function (lineSep) { - var lines = getLines(this, this.first, this.first + this.size); - if (lineSep === false) { - return lines; - } - return lines.join(lineSep || this.lineSeparator()); - }, - setValue: docMethodOp(function (code) { - var top = Pos(this.first, 0), - last = this.first + this.size - 1; - makeChange(this, { - from: top, - to: Pos(last, getLine(this, last).text.length), - text: this.splitLines(code), - origin: "setValue", - full: true - }, true); - if (this.cm) { - scrollToCoords(this.cm, 0, 0); - } - setSelection(this, simpleSelection(top), sel_dontScroll); - }), - replaceRange: function (code, from, to, origin) { - from = clipPos(this, from); - to = to ? clipPos(this, to) : from; - replaceRange(this, code, from, to, origin); - }, - getRange: function (from, to, lineSep) { - var lines = getBetween(this, clipPos(this, from), clipPos(this, to)); - if (lineSep === false) { - return lines; - } - if (lineSep === "") { - return lines.join(""); - } - return lines.join(lineSep || this.lineSeparator()); - }, - getLine: function (line) { - var l = this.getLineHandle(line); - return l && l.text; - }, - getLineHandle: function (line) { - if (isLine(this, line)) { - return getLine(this, line); - } - }, - getLineNumber: function (line) { - return lineNo(line); - }, - getLineHandleVisualStart: function (line) { - if (typeof line == "number") { - line = getLine(this, line); - } - return visualLine(line); - }, - lineCount: function () { - return this.size; - }, - firstLine: function () { - return this.first; - }, - lastLine: function () { - return this.first + this.size - 1; - }, - clipPos: function (pos) { - return clipPos(this, pos); - }, - getCursor: function (start) { - var range2 = this.sel.primary(), - pos; - if (start == null || start == "head") { - pos = range2.head; - } else if (start == "anchor") { - pos = range2.anchor; - } else if (start == "end" || start == "to" || start === false) { - pos = range2.to(); - } else { - pos = range2.from(); - } - return pos; - }, - listSelections: function () { - return this.sel.ranges; - }, - somethingSelected: function () { - return this.sel.somethingSelected(); - }, - setCursor: docMethodOp(function (line, ch, options) { - setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options); - }), - setSelection: docMethodOp(function (anchor, head, options) { - setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options); - }), - extendSelection: docMethodOp(function (head, other, options) { - extendSelection(this, clipPos(this, head), other && clipPos(this, other), options); - }), - extendSelections: docMethodOp(function (heads, options) { - extendSelections(this, clipPosArray(this, heads), options); - }), - extendSelectionsBy: docMethodOp(function (f, options) { - var heads = map(this.sel.ranges, f); - extendSelections(this, clipPosArray(this, heads), options); - }), - setSelections: docMethodOp(function (ranges, primary, options) { - if (!ranges.length) { - return; - } - var out = []; - for (var i2 = 0; i2 < ranges.length; i2++) { - out[i2] = new Range(clipPos(this, ranges[i2].anchor), clipPos(this, ranges[i2].head || ranges[i2].anchor)); - } - if (primary == null) { - primary = Math.min(ranges.length - 1, this.sel.primIndex); - } - setSelection(this, normalizeSelection(this.cm, out, primary), options); - }), - addSelection: docMethodOp(function (anchor, head, options) { - var ranges = this.sel.ranges.slice(0); - ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor))); - setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options); - }), - getSelection: function (lineSep) { - var ranges = this.sel.ranges, - lines; - for (var i2 = 0; i2 < ranges.length; i2++) { - var sel = getBetween(this, ranges[i2].from(), ranges[i2].to()); - lines = lines ? lines.concat(sel) : sel; - } - if (lineSep === false) { - return lines; - } else { - return lines.join(lineSep || this.lineSeparator()); - } - }, - getSelections: function (lineSep) { - var parts = [], - ranges = this.sel.ranges; - for (var i2 = 0; i2 < ranges.length; i2++) { - var sel = getBetween(this, ranges[i2].from(), ranges[i2].to()); - if (lineSep !== false) { - sel = sel.join(lineSep || this.lineSeparator()); - } - parts[i2] = sel; - } - return parts; - }, - replaceSelection: function (code, collapse, origin) { - var dup = []; - for (var i2 = 0; i2 < this.sel.ranges.length; i2++) { - dup[i2] = code; - } - this.replaceSelections(dup, collapse, origin || "+input"); - }, - replaceSelections: docMethodOp(function (code, collapse, origin) { - var changes = [], - sel = this.sel; - for (var i2 = 0; i2 < sel.ranges.length; i2++) { - var range2 = sel.ranges[i2]; - changes[i2] = { - from: range2.from(), - to: range2.to(), - text: this.splitLines(code[i2]), - origin - }; - } - var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse); - for (var i$12 = changes.length - 1; i$12 >= 0; i$12--) { - makeChange(this, changes[i$12]); - } - if (newSel) { - setSelectionReplaceHistory(this, newSel); - } else if (this.cm) { - ensureCursorVisible(this.cm); - } - }), - undo: docMethodOp(function () { - makeChangeFromHistory(this, "undo"); - }), - redo: docMethodOp(function () { - makeChangeFromHistory(this, "redo"); - }), - undoSelection: docMethodOp(function () { - makeChangeFromHistory(this, "undo", true); - }), - redoSelection: docMethodOp(function () { - makeChangeFromHistory(this, "redo", true); - }), - setExtending: function (val) { - this.extend = val; - }, - getExtending: function () { - return this.extend; - }, - historySize: function () { - var hist = this.history, - done = 0, - undone = 0; - for (var i2 = 0; i2 < hist.done.length; i2++) { - if (!hist.done[i2].ranges) { - ++done; - } - } - for (var i$12 = 0; i$12 < hist.undone.length; i$12++) { - if (!hist.undone[i$12].ranges) { - ++undone; - } - } - return { - undo: done, - redo: undone - }; - }, - clearHistory: function () { - var this$1$1 = this; - this.history = new History(this.history); - linkedDocs(this, function (doc) { - return doc.history = this$1$1.history; - }, true); - }, - markClean: function () { - this.cleanGeneration = this.changeGeneration(true); - }, - changeGeneration: function (forceSplit) { - if (forceSplit) { - this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; - } - return this.history.generation; - }, - isClean: function (gen) { - return this.history.generation == (gen || this.cleanGeneration); - }, - getHistory: function () { - return { - done: copyHistoryArray(this.history.done), - undone: copyHistoryArray(this.history.undone) - }; - }, - setHistory: function (histData) { - var hist = this.history = new History(this.history); - hist.done = copyHistoryArray(histData.done.slice(0), null, true); - hist.undone = copyHistoryArray(histData.undone.slice(0), null, true); - }, - setGutterMarker: docMethodOp(function (line, gutterID, value) { - return changeLine(this, line, "gutter", function (line2) { - var markers = line2.gutterMarkers || (line2.gutterMarkers = {}); - markers[gutterID] = value; - if (!value && isEmpty(markers)) { - line2.gutterMarkers = null; - } - return true; - }); - }), - clearGutter: docMethodOp(function (gutterID) { - var this$1$1 = this; - this.iter(function (line) { - if (line.gutterMarkers && line.gutterMarkers[gutterID]) { - changeLine(this$1$1, line, "gutter", function () { - line.gutterMarkers[gutterID] = null; - if (isEmpty(line.gutterMarkers)) { - line.gutterMarkers = null; - } - return true; - }); - } - }); - }), - lineInfo: function (line) { - var n; - if (typeof line == "number") { - if (!isLine(this, line)) { - return null; - } - n = line; - line = getLine(this, line); - if (!line) { - return null; - } - } else { - n = lineNo(line); - if (n == null) { - return null; - } - } - return { - line: n, - handle: line, - text: line.text, - gutterMarkers: line.gutterMarkers, - textClass: line.textClass, - bgClass: line.bgClass, - wrapClass: line.wrapClass, - widgets: line.widgets - }; - }, - addLineClass: docMethodOp(function (handle, where, cls) { - return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) { - var prop2 = where == "text" ? "textClass" : where == "background" ? "bgClass" : where == "gutter" ? "gutterClass" : "wrapClass"; - if (!line[prop2]) { - line[prop2] = cls; - } else if (classTest(cls).test(line[prop2])) { - return false; - } else { - line[prop2] += " " + cls; - } - return true; - }); - }), - removeLineClass: docMethodOp(function (handle, where, cls) { - return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) { - var prop2 = where == "text" ? "textClass" : where == "background" ? "bgClass" : where == "gutter" ? "gutterClass" : "wrapClass"; - var cur = line[prop2]; - if (!cur) { - return false; - } else if (cls == null) { - line[prop2] = null; - } else { - var found = cur.match(classTest(cls)); - if (!found) { - return false; - } - var end = found.index + found[0].length; - line[prop2] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null; - } - return true; - }); - }), - addLineWidget: docMethodOp(function (handle, node, options) { - return addLineWidget(this, handle, node, options); - }), - removeLineWidget: function (widget) { - widget.clear(); - }, - markText: function (from, to, options) { - return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range"); - }, - setBookmark: function (pos, options) { - var realOpts = { - replacedWith: options && (options.nodeType == null ? options.widget : options), - insertLeft: options && options.insertLeft, - clearWhenEmpty: false, - shared: options && options.shared, - handleMouseEvents: options && options.handleMouseEvents - }; - pos = clipPos(this, pos); - return markText(this, pos, pos, realOpts, "bookmark"); - }, - findMarksAt: function (pos) { - pos = clipPos(this, pos); - var markers = [], - spans = getLine(this, pos.line).markedSpans; - if (spans) { - for (var i2 = 0; i2 < spans.length; ++i2) { - var span = spans[i2]; - if ((span.from == null || span.from <= pos.ch) && (span.to == null || span.to >= pos.ch)) { - markers.push(span.marker.parent || span.marker); - } - } - } - return markers; - }, - findMarks: function (from, to, filter) { - from = clipPos(this, from); - to = clipPos(this, to); - var found = [], - lineNo2 = from.line; - this.iter(from.line, to.line + 1, function (line) { - var spans = line.markedSpans; - if (spans) { - for (var i2 = 0; i2 < spans.length; i2++) { - var span = spans[i2]; - if (!(span.to != null && lineNo2 == from.line && from.ch >= span.to || span.from == null && lineNo2 != from.line || span.from != null && lineNo2 == to.line && span.from >= to.ch) && (!filter || filter(span.marker))) { - found.push(span.marker.parent || span.marker); - } - } - } - ++lineNo2; - }); - return found; - }, - getAllMarks: function () { - var markers = []; - this.iter(function (line) { - var sps = line.markedSpans; - if (sps) { - for (var i2 = 0; i2 < sps.length; ++i2) { - if (sps[i2].from != null) { - markers.push(sps[i2].marker); - } - } - } - }); - return markers; - }, - posFromIndex: function (off2) { - var ch, - lineNo2 = this.first, - sepSize = this.lineSeparator().length; - this.iter(function (line) { - var sz = line.text.length + sepSize; - if (sz > off2) { - ch = off2; - return true; - } - off2 -= sz; - ++lineNo2; - }); - return clipPos(this, Pos(lineNo2, ch)); - }, - indexFromPos: function (coords) { - coords = clipPos(this, coords); - var index = coords.ch; - if (coords.line < this.first || coords.ch < 0) { - return 0; - } - var sepSize = this.lineSeparator().length; - this.iter(this.first, coords.line, function (line) { - index += line.text.length + sepSize; - }); - return index; - }, - copy: function (copyHistory) { - var doc = new Doc(getLines(this, this.first, this.first + this.size), this.modeOption, this.first, this.lineSep, this.direction); - doc.scrollTop = this.scrollTop; - doc.scrollLeft = this.scrollLeft; - doc.sel = this.sel; - doc.extend = false; - if (copyHistory) { - doc.history.undoDepth = this.history.undoDepth; - doc.setHistory(this.getHistory()); - } - return doc; - }, - linkedDoc: function (options) { - if (!options) { - options = {}; - } - var from = this.first, - to = this.first + this.size; - if (options.from != null && options.from > from) { - from = options.from; - } - if (options.to != null && options.to < to) { - to = options.to; - } - var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction); - if (options.sharedHist) { - copy.history = this.history; - } - (this.linked || (this.linked = [])).push({ - doc: copy, - sharedHist: options.sharedHist - }); - copy.linked = [{ - doc: this, - isParent: true, - sharedHist: options.sharedHist - }]; - copySharedMarkers(copy, findSharedMarkers(this)); - return copy; - }, - unlinkDoc: function (other) { - if (other instanceof CodeMirror) { - other = other.doc; - } - if (this.linked) { - for (var i2 = 0; i2 < this.linked.length; ++i2) { - var link = this.linked[i2]; - if (link.doc != other) { - continue; - } - this.linked.splice(i2, 1); - other.unlinkDoc(this); - detachSharedMarkers(findSharedMarkers(this)); - break; - } - } - if (other.history == this.history) { - var splitIds = [other.id]; - linkedDocs(other, function (doc) { - return splitIds.push(doc.id); - }, true); - other.history = new History(null); - other.history.done = copyHistoryArray(this.history.done, splitIds); - other.history.undone = copyHistoryArray(this.history.undone, splitIds); - } - }, - iterLinkedDocs: function (f) { - linkedDocs(this, f); - }, - getMode: function () { - return this.mode; - }, - getEditor: function () { - return this.cm; - }, - splitLines: function (str) { - if (this.lineSep) { - return str.split(this.lineSep); - } - return splitLinesAuto(str); - }, - lineSeparator: function () { - return this.lineSep || "\n"; - }, - setDirection: docMethodOp(function (dir) { - if (dir != "rtl") { - dir = "ltr"; - } - if (dir == this.direction) { - return; - } - this.direction = dir; - this.iter(function (line) { - return line.order = null; - }); - if (this.cm) { - directionChanged(this.cm); - } - }) - }); - Doc.prototype.eachLine = Doc.prototype.iter; - var lastDrop = 0; - function onDrop(e) { - var cm = this; - clearDragCursor(cm); - if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { - return; - } - e_preventDefault(e); - if (ie) { - lastDrop = + /* @__PURE__ */new Date(); - } - var pos = posFromMouse(cm, e, true), - files = e.dataTransfer.files; - if (!pos || cm.isReadOnly()) { - return; - } - if (files && files.length && window.FileReader && window.File) { - var n = files.length, - text = Array(n), - read = 0; - var markAsReadAndPasteIfAllFilesAreRead = function () { - if (++read == n) { - operation(cm, function () { - pos = clipPos(cm.doc, pos); - var change = { - from: pos, - to: pos, - text: cm.doc.splitLines(text.filter(function (t) { - return t != null; - }).join(cm.doc.lineSeparator())), - origin: "paste" - }; - makeChange(cm.doc, change); - setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change)))); - })(); - } - }; - var readTextFromFile = function (file, i3) { - if (cm.options.allowDropFileTypes && indexOf(cm.options.allowDropFileTypes, file.type) == -1) { - markAsReadAndPasteIfAllFilesAreRead(); - return; - } - var reader = new FileReader(); - reader.onerror = function () { - return markAsReadAndPasteIfAllFilesAreRead(); - }; - reader.onload = function () { - var content = reader.result; - if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) { - markAsReadAndPasteIfAllFilesAreRead(); - return; - } - text[i3] = content; - markAsReadAndPasteIfAllFilesAreRead(); - }; - reader.readAsText(file); - }; - for (var i2 = 0; i2 < files.length; i2++) { - readTextFromFile(files[i2], i2); - } - } else { - if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) { - cm.state.draggingText(e); - setTimeout(function () { - return cm.display.input.focus(); - }, 20); - return; - } - try { - var text$1 = e.dataTransfer.getData("Text"); - if (text$1) { - var selected; - if (cm.state.draggingText && !cm.state.draggingText.copy) { - selected = cm.listSelections(); - } - setSelectionNoUndo(cm.doc, simpleSelection(pos, pos)); - if (selected) { - for (var i$12 = 0; i$12 < selected.length; ++i$12) { - replaceRange(cm.doc, "", selected[i$12].anchor, selected[i$12].head, "drag"); - } - } - cm.replaceSelection(text$1, "around", "paste"); - cm.display.input.focus(); - } - } catch (e$1) {} - } - } - function onDragStart(cm, e) { - if (ie && (!cm.state.draggingText || + /* @__PURE__ */new Date() - lastDrop < 100)) { - e_stop(e); - return; - } - if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { - return; - } - e.dataTransfer.setData("Text", cm.getSelection()); - e.dataTransfer.effectAllowed = "copyMove"; - if (e.dataTransfer.setDragImage && !safari) { - var img = elt("img", null, null, "position: fixed; left: 0; top: 0;"); - img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; - if (presto) { - img.width = img.height = 1; - cm.display.wrapper.appendChild(img); - img._top = img.offsetTop; - } - e.dataTransfer.setDragImage(img, 0, 0); - if (presto) { - img.parentNode.removeChild(img); - } - } - } - function onDragOver(cm, e) { - var pos = posFromMouse(cm, e); - if (!pos) { - return; - } - var frag = document.createDocumentFragment(); - drawSelectionCursor(cm, pos, frag); - if (!cm.display.dragCursor) { - cm.display.dragCursor = elt("div", null, "CodeMirror-cursors CodeMirror-dragcursors"); - cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv); - } - removeChildrenAndAdd(cm.display.dragCursor, frag); - } - function clearDragCursor(cm) { - if (cm.display.dragCursor) { - cm.display.lineSpace.removeChild(cm.display.dragCursor); - cm.display.dragCursor = null; - } - } - function forEachCodeMirror(f) { - if (!document.getElementsByClassName) { - return; - } - var byClass = document.getElementsByClassName("CodeMirror"), - editors = []; - for (var i2 = 0; i2 < byClass.length; i2++) { - var cm = byClass[i2].CodeMirror; - if (cm) { - editors.push(cm); - } - } - if (editors.length) { - editors[0].operation(function () { - for (var i3 = 0; i3 < editors.length; i3++) { - f(editors[i3]); - } - }); - } - } - var globalsRegistered = false; - function ensureGlobalHandlers() { - if (globalsRegistered) { - return; - } - registerGlobalHandlers(); - globalsRegistered = true; - } - function registerGlobalHandlers() { - var resizeTimer; - on(window, "resize", function () { - if (resizeTimer == null) { - resizeTimer = setTimeout(function () { - resizeTimer = null; - forEachCodeMirror(onResize); - }, 100); - } - }); - on(window, "blur", function () { - return forEachCodeMirror(onBlur); - }); - } - function onResize(cm) { - var d = cm.display; - d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; - d.scrollbarsClipped = false; - cm.setSize(); - } - var keyNames = { - 3: "Pause", - 8: "Backspace", - 9: "Tab", - 13: "Enter", - 16: "Shift", - 17: "Ctrl", - 18: "Alt", - 19: "Pause", - 20: "CapsLock", - 27: "Esc", - 32: "Space", - 33: "PageUp", - 34: "PageDown", - 35: "End", - 36: "Home", - 37: "Left", - 38: "Up", - 39: "Right", - 40: "Down", - 44: "PrintScrn", - 45: "Insert", - 46: "Delete", - 59: ";", - 61: "=", - 91: "Mod", - 92: "Mod", - 93: "Mod", - 106: "*", - 107: "=", - 109: "-", - 110: ".", - 111: "/", - 145: "ScrollLock", - 173: "-", - 186: ";", - 187: "=", - 188: ",", - 189: "-", - 190: ".", - 191: "/", - 192: "`", - 219: "[", - 220: "\\", - 221: "]", - 222: "'", - 224: "Mod", - 63232: "Up", - 63233: "Down", - 63234: "Left", - 63235: "Right", - 63272: "Delete", - 63273: "Home", - 63275: "End", - 63276: "PageUp", - 63277: "PageDown", - 63302: "Insert" - }; - for (var i = 0; i < 10; i++) { - keyNames[i + 48] = keyNames[i + 96] = String(i); - } - for (var i$1 = 65; i$1 <= 90; i$1++) { - keyNames[i$1] = String.fromCharCode(i$1); - } - for (var i$2 = 1; i$2 <= 12; i$2++) { - keyNames[i$2 + 111] = keyNames[i$2 + 63235] = "F" + i$2; - } - var keyMap = {}; - keyMap.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" - }; - keyMap.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" - }; - keyMap.emacsy = { - "Ctrl-F": "goCharRight", - "Ctrl-B": "goCharLeft", - "Ctrl-P": "goLineUp", - "Ctrl-N": "goLineDown", - "Ctrl-A": "goLineStart", - "Ctrl-E": "goLineEnd", - "Ctrl-V": "goPageDown", - "Shift-Ctrl-V": "goPageUp", - "Ctrl-D": "delCharAfter", - "Ctrl-H": "delCharBefore", - "Alt-Backspace": "delWordBefore", - "Ctrl-K": "killLine", - "Ctrl-T": "transposeChars", - "Ctrl-O": "openLine" - }; - keyMap.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"] - }; - keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; - function normalizeKeyName(name) { - var parts = name.split(/-(?!$)/); - name = parts[parts.length - 1]; - var alt, ctrl, shift, cmd; - for (var i2 = 0; i2 < parts.length - 1; i2++) { - var mod = parts[i2]; - if (/^(cmd|meta|m)$/i.test(mod)) { - cmd = true; - } else if (/^a(lt)?$/i.test(mod)) { - alt = true; - } else if (/^(c|ctrl|control)$/i.test(mod)) { - ctrl = true; - } else if (/^s(hift)?$/i.test(mod)) { - shift = true; - } else { - throw new Error("Unrecognized modifier name: " + mod); - } - } - if (alt) { - name = "Alt-" + name; - } - if (ctrl) { - name = "Ctrl-" + name; - } - if (cmd) { - name = "Cmd-" + name; - } - if (shift) { - name = "Shift-" + name; - } - return name; - } - function normalizeKeyMap(keymap) { - var copy = {}; - for (var keyname in keymap) { - if (keymap.hasOwnProperty(keyname)) { - var value = keymap[keyname]; - if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { - continue; - } - if (value == "...") { - delete keymap[keyname]; - continue; - } - var keys = map(keyname.split(" "), normalizeKeyName); - for (var i2 = 0; i2 < keys.length; i2++) { - var val = void 0, - name = void 0; - if (i2 == keys.length - 1) { - name = keys.join(" "); - val = value; - } else { - name = keys.slice(0, i2 + 1).join(" "); - val = "..."; - } - var prev = copy[name]; - if (!prev) { - copy[name] = val; - } else if (prev != val) { - throw new Error("Inconsistent bindings for " + name); - } - } - delete keymap[keyname]; - } - } - for (var prop2 in copy) { - keymap[prop2] = copy[prop2]; - } - return keymap; - } - function lookupKey(key, map2, handle, context) { - map2 = getKeyMap(map2); - var found = map2.call ? map2.call(key, context) : map2[key]; - if (found === false) { - return "nothing"; - } - if (found === "...") { - return "multi"; - } - if (found != null && handle(found)) { - return "handled"; - } - if (map2.fallthrough) { - if (Object.prototype.toString.call(map2.fallthrough) != "[object Array]") { - return lookupKey(key, map2.fallthrough, handle, context); - } - for (var i2 = 0; i2 < map2.fallthrough.length; i2++) { - var result = lookupKey(key, map2.fallthrough[i2], handle, context); - if (result) { - return result; - } - } - } - } - function isModifierKey(value) { - var name = typeof value == "string" ? value : keyNames[value.keyCode]; - return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"; - } - function addModifierNames(name, event, noShift) { - var base = name; - if (event.altKey && base != "Alt") { - name = "Alt-" + name; - } - if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") { - name = "Ctrl-" + name; - } - if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Mod") { - name = "Cmd-" + name; - } - if (!noShift && event.shiftKey && base != "Shift") { - name = "Shift-" + name; - } - return name; - } - function keyName(event, noShift) { - if (presto && event.keyCode == 34 && event["char"]) { - return false; - } - var name = keyNames[event.keyCode]; - if (name == null || event.altGraphKey) { - return false; - } - if (event.keyCode == 3 && event.code) { - name = event.code; - } - return addModifierNames(name, event, noShift); - } - function getKeyMap(val) { - return typeof val == "string" ? keyMap[val] : val; - } - function deleteNearSelection(cm, compute) { - var ranges = cm.doc.sel.ranges, - kill = []; - for (var i2 = 0; i2 < ranges.length; i2++) { - var toKill = compute(ranges[i2]); - while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) { - var replaced = kill.pop(); - if (cmp(replaced.from, toKill.from) < 0) { - toKill.from = replaced.from; - break; - } - } - kill.push(toKill); - } - runInOp(cm, function () { - for (var i3 = kill.length - 1; i3 >= 0; i3--) { - replaceRange(cm.doc, "", kill[i3].from, kill[i3].to, "+delete"); - } - ensureCursorVisible(cm); - }); - } - function moveCharLogically(line, ch, dir) { - var target = skipExtendingChars(line.text, ch + dir, dir); - return target < 0 || target > line.text.length ? null : target; - } - function moveLogically(line, start, dir) { - var ch = moveCharLogically(line, start.ch, dir); - return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before"); - } - function endOfLine(visually, cm, lineObj, lineNo2, dir) { - if (visually) { - if (cm.doc.direction == "rtl") { - dir = -dir; - } - var order = getOrder(lineObj, cm.doc.direction); - if (order) { - var part = dir < 0 ? lst(order) : order[0]; - var moveInStorageOrder = dir < 0 == (part.level == 1); - var sticky = moveInStorageOrder ? "after" : "before"; - var ch; - if (part.level > 0 || cm.doc.direction == "rtl") { - var prep = prepareMeasureForLine(cm, lineObj); - ch = dir < 0 ? lineObj.text.length - 1 : 0; - var targetTop = measureCharPrepared(cm, prep, ch).top; - ch = findFirst(function (ch2) { - return measureCharPrepared(cm, prep, ch2).top == targetTop; - }, dir < 0 == (part.level == 1) ? part.from : part.to - 1, ch); - if (sticky == "before") { - ch = moveCharLogically(lineObj, ch, 1); - } - } else { - ch = dir < 0 ? part.to : part.from; - } - return new Pos(lineNo2, ch, sticky); - } - } - return new Pos(lineNo2, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after"); - } - function moveVisually(cm, line, start, dir) { - var bidi = getOrder(line, cm.doc.direction); - if (!bidi) { - return moveLogically(line, start, dir); - } - if (start.ch >= line.text.length) { - start.ch = line.text.length; - start.sticky = "before"; - } else if (start.ch <= 0) { - start.ch = 0; - start.sticky = "after"; - } - var partPos = getBidiPartAt(bidi, start.ch, start.sticky), - part = bidi[partPos]; - if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) { - return moveLogically(line, start, dir); - } - var mv = function (pos, dir2) { - return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir2); - }; - var prep; - var getWrappedLineExtent = function (ch2) { - if (!cm.options.lineWrapping) { - return { - begin: 0, - end: line.text.length - }; - } - prep = prep || prepareMeasureForLine(cm, line); - return wrappedLineExtentChar(cm, line, prep, ch2); - }; - var wrappedLineExtent2 = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch); - if (cm.doc.direction == "rtl" || part.level == 1) { - var moveInStorageOrder = part.level == 1 == dir < 0; - var ch = mv(start, moveInStorageOrder ? 1 : -1); - if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent2.begin : ch <= part.to && ch <= wrappedLineExtent2.end)) { - var sticky = moveInStorageOrder ? "before" : "after"; - return new Pos(start.line, ch, sticky); - } - } - var searchInVisualLine = function (partPos2, dir2, wrappedLineExtent3) { - var getRes = function (ch3, moveInStorageOrder3) { - return moveInStorageOrder3 ? new Pos(start.line, mv(ch3, 1), "before") : new Pos(start.line, ch3, "after"); - }; - for (; partPos2 >= 0 && partPos2 < bidi.length; partPos2 += dir2) { - var part2 = bidi[partPos2]; - var moveInStorageOrder2 = dir2 > 0 == (part2.level != 1); - var ch2 = moveInStorageOrder2 ? wrappedLineExtent3.begin : mv(wrappedLineExtent3.end, -1); - if (part2.from <= ch2 && ch2 < part2.to) { - return getRes(ch2, moveInStorageOrder2); - } - ch2 = moveInStorageOrder2 ? part2.from : mv(part2.to, -1); - if (wrappedLineExtent3.begin <= ch2 && ch2 < wrappedLineExtent3.end) { - return getRes(ch2, moveInStorageOrder2); - } - } - }; - var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent2); - if (res) { - return res; - } - var nextCh = dir > 0 ? wrappedLineExtent2.end : mv(wrappedLineExtent2.begin, -1); - if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) { - res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh)); - if (res) { - return res; - } - } - return null; - } - var commands = { - selectAll, - singleSelection: function (cm) { - return cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll); - }, - killLine: function (cm) { - return deleteNearSelection(cm, function (range2) { - if (range2.empty()) { - var len = getLine(cm.doc, range2.head.line).text.length; - if (range2.head.ch == len && range2.head.line < cm.lastLine()) { - return { - from: range2.head, - to: Pos(range2.head.line + 1, 0) - }; - } else { - return { - from: range2.head, - to: Pos(range2.head.line, len) - }; - } - } else { - return { - from: range2.from(), - to: range2.to() - }; - } - }); - }, - deleteLine: function (cm) { - return deleteNearSelection(cm, function (range2) { - return { - from: Pos(range2.from().line, 0), - to: clipPos(cm.doc, Pos(range2.to().line + 1, 0)) - }; - }); - }, - delLineLeft: function (cm) { - return deleteNearSelection(cm, function (range2) { - return { - from: Pos(range2.from().line, 0), - to: range2.from() - }; - }); - }, - delWrappedLineLeft: function (cm) { - return deleteNearSelection(cm, function (range2) { - var top = cm.charCoords(range2.head, "div").top + 5; - var leftPos = cm.coordsChar({ - left: 0, - top - }, "div"); - return { - from: leftPos, - to: range2.from() - }; - }); - }, - delWrappedLineRight: function (cm) { - return deleteNearSelection(cm, function (range2) { - var top = cm.charCoords(range2.head, "div").top + 5; - var rightPos = cm.coordsChar({ - left: cm.display.lineDiv.offsetWidth + 100, - top - }, "div"); - return { - from: range2.from(), - to: rightPos - }; - }); - }, - undo: function (cm) { - return cm.undo(); - }, - redo: function (cm) { - return cm.redo(); - }, - undoSelection: function (cm) { - return cm.undoSelection(); - }, - redoSelection: function (cm) { - return cm.redoSelection(); - }, - goDocStart: function (cm) { - return cm.extendSelection(Pos(cm.firstLine(), 0)); - }, - goDocEnd: function (cm) { - return cm.extendSelection(Pos(cm.lastLine())); - }, - goLineStart: function (cm) { - return cm.extendSelectionsBy(function (range2) { - return lineStart(cm, range2.head.line); - }, { - origin: "+move", - bias: 1 - }); - }, - goLineStartSmart: function (cm) { - return cm.extendSelectionsBy(function (range2) { - return lineStartSmart(cm, range2.head); - }, { - origin: "+move", - bias: 1 - }); - }, - goLineEnd: function (cm) { - return cm.extendSelectionsBy(function (range2) { - return lineEnd(cm, range2.head.line); - }, { - origin: "+move", - bias: -1 - }); - }, - goLineRight: function (cm) { - return cm.extendSelectionsBy(function (range2) { - var top = cm.cursorCoords(range2.head, "div").top + 5; - return cm.coordsChar({ - left: cm.display.lineDiv.offsetWidth + 100, - top - }, "div"); - }, sel_move); - }, - goLineLeft: function (cm) { - return cm.extendSelectionsBy(function (range2) { - var top = cm.cursorCoords(range2.head, "div").top + 5; - return cm.coordsChar({ - left: 0, - top - }, "div"); - }, sel_move); - }, - goLineLeftSmart: function (cm) { - return cm.extendSelectionsBy(function (range2) { - var top = cm.cursorCoords(range2.head, "div").top + 5; - var pos = cm.coordsChar({ - left: 0, - top - }, "div"); - if (pos.ch < cm.getLine(pos.line).search(/\S/)) { - return lineStartSmart(cm, range2.head); - } - return pos; - }, sel_move); - }, - goLineUp: function (cm) { - return cm.moveV(-1, "line"); - }, - goLineDown: function (cm) { - return cm.moveV(1, "line"); - }, - goPageUp: function (cm) { - return cm.moveV(-1, "page"); - }, - goPageDown: function (cm) { - return cm.moveV(1, "page"); - }, - goCharLeft: function (cm) { - return cm.moveH(-1, "char"); - }, - goCharRight: function (cm) { - return cm.moveH(1, "char"); - }, - goColumnLeft: function (cm) { - return cm.moveH(-1, "column"); - }, - goColumnRight: function (cm) { - return cm.moveH(1, "column"); - }, - goWordLeft: function (cm) { - return cm.moveH(-1, "word"); - }, - goGroupRight: function (cm) { - return cm.moveH(1, "group"); - }, - goGroupLeft: function (cm) { - return cm.moveH(-1, "group"); - }, - goWordRight: function (cm) { - return cm.moveH(1, "word"); - }, - delCharBefore: function (cm) { - return cm.deleteH(-1, "codepoint"); - }, - delCharAfter: function (cm) { - return cm.deleteH(1, "char"); - }, - delWordBefore: function (cm) { - return cm.deleteH(-1, "word"); - }, - delWordAfter: function (cm) { - return cm.deleteH(1, "word"); - }, - delGroupBefore: function (cm) { - return cm.deleteH(-1, "group"); - }, - delGroupAfter: function (cm) { - return cm.deleteH(1, "group"); - }, - indentAuto: function (cm) { - return cm.indentSelection("smart"); - }, - indentMore: function (cm) { - return cm.indentSelection("add"); - }, - indentLess: function (cm) { - return cm.indentSelection("subtract"); - }, - insertTab: function (cm) { - return cm.replaceSelection(" "); - }, - insertSoftTab: function (cm) { - var spaces = [], - ranges = cm.listSelections(), - tabSize = cm.options.tabSize; - for (var i2 = 0; i2 < ranges.length; i2++) { - var pos = ranges[i2].from(); - var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize); - spaces.push(spaceStr(tabSize - col % tabSize)); - } - cm.replaceSelections(spaces); - }, - defaultTab: function (cm) { - if (cm.somethingSelected()) { - cm.indentSelection("add"); - } else { - cm.execCommand("insertTab"); - } - }, - // Swap the two chars left and right of each selection's head. - // Move cursor behind the two swapped characters afterwards. - // - // Doesn't consider line feeds a character. - // Doesn't scan more than one line above to find a character. - // Doesn't do anything on an empty line. - // Doesn't do anything with non-empty selections. - transposeChars: function (cm) { - return runInOp(cm, function () { - var ranges = cm.listSelections(), - newSel = []; - for (var i2 = 0; i2 < ranges.length; i2++) { - if (!ranges[i2].empty()) { - continue; - } - var cur = ranges[i2].head, - line = getLine(cm.doc, cur.line).text; - if (line) { - if (cur.ch == line.length) { - cur = new Pos(cur.line, cur.ch - 1); - } - if (cur.ch > 0) { - cur = new Pos(cur.line, cur.ch + 1); - cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2), Pos(cur.line, cur.ch - 2), cur, "+transpose"); - } else if (cur.line > cm.doc.first) { - var prev = getLine(cm.doc, cur.line - 1).text; - if (prev) { - cur = new Pos(cur.line, 1); - cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() + prev.charAt(prev.length - 1), Pos(cur.line - 1, prev.length - 1), cur, "+transpose"); - } - } - } - newSel.push(new Range(cur, cur)); - } - cm.setSelections(newSel); - }); - }, - newlineAndIndent: function (cm) { - return runInOp(cm, function () { - var sels = cm.listSelections(); - for (var i2 = sels.length - 1; i2 >= 0; i2--) { - cm.replaceRange(cm.doc.lineSeparator(), sels[i2].anchor, sels[i2].head, "+input"); - } - sels = cm.listSelections(); - for (var i$12 = 0; i$12 < sels.length; i$12++) { - cm.indentLine(sels[i$12].from().line, null, true); - } - ensureCursorVisible(cm); - }); - }, - openLine: function (cm) { - return cm.replaceSelection("\n", "start"); - }, - toggleOverwrite: function (cm) { - return cm.toggleOverwrite(); - } - }; - function lineStart(cm, lineN) { - var line = getLine(cm.doc, lineN); - var visual = visualLine(line); - if (visual != line) { - lineN = lineNo(visual); - } - return endOfLine(true, cm, visual, lineN, 1); - } - function lineEnd(cm, lineN) { - var line = getLine(cm.doc, lineN); - var visual = visualLineEnd(line); - if (visual != line) { - lineN = lineNo(visual); - } - return endOfLine(true, cm, line, lineN, -1); - } - function lineStartSmart(cm, pos) { - var start = lineStart(cm, pos.line); - var line = getLine(cm.doc, start.line); - var order = getOrder(line, cm.doc.direction); - if (!order || order[0].level == 0) { - var firstNonWS = Math.max(start.ch, line.text.search(/\S/)); - var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch; - return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky); - } - return start; - } - function doHandleBinding(cm, bound, dropShift) { - if (typeof bound == "string") { - bound = commands[bound]; - if (!bound) { - return false; - } - } - cm.display.input.ensurePolled(); - var prevShift = cm.display.shift, - done = false; - try { - if (cm.isReadOnly()) { - cm.state.suppressEdits = true; - } - if (dropShift) { - cm.display.shift = false; - } - done = bound(cm) != Pass; - } finally { - cm.display.shift = prevShift; - cm.state.suppressEdits = false; - } - return done; - } - function lookupKeyForEditor(cm, name, handle) { - for (var i2 = 0; i2 < cm.state.keyMaps.length; i2++) { - var result = lookupKey(name, cm.state.keyMaps[i2], handle, cm); - if (result) { - return result; - } - } - return cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm) || lookupKey(name, cm.options.keyMap, handle, cm); - } - var stopSeq = new Delayed(); - function dispatchKey(cm, name, e, handle) { - var seq = cm.state.keySeq; - if (seq) { - if (isModifierKey(name)) { - return "handled"; - } - if (/\'$/.test(name)) { - cm.state.keySeq = null; - } else { - stopSeq.set(50, function () { - if (cm.state.keySeq == seq) { - cm.state.keySeq = null; - cm.display.input.reset(); - } - }); - } - if (dispatchKeyInner(cm, seq + " " + name, e, handle)) { - return true; - } - } - return dispatchKeyInner(cm, name, e, handle); - } - function dispatchKeyInner(cm, name, e, handle) { - var result = lookupKeyForEditor(cm, name, handle); - if (result == "multi") { - cm.state.keySeq = name; - } - if (result == "handled") { - signalLater(cm, "keyHandled", cm, name, e); - } - if (result == "handled" || result == "multi") { - e_preventDefault(e); - restartBlink(cm); - } - return !!result; - } - function handleKeyBinding(cm, e) { - var name = keyName(e, true); - if (!name) { - return false; - } - if (e.shiftKey && !cm.state.keySeq) { - return dispatchKey(cm, "Shift-" + name, e, function (b) { - return doHandleBinding(cm, b, true); - }) || dispatchKey(cm, name, e, function (b) { - if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion) { - return doHandleBinding(cm, b); - } - }); - } else { - return dispatchKey(cm, name, e, function (b) { - return doHandleBinding(cm, b); - }); - } - } - function handleCharBinding(cm, e, ch) { - return dispatchKey(cm, "'" + ch + "'", e, function (b) { - return doHandleBinding(cm, b, true); - }); - } - var lastStoppedKey = null; - function onKeyDown(e) { - var cm = this; - if (e.target && e.target != cm.display.input.getField()) { - return; - } - cm.curOp.focus = activeElt(); - if (signalDOMEvent(cm, e)) { - return; - } - if (ie && ie_version < 11 && e.keyCode == 27) { - e.returnValue = false; - } - var code = e.keyCode; - cm.display.shift = code == 16 || e.shiftKey; - var handled = handleKeyBinding(cm, e); - if (presto) { - lastStoppedKey = handled ? code : null; - if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey)) { - cm.replaceSelection("", null, "cut"); - } - } - if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand) { - document.execCommand("cut"); - } - if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className)) { - showCrossHair(cm); - } - } - function showCrossHair(cm) { - var lineDiv = cm.display.lineDiv; - addClass(lineDiv, "CodeMirror-crosshair"); - function up(e) { - if (e.keyCode == 18 || !e.altKey) { - rmClass(lineDiv, "CodeMirror-crosshair"); - off(document, "keyup", up); - off(document, "mouseover", up); - } - } - on(document, "keyup", up); - on(document, "mouseover", up); - } - function onKeyUp(e) { - if (e.keyCode == 16) { - this.doc.sel.shift = false; - } - signalDOMEvent(this, e); - } - function onKeyPress(e) { - var cm = this; - if (e.target && e.target != cm.display.input.getField()) { - return; - } - if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { - return; - } - var keyCode = e.keyCode, - charCode = e.charCode; - if (presto && keyCode == lastStoppedKey) { - lastStoppedKey = null; - e_preventDefault(e); - return; - } - if (presto && (!e.which || e.which < 10) && handleKeyBinding(cm, e)) { - return; - } - var ch = String.fromCharCode(charCode == null ? keyCode : charCode); - if (ch == "\b") { - return; - } - if (handleCharBinding(cm, e, ch)) { - return; - } - cm.display.input.onKeyPress(e); - } - var DOUBLECLICK_DELAY = 400; - var PastClick = function (time, pos, button) { - this.time = time; - this.pos = pos; - this.button = button; - }; - PastClick.prototype.compare = function (time, pos, button) { - return this.time + DOUBLECLICK_DELAY > time && cmp(pos, this.pos) == 0 && button == this.button; - }; - var lastClick, lastDoubleClick; - function clickRepeat(pos, button) { - var now = + /* @__PURE__ */new Date(); - if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) { - lastClick = lastDoubleClick = null; - return "triple"; - } else if (lastClick && lastClick.compare(now, pos, button)) { - lastDoubleClick = new PastClick(now, pos, button); - lastClick = null; - return "double"; - } else { - lastClick = new PastClick(now, pos, button); - lastDoubleClick = null; - return "single"; - } - } - function onMouseDown(e) { - var cm = this, - display = cm.display; - if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { - return; - } - display.input.ensurePolled(); - display.shift = e.shiftKey; - if (eventInWidget(display, e)) { - if (!webkit) { - display.scroller.draggable = false; - setTimeout(function () { - return display.scroller.draggable = true; - }, 100); - } - return; - } - if (clickInGutter(cm, e)) { - return; - } - var pos = posFromMouse(cm, e), - button = e_button(e), - repeat = pos ? clickRepeat(pos, button) : "single"; - window.focus(); - if (button == 1 && cm.state.selectingText) { - cm.state.selectingText(e); - } - if (pos && handleMappedButton(cm, button, pos, repeat, e)) { - return; - } - if (button == 1) { - if (pos) { - leftButtonDown(cm, pos, repeat, e); - } else if (e_target(e) == display.scroller) { - e_preventDefault(e); - } - } else if (button == 2) { - if (pos) { - extendSelection(cm.doc, pos); - } - setTimeout(function () { - return display.input.focus(); - }, 20); - } else if (button == 3) { - if (captureRightClick) { - cm.display.input.onContextMenu(e); - } else { - delayBlurEvent(cm); - } - } - } - function handleMappedButton(cm, button, pos, repeat, event) { - var name = "Click"; - if (repeat == "double") { - name = "Double" + name; - } else if (repeat == "triple") { - name = "Triple" + name; - } - name = (button == 1 ? "Left" : button == 2 ? "Middle" : "Right") + name; - return dispatchKey(cm, addModifierNames(name, event), event, function (bound) { - if (typeof bound == "string") { - bound = commands[bound]; - } - if (!bound) { - return false; - } - var done = false; - try { - if (cm.isReadOnly()) { - cm.state.suppressEdits = true; - } - done = bound(cm, pos) != Pass; - } finally { - cm.state.suppressEdits = false; - } - return done; - }); - } - function configureMouse(cm, repeat, event) { - var option = cm.getOption("configureMouse"); - var value = option ? option(cm, repeat, event) : {}; - if (value.unit == null) { - var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey; - value.unit = rect ? "rectangle" : repeat == "single" ? "char" : repeat == "double" ? "word" : "line"; - } - if (value.extend == null || cm.doc.extend) { - value.extend = cm.doc.extend || event.shiftKey; - } - if (value.addNew == null) { - value.addNew = mac ? event.metaKey : event.ctrlKey; - } - if (value.moveOnDrag == null) { - value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); - } - return value; - } - function leftButtonDown(cm, pos, repeat, event) { - if (ie) { - setTimeout(bind(ensureFocus, cm), 0); - } else { - cm.curOp.focus = activeElt(); - } - var behavior = configureMouse(cm, repeat, event); - var sel = cm.doc.sel, - contained; - if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() && repeat == "single" && (contained = sel.contains(pos)) > -1 && (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) && (cmp(contained.to(), pos) > 0 || pos.xRel < 0)) { - leftButtonStartDrag(cm, event, pos, behavior); - } else { - leftButtonSelect(cm, event, pos, behavior); - } - } - function leftButtonStartDrag(cm, event, pos, behavior) { - var display = cm.display, - moved = false; - var dragEnd = operation(cm, function (e) { - if (webkit) { - display.scroller.draggable = false; - } - cm.state.draggingText = false; - if (cm.state.delayingBlurEvent) { - if (cm.hasFocus()) { - cm.state.delayingBlurEvent = false; - } else { - delayBlurEvent(cm); - } - } - off(display.wrapper.ownerDocument, "mouseup", dragEnd); - off(display.wrapper.ownerDocument, "mousemove", mouseMove); - off(display.scroller, "dragstart", dragStart); - off(display.scroller, "drop", dragEnd); - if (!moved) { - e_preventDefault(e); - if (!behavior.addNew) { - extendSelection(cm.doc, pos, null, null, behavior.extend); - } - if (webkit && !safari || ie && ie_version == 9) { - setTimeout(function () { - display.wrapper.ownerDocument.body.focus({ - preventScroll: true - }); - display.input.focus(); - }, 20); - } else { - display.input.focus(); - } - } - }); - var mouseMove = function (e2) { - moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10; - }; - var dragStart = function () { - return moved = true; - }; - if (webkit) { - display.scroller.draggable = true; - } - cm.state.draggingText = dragEnd; - dragEnd.copy = !behavior.moveOnDrag; - on(display.wrapper.ownerDocument, "mouseup", dragEnd); - on(display.wrapper.ownerDocument, "mousemove", mouseMove); - on(display.scroller, "dragstart", dragStart); - on(display.scroller, "drop", dragEnd); - cm.state.delayingBlurEvent = true; - setTimeout(function () { - return display.input.focus(); - }, 20); - if (display.scroller.dragDrop) { - display.scroller.dragDrop(); - } - } - function rangeForUnit(cm, pos, unit) { - if (unit == "char") { - return new Range(pos, pos); - } - if (unit == "word") { - return cm.findWordAt(pos); - } - if (unit == "line") { - return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); - } - var result = unit(cm, pos); - return new Range(result.from, result.to); - } - function leftButtonSelect(cm, event, start, behavior) { - if (ie) { - delayBlurEvent(cm); - } - var display = cm.display, - doc = cm.doc; - e_preventDefault(event); - var ourRange, - ourIndex, - startSel = doc.sel, - ranges = startSel.ranges; - if (behavior.addNew && !behavior.extend) { - ourIndex = doc.sel.contains(start); - if (ourIndex > -1) { - ourRange = ranges[ourIndex]; - } else { - ourRange = new Range(start, start); - } - } else { - ourRange = doc.sel.primary(); - ourIndex = doc.sel.primIndex; - } - if (behavior.unit == "rectangle") { - if (!behavior.addNew) { - ourRange = new Range(start, start); - } - start = posFromMouse(cm, event, true, true); - ourIndex = -1; - } else { - var range2 = rangeForUnit(cm, start, behavior.unit); - if (behavior.extend) { - ourRange = extendRange(ourRange, range2.anchor, range2.head, behavior.extend); - } else { - ourRange = range2; - } - } - if (!behavior.addNew) { - ourIndex = 0; - setSelection(doc, new Selection([ourRange], 0), sel_mouse); - startSel = doc.sel; - } else if (ourIndex == -1) { - ourIndex = ranges.length; - setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex), { - scroll: false, - origin: "*mouse" - }); - } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == "char" && !behavior.extend) { - setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0), { - scroll: false, - origin: "*mouse" - }); - startSel = doc.sel; - } else { - replaceOneSelection(doc, ourIndex, ourRange, sel_mouse); - } - var lastPos = start; - function extendTo(pos) { - if (cmp(lastPos, pos) == 0) { - return; - } - lastPos = pos; - if (behavior.unit == "rectangle") { - var ranges2 = [], - tabSize = cm.options.tabSize; - var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize); - var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize); - var left = Math.min(startCol, posCol), - right = Math.max(startCol, posCol); - for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line)); line <= end; line++) { - var text = getLine(doc, line).text, - leftPos = findColumn(text, left, tabSize); - if (left == right) { - ranges2.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); - } else if (text.length > leftPos) { - ranges2.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); - } - } - if (!ranges2.length) { - ranges2.push(new Range(start, start)); - } - setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges2), ourIndex), { - origin: "*mouse", - scroll: false - }); - cm.scrollIntoView(pos); - } else { - var oldRange = ourRange; - var range3 = rangeForUnit(cm, pos, behavior.unit); - var anchor = oldRange.anchor, - head; - if (cmp(range3.anchor, anchor) > 0) { - head = range3.head; - anchor = minPos(oldRange.from(), range3.anchor); - } else { - head = range3.anchor; - anchor = maxPos(oldRange.to(), range3.head); - } - var ranges$1 = startSel.ranges.slice(0); - ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head)); - setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse); - } - } - var editorSize = display.wrapper.getBoundingClientRect(); - var counter = 0; - function extend(e) { - var curCount = ++counter; - var cur = posFromMouse(cm, e, true, behavior.unit == "rectangle"); - if (!cur) { - return; - } - if (cmp(cur, lastPos) != 0) { - cm.curOp.focus = activeElt(); - extendTo(cur); - var visible = visibleLines(display, doc); - if (cur.line >= visible.to || cur.line < visible.from) { - setTimeout(operation(cm, function () { - if (counter == curCount) { - extend(e); - } - }), 150); - } - } else { - var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0; - if (outside) { - setTimeout(operation(cm, function () { - if (counter != curCount) { - return; - } - display.scroller.scrollTop += outside; - extend(e); - }), 50); - } - } - } - function done(e) { - cm.state.selectingText = false; - counter = Infinity; - if (e) { - e_preventDefault(e); - display.input.focus(); - } - off(display.wrapper.ownerDocument, "mousemove", move); - off(display.wrapper.ownerDocument, "mouseup", up); - doc.history.lastSelOrigin = null; - } - var move = operation(cm, function (e) { - if (e.buttons === 0 || !e_button(e)) { - done(e); - } else { - extend(e); - } - }); - var up = operation(cm, done); - cm.state.selectingText = up; - on(display.wrapper.ownerDocument, "mousemove", move); - on(display.wrapper.ownerDocument, "mouseup", up); - } - function bidiSimplify(cm, range2) { - var anchor = range2.anchor; - var head = range2.head; - var anchorLine = getLine(cm.doc, anchor.line); - if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { - return range2; - } - var order = getOrder(anchorLine); - if (!order) { - return range2; - } - var index = getBidiPartAt(order, anchor.ch, anchor.sticky), - part = order[index]; - if (part.from != anchor.ch && part.to != anchor.ch) { - return range2; - } - var boundary = index + (part.from == anchor.ch == (part.level != 1) ? 0 : 1); - if (boundary == 0 || boundary == order.length) { - return range2; - } - var leftSide; - if (head.line != anchor.line) { - leftSide = (head.line - anchor.line) * (cm.doc.direction == "ltr" ? 1 : -1) > 0; - } else { - var headIndex = getBidiPartAt(order, head.ch, head.sticky); - var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1); - if (headIndex == boundary - 1 || headIndex == boundary) { - leftSide = dir < 0; - } else { - leftSide = dir > 0; - } - } - var usePart = order[boundary + (leftSide ? -1 : 0)]; - var from = leftSide == (usePart.level == 1); - var ch = from ? usePart.from : usePart.to, - sticky = from ? "after" : "before"; - return anchor.ch == ch && anchor.sticky == sticky ? range2 : new Range(new Pos(anchor.line, ch, sticky), head); - } - function gutterEvent(cm, e, type, prevent) { - var mX, mY; - if (e.touches) { - mX = e.touches[0].clientX; - mY = e.touches[0].clientY; - } else { - try { - mX = e.clientX; - mY = e.clientY; - } catch (e$1) { - return false; - } - } - if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { - return false; - } - if (prevent) { - e_preventDefault(e); - } - var display = cm.display; - var lineBox = display.lineDiv.getBoundingClientRect(); - if (mY > lineBox.bottom || !hasHandler(cm, type)) { - return e_defaultPrevented(e); - } - mY -= lineBox.top - display.viewOffset; - for (var i2 = 0; i2 < cm.display.gutterSpecs.length; ++i2) { - var g = display.gutters.childNodes[i2]; - if (g && g.getBoundingClientRect().right >= mX) { - var line = lineAtHeight(cm.doc, mY); - var gutter = cm.display.gutterSpecs[i2]; - signal(cm, type, cm, line, gutter.className, e); - return e_defaultPrevented(e); - } - } - } - function clickInGutter(cm, e) { - return gutterEvent(cm, e, "gutterClick", true); - } - function onContextMenu(cm, e) { - if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { - return; - } - if (signalDOMEvent(cm, e, "contextmenu")) { - return; - } - if (!captureRightClick) { - cm.display.input.onContextMenu(e); - } - } - function contextMenuInGutter(cm, e) { - if (!hasHandler(cm, "gutterContextMenu")) { - return false; - } - return gutterEvent(cm, e, "gutterContextMenu", false); - } - function themeChanged(cm) { - cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-"); - clearCaches(cm); - } - var Init = { - toString: function () { - return "CodeMirror.Init"; - } - }; - var defaults = {}; - var optionHandlers = {}; - function defineOptions(CodeMirror2) { - var optionHandlers2 = CodeMirror2.optionHandlers; - function option(name, deflt, handle, notOnInit) { - CodeMirror2.defaults[name] = deflt; - if (handle) { - optionHandlers2[name] = notOnInit ? function (cm, val, old) { - if (old != Init) { - handle(cm, val, old); - } - } : handle; - } - } - CodeMirror2.defineOption = option; - CodeMirror2.Init = Init; - option("value", "", function (cm, val) { - return cm.setValue(val); - }, true); - option("mode", null, function (cm, val) { - cm.doc.modeOption = val; - loadMode(cm); - }, true); - option("indentUnit", 2, loadMode, true); - option("indentWithTabs", false); - option("smartIndent", true); - option("tabSize", 4, function (cm) { - resetModeState(cm); - clearCaches(cm); - regChange(cm); - }, true); - option("lineSeparator", null, function (cm, val) { - cm.doc.lineSep = val; - if (!val) { - return; - } - var newBreaks = [], - lineNo2 = cm.doc.first; - cm.doc.iter(function (line) { - for (var pos = 0;;) { - var found = line.text.indexOf(val, pos); - if (found == -1) { - break; - } - pos = found + val.length; - newBreaks.push(Pos(lineNo2, found)); - } - lineNo2++; - }); - for (var i2 = newBreaks.length - 1; i2 >= 0; i2--) { - replaceRange(cm.doc, val, newBreaks[i2], Pos(newBreaks[i2].line, newBreaks[i2].ch + val.length)); - } - }); - option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g, function (cm, val, old) { - cm.state.specialChars = new RegExp(val.source + (val.test(" ") ? "" : "| "), "g"); - if (old != Init) { - cm.refresh(); - } - }); - option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function (cm) { - return cm.refresh(); - }, true); - option("electricChars", true); - option("inputStyle", mobile ? "contenteditable" : "textarea", function () { - throw new Error("inputStyle can not (yet) be changed in a running editor"); - }, true); - option("spellcheck", false, function (cm, val) { - return cm.getInputField().spellcheck = val; - }, true); - option("autocorrect", false, function (cm, val) { - return cm.getInputField().autocorrect = val; - }, true); - option("autocapitalize", false, function (cm, val) { - return cm.getInputField().autocapitalize = val; - }, true); - option("rtlMoveVisually", !windows); - option("wholeLineUpdateBefore", true); - option("theme", "default", function (cm) { - themeChanged(cm); - updateGutters(cm); - }, true); - option("keyMap", "default", function (cm, val, old) { - var next = getKeyMap(val); - var prev = old != Init && getKeyMap(old); - if (prev && prev.detach) { - prev.detach(cm, next); - } - if (next.attach) { - next.attach(cm, prev || null); - } - }); - option("extraKeys", null); - option("configureMouse", null); - option("lineWrapping", false, wrappingChanged, true); - option("gutters", [], function (cm, val) { - cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers); - updateGutters(cm); - }, true); - option("fixedGutter", true, function (cm, val) { - cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0"; - cm.refresh(); - }, true); - option("coverGutterNextToScrollbar", false, function (cm) { - return updateScrollbars(cm); - }, true); - option("scrollbarStyle", "native", function (cm) { - initScrollbars(cm); - updateScrollbars(cm); - cm.display.scrollbars.setScrollTop(cm.doc.scrollTop); - cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft); - }, true); - option("lineNumbers", false, function (cm, val) { - cm.display.gutterSpecs = getGutters(cm.options.gutters, val); - updateGutters(cm); - }, true); - option("firstLineNumber", 1, updateGutters, true); - option("lineNumberFormatter", function (integer) { - return integer; - }, updateGutters, true); - option("showCursorWhenSelecting", false, updateSelection, true); - option("resetSelectionOnContextMenu", true); - option("lineWiseCopyCut", true); - option("pasteLinesPerSelection", true); - option("selectionsMayTouch", false); - option("readOnly", false, function (cm, val) { - if (val == "nocursor") { - onBlur(cm); - cm.display.input.blur(); - } - cm.display.input.readOnlyChanged(val); - }); - option("screenReaderLabel", null, function (cm, val) { - val = val === "" ? null : val; - cm.display.input.screenReaderLabelChanged(val); - }); - option("disableInput", false, function (cm, val) { - if (!val) { - cm.display.input.reset(); - } - }, true); - option("dragDrop", true, dragDropChanged); - option("allowDropFileTypes", null); - option("cursorBlinkRate", 530); - option("cursorScrollMargin", 0); - option("cursorHeight", 1, updateSelection, true); - option("singleCursorHeightPerLine", true, updateSelection, true); - option("workTime", 100); - option("workDelay", 100); - option("flattenSpans", true, resetModeState, true); - option("addModeClass", false, resetModeState, true); - option("pollInterval", 100); - option("undoDepth", 200, function (cm, val) { - return cm.doc.history.undoDepth = val; - }); - option("historyEventDelay", 1250); - option("viewportMargin", 10, function (cm) { - return cm.refresh(); - }, true); - option("maxHighlightLength", 1e4, resetModeState, true); - option("moveInputWithCursor", true, function (cm, val) { - if (!val) { - cm.display.input.resetPosition(); - } - }); - option("tabindex", null, function (cm, val) { - return cm.display.input.getField().tabIndex = val || ""; - }); - option("autofocus", null); - option("direction", "ltr", function (cm, val) { - return cm.doc.setDirection(val); - }, true); - option("phrases", null); - } - function dragDropChanged(cm, value, old) { - var wasOn = old && old != Init; - if (!value != !wasOn) { - var funcs = cm.display.dragFunctions; - var toggle = value ? on : off; - toggle(cm.display.scroller, "dragstart", funcs.start); - toggle(cm.display.scroller, "dragenter", funcs.enter); - toggle(cm.display.scroller, "dragover", funcs.over); - toggle(cm.display.scroller, "dragleave", funcs.leave); - toggle(cm.display.scroller, "drop", funcs.drop); - } - } - function wrappingChanged(cm) { - if (cm.options.lineWrapping) { - addClass(cm.display.wrapper, "CodeMirror-wrap"); - cm.display.sizer.style.minWidth = ""; - cm.display.sizerWidth = null; - } else { - rmClass(cm.display.wrapper, "CodeMirror-wrap"); - findMaxLine(cm); - } - estimateLineHeights(cm); - regChange(cm); - clearCaches(cm); - setTimeout(function () { - return updateScrollbars(cm); - }, 100); - } - function CodeMirror(place, options) { - var this$1$1 = this; - if (!(this instanceof CodeMirror)) { - return new CodeMirror(place, options); - } - this.options = options = options ? copyObj(options) : {}; - copyObj(defaults, options, false); - var doc = options.value; - if (typeof doc == "string") { - doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); - } else if (options.mode) { - doc.modeOption = options.mode; - } - this.doc = doc; - var input = new CodeMirror.inputStyles[options.inputStyle](this); - var display = this.display = new Display(place, doc, input, options); - display.wrapper.CodeMirror = this; - themeChanged(this); - if (options.lineWrapping) { - this.display.wrapper.className += " CodeMirror-wrap"; - } - initScrollbars(this); - this.state = { - keyMaps: [], - // stores maps added by addKeyMap - overlays: [], - // highlighting overlays, as added by addOverlay - modeGen: 0, - // bumped when mode/overlay changes, used to invalidate highlighting info - overwrite: false, - delayingBlurEvent: false, - focused: false, - suppressEdits: false, - // used to disable editing during key handlers when in readOnly mode - pasteIncoming: -1, - cutIncoming: -1, - // help recognize paste/cut edits in input.poll - selectingText: false, - draggingText: false, - highlight: new Delayed(), - // stores highlight worker timeout - keySeq: null, - // Unfinished key sequence - specialChars: null - }; - if (options.autofocus && !mobile) { - display.input.focus(); - } - if (ie && ie_version < 11) { - setTimeout(function () { - return this$1$1.display.input.reset(true); - }, 20); - } - registerEventHandlers(this); - ensureGlobalHandlers(); - startOperation(this); - this.curOp.forceUpdate = true; - attachDoc(this, doc); - if (options.autofocus && !mobile || this.hasFocus()) { - setTimeout(function () { - if (this$1$1.hasFocus() && !this$1$1.state.focused) { - onFocus(this$1$1); - } - }, 20); - } else { - onBlur(this); - } - for (var opt in optionHandlers) { - if (optionHandlers.hasOwnProperty(opt)) { - optionHandlers[opt](this, options[opt], Init); - } - } - maybeUpdateLineNumberWidth(this); - if (options.finishInit) { - options.finishInit(this); - } - for (var i2 = 0; i2 < initHooks.length; ++i2) { - initHooks[i2](this); - } - endOperation(this); - if (webkit && options.lineWrapping && getComputedStyle(display.lineDiv).textRendering == "optimizelegibility") { - display.lineDiv.style.textRendering = "auto"; - } - } - CodeMirror.defaults = defaults; - CodeMirror.optionHandlers = optionHandlers; - function registerEventHandlers(cm) { - var d = cm.display; - on(d.scroller, "mousedown", operation(cm, onMouseDown)); - if (ie && ie_version < 11) { - on(d.scroller, "dblclick", operation(cm, function (e) { - if (signalDOMEvent(cm, e)) { - return; - } - var pos = posFromMouse(cm, e); - if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { - return; - } - e_preventDefault(e); - var word = cm.findWordAt(pos); - extendSelection(cm.doc, word.anchor, word.head); - })); - } else { - on(d.scroller, "dblclick", function (e) { - return signalDOMEvent(cm, e) || e_preventDefault(e); - }); - } - on(d.scroller, "contextmenu", function (e) { - return onContextMenu(cm, e); - }); - on(d.input.getField(), "contextmenu", function (e) { - if (!d.scroller.contains(e.target)) { - onContextMenu(cm, e); - } - }); - var touchFinished, - prevTouch = { - end: 0 - }; - function finishTouch() { - if (d.activeTouch) { - touchFinished = setTimeout(function () { - return d.activeTouch = null; - }, 1e3); - prevTouch = d.activeTouch; - prevTouch.end = + /* @__PURE__ */new Date(); - } - } - function isMouseLikeTouchEvent(e) { - if (e.touches.length != 1) { - return false; - } - var touch = e.touches[0]; - return touch.radiusX <= 1 && touch.radiusY <= 1; - } - function farAway(touch, other) { - if (other.left == null) { - return true; - } - var dx = other.left - touch.left, - dy = other.top - touch.top; - return dx * dx + dy * dy > 20 * 20; - } - on(d.scroller, "touchstart", function (e) { - if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) { - d.input.ensurePolled(); - clearTimeout(touchFinished); - var now = + /* @__PURE__ */new Date(); - d.activeTouch = { - start: now, - moved: false, - prev: now - prevTouch.end <= 300 ? prevTouch : null - }; - if (e.touches.length == 1) { - d.activeTouch.left = e.touches[0].pageX; - d.activeTouch.top = e.touches[0].pageY; - } - } - }); - on(d.scroller, "touchmove", function () { - if (d.activeTouch) { - d.activeTouch.moved = true; - } - }); - on(d.scroller, "touchend", function (e) { - var touch = d.activeTouch; - if (touch && !eventInWidget(d, e) && touch.left != null && !touch.moved && /* @__PURE__ */new Date() - touch.start < 300) { - var pos = cm.coordsChar(d.activeTouch, "page"), - range2; - if (!touch.prev || farAway(touch, touch.prev)) { - range2 = new Range(pos, pos); - } else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) { - range2 = cm.findWordAt(pos); - } else { - range2 = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); - } - cm.setSelection(range2.anchor, range2.head); - cm.focus(); - e_preventDefault(e); - } - finishTouch(); - }); - on(d.scroller, "touchcancel", finishTouch); - on(d.scroller, "scroll", function () { - if (d.scroller.clientHeight) { - updateScrollTop(cm, d.scroller.scrollTop); - setScrollLeft(cm, d.scroller.scrollLeft, true); - signal(cm, "scroll", cm); - } - }); - on(d.scroller, "mousewheel", function (e) { - return onScrollWheel(cm, e); - }); - on(d.scroller, "DOMMouseScroll", function (e) { - return onScrollWheel(cm, e); - }); - on(d.wrapper, "scroll", function () { - return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; - }); - d.dragFunctions = { - enter: function (e) { - if (!signalDOMEvent(cm, e)) { - e_stop(e); - } - }, - over: function (e) { - if (!signalDOMEvent(cm, e)) { - onDragOver(cm, e); - e_stop(e); - } - }, - start: function (e) { - return onDragStart(cm, e); - }, - drop: operation(cm, onDrop), - leave: function (e) { - if (!signalDOMEvent(cm, e)) { - clearDragCursor(cm); - } - } - }; - var inp = d.input.getField(); - on(inp, "keyup", function (e) { - return onKeyUp.call(cm, e); - }); - on(inp, "keydown", operation(cm, onKeyDown)); - on(inp, "keypress", operation(cm, onKeyPress)); - on(inp, "focus", function (e) { - return onFocus(cm, e); - }); - on(inp, "blur", function (e) { - return onBlur(cm, e); - }); - } - var initHooks = []; - CodeMirror.defineInitHook = function (f) { - return initHooks.push(f); - }; - function indentLine(cm, n, how, aggressive) { - var doc = cm.doc, - state; - if (how == null) { - how = "add"; - } - if (how == "smart") { - if (!doc.mode.indent) { - how = "prev"; - } else { - state = getContextBefore(cm, n).state; - } - } - var tabSize = cm.options.tabSize; - var line = getLine(doc, n), - curSpace = countColumn(line.text, null, tabSize); - if (line.stateAfter) { - line.stateAfter = null; - } - var curSpaceString = line.text.match(/^\s*/)[0], - indentation; - if (!aggressive && !/\S/.test(line.text)) { - indentation = 0; - how = "not"; - } else if (how == "smart") { - indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text); - if (indentation == Pass || indentation > 150) { - if (!aggressive) { - return; - } - how = "prev"; - } - } - if (how == "prev") { - if (n > doc.first) { - indentation = countColumn(getLine(doc, n - 1).text, null, tabSize); - } else { - indentation = 0; - } - } else if (how == "add") { - indentation = curSpace + cm.options.indentUnit; - } else if (how == "subtract") { - indentation = curSpace - cm.options.indentUnit; - } else if (typeof how == "number") { - indentation = curSpace + how; - } - indentation = Math.max(0, indentation); - var indentString = "", - pos = 0; - if (cm.options.indentWithTabs) { - for (var i2 = Math.floor(indentation / tabSize); i2; --i2) { - pos += tabSize; - indentString += " "; - } - } - if (pos < indentation) { - indentString += spaceStr(indentation - pos); - } - if (indentString != curSpaceString) { - replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input"); - line.stateAfter = null; - return true; - } else { - for (var i$12 = 0; i$12 < doc.sel.ranges.length; i$12++) { - var range2 = doc.sel.ranges[i$12]; - if (range2.head.line == n && range2.head.ch < curSpaceString.length) { - var pos$1 = Pos(n, curSpaceString.length); - replaceOneSelection(doc, i$12, new Range(pos$1, pos$1)); - break; - } - } - } - } - var lastCopied = null; - function setLastCopied(newLastCopied) { - lastCopied = newLastCopied; - } - function applyTextInput(cm, inserted, deleted, sel, origin) { - var doc = cm.doc; - cm.display.shift = false; - if (!sel) { - sel = doc.sel; - } - var recent = + /* @__PURE__ */new Date() - 200; - var paste = origin == "paste" || cm.state.pasteIncoming > recent; - var textLines = splitLinesAuto(inserted), - multiPaste = null; - if (paste && sel.ranges.length > 1) { - if (lastCopied && lastCopied.text.join("\n") == inserted) { - if (sel.ranges.length % lastCopied.text.length == 0) { - multiPaste = []; - for (var i2 = 0; i2 < lastCopied.text.length; i2++) { - multiPaste.push(doc.splitLines(lastCopied.text[i2])); - } - } - } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) { - multiPaste = map(textLines, function (l) { - return [l]; - }); - } - } - var updateInput = cm.curOp.updateInput; - for (var i$12 = sel.ranges.length - 1; i$12 >= 0; i$12--) { - var range2 = sel.ranges[i$12]; - var from = range2.from(), - to = range2.to(); - if (range2.empty()) { - if (deleted && deleted > 0) { - from = Pos(from.line, from.ch - deleted); - } else if (cm.state.overwrite && !paste) { - to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); - } else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join("\n") == textLines.join("\n")) { - from = to = Pos(from.line, 0); - } - } - var changeEvent = { - from, - to, - text: multiPaste ? multiPaste[i$12 % multiPaste.length] : textLines, - origin: origin || (paste ? "paste" : cm.state.cutIncoming > recent ? "cut" : "+input") - }; - makeChange(cm.doc, changeEvent); - signalLater(cm, "inputRead", cm, changeEvent); - } - if (inserted && !paste) { - triggerElectric(cm, inserted); - } - ensureCursorVisible(cm); - if (cm.curOp.updateInput < 2) { - cm.curOp.updateInput = updateInput; - } - cm.curOp.typing = true; - cm.state.pasteIncoming = cm.state.cutIncoming = -1; - } - function handlePaste(e, cm) { - var pasted = e.clipboardData && e.clipboardData.getData("Text"); - if (pasted) { - e.preventDefault(); - if (!cm.isReadOnly() && !cm.options.disableInput) { - runInOp(cm, function () { - return applyTextInput(cm, pasted, 0, null, "paste"); - }); - } - return true; - } - } - function triggerElectric(cm, inserted) { - if (!cm.options.electricChars || !cm.options.smartIndent) { - return; - } - var sel = cm.doc.sel; - for (var i2 = sel.ranges.length - 1; i2 >= 0; i2--) { - var range2 = sel.ranges[i2]; - if (range2.head.ch > 100 || i2 && sel.ranges[i2 - 1].head.line == range2.head.line) { - continue; - } - var mode = cm.getModeAt(range2.head); - var indented = false; - if (mode.electricChars) { - for (var j = 0; j < mode.electricChars.length; j++) { - if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) { - indented = indentLine(cm, range2.head.line, "smart"); - break; - } - } - } else if (mode.electricInput) { - if (mode.electricInput.test(getLine(cm.doc, range2.head.line).text.slice(0, range2.head.ch))) { - indented = indentLine(cm, range2.head.line, "smart"); - } - } - if (indented) { - signalLater(cm, "electricInput", cm, range2.head.line); - } - } - } - function copyableRanges(cm) { - var text = [], - ranges = []; - for (var i2 = 0; i2 < cm.doc.sel.ranges.length; i2++) { - var line = cm.doc.sel.ranges[i2].head.line; - var lineRange = { - anchor: Pos(line, 0), - head: Pos(line + 1, 0) - }; - ranges.push(lineRange); - text.push(cm.getRange(lineRange.anchor, lineRange.head)); - } - return { - text, - ranges - }; - } - function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) { - field.setAttribute("autocorrect", autocorrect ? "" : "off"); - field.setAttribute("autocapitalize", autocapitalize ? "" : "off"); - field.setAttribute("spellcheck", !!spellcheck); - } - function hiddenTextarea() { - var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; min-height: 1em; outline: none"); - var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); - if (webkit) { - te.style.width = "1000px"; - } else { - te.setAttribute("wrap", "off"); - } - if (ios) { - te.style.border = "1px solid black"; - } - disableBrowserMagic(te); - return div; - } - function addEditorMethods(CodeMirror2) { - var optionHandlers2 = CodeMirror2.optionHandlers; - var helpers = CodeMirror2.helpers = {}; - CodeMirror2.prototype = { - constructor: CodeMirror2, - focus: function () { - window.focus(); - this.display.input.focus(); - }, - setOption: function (option, value) { - var options = this.options, - old = options[option]; - if (options[option] == value && option != "mode") { - return; - } - options[option] = value; - if (optionHandlers2.hasOwnProperty(option)) { - operation(this, optionHandlers2[option])(this, value, old); - } - signal(this, "optionChange", this, option); - }, - getOption: function (option) { - return this.options[option]; - }, - getDoc: function () { - return this.doc; - }, - addKeyMap: function (map2, bottom) { - this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map2)); - }, - removeKeyMap: function (map2) { - var maps = this.state.keyMaps; - for (var i2 = 0; i2 < maps.length; ++i2) { - if (maps[i2] == map2 || maps[i2].name == map2) { - maps.splice(i2, 1); - return true; - } - } - }, - addOverlay: methodOp(function (spec, options) { - var mode = spec.token ? spec : CodeMirror2.getMode(this.options, spec); - if (mode.startState) { - throw new Error("Overlays may not be stateful."); - } - insertSorted(this.state.overlays, { - mode, - modeSpec: spec, - opaque: options && options.opaque, - priority: options && options.priority || 0 - }, function (overlay) { - return overlay.priority; - }); - this.state.modeGen++; - regChange(this); - }), - removeOverlay: methodOp(function (spec) { - var overlays = this.state.overlays; - for (var i2 = 0; i2 < overlays.length; ++i2) { - var cur = overlays[i2].modeSpec; - if (cur == spec || typeof spec == "string" && cur.name == spec) { - overlays.splice(i2, 1); - this.state.modeGen++; - regChange(this); - return; - } - } - }), - indentLine: methodOp(function (n, dir, aggressive) { - if (typeof dir != "string" && typeof dir != "number") { - if (dir == null) { - dir = this.options.smartIndent ? "smart" : "prev"; - } else { - dir = dir ? "add" : "subtract"; - } - } - if (isLine(this.doc, n)) { - indentLine(this, n, dir, aggressive); - } - }), - indentSelection: methodOp(function (how) { - var ranges = this.doc.sel.ranges, - end = -1; - for (var i2 = 0; i2 < ranges.length; i2++) { - var range2 = ranges[i2]; - if (!range2.empty()) { - var from = range2.from(), - to = range2.to(); - var start = Math.max(end, from.line); - end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1; - for (var j = start; j < end; ++j) { - indentLine(this, j, how); - } - var newRanges = this.doc.sel.ranges; - if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i2].from().ch > 0) { - replaceOneSelection(this.doc, i2, new Range(from, newRanges[i2].to()), sel_dontScroll); - } - } else if (range2.head.line > end) { - indentLine(this, range2.head.line, how, true); - end = range2.head.line; - if (i2 == this.doc.sel.primIndex) { - ensureCursorVisible(this); - } - } - } - }), - // Fetch the parser token for a given character. Useful for hacks - // that want to inspect the mode state (say, for completion). - getTokenAt: function (pos, precise) { - return takeToken(this, pos, precise); - }, - getLineTokens: function (line, precise) { - return takeToken(this, Pos(line), precise, true); - }, - getTokenTypeAt: function (pos) { - pos = clipPos(this.doc, pos); - var styles = getLineStyles(this, getLine(this.doc, pos.line)); - var before = 0, - after = (styles.length - 1) / 2, - ch = pos.ch; - var type; - if (ch == 0) { - type = styles[2]; - } else { - for (;;) { - var mid = before + after >> 1; - if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { - after = mid; - } else if (styles[mid * 2 + 1] < ch) { - before = mid + 1; - } else { - type = styles[mid * 2 + 2]; - break; - } - } - } - var cut = type ? type.indexOf("overlay ") : -1; - return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1); - }, - getModeAt: function (pos) { - var mode = this.doc.mode; - if (!mode.innerMode) { - return mode; - } - return CodeMirror2.innerMode(mode, this.getTokenAt(pos).state).mode; - }, - getHelper: function (pos, type) { - return this.getHelpers(pos, type)[0]; - }, - getHelpers: function (pos, type) { - var found = []; - if (!helpers.hasOwnProperty(type)) { - return found; - } - var help = helpers[type], - mode = this.getModeAt(pos); - if (typeof mode[type] == "string") { - if (help[mode[type]]) { - found.push(help[mode[type]]); - } - } else if (mode[type]) { - for (var i2 = 0; i2 < mode[type].length; i2++) { - var val = help[mode[type][i2]]; - if (val) { - found.push(val); - } - } - } else if (mode.helperType && help[mode.helperType]) { - found.push(help[mode.helperType]); - } else if (help[mode.name]) { - found.push(help[mode.name]); - } - for (var i$12 = 0; i$12 < help._global.length; i$12++) { - var cur = help._global[i$12]; - if (cur.pred(mode, this) && indexOf(found, cur.val) == -1) { - found.push(cur.val); - } - } - return found; - }, - getStateAfter: function (line, precise) { - var doc = this.doc; - line = clipLine(doc, line == null ? doc.first + doc.size - 1 : line); - return getContextBefore(this, line + 1, precise).state; - }, - cursorCoords: function (start, mode) { - var pos, - range2 = this.doc.sel.primary(); - if (start == null) { - pos = range2.head; - } else if (typeof start == "object") { - pos = clipPos(this.doc, start); - } else { - pos = start ? range2.from() : range2.to(); - } - return cursorCoords(this, pos, mode || "page"); - }, - charCoords: function (pos, mode) { - return charCoords(this, clipPos(this.doc, pos), mode || "page"); - }, - coordsChar: function (coords, mode) { - coords = fromCoordSystem(this, coords, mode || "page"); - return coordsChar(this, coords.left, coords.top); - }, - lineAtHeight: function (height, mode) { - height = fromCoordSystem(this, { - top: height, - left: 0 - }, mode || "page").top; - return lineAtHeight(this.doc, height + this.display.viewOffset); - }, - heightAtLine: function (line, mode, includeWidgets) { - var end = false, - lineObj; - if (typeof line == "number") { - var last = this.doc.first + this.doc.size - 1; - if (line < this.doc.first) { - line = this.doc.first; - } else if (line > last) { - line = last; - end = true; - } - lineObj = getLine(this.doc, line); - } else { - lineObj = line; - } - return intoCoordSystem(this, lineObj, { - top: 0, - left: 0 - }, mode || "page", includeWidgets || end).top + (end ? this.doc.height - heightAtLine(lineObj) : 0); - }, - defaultTextHeight: function () { - return textHeight(this.display); - }, - defaultCharWidth: function () { - return charWidth(this.display); - }, - getViewport: function () { - return { - from: this.display.viewFrom, - to: this.display.viewTo - }; - }, - addWidget: function (pos, node, scroll, vert, horiz) { - var display = this.display; - pos = cursorCoords(this, clipPos(this.doc, pos)); - var top = pos.bottom, - left = pos.left; - node.style.position = "absolute"; - node.setAttribute("cm-ignore-events", "true"); - this.display.input.setUneditable(node); - display.sizer.appendChild(node); - if (vert == "over") { - top = pos.top; - } else if (vert == "above" || vert == "near") { - var vspace = Math.max(display.wrapper.clientHeight, this.doc.height), - hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth); - if ((vert == "above" || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight) { - top = pos.top - node.offsetHeight; - } else if (pos.bottom + node.offsetHeight <= vspace) { - top = pos.bottom; - } - if (left + node.offsetWidth > hspace) { - left = hspace - node.offsetWidth; - } - } - node.style.top = top + "px"; - node.style.left = node.style.right = ""; - if (horiz == "right") { - left = display.sizer.clientWidth - node.offsetWidth; - node.style.right = "0px"; - } else { - if (horiz == "left") { - left = 0; - } else if (horiz == "middle") { - left = (display.sizer.clientWidth - node.offsetWidth) / 2; - } - node.style.left = left + "px"; - } - if (scroll) { - scrollIntoView(this, { - left, - top, - right: left + node.offsetWidth, - bottom: top + node.offsetHeight - }); - } - }, - triggerOnKeyDown: methodOp(onKeyDown), - triggerOnKeyPress: methodOp(onKeyPress), - triggerOnKeyUp: onKeyUp, - triggerOnMouseDown: methodOp(onMouseDown), - execCommand: function (cmd) { - if (commands.hasOwnProperty(cmd)) { - return commands[cmd].call(null, this); - } - }, - triggerElectric: methodOp(function (text) { - triggerElectric(this, text); - }), - findPosH: function (from, amount, unit, visually) { - var dir = 1; - if (amount < 0) { - dir = -1; - amount = -amount; - } - var cur = clipPos(this.doc, from); - for (var i2 = 0; i2 < amount; ++i2) { - cur = findPosH(this.doc, cur, dir, unit, visually); - if (cur.hitSide) { - break; - } - } - return cur; - }, - moveH: methodOp(function (dir, unit) { - var this$1$1 = this; - this.extendSelectionsBy(function (range2) { - if (this$1$1.display.shift || this$1$1.doc.extend || range2.empty()) { - return findPosH(this$1$1.doc, range2.head, dir, unit, this$1$1.options.rtlMoveVisually); - } else { - return dir < 0 ? range2.from() : range2.to(); - } - }, sel_move); - }), - deleteH: methodOp(function (dir, unit) { - var sel = this.doc.sel, - doc = this.doc; - if (sel.somethingSelected()) { - doc.replaceSelection("", null, "+delete"); - } else { - deleteNearSelection(this, function (range2) { - var other = findPosH(doc, range2.head, dir, unit, false); - return dir < 0 ? { - from: other, - to: range2.head - } : { - from: range2.head, - to: other - }; - }); - } - }), - findPosV: function (from, amount, unit, goalColumn) { - var dir = 1, - x = goalColumn; - if (amount < 0) { - dir = -1; - amount = -amount; - } - var cur = clipPos(this.doc, from); - for (var i2 = 0; i2 < amount; ++i2) { - var coords = cursorCoords(this, cur, "div"); - if (x == null) { - x = coords.left; - } else { - coords.left = x; - } - cur = findPosV(this, coords, dir, unit); - if (cur.hitSide) { - break; - } - } - return cur; - }, - moveV: methodOp(function (dir, unit) { - var this$1$1 = this; - var doc = this.doc, - goals = []; - var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected(); - doc.extendSelectionsBy(function (range2) { - if (collapse) { - return dir < 0 ? range2.from() : range2.to(); - } - var headPos = cursorCoords(this$1$1, range2.head, "div"); - if (range2.goalColumn != null) { - headPos.left = range2.goalColumn; - } - goals.push(headPos.left); - var pos = findPosV(this$1$1, headPos, dir, unit); - if (unit == "page" && range2 == doc.sel.primary()) { - addToScrollTop(this$1$1, charCoords(this$1$1, pos, "div").top - headPos.top); - } - return pos; - }, sel_move); - if (goals.length) { - for (var i2 = 0; i2 < doc.sel.ranges.length; i2++) { - doc.sel.ranges[i2].goalColumn = goals[i2]; - } - } - }), - // Find the word at the given position (as returned by coordsChar). - findWordAt: function (pos) { - var doc = this.doc, - line = getLine(doc, pos.line).text; - var start = pos.ch, - end = pos.ch; - if (line) { - var helper = this.getHelper(pos, "wordChars"); - if ((pos.sticky == "before" || end == line.length) && start) { - --start; - } else { - ++end; - } - var startChar = line.charAt(start); - var check = isWordChar(startChar, helper) ? function (ch) { - return isWordChar(ch, helper); - } : /\s/.test(startChar) ? function (ch) { - return /\s/.test(ch); - } : function (ch) { - return !/\s/.test(ch) && !isWordChar(ch); - }; - while (start > 0 && check(line.charAt(start - 1))) { - --start; - } - while (end < line.length && check(line.charAt(end))) { - ++end; - } - } - return new Range(Pos(pos.line, start), Pos(pos.line, end)); - }, - toggleOverwrite: function (value) { - if (value != null && value == this.state.overwrite) { - return; - } - if (this.state.overwrite = !this.state.overwrite) { - addClass(this.display.cursorDiv, "CodeMirror-overwrite"); - } else { - rmClass(this.display.cursorDiv, "CodeMirror-overwrite"); - } - signal(this, "overwriteToggle", this, this.state.overwrite); - }, - hasFocus: function () { - return this.display.input.getField() == activeElt(); - }, - isReadOnly: function () { - return !!(this.options.readOnly || this.doc.cantEdit); - }, - scrollTo: methodOp(function (x, y) { - scrollToCoords(this, x, y); - }), - getScrollInfo: function () { - var scroller = this.display.scroller; - return { - left: scroller.scrollLeft, - top: scroller.scrollTop, - height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight, - width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth, - clientHeight: displayHeight(this), - clientWidth: displayWidth(this) - }; - }, - scrollIntoView: methodOp(function (range2, margin) { - if (range2 == null) { - range2 = { - from: this.doc.sel.primary().head, - to: null - }; - if (margin == null) { - margin = this.options.cursorScrollMargin; - } - } else if (typeof range2 == "number") { - range2 = { - from: Pos(range2, 0), - to: null - }; - } else if (range2.from == null) { - range2 = { - from: range2, - to: null - }; - } - if (!range2.to) { - range2.to = range2.from; - } - range2.margin = margin || 0; - if (range2.from.line != null) { - scrollToRange(this, range2); - } else { - scrollToCoordsRange(this, range2.from, range2.to, range2.margin); - } - }), - setSize: methodOp(function (width, height) { - var this$1$1 = this; - var interpret = function (val) { - return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; - }; - if (width != null) { - this.display.wrapper.style.width = interpret(width); - } - if (height != null) { - this.display.wrapper.style.height = interpret(height); - } - if (this.options.lineWrapping) { - clearLineMeasurementCache(this); - } - var lineNo2 = this.display.viewFrom; - this.doc.iter(lineNo2, this.display.viewTo, function (line) { - if (line.widgets) { - for (var i2 = 0; i2 < line.widgets.length; i2++) { - if (line.widgets[i2].noHScroll) { - regLineChange(this$1$1, lineNo2, "widget"); - break; - } - } - } - ++lineNo2; - }); - this.curOp.forceUpdate = true; - signal(this, "refresh", this); - }), - operation: function (f) { - return runInOp(this, f); - }, - startOperation: function () { - return startOperation(this); - }, - endOperation: function () { - return endOperation(this); - }, - refresh: methodOp(function () { - var oldHeight = this.display.cachedTextHeight; - regChange(this); - this.curOp.forceUpdate = true; - clearCaches(this); - scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop); - updateGutterSpace(this.display); - if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > 0.5 || this.options.lineWrapping) { - estimateLineHeights(this); - } - signal(this, "refresh", this); - }), - swapDoc: methodOp(function (doc) { - var old = this.doc; - old.cm = null; - if (this.state.selectingText) { - this.state.selectingText(); - } - attachDoc(this, doc); - clearCaches(this); - this.display.input.reset(); - scrollToCoords(this, doc.scrollLeft, doc.scrollTop); - this.curOp.forceScroll = true; - signalLater(this, "swapDoc", this, old); - return old; - }), - phrase: function (phraseText) { - var phrases = this.options.phrases; - return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText; - }, - 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; - } - }; - eventMixin(CodeMirror2); - CodeMirror2.registerHelper = function (type, name, value) { - if (!helpers.hasOwnProperty(type)) { - helpers[type] = CodeMirror2[type] = { - _global: [] - }; - } - helpers[type][name] = value; - }; - CodeMirror2.registerGlobalHelper = function (type, name, predicate, value) { - CodeMirror2.registerHelper(type, name, value); - helpers[type]._global.push({ - pred: predicate, - val: value - }); - }; - } - function findPosH(doc, pos, dir, unit, visually) { - var oldPos = pos; - var origDir = dir; - var lineObj = getLine(doc, pos.line); - var lineDir = visually && doc.direction == "rtl" ? -dir : dir; - function findNextLine() { - var l = pos.line + lineDir; - if (l < doc.first || l >= doc.first + doc.size) { - return false; - } - pos = new Pos(l, pos.ch, pos.sticky); - return lineObj = getLine(doc, l); - } - function moveOnce(boundToLine) { - var next; - if (unit == "codepoint") { - var ch = lineObj.text.charCodeAt(pos.ch + (dir > 0 ? 0 : -1)); - if (isNaN(ch)) { - next = null; - } else { - var astral = dir > 0 ? ch >= 55296 && ch < 56320 : ch >= 56320 && ch < 57343; - next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (astral ? 2 : 1))), -dir); - } - } else if (visually) { - next = moveVisually(doc.cm, lineObj, pos, dir); - } else { - next = moveLogically(lineObj, pos, dir); - } - if (next == null) { - if (!boundToLine && findNextLine()) { - pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); - } else { - return false; - } - } else { - pos = next; - } - return true; - } - if (unit == "char" || unit == "codepoint") { - moveOnce(); - } else if (unit == "column") { - moveOnce(true); - } else if (unit == "word" || unit == "group") { - var sawType = null, - group = unit == "group"; - var helper = doc.cm && doc.cm.getHelper(pos, "wordChars"); - for (var first = true;; first = false) { - if (dir < 0 && !moveOnce(!first)) { - break; - } - var cur = lineObj.text.charAt(pos.ch) || "\n"; - var type = isWordChar(cur, helper) ? "w" : group && cur == "\n" ? "n" : !group || /\s/.test(cur) ? null : "p"; - if (group && !first && !type) { - type = "s"; - } - if (sawType && sawType != type) { - if (dir < 0) { - dir = 1; - moveOnce(); - pos.sticky = "after"; - } - break; - } - if (type) { - sawType = type; - } - if (dir > 0 && !moveOnce(!first)) { - break; - } - } - } - var result = skipAtomic(doc, pos, oldPos, origDir, true); - if (equalCursorPos(oldPos, result)) { - result.hitSide = true; - } - return result; - } - function findPosV(cm, pos, dir, unit) { - var doc = cm.doc, - x = pos.left, - y; - if (unit == "page") { - var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); - var moveAmount = Math.max(pageSize - 0.5 * textHeight(cm.display), 3); - y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount; - } else if (unit == "line") { - y = dir > 0 ? pos.bottom + 3 : pos.top - 3; - } - var target; - for (;;) { - target = coordsChar(cm, x, y); - if (!target.outside) { - break; - } - if (dir < 0 ? y <= 0 : y >= doc.height) { - target.hitSide = true; - break; - } - y += dir * 5; - } - return target; - } - var ContentEditableInput = function (cm) { - this.cm = cm; - this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null; - this.polling = new Delayed(); - this.composing = null; - this.gracePeriod = false; - this.readDOMTimeout = null; - }; - ContentEditableInput.prototype.init = function (display) { - var this$1$1 = this; - var input = this, - cm = input.cm; - var div = input.div = display.lineDiv; - div.contentEditable = true; - disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize); - function belongsToInput(e) { - for (var t = e.target; t; t = t.parentNode) { - if (t == div) { - return true; - } - if (/\bCodeMirror-(?:line)?widget\b/.test(t.className)) { - break; - } - } - return false; - } - on(div, "paste", function (e) { - if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { - return; - } - if (ie_version <= 11) { - setTimeout(operation(cm, function () { - return this$1$1.updateFromDOM(); - }), 20); - } - }); - on(div, "compositionstart", function (e) { - this$1$1.composing = { - data: e.data, - done: false - }; - }); - on(div, "compositionupdate", function (e) { - if (!this$1$1.composing) { - this$1$1.composing = { - data: e.data, - done: false - }; - } - }); - on(div, "compositionend", function (e) { - if (this$1$1.composing) { - if (e.data != this$1$1.composing.data) { - this$1$1.readFromDOMSoon(); - } - this$1$1.composing.done = true; - } - }); - on(div, "touchstart", function () { - return input.forceCompositionEnd(); - }); - on(div, "input", function () { - if (!this$1$1.composing) { - this$1$1.readFromDOMSoon(); - } - }); - function onCopyCut(e) { - if (!belongsToInput(e) || signalDOMEvent(cm, e)) { - return; - } - if (cm.somethingSelected()) { - setLastCopied({ - lineWise: false, - text: cm.getSelections() - }); - if (e.type == "cut") { - cm.replaceSelection("", null, "cut"); - } - } else if (!cm.options.lineWiseCopyCut) { - return; - } else { - var ranges = copyableRanges(cm); - setLastCopied({ - lineWise: true, - text: ranges.text - }); - if (e.type == "cut") { - cm.operation(function () { - cm.setSelections(ranges.ranges, 0, sel_dontScroll); - cm.replaceSelection("", null, "cut"); - }); - } - } - if (e.clipboardData) { - e.clipboardData.clearData(); - var content = lastCopied.text.join("\n"); - e.clipboardData.setData("Text", content); - if (e.clipboardData.getData("Text") == content) { - e.preventDefault(); - return; - } - } - var kludge = hiddenTextarea(), - te = kludge.firstChild; - cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild); - te.value = lastCopied.text.join("\n"); - var hadFocus = activeElt(); - selectInput(te); - setTimeout(function () { - cm.display.lineSpace.removeChild(kludge); - hadFocus.focus(); - if (hadFocus == div) { - input.showPrimarySelection(); - } - }, 50); - } - on(div, "copy", onCopyCut); - on(div, "cut", onCopyCut); - }; - ContentEditableInput.prototype.screenReaderLabelChanged = function (label) { - if (label) { - this.div.setAttribute("aria-label", label); - } else { - this.div.removeAttribute("aria-label"); - } - }; - ContentEditableInput.prototype.prepareSelection = function () { - var result = prepareSelection(this.cm, false); - result.focus = activeElt() == this.div; - return result; - }; - ContentEditableInput.prototype.showSelection = function (info, takeFocus) { - if (!info || !this.cm.display.view.length) { - return; - } - if (info.focus || takeFocus) { - this.showPrimarySelection(); - } - this.showMultipleSelections(info); - }; - ContentEditableInput.prototype.getSelection = function () { - return this.cm.display.wrapper.ownerDocument.getSelection(); - }; - ContentEditableInput.prototype.showPrimarySelection = function () { - var sel = this.getSelection(), - cm = this.cm, - prim = cm.doc.sel.primary(); - var from = prim.from(), - to = prim.to(); - if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) { - sel.removeAllRanges(); - return; - } - var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); - var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset); - if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad && cmp(minPos(curAnchor, curFocus), from) == 0 && cmp(maxPos(curAnchor, curFocus), to) == 0) { - return; - } - var view = cm.display.view; - var start = from.line >= cm.display.viewFrom && posToDOM(cm, from) || { - node: view[0].measure.map[2], - offset: 0 - }; - var end = to.line < cm.display.viewTo && posToDOM(cm, to); - if (!end) { - var measure = view[view.length - 1].measure; - var map2 = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map; - end = { - node: map2[map2.length - 1], - offset: map2[map2.length - 2] - map2[map2.length - 3] - }; - } - if (!start || !end) { - sel.removeAllRanges(); - return; - } - var old = sel.rangeCount && sel.getRangeAt(0), - rng; - try { - rng = range(start.node, start.offset, end.offset, end.node); - } catch (e) {} - if (rng) { - if (!gecko && cm.state.focused) { - sel.collapse(start.node, start.offset); - if (!rng.collapsed) { - sel.removeAllRanges(); - sel.addRange(rng); - } - } else { - sel.removeAllRanges(); - sel.addRange(rng); - } - if (old && sel.anchorNode == null) { - sel.addRange(old); - } else if (gecko) { - this.startGracePeriod(); - } - } - this.rememberSelection(); - }; - ContentEditableInput.prototype.startGracePeriod = function () { - var this$1$1 = this; - clearTimeout(this.gracePeriod); - this.gracePeriod = setTimeout(function () { - this$1$1.gracePeriod = false; - if (this$1$1.selectionChanged()) { - this$1$1.cm.operation(function () { - return this$1$1.cm.curOp.selectionChanged = true; - }); - } - }, 20); - }; - ContentEditableInput.prototype.showMultipleSelections = function (info) { - removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors); - removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection); - }; - ContentEditableInput.prototype.rememberSelection = function () { - var sel = this.getSelection(); - this.lastAnchorNode = sel.anchorNode; - this.lastAnchorOffset = sel.anchorOffset; - this.lastFocusNode = sel.focusNode; - this.lastFocusOffset = sel.focusOffset; - }; - ContentEditableInput.prototype.selectionInEditor = function () { - var sel = this.getSelection(); - if (!sel.rangeCount) { - return false; - } - var node = sel.getRangeAt(0).commonAncestorContainer; - return contains(this.div, node); - }; - ContentEditableInput.prototype.focus = function () { - if (this.cm.options.readOnly != "nocursor") { - if (!this.selectionInEditor() || activeElt() != this.div) { - this.showSelection(this.prepareSelection(), true); - } - this.div.focus(); - } - }; - ContentEditableInput.prototype.blur = function () { - this.div.blur(); - }; - ContentEditableInput.prototype.getField = function () { - return this.div; - }; - ContentEditableInput.prototype.supportsTouch = function () { - return true; - }; - ContentEditableInput.prototype.receivedFocus = function () { - var this$1$1 = this; - var input = this; - if (this.selectionInEditor()) { - setTimeout(function () { - return this$1$1.pollSelection(); - }, 20); - } else { - runInOp(this.cm, function () { - return input.cm.curOp.selectionChanged = true; - }); - } - function poll() { - if (input.cm.state.focused) { - input.pollSelection(); - input.polling.set(input.cm.options.pollInterval, poll); - } - } - this.polling.set(this.cm.options.pollInterval, poll); - }; - ContentEditableInput.prototype.selectionChanged = function () { - var sel = this.getSelection(); - return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset || sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset; - }; - ContentEditableInput.prototype.pollSelection = function () { - if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { - return; - } - var sel = this.getSelection(), - cm = this.cm; - if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) { - this.cm.triggerOnKeyDown({ - type: "keydown", - keyCode: 8, - preventDefault: Math.abs - }); - this.blur(); - this.focus(); - return; - } - if (this.composing) { - return; - } - this.rememberSelection(); - var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); - var head = domToPos(cm, sel.focusNode, sel.focusOffset); - if (anchor && head) { - runInOp(cm, function () { - setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll); - if (anchor.bad || head.bad) { - cm.curOp.selectionChanged = true; - } - }); - } - }; - ContentEditableInput.prototype.pollContent = function () { - if (this.readDOMTimeout != null) { - clearTimeout(this.readDOMTimeout); - this.readDOMTimeout = null; - } - var cm = this.cm, - display = cm.display, - sel = cm.doc.sel.primary(); - var from = sel.from(), - to = sel.to(); - if (from.ch == 0 && from.line > cm.firstLine()) { - from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); - } - if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine()) { - to = Pos(to.line + 1, 0); - } - if (from.line < display.viewFrom || to.line > display.viewTo - 1) { - return false; - } - var fromIndex, fromLine, fromNode; - if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) { - fromLine = lineNo(display.view[0].line); - fromNode = display.view[0].node; - } else { - fromLine = lineNo(display.view[fromIndex].line); - fromNode = display.view[fromIndex - 1].node.nextSibling; - } - var toIndex = findViewIndex(cm, to.line); - var toLine, toNode; - if (toIndex == display.view.length - 1) { - toLine = display.viewTo - 1; - toNode = display.lineDiv.lastChild; - } else { - toLine = lineNo(display.view[toIndex + 1].line) - 1; - toNode = display.view[toIndex + 1].node.previousSibling; - } - if (!fromNode) { - return false; - } - var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine)); - var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length)); - while (newText.length > 1 && oldText.length > 1) { - if (lst(newText) == lst(oldText)) { - newText.pop(); - oldText.pop(); - toLine--; - } else if (newText[0] == oldText[0]) { - newText.shift(); - oldText.shift(); - fromLine++; - } else { - break; - } - } - var cutFront = 0, - cutEnd = 0; - var newTop = newText[0], - oldTop = oldText[0], - maxCutFront = Math.min(newTop.length, oldTop.length); - while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront)) { - ++cutFront; - } - var newBot = lst(newText), - oldBot = lst(oldText); - var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0), oldBot.length - (oldText.length == 1 ? cutFront : 0)); - while (cutEnd < maxCutEnd && newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) { - ++cutEnd; - } - if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) { - while (cutFront && cutFront > from.ch && newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) { - cutFront--; - cutEnd++; - } - } - newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\u200b+/, ""); - newText[0] = newText[0].slice(cutFront).replace(/\u200b+$/, ""); - var chFrom = Pos(fromLine, cutFront); - var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0); - if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) { - replaceRange(cm.doc, newText, chFrom, chTo, "+input"); - return true; - } - }; - ContentEditableInput.prototype.ensurePolled = function () { - this.forceCompositionEnd(); - }; - ContentEditableInput.prototype.reset = function () { - this.forceCompositionEnd(); - }; - ContentEditableInput.prototype.forceCompositionEnd = function () { - if (!this.composing) { - return; - } - clearTimeout(this.readDOMTimeout); - this.composing = null; - this.updateFromDOM(); - this.div.blur(); - this.div.focus(); - }; - ContentEditableInput.prototype.readFromDOMSoon = function () { - var this$1$1 = this; - if (this.readDOMTimeout != null) { - return; - } - this.readDOMTimeout = setTimeout(function () { - this$1$1.readDOMTimeout = null; - if (this$1$1.composing) { - if (this$1$1.composing.done) { - this$1$1.composing = null; - } else { - return; - } - } - this$1$1.updateFromDOM(); - }, 80); - }; - ContentEditableInput.prototype.updateFromDOM = function () { - var this$1$1 = this; - if (this.cm.isReadOnly() || !this.pollContent()) { - runInOp(this.cm, function () { - return regChange(this$1$1.cm); - }); - } - }; - ContentEditableInput.prototype.setUneditable = function (node) { - node.contentEditable = "false"; - }; - ContentEditableInput.prototype.onKeyPress = function (e) { - if (e.charCode == 0 || this.composing) { - return; - } - e.preventDefault(); - if (!this.cm.isReadOnly()) { - operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); - } - }; - ContentEditableInput.prototype.readOnlyChanged = function (val) { - this.div.contentEditable = String(val != "nocursor"); - }; - ContentEditableInput.prototype.onContextMenu = function () {}; - ContentEditableInput.prototype.resetPosition = function () {}; - ContentEditableInput.prototype.needsContentAttribute = true; - function posToDOM(cm, pos) { - var view = findViewForLine(cm, pos.line); - if (!view || view.hidden) { - return null; - } - var line = getLine(cm.doc, pos.line); - var info = mapFromLineView(view, line, pos.line); - var order = getOrder(line, cm.doc.direction), - side = "left"; - if (order) { - var partPos = getBidiPartAt(order, pos.ch); - side = partPos % 2 ? "right" : "left"; - } - var result = nodeAndOffsetInLineMap(info.map, pos.ch, side); - result.offset = result.collapse == "right" ? result.end : result.start; - return result; - } - function isInGutter(node) { - for (var scan = node; scan; scan = scan.parentNode) { - if (/CodeMirror-gutter-wrapper/.test(scan.className)) { - return true; - } - } - return false; - } - function badPos(pos, bad) { - if (bad) { - pos.bad = true; - } - return pos; - } - function domTextBetween(cm, from, to, fromLine, toLine) { - var text = "", - closing = false, - lineSep = cm.doc.lineSeparator(), - extraLinebreak = false; - function recognizeMarker(id) { - return function (marker) { - return marker.id == id; - }; - } - function close() { - if (closing) { - text += lineSep; - if (extraLinebreak) { - text += lineSep; - } - closing = extraLinebreak = false; - } - } - function addText(str) { - if (str) { - close(); - text += str; - } - } - function walk(node) { - if (node.nodeType == 1) { - var cmText = node.getAttribute("cm-text"); - if (cmText) { - addText(cmText); - return; - } - var markerID = node.getAttribute("cm-marker"), - range2; - if (markerID) { - var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID)); - if (found.length && (range2 = found[0].find(0))) { - addText(getBetween(cm.doc, range2.from, range2.to).join(lineSep)); - } - return; - } - if (node.getAttribute("contenteditable") == "false") { - return; - } - var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName); - if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { - return; - } - if (isBlock) { - close(); - } - for (var i2 = 0; i2 < node.childNodes.length; i2++) { - walk(node.childNodes[i2]); - } - if (/^(pre|p)$/i.test(node.nodeName)) { - extraLinebreak = true; - } - if (isBlock) { - closing = true; - } - } else if (node.nodeType == 3) { - addText(node.nodeValue.replace(/\u200b/g, "").replace(/\u00a0/g, " ")); - } - } - for (;;) { - walk(from); - if (from == to) { - break; - } - from = from.nextSibling; - extraLinebreak = false; - } - return text; - } - function domToPos(cm, node, offset) { - var lineNode; - if (node == cm.display.lineDiv) { - lineNode = cm.display.lineDiv.childNodes[offset]; - if (!lineNode) { - return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true); - } - node = null; - offset = 0; - } else { - for (lineNode = node;; lineNode = lineNode.parentNode) { - if (!lineNode || lineNode == cm.display.lineDiv) { - return null; - } - if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { - break; - } - } - } - for (var i2 = 0; i2 < cm.display.view.length; i2++) { - var lineView = cm.display.view[i2]; - if (lineView.node == lineNode) { - return locateNodeInLineView(lineView, node, offset); - } - } - } - function locateNodeInLineView(lineView, node, offset) { - var wrapper = lineView.text.firstChild, - bad = false; - if (!node || !contains(wrapper, node)) { - return badPos(Pos(lineNo(lineView.line), 0), true); - } - if (node == wrapper) { - bad = true; - node = wrapper.childNodes[offset]; - offset = 0; - if (!node) { - var line = lineView.rest ? lst(lineView.rest) : lineView.line; - return badPos(Pos(lineNo(line), line.text.length), bad); - } - } - var textNode = node.nodeType == 3 ? node : null, - topNode = node; - if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) { - textNode = node.firstChild; - if (offset) { - offset = textNode.nodeValue.length; - } - } - while (topNode.parentNode != wrapper) { - topNode = topNode.parentNode; - } - var measure = lineView.measure, - maps = measure.maps; - function find(textNode2, topNode2, offset2) { - for (var i2 = -1; i2 < (maps ? maps.length : 0); i2++) { - var map2 = i2 < 0 ? measure.map : maps[i2]; - for (var j = 0; j < map2.length; j += 3) { - var curNode = map2[j + 2]; - if (curNode == textNode2 || curNode == topNode2) { - var line2 = lineNo(i2 < 0 ? lineView.line : lineView.rest[i2]); - var ch = map2[j] + offset2; - if (offset2 < 0 || curNode != textNode2) { - ch = map2[j + (offset2 ? 1 : 0)]; - } - return Pos(line2, ch); - } - } - } - } - var found = find(textNode, topNode, offset); - if (found) { - return badPos(found, bad); - } - for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) { - found = find(after, after.firstChild, 0); - if (found) { - return badPos(Pos(found.line, found.ch - dist), bad); - } else { - dist += after.textContent.length; - } - } - for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) { - found = find(before, before.firstChild, -1); - if (found) { - return badPos(Pos(found.line, found.ch + dist$1), bad); - } else { - dist$1 += before.textContent.length; - } - } - } - var TextareaInput = function (cm) { - this.cm = cm; - this.prevInput = ""; - this.pollingFast = false; - this.polling = new Delayed(); - this.hasSelection = false; - this.composing = null; - }; - TextareaInput.prototype.init = function (display) { - var this$1$1 = this; - var input = this, - cm = this.cm; - this.createField(display); - var te = this.textarea; - display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild); - if (ios) { - te.style.width = "0px"; - } - on(te, "input", function () { - if (ie && ie_version >= 9 && this$1$1.hasSelection) { - this$1$1.hasSelection = null; - } - input.poll(); - }); - on(te, "paste", function (e) { - if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { - return; - } - cm.state.pasteIncoming = + /* @__PURE__ */new Date(); - input.fastPoll(); - }); - function prepareCopyCut(e) { - if (signalDOMEvent(cm, e)) { - return; - } - if (cm.somethingSelected()) { - setLastCopied({ - lineWise: false, - text: cm.getSelections() - }); - } else if (!cm.options.lineWiseCopyCut) { - return; - } else { - var ranges = copyableRanges(cm); - setLastCopied({ - lineWise: true, - text: ranges.text - }); - if (e.type == "cut") { - cm.setSelections(ranges.ranges, null, sel_dontScroll); - } else { - input.prevInput = ""; - te.value = ranges.text.join("\n"); - selectInput(te); - } - } - if (e.type == "cut") { - cm.state.cutIncoming = + /* @__PURE__ */new Date(); - } - } - on(te, "cut", prepareCopyCut); - on(te, "copy", prepareCopyCut); - on(display.scroller, "paste", function (e) { - if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { - return; - } - if (!te.dispatchEvent) { - cm.state.pasteIncoming = + /* @__PURE__ */new Date(); - input.focus(); - return; - } - var event = new Event("paste"); - event.clipboardData = e.clipboardData; - te.dispatchEvent(event); - }); - on(display.lineSpace, "selectstart", function (e) { - if (!eventInWidget(display, e)) { - e_preventDefault(e); - } - }); - on(te, "compositionstart", function () { - var start = cm.getCursor("from"); - if (input.composing) { - input.composing.range.clear(); - } - input.composing = { - start, - range: cm.markText(start, cm.getCursor("to"), { - className: "CodeMirror-composing" - }) - }; - }); - on(te, "compositionend", function () { - if (input.composing) { - input.poll(); - input.composing.range.clear(); - input.composing = null; - } - }); - }; - TextareaInput.prototype.createField = function (_display) { - this.wrapper = hiddenTextarea(); - this.textarea = this.wrapper.firstChild; - }; - TextareaInput.prototype.screenReaderLabelChanged = function (label) { - if (label) { - this.textarea.setAttribute("aria-label", label); - } else { - this.textarea.removeAttribute("aria-label"); - } - }; - TextareaInput.prototype.prepareSelection = function () { - var cm = this.cm, - display = cm.display, - doc = cm.doc; - var result = prepareSelection(cm); - if (cm.options.moveInputWithCursor) { - var headPos = cursorCoords(cm, doc.sel.primary().head, "div"); - var wrapOff = display.wrapper.getBoundingClientRect(), - lineOff = display.lineDiv.getBoundingClientRect(); - result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10, headPos.top + lineOff.top - wrapOff.top)); - result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10, headPos.left + lineOff.left - wrapOff.left)); - } - return result; - }; - TextareaInput.prototype.showSelection = function (drawn) { - var cm = this.cm, - display = cm.display; - removeChildrenAndAdd(display.cursorDiv, drawn.cursors); - removeChildrenAndAdd(display.selectionDiv, drawn.selection); - if (drawn.teTop != null) { - this.wrapper.style.top = drawn.teTop + "px"; - this.wrapper.style.left = drawn.teLeft + "px"; - } - }; - TextareaInput.prototype.reset = function (typing) { - if (this.contextMenuPending || this.composing) { - return; - } - var cm = this.cm; - if (cm.somethingSelected()) { - this.prevInput = ""; - var content = cm.getSelection(); - this.textarea.value = content; - if (cm.state.focused) { - selectInput(this.textarea); - } - if (ie && ie_version >= 9) { - this.hasSelection = content; - } - } else if (!typing) { - this.prevInput = this.textarea.value = ""; - if (ie && ie_version >= 9) { - this.hasSelection = null; - } - } - }; - TextareaInput.prototype.getField = function () { - return this.textarea; - }; - TextareaInput.prototype.supportsTouch = function () { - return false; - }; - TextareaInput.prototype.focus = function () { - if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) { - try { - this.textarea.focus(); - } catch (e) {} - } - }; - TextareaInput.prototype.blur = function () { - this.textarea.blur(); - }; - TextareaInput.prototype.resetPosition = function () { - this.wrapper.style.top = this.wrapper.style.left = 0; - }; - TextareaInput.prototype.receivedFocus = function () { - this.slowPoll(); - }; - TextareaInput.prototype.slowPoll = function () { - var this$1$1 = this; - if (this.pollingFast) { - return; - } - this.polling.set(this.cm.options.pollInterval, function () { - this$1$1.poll(); - if (this$1$1.cm.state.focused) { - this$1$1.slowPoll(); - } - }); - }; - TextareaInput.prototype.fastPoll = function () { - var missed = false, - input = this; - input.pollingFast = true; - function p() { - var changed = input.poll(); - if (!changed && !missed) { - missed = true; - input.polling.set(60, p); - } else { - input.pollingFast = false; - input.slowPoll(); - } - } - input.polling.set(20, p); - }; - TextareaInput.prototype.poll = function () { - var this$1$1 = this; - var cm = this.cm, - input = this.textarea, - prevInput = this.prevInput; - if (this.contextMenuPending || !cm.state.focused || hasSelection(input) && !prevInput && !this.composing || cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq) { - return false; - } - var text = input.value; - if (text == prevInput && !cm.somethingSelected()) { - return false; - } - if (ie && ie_version >= 9 && this.hasSelection === text || mac && /[\uf700-\uf7ff]/.test(text)) { - cm.display.input.reset(); - return false; - } - if (cm.doc.sel == cm.display.selForContextMenu) { - var first = text.charCodeAt(0); - if (first == 8203 && !prevInput) { - prevInput = "​"; - } - if (first == 8666) { - this.reset(); - return this.cm.execCommand("undo"); - } - } - var same = 0, - l = Math.min(prevInput.length, text.length); - while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { - ++same; - } - runInOp(cm, function () { - applyTextInput(cm, text.slice(same), prevInput.length - same, null, this$1$1.composing ? "*compose" : null); - if (text.length > 1e3 || text.indexOf("\n") > -1) { - input.value = this$1$1.prevInput = ""; - } else { - this$1$1.prevInput = text; - } - if (this$1$1.composing) { - this$1$1.composing.range.clear(); - this$1$1.composing.range = cm.markText(this$1$1.composing.start, cm.getCursor("to"), { - className: "CodeMirror-composing" - }); - } - }); - return true; - }; - TextareaInput.prototype.ensurePolled = function () { - if (this.pollingFast && this.poll()) { - this.pollingFast = false; - } - }; - TextareaInput.prototype.onKeyPress = function () { - if (ie && ie_version >= 9) { - this.hasSelection = null; - } - this.fastPoll(); - }; - TextareaInput.prototype.onContextMenu = function (e) { - var input = this, - cm = input.cm, - display = cm.display, - te = input.textarea; - if (input.contextMenuPending) { - input.contextMenuPending(); - } - var pos = posFromMouse(cm, e), - scrollPos = display.scroller.scrollTop; - if (!pos || presto) { - return; - } - var reset = cm.options.resetSelectionOnContextMenu; - if (reset && cm.doc.sel.contains(pos) == -1) { - operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); - } - var oldCSS = te.style.cssText, - oldWrapperCSS = input.wrapper.style.cssText; - var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect(); - input.wrapper.style.cssText = "position: static"; - te.style.cssText = "position: absolute; width: 30px; height: 30px;\n top: " + (e.clientY - wrapperBox.top - 5) + "px; left: " + (e.clientX - wrapperBox.left - 5) + "px;\n z-index: 1000; background: " + (ie ? "rgba(255, 255, 255, .05)" : "transparent") + ";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; - var oldScrollY; - if (webkit) { - oldScrollY = window.scrollY; - } - display.input.focus(); - if (webkit) { - window.scrollTo(null, oldScrollY); - } - display.input.reset(); - if (!cm.somethingSelected()) { - te.value = input.prevInput = " "; - } - input.contextMenuPending = rehide; - display.selForContextMenu = cm.doc.sel; - clearTimeout(display.detectingSelectAll); - function prepareSelectAllHack() { - if (te.selectionStart != null) { - var selected = cm.somethingSelected(); - var extval = "​" + (selected ? te.value : ""); - te.value = "⇚"; - te.value = extval; - input.prevInput = selected ? "" : "​"; - te.selectionStart = 1; - te.selectionEnd = extval.length; - display.selForContextMenu = cm.doc.sel; - } - } - function rehide() { - if (input.contextMenuPending != rehide) { - return; - } - input.contextMenuPending = false; - input.wrapper.style.cssText = oldWrapperCSS; - te.style.cssText = oldCSS; - if (ie && ie_version < 9) { - display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); - } - if (te.selectionStart != null) { - if (!ie || ie && ie_version < 9) { - prepareSelectAllHack(); - } - var i2 = 0, - poll = function () { - if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 && te.selectionEnd > 0 && input.prevInput == "​") { - operation(cm, selectAll)(cm); - } else if (i2++ < 10) { - display.detectingSelectAll = setTimeout(poll, 500); - } else { - display.selForContextMenu = null; - display.input.reset(); - } - }; - display.detectingSelectAll = setTimeout(poll, 200); - } - } - if (ie && ie_version >= 9) { - prepareSelectAllHack(); - } - if (captureRightClick) { - e_stop(e); - var mouseup = function () { - off(window, "mouseup", mouseup); - setTimeout(rehide, 20); - }; - on(window, "mouseup", mouseup); - } else { - setTimeout(rehide, 50); - } - }; - TextareaInput.prototype.readOnlyChanged = function (val) { - if (!val) { - this.reset(); - } - this.textarea.disabled = val == "nocursor"; - this.textarea.readOnly = !!val; - }; - TextareaInput.prototype.setUneditable = function () {}; - TextareaInput.prototype.needsContentAttribute = false; - function fromTextArea(textarea, options) { - options = options ? copyObj(options) : {}; - options.value = textarea.value; - if (!options.tabindex && textarea.tabIndex) { - options.tabindex = textarea.tabIndex; - } - if (!options.placeholder && textarea.placeholder) { - options.placeholder = textarea.placeholder; - } - if (options.autofocus == null) { - var hasFocus = activeElt(); - options.autofocus = hasFocus == textarea || textarea.getAttribute("autofocus") != null && hasFocus == document.body; - } - function save() { - textarea.value = cm.getValue(); - } - var realSubmit; - if (textarea.form) { - on(textarea.form, "submit", save); - if (!options.leaveSubmitMethodAlone) { - var form = textarea.form; - realSubmit = form.submit; - try { - var wrappedSubmit = form.submit = function () { - save(); - form.submit = realSubmit; - form.submit(); - form.submit = wrappedSubmit; - }; - } catch (e) {} - } - } - options.finishInit = function (cm2) { - cm2.save = save; - cm2.getTextArea = function () { - return textarea; - }; - cm2.toTextArea = function () { - cm2.toTextArea = isNaN; - save(); - textarea.parentNode.removeChild(cm2.getWrapperElement()); - textarea.style.display = ""; - if (textarea.form) { - off(textarea.form, "submit", save); - if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == "function") { - textarea.form.submit = realSubmit; - } - } - }; - }; - textarea.style.display = "none"; - var cm = CodeMirror(function (node) { - return textarea.parentNode.insertBefore(node, textarea.nextSibling); - }, options); - return cm; - } - function addLegacyProps(CodeMirror2) { - CodeMirror2.off = off; - CodeMirror2.on = on; - CodeMirror2.wheelEventPixels = wheelEventPixels; - CodeMirror2.Doc = Doc; - CodeMirror2.splitLines = splitLinesAuto; - CodeMirror2.countColumn = countColumn; - CodeMirror2.findColumn = findColumn; - CodeMirror2.isWordChar = isWordCharBasic; - CodeMirror2.Pass = Pass; - CodeMirror2.signal = signal; - CodeMirror2.Line = Line; - CodeMirror2.changeEnd = changeEnd; - CodeMirror2.scrollbarModel = scrollbarModel; - CodeMirror2.Pos = Pos; - CodeMirror2.cmpPos = cmp; - CodeMirror2.modes = modes; - CodeMirror2.mimeModes = mimeModes; - CodeMirror2.resolveMode = resolveMode; - CodeMirror2.getMode = getMode; - CodeMirror2.modeExtensions = modeExtensions; - CodeMirror2.extendMode = extendMode; - CodeMirror2.copyState = copyState; - CodeMirror2.startState = startState; - CodeMirror2.innerMode = innerMode; - CodeMirror2.commands = commands; - CodeMirror2.keyMap = keyMap; - CodeMirror2.keyName = keyName; - CodeMirror2.isModifierKey = isModifierKey; - CodeMirror2.lookupKey = lookupKey; - CodeMirror2.normalizeKeyMap = normalizeKeyMap; - CodeMirror2.StringStream = StringStream; - CodeMirror2.SharedTextMarker = SharedTextMarker; - CodeMirror2.TextMarker = TextMarker; - CodeMirror2.LineWidget = LineWidget; - CodeMirror2.e_preventDefault = e_preventDefault; - CodeMirror2.e_stopPropagation = e_stopPropagation; - CodeMirror2.e_stop = e_stop; - CodeMirror2.addClass = addClass; - CodeMirror2.contains = contains; - CodeMirror2.rmClass = rmClass; - CodeMirror2.keyNames = keyNames; - } - defineOptions(CodeMirror); - addEditorMethods(CodeMirror); - var dontDelegate = "iter insert remove copy getEditor constructor".split(" "); - for (var prop in Doc.prototype) { - if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0) { - CodeMirror.prototype[prop] = /* @__PURE__ */function (method) { - return function () { - return method.apply(this.doc, arguments); - }; - }(Doc.prototype[prop]); - } - } - eventMixin(Doc); - CodeMirror.inputStyles = { - "textarea": TextareaInput, - "contenteditable": ContentEditableInput - }; - CodeMirror.defineMode = function (name) { - if (!CodeMirror.defaults.mode && name != "null") { - CodeMirror.defaults.mode = name; - } - defineMode.apply(this, arguments); - }; - CodeMirror.defineMIME = defineMIME; - CodeMirror.defineMode("null", function () { - return { - token: function (stream) { - return stream.skipToEnd(); - } - }; - }); - CodeMirror.defineMIME("text/plain", "null"); - CodeMirror.defineExtension = function (name, func) { - CodeMirror.prototype[name] = func; - }; - CodeMirror.defineDocExtension = function (name, func) { - Doc.prototype[name] = func; - }; - CodeMirror.fromTextArea = fromTextArea; - addLegacyProps(CodeMirror); - CodeMirror.version = "5.65.3"; - return CodeMirror; - }); - })(codemirror); - return codemirror.exports; -} -exports.getDefaultExportFromCjs = getDefaultExportFromCjs; -exports.requireCodemirror = requireCodemirror; - -/***/ }), - -/***/ "../../graphiql-react/dist/comment.cjs.js": -/*!************************************************!*\ - !*** ../../graphiql-react/dist/comment.cjs.js ***! - \************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { - value: "Module" - })); -} -var comment$2 = { - exports: {} -}; -(function (module2, exports2) { - (function (mod) { - mod(codemirror.requireCodemirror()); - })(function (CodeMirror) { - var noOptions = {}; - var nonWS = /[^\s\u00a0]/; - var Pos = CodeMirror.Pos, - cmp = CodeMirror.cmpPos; - function firstNonWS(str) { - var found = str.search(nonWS); - return found == -1 ? 0 : found; - } - CodeMirror.commands.toggleComment = function (cm) { - cm.toggleComment(); - }; - CodeMirror.defineExtension("toggleComment", function (options) { - if (!options) options = noOptions; - var cm = this; - var minLine = Infinity, - ranges = this.listSelections(), - mode = null; - for (var i = ranges.length - 1; i >= 0; i--) { - var from = ranges[i].from(), - to = ranges[i].to(); - if (from.line >= minLine) continue; - if (to.line >= minLine) to = Pos(minLine, 0); - minLine = from.line; - if (mode == null) { - if (cm.uncomment(from, to, options)) mode = "un";else { - cm.lineComment(from, to, options); - mode = "line"; - } - } else if (mode == "un") { - cm.uncomment(from, to, options); - } else { - cm.lineComment(from, to, options); - } - } - }); - function probablyInsideString(cm, pos, line) { - return /\bstring\b/.test(cm.getTokenTypeAt(Pos(pos.line, 0))) && !/^[\'\"\`]/.test(line); - } - function getMode(cm, pos) { - var mode = cm.getMode(); - return mode.useInnerComments === false || !mode.innerMode ? mode : cm.getModeAt(pos); - } - CodeMirror.defineExtension("lineComment", function (from, to, options) { - if (!options) options = noOptions; - var self = this, - mode = getMode(self, from); - var firstLine = self.getLine(from.line); - if (firstLine == null || probablyInsideString(self, from, firstLine)) return; - var commentString = options.lineComment || mode.lineComment; - if (!commentString) { - if (options.blockCommentStart || mode.blockCommentStart) { - options.fullLines = true; - self.blockComment(from, to, options); - } - return; - } - var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1); - var pad = options.padding == null ? " " : options.padding; - var blankLines = options.commentBlankLines || from.line == to.line; - self.operation(function () { - if (options.indent) { - var baseString = null; - for (var i = from.line; i < end; ++i) { - var line = self.getLine(i); - var whitespace = line.slice(0, firstNonWS(line)); - if (baseString == null || baseString.length > whitespace.length) { - baseString = whitespace; - } - } - for (var i = from.line; i < end; ++i) { - var line = self.getLine(i), - cut = baseString.length; - if (!blankLines && !nonWS.test(line)) continue; - if (line.slice(0, cut) != baseString) cut = firstNonWS(line); - self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut)); - } - } else { - for (var i = from.line; i < end; ++i) { - if (blankLines || nonWS.test(self.getLine(i))) self.replaceRange(commentString + pad, Pos(i, 0)); - } - } - }); - }); - CodeMirror.defineExtension("blockComment", function (from, to, options) { - if (!options) options = noOptions; - var self = this, - mode = getMode(self, from); - var startString = options.blockCommentStart || mode.blockCommentStart; - var endString = options.blockCommentEnd || mode.blockCommentEnd; - if (!startString || !endString) { - if ((options.lineComment || mode.lineComment) && options.fullLines != false) self.lineComment(from, to, options); - return; - } - if (/\bcomment\b/.test(self.getTokenTypeAt(Pos(from.line, 0)))) return; - var end = Math.min(to.line, self.lastLine()); - if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end; - var pad = options.padding == null ? " " : options.padding; - if (from.line > end) return; - self.operation(function () { - if (options.fullLines != false) { - var lastLineHasText = nonWS.test(self.getLine(end)); - self.replaceRange(pad + endString, Pos(end)); - self.replaceRange(startString + pad, Pos(from.line, 0)); - var lead = options.blockCommentLead || mode.blockCommentLead; - if (lead != null) { - for (var i = from.line + 1; i <= end; ++i) if (i != end || lastLineHasText) self.replaceRange(lead + pad, Pos(i, 0)); - } - } else { - var atCursor = cmp(self.getCursor("to"), to) == 0, - empty = !self.somethingSelected(); - self.replaceRange(endString, to); - if (atCursor) self.setSelection(empty ? to : self.getCursor("from"), to); - self.replaceRange(startString, from); - } - }); - }); - CodeMirror.defineExtension("uncomment", function (from, to, options) { - if (!options) options = noOptions; - var self = this, - mode = getMode(self, from); - var end = Math.min(to.ch != 0 || to.line == from.line ? to.line : to.line - 1, self.lastLine()), - start = Math.min(from.line, end); - var lineString = options.lineComment || mode.lineComment, - lines = []; - var pad = options.padding == null ? " " : options.padding, - didSomething; - lineComment: { - if (!lineString) break lineComment; - for (var i = start; i <= end; ++i) { - var line = self.getLine(i); - var found = line.indexOf(lineString); - if (found > -1 && !/comment/.test(self.getTokenTypeAt(Pos(i, found + 1)))) found = -1; - if (found == -1 && nonWS.test(line)) break lineComment; - if (found > -1 && nonWS.test(line.slice(0, found))) break lineComment; - lines.push(line); - } - self.operation(function () { - for (var i2 = start; i2 <= end; ++i2) { - var line2 = lines[i2 - start]; - var pos = line2.indexOf(lineString), - endPos = pos + lineString.length; - if (pos < 0) continue; - if (line2.slice(endPos, endPos + pad.length) == pad) endPos += pad.length; - didSomething = true; - self.replaceRange("", Pos(i2, pos), Pos(i2, endPos)); - } - }); - if (didSomething) return true; - } - var startString = options.blockCommentStart || mode.blockCommentStart; - var endString = options.blockCommentEnd || mode.blockCommentEnd; - if (!startString || !endString) return false; - var lead = options.blockCommentLead || mode.blockCommentLead; - var startLine = self.getLine(start), - open = startLine.indexOf(startString); - if (open == -1) return false; - var endLine = end == start ? startLine : self.getLine(end); - var close = endLine.indexOf(endString, end == start ? open + startString.length : 0); - var insideStart = Pos(start, open + 1), - insideEnd = Pos(end, close + 1); - if (close == -1 || !/comment/.test(self.getTokenTypeAt(insideStart)) || !/comment/.test(self.getTokenTypeAt(insideEnd)) || self.getRange(insideStart, insideEnd, "\n").indexOf(endString) > -1) return false; - var lastStart = startLine.lastIndexOf(startString, from.ch); - var firstEnd = lastStart == -1 ? -1 : startLine.slice(0, from.ch).indexOf(endString, lastStart + startString.length); - if (lastStart != -1 && firstEnd != -1 && firstEnd + endString.length != from.ch) return false; - firstEnd = endLine.indexOf(endString, to.ch); - var almostLastStart = endLine.slice(to.ch).lastIndexOf(startString, firstEnd - to.ch); - lastStart = firstEnd == -1 || almostLastStart == -1 ? -1 : to.ch + almostLastStart; - if (firstEnd != -1 && lastStart != -1 && lastStart != to.ch) return false; - self.operation(function () { - self.replaceRange("", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)), Pos(end, close + endString.length)); - var openEnd = open + startString.length; - if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length; - self.replaceRange("", Pos(start, open), Pos(start, openEnd)); - if (lead) for (var i2 = start + 1; i2 <= end; ++i2) { - var line2 = self.getLine(i2), - found2 = line2.indexOf(lead); - if (found2 == -1 || nonWS.test(line2.slice(0, found2))) continue; - var foundEnd = found2 + lead.length; - if (pad && line2.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length; - self.replaceRange("", Pos(i2, found2), Pos(i2, foundEnd)); - } - }); - return true; - }); - }); -})(); -var commentExports = comment$2.exports; -const comment = /* @__PURE__ */codemirror.getDefaultExportFromCjs(commentExports); -const comment$1 = /* @__PURE__ */_mergeNamespaces({ - __proto__: null, - default: comment -}, [commentExports]); -exports.comment = comment$1; - -/***/ }), - -/***/ "../../graphiql-react/dist/dialog.cjs.js": -/*!***********************************************!*\ - !*** ../../graphiql-react/dist/dialog.cjs.js ***! - \***********************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { - value: "Module" - })); -} -var dialog$2 = { - exports: {} -}; -(function (module2, exports2) { - (function (mod) { - mod(codemirror.requireCodemirror()); - })(function (CodeMirror) { - function dialogDiv(cm, template, bottom) { - var wrap = cm.getWrapperElement(); - var dialog2; - dialog2 = wrap.appendChild(document.createElement("div")); - if (bottom) dialog2.className = "CodeMirror-dialog CodeMirror-dialog-bottom";else dialog2.className = "CodeMirror-dialog CodeMirror-dialog-top"; - if (typeof template == "string") { - dialog2.innerHTML = template; - } else { - dialog2.appendChild(template); - } - CodeMirror.addClass(wrap, "dialog-opened"); - return dialog2; - } - function closeNotification(cm, newVal) { - if (cm.state.currentNotificationClose) cm.state.currentNotificationClose(); - cm.state.currentNotificationClose = newVal; - } - CodeMirror.defineExtension("openDialog", function (template, callback, options) { - if (!options) options = {}; - closeNotification(this, null); - var dialog2 = dialogDiv(this, template, options.bottom); - var closed = false, - me = this; - function close(newVal) { - if (typeof newVal == "string") { - inp.value = newVal; - } else { - if (closed) return; - closed = true; - CodeMirror.rmClass(dialog2.parentNode, "dialog-opened"); - dialog2.parentNode.removeChild(dialog2); - me.focus(); - if (options.onClose) options.onClose(dialog2); - } - } - var inp = dialog2.getElementsByTagName("input")[0], - button; - if (inp) { - inp.focus(); - if (options.value) { - inp.value = options.value; - if (options.selectValueOnOpen !== false) { - inp.select(); - } - } - if (options.onInput) CodeMirror.on(inp, "input", function (e) { - options.onInput(e, inp.value, close); - }); - if (options.onKeyUp) CodeMirror.on(inp, "keyup", function (e) { - options.onKeyUp(e, inp.value, close); - }); - CodeMirror.on(inp, "keydown", function (e) { - if (options && options.onKeyDown && options.onKeyDown(e, inp.value, close)) { - return; - } - if (e.keyCode == 27 || options.closeOnEnter !== false && e.keyCode == 13) { - inp.blur(); - CodeMirror.e_stop(e); - close(); - } - if (e.keyCode == 13) callback(inp.value, e); - }); - if (options.closeOnBlur !== false) CodeMirror.on(dialog2, "focusout", function (evt) { - if (evt.relatedTarget !== null) close(); - }); - } else if (button = dialog2.getElementsByTagName("button")[0]) { - CodeMirror.on(button, "click", function () { - close(); - me.focus(); - }); - if (options.closeOnBlur !== false) CodeMirror.on(button, "blur", close); - button.focus(); - } - return close; - }); - CodeMirror.defineExtension("openConfirm", function (template, callbacks, options) { - closeNotification(this, null); - var dialog2 = dialogDiv(this, template, options && options.bottom); - var buttons = dialog2.getElementsByTagName("button"); - var closed = false, - me = this, - blurring = 1; - function close() { - if (closed) return; - closed = true; - CodeMirror.rmClass(dialog2.parentNode, "dialog-opened"); - dialog2.parentNode.removeChild(dialog2); - me.focus(); - } - buttons[0].focus(); - for (var i = 0; i < buttons.length; ++i) { - var b = buttons[i]; - (function (callback) { - CodeMirror.on(b, "click", function (e) { - CodeMirror.e_preventDefault(e); - close(); - if (callback) callback(me); - }); - })(callbacks[i]); - CodeMirror.on(b, "blur", function () { - --blurring; - setTimeout(function () { - if (blurring <= 0) close(); - }, 200); - }); - CodeMirror.on(b, "focus", function () { - ++blurring; - }); - } - }); - CodeMirror.defineExtension("openNotification", function (template, options) { - closeNotification(this, close); - var dialog2 = dialogDiv(this, template, options && options.bottom); - var closed = false, - doneTimer; - var duration = options && typeof options.duration !== "undefined" ? options.duration : 5e3; - function close() { - if (closed) return; - closed = true; - clearTimeout(doneTimer); - CodeMirror.rmClass(dialog2.parentNode, "dialog-opened"); - dialog2.parentNode.removeChild(dialog2); - } - CodeMirror.on(dialog2, "click", function (e) { - CodeMirror.e_preventDefault(e); - close(); - }); - if (duration) doneTimer = setTimeout(close, duration); - return close; - }); - }); -})(); -var dialogExports = dialog$2.exports; -const dialog = /* @__PURE__ */codemirror.getDefaultExportFromCjs(dialogExports); -const dialog$1 = /* @__PURE__ */_mergeNamespaces({ - __proto__: null, - default: dialog -}, [dialogExports]); -exports.dialog = dialog$1; -exports.dialogExports = dialogExports; - -/***/ }), - -/***/ "../../graphiql-react/dist/foldgutter.cjs.js": -/*!***************************************************!*\ - !*** ../../graphiql-react/dist/foldgutter.cjs.js ***! - \***************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { - value: "Module" - })); -} -var foldgutter$2 = { - exports: {} -}; -var foldcode = { - exports: {} -}; -var hasRequiredFoldcode; -function requireFoldcode() { - if (hasRequiredFoldcode) return foldcode.exports; - hasRequiredFoldcode = 1; - (function (module2, exports2) { - (function (mod) { - mod(codemirror.requireCodemirror()); - })(function (CodeMirror) { - function doFold(cm, pos, options, force) { - if (options && options.call) { - var finder = options; - options = null; - } else { - var finder = getOption(cm, options, "rangeFinder"); - } - if (typeof pos == "number") pos = CodeMirror.Pos(pos, 0); - var minSize = getOption(cm, options, "minFoldSize"); - function getRange(allowFolded) { - var range2 = finder(cm, pos); - if (!range2 || range2.to.line - range2.from.line < minSize) return null; - if (force === "fold") return range2; - var marks = cm.findMarksAt(range2.from); - for (var i = 0; i < marks.length; ++i) { - if (marks[i].__isFold) { - if (!allowFolded) return null; - range2.cleared = true; - marks[i].clear(); - } - } - return range2; - } - var range = getRange(true); - if (getOption(cm, options, "scanUp")) while (!range && pos.line > cm.firstLine()) { - pos = CodeMirror.Pos(pos.line - 1, 0); - range = getRange(false); - } - if (!range || range.cleared || force === "unfold") return; - var myWidget = makeWidget(cm, options, range); - CodeMirror.on(myWidget, "mousedown", function (e) { - myRange.clear(); - CodeMirror.e_preventDefault(e); - }); - var myRange = cm.markText(range.from, range.to, { - replacedWith: myWidget, - clearOnEnter: getOption(cm, options, "clearOnEnter"), - __isFold: true - }); - myRange.on("clear", function (from, to) { - CodeMirror.signal(cm, "unfold", cm, from, to); - }); - CodeMirror.signal(cm, "fold", cm, range.from, range.to); - } - function makeWidget(cm, options, range) { - var widget = getOption(cm, options, "widget"); - if (typeof widget == "function") { - widget = widget(range.from, range.to); - } - if (typeof widget == "string") { - var text = document.createTextNode(widget); - widget = document.createElement("span"); - widget.appendChild(text); - widget.className = "CodeMirror-foldmarker"; - } else if (widget) { - widget = widget.cloneNode(true); - } - return widget; - } - CodeMirror.newFoldFunction = function (rangeFinder, widget) { - return function (cm, pos) { - doFold(cm, pos, { - rangeFinder, - widget - }); - }; - }; - CodeMirror.defineExtension("foldCode", function (pos, options, force) { - doFold(this, pos, options, force); - }); - CodeMirror.defineExtension("isFolded", function (pos) { - var marks = this.findMarksAt(pos); - for (var i = 0; i < marks.length; ++i) if (marks[i].__isFold) return true; - }); - CodeMirror.commands.toggleFold = function (cm) { - cm.foldCode(cm.getCursor()); - }; - CodeMirror.commands.fold = function (cm) { - cm.foldCode(cm.getCursor(), null, "fold"); - }; - CodeMirror.commands.unfold = function (cm) { - cm.foldCode(cm.getCursor(), { - scanUp: false - }, "unfold"); - }; - CodeMirror.commands.foldAll = function (cm) { - cm.operation(function () { - for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++) cm.foldCode(CodeMirror.Pos(i, 0), { - scanUp: false - }, "fold"); - }); - }; - CodeMirror.commands.unfoldAll = function (cm) { - cm.operation(function () { - for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++) cm.foldCode(CodeMirror.Pos(i, 0), { - scanUp: false - }, "unfold"); - }); - }; - CodeMirror.registerHelper("fold", "combine", function () { - var funcs = Array.prototype.slice.call(arguments, 0); - return function (cm, start) { - for (var i = 0; i < funcs.length; ++i) { - var found = funcs[i](cm, start); - if (found) return found; - } - }; - }); - CodeMirror.registerHelper("fold", "auto", function (cm, start) { - var helpers = cm.getHelpers(start, "fold"); - for (var i = 0; i < helpers.length; i++) { - var cur = helpers[i](cm, start); - if (cur) return cur; - } - }); - var defaultOptions = { - rangeFinder: CodeMirror.fold.auto, - widget: "↔", - minFoldSize: 0, - scanUp: false, - clearOnEnter: true - }; - CodeMirror.defineOption("foldOptions", null); - function getOption(cm, options, name) { - if (options && options[name] !== void 0) return options[name]; - var editorOptions = cm.options.foldOptions; - if (editorOptions && editorOptions[name] !== void 0) return editorOptions[name]; - return defaultOptions[name]; - } - CodeMirror.defineExtension("foldOption", function (options, name) { - return getOption(this, options, name); - }); - }); - })(); - return foldcode.exports; -} -(function (module2, exports2) { - (function (mod) { - mod(codemirror.requireCodemirror(), requireFoldcode()); - })(function (CodeMirror) { - CodeMirror.defineOption("foldGutter", false, function (cm, val, old) { - if (old && old != CodeMirror.Init) { - cm.clearGutter(cm.state.foldGutter.options.gutter); - cm.state.foldGutter = null; - cm.off("gutterClick", onGutterClick); - cm.off("changes", onChange); - cm.off("viewportChange", onViewportChange); - cm.off("fold", onFold); - cm.off("unfold", onFold); - cm.off("swapDoc", onChange); - } - if (val) { - cm.state.foldGutter = new State(parseOptions(val)); - updateInViewport(cm); - cm.on("gutterClick", onGutterClick); - cm.on("changes", onChange); - cm.on("viewportChange", onViewportChange); - cm.on("fold", onFold); - cm.on("unfold", onFold); - cm.on("swapDoc", onChange); - } - }); - var Pos = CodeMirror.Pos; - function State(options) { - this.options = options; - this.from = this.to = 0; - } - function parseOptions(opts) { - if (opts === true) opts = {}; - if (opts.gutter == null) opts.gutter = "CodeMirror-foldgutter"; - if (opts.indicatorOpen == null) opts.indicatorOpen = "CodeMirror-foldgutter-open"; - if (opts.indicatorFolded == null) opts.indicatorFolded = "CodeMirror-foldgutter-folded"; - return opts; - } - function isFolded(cm, line) { - var marks = cm.findMarks(Pos(line, 0), Pos(line + 1, 0)); - for (var i = 0; i < marks.length; ++i) { - if (marks[i].__isFold) { - var fromPos = marks[i].find(-1); - if (fromPos && fromPos.line === line) return marks[i]; - } - } - } - function marker(spec) { - if (typeof spec == "string") { - var elt = document.createElement("div"); - elt.className = spec + " CodeMirror-guttermarker-subtle"; - return elt; - } else { - return spec.cloneNode(true); - } - } - function updateFoldInfo(cm, from, to) { - var opts = cm.state.foldGutter.options, - cur = from - 1; - var minSize = cm.foldOption(opts, "minFoldSize"); - var func = cm.foldOption(opts, "rangeFinder"); - var clsFolded = typeof opts.indicatorFolded == "string" && classTest(opts.indicatorFolded); - var clsOpen = typeof opts.indicatorOpen == "string" && classTest(opts.indicatorOpen); - cm.eachLine(from, to, function (line) { - ++cur; - var mark = null; - var old = line.gutterMarkers; - if (old) old = old[opts.gutter]; - if (isFolded(cm, cur)) { - if (clsFolded && old && clsFolded.test(old.className)) return; - mark = marker(opts.indicatorFolded); - } else { - var pos = Pos(cur, 0); - var range = func && func(cm, pos); - if (range && range.to.line - range.from.line >= minSize) { - if (clsOpen && old && clsOpen.test(old.className)) return; - mark = marker(opts.indicatorOpen); - } - } - if (!mark && !old) return; - cm.setGutterMarker(line, opts.gutter, mark); - }); - } - function classTest(cls) { - return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*"); - } - function updateInViewport(cm) { - var vp = cm.getViewport(), - state = cm.state.foldGutter; - if (!state) return; - cm.operation(function () { - updateFoldInfo(cm, vp.from, vp.to); - }); - state.from = vp.from; - state.to = vp.to; - } - function onGutterClick(cm, line, gutter) { - var state = cm.state.foldGutter; - if (!state) return; - var opts = state.options; - if (gutter != opts.gutter) return; - var folded = isFolded(cm, line); - if (folded) folded.clear();else cm.foldCode(Pos(line, 0), opts); - } - function onChange(cm) { - var state = cm.state.foldGutter; - if (!state) return; - var opts = state.options; - state.from = state.to = 0; - clearTimeout(state.changeUpdate); - state.changeUpdate = setTimeout(function () { - updateInViewport(cm); - }, opts.foldOnChangeTimeSpan || 600); - } - function onViewportChange(cm) { - var state = cm.state.foldGutter; - if (!state) return; - var opts = state.options; - clearTimeout(state.changeUpdate); - state.changeUpdate = setTimeout(function () { - var vp = cm.getViewport(); - if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) { - updateInViewport(cm); - } else { - cm.operation(function () { - if (vp.from < state.from) { - updateFoldInfo(cm, vp.from, state.from); - state.from = vp.from; - } - if (vp.to > state.to) { - updateFoldInfo(cm, state.to, vp.to); - state.to = vp.to; - } - }); - } - }, opts.updateViewportTimeSpan || 400); - } - function onFold(cm, from) { - var state = cm.state.foldGutter; - if (!state) return; - var line = from.line; - if (line >= state.from && line < state.to) updateFoldInfo(cm, line, line + 1); - } - }); -})(); -var foldgutterExports = foldgutter$2.exports; -const foldgutter = /* @__PURE__ */codemirror.getDefaultExportFromCjs(foldgutterExports); -const foldgutter$1 = /* @__PURE__ */_mergeNamespaces({ - __proto__: null, - default: foldgutter -}, [foldgutterExports]); -exports.foldgutter = foldgutter$1; - -/***/ }), - -/***/ "../../graphiql-react/dist/forEachState.cjs.js": -/*!*****************************************************!*\ - !*** ../../graphiql-react/dist/forEachState.cjs.js ***! - \*****************************************************/ -/***/ (function(__unused_webpack_module, exports) { - - - -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]); - } -} -exports.forEachState = forEachState; - -/***/ }), - -/***/ "../../graphiql-react/dist/hint.cjs.js": -/*!*********************************************!*\ - !*** ../../graphiql-react/dist/hint.cjs.js ***! - \*********************************************/ +/***/ "../../codemirror-graphql/esm/hint.js": +/*!********************************************!*\ + !*** ../../codemirror-graphql/esm/hint.js ***! + \********************************************/ /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +"use strict"; -const codemirror = __webpack_require__(/*! ./codemirror.cjs.js */ "../../graphiql-react/dist/codemirror.cjs.js"); -__webpack_require__(/*! ./show-hint.cjs.js */ "../../graphiql-react/dist/show-hint.cjs.js"); -const graphqlLanguageService = __webpack_require__(/*! graphql-language-service */ "../../graphql-language-service/esm/index.js"); -codemirror.CodeMirror.registerHelper("hint", "graphql", (editor, options) => { +var _codemirror = _interopRequireDefault(__webpack_require__(/*! codemirror */ "../../../node_modules/codemirror/lib/codemirror.js")); +__webpack_require__(/*! codemirror/addon/hint/show-hint.js */ "../../../node_modules/codemirror/addon/hint/show-hint.js"); +var _graphqlLanguageService = __webpack_require__(/*! graphql-language-service */ "../../graphql-language-service/esm/index.js"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +_codemirror.default.registerHelper('hint', 'graphql', (editor, options) => { const { schema, externalFragments, @@ -68130,8 +73292,8 @@ codemirror.CodeMirror.registerHelper("hint", "graphql", (editor, options) => { const cur = editor.getCursor(); const token = editor.getTokenAt(cur); const tokenStart = token.type !== null && /"|\w/.test(token.string[0]) ? token.start : token.end; - const position = new graphqlLanguageService.Position(cur.line, tokenStart); - const rawResults = graphqlLanguageService.getAutocompleteSuggestions(schema, editor.getValue(), position, token, externalFragments, autocompleteOptions); + const position = new _graphqlLanguageService.Position(cur.line, tokenStart); + const rawResults = (0, _graphqlLanguageService.getAutocompleteSuggestions)(schema, editor.getValue(), position, token, externalFragments, autocompleteOptions); const results = { list: rawResults.map(item => { var _a; @@ -68153,26 +73315,611 @@ codemirror.CodeMirror.registerHelper("hint", "graphql", (editor, options) => { } }; if ((results === null || results === void 0 ? void 0 : results.list) && results.list.length > 0) { - results.from = codemirror.CodeMirror.Pos(results.from.line, results.from.ch); - results.to = codemirror.CodeMirror.Pos(results.to.line, results.to.ch); - codemirror.CodeMirror.signal(editor, "hasCompletion", editor, results, token); + results.from = _codemirror.default.Pos(results.from.line, results.from.ch); + results.to = _codemirror.default.Pos(results.to.line, results.to.ch); + _codemirror.default.signal(editor, 'hasCompletion', editor, results, token); } return results; }); /***/ }), -/***/ "../../graphiql-react/dist/hint.cjs2.js": -/*!**********************************************!*\ - !*** ../../graphiql-react/dist/hint.cjs2.js ***! - \**********************************************/ +/***/ "../../codemirror-graphql/esm/info.js": +/*!********************************************!*\ + !*** ../../codemirror-graphql/esm/info.js ***! + \********************************************/ /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +"use strict"; -const codemirror = __webpack_require__(/*! ./codemirror.cjs.js */ "../../graphiql-react/dist/codemirror.cjs.js"); -const graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs"); -const forEachState = __webpack_require__(/*! ./forEachState.cjs.js */ "../../graphiql-react/dist/forEachState.cjs.js"); +var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs"); +var _codemirror = _interopRequireDefault(__webpack_require__(/*! codemirror */ "../../../node_modules/codemirror/lib/codemirror.js")); +var _getTypeInfo = _interopRequireDefault(__webpack_require__(/*! ./utils/getTypeInfo */ "../../codemirror-graphql/esm/utils/getTypeInfo.js")); +var _SchemaReference = __webpack_require__(/*! ./utils/SchemaReference */ "../../codemirror-graphql/esm/utils/SchemaReference.js"); +__webpack_require__(/*! ./utils/info-addon */ "../../codemirror-graphql/esm/utils/info-addon.js"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +_codemirror.default.registerHelper('info', 'graphql', (token, options) => { + var _a; + if (!options.schema || !token.state) { + return; + } + const { + kind, + step + } = token.state; + const typeInfo = (0, _getTypeInfo.default)(options.schema, token.state); + if (kind === 'Field' && step === 0 && typeInfo.fieldDef || kind === 'AliasedField' && step === 2 && typeInfo.fieldDef || kind === 'ObjectField' && step === 0 && typeInfo.fieldDef) { + const header = document.createElement('div'); + header.className = 'CodeMirror-info-header'; + renderField(header, typeInfo, options); + const into = document.createElement('div'); + into.append(header); + renderDescription(into, options, typeInfo.fieldDef); + return into; + } + if (kind === 'Directive' && step === 1 && typeInfo.directiveDef) { + const header = document.createElement('div'); + header.className = 'CodeMirror-info-header'; + renderDirective(header, typeInfo, options); + const into = document.createElement('div'); + into.append(header); + renderDescription(into, options, typeInfo.directiveDef); + return into; + } + if (kind === 'Argument' && step === 0 && typeInfo.argDef) { + const header = document.createElement('div'); + header.className = 'CodeMirror-info-header'; + renderArg(header, typeInfo, options); + const into = document.createElement('div'); + into.append(header); + renderDescription(into, options, typeInfo.argDef); + return into; + } + if (kind === 'EnumValue' && ((_a = typeInfo.enumValue) === null || _a === void 0 ? void 0 : _a.description)) { + const header = document.createElement('div'); + header.className = 'CodeMirror-info-header'; + renderEnumValue(header, typeInfo, options); + const into = document.createElement('div'); + into.append(header); + renderDescription(into, options, typeInfo.enumValue); + return into; + } + if (kind === 'NamedType' && typeInfo.type && typeInfo.type.description) { + const header = document.createElement('div'); + header.className = 'CodeMirror-info-header'; + renderType(header, typeInfo, options, typeInfo.type); + const into = document.createElement('div'); + into.append(header); + renderDescription(into, options, typeInfo.type); + return into; + } +}); +function renderField(into, typeInfo, options) { + renderQualifiedField(into, typeInfo, options); + renderTypeAnnotation(into, typeInfo, options, typeInfo.type); +} +function renderQualifiedField(into, typeInfo, options) { + var _a; + const fieldName = ((_a = typeInfo.fieldDef) === null || _a === void 0 ? void 0 : _a.name) || ''; + text(into, fieldName, 'field-name', options, (0, _SchemaReference.getFieldReference)(typeInfo)); +} +function renderDirective(into, typeInfo, options) { + var _a; + const name = '@' + (((_a = typeInfo.directiveDef) === null || _a === void 0 ? void 0 : _a.name) || ''); + text(into, name, 'directive-name', options, (0, _SchemaReference.getDirectiveReference)(typeInfo)); +} +function renderArg(into, typeInfo, options) { + var _a; + const name = ((_a = typeInfo.argDef) === null || _a === void 0 ? void 0 : _a.name) || ''; + text(into, name, 'arg-name', options, (0, _SchemaReference.getArgumentReference)(typeInfo)); + renderTypeAnnotation(into, typeInfo, options, typeInfo.inputType); +} +function renderEnumValue(into, typeInfo, options) { + var _a; + const name = ((_a = typeInfo.enumValue) === null || _a === void 0 ? void 0 : _a.name) || ''; + renderType(into, typeInfo, options, typeInfo.inputType); + text(into, '.'); + text(into, name, 'enum-value', options, (0, _SchemaReference.getEnumValueReference)(typeInfo)); +} +function renderTypeAnnotation(into, typeInfo, options, t) { + const typeSpan = document.createElement('span'); + typeSpan.className = 'type-name-pill'; + if (t instanceof _graphql.GraphQLNonNull) { + renderType(typeSpan, typeInfo, options, t.ofType); + text(typeSpan, '!'); + } else if (t instanceof _graphql.GraphQLList) { + text(typeSpan, '['); + renderType(typeSpan, typeInfo, options, t.ofType); + text(typeSpan, ']'); + } else { + text(typeSpan, (t === null || t === void 0 ? void 0 : t.name) || '', 'type-name', options, (0, _SchemaReference.getTypeReference)(typeInfo, t)); + } + into.append(typeSpan); +} +function renderType(into, typeInfo, options, t) { + 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 === null || t === void 0 ? void 0 : t.name) || '', 'type-name', options, (0, _SchemaReference.getTypeReference)(typeInfo, t)); + } +} +function renderDescription(into, options, def) { + const { + description + } = def; + if (description) { + const descriptionDiv = document.createElement('div'); + descriptionDiv.className = 'info-description'; + if (options.renderDescription) { + descriptionDiv.innerHTML = options.renderDescription(description); + } else { + descriptionDiv.append(document.createTextNode(description)); + } + into.append(descriptionDiv); + } + renderDeprecation(into, options, def); +} +function renderDeprecation(into, options, def) { + const reason = def.deprecationReason; + if (reason) { + const deprecationDiv = document.createElement('div'); + deprecationDiv.className = 'info-deprecation'; + into.append(deprecationDiv); + const label = document.createElement('span'); + label.className = 'info-deprecation-label'; + label.append(document.createTextNode('Deprecated')); + deprecationDiv.append(label); + const reasonDiv = document.createElement('div'); + reasonDiv.className = 'info-deprecation-reason'; + if (options.renderDescription) { + reasonDiv.innerHTML = options.renderDescription(reason); + } else { + reasonDiv.append(document.createTextNode(reason)); + } + deprecationDiv.append(reasonDiv); + } +} +function text(into, content, className = '', options = { + onClick: null +}, ref = null) { + if (className) { + const { + onClick + } = options; + let node; + if (onClick) { + node = document.createElement('a'); + node.href = 'javascript:void 0'; + node.addEventListener('click', e => { + e.preventDefault(); + onClick(ref, e); + }); + } else { + node = document.createElement('span'); + } + node.className = className; + node.append(document.createTextNode(content)); + into.append(node); + } else { + into.append(document.createTextNode(content)); + } +} + +/***/ }), + +/***/ "../../codemirror-graphql/esm/jump.js": +/*!********************************************!*\ + !*** ../../codemirror-graphql/esm/jump.js ***! + \********************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _codemirror = _interopRequireDefault(__webpack_require__(/*! codemirror */ "../../../node_modules/codemirror/lib/codemirror.js")); +var _getTypeInfo = _interopRequireDefault(__webpack_require__(/*! ./utils/getTypeInfo */ "../../codemirror-graphql/esm/utils/getTypeInfo.js")); +var _SchemaReference = __webpack_require__(/*! ./utils/SchemaReference */ "../../codemirror-graphql/esm/utils/SchemaReference.js"); +__webpack_require__(/*! ./utils/jump-addon */ "../../codemirror-graphql/esm/utils/jump-addon.js"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +_codemirror.default.registerHelper('jump', 'graphql', (token, options) => { + if (!options.schema || !options.onClick || !token.state) { + return; + } + const { + state + } = token; + const { + kind, + step + } = state; + const typeInfo = (0, _getTypeInfo.default)(options.schema, state); + if (kind === 'Field' && step === 0 && typeInfo.fieldDef || kind === 'AliasedField' && step === 2 && typeInfo.fieldDef) { + return (0, _SchemaReference.getFieldReference)(typeInfo); + } + if (kind === 'Directive' && step === 1 && typeInfo.directiveDef) { + return (0, _SchemaReference.getDirectiveReference)(typeInfo); + } + if (kind === 'Argument' && step === 0 && typeInfo.argDef) { + return (0, _SchemaReference.getArgumentReference)(typeInfo); + } + if (kind === 'EnumValue' && typeInfo.enumValue) { + return (0, _SchemaReference.getEnumValueReference)(typeInfo); + } + if (kind === 'NamedType' && typeInfo.type) { + return (0, _SchemaReference.getTypeReference)(typeInfo); + } +}); + +/***/ }), + +/***/ "../../codemirror-graphql/esm/lint.js": +/*!********************************************!*\ + !*** ../../codemirror-graphql/esm/lint.js ***! + \********************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _codemirror = _interopRequireDefault(__webpack_require__(/*! codemirror */ "../../../node_modules/codemirror/lib/codemirror.js")); +var _graphqlLanguageService = __webpack_require__(/*! graphql-language-service */ "../../graphql-language-service/esm/index.js"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +const SEVERITY = ['error', 'warning', 'information', 'hint']; +const TYPE = { + 'GraphQL: Validation': 'validation', + 'GraphQL: Deprecation': 'deprecation', + 'GraphQL: Syntax': 'syntax' +}; +_codemirror.default.registerHelper('lint', 'graphql', (text, options) => { + const { + schema, + validationRules, + externalFragments + } = options; + const rawResults = (0, _graphqlLanguageService.getDiagnostics)(text, schema, validationRules, undefined, externalFragments); + const results = rawResults.map(error => ({ + message: error.message, + severity: error.severity ? SEVERITY[error.severity - 1] : SEVERITY[0], + type: error.source ? TYPE[error.source] : undefined, + from: _codemirror.default.Pos(error.range.start.line, error.range.start.character), + to: _codemirror.default.Pos(error.range.end.line, error.range.end.character) + })); + return results; +}); + +/***/ }), + +/***/ "../../codemirror-graphql/esm/mode.js": +/*!********************************************!*\ + !*** ../../codemirror-graphql/esm/mode.js ***! + \********************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _codemirror = _interopRequireDefault(__webpack_require__(/*! codemirror */ "../../../node_modules/codemirror/lib/codemirror.js")); +var _modeFactory = _interopRequireDefault(__webpack_require__(/*! ./utils/mode-factory */ "../../codemirror-graphql/esm/utils/mode-factory.js")); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +_codemirror.default.defineMode('graphql', _modeFactory.default); + +/***/ }), + +/***/ "../../codemirror-graphql/esm/results/mode.js": +/*!****************************************************!*\ + !*** ../../codemirror-graphql/esm/results/mode.js ***! + \****************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _codemirror = _interopRequireDefault(__webpack_require__(/*! codemirror */ "../../../node_modules/codemirror/lib/codemirror.js")); +var _graphqlLanguageService = __webpack_require__(/*! graphql-language-service */ "../../graphql-language-service/esm/index.js"); +var _modeIndent = _interopRequireDefault(__webpack_require__(/*! ../utils/mode-indent */ "../../codemirror-graphql/esm/utils/mode-indent.js")); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +_codemirror.default.defineMode('graphql-results', config => { + const parser = (0, _graphqlLanguageService.onlineParser)({ + eatWhitespace: stream => stream.eatSpace(), + lexRules: LexRules, + parseRules: ParseRules, + editorConfig: { + tabSize: config.tabSize + } + }); + return { + config, + startState: parser.startState, + token: parser.token, + indent: _modeIndent.default, + electricInput: /^\s*[}\]]/, + fold: 'brace', + closeBrackets: { + pairs: '[]{}""', + explode: '[]{}' + } + }; +}); +const LexRules = { + Punctuation: /^\[|]|\{|\}|:|,/, + Number: /^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/, + String: /^"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?/, + Keyword: /^true|false|null/ +}; +const ParseRules = { + Document: [(0, _graphqlLanguageService.p)('{'), (0, _graphqlLanguageService.list)('Entry', (0, _graphqlLanguageService.p)(',')), (0, _graphqlLanguageService.p)('}')], + Entry: [(0, _graphqlLanguageService.t)('String', 'def'), (0, _graphqlLanguageService.p)(':'), 'Value'], + Value(token) { + switch (token.kind) { + case 'Number': + return 'NumberValue'; + case 'String': + return 'StringValue'; + case 'Punctuation': + switch (token.value) { + case '[': + return 'ListValue'; + case '{': + return 'ObjectValue'; + } + return null; + case 'Keyword': + switch (token.value) { + case 'true': + case 'false': + return 'BooleanValue'; + case 'null': + return 'NullValue'; + } + return null; + } + }, + NumberValue: [(0, _graphqlLanguageService.t)('Number', 'number')], + StringValue: [(0, _graphqlLanguageService.t)('String', 'string')], + BooleanValue: [(0, _graphqlLanguageService.t)('Keyword', 'builtin')], + NullValue: [(0, _graphqlLanguageService.t)('Keyword', 'keyword')], + ListValue: [(0, _graphqlLanguageService.p)('['), (0, _graphqlLanguageService.list)('Value', (0, _graphqlLanguageService.p)(',')), (0, _graphqlLanguageService.p)(']')], + ObjectValue: [(0, _graphqlLanguageService.p)('{'), (0, _graphqlLanguageService.list)('ObjectField', (0, _graphqlLanguageService.p)(',')), (0, _graphqlLanguageService.p)('}')], + ObjectField: [(0, _graphqlLanguageService.t)('String', 'property'), (0, _graphqlLanguageService.p)(':'), 'Value'] +}; + +/***/ }), + +/***/ "../../codemirror-graphql/esm/utils/SchemaReference.js": +/*!*************************************************************!*\ + !*** ../../codemirror-graphql/esm/utils/SchemaReference.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.getArgumentReference = getArgumentReference; +exports.getDirectiveReference = getDirectiveReference; +exports.getEnumValueReference = getEnumValueReference; +exports.getFieldReference = getFieldReference; +exports.getTypeReference = getTypeReference; +var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs"); +function getFieldReference(typeInfo) { + return { + kind: 'Field', + schema: typeInfo.schema, + field: typeInfo.fieldDef, + type: isMetaField(typeInfo.fieldDef) ? null : typeInfo.parentType + }; +} +function getDirectiveReference(typeInfo) { + return { + kind: 'Directive', + schema: typeInfo.schema, + directive: typeInfo.directiveDef + }; +} +function getArgumentReference(typeInfo) { + return typeInfo.directiveDef ? { + kind: 'Argument', + schema: typeInfo.schema, + argument: typeInfo.argDef, + directive: typeInfo.directiveDef + } : { + kind: 'Argument', + schema: typeInfo.schema, + argument: typeInfo.argDef, + field: typeInfo.fieldDef, + type: isMetaField(typeInfo.fieldDef) ? null : typeInfo.parentType + }; +} +function getEnumValueReference(typeInfo) { + return { + kind: 'EnumValue', + value: typeInfo.enumValue || undefined, + type: typeInfo.inputType ? (0, _graphql.getNamedType)(typeInfo.inputType) : undefined + }; +} +function getTypeReference(typeInfo, type) { + return { + kind: 'Type', + schema: typeInfo.schema, + type: type || typeInfo.type + }; +} +function isMetaField(fieldDef) { + return fieldDef.name.slice(0, 2) === '__'; +} + +/***/ }), + +/***/ "../../codemirror-graphql/esm/utils/forEachState.js": +/*!**********************************************************!*\ + !*** ../../codemirror-graphql/esm/utils/forEachState.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = forEachState; +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]); + } +} + +/***/ }), + +/***/ "../../codemirror-graphql/esm/utils/getTypeInfo.js": +/*!*********************************************************!*\ + !*** ../../codemirror-graphql/esm/utils/getTypeInfo.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = getTypeInfo; +var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs"); +var _forEachState = _interopRequireDefault(__webpack_require__(/*! ./forEachState */ "../../codemirror-graphql/esm/utils/forEachState.js")); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +function getTypeInfo(schema, tokenState) { + const info = { + schema, + type: null, + parentType: null, + inputType: null, + directiveDef: null, + fieldDef: null, + argDef: null, + argDefs: null, + objectFieldDefs: null + }; + (0, _forEachState.default)(tokenState, state => { + var _a, _b; + switch (state.kind) { + case 'Query': + case 'ShortQuery': + info.type = schema.getQueryType(); + break; + case 'Mutation': + info.type = schema.getMutationType(); + break; + case 'Subscription': + info.type = schema.getSubscriptionType(); + break; + case 'InlineFragment': + case 'FragmentDefinition': + if (state.type) { + info.type = schema.getType(state.type); + } + break; + case 'Field': + case 'AliasedField': + info.fieldDef = info.type && state.name ? getFieldDef(schema, info.parentType, state.name) : null; + info.type = (_a = info.fieldDef) === null || _a === void 0 ? void 0 : _a.type; + break; + case 'SelectionSet': + info.parentType = info.type ? (0, _graphql.getNamedType)(info.type) : null; + break; + case 'Directive': + info.directiveDef = state.name ? schema.getDirective(state.name) : null; + break; + case 'Arguments': + const parentDef = state.prevState ? state.prevState.kind === 'Field' ? info.fieldDef : state.prevState.kind === 'Directive' ? info.directiveDef : state.prevState.kind === 'AliasedField' ? state.prevState.name && getFieldDef(schema, info.parentType, state.prevState.name) : null : null; + info.argDefs = parentDef ? parentDef.args : null; + break; + case 'Argument': + info.argDef = null; + if (info.argDefs) { + for (let i = 0; i < info.argDefs.length; i++) { + if (info.argDefs[i].name === state.name) { + info.argDef = info.argDefs[i]; + break; + } + } + } + info.inputType = (_b = info.argDef) === null || _b === void 0 ? void 0 : _b.type; + break; + case 'EnumValue': + const enumType = info.inputType ? (0, _graphql.getNamedType)(info.inputType) : null; + info.enumValue = enumType instanceof _graphql.GraphQLEnumType ? find(enumType.getValues(), val => val.value === state.name) : null; + break; + case 'ListValue': + const nullableType = info.inputType ? (0, _graphql.getNullableType)(info.inputType) : null; + info.inputType = nullableType instanceof _graphql.GraphQLList ? nullableType.ofType : null; + break; + case 'ObjectValue': + const objectType = info.inputType ? (0, _graphql.getNamedType)(info.inputType) : null; + info.objectFieldDefs = objectType instanceof _graphql.GraphQLInputObjectType ? objectType.getFields() : null; + break; + case 'ObjectField': + const objectField = state.name && info.objectFieldDefs ? info.objectFieldDefs[state.name] : null; + info.inputType = objectField === null || objectField === void 0 ? void 0 : objectField.type; + info.fieldDef = objectField; + break; + case 'NamedType': + info.type = state.name ? schema.getType(state.name) : null; + break; + } + }); + return info; +} +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 (type && type.getFields) { + return type.getFields()[fieldName]; + } +} +function find(array, predicate) { + for (let i = 0; i < array.length; i++) { + if (predicate(array[i])) { + return array[i]; + } + } +} + +/***/ }), + +/***/ "../../codemirror-graphql/esm/utils/hintList.js": +/*!******************************************************!*\ + !*** ../../codemirror-graphql/esm/utils/hintList.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = hintList; function hintList(cursor, token, list) { const hints = filterAndSortList(list, normalizeText(token.string)); if (!hints) { @@ -68208,7 +73955,7 @@ function filterNonEmpty(array, predicate) { return filtered.length === 0 ? array : filtered; } function normalizeText(text) { - return text.toLowerCase().replaceAll(/\W/g, ""); + return text.toLowerCase().replaceAll(/\W/g, ''); } function getProximity(suggestion, text) { let proximity = lexicalDistance(text, suggestion); @@ -68241,26 +73988,668 @@ function lexicalDistance(a, b) { } return d[aLength][bLength]; } -codemirror.CodeMirror.registerHelper("hint", "graphql-variables", (editor, options) => { + +/***/ }), + +/***/ "../../codemirror-graphql/esm/utils/info-addon.js": +/*!********************************************************!*\ + !*** ../../codemirror-graphql/esm/utils/info-addon.js ***! + \********************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _codemirror = _interopRequireDefault(__webpack_require__(/*! codemirror */ "../../../node_modules/codemirror/lib/codemirror.js")); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +_codemirror.default.defineOption('info', false, (cm, options, old) => { + if (old && old !== _codemirror.default.Init) { + const oldOnMouseOver = cm.state.info.onMouseOver; + _codemirror.default.off(cm.getWrapperElement(), 'mouseover', oldOnMouseOver); + clearTimeout(cm.state.info.hoverTimeout); + delete cm.state.info; + } + if (options) { + const state = cm.state.info = createState(options); + state.onMouseOver = onMouseOver.bind(null, cm); + _codemirror.default.on(cm.getWrapperElement(), 'mouseover', state.onMouseOver); + } +}); +function createState(options) { + return { + options: options instanceof Function ? { + render: options + } : options === true ? {} : options + }; +} +function getHoverTime(cm) { + const { + options + } = cm.state.info; + return (options === null || options === void 0 ? void 0 : options.hoverTime) || 500; +} +function onMouseOver(cm, e) { + const state = cm.state.info; + const target = e.target || e.srcElement; + if (!(target instanceof HTMLElement)) { + return; + } + if (target.nodeName !== 'SPAN' || state.hoverTimeout !== undefined) { + return; + } + const box = target.getBoundingClientRect(); + const onMouseMove = function () { + clearTimeout(state.hoverTimeout); + state.hoverTimeout = setTimeout(onHover, hoverTime); + }; + const onMouseOut = function () { + _codemirror.default.off(document, 'mousemove', onMouseMove); + _codemirror.default.off(cm.getWrapperElement(), 'mouseout', onMouseOut); + clearTimeout(state.hoverTimeout); + state.hoverTimeout = undefined; + }; + const onHover = function () { + _codemirror.default.off(document, 'mousemove', onMouseMove); + _codemirror.default.off(cm.getWrapperElement(), 'mouseout', onMouseOut); + state.hoverTimeout = undefined; + onMouseHover(cm, box); + }; + const hoverTime = getHoverTime(cm); + state.hoverTimeout = setTimeout(onHover, hoverTime); + _codemirror.default.on(document, 'mousemove', onMouseMove); + _codemirror.default.on(cm.getWrapperElement(), 'mouseout', onMouseOut); +} +function onMouseHover(cm, box) { + const pos = cm.coordsChar({ + left: (box.left + box.right) / 2, + top: (box.top + box.bottom) / 2 + }, 'window'); + const state = cm.state.info; + const { + options + } = state; + const render = options.render || cm.getHelper(pos, 'info'); + if (render) { + const token = cm.getTokenAt(pos, true); + if (token) { + const info = render(token, options, cm, pos); + if (info) { + showPopup(cm, box, info); + } + } + } +} +function showPopup(cm, box, info) { + const popup = document.createElement('div'); + popup.className = 'CodeMirror-info'; + popup.append(info); + document.body.append(popup); + const popupBox = popup.getBoundingClientRect(); + const popupStyle = window.getComputedStyle(popup); + const popupWidth = popupBox.right - popupBox.left + parseFloat(popupStyle.marginLeft) + parseFloat(popupStyle.marginRight); + const popupHeight = popupBox.bottom - popupBox.top + parseFloat(popupStyle.marginTop) + parseFloat(popupStyle.marginBottom); + let topPos = box.bottom; + if (popupHeight > window.innerHeight - box.bottom - 15 && box.top > window.innerHeight - box.bottom) { + topPos = box.top - popupHeight; + } + if (topPos < 0) { + topPos = box.bottom; + } + let leftPos = Math.max(0, window.innerWidth - popupWidth - 15); + if (leftPos > box.left) { + leftPos = box.left; + } + popup.style.opacity = '1'; + popup.style.top = topPos + 'px'; + popup.style.left = leftPos + 'px'; + let popupTimeout; + const onMouseOverPopup = function () { + clearTimeout(popupTimeout); + }; + const onMouseOut = function () { + clearTimeout(popupTimeout); + popupTimeout = setTimeout(hidePopup, 200); + }; + const hidePopup = function () { + _codemirror.default.off(popup, 'mouseover', onMouseOverPopup); + _codemirror.default.off(popup, 'mouseout', onMouseOut); + _codemirror.default.off(cm.getWrapperElement(), 'mouseout', onMouseOut); + if (popup.style.opacity) { + popup.style.opacity = '0'; + setTimeout(() => { + if (popup.parentNode) { + popup.remove(); + } + }, 600); + } else if (popup.parentNode) { + popup.remove(); + } + }; + _codemirror.default.on(popup, 'mouseover', onMouseOverPopup); + _codemirror.default.on(popup, 'mouseout', onMouseOut); + _codemirror.default.on(cm.getWrapperElement(), 'mouseout', onMouseOut); +} + +/***/ }), + +/***/ "../../codemirror-graphql/esm/utils/jsonParse.js": +/*!*******************************************************!*\ + !*** ../../codemirror-graphql/esm/utils/jsonParse.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.JSONSyntaxError = void 0; +exports["default"] = jsonParse; +function jsonParse(str) { + string = str; + strLen = str.length; + start = end = lastEnd = -1; + ch(); + lex(); + const ast = parseObj(); + expect('EOF'); + return ast; +} +let string; +let strLen; +let start; +let end; +let lastEnd; +let code; +let kind; +function parseObj() { + const nodeStart = start; + const members = []; + expect('{'); + if (!skip('}')) { + do { + members.push(parseMember()); + } while (skip(',')); + expect('}'); + } + return { + kind: 'Object', + start: nodeStart, + end: lastEnd, + members + }; +} +function parseMember() { + const nodeStart = start; + const key = kind === 'String' ? curToken() : null; + expect('String'); + expect(':'); + const value = parseVal(); + return { + kind: 'Member', + start: nodeStart, + end: lastEnd, + key, + value + }; +} +function parseArr() { + const nodeStart = start; + const values = []; + expect('['); + if (!skip(']')) { + do { + values.push(parseVal()); + } while (skip(',')); + expect(']'); + } + return { + kind: 'Array', + start: nodeStart, + end: lastEnd, + values + }; +} +function parseVal() { + switch (kind) { + case '[': + return parseArr(); + case '{': + return parseObj(); + case 'String': + case 'Number': + case 'Boolean': + case 'Null': + const token = curToken(); + lex(); + return token; + } + expect('Value'); +} +function curToken() { + return { + kind, + start, + end, + value: JSON.parse(string.slice(start, end)) + }; +} +function expect(str) { + if (kind === str) { + lex(); + return; + } + let found; + if (kind === 'EOF') { + found = '[end of file]'; + } else if (end - start > 1) { + found = '`' + string.slice(start, end) + '`'; + } else { + const match = string.slice(start).match(/^.+?\b/); + found = '`' + (match ? match[0] : string[start]) + '`'; + } + throw syntaxError(`Expected ${str} but found ${found}.`); +} +class JSONSyntaxError extends Error { + constructor(message, position) { + super(message); + this.position = position; + } +} +exports.JSONSyntaxError = JSONSyntaxError; +function syntaxError(message) { + return new JSONSyntaxError(message, { + start, + end + }); +} +function skip(k) { + if (kind === k) { + lex(); + return true; + } +} +function ch() { + if (end < strLen) { + end++; + code = end === strLen ? 0 : string.charCodeAt(end); + } + return code; +} +function lex() { + lastEnd = end; + while (code === 9 || code === 10 || code === 13 || code === 32) { + ch(); + } + if (code === 0) { + kind = 'EOF'; + return; + } + start = end; + switch (code) { + case 34: + kind = 'String'; + return readString(); + case 45: + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + kind = 'Number'; + return readNumber(); + case 102: + if (string.slice(start, start + 5) !== 'false') { + break; + } + end += 4; + ch(); + kind = 'Boolean'; + return; + case 110: + if (string.slice(start, start + 4) !== 'null') { + break; + } + end += 3; + ch(); + kind = 'Null'; + return; + case 116: + if (string.slice(start, start + 4) !== 'true') { + break; + } + end += 3; + ch(); + kind = 'Boolean'; + return; + } + kind = string[start]; + ch(); +} +function readString() { + ch(); + while (code !== 34 && code > 31) { + if (code === 92) { + code = ch(); + switch (code) { + case 34: + case 47: + case 92: + case 98: + case 102: + case 110: + case 114: + case 116: + ch(); + break; + case 117: + ch(); + readHex(); + readHex(); + readHex(); + readHex(); + break; + default: + throw syntaxError('Bad character escape sequence.'); + } + } else if (end === strLen) { + throw syntaxError('Unterminated string.'); + } else { + ch(); + } + } + if (code === 34) { + ch(); + return; + } + throw syntaxError('Unterminated string.'); +} +function readHex() { + if (code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102) { + return ch(); + } + throw syntaxError('Expected hexadecimal digit.'); +} +function readNumber() { + if (code === 45) { + ch(); + } + if (code === 48) { + ch(); + } else { + readDigits(); + } + if (code === 46) { + ch(); + readDigits(); + } + if (code === 69 || code === 101) { + code = ch(); + if (code === 43 || code === 45) { + ch(); + } + readDigits(); + } +} +function readDigits() { + if (code < 48 || code > 57) { + throw syntaxError('Expected decimal digit.'); + } + do { + ch(); + } while (code >= 48 && code <= 57); +} + +/***/ }), + +/***/ "../../codemirror-graphql/esm/utils/jump-addon.js": +/*!********************************************************!*\ + !*** ../../codemirror-graphql/esm/utils/jump-addon.js ***! + \********************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _codemirror = _interopRequireDefault(__webpack_require__(/*! codemirror */ "../../../node_modules/codemirror/lib/codemirror.js")); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +_codemirror.default.defineOption('jump', false, (cm, options, old) => { + if (old && old !== _codemirror.default.Init) { + const oldOnMouseOver = cm.state.jump.onMouseOver; + _codemirror.default.off(cm.getWrapperElement(), 'mouseover', oldOnMouseOver); + const oldOnMouseOut = cm.state.jump.onMouseOut; + _codemirror.default.off(cm.getWrapperElement(), 'mouseout', oldOnMouseOut); + _codemirror.default.off(document, 'keydown', cm.state.jump.onKeyDown); + delete cm.state.jump; + } + if (options) { + const state = cm.state.jump = { + options, + onMouseOver: onMouseOver.bind(null, cm), + onMouseOut: onMouseOut.bind(null, cm), + onKeyDown: onKeyDown.bind(null, cm) + }; + _codemirror.default.on(cm.getWrapperElement(), 'mouseover', state.onMouseOver); + _codemirror.default.on(cm.getWrapperElement(), 'mouseout', state.onMouseOut); + _codemirror.default.on(document, 'keydown', state.onKeyDown); + } +}); +function onMouseOver(cm, event) { + const target = event.target || event.srcElement; + if (!(target instanceof HTMLElement)) { + return; + } + if ((target === null || target === void 0 ? void 0 : target.nodeName) !== 'SPAN') { + return; + } + const box = target.getBoundingClientRect(); + const cursor = { + left: (box.left + box.right) / 2, + top: (box.top + box.bottom) / 2 + }; + cm.state.jump.cursor = cursor; + if (cm.state.jump.isHoldingModifier) { + enableJumpMode(cm); + } +} +function onMouseOut(cm) { + if (!cm.state.jump.isHoldingModifier && cm.state.jump.cursor) { + cm.state.jump.cursor = null; + return; + } + if (cm.state.jump.isHoldingModifier && cm.state.jump.marker) { + disableJumpMode(cm); + } +} +function onKeyDown(cm, event) { + if (cm.state.jump.isHoldingModifier || !isJumpModifier(event.key)) { + return; + } + cm.state.jump.isHoldingModifier = true; + if (cm.state.jump.cursor) { + enableJumpMode(cm); + } + const onKeyUp = upEvent => { + if (upEvent.code !== event.code) { + return; + } + cm.state.jump.isHoldingModifier = false; + if (cm.state.jump.marker) { + disableJumpMode(cm); + } + _codemirror.default.off(document, 'keyup', onKeyUp); + _codemirror.default.off(document, 'click', onClick); + cm.off('mousedown', onMouseDown); + }; + const onClick = clickEvent => { + const { + destination, + options + } = cm.state.jump; + if (destination) { + options.onClick(destination, clickEvent); + } + }; + const onMouseDown = (_, downEvent) => { + if (cm.state.jump.destination) { + downEvent.codemirrorIgnore = true; + } + }; + _codemirror.default.on(document, 'keyup', onKeyUp); + _codemirror.default.on(document, 'click', onClick); + cm.on('mousedown', onMouseDown); +} +const isMac = typeof navigator !== 'undefined' && navigator.userAgent.includes('Mac'); +function isJumpModifier(key) { + return key === (isMac ? 'Meta' : 'Control'); +} +function enableJumpMode(cm) { + if (cm.state.jump.marker) { + return; + } + const { + cursor, + options + } = cm.state.jump; + const pos = cm.coordsChar(cursor); + const token = cm.getTokenAt(pos, true); + const getDestination = options.getDestination || cm.getHelper(pos, 'jump'); + if (getDestination) { + const destination = getDestination(token, options, cm); + if (destination) { + const marker = cm.markText({ + line: pos.line, + ch: token.start + }, { + line: pos.line, + ch: token.end + }, { + className: 'CodeMirror-jump-token' + }); + cm.state.jump.marker = marker; + cm.state.jump.destination = destination; + } + } +} +function disableJumpMode(cm) { + const { + marker + } = cm.state.jump; + cm.state.jump.marker = null; + cm.state.jump.destination = null; + marker.clear(); +} + +/***/ }), + +/***/ "../../codemirror-graphql/esm/utils/mode-factory.js": +/*!**********************************************************!*\ + !*** ../../codemirror-graphql/esm/utils/mode-factory.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _graphqlLanguageService = __webpack_require__(/*! graphql-language-service */ "../../graphql-language-service/esm/index.js"); +var _modeIndent = _interopRequireDefault(__webpack_require__(/*! ./mode-indent */ "../../codemirror-graphql/esm/utils/mode-indent.js")); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +const graphqlModeFactory = config => { + const parser = (0, _graphqlLanguageService.onlineParser)({ + eatWhitespace: stream => stream.eatWhile(_graphqlLanguageService.isIgnored), + lexRules: _graphqlLanguageService.LexRules, + parseRules: _graphqlLanguageService.ParseRules, + editorConfig: { + tabSize: config.tabSize + } + }); + return { + config, + startState: parser.startState, + token: parser.token, + indent: _modeIndent.default, + electricInput: /^\s*[})\]]/, + fold: 'brace', + lineComment: '#', + closeBrackets: { + pairs: '()[]{}""', + explode: '()[]{}' + } + }; +}; +var _default = exports["default"] = graphqlModeFactory; + +/***/ }), + +/***/ "../../codemirror-graphql/esm/utils/mode-indent.js": +/*!*********************************************************!*\ + !*** ../../codemirror-graphql/esm/utils/mode-indent.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = indent; +function indent(state, textAfter) { + var _a, _b; + const { + levels, + indentLevel + } = state; + const level = !levels || levels.length === 0 ? indentLevel : levels.at(-1) - (((_a = this.electricInput) === null || _a === void 0 ? void 0 : _a.test(textAfter)) ? 1 : 0); + return (level || 0) * (((_b = this.config) === null || _b === void 0 ? void 0 : _b.indentUnit) || 0); +} + +/***/ }), + +/***/ "../../codemirror-graphql/esm/variables/hint.js": +/*!******************************************************!*\ + !*** ../../codemirror-graphql/esm/variables/hint.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _codemirror = _interopRequireDefault(__webpack_require__(/*! codemirror */ "../../../node_modules/codemirror/lib/codemirror.js")); +var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs"); +var _forEachState = _interopRequireDefault(__webpack_require__(/*! ../utils/forEachState */ "../../codemirror-graphql/esm/utils/forEachState.js")); +var _hintList = _interopRequireDefault(__webpack_require__(/*! ../utils/hintList */ "../../codemirror-graphql/esm/utils/hintList.js")); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +_codemirror.default.registerHelper('hint', 'graphql-variables', (editor, options) => { const cur = editor.getCursor(); const token = editor.getTokenAt(cur); const results = getVariablesHint(cur, token, options); if ((results === null || results === void 0 ? void 0 : results.list) && results.list.length > 0) { - results.from = codemirror.CodeMirror.Pos(results.from.line, results.from.ch); - results.to = codemirror.CodeMirror.Pos(results.to.line, results.to.ch); - codemirror.CodeMirror.signal(editor, "hasCompletion", editor, results, token); + results.from = _codemirror.default.Pos(results.from.line, results.from.ch); + results.to = _codemirror.default.Pos(results.to.line, results.to.ch); + _codemirror.default.signal(editor, 'hasCompletion', editor, results, token); } return results; }); function getVariablesHint(cur, token, options) { - const state = token.state.kind === "Invalid" ? token.state.prevState : token.state; + const state = token.state.kind === 'Invalid' ? token.state.prevState : token.state; const { kind, step } = state; - if (kind === "Document" && step === 0) { - return hintList(cur, token, [{ - text: "{" + if (kind === 'Document' && step === 0) { + return (0, _hintList.default)(cur, token, [{ + text: '{' }]); } const { @@ -68270,45 +74659,45 @@ function getVariablesHint(cur, token, options) { return; } const typeInfo = getTypeInfo(variableToType, token.state); - if (kind === "Document" || kind === "Variable" && step === 0) { + if (kind === 'Document' || kind === 'Variable' && step === 0) { const variableNames = Object.keys(variableToType); - return hintList(cur, token, variableNames.map(name => ({ + return (0, _hintList.default)(cur, token, variableNames.map(name => ({ text: `"${name}": `, type: variableToType[name] }))); } - if ((kind === "ObjectValue" || kind === "ObjectField" && step === 0) && typeInfo.fields) { + if ((kind === 'ObjectValue' || kind === 'ObjectField' && step === 0) && typeInfo.fields) { const inputFields = Object.keys(typeInfo.fields).map(fieldName => typeInfo.fields[fieldName]); - return hintList(cur, token, inputFields.map(field => ({ + return (0, _hintList.default)(cur, token, inputFields.map(field => ({ text: `"${field.name}": `, type: field.type, description: field.description }))); } - if (kind === "StringValue" || kind === "NumberValue" || kind === "BooleanValue" || kind === "NullValue" || kind === "ListValue" && step === 1 || kind === "ObjectField" && step === 2 || kind === "Variable" && step === 2) { - const namedInputType = typeInfo.type ? graphql.getNamedType(typeInfo.type) : void 0; - if (namedInputType instanceof graphql.GraphQLInputObjectType) { - return hintList(cur, token, [{ - text: "{" + if (kind === 'StringValue' || kind === 'NumberValue' || kind === 'BooleanValue' || kind === 'NullValue' || kind === 'ListValue' && step === 1 || kind === 'ObjectField' && step === 2 || kind === 'Variable' && step === 2) { + const namedInputType = typeInfo.type ? (0, _graphql.getNamedType)(typeInfo.type) : undefined; + if (namedInputType instanceof _graphql.GraphQLInputObjectType) { + return (0, _hintList.default)(cur, token, [{ + text: '{' }]); } - if (namedInputType instanceof graphql.GraphQLEnumType) { + if (namedInputType instanceof _graphql.GraphQLEnumType) { const values = namedInputType.getValues(); - return hintList(cur, token, values.map(value => ({ + return (0, _hintList.default)(cur, token, values.map(value => ({ text: `"${value.name}"`, type: namedInputType, description: value.description }))); } - if (namedInputType === graphql.GraphQLBoolean) { - return hintList(cur, token, [{ - text: "true", - type: graphql.GraphQLBoolean, - description: "Not false." + if (namedInputType === _graphql.GraphQLBoolean) { + return (0, _hintList.default)(cur, token, [{ + text: 'true', + type: _graphql.GraphQLBoolean, + description: 'Not false.' }, { - text: "false", - type: graphql.GraphQLBoolean, - description: "Not true." + text: 'false', + type: _graphql.GraphQLBoolean, + description: 'Not true.' }]); } } @@ -68318,26 +74707,26 @@ function getTypeInfo(variableToType, tokenState) { type: null, fields: null }; - forEachState.forEachState(tokenState, state => { + (0, _forEachState.default)(tokenState, state => { switch (state.kind) { - case "Variable": + case 'Variable': { info.type = variableToType[state.name]; break; } - case "ListValue": + case 'ListValue': { - const nullableType = info.type ? graphql.getNullableType(info.type) : void 0; - info.type = nullableType instanceof graphql.GraphQLList ? nullableType.ofType : null; + const nullableType = info.type ? (0, _graphql.getNullableType)(info.type) : undefined; + info.type = nullableType instanceof _graphql.GraphQLList ? nullableType.ofType : null; break; } - case "ObjectValue": + case 'ObjectValue': { - const objectType = info.type ? graphql.getNamedType(info.type) : void 0; - info.fields = objectType instanceof graphql.GraphQLInputObjectType ? objectType.getFields() : null; + const objectType = info.type ? (0, _graphql.getNamedType)(info.type) : undefined; + info.fields = objectType instanceof _graphql.GraphQLInputObjectType ? objectType.getFields() : null; break; } - case "ObjectField": + case 'ObjectField': { const objectField = state.name && info.fields ? info.fields[state.name] : null; info.type = objectField === null || objectField === void 0 ? void 0 : objectField.type; @@ -68350,18 +74739,260 @@ function getTypeInfo(variableToType, tokenState) { /***/ }), +/***/ "../../codemirror-graphql/esm/variables/lint.js": +/*!******************************************************!*\ + !*** ../../codemirror-graphql/esm/variables/lint.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _codemirror = _interopRequireDefault(__webpack_require__(/*! codemirror */ "../../../node_modules/codemirror/lib/codemirror.js")); +var _graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs"); +var _jsonParse = _interopRequireWildcard(__webpack_require__(/*! ../utils/jsonParse */ "../../codemirror-graphql/esm/utils/jsonParse.js")); +function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } +function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +_codemirror.default.registerHelper('lint', 'graphql-variables', (text, options, editor) => { + if (!text) { + return []; + } + let ast; + try { + ast = (0, _jsonParse.default)(text); + } catch (error) { + if (error instanceof _jsonParse.JSONSyntaxError) { + return [lintError(editor, error.position, error.message)]; + } + throw error; + } + const { + variableToType + } = options; + if (!variableToType) { + return []; + } + return validateVariables(editor, variableToType, ast); +}); +function validateVariables(editor, variableToType, variablesAST) { + var _a; + const errors = []; + for (const member of variablesAST.members) { + if (member) { + const variableName = (_a = member.key) === null || _a === void 0 ? void 0 : _a.value; + const type = variableToType[variableName]; + if (type) { + for (const [node, message] of validateValue(type, member.value)) { + errors.push(lintError(editor, node, message)); + } + } else { + errors.push(lintError(editor, member.key, `Variable "$${variableName}" does not appear in any GraphQL query.`)); + } + } + } + return errors; +} +function validateValue(type, valueAST) { + if (!type || !valueAST) { + return []; + } + if (type instanceof _graphql.GraphQLNonNull) { + if (valueAST.kind === 'Null') { + return [[valueAST, `Type "${type}" is non-nullable and cannot be null.`]]; + } + return validateValue(type.ofType, valueAST); + } + if (valueAST.kind === 'Null') { + return []; + } + if (type instanceof _graphql.GraphQLList) { + const itemType = type.ofType; + if (valueAST.kind === 'Array') { + const values = valueAST.values || []; + return mapCat(values, item => validateValue(itemType, item)); + } + return validateValue(itemType, valueAST); + } + if (type instanceof _graphql.GraphQLInputObjectType) { + if (valueAST.kind !== 'Object') { + return [[valueAST, `Type "${type}" must be an Object.`]]; + } + const providedFields = Object.create(null); + const fieldErrors = mapCat(valueAST.members, member => { + var _a; + const fieldName = (_a = member === null || member === void 0 ? void 0 : member.key) === null || _a === void 0 ? void 0 : _a.value; + providedFields[fieldName] = true; + const inputField = type.getFields()[fieldName]; + if (!inputField) { + return [[member.key, `Type "${type}" does not have a field "${fieldName}".`]]; + } + const fieldType = inputField ? inputField.type : undefined; + return validateValue(fieldType, member.value); + }); + for (const fieldName of Object.keys(type.getFields())) { + const field = type.getFields()[fieldName]; + if (!providedFields[fieldName] && field.type instanceof _graphql.GraphQLNonNull && !field.defaultValue) { + fieldErrors.push([valueAST, `Object of type "${type}" is missing required field "${fieldName}".`]); + } + } + return fieldErrors; + } + if (type.name === 'Boolean' && valueAST.kind !== 'Boolean' || type.name === 'String' && valueAST.kind !== 'String' || type.name === 'ID' && valueAST.kind !== 'Number' && valueAST.kind !== 'String' || type.name === 'Float' && valueAST.kind !== 'Number' || type.name === 'Int' && (valueAST.kind !== 'Number' || (valueAST.value | 0) !== valueAST.value)) { + return [[valueAST, `Expected value of type "${type}".`]]; + } + if ((type instanceof _graphql.GraphQLEnumType || type instanceof _graphql.GraphQLScalarType) && (valueAST.kind !== 'String' && valueAST.kind !== 'Number' && valueAST.kind !== 'Boolean' && valueAST.kind !== 'Null' || isNullish(type.parseValue(valueAST.value)))) { + return [[valueAST, `Expected value of type "${type}".`]]; + } + return []; +} +function lintError(editor, node, message) { + return { + message, + severity: 'error', + type: 'validation', + from: editor.posFromIndex(node.start), + to: editor.posFromIndex(node.end) + }; +} +function isNullish(value) { + return value === null || value === undefined || value !== value; +} +function mapCat(array, mapper) { + return Array.prototype.concat.apply([], array.map(mapper)); +} + +/***/ }), + +/***/ "../../codemirror-graphql/esm/variables/mode.js": +/*!******************************************************!*\ + !*** ../../codemirror-graphql/esm/variables/mode.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _codemirror = _interopRequireDefault(__webpack_require__(/*! codemirror */ "../../../node_modules/codemirror/lib/codemirror.js")); +var _graphqlLanguageService = __webpack_require__(/*! graphql-language-service */ "../../graphql-language-service/esm/index.js"); +var _modeIndent = _interopRequireDefault(__webpack_require__(/*! ../utils/mode-indent */ "../../codemirror-graphql/esm/utils/mode-indent.js")); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +_codemirror.default.defineMode('graphql-variables', config => { + const parser = (0, _graphqlLanguageService.onlineParser)({ + eatWhitespace: stream => stream.eatSpace(), + lexRules: LexRules, + parseRules: ParseRules, + editorConfig: { + tabSize: config.tabSize + } + }); + return { + config, + startState: parser.startState, + token: parser.token, + indent: _modeIndent.default, + electricInput: /^\s*[}\]]/, + fold: 'brace', + closeBrackets: { + pairs: '[]{}""', + explode: '[]{}' + } + }; +}); +const LexRules = { + Punctuation: /^\[|]|\{|\}|:|,/, + Number: /^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/, + String: /^"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?/, + Keyword: /^true|false|null/ +}; +const ParseRules = { + Document: [(0, _graphqlLanguageService.p)('{'), (0, _graphqlLanguageService.list)('Variable', (0, _graphqlLanguageService.opt)((0, _graphqlLanguageService.p)(','))), (0, _graphqlLanguageService.p)('}')], + Variable: [namedKey('variable'), (0, _graphqlLanguageService.p)(':'), 'Value'], + Value(token) { + switch (token.kind) { + case 'Number': + return 'NumberValue'; + case 'String': + return 'StringValue'; + case 'Punctuation': + switch (token.value) { + case '[': + return 'ListValue'; + case '{': + return 'ObjectValue'; + } + return null; + case 'Keyword': + switch (token.value) { + case 'true': + case 'false': + return 'BooleanValue'; + case 'null': + return 'NullValue'; + } + return null; + } + }, + NumberValue: [(0, _graphqlLanguageService.t)('Number', 'number')], + StringValue: [(0, _graphqlLanguageService.t)('String', 'string')], + BooleanValue: [(0, _graphqlLanguageService.t)('Keyword', 'builtin')], + NullValue: [(0, _graphqlLanguageService.t)('Keyword', 'keyword')], + ListValue: [(0, _graphqlLanguageService.p)('['), (0, _graphqlLanguageService.list)('Value', (0, _graphqlLanguageService.opt)((0, _graphqlLanguageService.p)(','))), (0, _graphqlLanguageService.p)(']')], + ObjectValue: [(0, _graphqlLanguageService.p)('{'), (0, _graphqlLanguageService.list)('ObjectField', (0, _graphqlLanguageService.opt)((0, _graphqlLanguageService.p)(','))), (0, _graphqlLanguageService.p)('}')], + ObjectField: [namedKey('attribute'), (0, _graphqlLanguageService.p)(':'), 'Value'] +}; +function namedKey(style) { + return { + style, + match: token => token.kind === 'String', + update(state, token) { + state.name = token.value.slice(1, -1); + } + }; +} + +/***/ }), + /***/ "../../graphiql-react/dist/index.js": /*!******************************************!*\ !*** ../../graphiql-react/dist/index.js ***! \******************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; +function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } +function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } +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 __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)); Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const jsxRuntime = __webpack_require__(/*! react/jsx-runtime */ "../../../node_modules/react/jsx-runtime.js"); +const reactCompilerRuntime = __webpack_require__(/*! react-compiler-runtime */ "../../../node_modules/react-compiler-runtime/dist/index.js"); const React = __webpack_require__(/*! react */ "react"); const clsx = __webpack_require__(/*! clsx */ "../../../node_modules/clsx/dist/clsx.m.js"); const graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs"); @@ -68422,19 +75053,49 @@ function createContextHook(context) { } const StorageContext = createNullableContext("StorageContext"); function StorageContextProvider(props) { + const $ = reactCompilerRuntime.c(8); const isInitialRender = React.useRef(true); - const [storage, setStorage] = React.useState(() => new toolkit.StorageAPI(props.storage)); - React.useEffect(() => { - if (isInitialRender.current) { - isInitialRender.current = false; - } else { - setStorage(new toolkit.StorageAPI(props.storage)); - } - }, [props.storage]); - return /* @__PURE__ */jsxRuntime.jsx(StorageContext.Provider, { - value: storage, - children: props.children - }); + let t0; + if ($[0] !== props.storage) { + t0 = () => new toolkit.StorageAPI(props.storage); + $[0] = props.storage; + $[1] = t0; + } else { + t0 = $[1]; + } + const [storage, setStorage] = React.useState(t0); + let t1; + let t2; + if ($[2] !== props.storage) { + t1 = () => { + if (isInitialRender.current) { + isInitialRender.current = false; + } else { + setStorage(new toolkit.StorageAPI(props.storage)); + } + }; + t2 = [props.storage]; + $[2] = props.storage; + $[3] = t1; + $[4] = t2; + } else { + t1 = $[3]; + t2 = $[4]; + } + React.useEffect(t1, t2); + let t3; + if ($[5] !== props.children || $[6] !== storage) { + t3 = /* @__PURE__ */jsxRuntime.jsx(StorageContext.Provider, { + value: storage, + children: props.children + }); + $[5] = props.children; + $[6] = storage; + $[7] = t3; + } else { + t3 = $[7]; + } + return t3; } const useStorageContext = createContextHook(StorageContext); const SvgArgument = ({ @@ -69255,67 +75916,208 @@ const TypeIcon = generateIcon(SvgType); function generateIcon(RawComponent) { const title = RawComponent.name.replace("Svg", "").replaceAll(/([A-Z])/g, " $1").trimStart().toLowerCase() + " icon"; function IconComponent(props) { - return /* @__PURE__ */jsxRuntime.jsx(RawComponent, { - title, - ...props - }); + const $ = reactCompilerRuntime.c(2); + let t0; + if ($[0] !== props) { + t0 = /* @__PURE__ */jsxRuntime.jsx(RawComponent, { + title, + ...props + }); + $[0] = props; + $[1] = t0; + } else { + t0 = $[1]; + } + return t0; } IconComponent.displayName = RawComponent.name; return IconComponent; } -const UnStyledButton = React.forwardRef((props, ref) => /* @__PURE__ */jsxRuntime.jsx("button", { - ...props, - ref, - className: clsx.clsx("graphiql-un-styled", props.className) -})); +const UnStyledButton = React.forwardRef((props, ref) => { + const $ = reactCompilerRuntime.c(6); + let t0; + if ($[0] !== props.className) { + t0 = clsx.clsx("graphiql-un-styled", props.className); + $[0] = props.className; + $[1] = t0; + } else { + t0 = $[1]; + } + let t1; + if ($[2] !== props || $[3] !== ref || $[4] !== t0) { + t1 = /* @__PURE__ */jsxRuntime.jsx("button", { + ...props, + ref, + className: t0 + }); + $[2] = props; + $[3] = ref; + $[4] = t0; + $[5] = t1; + } else { + t1 = $[5]; + } + return t1; +}); UnStyledButton.displayName = "UnStyledButton"; -const Button$1 = React.forwardRef((props, ref) => /* @__PURE__ */jsxRuntime.jsx("button", { - ...props, - ref, - className: clsx.clsx("graphiql-button", { - success: "graphiql-button-success", - error: "graphiql-button-error" - }[props.state], props.className) -})); +const Button$1 = React.forwardRef((props, ref) => { + const $ = reactCompilerRuntime.c(7); + let t0; + if ($[0] !== props.className || $[1] !== props.state) { + t0 = clsx.clsx("graphiql-button", { + success: "graphiql-button-success", + error: "graphiql-button-error" + }[props.state], props.className); + $[0] = props.className; + $[1] = props.state; + $[2] = t0; + } else { + t0 = $[2]; + } + let t1; + if ($[3] !== props || $[4] !== ref || $[5] !== t0) { + t1 = /* @__PURE__ */jsxRuntime.jsx("button", { + ...props, + ref, + className: t0 + }); + $[3] = props; + $[4] = ref; + $[5] = t0; + $[6] = t1; + } else { + t1 = $[6]; + } + return t1; +}); Button$1.displayName = "Button"; -const ButtonGroup = React.forwardRef((props, ref) => /* @__PURE__ */jsxRuntime.jsx("div", { - ...props, - ref, - className: clsx.clsx("graphiql-button-group", props.className) -})); +const ButtonGroup = React.forwardRef((props, ref) => { + const $ = reactCompilerRuntime.c(6); + let t0; + if ($[0] !== props.className) { + t0 = clsx.clsx("graphiql-button-group", props.className); + $[0] = props.className; + $[1] = t0; + } else { + t0 = $[1]; + } + let t1; + if ($[2] !== props || $[3] !== ref || $[4] !== t0) { + t1 = /* @__PURE__ */jsxRuntime.jsx("div", { + ...props, + ref, + className: t0 + }); + $[2] = props; + $[3] = ref; + $[4] = t0; + $[5] = t1; + } else { + t1 = $[5]; + } + return t1; +}); ButtonGroup.displayName = "ButtonGroup"; const createComponentGroup = (root, children) => Object.entries(children).reduce((r, [key, value]) => { r[key] = value; return r; }, root); -const DialogClose = React.forwardRef((props, ref) => /* @__PURE__ */jsxRuntime.jsx(D__namespace.Close, { - asChild: true, - children: /* @__PURE__ */jsxRuntime.jsxs(UnStyledButton, { - ...props, - ref, - type: "button", - className: clsx.clsx("graphiql-dialog-close", props.className), - children: [/* @__PURE__ */jsxRuntime.jsx(reactVisuallyHidden.Root, { +const DialogClose = React.forwardRef((props, ref) => { + const $ = reactCompilerRuntime.c(8); + let t0; + if ($[0] !== props.className) { + t0 = clsx.clsx("graphiql-dialog-close", props.className); + $[0] = props.className; + $[1] = t0; + } else { + t0 = $[1]; + } + let t1; + let t2; + if ($[2] === Symbol.for("react.memo_cache_sentinel")) { + t1 = /* @__PURE__ */jsxRuntime.jsx(reactVisuallyHidden.Root, { children: "Close dialog" - }), /* @__PURE__ */jsxRuntime.jsx(CloseIcon, {})] - }) -})); + }); + t2 = /* @__PURE__ */jsxRuntime.jsx(CloseIcon, {}); + $[2] = t1; + $[3] = t2; + } else { + t1 = $[2]; + t2 = $[3]; + } + let t3; + if ($[4] !== props || $[5] !== ref || $[6] !== t0) { + t3 = /* @__PURE__ */jsxRuntime.jsx(D__namespace.Close, { + asChild: true, + children: /* @__PURE__ */jsxRuntime.jsxs(UnStyledButton, { + ...props, + ref, + type: "button", + className: t0, + children: [t1, t2] + }) + }); + $[4] = props; + $[5] = ref; + $[6] = t0; + $[7] = t3; + } else { + t3 = $[7]; + } + return t3; +}); DialogClose.displayName = "Dialog.Close"; -function DialogRoot({ - children, - ...props -}) { - return /* @__PURE__ */jsxRuntime.jsx(D__namespace.Root, { - ...props, - children: /* @__PURE__ */jsxRuntime.jsxs(D__namespace.Portal, { - children: [/* @__PURE__ */jsxRuntime.jsx(D__namespace.Overlay, { - className: "graphiql-dialog-overlay" - }), /* @__PURE__ */jsxRuntime.jsx(D__namespace.Content, { +function DialogRoot(t0) { + const $ = reactCompilerRuntime.c(9); + let children; + let props; + if ($[0] !== t0) { + ({ + children, + ...props + } = t0); + $[0] = t0; + $[1] = children; + $[2] = props; + } else { + children = $[1]; + props = $[2]; + } + let t1; + if ($[3] === Symbol.for("react.memo_cache_sentinel")) { + t1 = /* @__PURE__ */jsxRuntime.jsx(D__namespace.Overlay, { + className: "graphiql-dialog-overlay" + }); + $[3] = t1; + } else { + t1 = $[3]; + } + let t2; + if ($[4] !== children) { + t2 = /* @__PURE__ */jsxRuntime.jsxs(D__namespace.Portal, { + children: [t1, /* @__PURE__ */jsxRuntime.jsx(D__namespace.Content, { className: "graphiql-dialog", children })] - }) - }); + }); + $[4] = children; + $[5] = t2; + } else { + t2 = $[5]; + } + let t3; + if ($[6] !== props || $[7] !== t2) { + t3 = /* @__PURE__ */jsxRuntime.jsx(D__namespace.Root, { + ...props, + children: t2 + }); + $[6] = props; + $[7] = t2; + $[8] = t3; + } else { + t3 = $[8]; + } + return t3; } const Dialog = createComponentGroup(DialogRoot, { Close: DialogClose, @@ -69323,31 +76125,95 @@ const Dialog = createComponentGroup(DialogRoot, { Trigger: D__namespace.Trigger, Description: D__namespace.Description }); -const Button = React.forwardRef((props, ref) => /* @__PURE__ */jsxRuntime.jsx(reactDropdownMenu.Trigger, { - asChild: true, - children: /* @__PURE__ */jsxRuntime.jsx("button", { - ...props, - ref, - className: clsx.clsx("graphiql-un-styled", props.className) - }) -})); +const Button = React.forwardRef((props, ref) => { + const $ = reactCompilerRuntime.c(6); + let t0; + if ($[0] !== props.className) { + t0 = clsx.clsx("graphiql-un-styled", props.className); + $[0] = props.className; + $[1] = t0; + } else { + t0 = $[1]; + } + let t1; + if ($[2] !== props || $[3] !== ref || $[4] !== t0) { + t1 = /* @__PURE__ */jsxRuntime.jsx(reactDropdownMenu.Trigger, { + asChild: true, + children: /* @__PURE__ */jsxRuntime.jsx("button", { + ...props, + ref, + className: t0 + }) + }); + $[2] = props; + $[3] = ref; + $[4] = t0; + $[5] = t1; + } else { + t1 = $[5]; + } + return t1; +}); Button.displayName = "DropdownMenuButton"; -function Content({ - children, - align = "start", - sideOffset = 5, - className, - ...props -}) { - return /* @__PURE__ */jsxRuntime.jsx(reactDropdownMenu.Portal, { - children: /* @__PURE__ */jsxRuntime.jsx(reactDropdownMenu.Content, { - align, - sideOffset, - className: clsx.clsx("graphiql-dropdown-content", className), - ...props, - children - }) - }); +function Content(t0) { + const $ = reactCompilerRuntime.c(14); + let children; + let className; + let props; + let t1; + let t2; + if ($[0] !== t0) { + ({ + children, + align: t1, + sideOffset: t2, + className, + ...props + } = t0); + $[0] = t0; + $[1] = children; + $[2] = className; + $[3] = props; + $[4] = t1; + $[5] = t2; + } else { + children = $[1]; + className = $[2]; + props = $[3]; + t1 = $[4]; + t2 = $[5]; + } + const align = t1 === void 0 ? "start" : t1; + const sideOffset = t2 === void 0 ? 5 : t2; + let t3; + if ($[6] !== className) { + t3 = clsx.clsx("graphiql-dropdown-content", className); + $[6] = className; + $[7] = t3; + } else { + t3 = $[7]; + } + let t4; + if ($[8] !== align || $[9] !== children || $[10] !== props || $[11] !== sideOffset || $[12] !== t3) { + t4 = /* @__PURE__ */jsxRuntime.jsx(reactDropdownMenu.Portal, { + children: /* @__PURE__ */jsxRuntime.jsx(reactDropdownMenu.Content, { + align, + sideOffset, + className: t3, + ...props, + children + }) + }); + $[8] = align; + $[9] = children; + $[10] = props; + $[11] = sideOffset; + $[12] = t3; + $[13] = t4; + } else { + t4 = $[13]; + } + return t4; } const Item = ({ className, @@ -69367,38 +76233,132 @@ const markdown = new MarkdownIt({ breaks: true, linkify: true }); -const MarkdownContent = React.forwardRef(({ - children, - onlyShowFirstChild, - type, - ...props -}, ref) => /* @__PURE__ */jsxRuntime.jsx("div", { - ...props, - ref, - className: clsx.clsx(`graphiql-markdown-${type}`, onlyShowFirstChild && "graphiql-markdown-preview", props.className), - dangerouslySetInnerHTML: { - __html: markdown.render(children) +const MarkdownContent = React.forwardRef((t0, ref) => { + const $ = reactCompilerRuntime.c(18); + let children; + let onlyShowFirstChild; + let props; + let type; + if ($[0] !== t0) { + ({ + children, + onlyShowFirstChild, + type, + ...props + } = t0); + $[0] = t0; + $[1] = children; + $[2] = onlyShowFirstChild; + $[3] = props; + $[4] = type; + } else { + children = $[1]; + onlyShowFirstChild = $[2]; + props = $[3]; + type = $[4]; } -})); + const t1 = `graphiql-markdown-${type}`; + const t2 = onlyShowFirstChild && "graphiql-markdown-preview"; + let t3; + if ($[5] !== props.className || $[6] !== t1 || $[7] !== t2) { + t3 = clsx.clsx(t1, t2, props.className); + $[5] = props.className; + $[6] = t1; + $[7] = t2; + $[8] = t3; + } else { + t3 = $[8]; + } + let t4; + if ($[9] !== children) { + t4 = markdown.render(children); + $[9] = children; + $[10] = t4; + } else { + t4 = $[10]; + } + let t5; + if ($[11] !== t4) { + t5 = { + __html: t4 + }; + $[11] = t4; + $[12] = t5; + } else { + t5 = $[12]; + } + let t6; + if ($[13] !== props || $[14] !== ref || $[15] !== t3 || $[16] !== t5) { + t6 = /* @__PURE__ */jsxRuntime.jsx("div", { + ...props, + ref, + className: t3, + dangerouslySetInnerHTML: t5 + }); + $[13] = props; + $[14] = ref; + $[15] = t3; + $[16] = t5; + $[17] = t6; + } else { + t6 = $[17]; + } + return t6; +}); MarkdownContent.displayName = "MarkdownContent"; -const Spinner = React.forwardRef((props, ref) => /* @__PURE__ */jsxRuntime.jsx("div", { - ...props, - ref, - className: clsx.clsx("graphiql-spinner", props.className) -})); +const Spinner = React.forwardRef((props, ref) => { + const $ = reactCompilerRuntime.c(6); + let t0; + if ($[0] !== props.className) { + t0 = clsx.clsx("graphiql-spinner", props.className); + $[0] = props.className; + $[1] = t0; + } else { + t0 = $[1]; + } + let t1; + if ($[2] !== props || $[3] !== ref || $[4] !== t0) { + t1 = /* @__PURE__ */jsxRuntime.jsx("div", { + ...props, + ref, + className: t0 + }); + $[2] = props; + $[3] = ref; + $[4] = t0; + $[5] = t1; + } else { + t1 = $[5]; + } + return t1; +}); Spinner.displayName = "Spinner"; -function TooltipRoot({ - children, - align = "start", - side = "bottom", - sideOffset = 5, - label -}) { - return /* @__PURE__ */jsxRuntime.jsxs(T__namespace.Root, { - children: [/* @__PURE__ */jsxRuntime.jsx(T__namespace.Trigger, { +function TooltipRoot(t0) { + const $ = reactCompilerRuntime.c(10); + const { + children, + align: t1, + side: t2, + sideOffset: t3, + label + } = t0; + const align = t1 === void 0 ? "start" : t1; + const side = t2 === void 0 ? "bottom" : t2; + const sideOffset = t3 === void 0 ? 5 : t3; + let t4; + if ($[0] !== children) { + t4 = /* @__PURE__ */jsxRuntime.jsx(T__namespace.Trigger, { asChild: true, children - }), /* @__PURE__ */jsxRuntime.jsx(T__namespace.Portal, { + }); + $[0] = children; + $[1] = t4; + } else { + t4 = $[1]; + } + let t5; + if ($[2] !== align || $[3] !== label || $[4] !== side || $[5] !== sideOffset) { + t5 = /* @__PURE__ */jsxRuntime.jsx(T__namespace.Portal, { children: /* @__PURE__ */jsxRuntime.jsx(T__namespace.Content, { className: "graphiql-tooltip", align, @@ -69406,103 +76366,301 @@ function TooltipRoot({ sideOffset, children: label }) - })] - }); + }); + $[2] = align; + $[3] = label; + $[4] = side; + $[5] = sideOffset; + $[6] = t5; + } else { + t5 = $[6]; + } + let t6; + if ($[7] !== t4 || $[8] !== t5) { + t6 = /* @__PURE__ */jsxRuntime.jsxs(T__namespace.Root, { + children: [t4, t5] + }); + $[7] = t4; + $[8] = t5; + $[9] = t6; + } else { + t6 = $[9]; + } + return t6; } const Tooltip = createComponentGroup(TooltipRoot, { Provider: T__namespace.Provider }); -const TabRoot = React.forwardRef(({ - isActive, - value, - children, - className, - ...props -}, ref) => /* @__PURE__ */jsxRuntime.jsx(framerMotion.Reorder.Item, { - ...props, - ref, - value, - "aria-selected": isActive ? "true" : void 0, - role: "tab", - className: clsx.clsx("graphiql-tab", isActive && "graphiql-tab-active", className), - children -})); +const TabRoot = React.forwardRef((t0, ref) => { + const $ = reactCompilerRuntime.c(16); + let children; + let className; + let isActive; + let props; + let value; + if ($[0] !== t0) { + ({ + isActive, + value, + children, + className, + ...props + } = t0); + $[0] = t0; + $[1] = children; + $[2] = className; + $[3] = isActive; + $[4] = props; + $[5] = value; + } else { + children = $[1]; + className = $[2]; + isActive = $[3]; + props = $[4]; + value = $[5]; + } + const t1 = isActive ? "true" : void 0; + const t2 = isActive && "graphiql-tab-active"; + let t3; + if ($[6] !== className || $[7] !== t2) { + t3 = clsx.clsx("graphiql-tab", t2, className); + $[6] = className; + $[7] = t2; + $[8] = t3; + } else { + t3 = $[8]; + } + let t4; + if ($[9] !== children || $[10] !== props || $[11] !== ref || $[12] !== t1 || $[13] !== t3 || $[14] !== value) { + t4 = /* @__PURE__ */jsxRuntime.jsx(framerMotion.Reorder.Item, { + ...props, + ref, + value, + "aria-selected": t1, + role: "tab", + className: t3, + children + }); + $[9] = children; + $[10] = props; + $[11] = ref; + $[12] = t1; + $[13] = t3; + $[14] = value; + $[15] = t4; + } else { + t4 = $[15]; + } + return t4; +}); TabRoot.displayName = "Tab"; -const TabButton = React.forwardRef((props, ref) => /* @__PURE__ */jsxRuntime.jsx(UnStyledButton, { - ...props, - ref, - type: "button", - className: clsx.clsx("graphiql-tab-button", props.className), - children: props.children -})); +const TabButton = React.forwardRef((props, ref) => { + const $ = reactCompilerRuntime.c(6); + let t0; + if ($[0] !== props.className) { + t0 = clsx.clsx("graphiql-tab-button", props.className); + $[0] = props.className; + $[1] = t0; + } else { + t0 = $[1]; + } + let t1; + if ($[2] !== props || $[3] !== ref || $[4] !== t0) { + t1 = /* @__PURE__ */jsxRuntime.jsx(UnStyledButton, { + ...props, + ref, + type: "button", + className: t0, + children: props.children + }); + $[2] = props; + $[3] = ref; + $[4] = t0; + $[5] = t1; + } else { + t1 = $[5]; + } + return t1; +}); TabButton.displayName = "Tab.Button"; -const TabClose = React.forwardRef((props, ref) => /* @__PURE__ */jsxRuntime.jsx(Tooltip, { - label: "Close Tab", - children: /* @__PURE__ */jsxRuntime.jsx(UnStyledButton, { - "aria-label": "Close Tab", - ...props, - ref, - type: "button", - className: clsx.clsx("graphiql-tab-close", props.className), - children: /* @__PURE__ */jsxRuntime.jsx(CloseIcon, {}) - }) -})); +const TabClose = React.forwardRef((props, ref) => { + const $ = reactCompilerRuntime.c(7); + let t0; + if ($[0] !== props.className) { + t0 = clsx.clsx("graphiql-tab-close", props.className); + $[0] = props.className; + $[1] = t0; + } else { + t0 = $[1]; + } + let t1; + if ($[2] === Symbol.for("react.memo_cache_sentinel")) { + t1 = /* @__PURE__ */jsxRuntime.jsx(CloseIcon, {}); + $[2] = t1; + } else { + t1 = $[2]; + } + let t2; + if ($[3] !== props || $[4] !== ref || $[5] !== t0) { + t2 = /* @__PURE__ */jsxRuntime.jsx(Tooltip, { + label: "Close Tab", + children: /* @__PURE__ */jsxRuntime.jsx(UnStyledButton, { + "aria-label": "Close Tab", + ...props, + ref, + type: "button", + className: t0, + children: t1 + }) + }); + $[3] = props; + $[4] = ref; + $[5] = t0; + $[6] = t2; + } else { + t2 = $[6]; + } + return t2; +}); TabClose.displayName = "Tab.Close"; const Tab = createComponentGroup(TabRoot, { Button: TabButton, Close: TabClose }); -const Tabs = React.forwardRef(({ - values, - onReorder, - children, - className, - ...props -}, ref) => /* @__PURE__ */jsxRuntime.jsx(framerMotion.Reorder.Group, { - ...props, - ref, - values, - onReorder, - axis: "x", - role: "tablist", - className: clsx.clsx("graphiql-tabs", className), - children -})); +const Tabs = React.forwardRef((t0, ref) => { + const $ = reactCompilerRuntime.c(15); + let children; + let className; + let onReorder; + let props; + let values; + if ($[0] !== t0) { + ({ + values, + onReorder, + children, + className, + ...props + } = t0); + $[0] = t0; + $[1] = children; + $[2] = className; + $[3] = onReorder; + $[4] = props; + $[5] = values; + } else { + children = $[1]; + className = $[2]; + onReorder = $[3]; + props = $[4]; + values = $[5]; + } + let t1; + if ($[6] !== className) { + t1 = clsx.clsx("graphiql-tabs", className); + $[6] = className; + $[7] = t1; + } else { + t1 = $[7]; + } + let t2; + if ($[8] !== children || $[9] !== onReorder || $[10] !== props || $[11] !== ref || $[12] !== t1 || $[13] !== values) { + t2 = /* @__PURE__ */jsxRuntime.jsx(framerMotion.Reorder.Group, { + ...props, + ref, + values, + onReorder, + axis: "x", + role: "tablist", + className: t1, + children + }); + $[8] = children; + $[9] = onReorder; + $[10] = props; + $[11] = ref; + $[12] = t1; + $[13] = values; + $[14] = t2; + } else { + t2 = $[14]; + } + return t2; +}); Tabs.displayName = "Tabs"; const HistoryContext = createNullableContext("HistoryContext"); -function HistoryContextProvider({ - maxHistoryLength = DEFAULT_HISTORY_LENGTH, - children -}) { - const storage = useStorageContext(); - const [historyStore] = React.useState(() => - // Fall back to a noop storage when the StorageContext is empty - new toolkit.HistoryStore(storage || new toolkit.StorageAPI(null), maxHistoryLength)); - const [items, setItems] = React.useState(() => historyStore.queries || []); - const value = React.useMemo(() => ({ - addToHistory(operation) { - historyStore.updateHistory(operation); - setItems(historyStore.queries); - }, - editLabel(operation, index) { - historyStore.editLabel(operation, index); - setItems(historyStore.queries); - }, - items, - toggleFavorite(operation) { - historyStore.toggleFavorite(operation); - setItems(historyStore.queries); - }, - setActive: item => item, - deleteFromHistory(item, clearFavorites) { - historyStore.deleteHistory(item, clearFavorites); - setItems(historyStore.queries); - } - }), [items, historyStore]); - return /* @__PURE__ */jsxRuntime.jsx(HistoryContext.Provider, { - value, +function HistoryContextProvider(t0) { + const $ = reactCompilerRuntime.c(11); + const { + maxHistoryLength: t1, children - }); + } = t0; + const maxHistoryLength = t1 === void 0 ? DEFAULT_HISTORY_LENGTH : t1; + const storage = useStorageContext(); + let t2; + if ($[0] !== maxHistoryLength || $[1] !== storage) { + t2 = () => new toolkit.HistoryStore(storage || new toolkit.StorageAPI(null), maxHistoryLength); + $[0] = maxHistoryLength; + $[1] = storage; + $[2] = t2; + } else { + t2 = $[2]; + } + const [historyStore] = React.useState(t2); + let t3; + if ($[3] !== historyStore.queries) { + t3 = () => historyStore.queries || []; + $[3] = historyStore.queries; + $[4] = t3; + } else { + t3 = $[4]; + } + const [items, setItems] = React.useState(t3); + let t4; + if ($[5] !== historyStore || $[6] !== items) { + t4 = { + addToHistory(operation) { + historyStore.updateHistory(operation); + setItems(historyStore.queries); + }, + editLabel(operation_0, index) { + historyStore.editLabel(operation_0, index); + setItems(historyStore.queries); + }, + items, + toggleFavorite(operation_1) { + historyStore.toggleFavorite(operation_1); + setItems(historyStore.queries); + }, + setActive: _temp$8, + deleteFromHistory(item_0, clearFavorites) { + historyStore.deleteHistory(item_0, clearFavorites); + setItems(historyStore.queries); + } + }; + $[5] = historyStore; + $[6] = items; + $[7] = t4; + } else { + t4 = $[7]; + } + const value = t4; + let t5; + if ($[8] !== children || $[9] !== value) { + t5 = /* @__PURE__ */jsxRuntime.jsx(HistoryContext.Provider, { + value, + children + }); + $[8] = children; + $[9] = value; + $[10] = t5; + } else { + t5 = $[10]; + } + return t5; +} +function _temp$8(item) { + return item; } const useHistoryContext = createContextHook(HistoryContext); const DEFAULT_HISTORY_LENGTH = 20; @@ -69517,9 +76675,9 @@ function History() { ...item, index: i })).reverse(); - const favorites = items.filter(item => item.favorite); + const favorites = items.filter(item_0 => item_0.favorite); if (favorites.length) { - items = items.filter(item => !item.favorite); + items = items.filter(item_1 => !item_1.favorite); } const [clearStatus, setClearStatus] = React.useState(null); React.useEffect(() => { @@ -69529,16 +76687,16 @@ function History() { }, 2e3); } }, [clearStatus]); - const handleClearStatus = React.useCallback(() => { + const handleClearStatus = () => { try { - for (const item of items) { - deleteFromHistory(item, true); + for (const item_2 of items) { + deleteFromHistory(item_2, true); } setClearStatus("success"); } catch { setClearStatus("error"); } - }, [deleteFromHistory, items]); + }; return /* @__PURE__ */jsxRuntime.jsxs("section", { "aria-label": "History", className: "graphiql-history", @@ -69556,101 +76714,202 @@ function History() { })] }), Boolean(favorites.length) && /* @__PURE__ */jsxRuntime.jsx("ul", { className: "graphiql-history-items", - children: favorites.map(item => /* @__PURE__ */jsxRuntime.jsx(HistoryItem, { - item - }, item.index)) + children: favorites.map(item_3 => /* @__PURE__ */jsxRuntime.jsx(HistoryItem, { + item: item_3 + }, item_3.index)) }), Boolean(favorites.length) && Boolean(items.length) && /* @__PURE__ */jsxRuntime.jsx("div", { className: "graphiql-history-item-spacer" }), Boolean(items.length) && /* @__PURE__ */jsxRuntime.jsx("ul", { className: "graphiql-history-items", - children: items.map(item => /* @__PURE__ */jsxRuntime.jsx(HistoryItem, { - item - }, item.index)) + children: items.map(item_4 => /* @__PURE__ */jsxRuntime.jsx(HistoryItem, { + item: item_4 + }, item_4.index)) })] }); } function HistoryItem(props) { + const $ = reactCompilerRuntime.c(40); + let t0; + if ($[0] === Symbol.for("react.memo_cache_sentinel")) { + t0 = { + nonNull: true, + caller: HistoryItem + }; + $[0] = t0; + } else { + t0 = $[0]; + } const { editLabel, toggleFavorite, deleteFromHistory, setActive - } = useHistoryContext({ - nonNull: true, - caller: HistoryItem - }); + } = useHistoryContext(t0); + let t1; + if ($[1] === Symbol.for("react.memo_cache_sentinel")) { + t1 = { + nonNull: true, + caller: HistoryItem + }; + $[1] = t1; + } else { + t1 = $[1]; + } const { headerEditor, queryEditor, variableEditor - } = useEditorContext({ - nonNull: true, - caller: HistoryItem - }); + } = useEditorContext(t1); const inputRef = React.useRef(null); const buttonRef = React.useRef(null); const [isEditable, setIsEditable] = React.useState(false); - React.useEffect(() => { - var _a; - if (isEditable) { - (_a = inputRef.current) == null ? void 0 : _a.focus(); - } - }, [isEditable]); - const displayName = props.item.label || props.item.operationName || formatQuery(props.item.query); - const handleSave = React.useCallback(() => { - var _a; - setIsEditable(false); - const { - index, - ...item - } = props.item; - editLabel({ - ...item, - label: (_a = inputRef.current) == null ? void 0 : _a.value - }, index); - }, [editLabel, props.item]); - const handleClose = React.useCallback(() => { - setIsEditable(false); - }, []); - const handleEditLabel = React.useCallback(e => { - e.stopPropagation(); - setIsEditable(true); - }, []); - const handleHistoryItemClick = React.useCallback(() => { - const { - query, - variables, - headers - } = props.item; - queryEditor == null ? void 0 : queryEditor.setValue(query !== null && query !== void 0 ? query : ""); - variableEditor == null ? void 0 : variableEditor.setValue(variables !== null && variables !== void 0 ? variables : ""); - headerEditor == null ? void 0 : headerEditor.setValue(headers !== null && headers !== void 0 ? headers : ""); - setActive(props.item); - }, [headerEditor, props.item, queryEditor, setActive, variableEditor]); - const handleDeleteItemFromHistory = React.useCallback(e => { - e.stopPropagation(); - deleteFromHistory(props.item); - }, [props.item, deleteFromHistory]); - const handleToggleFavorite = React.useCallback(e => { - e.stopPropagation(); - toggleFavorite(props.item); - }, [props.item, toggleFavorite]); - return /* @__PURE__ */jsxRuntime.jsx("li", { - className: clsx.clsx("graphiql-history-item", isEditable && "editable"), - children: isEditable ? /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { + let t2; + let t3; + if ($[2] !== isEditable) { + t2 = () => { + var _a; + if (isEditable) { + (_a = inputRef.current) == null ? void 0 : _a.focus(); + } + }; + t3 = [isEditable]; + $[2] = isEditable; + $[3] = t2; + $[4] = t3; + } else { + t2 = $[3]; + t3 = $[4]; + } + React.useEffect(t2, t3); + let t4; + if ($[5] !== props.item.label || $[6] !== props.item.operationName || $[7] !== props.item.query) { + t4 = props.item.label || props.item.operationName || formatQuery(props.item.query); + $[5] = props.item.label; + $[6] = props.item.operationName; + $[7] = props.item.query; + $[8] = t4; + } else { + t4 = $[8]; + } + const displayName = t4; + let t5; + if ($[9] !== editLabel || $[10] !== props.item) { + t5 = () => { + var _a; + setIsEditable(false); + const { + index, + ...item + } = props.item; + editLabel({ + ...item, + label: (_a = inputRef.current) == null ? void 0 : _a.value + }, index); + }; + $[9] = editLabel; + $[10] = props.item; + $[11] = t5; + } else { + t5 = $[11]; + } + const handleSave = t5; + let t6; + if ($[12] === Symbol.for("react.memo_cache_sentinel")) { + t6 = () => { + setIsEditable(false); + }; + $[12] = t6; + } else { + t6 = $[12]; + } + const handleClose = t6; + let t7; + if ($[13] === Symbol.for("react.memo_cache_sentinel")) { + t7 = e => { + e.stopPropagation(); + setIsEditable(true); + }; + $[13] = t7; + } else { + t7 = $[13]; + } + const handleEditLabel = t7; + let t8; + if ($[14] !== headerEditor || $[15] !== props.item || $[16] !== queryEditor || $[17] !== setActive || $[18] !== variableEditor) { + t8 = () => { + const { + query, + variables, + headers + } = props.item; + queryEditor == null ? void 0 : queryEditor.setValue(query !== null && query !== void 0 ? query : ""); + variableEditor == null ? void 0 : variableEditor.setValue(variables !== null && variables !== void 0 ? variables : ""); + headerEditor == null ? void 0 : headerEditor.setValue(headers !== null && headers !== void 0 ? headers : ""); + setActive(props.item); + }; + $[14] = headerEditor; + $[15] = props.item; + $[16] = queryEditor; + $[17] = setActive; + $[18] = variableEditor; + $[19] = t8; + } else { + t8 = $[19]; + } + const handleHistoryItemClick = t8; + let t9; + if ($[20] !== deleteFromHistory || $[21] !== props.item) { + t9 = e_0 => { + e_0.stopPropagation(); + deleteFromHistory(props.item); + }; + $[20] = deleteFromHistory; + $[21] = props.item; + $[22] = t9; + } else { + t9 = $[22]; + } + const handleDeleteItemFromHistory = t9; + let t10; + if ($[23] !== props.item || $[24] !== toggleFavorite) { + t10 = e_1 => { + e_1.stopPropagation(); + toggleFavorite(props.item); + }; + $[23] = props.item; + $[24] = toggleFavorite; + $[25] = t10; + } else { + t10 = $[25]; + } + const handleToggleFavorite = t10; + const t11 = isEditable && "editable"; + let t12; + if ($[26] !== t11) { + t12 = clsx.clsx("graphiql-history-item", t11); + $[26] = t11; + $[27] = t12; + } else { + t12 = $[27]; + } + let t13; + if ($[28] !== displayName || $[29] !== editLabel || $[30] !== handleDeleteItemFromHistory || $[31] !== handleHistoryItemClick || $[32] !== handleSave || $[33] !== handleToggleFavorite || $[34] !== isEditable || $[35] !== props.item) { + t13 = isEditable ? /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [/* @__PURE__ */jsxRuntime.jsx("input", { type: "text", defaultValue: props.item.label, ref: inputRef, - onKeyDown: e => { - if (e.key === "Esc") { + onKeyDown: e_2 => { + if (e_2.key === "Esc") { setIsEditable(false); - } else if (e.key === "Enter") { - setIsEditable(false); - editLabel({ - ...props.item, - label: e.currentTarget.value - }); + } else { + if (e_2.key === "Enter") { + setIsEditable(false); + editLabel({ + ...props.item, + label: e_2.currentTarget.value + }); + } } }, placeholder: "Type a label" @@ -69711,22 +76970,58 @@ function HistoryItem(props) { }) }) })] - }) - }); + }); + $[28] = displayName; + $[29] = editLabel; + $[30] = handleDeleteItemFromHistory; + $[31] = handleHistoryItemClick; + $[32] = handleSave; + $[33] = handleToggleFavorite; + $[34] = isEditable; + $[35] = props.item; + $[36] = t13; + } else { + t13 = $[36]; + } + let t14; + if ($[37] !== t12 || $[38] !== t13) { + t14 = /* @__PURE__ */jsxRuntime.jsx("li", { + className: t12, + children: t13 + }); + $[37] = t12; + $[38] = t13; + $[39] = t14; + } else { + t14 = $[39]; + } + return t14; } function formatQuery(query) { return query == null ? void 0 : query.split("\n").map(line => line.replace(/#(.*)/, "")).join(" ").replaceAll("{", " { ").replaceAll("}", " } ").replaceAll(/[\s]{2,}/g, " "); } const ExecutionContext = createNullableContext("ExecutionContext"); -function ExecutionContextProvider({ - fetcher, - getDefaultFieldNames, - children, - operationName -}) { +function ExecutionContextProvider(t0) { + const $ = reactCompilerRuntime.c(27); + const { + fetcher, + getDefaultFieldNames, + children, + operationName + } = t0; if (!fetcher) { throw new TypeError("The `ExecutionContextProvider` component requires a `fetcher` function to be passed as prop."); } + let t1; + if ($[0] === Symbol.for("react.memo_cache_sentinel")) { + t1 = { + nonNull: true, + caller: ExecutionContextProvider + }; + $[0] = t1; + } else { + t1 = $[0]; + } const { externalFragments, headerEditor, @@ -69734,162 +77029,228 @@ function ExecutionContextProvider({ responseEditor, variableEditor, updateActiveTabValues - } = useEditorContext({ - nonNull: true, - caller: ExecutionContextProvider - }); + } = useEditorContext(t1); const history = useHistoryContext(); - const autoCompleteLeafs = useAutoCompleteLeafs({ - getDefaultFieldNames, - caller: ExecutionContextProvider - }); + let t2; + if ($[1] !== getDefaultFieldNames) { + t2 = { + getDefaultFieldNames, + caller: ExecutionContextProvider + }; + $[1] = getDefaultFieldNames; + $[2] = t2; + } else { + t2 = $[2]; + } + const autoCompleteLeafs = useAutoCompleteLeafs(t2); const [isFetching, setIsFetching] = React.useState(false); const [subscription, setSubscription] = React.useState(null); const queryIdRef = React.useRef(0); - const stop = React.useCallback(() => { - subscription == null ? void 0 : subscription.unsubscribe(); - setIsFetching(false); - setSubscription(null); - }, [subscription]); - const run = React.useCallback(async () => { - var _ref; - if (!queryEditor || !responseEditor) { - return; - } - if (subscription) { - stop(); - return; - } - const setResponse = value2 => { - responseEditor.setValue(value2); - updateActiveTabValues({ - response: value2 - }); - }; - queryIdRef.current += 1; - const queryId = queryIdRef.current; - let query = autoCompleteLeafs() || queryEditor.getValue(); - const variablesString = variableEditor == null ? void 0 : variableEditor.getValue(); - let variables; - try { - variables = tryParseJsonObject({ - json: variablesString, - errorMessageParse: "Variables are invalid JSON", - errorMessageType: "Variables are not a JSON object." - }); - } catch (error) { - setResponse(error instanceof Error ? error.message : `${error}`); - return; - } - const headersString = headerEditor == null ? void 0 : headerEditor.getValue(); - let headers; - try { - headers = tryParseJsonObject({ - json: headersString, - errorMessageParse: "Headers are invalid JSON", - errorMessageType: "Headers are not a JSON object." - }); - } catch (error) { - setResponse(error instanceof Error ? error.message : `${error}`); - return; - } - if (externalFragments) { - const fragmentDependencies = queryEditor.documentAST ? graphqlLanguageService.getFragmentDependenciesForAST(queryEditor.documentAST, externalFragments) : []; - if (fragmentDependencies.length > 0) { - query += "\n" + fragmentDependencies.map(node => graphql.print(node)).join("\n"); - } - } - setResponse(""); - setIsFetching(true); - const opName = (_ref = operationName !== null && operationName !== void 0 ? operationName : queryEditor.operationName) !== null && _ref !== void 0 ? _ref : void 0; - history == null ? void 0 : history.addToHistory({ - query, - variables: variablesString, - headers: headersString, - operationName: opName - }); - try { - var _headers, _queryEditor$document; - const fullResponse = {}; - const handleResponse = result => { - if (queryId !== queryIdRef.current) { - return; - } - let maybeMultipart = Array.isArray(result) ? result : false; - if (!maybeMultipart && typeof result === "object" && result !== null && "hasNext" in result) { - maybeMultipart = [result]; - } - if (maybeMultipart) { - for (const part of maybeMultipart) { - mergeIncrementalResult(fullResponse, part); - } - setIsFetching(false); - setResponse(toolkit.formatResult(fullResponse)); - } else { - const response = toolkit.formatResult(result); - setIsFetching(false); - setResponse(response); - } - }; - const fetch2 = fetcher({ - query, - variables, - operationName: opName - }, { - headers: (_headers = headers) !== null && _headers !== void 0 ? _headers : void 0, - documentAST: (_queryEditor$document = queryEditor.documentAST) !== null && _queryEditor$document !== void 0 ? _queryEditor$document : void 0 - }); - const value2 = await Promise.resolve(fetch2); - if (toolkit.isObservable(value2)) { - setSubscription(value2.subscribe({ - next(result) { - handleResponse(result); - }, - error(error) { - setIsFetching(false); - if (error) { - setResponse(toolkit.formatError(error)); - } - setSubscription(null); - }, - complete() { - setIsFetching(false); - setSubscription(null); - } - })); - } else if (toolkit.isAsyncIterable(value2)) { - setSubscription({ - unsubscribe: () => { - var _a, _b; - return (_b = (_a = value2[Symbol.asyncIterator]()).return) == null ? void 0 : _b.call(_a); - } - }); - for await (const result of value2) { - handleResponse(result); - } - setIsFetching(false); - setSubscription(null); - } else { - handleResponse(value2); - } - } catch (error) { + let t3; + if ($[3] !== subscription) { + t3 = () => { + subscription == null ? void 0 : subscription.unsubscribe(); setIsFetching(false); - setResponse(toolkit.formatError(error)); setSubscription(null); - } - }, [autoCompleteLeafs, externalFragments, fetcher, headerEditor, history, operationName, queryEditor, responseEditor, stop, subscription, updateActiveTabValues, variableEditor]); + }; + $[3] = subscription; + $[4] = t3; + } else { + t3 = $[4]; + } + const stop = t3; + let t4; + if ($[5] !== autoCompleteLeafs || $[6] !== externalFragments || $[7] !== fetcher || $[8] !== headerEditor || $[9] !== history || $[10] !== operationName || $[11] !== queryEditor || $[12] !== responseEditor || $[13] !== stop || $[14] !== subscription || $[15] !== updateActiveTabValues || $[16] !== variableEditor) { + t4 = async () => { + var _ref, _headers2, _queryEditor$document; + if (!queryEditor || !responseEditor) { + return; + } + if (subscription) { + stop(); + return; + } + const setResponse = value => { + responseEditor.setValue(value); + updateActiveTabValues({ + response: value + }); + }; + queryIdRef.current = queryIdRef.current + 1; + const queryId = queryIdRef.current; + let query = autoCompleteLeafs() || queryEditor.getValue(); + const variablesString = variableEditor == null ? void 0 : variableEditor.getValue(); + let variables; + try { + variables = tryParseJsonObject({ + json: variablesString, + errorMessageParse: "Variables are invalid JSON", + errorMessageType: "Variables are not a JSON object." + }); + } catch (t52) { + const error = t52; + setResponse(error instanceof Error ? error.message : `${error}`); + return; + } + const headersString = headerEditor == null ? void 0 : headerEditor.getValue(); + let headers; + try { + headers = tryParseJsonObject({ + json: headersString, + errorMessageParse: "Headers are invalid JSON", + errorMessageType: "Headers are not a JSON object." + }); + } catch (t62) { + const error_0 = t62; + setResponse(error_0 instanceof Error ? error_0.message : `${error_0}`); + return; + } + if (externalFragments) { + const fragmentDependencies = queryEditor.documentAST ? graphqlLanguageService.getFragmentDependenciesForAST(queryEditor.documentAST, externalFragments) : []; + if (fragmentDependencies.length > 0) { + query = query + ("\n" + fragmentDependencies.map(_temp$7).join("\n")); + } + } + setResponse(""); + setIsFetching(true); + const opName = (_ref = operationName !== null && operationName !== void 0 ? operationName : queryEditor.operationName) !== null && _ref !== void 0 ? _ref : void 0; + history == null ? void 0 : history.addToHistory({ + query, + variables: variablesString, + headers: headersString, + operationName: opName + }); + const _headers = (_headers2 = headers) !== null && _headers2 !== void 0 ? _headers2 : void 0; + const documentAST = (_queryEditor$document = queryEditor.documentAST) !== null && _queryEditor$document !== void 0 ? _queryEditor$document : void 0; + try { + const fullResponse = {}; + const handleResponse = result => { + if (queryId !== queryIdRef.current) { + return; + } + let maybeMultipart = Array.isArray(result) ? result : false; + if (!maybeMultipart && typeof result === "object" && result !== null && "hasNext" in result) { + maybeMultipart = [result]; + } + if (maybeMultipart) { + for (const part of maybeMultipart) { + mergeIncrementalResult(fullResponse, part); + } + setIsFetching(false); + setResponse(toolkit.formatResult(fullResponse)); + } else { + const response = toolkit.formatResult(result); + setIsFetching(false); + setResponse(response); + } + }; + const fetch2 = fetcher({ + query, + variables, + operationName: opName + }, { + headers: _headers, + documentAST + }); + const value_0 = await Promise.resolve(fetch2); + if (toolkit.isObservable(value_0)) { + setSubscription(value_0.subscribe({ + next(result_0) { + handleResponse(result_0); + }, + error(error_2) { + setIsFetching(false); + if (error_2) { + setResponse(toolkit.formatError(error_2)); + } + setSubscription(null); + }, + complete() { + setIsFetching(false); + setSubscription(null); + } + })); + } else { + if (toolkit.isAsyncIterable(value_0)) { + setSubscription({ + unsubscribe: () => { + var _a, _b; + return (_b = (_a = value_0[Symbol.asyncIterator]()).return) == null ? void 0 : _b.call(_a); + } + }); + await handleAsyncResults(handleResponse, value_0); + setIsFetching(false); + setSubscription(null); + } else { + handleResponse(value_0); + } + } + } catch (t72) { + const error_1 = t72; + setIsFetching(false); + setResponse(toolkit.formatError(error_1)); + setSubscription(null); + } + }; + $[5] = autoCompleteLeafs; + $[6] = externalFragments; + $[7] = fetcher; + $[8] = headerEditor; + $[9] = history; + $[10] = operationName; + $[11] = queryEditor; + $[12] = responseEditor; + $[13] = stop; + $[14] = subscription; + $[15] = updateActiveTabValues; + $[16] = variableEditor; + $[17] = t4; + } else { + t4 = $[17]; + } + const run = t4; const isSubscribed = Boolean(subscription); - const value = React.useMemo(() => ({ - isFetching, - isSubscribed, - operationName: operationName !== null && operationName !== void 0 ? operationName : null, - run, - stop - }), [isFetching, isSubscribed, operationName, run, stop]); - return /* @__PURE__ */jsxRuntime.jsx(ExecutionContext.Provider, { - value, - children - }); + const t5 = operationName !== null && operationName !== void 0 ? operationName : null; + let t6; + if ($[18] !== isFetching || $[19] !== isSubscribed || $[20] !== run || $[21] !== stop || $[22] !== t5) { + t6 = { + isFetching, + isSubscribed, + operationName: t5, + run, + stop + }; + $[18] = isFetching; + $[19] = isSubscribed; + $[20] = run; + $[21] = stop; + $[22] = t5; + $[23] = t6; + } else { + t6 = $[23]; + } + const value_1 = t6; + let t7; + if ($[24] !== children || $[25] !== value_1) { + t7 = /* @__PURE__ */jsxRuntime.jsx(ExecutionContext.Provider, { + value: value_1, + children + }); + $[24] = children; + $[25] = value_1; + $[26] = t7; + } else { + t7 = $[26]; + } + return t7; +} +function _temp$7(node) { + return graphql.print(node); +} +async function handleAsyncResults(onResponse, value) { + for await (const result of value) { + onResponse(result); + } } const useExecutionContext = createContextHook(ExecutionContext); function tryParseJsonObject({ @@ -70017,13 +77378,12 @@ const commonKeys = { "Alt-Right": "goGroupRight" }; async function importCodeMirror(addons, options) { - const CodeMirror = await Promise.resolve().then(() => __webpack_require__(/*! ./codemirror.cjs.js */ "../../graphiql-react/dist/codemirror.cjs.js")).then(n => n.codemirror).then(c => + const CodeMirror = await Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror */ "../../../node_modules/codemirror/lib/codemirror.js"))).then(c => // Depending on bundler and settings the dynamic import either returns a // function (e.g. parcel) or an object containing a `default` property typeof c === "function" ? c : c.default); - await Promise.all((options == null ? void 0 : options.useCommonAddons) === false ? addons : [Promise.resolve().then(() => __webpack_require__(/*! ./show-hint.cjs.js */ "../../graphiql-react/dist/show-hint.cjs.js")).then(n => n.showHint), Promise.resolve().then(() => __webpack_require__(/*! ./matchbrackets.cjs.js */ "../../graphiql-react/dist/matchbrackets.cjs.js")).then(n => n.matchbrackets), Promise.resolve().then(() => __webpack_require__(/*! ./closebrackets.cjs.js */ "../../graphiql-react/dist/closebrackets.cjs.js")).then(n => n.closebrackets), Promise.resolve().then(() => __webpack_require__(/*! ./brace-fold.cjs.js */ "../../graphiql-react/dist/brace-fold.cjs.js")).then(n => n.braceFold), Promise.resolve().then(() => __webpack_require__(/*! ./foldgutter.cjs.js */ "../../graphiql-react/dist/foldgutter.cjs.js")).then(n => n.foldgutter), Promise.resolve().then(() => __webpack_require__(/*! ./lint.cjs.js */ "../../graphiql-react/dist/lint.cjs.js")).then(n => n.lint), Promise.resolve().then(() => __webpack_require__(/*! ./searchcursor.cjs.js */ "../../graphiql-react/dist/searchcursor.cjs.js")).then(n => n.searchcursor), Promise.resolve().then(() => __webpack_require__(/*! ./jump-to-line.cjs.js */ "../../graphiql-react/dist/jump-to-line.cjs.js")).then(n => n.jumpToLine), Promise.resolve().then(() => __webpack_require__(/*! ./dialog.cjs.js */ "../../graphiql-react/dist/dialog.cjs.js")).then(n => n.dialog), - // @ts-expect-error - Promise.resolve().then(() => __webpack_require__(/*! ./sublime.cjs.js */ "../../graphiql-react/dist/sublime.cjs.js")).then(n => n.sublime), ...addons]); + await Promise.all((options == null ? void 0 : options.useCommonAddons) === false ? addons : [Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/hint/show-hint.js */ "../../../node_modules/codemirror/addon/hint/show-hint.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/edit/matchbrackets.js */ "../../../node_modules/codemirror/addon/edit/matchbrackets.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/edit/closebrackets.js */ "../../../node_modules/codemirror/addon/edit/closebrackets.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/fold/brace-fold.js */ "../../../node_modules/codemirror/addon/fold/brace-fold.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/fold/foldgutter.js */ "../../../node_modules/codemirror/addon/fold/foldgutter.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/lint/lint.js */ "../../../node_modules/codemirror/addon/lint/lint.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/search/searchcursor.js */ "../../../node_modules/codemirror/addon/search/searchcursor.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/search/jump-to-line.js */ "../../../node_modules/codemirror/addon/search/jump-to-line.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/dialog/dialog.js */ "../../../node_modules/codemirror/addon/dialog/dialog.js"))), // @ts-expect-error + Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/keymap/sublime.js */ "../../../node_modules/codemirror/keymap/sublime.js"))), ...addons]); return CodeMirror; } const printDefault = ast => { @@ -70032,158 +77392,320 @@ const printDefault = ast => { } return graphql.print(ast); }; -function DefaultValue({ - field -}) { +function DefaultValue(t0) { + const $ = reactCompilerRuntime.c(12); + const { + field + } = t0; if (!("defaultValue" in field) || field.defaultValue === void 0) { return null; } - const ast = graphql.astFromValue(field.defaultValue, field.type); - if (!ast) { - return null; + const t1 = field.defaultValue; + const t2 = field.type; + let t3; + let t4; + let t5; + let t6; + if ($[0] !== field.defaultValue || $[1] !== field.type) { + t6 = Symbol.for("react.early_return_sentinel"); + bb0: { + const ast = graphql.astFromValue(t1, t2); + if (!ast) { + t6 = null; + break bb0; + } + t5 = " = "; + t3 = "graphiql-doc-explorer-default-value"; + t4 = printDefault(ast); + } + $[0] = field.defaultValue; + $[1] = field.type; + $[2] = t3; + $[3] = t4; + $[4] = t5; + $[5] = t6; + } else { + t3 = $[2]; + t4 = $[3]; + t5 = $[4]; + t6 = $[5]; } - return /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { - children: [" = ", /* @__PURE__ */jsxRuntime.jsx("span", { - className: "graphiql-doc-explorer-default-value", - children: printDefault(ast) - })] - }); + if (t6 !== Symbol.for("react.early_return_sentinel")) { + return t6; + } + let t7; + if ($[6] !== t3 || $[7] !== t4) { + t7 = /* @__PURE__ */jsxRuntime.jsx("span", { + className: t3, + children: t4 + }); + $[6] = t3; + $[7] = t4; + $[8] = t7; + } else { + t7 = $[8]; + } + let t8; + if ($[9] !== t5 || $[10] !== t7) { + t8 = /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { + children: [t5, t7] + }); + $[9] = t5; + $[10] = t7; + $[11] = t8; + } else { + t8 = $[11]; + } + return t8; } const SchemaContext = createNullableContext("SchemaContext"); -function SchemaContextProvider(props) { - if (!props.fetcher) { +function SchemaContextProvider(t0) { + const $ = reactCompilerRuntime.c(38); + let fetcher; + let onSchemaChange; + let props; + if ($[0] !== t0) { + ({ + fetcher, + onSchemaChange, + ...props + } = t0); + $[0] = t0; + $[1] = fetcher; + $[2] = onSchemaChange; + $[3] = props; + } else { + fetcher = $[1]; + onSchemaChange = $[2]; + props = $[3]; + } + if (!fetcher) { throw new TypeError("The `SchemaContextProvider` component requires a `fetcher` function to be passed as prop."); } + let t1; + if ($[4] === Symbol.for("react.memo_cache_sentinel")) { + t1 = { + nonNull: true, + caller: SchemaContextProvider + }; + $[4] = t1; + } else { + t1 = $[4]; + } const { initialHeaders, headerEditor - } = useEditorContext({ - nonNull: true, - caller: SchemaContextProvider - }); + } = useEditorContext(t1); const [schema, setSchema] = React.useState(); const [isFetching, setIsFetching] = React.useState(false); const [fetchError, setFetchError] = React.useState(null); const counterRef = React.useRef(0); - React.useEffect(() => { - setSchema(graphql.isSchema(props.schema) || props.schema === null || props.schema === void 0 ? props.schema : void 0); - counterRef.current++; - }, [props.schema]); + let t2; + let t3; + if ($[5] !== props.schema) { + t2 = () => { + setSchema(graphql.isSchema(props.schema) || props.schema == null ? props.schema : void 0); + counterRef.current = counterRef.current + 1; + }; + t3 = [props.schema]; + $[5] = props.schema; + $[6] = t2; + $[7] = t3; + } else { + t2 = $[6]; + t3 = $[7]; + } + React.useEffect(t2, t3); const headersRef = React.useRef(initialHeaders); - React.useEffect(() => { - if (headerEditor) { - headersRef.current = headerEditor.getValue(); - } - }); + let t4; + if ($[8] !== headerEditor) { + t4 = () => { + if (headerEditor) { + headersRef.current = headerEditor.getValue(); + } + }; + $[8] = headerEditor; + $[9] = t4; + } else { + t4 = $[9]; + } + React.useEffect(t4); + let t5; + if ($[10] !== props.inputValueDeprecation || $[11] !== props.introspectionQueryName || $[12] !== props.schemaDescription) { + t5 = { + inputValueDeprecation: props.inputValueDeprecation, + introspectionQueryName: props.introspectionQueryName, + schemaDescription: props.schemaDescription + }; + $[10] = props.inputValueDeprecation; + $[11] = props.introspectionQueryName; + $[12] = props.schemaDescription; + $[13] = t5; + } else { + t5 = $[13]; + } const { introspectionQuery, introspectionQueryName, introspectionQuerySansSubscriptions - } = useIntrospectionQuery({ - inputValueDeprecation: props.inputValueDeprecation, - introspectionQueryName: props.introspectionQueryName, - schemaDescription: props.schemaDescription - }); - const { - fetcher, - onSchemaChange, - dangerouslyAssumeSchemaIsValid, - children - } = props; - const introspect = React.useCallback(() => { - if (graphql.isSchema(props.schema) || props.schema === null) { - return; - } - const counter = ++counterRef.current; - const maybeIntrospectionData = props.schema; - async function fetchIntrospectionData() { - if (maybeIntrospectionData) { - return maybeIntrospectionData; - } - const parsedHeaders = parseHeaderString(headersRef.current); - if (!parsedHeaders.isValidJSON) { - setFetchError("Introspection failed as headers are invalid."); + } = useIntrospectionQuery(t5); + let t6; + if ($[14] !== fetcher || $[15] !== introspectionQuery || $[16] !== introspectionQueryName || $[17] !== introspectionQuerySansSubscriptions || $[18] !== onSchemaChange || $[19] !== props.schema) { + t6 = () => { + if (graphql.isSchema(props.schema) || props.schema === null) { return; } - const fetcherOpts = parsedHeaders.headers ? { - headers: parsedHeaders.headers - } : {}; - const fetch2 = toolkit.fetcherReturnToPromise(fetcher({ - query: introspectionQuery, - operationName: introspectionQueryName - }, fetcherOpts)); - if (!toolkit.isPromise(fetch2)) { - setFetchError("Fetcher did not return a Promise for introspection."); - return; - } - setIsFetching(true); - setFetchError(null); - let result = await fetch2; - if (typeof result !== "object" || result === null || !("data" in result)) { - const fetch22 = toolkit.fetcherReturnToPromise(fetcher({ - query: introspectionQuerySansSubscriptions, + const counter = counterRef.current = counterRef.current + 1; + const maybeIntrospectionData = props.schema; + const fetchIntrospectionData = async function fetchIntrospectionData2() { + if (maybeIntrospectionData) { + return maybeIntrospectionData; + } + const parsedHeaders = parseHeaderString(headersRef.current); + if (!parsedHeaders.isValidJSON) { + setFetchError("Introspection failed as headers are invalid."); + return; + } + const fetcherOpts = parsedHeaders.headers ? { + headers: parsedHeaders.headers + } : {}; + const fetch2 = toolkit.fetcherReturnToPromise(fetcher({ + query: introspectionQuery, operationName: introspectionQueryName }, fetcherOpts)); - if (!toolkit.isPromise(fetch22)) { - throw new Error("Fetcher did not return a Promise for introspection."); + if (!toolkit.isPromise(fetch2)) { + setFetchError("Fetcher did not return a Promise for introspection."); + return; } - result = await fetch22; - } - setIsFetching(false); - if ((result == null ? void 0 : result.data) && "__schema" in result.data) { - return result.data; - } - const responseString = typeof result === "string" ? result : toolkit.formatResult(result); - setFetchError(responseString); - } - fetchIntrospectionData().then(introspectionData => { - if (counter !== counterRef.current || !introspectionData) { - return; - } - try { - const newSchema = graphql.buildClientSchema(introspectionData); - setSchema(newSchema); - onSchemaChange == null ? void 0 : onSchemaChange(newSchema); - } catch (error) { - setFetchError(toolkit.formatError(error)); - } - }).catch(error => { - if (counter !== counterRef.current) { - return; - } - setFetchError(toolkit.formatError(error)); - setIsFetching(false); + setIsFetching(true); + setFetchError(null); + let result = await fetch2; + if (typeof result !== "object" || result === null || !("data" in result)) { + const fetch22 = toolkit.fetcherReturnToPromise(fetcher({ + query: introspectionQuerySansSubscriptions, + operationName: introspectionQueryName + }, fetcherOpts)); + if (!toolkit.isPromise(fetch22)) { + throw new Error("Fetcher did not return a Promise for introspection."); + } + result = await fetch22; + } + setIsFetching(false); + if ((result == null ? void 0 : result.data) && "__schema" in result.data) { + return result.data; + } + const responseString = typeof result === "string" ? result : toolkit.formatResult(result); + setFetchError(responseString); + }; + fetchIntrospectionData().then(introspectionData => { + if (counter !== counterRef.current || !introspectionData) { + return; + } + try { + const newSchema = graphql.buildClientSchema(introspectionData); + setSchema(newSchema); + if (onSchemaChange) { + onSchemaChange(newSchema); + } + } catch (t72) { + const error = t72; + setFetchError(toolkit.formatError(error)); + } + }).catch(error_0 => { + if (counter !== counterRef.current) { + return; + } + setFetchError(toolkit.formatError(error_0)); + setIsFetching(false); + }); + }; + $[14] = fetcher; + $[15] = introspectionQuery; + $[16] = introspectionQueryName; + $[17] = introspectionQuerySansSubscriptions; + $[18] = onSchemaChange; + $[19] = props.schema; + $[20] = t6; + } else { + t6 = $[20]; + } + const introspect = t6; + let t7; + let t8; + if ($[21] !== introspect) { + t7 = () => { + introspect(); + }; + t8 = [introspect]; + $[21] = introspect; + $[22] = t7; + $[23] = t8; + } else { + t7 = $[22]; + t8 = $[23]; + } + React.useEffect(t7, t8); + let t9; + if ($[24] !== introspect) { + t9 = () => { + const triggerIntrospection = function triggerIntrospection2(event) { + if (event.ctrlKey && event.key === "R") { + introspect(); + } + }; + window.addEventListener("keydown", triggerIntrospection); + return () => { + window.removeEventListener("keydown", triggerIntrospection); + }; + }; + $[24] = introspect; + $[25] = t9; + } else { + t9 = $[25]; + } + React.useEffect(t9); + let t10; + if ($[26] !== props.dangerouslyAssumeSchemaIsValid || $[27] !== schema) { + t10 = !schema || props.dangerouslyAssumeSchemaIsValid ? [] : graphql.validateSchema(schema); + $[26] = props.dangerouslyAssumeSchemaIsValid; + $[27] = schema; + $[28] = t10; + } else { + t10 = $[28]; + } + const validationErrors = t10; + let t11; + if ($[29] !== fetchError || $[30] !== introspect || $[31] !== isFetching || $[32] !== schema || $[33] !== validationErrors) { + t11 = { + fetchError, + introspect, + isFetching, + schema, + validationErrors + }; + $[29] = fetchError; + $[30] = introspect; + $[31] = isFetching; + $[32] = schema; + $[33] = validationErrors; + $[34] = t11; + } else { + t11 = $[34]; + } + const value = t11; + let t12; + if ($[35] !== props.children || $[36] !== value) { + t12 = /* @__PURE__ */jsxRuntime.jsx(SchemaContext.Provider, { + value, + children: props.children }); - }, [fetcher, introspectionQueryName, introspectionQuery, introspectionQuerySansSubscriptions, onSchemaChange, props.schema]); - React.useEffect(() => { - introspect(); - }, [introspect]); - React.useEffect(() => { - function triggerIntrospection(event) { - if (event.ctrlKey && event.key === "R") { - introspect(); - } - } - window.addEventListener("keydown", triggerIntrospection); - return () => window.removeEventListener("keydown", triggerIntrospection); - }); - const validationErrors = React.useMemo(() => { - if (!schema || dangerouslyAssumeSchemaIsValid) { - return []; - } - return graphql.validateSchema(schema); - }, [schema, dangerouslyAssumeSchemaIsValid]); - const value = React.useMemo(() => ({ - fetchError, - introspect, - isFetching, - schema, - validationErrors - }), [fetchError, introspect, isFetching, schema, validationErrors]); - return /* @__PURE__ */jsxRuntime.jsx(SchemaContext.Provider, { - value, - children - }); + $[35] = props.children; + $[36] = value; + $[37] = t12; + } else { + t12 = $[37]; + } + return t12; } const useSchemaContext = createContextHook(SchemaContext); function useIntrospectionQuery({ @@ -70191,22 +77713,20 @@ function useIntrospectionQuery({ introspectionQueryName, schemaDescription }) { - return React.useMemo(() => { - const queryName = introspectionQueryName || "IntrospectionQuery"; - let query = graphql.getIntrospectionQuery({ - inputValueDeprecation, - schemaDescription - }); - if (introspectionQueryName) { - query = query.replace("query IntrospectionQuery", `query ${queryName}`); - } - const querySansSubscriptions = query.replace("subscriptionType { name }", ""); - return { - introspectionQueryName: queryName, - introspectionQuery: query, - introspectionQuerySansSubscriptions: querySansSubscriptions - }; - }, [inputValueDeprecation, introspectionQueryName, schemaDescription]); + const queryName = introspectionQueryName || "IntrospectionQuery"; + let query = graphql.getIntrospectionQuery({ + inputValueDeprecation, + schemaDescription + }); + if (introspectionQueryName) { + query = query.replace("query IntrospectionQuery", `query ${queryName}`); + } + const querySansSubscriptions = query.replace("subscriptionType { name }", ""); + return { + introspectionQueryName: queryName, + introspectionQuery: query, + introspectionQuerySansSubscriptions: querySansSubscriptions + }; } function parseHeaderString(headersString) { let headers = null; @@ -70228,99 +77748,175 @@ const initialNavStackItem = { }; const ExplorerContext = createNullableContext("ExplorerContext"); function ExplorerContextProvider(props) { + const $ = reactCompilerRuntime.c(14); + let t0; + if ($[0] === Symbol.for("react.memo_cache_sentinel")) { + t0 = { + nonNull: true, + caller: ExplorerContextProvider + }; + $[0] = t0; + } else { + t0 = $[0]; + } const { schema, validationErrors - } = useSchemaContext({ - nonNull: true, - caller: ExplorerContextProvider - }); - const [navStack, setNavStack] = React.useState([initialNavStackItem]); - const push = React.useCallback(item => { - setNavStack(currentState => { - const lastItem = currentState.at(-1); - return lastItem.def === item.def ? - // Avoid pushing duplicate items - currentState : [...currentState, item]; - }); - }, []); - const pop = React.useCallback(() => { - setNavStack(currentState => currentState.length > 1 ? currentState.slice(0, -1) : currentState); - }, []); - const reset = React.useCallback(() => { - setNavStack(currentState => currentState.length === 1 ? currentState : [initialNavStackItem]); - }, []); - React.useEffect(() => { - if (schema == null || validationErrors.length > 0) { - reset(); - } else { - setNavStack(oldNavStack => { - if (oldNavStack.length === 1) { - return oldNavStack; - } - const newNavStack = [initialNavStackItem]; - let lastEntity = null; - for (const item of oldNavStack) { - if (item === initialNavStackItem) { - continue; - } - if (item.def) { - if (graphql.isNamedType(item.def)) { - const newType = schema.getType(item.def.name); - if (newType) { - newNavStack.push({ - name: item.name, - def: newType - }); - lastEntity = newType; - } else { - break; - } - } else if (lastEntity === null) { - break; - } else if (graphql.isObjectType(lastEntity) || graphql.isInputObjectType(lastEntity)) { - const field = lastEntity.getFields()[item.name]; - if (field) { - newNavStack.push({ - name: item.name, - def: field - }); - } else { - break; - } - } else if (graphql.isScalarType(lastEntity) || graphql.isEnumType(lastEntity) || graphql.isInterfaceType(lastEntity) || graphql.isUnionType(lastEntity)) { - break; - } else { - const field = lastEntity; - const arg = field.args.find(a => a.name === item.name); - if (arg) { - newNavStack.push({ - name: item.name, - def: field - }); - } else { - break; - } - } - } else { - lastEntity = null; - newNavStack.push(item); - } - } - return newNavStack; + } = useSchemaContext(t0); + let t1; + if ($[1] === Symbol.for("react.memo_cache_sentinel")) { + t1 = [initialNavStackItem]; + $[1] = t1; + } else { + t1 = $[1]; + } + const [navStack, setNavStack] = React.useState(t1); + let t2; + if ($[2] === Symbol.for("react.memo_cache_sentinel")) { + t2 = item => { + setNavStack(currentState => { + const lastItem = currentState.at(-1); + return lastItem.def === item.def ? currentState : [...currentState, item]; }); - } - }, [reset, schema, validationErrors]); - const value = React.useMemo(() => ({ - explorerNavStack: navStack, - push, - pop, - reset - }), [navStack, push, pop, reset]); - return /* @__PURE__ */jsxRuntime.jsx(ExplorerContext.Provider, { - value, - children: props.children - }); + }; + $[2] = t2; + } else { + t2 = $[2]; + } + const push = t2; + let t3; + if ($[3] === Symbol.for("react.memo_cache_sentinel")) { + t3 = () => { + setNavStack(_temp$6); + }; + $[3] = t3; + } else { + t3 = $[3]; + } + const pop = t3; + let t4; + if ($[4] === Symbol.for("react.memo_cache_sentinel")) { + t4 = () => { + setNavStack(_temp2$3); + }; + $[4] = t4; + } else { + t4 = $[4]; + } + const reset = t4; + let t5; + let t6; + if ($[5] !== schema || $[6] !== validationErrors) { + t5 = () => { + if (schema == null || validationErrors.length > 0) { + reset(); + } else { + setNavStack(oldNavStack => { + if (oldNavStack.length === 1) { + return oldNavStack; + } + const newNavStack = [initialNavStackItem]; + let lastEntity = null; + for (const item_0 of oldNavStack) { + if (item_0 === initialNavStackItem) { + continue; + } + if (item_0.def) { + if (graphql.isNamedType(item_0.def)) { + const newType = schema.getType(item_0.def.name); + if (newType) { + newNavStack.push({ + name: item_0.name, + def: newType + }); + lastEntity = newType; + } else { + break; + } + } else { + if (lastEntity === null) { + break; + } else { + if (graphql.isObjectType(lastEntity) || graphql.isInputObjectType(lastEntity)) { + const field = lastEntity.getFields()[item_0.name]; + if (field) { + newNavStack.push({ + name: item_0.name, + def: field + }); + } else { + break; + } + } else { + if (graphql.isScalarType(lastEntity) || graphql.isEnumType(lastEntity) || graphql.isInterfaceType(lastEntity) || graphql.isUnionType(lastEntity)) { + break; + } else { + const field_0 = lastEntity; + const arg = field_0.args.find(a => a.name === item_0.name); + if (arg) { + newNavStack.push({ + name: item_0.name, + def: field_0 + }); + } else { + break; + } + } + } + } + } + } else { + lastEntity = null; + newNavStack.push(item_0); + } + } + return newNavStack; + }); + } + }; + t6 = [schema, validationErrors]; + $[5] = schema; + $[6] = validationErrors; + $[7] = t5; + $[8] = t6; + } else { + t5 = $[7]; + t6 = $[8]; + } + React.useEffect(t5, t6); + let t7; + if ($[9] !== navStack) { + t7 = { + explorerNavStack: navStack, + push, + pop, + reset + }; + $[9] = navStack; + $[10] = t7; + } else { + t7 = $[10]; + } + const value = t7; + let t8; + if ($[11] !== props.children || $[12] !== value) { + t8 = /* @__PURE__ */jsxRuntime.jsx(ExplorerContext.Provider, { + value, + children: props.children + }); + $[11] = props.children; + $[12] = value; + $[13] = t8; + } else { + t8 = $[13]; + } + return t8; +} +function _temp2$3(currentState_1) { + return currentState_1.length === 1 ? currentState_1 : [initialNavStackItem]; +} +function _temp$6(currentState_0) { + return currentState_0.length > 1 ? currentState_0.slice(0, -1) : currentState_0; } const useExplorerContext = createContextHook(ExplorerContext); function renderType(type, renderNamedType) { @@ -70337,52 +77933,122 @@ function renderType(type, renderNamedType) { return renderNamedType(type); } function TypeLink(props) { + const $ = reactCompilerRuntime.c(6); + let t0; + if ($[0] === Symbol.for("react.memo_cache_sentinel")) { + t0 = { + nonNull: true, + caller: TypeLink + }; + $[0] = t0; + } else { + t0 = $[0]; + } const { push - } = useExplorerContext({ - nonNull: true, - caller: TypeLink - }); + } = useExplorerContext(t0); if (!props.type) { return null; } - return renderType(props.type, namedType => /* @__PURE__ */jsxRuntime.jsx("a", { - className: "graphiql-doc-explorer-type-name", - onClick: event => { - event.preventDefault(); - push({ - name: namedType.name, - def: namedType - }); - }, - href: "#", - children: namedType.name - })); + let t1; + if ($[1] !== push) { + t1 = namedType => /* @__PURE__ */jsxRuntime.jsx("a", { + className: "graphiql-doc-explorer-type-name", + onClick: event => { + event.preventDefault(); + push({ + name: namedType.name, + def: namedType + }); + }, + href: "#", + children: namedType.name + }); + $[1] = push; + $[2] = t1; + } else { + t1 = $[2]; + } + let t2; + if ($[3] !== props.type || $[4] !== t1) { + t2 = renderType(props.type, t1); + $[3] = props.type; + $[4] = t1; + $[5] = t2; + } else { + t2 = $[5]; + } + return t2; } -function Argument({ - arg, - showDefaultValue, - inline -}) { - const definition = /* @__PURE__ */jsxRuntime.jsxs("span", { - children: [/* @__PURE__ */jsxRuntime.jsx("span", { +function Argument(t0) { + const $ = reactCompilerRuntime.c(19); + const { + arg, + showDefaultValue, + inline + } = t0; + let t1; + if ($[0] !== arg.name) { + t1 = /* @__PURE__ */jsxRuntime.jsx("span", { className: "graphiql-doc-explorer-argument-name", children: arg.name - }), ": ", /* @__PURE__ */jsxRuntime.jsx(TypeLink, { + }); + $[0] = arg.name; + $[1] = t1; + } else { + t1 = $[1]; + } + let t2; + if ($[2] !== arg.type) { + t2 = /* @__PURE__ */jsxRuntime.jsx(TypeLink, { type: arg.type - }), showDefaultValue !== false && /* @__PURE__ */jsxRuntime.jsx(DefaultValue, { + }); + $[2] = arg.type; + $[3] = t2; + } else { + t2 = $[3]; + } + let t3; + if ($[4] !== arg || $[5] !== showDefaultValue) { + t3 = showDefaultValue !== false && /* @__PURE__ */jsxRuntime.jsx(DefaultValue, { field: arg - })] - }); + }); + $[4] = arg; + $[5] = showDefaultValue; + $[6] = t3; + } else { + t3 = $[6]; + } + let t4; + if ($[7] !== t1 || $[8] !== t2 || $[9] !== t3) { + t4 = /* @__PURE__ */jsxRuntime.jsxs("span", { + children: [t1, ": ", t2, t3] + }); + $[7] = t1; + $[8] = t2; + $[9] = t3; + $[10] = t4; + } else { + t4 = $[10]; + } + const definition = t4; if (inline) { return definition; } - return /* @__PURE__ */jsxRuntime.jsxs("div", { - className: "graphiql-doc-explorer-argument", - children: [definition, arg.description ? /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { + let t5; + if ($[11] !== arg.description) { + t5 = arg.description ? /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { type: "description", children: arg.description - }) : null, arg.deprecationReason ? /* @__PURE__ */jsxRuntime.jsxs("div", { + }) : null; + $[11] = arg.description; + $[12] = t5; + } else { + t5 = $[12]; + } + let t6; + if ($[13] !== arg.deprecationReason) { + t6 = arg.deprecationReason ? /* @__PURE__ */jsxRuntime.jsxs("div", { className: "graphiql-doc-explorer-argument-deprecation", children: [/* @__PURE__ */jsxRuntime.jsx("div", { className: "graphiql-doc-explorer-argument-deprecation-label", @@ -70391,42 +78057,115 @@ function Argument({ type: "deprecation", children: arg.deprecationReason })] - }) : null] - }); + }) : null; + $[13] = arg.deprecationReason; + $[14] = t6; + } else { + t6 = $[14]; + } + let t7; + if ($[15] !== definition || $[16] !== t5 || $[17] !== t6) { + t7 = /* @__PURE__ */jsxRuntime.jsxs("div", { + className: "graphiql-doc-explorer-argument", + children: [definition, t5, t6] + }); + $[15] = definition; + $[16] = t5; + $[17] = t6; + $[18] = t7; + } else { + t7 = $[18]; + } + return t7; } function DeprecationReason(props) { - var _props$preview; - return props.children ? /* @__PURE__ */jsxRuntime.jsxs("div", { - className: "graphiql-doc-explorer-deprecation", - children: [/* @__PURE__ */jsxRuntime.jsx("div", { - className: "graphiql-doc-explorer-deprecation-label", - children: "Deprecated" - }), /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { - type: "deprecation", - onlyShowFirstChild: (_props$preview = props.preview) !== null && _props$preview !== void 0 ? _props$preview : true, - children: props.children - })] - }) : null; + const $ = reactCompilerRuntime.c(3); + let t0; + if ($[0] !== props.children || $[1] !== props.preview) { + var _props$preview; + t0 = props.children ? /* @__PURE__ */jsxRuntime.jsxs("div", { + className: "graphiql-doc-explorer-deprecation", + children: [/* @__PURE__ */jsxRuntime.jsx("div", { + className: "graphiql-doc-explorer-deprecation-label", + children: "Deprecated" + }), /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { + type: "deprecation", + onlyShowFirstChild: (_props$preview = props.preview) !== null && _props$preview !== void 0 ? _props$preview : true, + children: props.children + })] + }) : null; + $[0] = props.children; + $[1] = props.preview; + $[2] = t0; + } else { + t0 = $[2]; + } + return t0; } -function Directive({ - directive -}) { - return /* @__PURE__ */jsxRuntime.jsxs("span", { - className: "graphiql-doc-explorer-directive", - children: ["@", directive.name.value] - }); +function Directive(t0) { + const $ = reactCompilerRuntime.c(2); + const { + directive + } = t0; + let t1; + if ($[0] !== directive.name.value) { + t1 = /* @__PURE__ */jsxRuntime.jsxs("span", { + className: "graphiql-doc-explorer-directive", + children: ["@", directive.name.value] + }); + $[0] = directive.name.value; + $[1] = t1; + } else { + t1 = $[1]; + } + return t1; } function ExplorerSection(props) { + const $ = reactCompilerRuntime.c(10); const Icon2 = TYPE_TO_ICON[props.title]; - return /* @__PURE__ */jsxRuntime.jsxs("div", { - children: [/* @__PURE__ */jsxRuntime.jsxs("div", { + let t0; + if ($[0] !== Icon2) { + t0 = /* @__PURE__ */jsxRuntime.jsx(Icon2, {}); + $[0] = Icon2; + $[1] = t0; + } else { + t0 = $[1]; + } + let t1; + if ($[2] !== props.title || $[3] !== t0) { + t1 = /* @__PURE__ */jsxRuntime.jsxs("div", { className: "graphiql-doc-explorer-section-title", - children: [/* @__PURE__ */jsxRuntime.jsx(Icon2, {}), props.title] - }), /* @__PURE__ */jsxRuntime.jsx("div", { + children: [t0, props.title] + }); + $[2] = props.title; + $[3] = t0; + $[4] = t1; + } else { + t1 = $[4]; + } + let t2; + if ($[5] !== props.children) { + t2 = /* @__PURE__ */jsxRuntime.jsx("div", { className: "graphiql-doc-explorer-section-content", children: props.children - })] - }); + }); + $[5] = props.children; + $[6] = t2; + } else { + t2 = $[6]; + } + let t3; + if ($[7] !== t1 || $[8] !== t2) { + t3 = /* @__PURE__ */jsxRuntime.jsxs("div", { + children: [t1, t2] + }); + $[7] = t1; + $[8] = t2; + $[9] = t3; + } else { + t3 = $[9]; + } + return t3; } const TYPE_TO_ICON = { Arguments: ArgumentIcon, @@ -70444,130 +78183,380 @@ const TYPE_TO_ICON = { "All Schema Types": TypeIcon }; function FieldDocumentation(props) { - return /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { - children: [props.field.description ? /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { + const $ = reactCompilerRuntime.c(15); + let t0; + if ($[0] !== props.field.description) { + t0 = props.field.description ? /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { type: "description", children: props.field.description - }) : null, /* @__PURE__ */jsxRuntime.jsx(DeprecationReason, { + }) : null; + $[0] = props.field.description; + $[1] = t0; + } else { + t0 = $[1]; + } + let t1; + if ($[2] !== props.field.deprecationReason) { + t1 = /* @__PURE__ */jsxRuntime.jsx(DeprecationReason, { preview: false, children: props.field.deprecationReason - }), /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { + }); + $[2] = props.field.deprecationReason; + $[3] = t1; + } else { + t1 = $[3]; + } + let t2; + if ($[4] !== props.field.type) { + t2 = /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { title: "Type", children: /* @__PURE__ */jsxRuntime.jsx(TypeLink, { type: props.field.type }) - }), /* @__PURE__ */jsxRuntime.jsx(Arguments, { + }); + $[4] = props.field.type; + $[5] = t2; + } else { + t2 = $[5]; + } + let t3; + let t4; + if ($[6] !== props.field) { + t3 = /* @__PURE__ */jsxRuntime.jsx(Arguments, { field: props.field - }), /* @__PURE__ */jsxRuntime.jsx(Directives, { + }); + t4 = /* @__PURE__ */jsxRuntime.jsx(Directives, { field: props.field - })] - }); + }); + $[6] = props.field; + $[7] = t3; + $[8] = t4; + } else { + t3 = $[7]; + t4 = $[8]; + } + let t5; + if ($[9] !== t0 || $[10] !== t1 || $[11] !== t2 || $[12] !== t3 || $[13] !== t4) { + t5 = /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { + children: [t0, t1, t2, t3, t4] + }); + $[9] = t0; + $[10] = t1; + $[11] = t2; + $[12] = t3; + $[13] = t4; + $[14] = t5; + } else { + t5 = $[14]; + } + return t5; } -function Arguments({ - field -}) { +function Arguments(t0) { + const $ = reactCompilerRuntime.c(12); + const { + field + } = t0; const [showDeprecated, setShowDeprecated] = React.useState(false); - const handleShowDeprecated = React.useCallback(() => { - setShowDeprecated(true); - }, []); + let t1; + if ($[0] === Symbol.for("react.memo_cache_sentinel")) { + t1 = () => { + setShowDeprecated(true); + }; + $[0] = t1; + } else { + t1 = $[0]; + } + const handleShowDeprecated = t1; if (!("args" in field)) { return null; } - const args = []; - const deprecatedArgs = []; - for (const argument of field.args) { - if (argument.deprecationReason) { - deprecatedArgs.push(argument); - } else { - args.push(argument); + let args; + let deprecatedArgs; + let t2; + if ($[1] !== field.args) { + args = []; + deprecatedArgs = []; + for (const argument of field.args) { + if (argument.deprecationReason) { + deprecatedArgs.push(argument); + } else { + args.push(argument); + } } - } - return /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { - children: [args.length > 0 ? /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { + t2 = args.length > 0 ? /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { title: "Arguments", - children: args.map(arg => /* @__PURE__ */jsxRuntime.jsx(Argument, { - arg - }, arg.name)) - }) : null, deprecatedArgs.length > 0 ? showDeprecated || args.length === 0 ? /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { + children: args.map(_temp$5) + }) : null; + $[1] = field.args; + $[2] = args; + $[3] = deprecatedArgs; + $[4] = t2; + } else { + args = $[2]; + deprecatedArgs = $[3]; + t2 = $[4]; + } + let t3; + if ($[5] !== args.length || $[6] !== deprecatedArgs || $[7] !== showDeprecated) { + t3 = deprecatedArgs.length > 0 ? showDeprecated || args.length === 0 ? /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { title: "Deprecated Arguments", - children: deprecatedArgs.map(arg => /* @__PURE__ */jsxRuntime.jsx(Argument, { - arg - }, arg.name)) + children: deprecatedArgs.map(_temp2$2) }) : /* @__PURE__ */jsxRuntime.jsx(Button$1, { type: "button", onClick: handleShowDeprecated, children: "Show Deprecated Arguments" - }) : null] - }); + }) : null; + $[5] = args.length; + $[6] = deprecatedArgs; + $[7] = showDeprecated; + $[8] = t3; + } else { + t3 = $[8]; + } + let t4; + if ($[9] !== t2 || $[10] !== t3) { + t4 = /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { + children: [t2, t3] + }); + $[9] = t2; + $[10] = t3; + $[11] = t4; + } else { + t4 = $[11]; + } + return t4; } -function Directives({ - field -}) { - var _a; - const directives = ((_a = field.astNode) == null ? void 0 : _a.directives) || []; +function _temp2$2(arg_0) { + return /* @__PURE__ */jsxRuntime.jsx(Argument, { + arg: arg_0 + }, arg_0.name); +} +function _temp$5(arg) { + return /* @__PURE__ */jsxRuntime.jsx(Argument, { + arg + }, arg.name); +} +function Directives(t0) { + var _a, _b, _c; + const $ = reactCompilerRuntime.c(6); + const { + field + } = t0; + let t1; + if ($[0] !== ((_a = field.astNode) == null ? void 0 : _a.directives)) { + t1 = ((_b = field.astNode) == null ? void 0 : _b.directives) || []; + $[0] = (_c = field.astNode) == null ? void 0 : _c.directives; + $[1] = t1; + } else { + t1 = $[1]; + } + const directives = t1; if (!directives || directives.length === 0) { return null; } - return /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { - title: "Directives", - children: directives.map(directive => /* @__PURE__ */jsxRuntime.jsx("div", { - children: /* @__PURE__ */jsxRuntime.jsx(Directive, { - directive - }) - }, directive.name.value)) - }); + let t2; + if ($[2] !== directives) { + t2 = directives.map(_temp3$2); + $[2] = directives; + $[3] = t2; + } else { + t2 = $[3]; + } + let t3; + if ($[4] !== t2) { + t3 = /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { + title: "Directives", + children: t2 + }); + $[4] = t2; + $[5] = t3; + } else { + t3 = $[5]; + } + return t3; +} +function _temp3$2(directive) { + return /* @__PURE__ */jsxRuntime.jsx("div", { + children: /* @__PURE__ */jsxRuntime.jsx(Directive, { + directive + }) + }, directive.name.value); } function SchemaDocumentation(props) { var _a, _b, _c, _d; - const queryType = props.schema.getQueryType(); - const mutationType = (_b = (_a = props.schema).getMutationType) == null ? void 0 : _b.call(_a); - const subscriptionType = (_d = (_c = props.schema).getSubscriptionType) == null ? void 0 : _d.call(_c); - const typeMap = props.schema.getTypeMap(); - const ignoreTypesInAllSchema = [queryType == null ? void 0 : queryType.name, mutationType == null ? void 0 : mutationType.name, subscriptionType == null ? void 0 : subscriptionType.name]; - return /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { - children: [/* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { - type: "description", - children: props.schema.description || "A GraphQL schema provides a root type for each kind of operation." - }), /* @__PURE__ */jsxRuntime.jsxs(ExplorerSection, { - title: "Root Types", - children: [queryType ? /* @__PURE__ */jsxRuntime.jsxs("div", { + const $ = reactCompilerRuntime.c(39); + let t0; + if ($[0] !== props.schema) { + t0 = props.schema.getQueryType(); + $[0] = props.schema; + $[1] = t0; + } else { + t0 = $[1]; + } + const queryType = t0; + let t1; + if ($[2] !== props.schema) { + t1 = (_b = (_a = props.schema).getMutationType) == null ? void 0 : _b.call(_a); + $[2] = props.schema; + $[3] = t1; + } else { + t1 = $[3]; + } + const mutationType = t1; + let t2; + if ($[4] !== props.schema) { + t2 = (_d = (_c = props.schema).getSubscriptionType) == null ? void 0 : _d.call(_c); + $[4] = props.schema; + $[5] = t2; + } else { + t2 = $[5]; + } + const subscriptionType = t2; + let T0; + let t3; + let t4; + let t5; + let t6; + if ($[6] !== mutationType || $[7] !== props.schema || $[8] !== queryType || $[9] !== subscriptionType) { + const typeMap = props.schema.getTypeMap(); + const t72 = queryType == null ? void 0 : queryType.name; + const t82 = mutationType == null ? void 0 : mutationType.name; + const t9 = subscriptionType == null ? void 0 : subscriptionType.name; + let t10; + if ($[15] !== t72 || $[16] !== t82 || $[17] !== t9) { + t10 = [t72, t82, t9]; + $[15] = t72; + $[16] = t82; + $[17] = t9; + $[18] = t10; + } else { + t10 = $[18]; + } + const ignoreTypesInAllSchema = t10; + const t11 = props.schema.description || "A GraphQL schema provides a root type for each kind of operation."; + if ($[19] !== t11) { + t5 = /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { + type: "description", + children: t11 + }); + $[19] = t11; + $[20] = t5; + } else { + t5 = $[20]; + } + let t12; + if ($[21] !== queryType) { + t12 = queryType ? /* @__PURE__ */jsxRuntime.jsxs("div", { children: [/* @__PURE__ */jsxRuntime.jsx("span", { className: "graphiql-doc-explorer-root-type", children: "query" }), ": ", /* @__PURE__ */jsxRuntime.jsx(TypeLink, { type: queryType })] - }) : null, mutationType && /* @__PURE__ */jsxRuntime.jsxs("div", { + }) : null; + $[21] = queryType; + $[22] = t12; + } else { + t12 = $[22]; + } + let t13; + if ($[23] !== mutationType) { + t13 = mutationType && /* @__PURE__ */jsxRuntime.jsxs("div", { children: [/* @__PURE__ */jsxRuntime.jsx("span", { className: "graphiql-doc-explorer-root-type", children: "mutation" }), ": ", /* @__PURE__ */jsxRuntime.jsx(TypeLink, { type: mutationType })] - }), subscriptionType && /* @__PURE__ */jsxRuntime.jsxs("div", { + }); + $[23] = mutationType; + $[24] = t13; + } else { + t13 = $[24]; + } + let t14; + if ($[25] !== subscriptionType) { + t14 = subscriptionType && /* @__PURE__ */jsxRuntime.jsxs("div", { children: [/* @__PURE__ */jsxRuntime.jsx("span", { className: "graphiql-doc-explorer-root-type", children: "subscription" }), ": ", /* @__PURE__ */jsxRuntime.jsx(TypeLink, { type: subscriptionType })] - })] - }), /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { - title: "All Schema Types", - children: typeMap && /* @__PURE__ */jsxRuntime.jsx("div", { - children: Object.values(typeMap).map(type => { - if (ignoreTypesInAllSchema.includes(type.name) || type.name.startsWith("__")) { - return null; - } - return /* @__PURE__ */jsxRuntime.jsx("div", { - children: /* @__PURE__ */jsxRuntime.jsx(TypeLink, { - type - }) - }, type.name); - }) + }); + $[25] = subscriptionType; + $[26] = t14; + } else { + t14 = $[26]; + } + if ($[27] !== t12 || $[28] !== t13 || $[29] !== t14) { + t6 = /* @__PURE__ */jsxRuntime.jsxs(ExplorerSection, { + title: "Root Types", + children: [t12, t13, t14] + }); + $[27] = t12; + $[28] = t13; + $[29] = t14; + $[30] = t6; + } else { + t6 = $[30]; + } + T0 = ExplorerSection; + t3 = "All Schema Types"; + t4 = typeMap && /* @__PURE__ */jsxRuntime.jsx("div", { + children: Object.values(typeMap).map(type => { + if (ignoreTypesInAllSchema.includes(type.name) || type.name.startsWith("__")) { + return null; + } + return /* @__PURE__ */jsxRuntime.jsx("div", { + children: /* @__PURE__ */jsxRuntime.jsx(TypeLink, { + type + }) + }, type.name); }) - })] - }); + }); + $[6] = mutationType; + $[7] = props.schema; + $[8] = queryType; + $[9] = subscriptionType; + $[10] = T0; + $[11] = t3; + $[12] = t4; + $[13] = t5; + $[14] = t6; + } else { + T0 = $[10]; + t3 = $[11]; + t4 = $[12]; + t5 = $[13]; + t6 = $[14]; + } + let t7; + if ($[31] !== T0 || $[32] !== t3 || $[33] !== t4) { + t7 = /* @__PURE__ */jsxRuntime.jsx(T0, { + title: t3, + children: t4 + }); + $[31] = T0; + $[32] = t3; + $[33] = t4; + $[34] = t7; + } else { + t7 = $[34]; + } + let t8; + if ($[35] !== t5 || $[36] !== t6 || $[37] !== t7) { + t8 = /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { + children: [t5, t6, t7] + }); + $[35] = t5; + $[36] = t6; + $[37] = t7; + $[38] = t8; + } else { + t8 = $[38]; + } + return t8; } function debounce(duration, fn) { let timeout; @@ -70582,6 +78571,8 @@ function debounce(duration, fn) { }; } function Search() { + "use no memo"; + const { explorerNavStack, push @@ -70643,7 +78634,7 @@ function Search() { autoComplete: "off", onFocus: handleFocus, onBlur: handleFocus, - onChange: event => setSearchValue(event.target.value), + onChange: event_0 => setSearchValue(event_0.target.value), placeholder: `${isMacOs ? "⌘" : "Ctrl"} K`, ref: inputRef, value: searchValue, @@ -70664,94 +78655,131 @@ function Search() { }, `within-${i}`)), results.within.length > 0 && results.types.length + results.fields.length > 0 ? /* @__PURE__ */jsxRuntime.jsx("div", { className: "graphiql-doc-explorer-search-divider", children: "Other results" - }) : null, results.types.map((result, i) => /* @__PURE__ */jsxRuntime.jsx(react.Combobox.Option, { - value: result, + }) : null, results.types.map((result_0, i_0) => /* @__PURE__ */jsxRuntime.jsx(react.Combobox.Option, { + value: result_0, "data-cy": "doc-explorer-option", children: /* @__PURE__ */jsxRuntime.jsx(Type, { - type: result.type + type: result_0.type }) - }, `type-${i}`)), results.fields.map((result, i) => /* @__PURE__ */jsxRuntime.jsxs(react.Combobox.Option, { - value: result, + }, `type-${i_0}`)), results.fields.map((result_1, i_1) => /* @__PURE__ */jsxRuntime.jsxs(react.Combobox.Option, { + value: result_1, "data-cy": "doc-explorer-option", children: [/* @__PURE__ */jsxRuntime.jsx(Type, { - type: result.type + type: result_1.type }), ".", /* @__PURE__ */jsxRuntime.jsx(Field$1, { - field: result.field, - argument: result.argument + field: result_1.field, + argument: result_1.argument })] - }, `field-${i}`))] + }, `field-${i_1}`))] })] }); } +const _useSearchResults = useSearchResults; function useSearchResults(caller) { + const $ = reactCompilerRuntime.c(9); + const t0 = caller || _useSearchResults; + let t1; + if ($[0] !== t0) { + t1 = { + nonNull: true, + caller: t0 + }; + $[0] = t0; + $[1] = t1; + } else { + t1 = $[1]; + } const { explorerNavStack - } = useExplorerContext({ - nonNull: true, - caller: caller || useSearchResults - }); + } = useExplorerContext(t1); + const t2 = caller || _useSearchResults; + let t3; + if ($[2] !== t2) { + t3 = { + nonNull: true, + caller: t2 + }; + $[2] = t2; + $[3] = t3; + } else { + t3 = $[3]; + } const { schema - } = useSchemaContext({ - nonNull: true, - caller: caller || useSearchResults - }); - const navItem = explorerNavStack.at(-1); - return React.useCallback(searchValue => { - const matches = { - within: [], - types: [], - fields: [] - }; - if (!schema) { - return matches; - } - const withinType = navItem.def; - const typeMap = schema.getTypeMap(); - let typeNames = Object.keys(typeMap); - if (withinType) { - typeNames = typeNames.filter(n => n !== withinType.name); - typeNames.unshift(withinType.name); - } - for (const typeName of typeNames) { - if (matches.within.length + matches.types.length + matches.fields.length >= 100) { - break; + } = useSchemaContext(t3); + let t4; + if ($[4] !== explorerNavStack) { + t4 = explorerNavStack.at(-1); + $[4] = explorerNavStack; + $[5] = t4; + } else { + t4 = $[5]; + } + const navItem = t4; + let t5; + if ($[6] !== navItem || $[7] !== schema) { + t5 = searchValue => { + const matches = { + within: [], + types: [], + fields: [] + }; + if (!schema) { + return matches; } - const type = typeMap[typeName]; - if (withinType !== type && isMatch(typeName, searchValue)) { - matches.types.push({ - type - }); + const withinType = navItem.def; + const typeMap = schema.getTypeMap(); + let typeNames = Object.keys(typeMap); + if (withinType) { + typeNames = typeNames.filter(n => n !== withinType.name); + typeNames.unshift(withinType.name); } - if (!graphql.isObjectType(type) && !graphql.isInterfaceType(type) && !graphql.isInputObjectType(type)) { - continue; - } - const fields = type.getFields(); - for (const fieldName in fields) { - const field = fields[fieldName]; - let matchingArgs; - if (!isMatch(fieldName, searchValue)) { - if ("args" in field) { - matchingArgs = field.args.filter(arg => isMatch(arg.name, searchValue)); - if (matchingArgs.length === 0) { + for (const typeName of typeNames) { + if (matches.within.length + matches.types.length + matches.fields.length >= 100) { + break; + } + const type = typeMap[typeName]; + if (withinType !== type && isMatch(typeName, searchValue)) { + matches.types.push({ + type + }); + } + if (!graphql.isObjectType(type) && !graphql.isInterfaceType(type) && !graphql.isInputObjectType(type)) { + continue; + } + const fields = type.getFields(); + for (const fieldName in fields) { + const field = fields[fieldName]; + let matchingArgs; + if (!isMatch(fieldName, searchValue)) { + if ("args" in field) { + matchingArgs = field.args.filter(arg => isMatch(arg.name, searchValue)); + if (matchingArgs.length === 0) { + continue; + } + } else { continue; } - } else { - continue; } + matches[withinType === type ? "within" : "fields"].push(...(matchingArgs ? matchingArgs.map(argument => ({ + type, + field, + argument + })) : [{ + type, + field + }])); } - matches[withinType === type ? "within" : "fields"].push(...(matchingArgs ? matchingArgs.map(argument => ({ - type, - field, - argument - })) : [{ - type, - field - }])); } - } - return matches; - }, [navItem.def, schema]); + return matches; + }; + $[6] = navItem; + $[7] = schema; + $[8] = t5; + } else { + t5 = $[8]; + } + return t5; } function isMatch(sourceText, searchValue) { try { @@ -70762,307 +78790,804 @@ function isMatch(sourceText, searchValue) { } } function Type(props) { - return /* @__PURE__ */jsxRuntime.jsx("span", { - className: "graphiql-doc-explorer-search-type", - children: props.type.name - }); + const $ = reactCompilerRuntime.c(2); + let t0; + if ($[0] !== props.type.name) { + t0 = /* @__PURE__ */jsxRuntime.jsx("span", { + className: "graphiql-doc-explorer-search-type", + children: props.type.name + }); + $[0] = props.type.name; + $[1] = t0; + } else { + t0 = $[1]; + } + return t0; } -function Field$1({ - field, - argument -}) { - return /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { - children: [/* @__PURE__ */jsxRuntime.jsx("span", { +function Field$1(t0) { + const $ = reactCompilerRuntime.c(7); + const { + field, + argument + } = t0; + let t1; + if ($[0] !== field.name) { + t1 = /* @__PURE__ */jsxRuntime.jsx("span", { className: "graphiql-doc-explorer-search-field", children: field.name - }), argument ? /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { + }); + $[0] = field.name; + $[1] = t1; + } else { + t1 = $[1]; + } + let t2; + if ($[2] !== argument) { + t2 = argument ? /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { children: ["(", /* @__PURE__ */jsxRuntime.jsx("span", { className: "graphiql-doc-explorer-search-argument", children: argument.name - }), ":", " ", renderType(argument.type, namedType => /* @__PURE__ */jsxRuntime.jsx(Type, { - type: namedType - })), ")"] - }) : null] + }), ":", " ", renderType(argument.type, _temp$4), ")"] + }) : null; + $[2] = argument; + $[3] = t2; + } else { + t2 = $[3]; + } + let t3; + if ($[4] !== t1 || $[5] !== t2) { + t3 = /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { + children: [t1, t2] + }); + $[4] = t1; + $[5] = t2; + $[6] = t3; + } else { + t3 = $[6]; + } + return t3; +} +function _temp$4(namedType) { + return /* @__PURE__ */jsxRuntime.jsx(Type, { + type: namedType }); } function FieldLink(props) { + const $ = reactCompilerRuntime.c(7); + let t0; + if ($[0] === Symbol.for("react.memo_cache_sentinel")) { + t0 = { + nonNull: true + }; + $[0] = t0; + } else { + t0 = $[0]; + } const { push - } = useExplorerContext({ - nonNull: true - }); - return /* @__PURE__ */jsxRuntime.jsx("a", { - className: "graphiql-doc-explorer-field-name", - onClick: event => { + } = useExplorerContext(t0); + let t1; + if ($[1] !== props.field || $[2] !== push) { + t1 = event => { event.preventDefault(); push({ name: props.field.name, def: props.field }); - }, - href: "#", - children: props.field.name - }); + }; + $[1] = props.field; + $[2] = push; + $[3] = t1; + } else { + t1 = $[3]; + } + let t2; + if ($[4] !== props.field.name || $[5] !== t1) { + t2 = /* @__PURE__ */jsxRuntime.jsx("a", { + className: "graphiql-doc-explorer-field-name", + onClick: t1, + href: "#", + children: props.field.name + }); + $[4] = props.field.name; + $[5] = t1; + $[6] = t2; + } else { + t2 = $[6]; + } + return t2; } function TypeDocumentation(props) { - return graphql.isNamedType(props.type) ? /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { - children: [props.type.description ? /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { - type: "description", - children: props.type.description - }) : null, /* @__PURE__ */jsxRuntime.jsx(ImplementsInterfaces, { - type: props.type - }), /* @__PURE__ */jsxRuntime.jsx(Fields, { - type: props.type - }), /* @__PURE__ */jsxRuntime.jsx(EnumValues, { - type: props.type - }), /* @__PURE__ */jsxRuntime.jsx(PossibleTypes, { - type: props.type - })] - }) : null; + const $ = reactCompilerRuntime.c(2); + let t0; + if ($[0] !== props.type) { + t0 = graphql.isNamedType(props.type) ? /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { + children: [props.type.description ? /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { + type: "description", + children: props.type.description + }) : null, /* @__PURE__ */jsxRuntime.jsx(ImplementsInterfaces, { + type: props.type + }), /* @__PURE__ */jsxRuntime.jsx(Fields, { + type: props.type + }), /* @__PURE__ */jsxRuntime.jsx(EnumValues, { + type: props.type + }), /* @__PURE__ */jsxRuntime.jsx(PossibleTypes, { + type: props.type + })] + }) : null; + $[0] = props.type; + $[1] = t0; + } else { + t0 = $[1]; + } + return t0; } -function ImplementsInterfaces({ - type -}) { +function ImplementsInterfaces(t0) { + const $ = reactCompilerRuntime.c(5); + const { + type + } = t0; if (!graphql.isObjectType(type)) { return null; } - const interfaces = type.getInterfaces(); - return interfaces.length > 0 ? /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { - title: "Implements", - children: type.getInterfaces().map(implementedInterface => /* @__PURE__ */jsxRuntime.jsx("div", { - children: /* @__PURE__ */jsxRuntime.jsx(TypeLink, { - type: implementedInterface - }) - }, implementedInterface.name)) - }) : null; + let t1; + if ($[0] !== type) { + t1 = type.getInterfaces(); + $[0] = type; + $[1] = t1; + } else { + t1 = $[1]; + } + const interfaces = t1; + let t2; + if ($[2] !== interfaces.length || $[3] !== type) { + t2 = interfaces.length > 0 ? /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { + title: "Implements", + children: type.getInterfaces().map(_temp$3) + }) : null; + $[2] = interfaces.length; + $[3] = type; + $[4] = t2; + } else { + t2 = $[4]; + } + return t2; } -function Fields({ - type -}) { +function _temp$3(implementedInterface) { + return /* @__PURE__ */jsxRuntime.jsx("div", { + children: /* @__PURE__ */jsxRuntime.jsx(TypeLink, { + type: implementedInterface + }) + }, implementedInterface.name); +} +function Fields(t0) { + const $ = reactCompilerRuntime.c(12); + const { + type + } = t0; const [showDeprecated, setShowDeprecated] = React.useState(false); - const handleShowDeprecated = React.useCallback(() => { - setShowDeprecated(true); - }, []); + let t1; + if ($[0] === Symbol.for("react.memo_cache_sentinel")) { + t1 = () => { + setShowDeprecated(true); + }; + $[0] = t1; + } else { + t1 = $[0]; + } + const handleShowDeprecated = t1; if (!graphql.isObjectType(type) && !graphql.isInterfaceType(type) && !graphql.isInputObjectType(type)) { return null; } - const fieldMap = type.getFields(); - const fields = []; - const deprecatedFields = []; - for (const field of Object.keys(fieldMap).map(name => fieldMap[name])) { - if (field.deprecationReason) { - deprecatedFields.push(field); - } else { - fields.push(field); + let deprecatedFields; + let fields; + let t2; + if ($[1] !== type) { + const fieldMap = type.getFields(); + fields = []; + deprecatedFields = []; + for (const field of Object.keys(fieldMap).map(name => fieldMap[name])) { + if (field.deprecationReason) { + deprecatedFields.push(field); + } else { + fields.push(field); + } } - } - return /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { - children: [fields.length > 0 ? /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { + t2 = fields.length > 0 ? /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { title: "Fields", - children: fields.map(field => /* @__PURE__ */jsxRuntime.jsx(Field, { - field - }, field.name)) - }) : null, deprecatedFields.length > 0 ? showDeprecated || fields.length === 0 ? /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { + children: fields.map(_temp2$1) + }) : null; + $[1] = type; + $[2] = deprecatedFields; + $[3] = fields; + $[4] = t2; + } else { + deprecatedFields = $[2]; + fields = $[3]; + t2 = $[4]; + } + let t3; + if ($[5] !== deprecatedFields || $[6] !== fields.length || $[7] !== showDeprecated) { + t3 = deprecatedFields.length > 0 ? showDeprecated || fields.length === 0 ? /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { title: "Deprecated Fields", - children: deprecatedFields.map(field => /* @__PURE__ */jsxRuntime.jsx(Field, { - field - }, field.name)) + children: deprecatedFields.map(_temp3$1) }) : /* @__PURE__ */jsxRuntime.jsx(Button$1, { type: "button", onClick: handleShowDeprecated, children: "Show Deprecated Fields" - }) : null] - }); + }) : null; + $[5] = deprecatedFields; + $[6] = fields.length; + $[7] = showDeprecated; + $[8] = t3; + } else { + t3 = $[8]; + } + let t4; + if ($[9] !== t2 || $[10] !== t3) { + t4 = /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { + children: [t2, t3] + }); + $[9] = t2; + $[10] = t3; + $[11] = t4; + } else { + t4 = $[11]; + } + return t4; } -function Field({ - field -}) { - const args = "args" in field ? field.args.filter(arg => !arg.deprecationReason) : []; - return /* @__PURE__ */jsxRuntime.jsxs("div", { - className: "graphiql-doc-explorer-item", - children: [/* @__PURE__ */jsxRuntime.jsxs("div", { - children: [/* @__PURE__ */jsxRuntime.jsx(FieldLink, { - field - }), args.length > 0 ? /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { - children: ["(", /* @__PURE__ */jsxRuntime.jsx("span", { - children: args.map(arg => args.length === 1 ? /* @__PURE__ */jsxRuntime.jsx(Argument, { - arg, +function _temp3$1(field_1) { + return /* @__PURE__ */jsxRuntime.jsx(Field, { + field: field_1 + }, field_1.name); +} +function _temp2$1(field_0) { + return /* @__PURE__ */jsxRuntime.jsx(Field, { + field: field_0 + }, field_0.name); +} +function Field(t0) { + const $ = reactCompilerRuntime.c(22); + const { + field + } = t0; + let t1; + let t2; + let t3; + if ($[0] !== field) { + const args = "args" in field ? field.args.filter(_temp4$1) : []; + t3 = "graphiql-doc-explorer-item"; + t1 = /* @__PURE__ */jsxRuntime.jsx(FieldLink, { + field + }); + t2 = args.length > 0 ? /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { + children: ["(", /* @__PURE__ */jsxRuntime.jsx("span", { + children: args.map(arg_0 => args.length === 1 ? /* @__PURE__ */jsxRuntime.jsx(Argument, { + arg: arg_0, + inline: true + }, arg_0.name) : /* @__PURE__ */jsxRuntime.jsx("div", { + className: "graphiql-doc-explorer-argument-multiple", + children: /* @__PURE__ */jsxRuntime.jsx(Argument, { + arg: arg_0, inline: true - }, arg.name) : /* @__PURE__ */jsxRuntime.jsx("div", { - className: "graphiql-doc-explorer-argument-multiple", - children: /* @__PURE__ */jsxRuntime.jsx(Argument, { - arg, - inline: true - }) - }, arg.name)) - }), ")"] - }) : null, ": ", /* @__PURE__ */jsxRuntime.jsx(TypeLink, { - type: field.type - }), /* @__PURE__ */jsxRuntime.jsx(DefaultValue, { - field - })] - }), field.description ? /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { + }) + }, arg_0.name)) + }), ")"] + }) : null; + $[0] = field; + $[1] = t1; + $[2] = t2; + $[3] = t3; + } else { + t1 = $[1]; + t2 = $[2]; + t3 = $[3]; + } + let t4; + if ($[4] !== field.type) { + t4 = /* @__PURE__ */jsxRuntime.jsx(TypeLink, { + type: field.type + }); + $[4] = field.type; + $[5] = t4; + } else { + t4 = $[5]; + } + let t5; + if ($[6] !== field) { + t5 = /* @__PURE__ */jsxRuntime.jsx(DefaultValue, { + field + }); + $[6] = field; + $[7] = t5; + } else { + t5 = $[7]; + } + let t6; + if ($[8] !== t1 || $[9] !== t2 || $[10] !== t4 || $[11] !== t5) { + t6 = /* @__PURE__ */jsxRuntime.jsxs("div", { + children: [t1, t2, ": ", t4, t5] + }); + $[8] = t1; + $[9] = t2; + $[10] = t4; + $[11] = t5; + $[12] = t6; + } else { + t6 = $[12]; + } + let t7; + if ($[13] !== field.description) { + t7 = field.description ? /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { type: "description", onlyShowFirstChild: true, children: field.description - }) : null, /* @__PURE__ */jsxRuntime.jsx(DeprecationReason, { + }) : null; + $[13] = field.description; + $[14] = t7; + } else { + t7 = $[14]; + } + let t8; + if ($[15] !== field.deprecationReason) { + t8 = /* @__PURE__ */jsxRuntime.jsx(DeprecationReason, { children: field.deprecationReason - })] - }); + }); + $[15] = field.deprecationReason; + $[16] = t8; + } else { + t8 = $[16]; + } + let t9; + if ($[17] !== t3 || $[18] !== t6 || $[19] !== t7 || $[20] !== t8) { + t9 = /* @__PURE__ */jsxRuntime.jsxs("div", { + className: t3, + children: [t6, t7, t8] + }); + $[17] = t3; + $[18] = t6; + $[19] = t7; + $[20] = t8; + $[21] = t9; + } else { + t9 = $[21]; + } + return t9; } -function EnumValues({ - type -}) { +function _temp4$1(arg) { + return !arg.deprecationReason; +} +function EnumValues(t0) { + const $ = reactCompilerRuntime.c(12); + const { + type + } = t0; const [showDeprecated, setShowDeprecated] = React.useState(false); - const handleShowDeprecated = React.useCallback(() => { - setShowDeprecated(true); - }, []); + let t1; + if ($[0] === Symbol.for("react.memo_cache_sentinel")) { + t1 = () => { + setShowDeprecated(true); + }; + $[0] = t1; + } else { + t1 = $[0]; + } + const handleShowDeprecated = t1; if (!graphql.isEnumType(type)) { return null; } - const values = []; - const deprecatedValues = []; - for (const value of type.getValues()) { - if (value.deprecationReason) { - deprecatedValues.push(value); - } else { - values.push(value); + let deprecatedValues; + let t2; + let values; + if ($[1] !== type) { + values = []; + deprecatedValues = []; + for (const value of type.getValues()) { + if (value.deprecationReason) { + deprecatedValues.push(value); + } else { + values.push(value); + } } - } - return /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { - children: [values.length > 0 ? /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { + t2 = values.length > 0 ? /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { title: "Enum Values", - children: values.map(value => /* @__PURE__ */jsxRuntime.jsx(EnumValue, { - value - }, value.name)) - }) : null, deprecatedValues.length > 0 ? showDeprecated || values.length === 0 ? /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { + children: values.map(_temp5) + }) : null; + $[1] = type; + $[2] = deprecatedValues; + $[3] = t2; + $[4] = values; + } else { + deprecatedValues = $[2]; + t2 = $[3]; + values = $[4]; + } + let t3; + if ($[5] !== deprecatedValues || $[6] !== showDeprecated || $[7] !== values.length) { + t3 = deprecatedValues.length > 0 ? showDeprecated || values.length === 0 ? /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { title: "Deprecated Enum Values", - children: deprecatedValues.map(value => /* @__PURE__ */jsxRuntime.jsx(EnumValue, { - value - }, value.name)) + children: deprecatedValues.map(_temp6) }) : /* @__PURE__ */jsxRuntime.jsx(Button$1, { type: "button", onClick: handleShowDeprecated, children: "Show Deprecated Values" - }) : null] - }); + }) : null; + $[5] = deprecatedValues; + $[6] = showDeprecated; + $[7] = values.length; + $[8] = t3; + } else { + t3 = $[8]; + } + let t4; + if ($[9] !== t2 || $[10] !== t3) { + t4 = /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, { + children: [t2, t3] + }); + $[9] = t2; + $[10] = t3; + $[11] = t4; + } else { + t4 = $[11]; + } + return t4; } -function EnumValue({ - value -}) { - return /* @__PURE__ */jsxRuntime.jsxs("div", { - className: "graphiql-doc-explorer-item", - children: [/* @__PURE__ */jsxRuntime.jsx("div", { +function _temp6(value_1) { + return /* @__PURE__ */jsxRuntime.jsx(EnumValue, { + value: value_1 + }, value_1.name); +} +function _temp5(value_0) { + return /* @__PURE__ */jsxRuntime.jsx(EnumValue, { + value: value_0 + }, value_0.name); +} +function EnumValue(t0) { + const $ = reactCompilerRuntime.c(10); + const { + value + } = t0; + let t1; + if ($[0] !== value.name) { + t1 = /* @__PURE__ */jsxRuntime.jsx("div", { className: "graphiql-doc-explorer-enum-value", children: value.name - }), value.description ? /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { + }); + $[0] = value.name; + $[1] = t1; + } else { + t1 = $[1]; + } + let t2; + if ($[2] !== value.description) { + t2 = value.description ? /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { type: "description", children: value.description - }) : null, value.deprecationReason ? /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { + }) : null; + $[2] = value.description; + $[3] = t2; + } else { + t2 = $[3]; + } + let t3; + if ($[4] !== value.deprecationReason) { + t3 = value.deprecationReason ? /* @__PURE__ */jsxRuntime.jsx(MarkdownContent, { type: "deprecation", children: value.deprecationReason - }) : null] - }); + }) : null; + $[4] = value.deprecationReason; + $[5] = t3; + } else { + t3 = $[5]; + } + let t4; + if ($[6] !== t1 || $[7] !== t2 || $[8] !== t3) { + t4 = /* @__PURE__ */jsxRuntime.jsxs("div", { + className: "graphiql-doc-explorer-item", + children: [t1, t2, t3] + }); + $[6] = t1; + $[7] = t2; + $[8] = t3; + $[9] = t4; + } else { + t4 = $[9]; + } + return t4; } -function PossibleTypes({ - type -}) { +function PossibleTypes(t0) { + const $ = reactCompilerRuntime.c(7); + const { + type + } = t0; + let t1; + if ($[0] === Symbol.for("react.memo_cache_sentinel")) { + t1 = { + nonNull: true + }; + $[0] = t1; + } else { + t1 = $[0]; + } const { schema - } = useSchemaContext({ - nonNull: true - }); + } = useSchemaContext(t1); if (!schema || !graphql.isAbstractType(type)) { return null; } - return /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { - title: graphql.isInterfaceType(type) ? "Implementations" : "Possible Types", - children: schema.getPossibleTypes(type).map(possibleType => /* @__PURE__ */jsxRuntime.jsx("div", { - children: /* @__PURE__ */jsxRuntime.jsx(TypeLink, { - type: possibleType - }) - }, possibleType.name)) - }); + const t2 = graphql.isInterfaceType(type) ? "Implementations" : "Possible Types"; + let t3; + if ($[1] !== schema || $[2] !== type) { + t3 = schema.getPossibleTypes(type).map(_temp7); + $[1] = schema; + $[2] = type; + $[3] = t3; + } else { + t3 = $[3]; + } + let t4; + if ($[4] !== t2 || $[5] !== t3) { + t4 = /* @__PURE__ */jsxRuntime.jsx(ExplorerSection, { + title: t2, + children: t3 + }); + $[4] = t2; + $[5] = t3; + $[6] = t4; + } else { + t4 = $[6]; + } + return t4; +} +function _temp7(possibleType) { + return /* @__PURE__ */jsxRuntime.jsx("div", { + children: /* @__PURE__ */jsxRuntime.jsx(TypeLink, { + type: possibleType + }) + }, possibleType.name); } function DocExplorer() { + const $ = reactCompilerRuntime.c(40); + let t0; + if ($[0] === Symbol.for("react.memo_cache_sentinel")) { + t0 = { + nonNull: true, + caller: DocExplorer + }; + $[0] = t0; + } else { + t0 = $[0]; + } const { fetchError, isFetching, schema, validationErrors - } = useSchemaContext({ - nonNull: true, - caller: DocExplorer - }); + } = useSchemaContext(t0); + let t1; + if ($[1] === Symbol.for("react.memo_cache_sentinel")) { + t1 = { + nonNull: true, + caller: DocExplorer + }; + $[1] = t1; + } else { + t1 = $[1]; + } const { explorerNavStack, pop - } = useExplorerContext({ - nonNull: true, - caller: DocExplorer - }); - const navItem = explorerNavStack.at(-1); - let content = null; - if (fetchError) { - content = /* @__PURE__ */jsxRuntime.jsx("div", { - className: "graphiql-doc-explorer-error", - children: "Error fetching schema" - }); - } else if (validationErrors.length > 0) { - content = /* @__PURE__ */jsxRuntime.jsxs("div", { - className: "graphiql-doc-explorer-error", - children: ["Schema is invalid: ", validationErrors[0].message] - }); - } else if (isFetching) { - content = /* @__PURE__ */jsxRuntime.jsx(Spinner, {}); - } else if (!schema) { - content = /* @__PURE__ */jsxRuntime.jsx("div", { - className: "graphiql-doc-explorer-error", - children: "No GraphQL schema available" - }); - } else if (explorerNavStack.length === 1) { - content = /* @__PURE__ */jsxRuntime.jsx(SchemaDocumentation, { - schema - }); - } else if (graphql.isType(navItem.def)) { - content = /* @__PURE__ */jsxRuntime.jsx(TypeDocumentation, { - type: navItem.def - }); - } else if (navItem.def) { - content = /* @__PURE__ */jsxRuntime.jsx(FieldDocumentation, { - field: navItem.def - }); + } = useExplorerContext(t1); + let content; + let navItem; + if ($[2] !== explorerNavStack || $[3] !== fetchError || $[4] !== isFetching || $[5] !== schema || $[6] !== validationErrors) { + navItem = explorerNavStack.at(-1); + content = null; + if (fetchError) { + let t22; + if ($[9] === Symbol.for("react.memo_cache_sentinel")) { + t22 = /* @__PURE__ */jsxRuntime.jsx("div", { + className: "graphiql-doc-explorer-error", + children: "Error fetching schema" + }); + $[9] = t22; + } else { + t22 = $[9]; + } + content = t22; + } else { + if (validationErrors.length > 0) { + const t22 = validationErrors[0]; + let t32; + if ($[10] !== t22.message) { + t32 = /* @__PURE__ */jsxRuntime.jsxs("div", { + className: "graphiql-doc-explorer-error", + children: ["Schema is invalid: ", t22.message] + }); + $[10] = t22.message; + $[11] = t32; + } else { + t32 = $[11]; + } + content = t32; + } else { + if (isFetching) { + let t22; + if ($[12] === Symbol.for("react.memo_cache_sentinel")) { + t22 = /* @__PURE__ */jsxRuntime.jsx(Spinner, {}); + $[12] = t22; + } else { + t22 = $[12]; + } + content = t22; + } else { + if (!schema) { + let t22; + if ($[13] === Symbol.for("react.memo_cache_sentinel")) { + t22 = /* @__PURE__ */jsxRuntime.jsx("div", { + className: "graphiql-doc-explorer-error", + children: "No GraphQL schema available" + }); + $[13] = t22; + } else { + t22 = $[13]; + } + content = t22; + } else { + if (explorerNavStack.length === 1) { + let t22; + if ($[14] !== schema) { + t22 = /* @__PURE__ */jsxRuntime.jsx(SchemaDocumentation, { + schema + }); + $[14] = schema; + $[15] = t22; + } else { + t22 = $[15]; + } + content = t22; + } else { + if (graphql.isType(navItem.def)) { + let t22; + if ($[16] !== navItem.def) { + t22 = /* @__PURE__ */jsxRuntime.jsx(TypeDocumentation, { + type: navItem.def + }); + $[16] = navItem.def; + $[17] = t22; + } else { + t22 = $[17]; + } + content = t22; + } else { + if (navItem.def) { + let t22; + if ($[18] !== navItem.def) { + t22 = /* @__PURE__ */jsxRuntime.jsx(FieldDocumentation, { + field: navItem.def + }); + $[18] = navItem.def; + $[19] = t22; + } else { + t22 = $[19]; + } + content = t22; + } + } + } + } + } + } + } + $[2] = explorerNavStack; + $[3] = fetchError; + $[4] = isFetching; + $[5] = schema; + $[6] = validationErrors; + $[7] = content; + $[8] = navItem; + } else { + content = $[7]; + navItem = $[8]; } let prevName; if (explorerNavStack.length > 1) { - prevName = explorerNavStack.at(-2).name; + let t22; + if ($[20] !== explorerNavStack) { + t22 = explorerNavStack.at(-2); + $[20] = explorerNavStack; + $[21] = t22; + } else { + t22 = $[21]; + } + prevName = t22.name; } - return /* @__PURE__ */jsxRuntime.jsxs("section", { - className: "graphiql-doc-explorer", - "aria-label": "Documentation Explorer", - children: [/* @__PURE__ */jsxRuntime.jsxs("div", { + let t2; + if ($[22] !== pop || $[23] !== prevName) { + t2 = prevName && /* @__PURE__ */jsxRuntime.jsxs("a", { + href: "#", + className: "graphiql-doc-explorer-back", + onClick: event => { + event.preventDefault(); + pop(); + }, + "aria-label": `Go back to ${prevName}`, + children: [/* @__PURE__ */jsxRuntime.jsx(ChevronLeftIcon, {}), prevName] + }); + $[22] = pop; + $[23] = prevName; + $[24] = t2; + } else { + t2 = $[24]; + } + let t3; + if ($[25] !== navItem.name) { + t3 = /* @__PURE__ */jsxRuntime.jsx("div", { + className: "graphiql-doc-explorer-title", + children: navItem.name + }); + $[25] = navItem.name; + $[26] = t3; + } else { + t3 = $[26]; + } + let t4; + if ($[27] !== t2 || $[28] !== t3) { + t4 = /* @__PURE__ */jsxRuntime.jsxs("div", { + className: "graphiql-doc-explorer-header-content", + children: [t2, t3] + }); + $[27] = t2; + $[28] = t3; + $[29] = t4; + } else { + t4 = $[29]; + } + let t5; + if ($[30] !== navItem.name) { + t5 = /* @__PURE__ */jsxRuntime.jsx(Search, {}, navItem.name); + $[30] = navItem.name; + $[31] = t5; + } else { + t5 = $[31]; + } + let t6; + if ($[32] !== t4 || $[33] !== t5) { + t6 = /* @__PURE__ */jsxRuntime.jsxs("div", { className: "graphiql-doc-explorer-header", - children: [/* @__PURE__ */jsxRuntime.jsxs("div", { - className: "graphiql-doc-explorer-header-content", - children: [prevName && /* @__PURE__ */jsxRuntime.jsxs("a", { - href: "#", - className: "graphiql-doc-explorer-back", - onClick: event => { - event.preventDefault(); - pop(); - }, - "aria-label": `Go back to ${prevName}`, - children: [/* @__PURE__ */jsxRuntime.jsx(ChevronLeftIcon, {}), prevName] - }), /* @__PURE__ */jsxRuntime.jsx("div", { - className: "graphiql-doc-explorer-title", - children: navItem.name - })] - }), /* @__PURE__ */jsxRuntime.jsx(Search, {}, navItem.name)] - }), /* @__PURE__ */jsxRuntime.jsx("div", { + children: [t4, t5] + }); + $[32] = t4; + $[33] = t5; + $[34] = t6; + } else { + t6 = $[34]; + } + let t7; + if ($[35] !== content) { + t7 = /* @__PURE__ */jsxRuntime.jsx("div", { className: "graphiql-doc-explorer-content", children: content - })] - }); + }); + $[35] = content; + $[36] = t7; + } else { + t7 = $[36]; + } + let t8; + if ($[37] !== t6 || $[38] !== t7) { + t8 = /* @__PURE__ */jsxRuntime.jsxs("section", { + className: "graphiql-doc-explorer", + "aria-label": "Documentation Explorer", + children: [t6, t7] + }); + $[37] = t6; + $[38] = t7; + $[39] = t8; + } else { + t8 = $[39]; + } + return t8; } const DOC_EXPLORER_PLUGIN = { title: "Documentation Explorer", @@ -71079,13 +79604,16 @@ const HISTORY_PLUGIN = { }; const PluginContext = createNullableContext("PluginContext"); function PluginContextProvider(props) { + const $ = reactCompilerRuntime.c(27); const storage = useStorageContext(); const explorerContext = useExplorerContext(); const historyContext = useHistoryContext(); const hasExplorerContext = Boolean(explorerContext); const hasHistoryContext = Boolean(historyContext); - const plugins = React.useMemo(() => { - const pluginList = []; + let t0; + let pluginList; + if ($[0] !== hasExplorerContext || $[1] !== hasHistoryContext || $[2] !== props.plugins) { + pluginList = []; const pluginTitles = {}; if (hasExplorerContext) { pluginList.push(DOC_EXPLORER_PLUGIN); @@ -71095,7 +79623,15 @@ function PluginContextProvider(props) { pluginList.push(HISTORY_PLUGIN); pluginTitles[HISTORY_PLUGIN.title] = true; } - for (const plugin of props.plugins || []) { + let t12; + if ($[4] !== props.plugins) { + t12 = props.plugins || []; + $[4] = props.plugins; + $[5] = t12; + } else { + t12 = $[5]; + } + for (const plugin of t12) { if (typeof plugin.title !== "string" || !plugin.title) { throw new Error("All GraphiQL plugins must have a unique title"); } @@ -71106,50 +79642,114 @@ function PluginContextProvider(props) { pluginTitles[plugin.title] = true; } } - return pluginList; - }, [hasExplorerContext, hasHistoryContext, props.plugins]); - const [visiblePlugin, internalSetVisiblePlugin] = React.useState(() => { - const storedValue = storage == null ? void 0 : storage.get(STORAGE_KEY$4); - const pluginForStoredValue = plugins.find(plugin => plugin.title === storedValue); - if (pluginForStoredValue) { - return pluginForStoredValue; - } - if (storedValue) { - storage == null ? void 0 : storage.set(STORAGE_KEY$4, ""); - } - if (!props.visiblePlugin) { - return null; - } - return plugins.find(plugin => (typeof props.visiblePlugin === "string" ? plugin.title : plugin) === props.visiblePlugin) || null; - }); + $[0] = hasExplorerContext; + $[1] = hasHistoryContext; + $[2] = props.plugins; + $[3] = pluginList; + } else { + pluginList = $[3]; + } + t0 = pluginList; + const plugins = t0; + let t1; + if ($[6] !== plugins || $[7] !== props.visiblePlugin || $[8] !== storage) { + t1 = () => { + const storedValue = storage == null ? void 0 : storage.get(STORAGE_KEY$4); + const pluginForStoredValue = plugins.find(plugin_0 => plugin_0.title === storedValue); + if (pluginForStoredValue) { + return pluginForStoredValue; + } + if (storedValue) { + storage == null ? void 0 : storage.set(STORAGE_KEY$4, ""); + } + if (!props.visiblePlugin) { + return null; + } + return plugins.find(plugin_1 => (typeof props.visiblePlugin === "string" ? plugin_1.title : plugin_1) === props.visiblePlugin) || null; + }; + $[6] = plugins; + $[7] = props.visiblePlugin; + $[8] = storage; + $[9] = t1; + } else { + t1 = $[9]; + } + const [visiblePlugin, internalSetVisiblePlugin] = React.useState(t1); const { onTogglePluginVisibility, children } = props; - const setVisiblePlugin = React.useCallback(plugin => { - const newVisiblePlugin = plugin ? plugins.find(p => (typeof plugin === "string" ? p.title : p) === plugin) || null : null; - internalSetVisiblePlugin(current => { - if (newVisiblePlugin === current) { - return current; + let t2; + if ($[10] !== onTogglePluginVisibility || $[11] !== plugins) { + t2 = plugin_2 => { + const newVisiblePlugin = plugin_2 ? plugins.find(p => (typeof plugin_2 === "string" ? p.title : p) === plugin_2) || null : null; + internalSetVisiblePlugin(current => { + if (newVisiblePlugin === current) { + return current; + } + onTogglePluginVisibility == null ? void 0 : onTogglePluginVisibility(newVisiblePlugin); + return newVisiblePlugin; + }); + }; + $[10] = onTogglePluginVisibility; + $[11] = plugins; + $[12] = t2; + } else { + t2 = $[12]; + } + const setVisiblePlugin = t2; + let t3; + if ($[13] !== props.visiblePlugin || $[14] !== setVisiblePlugin) { + t3 = () => { + if (props.visiblePlugin) { + setVisiblePlugin(props.visiblePlugin); } - onTogglePluginVisibility == null ? void 0 : onTogglePluginVisibility(newVisiblePlugin); - return newVisiblePlugin; + }; + $[13] = props.visiblePlugin; + $[14] = setVisiblePlugin; + $[15] = t3; + } else { + t3 = $[15]; + } + let t4; + if ($[16] !== plugins || $[17] !== props.visiblePlugin || $[18] !== setVisiblePlugin) { + t4 = [plugins, props.visiblePlugin, setVisiblePlugin]; + $[16] = plugins; + $[17] = props.visiblePlugin; + $[18] = setVisiblePlugin; + $[19] = t4; + } else { + t4 = $[19]; + } + React.useEffect(t3, t4); + let t5; + if ($[20] !== plugins || $[21] !== setVisiblePlugin || $[22] !== visiblePlugin) { + t5 = { + plugins, + setVisiblePlugin, + visiblePlugin + }; + $[20] = plugins; + $[21] = setVisiblePlugin; + $[22] = visiblePlugin; + $[23] = t5; + } else { + t5 = $[23]; + } + const value = t5; + let t6; + if ($[24] !== children || $[25] !== value) { + t6 = /* @__PURE__ */jsxRuntime.jsx(PluginContext.Provider, { + value, + children }); - }, [onTogglePluginVisibility, plugins]); - React.useEffect(() => { - if (props.visiblePlugin) { - setVisiblePlugin(props.visiblePlugin); - } - }, [plugins, props.visiblePlugin, setVisiblePlugin]); - const value = React.useMemo(() => ({ - plugins, - setVisiblePlugin, - visiblePlugin - }), [plugins, setVisiblePlugin, visiblePlugin]); - return /* @__PURE__ */jsxRuntime.jsx(PluginContext.Provider, { - value, - children - }); + $[24] = children; + $[25] = value; + $[26] = t6; + } else { + t6 = $[26]; + } + return t6; } const usePluginContext = createContextHook(PluginContext); const STORAGE_KEY$4 = "visiblePlugin"; @@ -71301,244 +79901,476 @@ function onHasCompletion(_cm, data, schema, explorer, plugin, callback) { } } function useSynchronizeValue(editor, value) { - React.useEffect(() => { - if (editor && typeof value === "string" && value !== editor.getValue()) { - editor.setValue(value); - } - }, [editor, value]); + const $ = reactCompilerRuntime.c(4); + let t0; + let t1; + if ($[0] !== editor || $[1] !== value) { + t0 = () => { + if (editor && typeof value === "string" && value !== editor.getValue()) { + editor.setValue(value); + } + }; + t1 = [editor, value]; + $[0] = editor; + $[1] = value; + $[2] = t0; + $[3] = t1; + } else { + t0 = $[2]; + t1 = $[3]; + } + React.useEffect(t0, t1); } function useSynchronizeOption(editor, option, value) { - React.useEffect(() => { - if (editor) { - editor.setOption(option, value); - } - }, [editor, option, value]); + const $ = reactCompilerRuntime.c(5); + let t0; + let t1; + if ($[0] !== editor || $[1] !== option || $[2] !== value) { + t0 = () => { + if (editor) { + editor.setOption(option, value); + } + }; + t1 = [editor, option, value]; + $[0] = editor; + $[1] = option; + $[2] = value; + $[3] = t0; + $[4] = t1; + } else { + t0 = $[3]; + t1 = $[4]; + } + React.useEffect(t0, t1); } function useChangeHandler(editor, callback, storageKey, tabProperty, caller) { + const $ = reactCompilerRuntime.c(10); + let t0; + if ($[0] !== caller) { + t0 = { + nonNull: true, + caller + }; + $[0] = caller; + $[1] = t0; + } else { + t0 = $[1]; + } const { updateActiveTabValues - } = useEditorContext({ - nonNull: true, - caller - }); + } = useEditorContext(t0); const storage = useStorageContext(); - React.useEffect(() => { - if (!editor) { - return; - } - const store = debounce(500, value => { - if (!storage || storageKey === null) { + let t1; + let t2; + if ($[2] !== callback || $[3] !== editor || $[4] !== storage || $[5] !== storageKey || $[6] !== tabProperty || $[7] !== updateActiveTabValues) { + t1 = () => { + if (!editor) { return; } - storage.set(storageKey, value); - }); - const updateTab = debounce(100, value => { - updateActiveTabValues({ - [tabProperty]: value + const store = debounce(500, value => { + if (!storage || storageKey === null) { + return; + } + storage.set(storageKey, value); }); - }); - const handleChange = (editorInstance, changeObj) => { - if (!changeObj) { - return; - } - const newValue = editorInstance.getValue(); - store(newValue); - updateTab(newValue); - callback == null ? void 0 : callback(newValue); - }; - editor.on("change", handleChange); - return () => editor.off("change", handleChange); - }, [callback, editor, storage, storageKey, tabProperty, updateActiveTabValues]); -} -function useCompletion(editor, callback, caller) { - const { - schema - } = useSchemaContext({ - nonNull: true, - caller - }); - const explorer = useExplorerContext(); - const plugin = usePluginContext(); - React.useEffect(() => { - if (!editor) { - return; - } - const handleCompletion = (instance, changeObj) => { - onHasCompletion(instance, changeObj, schema, explorer, plugin, type => { - callback == null ? void 0 : callback({ - kind: "Type", - type, - schema: schema || void 0 + const updateTab = debounce(100, value_0 => { + updateActiveTabValues({ + [tabProperty]: value_0 }); }); + const handleChange = (editorInstance, changeObj) => { + if (!changeObj) { + return; + } + const newValue = editorInstance.getValue(); + store(newValue); + updateTab(newValue); + callback == null ? void 0 : callback(newValue); + }; + editor.on("change", handleChange); + return () => editor.off("change", handleChange); }; - editor.on( - // @ts-expect-error @TODO additional args for hasCompletion event - "hasCompletion", handleCompletion); - return () => editor.off( - // @ts-expect-error @TODO additional args for hasCompletion event - "hasCompletion", handleCompletion); - }, [callback, editor, explorer, plugin, schema]); + t2 = [callback, editor, storage, storageKey, tabProperty, updateActiveTabValues]; + $[2] = callback; + $[3] = editor; + $[4] = storage; + $[5] = storageKey; + $[6] = tabProperty; + $[7] = updateActiveTabValues; + $[8] = t1; + $[9] = t2; + } else { + t1 = $[8]; + t2 = $[9]; + } + React.useEffect(t1, t2); } -function useKeyMap(editor, keys, callback) { - React.useEffect(() => { - if (!editor) { - return; - } - for (const key of keys) { - editor.removeKeyMap(key); - } - if (callback) { - const keyMap = {}; - for (const key of keys) { - keyMap[key] = () => callback(); - } - editor.addKeyMap(keyMap); - } - }, [editor, keys, callback]); -} -function useCopyQuery({ - caller, - onCopyQuery -} = {}) { - const { - queryEditor - } = useEditorContext({ - nonNull: true, - caller: caller || useCopyQuery - }); - return React.useCallback(() => { - if (!queryEditor) { - return; - } - const query = queryEditor.getValue(); - copyToClipboard(query); - onCopyQuery == null ? void 0 : onCopyQuery(query); - }, [queryEditor, onCopyQuery]); -} -function useMergeQuery({ - caller -} = {}) { - const { - queryEditor - } = useEditorContext({ - nonNull: true, - caller: caller || useMergeQuery - }); +function useCompletion(editor, callback, caller) { + const $ = reactCompilerRuntime.c(9); + let t0; + if ($[0] !== caller) { + t0 = { + nonNull: true, + caller + }; + $[0] = caller; + $[1] = t0; + } else { + t0 = $[1]; + } const { schema - } = useSchemaContext({ - nonNull: true, - caller: useMergeQuery - }); - return React.useCallback(() => { - const documentAST = queryEditor == null ? void 0 : queryEditor.documentAST; - const query = queryEditor == null ? void 0 : queryEditor.getValue(); - if (!documentAST || !query) { - return; - } - queryEditor.setValue(graphql.print(toolkit.mergeAst(documentAST, schema))); - }, [queryEditor, schema]); + } = useSchemaContext(t0); + const explorer = useExplorerContext(); + const plugin = usePluginContext(); + let t1; + let t2; + if ($[2] !== callback || $[3] !== editor || $[4] !== explorer || $[5] !== plugin || $[6] !== schema) { + t1 = () => { + if (!editor) { + return; + } + const handleCompletion = (instance, changeObj) => { + onHasCompletion(instance, changeObj, schema, explorer, plugin, type => { + callback == null ? void 0 : callback({ + kind: "Type", + type, + schema: schema || void 0 + }); + }); + }; + editor.on("hasCompletion", handleCompletion); + return () => editor.off("hasCompletion", handleCompletion); + }; + t2 = [callback, editor, explorer, plugin, schema]; + $[2] = callback; + $[3] = editor; + $[4] = explorer; + $[5] = plugin; + $[6] = schema; + $[7] = t1; + $[8] = t2; + } else { + t1 = $[7]; + t2 = $[8]; + } + React.useEffect(t1, t2); } -function usePrettifyEditors({ - caller -} = {}) { +function useKeyMap(editor, keys, callback) { + const $ = reactCompilerRuntime.c(5); + let t0; + let t1; + if ($[0] !== callback || $[1] !== editor || $[2] !== keys) { + t0 = () => { + if (!editor) { + return; + } + for (const key of keys) { + editor.removeKeyMap(key); + } + if (callback) { + const keyMap = {}; + for (const key_0 of keys) { + keyMap[key_0] = () => callback(); + } + editor.addKeyMap(keyMap); + } + }; + t1 = [editor, keys, callback]; + $[0] = callback; + $[1] = editor; + $[2] = keys; + $[3] = t0; + $[4] = t1; + } else { + t0 = $[3]; + t1 = $[4]; + } + React.useEffect(t0, t1); +} +const _useCopyQuery = useCopyQuery; +const _useMergeQuery = useMergeQuery; +const _usePrettifyEditors = usePrettifyEditors; +const _useAutoCompleteLeafs = useAutoCompleteLeafs; +function useCopyQuery(t0) { + const $ = reactCompilerRuntime.c(7); + let t1; + if ($[0] !== t0) { + t1 = t0 === void 0 ? {} : t0; + $[0] = t0; + $[1] = t1; + } else { + t1 = $[1]; + } + const { + caller, + onCopyQuery + } = t1; + const t2 = caller || _useCopyQuery; + let t3; + if ($[2] !== t2) { + t3 = { + nonNull: true, + caller: t2 + }; + $[2] = t2; + $[3] = t3; + } else { + t3 = $[3]; + } + const { + queryEditor + } = useEditorContext(t3); + let t4; + if ($[4] !== onCopyQuery || $[5] !== queryEditor) { + t4 = () => { + if (!queryEditor) { + return; + } + const query = queryEditor.getValue(); + copyToClipboard(query); + onCopyQuery == null ? void 0 : onCopyQuery(query); + }; + $[4] = onCopyQuery; + $[5] = queryEditor; + $[6] = t4; + } else { + t4 = $[6]; + } + return t4; +} +function useMergeQuery(t0) { + const $ = reactCompilerRuntime.c(8); + let t1; + if ($[0] !== t0) { + t1 = t0 === void 0 ? {} : t0; + $[0] = t0; + $[1] = t1; + } else { + t1 = $[1]; + } + const { + caller + } = t1; + const t2 = caller || _useMergeQuery; + let t3; + if ($[2] !== t2) { + t3 = { + nonNull: true, + caller: t2 + }; + $[2] = t2; + $[3] = t3; + } else { + t3 = $[3]; + } + const { + queryEditor + } = useEditorContext(t3); + let t4; + if ($[4] === Symbol.for("react.memo_cache_sentinel")) { + t4 = { + nonNull: true, + caller: _useMergeQuery + }; + $[4] = t4; + } else { + t4 = $[4]; + } + const { + schema + } = useSchemaContext(t4); + let t5; + if ($[5] !== queryEditor || $[6] !== schema) { + t5 = () => { + const documentAST = queryEditor == null ? void 0 : queryEditor.documentAST; + const query = queryEditor == null ? void 0 : queryEditor.getValue(); + if (!documentAST || !query) { + return; + } + queryEditor.setValue(graphql.print(toolkit.mergeAst(documentAST, schema))); + }; + $[5] = queryEditor; + $[6] = schema; + $[7] = t5; + } else { + t5 = $[7]; + } + return t5; +} +function usePrettifyEditors(t0) { + const $ = reactCompilerRuntime.c(8); + let t1; + if ($[0] !== t0) { + t1 = t0 === void 0 ? {} : t0; + $[0] = t0; + $[1] = t1; + } else { + t1 = $[1]; + } + const { + caller + } = t1; + const t2 = caller || _usePrettifyEditors; + let t3; + if ($[2] !== t2) { + t3 = { + nonNull: true, + caller: t2 + }; + $[2] = t2; + $[3] = t3; + } else { + t3 = $[3]; + } const { queryEditor, headerEditor, variableEditor - } = useEditorContext({ - nonNull: true, - caller: caller || usePrettifyEditors - }); - return React.useCallback(() => { - if (variableEditor) { - const variableEditorContent = variableEditor.getValue(); - try { - const prettifiedVariableEditorContent = JSON.stringify(JSON.parse(variableEditorContent), null, 2); - if (prettifiedVariableEditorContent !== variableEditorContent) { - variableEditor.setValue(prettifiedVariableEditorContent); - } - } catch {} - } - if (headerEditor) { - const headerEditorContent = headerEditor.getValue(); - try { - const prettifiedHeaderEditorContent = JSON.stringify(JSON.parse(headerEditorContent), null, 2); - if (prettifiedHeaderEditorContent !== headerEditorContent) { - headerEditor.setValue(prettifiedHeaderEditorContent); - } - } catch {} - } - if (queryEditor) { - const editorContent = queryEditor.getValue(); - const prettifiedEditorContent = graphql.print(graphql.parse(editorContent)); - if (prettifiedEditorContent !== editorContent) { - queryEditor.setValue(prettifiedEditorContent); + } = useEditorContext(t3); + let t4; + if ($[4] !== headerEditor || $[5] !== queryEditor || $[6] !== variableEditor) { + t4 = () => { + if (variableEditor) { + const variableEditorContent = variableEditor.getValue(); + try { + const prettifiedVariableEditorContent = JSON.stringify(JSON.parse(variableEditorContent), null, 2); + if (prettifiedVariableEditorContent !== variableEditorContent) { + variableEditor.setValue(prettifiedVariableEditorContent); + } + } catch {} } - } - }, [queryEditor, variableEditor, headerEditor]); + if (headerEditor) { + const headerEditorContent = headerEditor.getValue(); + try { + const prettifiedHeaderEditorContent = JSON.stringify(JSON.parse(headerEditorContent), null, 2); + if (prettifiedHeaderEditorContent !== headerEditorContent) { + headerEditor.setValue(prettifiedHeaderEditorContent); + } + } catch {} + } + if (queryEditor) { + const editorContent = queryEditor.getValue(); + const prettifiedEditorContent = graphql.print(graphql.parse(editorContent)); + if (prettifiedEditorContent !== editorContent) { + queryEditor.setValue(prettifiedEditorContent); + } + } + }; + $[4] = headerEditor; + $[5] = queryEditor; + $[6] = variableEditor; + $[7] = t4; + } else { + t4 = $[7]; + } + return t4; } -function useAutoCompleteLeafs({ - getDefaultFieldNames, - caller -} = {}) { +function useAutoCompleteLeafs(t0) { + const $ = reactCompilerRuntime.c(10); + let t1; + if ($[0] !== t0) { + t1 = t0 === void 0 ? {} : t0; + $[0] = t0; + $[1] = t1; + } else { + t1 = $[1]; + } + const { + getDefaultFieldNames, + caller + } = t1; + const t2 = caller || _useAutoCompleteLeafs; + let t3; + if ($[2] !== t2) { + t3 = { + nonNull: true, + caller: t2 + }; + $[2] = t2; + $[3] = t3; + } else { + t3 = $[3]; + } const { schema - } = useSchemaContext({ - nonNull: true, - caller: caller || useAutoCompleteLeafs - }); + } = useSchemaContext(t3); + const t4 = caller || _useAutoCompleteLeafs; + let t5; + if ($[4] !== t4) { + t5 = { + nonNull: true, + caller: t4 + }; + $[4] = t4; + $[5] = t5; + } else { + t5 = $[5]; + } const { queryEditor - } = useEditorContext({ - nonNull: true, - caller: caller || useAutoCompleteLeafs - }); - return React.useCallback(() => { - if (!queryEditor) { - return; - } - const query = queryEditor.getValue(); - const { - insertions, - result - } = toolkit.fillLeafs(schema, query, getDefaultFieldNames); - if (insertions && insertions.length > 0) { - queryEditor.operation(() => { - const cursor = queryEditor.getCursor(); - const cursorIndex = queryEditor.indexFromPos(cursor); - queryEditor.setValue(result || ""); - let added = 0; - const markers = insertions.map(({ - index, - string - }) => queryEditor.markText(queryEditor.posFromIndex(index + added), queryEditor.posFromIndex(index + (added += string.length)), { - className: "auto-inserted-leaf", - clearOnEnter: true, - title: "Automatically added leaf fields" - })); - setTimeout(() => { - for (const marker of markers) { - marker.clear(); + } = useEditorContext(t5); + let t6; + if ($[6] !== getDefaultFieldNames || $[7] !== queryEditor || $[8] !== schema) { + t6 = () => { + if (!queryEditor) { + return; + } + const query = queryEditor.getValue(); + const { + insertions, + result + } = toolkit.fillLeafs(schema, query, getDefaultFieldNames); + if (insertions && insertions.length > 0) { + queryEditor.operation(() => { + const cursor = queryEditor.getCursor(); + const cursorIndex = queryEditor.indexFromPos(cursor); + queryEditor.setValue(result || ""); + let added; + added = 0; + const markers = insertions.map(t7 => { + const { + index, + string + } = t7; + added = added + string.length; + return queryEditor.markText(queryEditor.posFromIndex(index + added), queryEditor.posFromIndex(index + added), { + className: "auto-inserted-leaf", + clearOnEnter: true, + title: "Automatically added leaf fields" + }); + }); + setTimeout(() => { + for (const marker of markers) { + marker.clear(); + } + }, 7e3); + let newCursorIndex = cursorIndex; + for (const { + index: index_0, + string: string_0 + } of insertions) { + if (index_0 < cursorIndex) { + newCursorIndex = newCursorIndex + string_0.length; + } } - }, 7e3); - let newCursorIndex = cursorIndex; - for (const { - index, - string - } of insertions) { - if (index < cursorIndex) { - newCursorIndex += string.length; - } - } - queryEditor.setCursor(queryEditor.posFromIndex(newCursorIndex)); - }); - } - return result; - }, [getDefaultFieldNames, queryEditor, schema]); + queryEditor.setCursor(queryEditor.posFromIndex(newCursorIndex)); + }); + } + return result; + }; + $[6] = getDefaultFieldNames; + $[7] = queryEditor; + $[8] = schema; + $[9] = t6; + } else { + t6 = $[9]; + } + return t6; } const useEditorState = editor => { + "use no memo"; + var _ref2; const context = useEditorContext({ nonNull: true @@ -71561,143 +80393,265 @@ const useVariablesEditorState = () => { const useHeadersEditorState = () => { return useEditorState("header"); }; -function useOptimisticState([upstreamState, upstreamSetState]) { - const lastStateRef = React.useRef({ - /** The last thing that we sent upstream; we're expecting this back */ - pending: null, - /** The last thing we received from upstream */ - last: upstreamState - }); +function useOptimisticState(t0) { + const $ = reactCompilerRuntime.c(12); + const [upstreamState, upstreamSetState] = t0; + let t1; + if ($[0] !== upstreamState) { + t1 = { + pending: null, + last: upstreamState + }; + $[0] = upstreamState; + $[1] = t1; + } else { + t1 = $[1]; + } + const lastStateRef = React.useRef(t1); const [state, setOperationsText] = React.useState(upstreamState); - React.useEffect(() => { - if (lastStateRef.current.last === upstreamState) ;else { - lastStateRef.current.last = upstreamState; - if (lastStateRef.current.pending === null) { - setOperationsText(upstreamState); - } else if (lastStateRef.current.pending === upstreamState) { - lastStateRef.current.pending = null; - if (upstreamState !== state) { - lastStateRef.current.pending = state; - upstreamSetState(state); + let t2; + let t3; + if ($[2] !== state || $[3] !== upstreamSetState || $[4] !== upstreamState) { + t2 = () => { + if (lastStateRef.current.last === upstreamState) ;else { + lastStateRef.current.last = upstreamState; + if (lastStateRef.current.pending === null) { + setOperationsText(upstreamState); + } else { + if (lastStateRef.current.pending === upstreamState) { + lastStateRef.current.pending = null; + if (upstreamState !== state) { + lastStateRef.current.pending = state; + upstreamSetState(state); + } + } else { + lastStateRef.current.pending = null; + setOperationsText(upstreamState); + } } - } else { - lastStateRef.current.pending = null; - setOperationsText(upstreamState); } - } - }, [upstreamState, state, upstreamSetState]); - const setState = React.useCallback(newState => { - setOperationsText(newState); - if (lastStateRef.current.pending === null && lastStateRef.current.last !== newState) { - lastStateRef.current.pending = newState; - upstreamSetState(newState); - } - }, [upstreamSetState]); - return React.useMemo(() => [state, setState], [state, setState]); + }; + t3 = [upstreamState, state, upstreamSetState]; + $[2] = state; + $[3] = upstreamSetState; + $[4] = upstreamState; + $[5] = t2; + $[6] = t3; + } else { + t2 = $[5]; + t3 = $[6]; + } + React.useEffect(t2, t3); + let t4; + if ($[7] !== upstreamSetState) { + t4 = newState => { + setOperationsText(newState); + if (lastStateRef.current.pending === null && lastStateRef.current.last !== newState) { + lastStateRef.current.pending = newState; + upstreamSetState(newState); + } + }; + $[7] = upstreamSetState; + $[8] = t4; + } else { + t4 = $[8]; + } + const setState = t4; + let t5; + if ($[9] !== setState || $[10] !== state) { + t5 = [state, setState]; + $[9] = setState; + $[10] = state; + $[11] = t5; + } else { + t5 = $[11]; + } + return t5; } -function useHeaderEditor({ - editorTheme = DEFAULT_EDITOR_THEME, - keyMap = DEFAULT_KEY_MAP, - onEdit, - readOnly = false -} = {}, caller) { +function importCodeMirrorImports$3() { + return importCodeMirror([// @ts-expect-error + Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/mode/javascript/javascript.js */ "../../../node_modules/codemirror/mode/javascript/javascript.js")))]); +} +const _useHeaderEditor = useHeaderEditor; +function useHeaderEditor(t0, caller) { + const $ = reactCompilerRuntime.c(17); + let t1; + if ($[0] !== t0) { + t1 = t0 === void 0 ? {} : t0; + $[0] = t0; + $[1] = t1; + } else { + t1 = $[1]; + } + const { + editorTheme: t2, + keyMap: t3, + onEdit, + readOnly: t4 + } = t1; + const editorTheme = t2 === void 0 ? DEFAULT_EDITOR_THEME : t2; + const keyMap = t3 === void 0 ? DEFAULT_KEY_MAP : t3; + const readOnly = t4 === void 0 ? false : t4; + const t5 = caller || _useHeaderEditor; + let t6; + if ($[2] !== t5) { + t6 = { + nonNull: true, + caller: t5 + }; + $[2] = t5; + $[3] = t6; + } else { + t6 = $[3]; + } const { initialHeaders, headerEditor, setHeaderEditor, shouldPersistHeaders - } = useEditorContext({ - nonNull: true, - caller: caller || useHeaderEditor - }); + } = useEditorContext(t6); const executionContext = useExecutionContext(); - const merge = useMergeQuery({ - caller: caller || useHeaderEditor - }); - const prettify = usePrettifyEditors({ - caller: caller || useHeaderEditor - }); - const ref = React.useRef(null); - React.useEffect(() => { - let isActive = true; - void importCodeMirror([ - // @ts-expect-error - Promise.resolve().then(() => __webpack_require__(/*! ./javascript.cjs.js */ "../../graphiql-react/dist/javascript.cjs.js")).then(n => n.javascript)]).then(CodeMirror => { - if (!isActive) { - return; - } - const container = ref.current; - if (!container) { - return; - } - const newEditor = CodeMirror(container, { - value: initialHeaders, - lineNumbers: true, - tabSize: 2, - mode: { - name: "javascript", - json: true - }, - theme: editorTheme, - autoCloseBrackets: true, - matchBrackets: true, - showCursorWhenSelecting: true, - readOnly: readOnly ? "nocursor" : false, - foldGutter: true, - gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], - extraKeys: commonKeys - }); - newEditor.addKeyMap({ - "Cmd-Space"() { - newEditor.showHint({ - completeSingle: false, - container - }); - }, - "Ctrl-Space"() { - newEditor.showHint({ - completeSingle: false, - container - }); - }, - "Alt-Space"() { - newEditor.showHint({ - completeSingle: false, - container - }); - }, - "Shift-Space"() { - newEditor.showHint({ - completeSingle: false, - container - }); - } - }); - newEditor.on("keyup", (editorInstance, event) => { - const { - code, - key, - shiftKey - } = event; - const isLetter = code.startsWith("Key"); - const isNumber = !shiftKey && code.startsWith("Digit"); - if (isLetter || isNumber || key === "_" || key === '"') { - editorInstance.execCommand("autocomplete"); - } - }); - setHeaderEditor(newEditor); - }); - return () => { - isActive = false; + const t7 = caller || _useHeaderEditor; + let t8; + if ($[4] !== t7) { + t8 = { + caller: t7 }; - }, [editorTheme, initialHeaders, readOnly, setHeaderEditor]); + $[4] = t7; + $[5] = t8; + } else { + t8 = $[5]; + } + const merge = useMergeQuery(t8); + const t9 = caller || _useHeaderEditor; + let t10; + if ($[6] !== t9) { + t10 = { + caller: t9 + }; + $[6] = t9; + $[7] = t10; + } else { + t10 = $[7]; + } + const prettify = usePrettifyEditors(t10); + const ref = React.useRef(null); + let t11; + let t12; + if ($[8] !== editorTheme || $[9] !== initialHeaders || $[10] !== readOnly || $[11] !== setHeaderEditor) { + t11 = () => { + let isActive; + isActive = true; + importCodeMirrorImports$3().then(CodeMirror => { + if (!isActive) { + return; + } + const container = ref.current; + if (!container) { + return; + } + const newEditor = CodeMirror(container, { + value: initialHeaders, + lineNumbers: true, + tabSize: 2, + mode: { + name: "javascript", + json: true + }, + theme: editorTheme, + autoCloseBrackets: true, + matchBrackets: true, + showCursorWhenSelecting: true, + readOnly: readOnly ? "nocursor" : false, + foldGutter: true, + gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], + extraKeys: commonKeys + }); + newEditor.addKeyMap({ + "Cmd-Space"() { + newEditor.showHint({ + completeSingle: false, + container + }); + }, + "Ctrl-Space"() { + newEditor.showHint({ + completeSingle: false, + container + }); + }, + "Alt-Space"() { + newEditor.showHint({ + completeSingle: false, + container + }); + }, + "Shift-Space"() { + newEditor.showHint({ + completeSingle: false, + container + }); + } + }); + newEditor.on("keyup", _temp$2); + setHeaderEditor(newEditor); + }); + return () => { + isActive = false; + }; + }; + t12 = [editorTheme, initialHeaders, readOnly, setHeaderEditor]; + $[8] = editorTheme; + $[9] = initialHeaders; + $[10] = readOnly; + $[11] = setHeaderEditor; + $[12] = t11; + $[13] = t12; + } else { + t11 = $[12]; + t12 = $[13]; + } + React.useEffect(t11, t12); useSynchronizeOption(headerEditor, "keyMap", keyMap); - useChangeHandler(headerEditor, onEdit, shouldPersistHeaders ? STORAGE_KEY$3 : null, "headers", useHeaderEditor); - useKeyMap(headerEditor, ["Cmd-Enter", "Ctrl-Enter"], executionContext == null ? void 0 : executionContext.run); - useKeyMap(headerEditor, ["Shift-Ctrl-P"], prettify); - useKeyMap(headerEditor, ["Shift-Ctrl-M"], merge); + useChangeHandler(headerEditor, onEdit, shouldPersistHeaders ? STORAGE_KEY$3 : null, "headers", _useHeaderEditor); + let t13; + if ($[14] === Symbol.for("react.memo_cache_sentinel")) { + t13 = ["Cmd-Enter", "Ctrl-Enter"]; + $[14] = t13; + } else { + t13 = $[14]; + } + useKeyMap(headerEditor, t13, executionContext == null ? void 0 : executionContext.run); + let t14; + if ($[15] === Symbol.for("react.memo_cache_sentinel")) { + t14 = ["Shift-Ctrl-P"]; + $[15] = t14; + } else { + t14 = $[15]; + } + useKeyMap(headerEditor, t14, prettify); + let t15; + if ($[16] === Symbol.for("react.memo_cache_sentinel")) { + t15 = ["Shift-Ctrl-M"]; + $[16] = t15; + } else { + t15 = $[16]; + } + useKeyMap(headerEditor, t15, merge); return ref; } +function _temp$2(editorInstance, event) { + const { + code, + key, + shiftKey + } = event; + const isLetter = code.startsWith("Key"); + const isNumber = !shiftKey && code.startsWith("Digit"); + if (isLetter || isNumber || key === "_" || key === '"') { + editorInstance.execCommand("autocomplete"); + } +} const STORAGE_KEY$3 = "headers"; const invalidCharacters = Array.from({ length: 11 @@ -71708,20 +80662,79 @@ const sanitizeRegex = new RegExp("[" + invalidCharacters.join("") + "]", "g"); function normalizeWhitespace(line) { return line.replace(sanitizeRegex, " "); } -function useQueryEditor({ - editorTheme = DEFAULT_EDITOR_THEME, - keyMap = DEFAULT_KEY_MAP, - onClickReference, - onCopyQuery, - onEdit, - readOnly = false -} = {}, caller) { +function importCodeMirrorImports$2() { + return importCodeMirror([Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/comment/comment.js */ "../../../node_modules/codemirror/addon/comment/comment.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/search/search.js */ "../../../node_modules/codemirror/addon/search/search.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror-graphql/esm/hint.js */ "../../codemirror-graphql/esm/hint.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror-graphql/esm/lint.js */ "../../codemirror-graphql/esm/lint.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror-graphql/esm/info.js */ "../../codemirror-graphql/esm/info.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror-graphql/esm/jump.js */ "../../codemirror-graphql/esm/jump.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror-graphql/esm/mode.js */ "../../codemirror-graphql/esm/mode.js")))]); +} +const _useQueryEditor = useQueryEditor; +function updateVariableEditor(variableEditor, operationFacts) { + variableEditor.state.lint.linterOptions.variableToType = operationFacts == null ? void 0 : operationFacts.variableToType; + variableEditor.options.lint.variableToType = operationFacts == null ? void 0 : operationFacts.variableToType; + variableEditor.options.hintOptions.variableToType = operationFacts == null ? void 0 : operationFacts.variableToType; +} +function updateEditorSchema(editor, schema) { + editor.state.lint.linterOptions.schema = schema; + editor.options.lint.schema = schema; + editor.options.hintOptions.schema = schema; + editor.options.info.schema = schema; + editor.options.jump.schema = schema; +} +function updateEditorValidationRules(editor, validationRules) { + editor.state.lint.linterOptions.validationRules = validationRules; + editor.options.lint.validationRules = validationRules; +} +function updateEditorExternalFragments(editor, externalFragmentList) { + editor.state.lint.linterOptions.externalFragments = externalFragmentList; + editor.options.lint.externalFragments = externalFragmentList; + editor.options.hintOptions.externalFragments = externalFragmentList; +} +function useQueryEditor(t0, caller) { + const $ = reactCompilerRuntime.c(41); + let t1; + if ($[0] !== t0) { + t1 = t0 === void 0 ? {} : t0; + $[0] = t0; + $[1] = t1; + } else { + t1 = $[1]; + } + const { + editorTheme: t2, + keyMap: t3, + onClickReference, + onCopyQuery, + onEdit, + readOnly: t4 + } = t1; + const editorTheme = t2 === void 0 ? DEFAULT_EDITOR_THEME : t2; + const keyMap = t3 === void 0 ? DEFAULT_KEY_MAP : t3; + const readOnly = t4 === void 0 ? false : t4; + const t5 = caller || _useQueryEditor; + let t6; + if ($[2] !== t5) { + t6 = { + nonNull: true, + caller: t5 + }; + $[2] = t5; + $[3] = t6; + } else { + t6 = $[3]; + } const { schema - } = useSchemaContext({ - nonNull: true, - caller: caller || useQueryEditor - }); + } = useSchemaContext(t6); + const t7 = caller || _useQueryEditor; + let t8; + if ($[4] !== t7) { + t8 = { + nonNull: true, + caller: t7 + }; + $[4] = t7; + $[5] = t8; + } else { + t8 = $[5]; + } const { externalFragments, initialQuery, @@ -71731,321 +80744,484 @@ function useQueryEditor({ validationRules, variableEditor, updateActiveTabValues - } = useEditorContext({ - nonNull: true, - caller: caller || useQueryEditor - }); + } = useEditorContext(t8); const executionContext = useExecutionContext(); const storage = useStorageContext(); const explorer = useExplorerContext(); const plugin = usePluginContext(); - const copy = useCopyQuery({ - caller: caller || useQueryEditor, - onCopyQuery - }); - const merge = useMergeQuery({ - caller: caller || useQueryEditor - }); - const prettify = usePrettifyEditors({ - caller: caller || useQueryEditor - }); + const t9 = caller || _useQueryEditor; + let t10; + if ($[6] !== onCopyQuery || $[7] !== t9) { + t10 = { + caller: t9, + onCopyQuery + }; + $[6] = onCopyQuery; + $[7] = t9; + $[8] = t10; + } else { + t10 = $[8]; + } + const copy = useCopyQuery(t10); + const t11 = caller || _useQueryEditor; + let t12; + if ($[9] !== t11) { + t12 = { + caller: t11 + }; + $[9] = t11; + $[10] = t12; + } else { + t12 = $[10]; + } + const merge = useMergeQuery(t12); + const t13 = caller || _useQueryEditor; + let t14; + if ($[11] !== t13) { + t14 = { + caller: t13 + }; + $[11] = t13; + $[12] = t14; + } else { + t14 = $[12]; + } + const prettify = usePrettifyEditors(t14); const ref = React.useRef(null); const codeMirrorRef = React.useRef(); - const onClickReferenceRef = React.useRef(() => {}); - React.useEffect(() => { - onClickReferenceRef.current = reference => { - if (!explorer || !plugin) { - return; - } - plugin.setVisiblePlugin(DOC_EXPLORER_PLUGIN); - switch (reference.kind) { - case "Type": - { - explorer.push({ - name: reference.type.name, - def: reference.type - }); - break; - } - case "Field": - { - explorer.push({ - name: reference.field.name, - def: reference.field - }); - break; - } - case "Argument": - { - if (reference.field) { - explorer.push({ - name: reference.field.name, - def: reference.field - }); - } - break; - } - case "EnumValue": - { - if (reference.type) { + const onClickReferenceRef = React.useRef(_temp$1); + let t15; + let t16; + if ($[13] !== explorer || $[14] !== onClickReference || $[15] !== plugin) { + t15 = () => { + onClickReferenceRef.current = reference => { + if (!explorer || !plugin) { + return; + } + plugin.setVisiblePlugin(DOC_EXPLORER_PLUGIN); + bb47: switch (reference.kind) { + case "Type": + { explorer.push({ name: reference.type.name, def: reference.type }); + break bb47; } - break; - } - } - onClickReference == null ? void 0 : onClickReference(reference); + case "Field": + { + explorer.push({ + name: reference.field.name, + def: reference.field + }); + break bb47; + } + case "Argument": + { + if (reference.field) { + explorer.push({ + name: reference.field.name, + def: reference.field + }); + } + break bb47; + } + case "EnumValue": + { + if (reference.type) { + explorer.push({ + name: reference.type.name, + def: reference.type + }); + } + } + } + onClickReference == null ? void 0 : onClickReference(reference); + }; }; - }, [explorer, onClickReference, plugin]); - React.useEffect(() => { - let isActive = true; - void importCodeMirror([Promise.resolve().then(() => __webpack_require__(/*! ./comment.cjs.js */ "../../graphiql-react/dist/comment.cjs.js")).then(n => n.comment), Promise.resolve().then(() => __webpack_require__(/*! ./search.cjs.js */ "../../graphiql-react/dist/search.cjs.js")).then(n => n.search), Promise.resolve().then(() => __webpack_require__(/*! ./hint.cjs.js */ "../../graphiql-react/dist/hint.cjs.js")), Promise.resolve().then(() => __webpack_require__(/*! ./lint.cjs2.js */ "../../graphiql-react/dist/lint.cjs2.js")), Promise.resolve().then(() => __webpack_require__(/*! ./info.cjs.js */ "../../graphiql-react/dist/info.cjs.js")), Promise.resolve().then(() => __webpack_require__(/*! ./jump.cjs.js */ "../../graphiql-react/dist/jump.cjs.js")), Promise.resolve().then(() => __webpack_require__(/*! ./mode.cjs.js */ "../../graphiql-react/dist/mode.cjs.js"))]).then(CodeMirror => { - if (!isActive) { - return; - } - codeMirrorRef.current = CodeMirror; - const container = ref.current; - if (!container) { - return; - } - const newEditor = CodeMirror(container, { - value: initialQuery, - lineNumbers: true, - tabSize: 2, - foldGutter: true, - mode: "graphql", - theme: editorTheme, - autoCloseBrackets: true, - matchBrackets: true, - showCursorWhenSelecting: true, - readOnly: readOnly ? "nocursor" : false, - lint: { - // @ts-expect-error - schema: void 0, - validationRules: null, - // linting accepts string or FragmentDefinitionNode[] - externalFragments: void 0 - }, - hintOptions: { - // @ts-expect-error - schema: void 0, - closeOnUnfocus: false, - completeSingle: false, - container, - externalFragments: void 0, - autocompleteOptions: { - // for the query editor, restrict to executable type definitions - mode: graphqlLanguageService.GraphQLDocumentMode.EXECUTABLE - } - }, - info: { - schema: void 0, - renderDescription: text => markdown.render(text), - onClick(reference) { - onClickReferenceRef.current(reference); - } - }, - jump: { - schema: void 0, - onClick(reference) { - onClickReferenceRef.current(reference); - } - }, - gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], - extraKeys: { - ...commonKeys, - "Cmd-S"() {}, - "Ctrl-S"() {} + t16 = [explorer, onClickReference, plugin]; + $[13] = explorer; + $[14] = onClickReference; + $[15] = plugin; + $[16] = t15; + $[17] = t16; + } else { + t15 = $[16]; + t16 = $[17]; + } + React.useEffect(t15, t16); + let t17; + let t18; + if ($[18] !== editorTheme || $[19] !== initialQuery || $[20] !== readOnly || $[21] !== setQueryEditor) { + t17 = () => { + let isActive; + isActive = true; + importCodeMirrorImports$2().then(CodeMirror => { + if (!isActive) { + return; } - }); - newEditor.addKeyMap({ - "Cmd-Space"() { - newEditor.showHint({ - completeSingle: true, - container - }); - }, - "Ctrl-Space"() { - newEditor.showHint({ - completeSingle: true, - container - }); - }, - "Alt-Space"() { - newEditor.showHint({ - completeSingle: true, - container - }); - }, - "Shift-Space"() { - newEditor.showHint({ - completeSingle: true, - container - }); - }, - "Shift-Alt-Space"() { - newEditor.showHint({ - completeSingle: true, - container - }); + codeMirrorRef.current = CodeMirror; + const container = ref.current; + if (!container) { + return; } - }); - newEditor.on("keyup", (editorInstance, event) => { - if (AUTO_COMPLETE_AFTER_KEY.test(event.key)) { - editorInstance.execCommand("autocomplete"); - } - }); - let showingHints = false; - newEditor.on("startCompletion", () => { - showingHints = true; - }); - newEditor.on("endCompletion", () => { + const newEditor = CodeMirror(container, { + value: initialQuery, + lineNumbers: true, + tabSize: 2, + foldGutter: true, + mode: "graphql", + theme: editorTheme, + autoCloseBrackets: true, + matchBrackets: true, + showCursorWhenSelecting: true, + readOnly: readOnly ? "nocursor" : false, + lint: { + schema: void 0, + validationRules: null, + externalFragments: void 0 + }, + hintOptions: { + schema: void 0, + closeOnUnfocus: false, + completeSingle: false, + container, + externalFragments: void 0, + autocompleteOptions: { + mode: graphqlLanguageService.GraphQLDocumentMode.EXECUTABLE + } + }, + info: { + schema: void 0, + renderDescription: _temp2, + onClick(reference_0) { + onClickReferenceRef.current(reference_0); + } + }, + jump: { + schema: void 0, + onClick(reference_1) { + onClickReferenceRef.current(reference_1); + } + }, + gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], + extraKeys: { + ...commonKeys, + "Cmd-S"() {}, + "Ctrl-S"() {} + } + }); + newEditor.addKeyMap({ + "Cmd-Space"() { + newEditor.showHint({ + completeSingle: true, + container + }); + }, + "Ctrl-Space"() { + newEditor.showHint({ + completeSingle: true, + container + }); + }, + "Alt-Space"() { + newEditor.showHint({ + completeSingle: true, + container + }); + }, + "Shift-Space"() { + newEditor.showHint({ + completeSingle: true, + container + }); + }, + "Shift-Alt-Space"() { + newEditor.showHint({ + completeSingle: true, + container + }); + } + }); + newEditor.on("keyup", _temp3); + let showingHints; showingHints = false; + newEditor.on("startCompletion", () => { + showingHints = true; + }); + newEditor.on("endCompletion", () => { + showingHints = false; + }); + newEditor.on("keydown", (editorInstance_0, event_0) => { + if (event_0.key === "Escape" && showingHints) { + event_0.stopPropagation(); + } + }); + newEditor.on("beforeChange", _temp4); + newEditor.documentAST = null; + newEditor.operationName = null; + newEditor.operations = null; + newEditor.variableToType = null; + setQueryEditor(newEditor); }); - newEditor.on("keydown", (editorInstance, event) => { - if (event.key === "Escape" && showingHints) { - event.stopPropagation(); - } - }); - newEditor.on("beforeChange", (editorInstance, change) => { - var _a; - if (change.origin === "paste") { - const text = change.text.map(normalizeWhitespace); - (_a = change.update) == null ? void 0 : _a.call(change, change.from, change.to, text); - } - }); - newEditor.documentAST = null; - newEditor.operationName = null; - newEditor.operations = null; - newEditor.variableToType = null; - setQueryEditor(newEditor); - }); - return () => { - isActive = false; + return () => { + isActive = false; + }; }; - }, [editorTheme, initialQuery, readOnly, setQueryEditor]); + t18 = [editorTheme, initialQuery, readOnly, setQueryEditor]; + $[18] = editorTheme; + $[19] = initialQuery; + $[20] = readOnly; + $[21] = setQueryEditor; + $[22] = t17; + $[23] = t18; + } else { + t17 = $[22]; + t18 = $[23]; + } + React.useEffect(t17, t18); useSynchronizeOption(queryEditor, "keyMap", keyMap); - React.useEffect(() => { - if (!queryEditor) { - return; - } - function getAndUpdateOperationFacts(editorInstance) { - var _editorInstance$opera, _editorInstance$opera2, _ref3, _ref4; - var _a; - const operationFacts = graphqlLanguageService.getOperationFacts(schema, editorInstance.getValue()); - const operationName = toolkit.getSelectedOperationName((_editorInstance$opera = editorInstance.operations) !== null && _editorInstance$opera !== void 0 ? _editorInstance$opera : void 0, (_editorInstance$opera2 = editorInstance.operationName) !== null && _editorInstance$opera2 !== void 0 ? _editorInstance$opera2 : void 0, operationFacts == null ? void 0 : operationFacts.operations); - editorInstance.documentAST = (_ref3 = operationFacts == null ? void 0 : operationFacts.documentAST) !== null && _ref3 !== void 0 ? _ref3 : null; - editorInstance.operationName = operationName !== null && operationName !== void 0 ? operationName : null; - editorInstance.operations = (_ref4 = operationFacts == null ? void 0 : operationFacts.operations) !== null && _ref4 !== void 0 ? _ref4 : null; - if (variableEditor) { - variableEditor.state.lint.linterOptions.variableToType = operationFacts == null ? void 0 : operationFacts.variableToType; - variableEditor.options.lint.variableToType = operationFacts == null ? void 0 : operationFacts.variableToType; - variableEditor.options.hintOptions.variableToType = operationFacts == null ? void 0 : operationFacts.variableToType; - (_a = codeMirrorRef.current) == null ? void 0 : _a.signal(variableEditor, "change", variableEditor); + let t19; + let t20; + if ($[24] !== onEdit || $[25] !== queryEditor || $[26] !== schema || $[27] !== setOperationName || $[28] !== storage || $[29] !== updateActiveTabValues || $[30] !== variableEditor) { + t19 = () => { + if (!queryEditor) { + return; } - return operationFacts ? { - ...operationFacts, - operationName - } : null; - } - const handleChange = debounce(100, editorInstance => { - var _ref5; - const query = editorInstance.getValue(); - storage == null ? void 0 : storage.set(STORAGE_KEY_QUERY, query); - const currentOperationName = editorInstance.operationName; - const operationFacts = getAndUpdateOperationFacts(editorInstance); - if ((operationFacts == null ? void 0 : operationFacts.operationName) !== void 0) { - storage == null ? void 0 : storage.set(STORAGE_KEY_OPERATION_NAME, operationFacts.operationName); - } - onEdit == null ? void 0 : onEdit(query, operationFacts == null ? void 0 : operationFacts.documentAST); - if ((operationFacts == null ? void 0 : operationFacts.operationName) && currentOperationName !== operationFacts.operationName) { - setOperationName(operationFacts.operationName); - } - updateActiveTabValues({ - query, - operationName: (_ref5 = operationFacts == null ? void 0 : operationFacts.operationName) !== null && _ref5 !== void 0 ? _ref5 : null + const getAndUpdateOperationFacts = function getAndUpdateOperationFacts2(editorInstance_2) { + var _editorInstance_2$ope, _editorInstance_2$ope2, _ref3, _ref4; + var _a; + const operationFacts = graphqlLanguageService.getOperationFacts(schema, editorInstance_2.getValue()); + const operationName = toolkit.getSelectedOperationName((_editorInstance_2$ope = editorInstance_2.operations) !== null && _editorInstance_2$ope !== void 0 ? _editorInstance_2$ope : void 0, (_editorInstance_2$ope2 = editorInstance_2.operationName) !== null && _editorInstance_2$ope2 !== void 0 ? _editorInstance_2$ope2 : void 0, operationFacts == null ? void 0 : operationFacts.operations); + editorInstance_2.documentAST = (_ref3 = operationFacts == null ? void 0 : operationFacts.documentAST) !== null && _ref3 !== void 0 ? _ref3 : null; + editorInstance_2.operationName = operationName !== null && operationName !== void 0 ? operationName : null; + editorInstance_2.operations = (_ref4 = operationFacts == null ? void 0 : operationFacts.operations) !== null && _ref4 !== void 0 ? _ref4 : null; + if (variableEditor) { + updateVariableEditor(variableEditor, operationFacts); + (_a = codeMirrorRef.current) == null ? void 0 : _a.signal(variableEditor, "change", variableEditor); + } + return operationFacts ? { + ...operationFacts, + operationName + } : null; + }; + const handleChange = debounce(100, editorInstance_3 => { + var _ref5; + const query = editorInstance_3.getValue(); + storage == null ? void 0 : storage.set(STORAGE_KEY_QUERY, query); + const currentOperationName = editorInstance_3.operationName; + const operationFacts_0 = getAndUpdateOperationFacts(editorInstance_3); + if ((operationFacts_0 == null ? void 0 : operationFacts_0.operationName) !== void 0) { + storage == null ? void 0 : storage.set(STORAGE_KEY_OPERATION_NAME, operationFacts_0.operationName); + } + onEdit == null ? void 0 : onEdit(query, operationFacts_0 == null ? void 0 : operationFacts_0.documentAST); + if ((operationFacts_0 == null ? void 0 : operationFacts_0.operationName) && currentOperationName !== operationFacts_0.operationName) { + setOperationName(operationFacts_0.operationName); + } + updateActiveTabValues({ + query, + operationName: (_ref5 = operationFacts_0 == null ? void 0 : operationFacts_0.operationName) !== null && _ref5 !== void 0 ? _ref5 : null + }); }); - }); - getAndUpdateOperationFacts(queryEditor); - queryEditor.on("change", handleChange); - return () => queryEditor.off("change", handleChange); - }, [onEdit, queryEditor, schema, setOperationName, storage, variableEditor, updateActiveTabValues]); + getAndUpdateOperationFacts(queryEditor); + queryEditor.on("change", handleChange); + return () => queryEditor.off("change", handleChange); + }; + t20 = [onEdit, queryEditor, schema, setOperationName, storage, variableEditor, updateActiveTabValues]; + $[24] = onEdit; + $[25] = queryEditor; + $[26] = schema; + $[27] = setOperationName; + $[28] = storage; + $[29] = updateActiveTabValues; + $[30] = variableEditor; + $[31] = t19; + $[32] = t20; + } else { + t19 = $[31]; + t20 = $[32]; + } + React.useEffect(t19, t20); useSynchronizeSchema(queryEditor, schema !== null && schema !== void 0 ? schema : null, codeMirrorRef); useSynchronizeValidationRules(queryEditor, validationRules !== null && validationRules !== void 0 ? validationRules : null, codeMirrorRef); useSynchronizeExternalFragments(queryEditor, externalFragments, codeMirrorRef); - useCompletion(queryEditor, onClickReference || null, useQueryEditor); + useCompletion(queryEditor, onClickReference || null, _useQueryEditor); const run = executionContext == null ? void 0 : executionContext.run; - const runAtCursor = React.useCallback(() => { - var _a; - if (!run || !queryEditor || !queryEditor.operations || !queryEditor.hasFocus()) { - run == null ? void 0 : run(); - return; - } - const cursorIndex = queryEditor.indexFromPos(queryEditor.getCursor()); - let operationName; - for (const operation of queryEditor.operations) { - if (operation.loc && operation.loc.start <= cursorIndex && operation.loc.end >= cursorIndex) { - operationName = (_a = operation.name) == null ? void 0 : _a.value; + let t21; + if ($[33] !== queryEditor || $[34] !== run || $[35] !== setOperationName) { + t21 = () => { + var _a; + if (!run || !queryEditor || !queryEditor.operations || !queryEditor.hasFocus()) { + run == null ? void 0 : run(); + return; } - } - if (operationName && operationName !== queryEditor.operationName) { - setOperationName(operationName); - } - run(); - }, [queryEditor, run, setOperationName]); - useKeyMap(queryEditor, ["Cmd-Enter", "Ctrl-Enter"], runAtCursor); - useKeyMap(queryEditor, ["Shift-Ctrl-C"], copy); - useKeyMap(queryEditor, ["Shift-Ctrl-P", - // Shift-Ctrl-P is hard coded in Firefox for private browsing so adding an alternative to prettify - "Shift-Ctrl-F"], prettify); - useKeyMap(queryEditor, ["Shift-Ctrl-M"], merge); + const cursorIndex = queryEditor.indexFromPos(queryEditor.getCursor()); + let operationName_0; + for (const operation of queryEditor.operations) { + if (operation.loc && operation.loc.start <= cursorIndex && operation.loc.end >= cursorIndex) { + operationName_0 = (_a = operation.name) == null ? void 0 : _a.value; + } + } + if (operationName_0 && operationName_0 !== queryEditor.operationName) { + setOperationName(operationName_0); + } + run(); + }; + $[33] = queryEditor; + $[34] = run; + $[35] = setOperationName; + $[36] = t21; + } else { + t21 = $[36]; + } + const runAtCursor = t21; + let t22; + if ($[37] === Symbol.for("react.memo_cache_sentinel")) { + t22 = ["Cmd-Enter", "Ctrl-Enter"]; + $[37] = t22; + } else { + t22 = $[37]; + } + useKeyMap(queryEditor, t22, runAtCursor); + let t23; + if ($[38] === Symbol.for("react.memo_cache_sentinel")) { + t23 = ["Shift-Ctrl-C"]; + $[38] = t23; + } else { + t23 = $[38]; + } + useKeyMap(queryEditor, t23, copy); + let t24; + if ($[39] === Symbol.for("react.memo_cache_sentinel")) { + t24 = ["Shift-Ctrl-P", "Shift-Ctrl-F"]; + $[39] = t24; + } else { + t24 = $[39]; + } + useKeyMap(queryEditor, t24, prettify); + let t25; + if ($[40] === Symbol.for("react.memo_cache_sentinel")) { + t25 = ["Shift-Ctrl-M"]; + $[40] = t25; + } else { + t25 = $[40]; + } + useKeyMap(queryEditor, t25, merge); return ref; } +function _temp4(editorInstance_1, change) { + var _a; + if (change.origin === "paste") { + const text_0 = change.text.map(normalizeWhitespace); + (_a = change.update) == null ? void 0 : _a.call(change, change.from, change.to, text_0); + } +} +function _temp3(editorInstance, event) { + if (AUTO_COMPLETE_AFTER_KEY.test(event.key)) { + editorInstance.execCommand("autocomplete"); + } +} +function _temp2(text) { + return markdown.render(text); +} +function _temp$1() {} function useSynchronizeSchema(editor, schema, codeMirrorRef) { - React.useEffect(() => { - if (!editor) { - return; - } - const didChange = editor.options.lint.schema !== schema; - editor.state.lint.linterOptions.schema = schema; - editor.options.lint.schema = schema; - editor.options.hintOptions.schema = schema; - editor.options.info.schema = schema; - editor.options.jump.schema = schema; - if (didChange && codeMirrorRef.current) { - codeMirrorRef.current.signal(editor, "change", editor); - } - }, [editor, schema, codeMirrorRef]); + const $ = reactCompilerRuntime.c(5); + let t0; + let t1; + if ($[0] !== codeMirrorRef || $[1] !== editor || $[2] !== schema) { + t0 = () => { + if (!editor) { + return; + } + const didChange = editor.options.lint.schema !== schema; + updateEditorSchema(editor, schema); + if (didChange && codeMirrorRef.current) { + codeMirrorRef.current.signal(editor, "change", editor); + } + }; + t1 = [editor, schema, codeMirrorRef]; + $[0] = codeMirrorRef; + $[1] = editor; + $[2] = schema; + $[3] = t0; + $[4] = t1; + } else { + t0 = $[3]; + t1 = $[4]; + } + React.useEffect(t0, t1); } function useSynchronizeValidationRules(editor, validationRules, codeMirrorRef) { - React.useEffect(() => { - if (!editor) { - return; - } - const didChange = editor.options.lint.validationRules !== validationRules; - editor.state.lint.linterOptions.validationRules = validationRules; - editor.options.lint.validationRules = validationRules; - if (didChange && codeMirrorRef.current) { - codeMirrorRef.current.signal(editor, "change", editor); - } - }, [editor, validationRules, codeMirrorRef]); + const $ = reactCompilerRuntime.c(5); + let t0; + let t1; + if ($[0] !== codeMirrorRef || $[1] !== editor || $[2] !== validationRules) { + t0 = () => { + if (!editor) { + return; + } + const didChange = editor.options.lint.validationRules !== validationRules; + updateEditorValidationRules(editor, validationRules); + if (didChange && codeMirrorRef.current) { + codeMirrorRef.current.signal(editor, "change", editor); + } + }; + t1 = [editor, validationRules, codeMirrorRef]; + $[0] = codeMirrorRef; + $[1] = editor; + $[2] = validationRules; + $[3] = t0; + $[4] = t1; + } else { + t0 = $[3]; + t1 = $[4]; + } + React.useEffect(t0, t1); } function useSynchronizeExternalFragments(editor, externalFragments, codeMirrorRef) { - const externalFragmentList = React.useMemo(() => [...externalFragments.values()], [externalFragments]); - React.useEffect(() => { - if (!editor) { - return; - } - const didChange = editor.options.lint.externalFragments !== externalFragmentList; - editor.state.lint.linterOptions.externalFragments = externalFragmentList; - editor.options.lint.externalFragments = externalFragmentList; - editor.options.hintOptions.externalFragments = externalFragmentList; - if (didChange && codeMirrorRef.current) { - codeMirrorRef.current.signal(editor, "change", editor); - } - }, [editor, externalFragmentList, codeMirrorRef]); + const $ = reactCompilerRuntime.c(9); + let t0; + if ($[0] !== externalFragments) { + t0 = externalFragments.values(); + $[0] = externalFragments; + $[1] = t0; + } else { + t0 = $[1]; + } + let t1; + if ($[2] !== t0) { + t1 = [...t0]; + $[2] = t0; + $[3] = t1; + } else { + t1 = $[3]; + } + const externalFragmentList = t1; + let t2; + let t3; + if ($[4] !== codeMirrorRef || $[5] !== editor || $[6] !== externalFragmentList) { + t2 = () => { + if (!editor) { + return; + } + const didChange = editor.options.lint.externalFragments !== externalFragmentList; + updateEditorExternalFragments(editor, externalFragmentList); + if (didChange && codeMirrorRef.current) { + codeMirrorRef.current.signal(editor, "change", editor); + } + }; + t3 = [editor, externalFragmentList, codeMirrorRef]; + $[4] = codeMirrorRef; + $[5] = editor; + $[6] = externalFragmentList; + $[7] = t2; + $[8] = t3; + } else { + t2 = $[7]; + t3 = $[8]; + } + React.useEffect(t2, t3); } const AUTO_COMPLETE_AFTER_KEY = /^[a-zA-Z0-9_@(]$/; const STORAGE_KEY_QUERY = "query"; @@ -72250,325 +81426,606 @@ function clearHeadersFromTabs(storage) { } const DEFAULT_TITLE = ""; const STORAGE_KEY$2 = "tabState"; -function useVariableEditor({ - editorTheme = DEFAULT_EDITOR_THEME, - keyMap = DEFAULT_KEY_MAP, - onClickReference, - onEdit, - readOnly = false -} = {}, caller) { +function importCodeMirrorImports$1() { + return importCodeMirror([Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror-graphql/esm/variables/hint.js */ "../../codemirror-graphql/esm/variables/hint.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror-graphql/esm/variables/lint.js */ "../../codemirror-graphql/esm/variables/lint.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror-graphql/esm/variables/mode.js */ "../../codemirror-graphql/esm/variables/mode.js")))]); +} +const _useVariableEditor = useVariableEditor; +function useVariableEditor(t0, caller) { + const $ = reactCompilerRuntime.c(17); + let t1; + if ($[0] !== t0) { + t1 = t0 === void 0 ? {} : t0; + $[0] = t0; + $[1] = t1; + } else { + t1 = $[1]; + } + const { + editorTheme: t2, + keyMap: t3, + onClickReference, + onEdit, + readOnly: t4 + } = t1; + const editorTheme = t2 === void 0 ? DEFAULT_EDITOR_THEME : t2; + const keyMap = t3 === void 0 ? DEFAULT_KEY_MAP : t3; + const readOnly = t4 === void 0 ? false : t4; + const t5 = caller || _useVariableEditor; + let t6; + if ($[2] !== t5) { + t6 = { + nonNull: true, + caller: t5 + }; + $[2] = t5; + $[3] = t6; + } else { + t6 = $[3]; + } const { initialVariables, variableEditor, setVariableEditor - } = useEditorContext({ - nonNull: true, - caller: caller || useVariableEditor - }); + } = useEditorContext(t6); const executionContext = useExecutionContext(); - const merge = useMergeQuery({ - caller: caller || useVariableEditor - }); - const prettify = usePrettifyEditors({ - caller: caller || useVariableEditor - }); + const t7 = caller || _useVariableEditor; + let t8; + if ($[4] !== t7) { + t8 = { + caller: t7 + }; + $[4] = t7; + $[5] = t8; + } else { + t8 = $[5]; + } + const merge = useMergeQuery(t8); + const t9 = caller || _useVariableEditor; + let t10; + if ($[6] !== t9) { + t10 = { + caller: t9 + }; + $[6] = t9; + $[7] = t10; + } else { + t10 = $[7]; + } + const prettify = usePrettifyEditors(t10); const ref = React.useRef(null); const codeMirrorRef = React.useRef(); - React.useEffect(() => { - let isActive = true; - void importCodeMirror([Promise.resolve().then(() => __webpack_require__(/*! ./hint.cjs2.js */ "../../graphiql-react/dist/hint.cjs2.js")), Promise.resolve().then(() => __webpack_require__(/*! ./lint.cjs3.js */ "../../graphiql-react/dist/lint.cjs3.js")), Promise.resolve().then(() => __webpack_require__(/*! ./mode.cjs2.js */ "../../graphiql-react/dist/mode.cjs2.js"))]).then(CodeMirror => { - if (!isActive) { - return; - } - codeMirrorRef.current = CodeMirror; - const container = ref.current; - if (!container) { - return; - } - const newEditor = CodeMirror(container, { - value: initialVariables, - lineNumbers: true, - tabSize: 2, - mode: "graphql-variables", - theme: editorTheme, - autoCloseBrackets: true, - matchBrackets: true, - showCursorWhenSelecting: true, - readOnly: readOnly ? "nocursor" : false, - foldGutter: true, - lint: { - // @ts-expect-error - variableToType: void 0 - }, - hintOptions: { - closeOnUnfocus: false, - completeSingle: false, - container, - // @ts-expect-error - variableToType: void 0 - }, - gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], - extraKeys: commonKeys - }); - newEditor.addKeyMap({ - "Cmd-Space"() { - newEditor.showHint({ - completeSingle: false, - container - }); - }, - "Ctrl-Space"() { - newEditor.showHint({ - completeSingle: false, - container - }); - }, - "Alt-Space"() { - newEditor.showHint({ - completeSingle: false, - container - }); - }, - "Shift-Space"() { - newEditor.showHint({ - completeSingle: false, - container - }); + let t11; + let t12; + if ($[8] !== editorTheme || $[9] !== initialVariables || $[10] !== readOnly || $[11] !== setVariableEditor) { + t11 = () => { + let isActive; + isActive = true; + importCodeMirrorImports$1().then(CodeMirror => { + if (!isActive) { + return; } - }); - newEditor.on("keyup", (editorInstance, event) => { - const { - code, - key, - shiftKey - } = event; - const isLetter = code.startsWith("Key"); - const isNumber = !shiftKey && code.startsWith("Digit"); - if (isLetter || isNumber || key === "_" || key === '"') { - editorInstance.execCommand("autocomplete"); + codeMirrorRef.current = CodeMirror; + const container = ref.current; + if (!container) { + return; } + const newEditor = CodeMirror(container, { + value: initialVariables, + lineNumbers: true, + tabSize: 2, + mode: "graphql-variables", + theme: editorTheme, + autoCloseBrackets: true, + matchBrackets: true, + showCursorWhenSelecting: true, + readOnly: readOnly ? "nocursor" : false, + foldGutter: true, + lint: { + variableToType: void 0 + }, + hintOptions: { + closeOnUnfocus: false, + completeSingle: false, + container, + variableToType: void 0 + }, + gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], + extraKeys: commonKeys + }); + newEditor.addKeyMap({ + "Cmd-Space"() { + newEditor.showHint({ + completeSingle: false, + container + }); + }, + "Ctrl-Space"() { + newEditor.showHint({ + completeSingle: false, + container + }); + }, + "Alt-Space"() { + newEditor.showHint({ + completeSingle: false, + container + }); + }, + "Shift-Space"() { + newEditor.showHint({ + completeSingle: false, + container + }); + } + }); + newEditor.on("keyup", _temp); + setVariableEditor(newEditor); }); - setVariableEditor(newEditor); - }); - return () => { - isActive = false; + return () => { + isActive = false; + }; }; - }, [editorTheme, initialVariables, readOnly, setVariableEditor]); + t12 = [editorTheme, initialVariables, readOnly, setVariableEditor]; + $[8] = editorTheme; + $[9] = initialVariables; + $[10] = readOnly; + $[11] = setVariableEditor; + $[12] = t11; + $[13] = t12; + } else { + t11 = $[12]; + t12 = $[13]; + } + React.useEffect(t11, t12); useSynchronizeOption(variableEditor, "keyMap", keyMap); - useChangeHandler(variableEditor, onEdit, STORAGE_KEY$1, "variables", useVariableEditor); - useCompletion(variableEditor, onClickReference || null, useVariableEditor); - useKeyMap(variableEditor, ["Cmd-Enter", "Ctrl-Enter"], executionContext == null ? void 0 : executionContext.run); - useKeyMap(variableEditor, ["Shift-Ctrl-P"], prettify); - useKeyMap(variableEditor, ["Shift-Ctrl-M"], merge); + useChangeHandler(variableEditor, onEdit, STORAGE_KEY$1, "variables", _useVariableEditor); + useCompletion(variableEditor, onClickReference || null, _useVariableEditor); + let t13; + if ($[14] === Symbol.for("react.memo_cache_sentinel")) { + t13 = ["Cmd-Enter", "Ctrl-Enter"]; + $[14] = t13; + } else { + t13 = $[14]; + } + useKeyMap(variableEditor, t13, executionContext == null ? void 0 : executionContext.run); + let t14; + if ($[15] === Symbol.for("react.memo_cache_sentinel")) { + t14 = ["Shift-Ctrl-P"]; + $[15] = t14; + } else { + t14 = $[15]; + } + useKeyMap(variableEditor, t14, prettify); + let t15; + if ($[16] === Symbol.for("react.memo_cache_sentinel")) { + t15 = ["Shift-Ctrl-M"]; + $[16] = t15; + } else { + t15 = $[16]; + } + useKeyMap(variableEditor, t15, merge); return ref; } +function _temp(editorInstance, event) { + const { + code, + key, + shiftKey + } = event; + const isLetter = code.startsWith("Key"); + const isNumber = !shiftKey && code.startsWith("Digit"); + if (isLetter || isNumber || key === "_" || key === '"') { + editorInstance.execCommand("autocomplete"); + } +} const STORAGE_KEY$1 = "variables"; const EditorContext = createNullableContext("EditorContext"); function EditorContextProvider(props) { + const $ = reactCompilerRuntime.c(89); const storage = useStorageContext(); const [headerEditor, setHeaderEditor] = React.useState(null); const [queryEditor, setQueryEditor] = React.useState(null); const [responseEditor, setResponseEditor] = React.useState(null); const [variableEditor, setVariableEditor] = React.useState(null); - const [shouldPersistHeaders, setShouldPersistHeadersInternal] = React.useState(() => { - const isStored = (storage == null ? void 0 : storage.get(PERSIST_HEADERS_STORAGE_KEY)) !== null; - return props.shouldPersistHeaders !== false && isStored ? (storage == null ? void 0 : storage.get(PERSIST_HEADERS_STORAGE_KEY)) === "true" : Boolean(props.shouldPersistHeaders); - }); + let t0; + if ($[0] !== props.shouldPersistHeaders || $[1] !== storage) { + t0 = () => { + const isStored = (storage == null ? void 0 : storage.get(PERSIST_HEADERS_STORAGE_KEY)) !== null; + return props.shouldPersistHeaders !== false && isStored ? (storage == null ? void 0 : storage.get(PERSIST_HEADERS_STORAGE_KEY)) === "true" : Boolean(props.shouldPersistHeaders); + }; + $[0] = props.shouldPersistHeaders; + $[1] = storage; + $[2] = t0; + } else { + t0 = $[2]; + } + const [shouldPersistHeaders, setShouldPersistHeadersInternal] = React.useState(t0); useSynchronizeValue(headerEditor, props.headers); useSynchronizeValue(queryEditor, props.query); useSynchronizeValue(responseEditor, props.response); useSynchronizeValue(variableEditor, props.variables); - const storeTabs = useStoreTabs({ - storage, - shouldPersistHeaders - }); - const [initialState] = React.useState(() => { - var _ref13, _props$query, _ref14, _props$variables, _ref15, _props$headers, _props$response, _ref16, _ref17; - const query = (_ref13 = (_props$query = props.query) !== null && _props$query !== void 0 ? _props$query : storage == null ? void 0 : storage.get(STORAGE_KEY_QUERY)) !== null && _ref13 !== void 0 ? _ref13 : null; - const variables = (_ref14 = (_props$variables = props.variables) !== null && _props$variables !== void 0 ? _props$variables : storage == null ? void 0 : storage.get(STORAGE_KEY$1)) !== null && _ref14 !== void 0 ? _ref14 : null; - const headers = (_ref15 = (_props$headers = props.headers) !== null && _props$headers !== void 0 ? _props$headers : storage == null ? void 0 : storage.get(STORAGE_KEY$3)) !== null && _ref15 !== void 0 ? _ref15 : null; - const response = (_props$response = props.response) !== null && _props$response !== void 0 ? _props$response : ""; - const tabState2 = getDefaultTabState({ - query, - variables, - headers, - defaultTabs: props.defaultTabs, - defaultQuery: props.defaultQuery || DEFAULT_QUERY, - defaultHeaders: props.defaultHeaders, + let t1; + if ($[3] !== shouldPersistHeaders || $[4] !== storage) { + t1 = { storage, shouldPersistHeaders - }); - storeTabs(tabState2); - return { - query: (_ref16 = query !== null && query !== void 0 ? query : tabState2.activeTabIndex === 0 ? tabState2.tabs[0].query : null) !== null && _ref16 !== void 0 ? _ref16 : "", - variables: variables !== null && variables !== void 0 ? variables : "", - headers: (_ref17 = headers !== null && headers !== void 0 ? headers : props.defaultHeaders) !== null && _ref17 !== void 0 ? _ref17 : "", - response, - tabState: tabState2 }; - }); - const [tabState, setTabState] = React.useState(initialState.tabState); - const setShouldPersistHeaders = React.useCallback(persist => { - if (persist) { - var _ref18; - storage == null ? void 0 : storage.set(STORAGE_KEY$3, (_ref18 = headerEditor == null ? void 0 : headerEditor.getValue()) !== null && _ref18 !== void 0 ? _ref18 : ""); - const serializedTabs = serializeTabState(tabState, true); - storage == null ? void 0 : storage.set(STORAGE_KEY$2, serializedTabs); - } else { - storage == null ? void 0 : storage.set(STORAGE_KEY$3, ""); - clearHeadersFromTabs(storage); - } - setShouldPersistHeadersInternal(persist); - storage == null ? void 0 : storage.set(PERSIST_HEADERS_STORAGE_KEY, persist.toString()); - }, [storage, tabState, headerEditor]); + $[3] = shouldPersistHeaders; + $[4] = storage; + $[5] = t1; + } else { + t1 = $[5]; + } + const storeTabs = useStoreTabs(t1); + let t2; + if ($[6] !== props.defaultHeaders || $[7] !== props.defaultQuery || $[8] !== props.defaultTabs || $[9] !== props.headers || $[10] !== props.query || $[11] !== props.response || $[12] !== props.variables || $[13] !== shouldPersistHeaders || $[14] !== storage || $[15] !== storeTabs) { + t2 = () => { + var _ref13, _props$query, _ref14, _props$variables, _ref15, _props$headers, _props$response, _ref16, _ref17; + const query = (_ref13 = (_props$query = props.query) !== null && _props$query !== void 0 ? _props$query : storage == null ? void 0 : storage.get(STORAGE_KEY_QUERY)) !== null && _ref13 !== void 0 ? _ref13 : null; + const variables = (_ref14 = (_props$variables = props.variables) !== null && _props$variables !== void 0 ? _props$variables : storage == null ? void 0 : storage.get(STORAGE_KEY$1)) !== null && _ref14 !== void 0 ? _ref14 : null; + const headers = (_ref15 = (_props$headers = props.headers) !== null && _props$headers !== void 0 ? _props$headers : storage == null ? void 0 : storage.get(STORAGE_KEY$3)) !== null && _ref15 !== void 0 ? _ref15 : null; + const response = (_props$response = props.response) !== null && _props$response !== void 0 ? _props$response : ""; + const tabState = getDefaultTabState({ + query, + variables, + headers, + defaultTabs: props.defaultTabs, + defaultQuery: props.defaultQuery || DEFAULT_QUERY, + defaultHeaders: props.defaultHeaders, + storage, + shouldPersistHeaders + }); + storeTabs(tabState); + return { + query: (_ref16 = query !== null && query !== void 0 ? query : tabState.activeTabIndex === 0 ? tabState.tabs[0].query : null) !== null && _ref16 !== void 0 ? _ref16 : "", + variables: variables !== null && variables !== void 0 ? variables : "", + headers: (_ref17 = headers !== null && headers !== void 0 ? headers : props.defaultHeaders) !== null && _ref17 !== void 0 ? _ref17 : "", + response, + tabState + }; + }; + $[6] = props.defaultHeaders; + $[7] = props.defaultQuery; + $[8] = props.defaultTabs; + $[9] = props.headers; + $[10] = props.query; + $[11] = props.response; + $[12] = props.variables; + $[13] = shouldPersistHeaders; + $[14] = storage; + $[15] = storeTabs; + $[16] = t2; + } else { + t2 = $[16]; + } + const [initialState] = React.useState(t2); + const [tabState_0, setTabState] = React.useState(initialState.tabState); + let t3; + if ($[17] !== headerEditor || $[18] !== storage || $[19] !== tabState_0) { + t3 = persist => { + if (persist) { + var _ref18; + storage == null ? void 0 : storage.set(STORAGE_KEY$3, (_ref18 = headerEditor == null ? void 0 : headerEditor.getValue()) !== null && _ref18 !== void 0 ? _ref18 : ""); + const serializedTabs = serializeTabState(tabState_0, true); + storage == null ? void 0 : storage.set(STORAGE_KEY$2, serializedTabs); + } else { + storage == null ? void 0 : storage.set(STORAGE_KEY$3, ""); + clearHeadersFromTabs(storage); + } + setShouldPersistHeadersInternal(persist); + storage == null ? void 0 : storage.set(PERSIST_HEADERS_STORAGE_KEY, persist.toString()); + }; + $[17] = headerEditor; + $[18] = storage; + $[19] = tabState_0; + $[20] = t3; + } else { + t3 = $[20]; + } + const setShouldPersistHeaders = t3; const lastShouldPersistHeadersProp = React.useRef(); - React.useEffect(() => { - const propValue = Boolean(props.shouldPersistHeaders); - if ((lastShouldPersistHeadersProp == null ? void 0 : lastShouldPersistHeadersProp.current) !== propValue) { - setShouldPersistHeaders(propValue); - lastShouldPersistHeadersProp.current = propValue; - } - }, [props.shouldPersistHeaders, setShouldPersistHeaders]); - const synchronizeActiveTabValues = useSynchronizeActiveTabValues({ - queryEditor, - variableEditor, - headerEditor, - responseEditor - }); + let t4; + let t5; + if ($[21] !== props.shouldPersistHeaders || $[22] !== setShouldPersistHeaders) { + t4 = () => { + const propValue = Boolean(props.shouldPersistHeaders); + if ((lastShouldPersistHeadersProp == null ? void 0 : lastShouldPersistHeadersProp.current) !== propValue) { + setShouldPersistHeaders(propValue); + lastShouldPersistHeadersProp.current = propValue; + } + }; + t5 = [props.shouldPersistHeaders, setShouldPersistHeaders]; + $[21] = props.shouldPersistHeaders; + $[22] = setShouldPersistHeaders; + $[23] = t4; + $[24] = t5; + } else { + t4 = $[23]; + t5 = $[24]; + } + React.useEffect(t4, t5); + let t6; + if ($[25] !== headerEditor || $[26] !== queryEditor || $[27] !== responseEditor || $[28] !== variableEditor) { + t6 = { + queryEditor, + variableEditor, + headerEditor, + responseEditor + }; + $[25] = headerEditor; + $[26] = queryEditor; + $[27] = responseEditor; + $[28] = variableEditor; + $[29] = t6; + } else { + t6 = $[29]; + } + const synchronizeActiveTabValues = useSynchronizeActiveTabValues(t6); const { onTabChange, defaultHeaders, defaultQuery, children } = props; - const setEditorValues = useSetEditorValues({ - queryEditor, - variableEditor, - headerEditor, - responseEditor, - defaultHeaders - }); - const addTab = React.useCallback(() => { - setTabState(current => { - const updatedValues = synchronizeActiveTabValues(current); - const updated = { - tabs: [...updatedValues.tabs, createTab({ - headers: defaultHeaders, - query: defaultQuery !== null && defaultQuery !== void 0 ? defaultQuery : DEFAULT_QUERY - })], - activeTabIndex: updatedValues.tabs.length - }; - storeTabs(updated); - setEditorValues(updated.tabs[updated.activeTabIndex]); - onTabChange == null ? void 0 : onTabChange(updated); - return updated; - }); - }, [defaultHeaders, defaultQuery, onTabChange, setEditorValues, storeTabs, synchronizeActiveTabValues]); - const changeTab = React.useCallback(index => { - setTabState(current => { - const updated = { - ...current, - activeTabIndex: index - }; - storeTabs(updated); - setEditorValues(updated.tabs[updated.activeTabIndex]); - onTabChange == null ? void 0 : onTabChange(updated); - return updated; - }); - }, [onTabChange, setEditorValues, storeTabs]); - const moveTab = React.useCallback(newOrder => { - setTabState(current => { - const activeTab = current.tabs[current.activeTabIndex]; - const updated = { - tabs: newOrder, - activeTabIndex: newOrder.indexOf(activeTab) - }; - storeTabs(updated); - setEditorValues(updated.tabs[updated.activeTabIndex]); - onTabChange == null ? void 0 : onTabChange(updated); - return updated; - }); - }, [onTabChange, setEditorValues, storeTabs]); - const closeTab = React.useCallback(index => { - setTabState(current => { - const updated = { - tabs: current.tabs.filter((_tab, i) => index !== i), - activeTabIndex: Math.max(current.activeTabIndex - 1, 0) - }; - storeTabs(updated); - setEditorValues(updated.tabs[updated.activeTabIndex]); - onTabChange == null ? void 0 : onTabChange(updated); - return updated; - }); - }, [onTabChange, setEditorValues, storeTabs]); - const updateActiveTabValues = React.useCallback(partialTab => { - setTabState(current => { - const updated = setPropertiesInActiveTab(current, partialTab); - storeTabs(updated); - onTabChange == null ? void 0 : onTabChange(updated); - return updated; - }); - }, [onTabChange, storeTabs]); + let t7; + if ($[30] !== defaultHeaders || $[31] !== headerEditor || $[32] !== queryEditor || $[33] !== responseEditor || $[34] !== variableEditor) { + t7 = { + queryEditor, + variableEditor, + headerEditor, + responseEditor, + defaultHeaders + }; + $[30] = defaultHeaders; + $[31] = headerEditor; + $[32] = queryEditor; + $[33] = responseEditor; + $[34] = variableEditor; + $[35] = t7; + } else { + t7 = $[35]; + } + const setEditorValues = useSetEditorValues(t7); + let t8; + if ($[36] !== defaultHeaders || $[37] !== defaultQuery || $[38] !== onTabChange || $[39] !== setEditorValues || $[40] !== storeTabs || $[41] !== synchronizeActiveTabValues) { + t8 = () => { + setTabState(current => { + const updatedValues = synchronizeActiveTabValues(current); + const updated = { + tabs: [...updatedValues.tabs, createTab({ + headers: defaultHeaders, + query: defaultQuery !== null && defaultQuery !== void 0 ? defaultQuery : DEFAULT_QUERY + })], + activeTabIndex: updatedValues.tabs.length + }; + storeTabs(updated); + setEditorValues(updated.tabs[updated.activeTabIndex]); + onTabChange == null ? void 0 : onTabChange(updated); + return updated; + }); + }; + $[36] = defaultHeaders; + $[37] = defaultQuery; + $[38] = onTabChange; + $[39] = setEditorValues; + $[40] = storeTabs; + $[41] = synchronizeActiveTabValues; + $[42] = t8; + } else { + t8 = $[42]; + } + const addTab = t8; + let t9; + if ($[43] !== onTabChange || $[44] !== setEditorValues || $[45] !== storeTabs) { + t9 = index => { + setTabState(current_0 => { + const updated_0 = { + ...current_0, + activeTabIndex: index + }; + storeTabs(updated_0); + setEditorValues(updated_0.tabs[updated_0.activeTabIndex]); + onTabChange == null ? void 0 : onTabChange(updated_0); + return updated_0; + }); + }; + $[43] = onTabChange; + $[44] = setEditorValues; + $[45] = storeTabs; + $[46] = t9; + } else { + t9 = $[46]; + } + const changeTab = t9; + let t10; + if ($[47] !== onTabChange || $[48] !== setEditorValues || $[49] !== storeTabs) { + t10 = newOrder => { + setTabState(current_1 => { + const activeTab = current_1.tabs[current_1.activeTabIndex]; + const updated_1 = { + tabs: newOrder, + activeTabIndex: newOrder.indexOf(activeTab) + }; + storeTabs(updated_1); + setEditorValues(updated_1.tabs[updated_1.activeTabIndex]); + onTabChange == null ? void 0 : onTabChange(updated_1); + return updated_1; + }); + }; + $[47] = onTabChange; + $[48] = setEditorValues; + $[49] = storeTabs; + $[50] = t10; + } else { + t10 = $[50]; + } + const moveTab = t10; + let t11; + if ($[51] !== onTabChange || $[52] !== setEditorValues || $[53] !== storeTabs) { + t11 = index_0 => { + setTabState(current_2 => { + const updated_2 = { + tabs: current_2.tabs.filter((_tab, i) => index_0 !== i), + activeTabIndex: Math.max(current_2.activeTabIndex - 1, 0) + }; + storeTabs(updated_2); + setEditorValues(updated_2.tabs[updated_2.activeTabIndex]); + onTabChange == null ? void 0 : onTabChange(updated_2); + return updated_2; + }); + }; + $[51] = onTabChange; + $[52] = setEditorValues; + $[53] = storeTabs; + $[54] = t11; + } else { + t11 = $[54]; + } + const closeTab = t11; + let t12; + if ($[55] !== onTabChange || $[56] !== storeTabs) { + t12 = partialTab => { + setTabState(current_3 => { + const updated_3 = setPropertiesInActiveTab(current_3, partialTab); + storeTabs(updated_3); + onTabChange == null ? void 0 : onTabChange(updated_3); + return updated_3; + }); + }; + $[55] = onTabChange; + $[56] = storeTabs; + $[57] = t12; + } else { + t12 = $[57]; + } + const updateActiveTabValues = t12; const { onEditOperationName } = props; - const setOperationName = React.useCallback(operationName => { - if (!queryEditor) { - return; - } - queryEditor.operationName = operationName; - updateActiveTabValues({ - operationName - }); - onEditOperationName == null ? void 0 : onEditOperationName(operationName); - }, [onEditOperationName, queryEditor, updateActiveTabValues]); - const externalFragments = React.useMemo(() => { - const map = /* @__PURE__ */new Map(); + let t13; + if ($[58] !== onEditOperationName || $[59] !== queryEditor || $[60] !== updateActiveTabValues) { + t13 = operationName => { + if (!queryEditor) { + return; + } + updateQueryEditor(queryEditor, operationName); + updateActiveTabValues({ + operationName + }); + onEditOperationName == null ? void 0 : onEditOperationName(operationName); + }; + $[58] = onEditOperationName; + $[59] = queryEditor; + $[60] = updateActiveTabValues; + $[61] = t13; + } else { + t13 = $[61]; + } + const setOperationName = t13; + let t14; + let map; + if ($[62] !== props.externalFragments) { + map = /* @__PURE__ */new Map(); if (Array.isArray(props.externalFragments)) { for (const fragment of props.externalFragments) { map.set(fragment.name.value, fragment); } - } else if (typeof props.externalFragments === "string") { - graphql.visit(graphql.parse(props.externalFragments, {}), { - FragmentDefinition(fragment) { - map.set(fragment.name.value, fragment); + } else { + if (typeof props.externalFragments === "string") { + graphql.visit(graphql.parse(props.externalFragments, {}), { + FragmentDefinition(fragment_0) { + map.set(fragment_0.name.value, fragment_0); + } + }); + } else { + if (props.externalFragments) { + throw new Error("The `externalFragments` prop must either be a string that contains the fragment definitions in SDL or a list of FragmentDefinitionNode objects."); } - }); - } else if (props.externalFragments) { - throw new Error("The `externalFragments` prop must either be a string that contains the fragment definitions in SDL or a list of FragmentDefinitionNode objects."); + } } - return map; - }, [props.externalFragments]); - const validationRules = React.useMemo(() => props.validationRules || [], [props.validationRules]); - const value = React.useMemo(() => ({ - ...tabState, - addTab, - changeTab, - moveTab, - closeTab, - updateActiveTabValues, - headerEditor, - queryEditor, - responseEditor, - variableEditor, - setHeaderEditor, - setQueryEditor, - setResponseEditor, - setVariableEditor, - setOperationName, - initialQuery: initialState.query, - initialVariables: initialState.variables, - initialHeaders: initialState.headers, - initialResponse: initialState.response, - externalFragments, - validationRules, - shouldPersistHeaders, - setShouldPersistHeaders - }), [tabState, addTab, changeTab, moveTab, closeTab, updateActiveTabValues, headerEditor, queryEditor, responseEditor, variableEditor, setOperationName, initialState, externalFragments, validationRules, shouldPersistHeaders, setShouldPersistHeaders]); - return /* @__PURE__ */jsxRuntime.jsx(EditorContext.Provider, { - value, - children - }); + $[62] = props.externalFragments; + $[63] = map; + } else { + map = $[63]; + } + t14 = map; + const externalFragments = t14; + let t15; + if ($[64] !== props.validationRules) { + t15 = props.validationRules || []; + $[64] = props.validationRules; + $[65] = t15; + } else { + t15 = $[65]; + } + const validationRules = t15; + let t16; + if ($[66] !== addTab || $[67] !== changeTab || $[68] !== closeTab || $[69] !== externalFragments || $[70] !== headerEditor || $[71] !== initialState.headers || $[72] !== initialState.query || $[73] !== initialState.response || $[74] !== initialState.variables || $[75] !== moveTab || $[76] !== queryEditor || $[77] !== responseEditor || $[78] !== setOperationName || $[79] !== setShouldPersistHeaders || $[80] !== shouldPersistHeaders || $[81] !== tabState_0 || $[82] !== updateActiveTabValues || $[83] !== validationRules || $[84] !== variableEditor) { + t16 = { + ...tabState_0, + addTab, + changeTab, + moveTab, + closeTab, + updateActiveTabValues, + headerEditor, + queryEditor, + responseEditor, + variableEditor, + setHeaderEditor, + setQueryEditor, + setResponseEditor, + setVariableEditor, + setOperationName, + initialQuery: initialState.query, + initialVariables: initialState.variables, + initialHeaders: initialState.headers, + initialResponse: initialState.response, + externalFragments, + validationRules, + shouldPersistHeaders, + setShouldPersistHeaders + }; + $[66] = addTab; + $[67] = changeTab; + $[68] = closeTab; + $[69] = externalFragments; + $[70] = headerEditor; + $[71] = initialState.headers; + $[72] = initialState.query; + $[73] = initialState.response; + $[74] = initialState.variables; + $[75] = moveTab; + $[76] = queryEditor; + $[77] = responseEditor; + $[78] = setOperationName; + $[79] = setShouldPersistHeaders; + $[80] = shouldPersistHeaders; + $[81] = tabState_0; + $[82] = updateActiveTabValues; + $[83] = validationRules; + $[84] = variableEditor; + $[85] = t16; + } else { + t16 = $[85]; + } + const value = t16; + let t17; + if ($[86] !== children || $[87] !== value) { + t17 = /* @__PURE__ */jsxRuntime.jsx(EditorContext.Provider, { + value, + children + }); + $[86] = children; + $[87] = value; + $[88] = t17; + } else { + t17 = $[88]; + } + return t17; +} +function updateQueryEditor(queryEditor, operationName) { + queryEditor.operationName = operationName; } const useEditorContext = createContextHook(EditorContext); const PERSIST_HEADERS_STORAGE_KEY = "shouldPersistHeaders"; @@ -72604,73 +82061,177 @@ const DEFAULT_QUERY = `# Welcome to GraphiQL # `; -function HeaderEditor({ - isHidden, - ...hookArgs -}) { +function HeaderEditor(t0) { + const $ = reactCompilerRuntime.c(13); + let hookArgs; + let isHidden; + if ($[0] !== t0) { + ({ + isHidden, + ...hookArgs + } = t0); + $[0] = t0; + $[1] = hookArgs; + $[2] = isHidden; + } else { + hookArgs = $[1]; + isHidden = $[2]; + } + let t1; + if ($[3] === Symbol.for("react.memo_cache_sentinel")) { + t1 = { + nonNull: true, + caller: HeaderEditor + }; + $[3] = t1; + } else { + t1 = $[3]; + } const { headerEditor - } = useEditorContext({ - nonNull: true, - caller: HeaderEditor - }); + } = useEditorContext(t1); const ref = useHeaderEditor(hookArgs, HeaderEditor); - React.useEffect(() => { - if (!isHidden) { - headerEditor == null ? void 0 : headerEditor.refresh(); - } - }, [headerEditor, isHidden]); - return /* @__PURE__ */jsxRuntime.jsx("div", { - className: clsx.clsx("graphiql-editor", isHidden && "hidden"), - ref - }); + let t2; + let t3; + if ($[4] !== headerEditor || $[5] !== isHidden) { + t2 = () => { + if (!isHidden) { + headerEditor == null ? void 0 : headerEditor.refresh(); + } + }; + t3 = [headerEditor, isHidden]; + $[4] = headerEditor; + $[5] = isHidden; + $[6] = t2; + $[7] = t3; + } else { + t2 = $[6]; + t3 = $[7]; + } + React.useEffect(t2, t3); + const t4 = isHidden && "hidden"; + let t5; + if ($[8] !== t4) { + t5 = clsx.clsx("graphiql-editor", t4); + $[8] = t4; + $[9] = t5; + } else { + t5 = $[9]; + } + let t6; + if ($[10] !== ref || $[11] !== t5) { + t6 = /* @__PURE__ */jsxRuntime.jsx("div", { + className: t5, + ref + }); + $[10] = ref; + $[11] = t5; + $[12] = t6; + } else { + t6 = $[12]; + } + return t6; } function ImagePreview(props) { var _a; - const [dimensions, setDimensions] = React.useState({ - width: null, - height: null - }); + const $ = reactCompilerRuntime.c(14); + let t0; + if ($[0] === Symbol.for("react.memo_cache_sentinel")) { + t0 = { + width: null, + height: null + }; + $[0] = t0; + } else { + t0 = $[0]; + } + const [dimensions, setDimensions] = React.useState(t0); const [mime, setMime] = React.useState(null); const ref = React.useRef(null); const src = (_a = tokenToURL(props.token)) == null ? void 0 : _a.href; - React.useEffect(() => { - if (!ref.current) { - return; - } - if (!src) { - setDimensions({ - width: null, - height: null - }); - setMime(null); - return; - } - fetch(src, { - method: "HEAD" - }).then(response => { - setMime(response.headers.get("Content-Type")); - }).catch(() => { - setMime(null); - }); - }, [src]); - const dims = dimensions.width !== null && dimensions.height !== null ? /* @__PURE__ */jsxRuntime.jsxs("div", { - children: [dimensions.width, "x", dimensions.height, mime === null ? null : " " + mime] - }) : null; - return /* @__PURE__ */jsxRuntime.jsxs("div", { - children: [/* @__PURE__ */jsxRuntime.jsx("img", { - onLoad: () => { - var _ref19, _ref20; - var _a2, _b; + let t1; + let t2; + if ($[1] !== src) { + t1 = () => { + if (!ref.current) { + return; + } + if (!src) { setDimensions({ - width: (_ref19 = (_a2 = ref.current) == null ? void 0 : _a2.naturalWidth) !== null && _ref19 !== void 0 ? _ref19 : null, - height: (_ref20 = (_b = ref.current) == null ? void 0 : _b.naturalHeight) !== null && _ref20 !== void 0 ? _ref20 : null + width: null, + height: null }); - }, + setMime(null); + return; + } + fetch(src, { + method: "HEAD" + }).then(response => { + setMime(response.headers.get("Content-Type")); + }).catch(() => { + setMime(null); + }); + }; + t2 = [src]; + $[1] = src; + $[2] = t1; + $[3] = t2; + } else { + t1 = $[2]; + t2 = $[3]; + } + React.useEffect(t1, t2); + let t3; + if ($[4] !== dimensions.height || $[5] !== dimensions.width || $[6] !== mime) { + t3 = dimensions.width !== null && dimensions.height !== null ? /* @__PURE__ */jsxRuntime.jsxs("div", { + children: [dimensions.width, "x", dimensions.height, mime === null ? null : " " + mime] + }) : null; + $[4] = dimensions.height; + $[5] = dimensions.width; + $[6] = mime; + $[7] = t3; + } else { + t3 = $[7]; + } + const dims = t3; + let t4; + if ($[8] === Symbol.for("react.memo_cache_sentinel")) { + t4 = () => { + var _ref19, _ref20; + var _a2, _b; + setDimensions({ + width: (_ref19 = (_a2 = ref.current) == null ? void 0 : _a2.naturalWidth) !== null && _ref19 !== void 0 ? _ref19 : null, + height: (_ref20 = (_b = ref.current) == null ? void 0 : _b.naturalHeight) !== null && _ref20 !== void 0 ? _ref20 : null + }); + }; + $[8] = t4; + } else { + t4 = $[8]; + } + let t5; + if ($[9] !== src) { + t5 = /* @__PURE__ */jsxRuntime.jsx("img", { + onLoad: t4, ref, src - }), dims] - }); + }); + $[9] = src; + $[10] = t5; + } else { + t5 = $[10]; + } + let t6; + if ($[11] !== dims || $[12] !== t5) { + t6 = /* @__PURE__ */jsxRuntime.jsxs("div", { + children: [t5, dims] + }); + $[11] = dims; + $[12] = t5; + $[13] = t6; + } else { + t6 = $[13]; + } + return t6; } ImagePreview.shouldRender = function shouldRender(token) { const url = tokenToURL(token); @@ -72694,513 +82255,1050 @@ function isImageURL(url) { return /\.(bmp|gif|jpe?g|png|svg|webp)$/.test(url.pathname); } function QueryEditor(props) { + const $ = reactCompilerRuntime.c(2); const ref = useQueryEditor(props, QueryEditor); - return /* @__PURE__ */jsxRuntime.jsx("div", { - className: "graphiql-editor", - ref + let t0; + if ($[0] !== ref) { + t0 = /* @__PURE__ */jsxRuntime.jsx("div", { + className: "graphiql-editor", + ref + }); + $[0] = ref; + $[1] = t0; + } else { + t0 = $[1]; + } + return t0; +} +function importCodeMirrorImports() { + return importCodeMirror([Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/fold/foldgutter.js */ "../../../node_modules/codemirror/addon/fold/foldgutter.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/fold/brace-fold.js */ "../../../node_modules/codemirror/addon/fold/brace-fold.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/dialog/dialog.js */ "../../../node_modules/codemirror/addon/dialog/dialog.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/search/search.js */ "../../../node_modules/codemirror/addon/search/search.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/search/searchcursor.js */ "../../../node_modules/codemirror/addon/search/searchcursor.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/addon/search/jump-to-line.js */ "../../../node_modules/codemirror/addon/search/jump-to-line.js"))), // @ts-expect-error + Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror/keymap/sublime.js */ "../../../node_modules/codemirror/keymap/sublime.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror-graphql/esm/results/mode.js */ "../../codemirror-graphql/esm/results/mode.js"))), Promise.resolve().then(() => _interopRequireWildcard(__webpack_require__(/*! codemirror-graphql/esm/utils/info-addon.js */ "../../codemirror-graphql/esm/utils/info-addon.js")))], { + useCommonAddons: false }); } -function useResponseEditor({ - responseTooltip, - editorTheme = DEFAULT_EDITOR_THEME, - keyMap = DEFAULT_KEY_MAP -} = {}, caller) { +const _useResponseEditor = useResponseEditor; +function useResponseEditor(t0, caller) { + const $ = reactCompilerRuntime.c(19); + let t1; + if ($[0] !== t0) { + t1 = t0 === void 0 ? {} : t0; + $[0] = t0; + $[1] = t1; + } else { + t1 = $[1]; + } + const { + responseTooltip, + editorTheme: t2, + keyMap: t3 + } = t1; + const editorTheme = t2 === void 0 ? DEFAULT_EDITOR_THEME : t2; + const keyMap = t3 === void 0 ? DEFAULT_KEY_MAP : t3; + const t4 = caller || _useResponseEditor; + let t5; + if ($[2] !== t4) { + t5 = { + nonNull: true, + caller: t4 + }; + $[2] = t4; + $[3] = t5; + } else { + t5 = $[3]; + } const { fetchError, validationErrors - } = useSchemaContext({ - nonNull: true, - caller: caller || useResponseEditor - }); + } = useSchemaContext(t5); + const t6 = caller || _useResponseEditor; + let t7; + if ($[4] !== t6) { + t7 = { + nonNull: true, + caller: t6 + }; + $[4] = t6; + $[5] = t7; + } else { + t7 = $[5]; + } const { initialResponse, responseEditor, setResponseEditor - } = useEditorContext({ - nonNull: true, - caller: caller || useResponseEditor - }); + } = useEditorContext(t7); const ref = React.useRef(null); const responseTooltipRef = React.useRef(responseTooltip); - React.useEffect(() => { - responseTooltipRef.current = responseTooltip; - }, [responseTooltip]); - React.useEffect(() => { - let isActive = true; - void importCodeMirror([Promise.resolve().then(() => __webpack_require__(/*! ./foldgutter.cjs.js */ "../../graphiql-react/dist/foldgutter.cjs.js")).then(n => n.foldgutter), Promise.resolve().then(() => __webpack_require__(/*! ./brace-fold.cjs.js */ "../../graphiql-react/dist/brace-fold.cjs.js")).then(n => n.braceFold), Promise.resolve().then(() => __webpack_require__(/*! ./dialog.cjs.js */ "../../graphiql-react/dist/dialog.cjs.js")).then(n => n.dialog), Promise.resolve().then(() => __webpack_require__(/*! ./search.cjs.js */ "../../graphiql-react/dist/search.cjs.js")).then(n => n.search), Promise.resolve().then(() => __webpack_require__(/*! ./searchcursor.cjs.js */ "../../graphiql-react/dist/searchcursor.cjs.js")).then(n => n.searchcursor), Promise.resolve().then(() => __webpack_require__(/*! ./jump-to-line.cjs.js */ "../../graphiql-react/dist/jump-to-line.cjs.js")).then(n => n.jumpToLine), - // @ts-expect-error - Promise.resolve().then(() => __webpack_require__(/*! ./sublime.cjs.js */ "../../graphiql-react/dist/sublime.cjs.js")).then(n => n.sublime), Promise.resolve().then(() => __webpack_require__(/*! ./mode.cjs3.js */ "../../graphiql-react/dist/mode.cjs3.js")), Promise.resolve().then(() => __webpack_require__(/*! ./info-addon.cjs.js */ "../../graphiql-react/dist/info-addon.cjs.js"))], { - useCommonAddons: false - }).then(CodeMirror => { - if (!isActive) { - return; - } - const tooltipDiv = document.createElement("div"); - CodeMirror.registerHelper("info", "graphql-results", (token, _options, _cm, pos) => { - const infoElements = []; - const ResponseTooltipComponent = responseTooltipRef.current; - if (ResponseTooltipComponent) { - infoElements.push( /* @__PURE__ */jsxRuntime.jsx(ResponseTooltipComponent, { - pos, - token - })); - } - if (ImagePreview.shouldRender(token)) { - infoElements.push( /* @__PURE__ */jsxRuntime.jsx(ImagePreview, { - token - }, "image-preview")); - } - if (!infoElements.length) { - ReactDOM.unmountComponentAtNode(tooltipDiv); - return null; - } - ReactDOM.render(infoElements, tooltipDiv); - return tooltipDiv; - }); - const container = ref.current; - if (!container) { - return; - } - const newEditor = CodeMirror(container, { - value: initialResponse, - lineWrapping: true, - readOnly: true, - theme: editorTheme, - mode: "graphql-results", - foldGutter: true, - gutters: ["CodeMirror-foldgutter"], - // @ts-expect-error - info: true, - extraKeys: commonKeys - }); - setResponseEditor(newEditor); - }); - return () => { - isActive = false; + let t8; + let t9; + if ($[6] !== responseTooltip) { + t8 = () => { + responseTooltipRef.current = responseTooltip; }; - }, [editorTheme, initialResponse, setResponseEditor]); + t9 = [responseTooltip]; + $[6] = responseTooltip; + $[7] = t8; + $[8] = t9; + } else { + t8 = $[7]; + t9 = $[8]; + } + React.useEffect(t8, t9); + let t10; + let t11; + if ($[9] !== editorTheme || $[10] !== initialResponse || $[11] !== setResponseEditor) { + t10 = () => { + let isActive; + isActive = true; + importCodeMirrorImports().then(CodeMirror => { + if (!isActive) { + return; + } + const tooltipDiv = document.createElement("div"); + CodeMirror.registerHelper("info", "graphql-results", (token, _options, _cm, pos) => { + const infoElements = []; + const ResponseTooltipComponent = responseTooltipRef.current; + if (ResponseTooltipComponent) { + infoElements.push( /* @__PURE__ */jsxRuntime.jsx(ResponseTooltipComponent, { + pos, + token + })); + } + if (ImagePreview.shouldRender(token)) { + infoElements.push( /* @__PURE__ */jsxRuntime.jsx(ImagePreview, { + token + }, "image-preview")); + } + if (!infoElements.length) { + ReactDOM.unmountComponentAtNode(tooltipDiv); + return null; + } + ReactDOM.render(infoElements, tooltipDiv); + return tooltipDiv; + }); + const container = ref.current; + if (!container) { + return; + } + const newEditor = CodeMirror(container, { + value: initialResponse, + lineWrapping: true, + readOnly: true, + theme: editorTheme, + mode: "graphql-results", + foldGutter: true, + gutters: ["CodeMirror-foldgutter"], + info: true, + extraKeys: commonKeys + }); + setResponseEditor(newEditor); + }); + return () => { + isActive = false; + }; + }; + t11 = [editorTheme, initialResponse, setResponseEditor]; + $[9] = editorTheme; + $[10] = initialResponse; + $[11] = setResponseEditor; + $[12] = t10; + $[13] = t11; + } else { + t10 = $[12]; + t11 = $[13]; + } + React.useEffect(t10, t11); useSynchronizeOption(responseEditor, "keyMap", keyMap); - React.useEffect(() => { - if (fetchError) { - responseEditor == null ? void 0 : responseEditor.setValue(fetchError); - } - if (validationErrors.length > 0) { - responseEditor == null ? void 0 : responseEditor.setValue(toolkit.formatError(validationErrors)); - } - }, [responseEditor, fetchError, validationErrors]); + let t12; + let t13; + if ($[14] !== fetchError || $[15] !== responseEditor || $[16] !== validationErrors) { + t12 = () => { + if (fetchError) { + responseEditor == null ? void 0 : responseEditor.setValue(fetchError); + } + if (validationErrors.length > 0) { + responseEditor == null ? void 0 : responseEditor.setValue(toolkit.formatError(validationErrors)); + } + }; + t13 = [responseEditor, fetchError, validationErrors]; + $[14] = fetchError; + $[15] = responseEditor; + $[16] = validationErrors; + $[17] = t12; + $[18] = t13; + } else { + t12 = $[17]; + t13 = $[18]; + } + React.useEffect(t12, t13); return ref; } function ResponseEditor(props) { + const $ = reactCompilerRuntime.c(2); const ref = useResponseEditor(props, ResponseEditor); - return /* @__PURE__ */jsxRuntime.jsx("section", { - className: "result-window", - "aria-label": "Result Window", - "aria-live": "polite", - "aria-atomic": "true", - ref - }); + let t0; + if ($[0] !== ref) { + t0 = /* @__PURE__ */jsxRuntime.jsx("section", { + className: "result-window", + "aria-label": "Result Window", + "aria-live": "polite", + "aria-atomic": "true", + ref + }); + $[0] = ref; + $[1] = t0; + } else { + t0 = $[1]; + } + return t0; } -function VariableEditor({ - isHidden, - ...hookArgs -}) { +function VariableEditor(t0) { + const $ = reactCompilerRuntime.c(13); + let hookArgs; + let isHidden; + if ($[0] !== t0) { + ({ + isHidden, + ...hookArgs + } = t0); + $[0] = t0; + $[1] = hookArgs; + $[2] = isHidden; + } else { + hookArgs = $[1]; + isHidden = $[2]; + } + let t1; + if ($[3] === Symbol.for("react.memo_cache_sentinel")) { + t1 = { + nonNull: true, + caller: VariableEditor + }; + $[3] = t1; + } else { + t1 = $[3]; + } const { variableEditor - } = useEditorContext({ - nonNull: true, - caller: VariableEditor - }); + } = useEditorContext(t1); const ref = useVariableEditor(hookArgs, VariableEditor); - React.useEffect(() => { - if (variableEditor && !isHidden) { - variableEditor.refresh(); - } - }, [variableEditor, isHidden]); - return /* @__PURE__ */jsxRuntime.jsx("div", { - className: clsx.clsx("graphiql-editor", isHidden && "hidden"), - ref - }); + let t2; + let t3; + if ($[4] !== isHidden || $[5] !== variableEditor) { + t2 = () => { + if (variableEditor && !isHidden) { + variableEditor.refresh(); + } + }; + t3 = [variableEditor, isHidden]; + $[4] = isHidden; + $[5] = variableEditor; + $[6] = t2; + $[7] = t3; + } else { + t2 = $[6]; + t3 = $[7]; + } + React.useEffect(t2, t3); + const t4 = isHidden && "hidden"; + let t5; + if ($[8] !== t4) { + t5 = clsx.clsx("graphiql-editor", t4); + $[8] = t4; + $[9] = t5; + } else { + t5 = $[9]; + } + let t6; + if ($[10] !== ref || $[11] !== t5) { + t6 = /* @__PURE__ */jsxRuntime.jsx("div", { + className: t5, + ref + }); + $[10] = ref; + $[11] = t5; + $[12] = t6; + } else { + t6 = $[12]; + } + return t6; } -function GraphiQLProvider({ - children, - dangerouslyAssumeSchemaIsValid, - defaultQuery, - defaultHeaders, - defaultTabs, - externalFragments, - fetcher, - getDefaultFieldNames, - headers, - inputValueDeprecation, - introspectionQueryName, - maxHistoryLength, - onEditOperationName, - onSchemaChange, - onTabChange, - onTogglePluginVisibility, - operationName, - plugins, - query, - response, - schema, - schemaDescription, - shouldPersistHeaders, - storage, - validationRules, - variables, - visiblePlugin -}) { - return /* @__PURE__ */jsxRuntime.jsx(StorageContextProvider, { +function GraphiQLProvider(t0) { + const $ = reactCompilerRuntime.c(39); + const { + children, + dangerouslyAssumeSchemaIsValid, + defaultQuery, + defaultHeaders, + defaultTabs, + externalFragments, + fetcher, + getDefaultFieldNames, + headers, + inputValueDeprecation, + introspectionQueryName, + maxHistoryLength, + onEditOperationName, + onSchemaChange, + onTabChange, + onTogglePluginVisibility, + operationName, + plugins, + query, + response, + schema, + schemaDescription, + shouldPersistHeaders, storage, - children: /* @__PURE__ */jsxRuntime.jsx(HistoryContextProvider, { - maxHistoryLength, - children: /* @__PURE__ */jsxRuntime.jsx(EditorContextProvider, { - defaultQuery, - defaultHeaders, - defaultTabs, - externalFragments, - headers, - onEditOperationName, - onTabChange, - query, - response, - shouldPersistHeaders, - validationRules, - variables, - children: /* @__PURE__ */jsxRuntime.jsx(SchemaContextProvider, { - dangerouslyAssumeSchemaIsValid, - fetcher, - inputValueDeprecation, - introspectionQueryName, - onSchemaChange, - schema, - schemaDescription, - children: /* @__PURE__ */jsxRuntime.jsx(ExecutionContextProvider, { - getDefaultFieldNames, - fetcher, - operationName, - children: /* @__PURE__ */jsxRuntime.jsx(ExplorerContextProvider, { - children: /* @__PURE__ */jsxRuntime.jsx(PluginContextProvider, { - onTogglePluginVisibility, - plugins, - visiblePlugin, - children - }) - }) - }) - }) + validationRules, + variables, + visiblePlugin + } = t0; + let t1; + if ($[0] !== children || $[1] !== onTogglePluginVisibility || $[2] !== plugins || $[3] !== visiblePlugin) { + t1 = /* @__PURE__ */jsxRuntime.jsx(ExplorerContextProvider, { + children: /* @__PURE__ */jsxRuntime.jsx(PluginContextProvider, { + onTogglePluginVisibility, + plugins, + visiblePlugin, + children }) - }) - }); + }); + $[0] = children; + $[1] = onTogglePluginVisibility; + $[2] = plugins; + $[3] = visiblePlugin; + $[4] = t1; + } else { + t1 = $[4]; + } + let t2; + if ($[5] !== fetcher || $[6] !== getDefaultFieldNames || $[7] !== operationName || $[8] !== t1) { + t2 = /* @__PURE__ */jsxRuntime.jsx(ExecutionContextProvider, { + getDefaultFieldNames, + fetcher, + operationName, + children: t1 + }); + $[5] = fetcher; + $[6] = getDefaultFieldNames; + $[7] = operationName; + $[8] = t1; + $[9] = t2; + } else { + t2 = $[9]; + } + let t3; + if ($[10] !== dangerouslyAssumeSchemaIsValid || $[11] !== fetcher || $[12] !== inputValueDeprecation || $[13] !== introspectionQueryName || $[14] !== onSchemaChange || $[15] !== schema || $[16] !== schemaDescription || $[17] !== t2) { + t3 = /* @__PURE__ */jsxRuntime.jsx(SchemaContextProvider, { + dangerouslyAssumeSchemaIsValid, + fetcher, + inputValueDeprecation, + introspectionQueryName, + onSchemaChange, + schema, + schemaDescription, + children: t2 + }); + $[10] = dangerouslyAssumeSchemaIsValid; + $[11] = fetcher; + $[12] = inputValueDeprecation; + $[13] = introspectionQueryName; + $[14] = onSchemaChange; + $[15] = schema; + $[16] = schemaDescription; + $[17] = t2; + $[18] = t3; + } else { + t3 = $[18]; + } + let t4; + if ($[19] !== defaultHeaders || $[20] !== defaultQuery || $[21] !== defaultTabs || $[22] !== externalFragments || $[23] !== headers || $[24] !== onEditOperationName || $[25] !== onTabChange || $[26] !== query || $[27] !== response || $[28] !== shouldPersistHeaders || $[29] !== t3 || $[30] !== validationRules || $[31] !== variables) { + t4 = /* @__PURE__ */jsxRuntime.jsx(EditorContextProvider, { + defaultQuery, + defaultHeaders, + defaultTabs, + externalFragments, + headers, + onEditOperationName, + onTabChange, + query, + response, + shouldPersistHeaders, + validationRules, + variables, + children: t3 + }); + $[19] = defaultHeaders; + $[20] = defaultQuery; + $[21] = defaultTabs; + $[22] = externalFragments; + $[23] = headers; + $[24] = onEditOperationName; + $[25] = onTabChange; + $[26] = query; + $[27] = response; + $[28] = shouldPersistHeaders; + $[29] = t3; + $[30] = validationRules; + $[31] = variables; + $[32] = t4; + } else { + t4 = $[32]; + } + let t5; + if ($[33] !== maxHistoryLength || $[34] !== t4) { + t5 = /* @__PURE__ */jsxRuntime.jsx(HistoryContextProvider, { + maxHistoryLength, + children: t4 + }); + $[33] = maxHistoryLength; + $[34] = t4; + $[35] = t5; + } else { + t5 = $[35]; + } + let t6; + if ($[36] !== storage || $[37] !== t5) { + t6 = /* @__PURE__ */jsxRuntime.jsx(StorageContextProvider, { + storage, + children: t5 + }); + $[36] = storage; + $[37] = t5; + $[38] = t6; + } else { + t6 = $[38]; + } + return t6; } -function useTheme(defaultTheme = null) { +function useTheme(t0) { + const $ = reactCompilerRuntime.c(11); + const defaultTheme = t0 === void 0 ? null : t0; const storageContext = useStorageContext(); - const [theme, setThemeInternal] = React.useState(() => { - if (!storageContext) { - return null; - } - const stored = storageContext.get(STORAGE_KEY); - switch (stored) { - case "light": - return "light"; - case "dark": - return "dark"; - default: - if (typeof stored === "string") { - storageContext.set(STORAGE_KEY, ""); - } - return defaultTheme; - } - }); - React.useLayoutEffect(() => { - if (typeof window === "undefined") { - return; - } - document.body.classList.remove("graphiql-light", "graphiql-dark"); - if (theme) { - document.body.classList.add(`graphiql-${theme}`); - } - }, [theme]); - const setTheme = React.useCallback(newTheme => { - storageContext == null ? void 0 : storageContext.set(STORAGE_KEY, newTheme || ""); - setThemeInternal(newTheme); - }, [storageContext]); - return React.useMemo(() => ({ - theme, - setTheme - }), [theme, setTheme]); + let t1; + if ($[0] !== defaultTheme || $[1] !== storageContext) { + t1 = () => { + if (!storageContext) { + return null; + } + const stored = storageContext.get(STORAGE_KEY); + switch (stored) { + case "light": + { + return "light"; + } + case "dark": + { + return "dark"; + } + default: + { + if (typeof stored === "string") { + storageContext.set(STORAGE_KEY, ""); + } + return defaultTheme; + } + } + }; + $[0] = defaultTheme; + $[1] = storageContext; + $[2] = t1; + } else { + t1 = $[2]; + } + const [theme, setThemeInternal] = React.useState(t1); + let t2; + let t3; + if ($[3] !== theme) { + t2 = () => { + if (typeof window === "undefined") { + return; + } + document.body.classList.remove("graphiql-light", "graphiql-dark"); + if (theme) { + document.body.classList.add(`graphiql-${theme}`); + } + }; + t3 = [theme]; + $[3] = theme; + $[4] = t2; + $[5] = t3; + } else { + t2 = $[4]; + t3 = $[5]; + } + React.useLayoutEffect(t2, t3); + let t4; + if ($[6] !== storageContext) { + t4 = newTheme => { + storageContext == null ? void 0 : storageContext.set(STORAGE_KEY, newTheme || ""); + setThemeInternal(newTheme); + }; + $[6] = storageContext; + $[7] = t4; + } else { + t4 = $[7]; + } + const setTheme = t4; + let t5; + if ($[8] !== setTheme || $[9] !== theme) { + t5 = { + theme, + setTheme + }; + $[8] = setTheme; + $[9] = theme; + $[10] = t5; + } else { + t5 = $[10]; + } + return t5; } const STORAGE_KEY = "theme"; -function useDragResize({ - defaultSizeRelation = DEFAULT_FLEX, - direction, - initiallyHidden, - onHiddenElementChange, - sizeThresholdFirst = 100, - sizeThresholdSecond = 100, - storageKey -}) { +function useDragResize(t0) { + const $ = reactCompilerRuntime.c(31); + const { + defaultSizeRelation: t1, + direction, + initiallyHidden, + onHiddenElementChange, + sizeThresholdFirst: t2, + sizeThresholdSecond: t3, + storageKey + } = t0; + const defaultSizeRelation = t1 === void 0 ? DEFAULT_FLEX : t1; + const sizeThresholdFirst = t2 === void 0 ? 100 : t2; + const sizeThresholdSecond = t3 === void 0 ? 100 : t3; const storage = useStorageContext(); - const store = React.useMemo(() => debounce(500, value => { - if (storageKey) { - storage == null ? void 0 : storage.set(storageKey, value); - } - }), [storage, storageKey]); - const [hiddenElement, setHiddenElement] = React.useState(() => { - const storedValue = storageKey && (storage == null ? void 0 : storage.get(storageKey)); - if (storedValue === HIDE_FIRST || initiallyHidden === "first") { - return "first"; - } - if (storedValue === HIDE_SECOND || initiallyHidden === "second") { - return "second"; - } - return null; - }); - const setHiddenElementWithCallback = React.useCallback(element => { - if (element !== hiddenElement) { - setHiddenElement(element); - onHiddenElementChange == null ? void 0 : onHiddenElementChange(element); - } - }, [hiddenElement, onHiddenElementChange]); + let t4; + if ($[0] !== storage || $[1] !== storageKey) { + t4 = debounce(500, value => { + if (storageKey) { + storage == null ? void 0 : storage.set(storageKey, value); + } + }); + $[0] = storage; + $[1] = storageKey; + $[2] = t4; + } else { + t4 = $[2]; + } + const store = t4; + let t5; + if ($[3] !== initiallyHidden || $[4] !== storage || $[5] !== storageKey) { + t5 = () => { + const storedValue = storageKey && (storage == null ? void 0 : storage.get(storageKey)); + if (storedValue === HIDE_FIRST || initiallyHidden === "first") { + return "first"; + } + if (storedValue === HIDE_SECOND || initiallyHidden === "second") { + return "second"; + } + return null; + }; + $[3] = initiallyHidden; + $[4] = storage; + $[5] = storageKey; + $[6] = t5; + } else { + t5 = $[6]; + } + const [hiddenElement, setHiddenElement] = React.useState(t5); + let t6; + if ($[7] !== hiddenElement || $[8] !== onHiddenElementChange) { + t6 = element => { + if (element !== hiddenElement) { + setHiddenElement(element); + onHiddenElementChange == null ? void 0 : onHiddenElementChange(element); + } + }; + $[7] = hiddenElement; + $[8] = onHiddenElementChange; + $[9] = t6; + } else { + t6 = $[9]; + } + const setHiddenElementWithCallback = t6; const firstRef = React.useRef(null); const dragBarRef = React.useRef(null); const secondRef = React.useRef(null); const defaultFlexRef = React.useRef(`${defaultSizeRelation}`); - React.useLayoutEffect(() => { - const storedValue = storageKey && (storage == null ? void 0 : storage.get(storageKey)) || defaultFlexRef.current; - if (firstRef.current) { - firstRef.current.style.display = "flex"; - firstRef.current.style.flex = storedValue === HIDE_FIRST || storedValue === HIDE_SECOND ? defaultFlexRef.current : storedValue; - } - if (secondRef.current) { - secondRef.current.style.display = "flex"; - secondRef.current.style.flex = "1"; - } - if (dragBarRef.current) { - dragBarRef.current.style.display = "flex"; - } - }, [direction, storage, storageKey]); - const hide = React.useCallback(resizableElement => { - const element = resizableElement === "first" ? firstRef.current : secondRef.current; - if (!element) { - return; - } - element.style.left = "-1000px"; - element.style.position = "absolute"; - element.style.opacity = "0"; - element.style.height = "500px"; - element.style.width = "500px"; - if (firstRef.current) { - const flex = parseFloat(firstRef.current.style.flex); - if (!Number.isFinite(flex) || flex < 1) { - firstRef.current.style.flex = "1"; - } - } - }, []); - const show = React.useCallback(resizableElement => { - const element = resizableElement === "first" ? firstRef.current : secondRef.current; - if (!element) { - return; - } - element.style.width = ""; - element.style.height = ""; - element.style.opacity = ""; - element.style.position = ""; - element.style.left = ""; - if (storage && storageKey) { - const storedValue = storage.get(storageKey); - if (firstRef.current && storedValue !== HIDE_FIRST && storedValue !== HIDE_SECOND) { - firstRef.current.style.flex = storedValue || defaultFlexRef.current; - } - } - }, [storage, storageKey]); - React.useLayoutEffect(() => { - if (hiddenElement === "first") { - hide("first"); - } else { - show("first"); - } - if (hiddenElement === "second") { - hide("second"); - } else { - show("second"); - } - }, [hiddenElement, hide, show]); - React.useEffect(() => { - if (!dragBarRef.current || !firstRef.current || !secondRef.current) { - return; - } - const dragBarContainer = dragBarRef.current; - const firstContainer = firstRef.current; - const wrapper = firstContainer.parentElement; - const eventProperty = direction === "horizontal" ? "clientX" : "clientY"; - const rectProperty = direction === "horizontal" ? "left" : "top"; - const adjacentRectProperty = direction === "horizontal" ? "right" : "bottom"; - const sizeProperty = direction === "horizontal" ? "clientWidth" : "clientHeight"; - function handleMouseDown(downEvent) { - downEvent.preventDefault(); - const offset = downEvent[eventProperty] - dragBarContainer.getBoundingClientRect()[rectProperty]; - function handleMouseMove(moveEvent) { - if (moveEvent.buttons === 0) { - return handleMouseUp(); - } - const firstSize = moveEvent[eventProperty] - wrapper.getBoundingClientRect()[rectProperty] - offset; - const secondSize = wrapper.getBoundingClientRect()[adjacentRectProperty] - moveEvent[eventProperty] + offset - dragBarContainer[sizeProperty]; - if (firstSize < sizeThresholdFirst) { - setHiddenElementWithCallback("first"); - store(HIDE_FIRST); - } else if (secondSize < sizeThresholdSecond) { - setHiddenElementWithCallback("second"); - store(HIDE_SECOND); - } else { - setHiddenElementWithCallback(null); - const newFlex = `${firstSize / secondSize}`; - firstContainer.style.flex = newFlex; - store(newFlex); - } - } - function handleMouseUp() { - document.removeEventListener("mousemove", handleMouseMove); - document.removeEventListener("mouseup", handleMouseUp); - } - document.addEventListener("mousemove", handleMouseMove); - document.addEventListener("mouseup", handleMouseUp); - } - dragBarContainer.addEventListener("mousedown", handleMouseDown); - function reset() { + let t7; + if ($[10] !== storage || $[11] !== storageKey) { + t7 = () => { + const storedValue_0 = storageKey && (storage == null ? void 0 : storage.get(storageKey)) || defaultFlexRef.current; if (firstRef.current) { - firstRef.current.style.flex = defaultFlexRef.current; + firstRef.current.style.display = "flex"; + firstRef.current.style.flex = storedValue_0 === HIDE_FIRST || storedValue_0 === HIDE_SECOND ? defaultFlexRef.current : storedValue_0; + } + if (secondRef.current) { + secondRef.current.style.display = "flex"; + secondRef.current.style.flex = "1"; + } + if (dragBarRef.current) { + dragBarRef.current.style.display = "flex"; } - store(defaultFlexRef.current); - setHiddenElementWithCallback(null); - } - dragBarContainer.addEventListener("dblclick", reset); - return () => { - dragBarContainer.removeEventListener("mousedown", handleMouseDown); - dragBarContainer.removeEventListener("dblclick", reset); }; - }, [direction, setHiddenElementWithCallback, sizeThresholdFirst, sizeThresholdSecond, store]); - return React.useMemo(() => ({ - dragBarRef, - hiddenElement, - firstRef, - setHiddenElement, - secondRef - }), [hiddenElement, setHiddenElement]); + $[10] = storage; + $[11] = storageKey; + $[12] = t7; + } else { + t7 = $[12]; + } + let t8; + if ($[13] !== direction || $[14] !== storage || $[15] !== storageKey) { + t8 = [direction, storage, storageKey]; + $[13] = direction; + $[14] = storage; + $[15] = storageKey; + $[16] = t8; + } else { + t8 = $[16]; + } + React.useLayoutEffect(t7, t8); + let t10; + let t9; + if ($[17] !== hiddenElement || $[18] !== storage || $[19] !== storageKey) { + t9 = () => { + const hide = resizableElement => { + const element_0 = resizableElement === "first" ? firstRef.current : secondRef.current; + if (!element_0) { + return; + } + element_0.style.left = "-1000px"; + element_0.style.position = "absolute"; + element_0.style.opacity = "0"; + element_0.style.height = "500px"; + element_0.style.width = "500px"; + if (firstRef.current) { + const flex = parseFloat(firstRef.current.style.flex); + if (!Number.isFinite(flex) || flex < 1) { + firstRef.current.style.flex = "1"; + } + } + }; + const show = resizableElement_0 => { + const element_1 = resizableElement_0 === "first" ? firstRef.current : secondRef.current; + if (!element_1) { + return; + } + element_1.style.width = ""; + element_1.style.height = ""; + element_1.style.opacity = ""; + element_1.style.position = ""; + element_1.style.left = ""; + if (storage && storageKey) { + const storedValue_1 = storage.get(storageKey); + if (firstRef.current && storedValue_1 !== HIDE_FIRST && storedValue_1 !== HIDE_SECOND) { + firstRef.current.style.flex = storedValue_1 || defaultFlexRef.current; + } + } + }; + if (hiddenElement === "first") { + hide("first"); + } else { + show("first"); + } + if (hiddenElement === "second") { + hide("second"); + } else { + show("second"); + } + }; + t10 = [hiddenElement, storage, storageKey]; + $[17] = hiddenElement; + $[18] = storage; + $[19] = storageKey; + $[20] = t10; + $[21] = t9; + } else { + t10 = $[20]; + t9 = $[21]; + } + React.useLayoutEffect(t9, t10); + let t11; + let t12; + if ($[22] !== direction || $[23] !== setHiddenElementWithCallback || $[24] !== sizeThresholdFirst || $[25] !== sizeThresholdSecond || $[26] !== store) { + t11 = () => { + if (!dragBarRef.current || !firstRef.current || !secondRef.current) { + return; + } + const dragBarContainer = dragBarRef.current; + const firstContainer = firstRef.current; + const wrapper = firstContainer.parentElement; + const eventProperty = direction === "horizontal" ? "clientX" : "clientY"; + const rectProperty = direction === "horizontal" ? "left" : "top"; + const adjacentRectProperty = direction === "horizontal" ? "right" : "bottom"; + const sizeProperty = direction === "horizontal" ? "clientWidth" : "clientHeight"; + const handleMouseDown = function handleMouseDown2(downEvent) { + downEvent.preventDefault(); + const offset = downEvent[eventProperty] - dragBarContainer.getBoundingClientRect()[rectProperty]; + const handleMouseMove = function handleMouseMove2(moveEvent) { + if (moveEvent.buttons === 0) { + return handleMouseUp(); + } + const firstSize = moveEvent[eventProperty] - wrapper.getBoundingClientRect()[rectProperty] - offset; + const secondSize = wrapper.getBoundingClientRect()[adjacentRectProperty] - moveEvent[eventProperty] + offset - dragBarContainer[sizeProperty]; + if (firstSize < sizeThresholdFirst) { + setHiddenElementWithCallback("first"); + store(HIDE_FIRST); + } else { + if (secondSize < sizeThresholdSecond) { + setHiddenElementWithCallback("second"); + store(HIDE_SECOND); + } else { + setHiddenElementWithCallback(null); + const newFlex = `${firstSize / secondSize}`; + firstContainer.style.flex = newFlex; + store(newFlex); + } + } + }; + function handleMouseUp() { + document.removeEventListener("mousemove", handleMouseMove); + document.removeEventListener("mouseup", handleMouseUp); + } + document.addEventListener("mousemove", handleMouseMove); + document.addEventListener("mouseup", handleMouseUp); + }; + dragBarContainer.addEventListener("mousedown", handleMouseDown); + const reset = function reset2() { + if (firstRef.current) { + firstRef.current.style.flex = defaultFlexRef.current; + } + store(defaultFlexRef.current); + setHiddenElementWithCallback(null); + }; + dragBarContainer.addEventListener("dblclick", reset); + return () => { + dragBarContainer.removeEventListener("mousedown", handleMouseDown); + dragBarContainer.removeEventListener("dblclick", reset); + }; + }; + t12 = [direction, setHiddenElementWithCallback, sizeThresholdFirst, sizeThresholdSecond, store]; + $[22] = direction; + $[23] = setHiddenElementWithCallback; + $[24] = sizeThresholdFirst; + $[25] = sizeThresholdSecond; + $[26] = store; + $[27] = t11; + $[28] = t12; + } else { + t11 = $[27]; + t12 = $[28]; + } + React.useEffect(t11, t12); + let t13; + if ($[29] !== hiddenElement) { + t13 = { + dragBarRef, + hiddenElement, + firstRef, + setHiddenElement, + secondRef + }; + $[29] = hiddenElement; + $[30] = t13; + } else { + t13 = $[30]; + } + return t13; } const DEFAULT_FLEX = 1; const HIDE_FIRST = "hide-first"; const HIDE_SECOND = "hide-second"; -const ToolbarButton = React.forwardRef(({ - label, - onClick, - ...props -}, ref) => { +const ToolbarButton = React.forwardRef((t0, ref) => { + const $ = reactCompilerRuntime.c(19); + let label; + let onClick; + let props; + if ($[0] !== t0) { + ({ + label, + onClick, + ...props + } = t0); + $[0] = t0; + $[1] = label; + $[2] = onClick; + $[3] = props; + } else { + label = $[1]; + onClick = $[2]; + props = $[3]; + } const [error, setError] = React.useState(null); - const handleClick = React.useCallback(event => { - try { - onClick == null ? void 0 : onClick(event); - setError(null); - } catch (err) { - setError(err instanceof Error ? err : new Error(`Toolbar button click failed: ${err}`)); - } - }, [onClick]); - return /* @__PURE__ */jsxRuntime.jsx(Tooltip, { - label, - children: /* @__PURE__ */jsxRuntime.jsx(UnStyledButton, { + let t1; + if ($[4] !== onClick) { + t1 = event => { + try { + if (onClick) { + onClick(event); + } + setError(null); + } catch (t22) { + const err = t22; + setError(err instanceof Error ? err : new Error(`Toolbar button click failed: ${err}`)); + } + }; + $[4] = onClick; + $[5] = t1; + } else { + t1 = $[5]; + } + const handleClick = t1; + const t2 = error && "error"; + let t3; + if ($[6] !== props.className || $[7] !== t2) { + t3 = clsx.clsx("graphiql-toolbar-button", t2, props.className); + $[6] = props.className; + $[7] = t2; + $[8] = t3; + } else { + t3 = $[8]; + } + const t4 = error ? error.message : label; + const t5 = error ? "true" : props["aria-invalid"]; + let t6; + if ($[9] !== handleClick || $[10] !== props || $[11] !== ref || $[12] !== t3 || $[13] !== t4 || $[14] !== t5) { + t6 = /* @__PURE__ */jsxRuntime.jsx(UnStyledButton, { ...props, ref, type: "button", - className: clsx.clsx("graphiql-toolbar-button", error && "error", props.className), + className: t3, onClick: handleClick, - "aria-label": error ? error.message : label, - "aria-invalid": error ? "true" : props["aria-invalid"] - }) - }); + "aria-label": t4, + "aria-invalid": t5 + }); + $[9] = handleClick; + $[10] = props; + $[11] = ref; + $[12] = t3; + $[13] = t4; + $[14] = t5; + $[15] = t6; + } else { + t6 = $[15]; + } + let t7; + if ($[16] !== label || $[17] !== t6) { + t7 = /* @__PURE__ */jsxRuntime.jsx(Tooltip, { + label, + children: t6 + }); + $[16] = label; + $[17] = t6; + $[18] = t7; + } else { + t7 = $[18]; + } + return t7; }); ToolbarButton.displayName = "ToolbarButton"; function ExecuteButton() { + const $ = reactCompilerRuntime.c(19); + let t0; + if ($[0] === Symbol.for("react.memo_cache_sentinel")) { + t0 = { + nonNull: true, + caller: ExecuteButton + }; + $[0] = t0; + } else { + t0 = $[0]; + } const { queryEditor, setOperationName - } = useEditorContext({ - nonNull: true, - caller: ExecuteButton - }); + } = useEditorContext(t0); + let t1; + if ($[1] === Symbol.for("react.memo_cache_sentinel")) { + t1 = { + nonNull: true, + caller: ExecuteButton + }; + $[1] = t1; + } else { + t1 = $[1]; + } const { isFetching, isSubscribed, operationName, run, stop - } = useExecutionContext({ - nonNull: true, - caller: ExecuteButton - }); - const operations = (queryEditor == null ? void 0 : queryEditor.operations) || []; + } = useExecutionContext(t1); + let t2; + if ($[2] !== (queryEditor == null ? void 0 : queryEditor.operations)) { + t2 = (queryEditor == null ? void 0 : queryEditor.operations) || []; + $[2] = queryEditor == null ? void 0 : queryEditor.operations; + $[3] = t2; + } else { + t2 = $[3]; + } + const operations = t2; const hasOptions = operations.length > 1 && typeof operationName !== "string"; const isRunning = isFetching || isSubscribed; const label = `${isRunning ? "Stop" : "Execute"} query (Ctrl-Enter)`; - const buttonProps = { - type: "button", - className: "graphiql-execute-button", - children: isRunning ? /* @__PURE__ */jsxRuntime.jsx(StopIcon, {}) : /* @__PURE__ */jsxRuntime.jsx(PlayIcon, {}), - "aria-label": label - }; - return hasOptions && !isRunning ? /* @__PURE__ */jsxRuntime.jsxs(DropdownMenu, { - children: [/* @__PURE__ */jsxRuntime.jsx(Tooltip, { + let t3; + if ($[4] !== isRunning) { + t3 = isRunning ? /* @__PURE__ */jsxRuntime.jsx(StopIcon, {}) : /* @__PURE__ */jsxRuntime.jsx(PlayIcon, {}); + $[4] = isRunning; + $[5] = t3; + } else { + t3 = $[5]; + } + let t4; + if ($[6] !== label || $[7] !== t3) { + t4 = { + type: "button", + className: "graphiql-execute-button", + children: t3, + "aria-label": label + }; + $[6] = label; + $[7] = t3; + $[8] = t4; + } else { + t4 = $[8]; + } + const buttonProps = t4; + let t5; + if ($[9] !== buttonProps || $[10] !== hasOptions || $[11] !== isRunning || $[12] !== label || $[13] !== operations || $[14] !== queryEditor || $[15] !== run || $[16] !== setOperationName || $[17] !== stop) { + t5 = hasOptions && !isRunning ? /* @__PURE__ */jsxRuntime.jsxs(DropdownMenu, { + children: [/* @__PURE__ */jsxRuntime.jsx(Tooltip, { + label, + children: /* @__PURE__ */jsxRuntime.jsx(DropdownMenu.Button, { + ...buttonProps + }) + }), /* @__PURE__ */jsxRuntime.jsx(DropdownMenu.Content, { + children: operations.map((operation, i) => { + const opName = operation.name ? operation.name.value : ``; + return /* @__PURE__ */jsxRuntime.jsx(DropdownMenu.Item, { + onSelect: () => { + var _a; + const selectedOperationName = (_a = operation.name) == null ? void 0 : _a.value; + if (queryEditor && selectedOperationName && selectedOperationName !== queryEditor.operationName) { + setOperationName(selectedOperationName); + } + run(); + }, + children: opName + }, `${opName}-${i}`); + }) + })] + }) : /* @__PURE__ */jsxRuntime.jsx(Tooltip, { label, - children: /* @__PURE__ */jsxRuntime.jsx(DropdownMenu.Button, { - ...buttonProps - }) - }), /* @__PURE__ */jsxRuntime.jsx(DropdownMenu.Content, { - children: operations.map((operation, i) => { - const opName = operation.name ? operation.name.value : ``; - return /* @__PURE__ */jsxRuntime.jsx(DropdownMenu.Item, { - onSelect: () => { - var _a; - const selectedOperationName = (_a = operation.name) == null ? void 0 : _a.value; - if (queryEditor && selectedOperationName && selectedOperationName !== queryEditor.operationName) { - setOperationName(selectedOperationName); - } + children: /* @__PURE__ */jsxRuntime.jsx("button", { + ...buttonProps, + onClick: () => { + if (isRunning) { + stop(); + } else { run(); - }, - children: opName - }, `${opName}-${i}`); - }) - })] - }) : /* @__PURE__ */jsxRuntime.jsx(Tooltip, { - label, - children: /* @__PURE__ */jsxRuntime.jsx("button", { - ...buttonProps, - onClick: () => { - if (isRunning) { - stop(); - } else { - run(); + } } - } - }) - }); + }) + }); + $[9] = buttonProps; + $[10] = hasOptions; + $[11] = isRunning; + $[12] = label; + $[13] = operations; + $[14] = queryEditor; + $[15] = run; + $[16] = setOperationName; + $[17] = stop; + $[18] = t5; + } else { + t5 = $[18]; + } + return t5; } -const ToolbarMenuRoot = ({ - button, - children, - label, - ...props -}) => /* @__PURE__ */jsxRuntime.jsxs(DropdownMenu, { - ...props, - children: [/* @__PURE__ */jsxRuntime.jsx(Tooltip, { - label, - children: /* @__PURE__ */jsxRuntime.jsx(DropdownMenu.Button, { - className: clsx.clsx("graphiql-un-styled graphiql-toolbar-menu", props.className), +const ToolbarMenuRoot = t0 => { + const $ = reactCompilerRuntime.c(20); + let button; + let children; + let label; + let props; + if ($[0] !== t0) { + ({ + button, + children, + label, + ...props + } = t0); + $[0] = t0; + $[1] = button; + $[2] = children; + $[3] = label; + $[4] = props; + } else { + button = $[1]; + children = $[2]; + label = $[3]; + props = $[4]; + } + let t1; + if ($[5] !== props.className) { + t1 = clsx.clsx("graphiql-un-styled graphiql-toolbar-menu", props.className); + $[5] = props.className; + $[6] = t1; + } else { + t1 = $[6]; + } + let t2; + if ($[7] !== button || $[8] !== label || $[9] !== t1) { + t2 = /* @__PURE__ */jsxRuntime.jsx(DropdownMenu.Button, { + className: t1, "aria-label": label, children: button - }) - }), /* @__PURE__ */jsxRuntime.jsx(DropdownMenu.Content, { - children - })] -}); + }); + $[7] = button; + $[8] = label; + $[9] = t1; + $[10] = t2; + } else { + t2 = $[10]; + } + let t3; + if ($[11] !== label || $[12] !== t2) { + t3 = /* @__PURE__ */jsxRuntime.jsx(Tooltip, { + label, + children: t2 + }); + $[11] = label; + $[12] = t2; + $[13] = t3; + } else { + t3 = $[13]; + } + let t4; + if ($[14] !== children) { + t4 = /* @__PURE__ */jsxRuntime.jsx(DropdownMenu.Content, { + children + }); + $[14] = children; + $[15] = t4; + } else { + t4 = $[15]; + } + let t5; + if ($[16] !== props || $[17] !== t3 || $[18] !== t4) { + t5 = /* @__PURE__ */jsxRuntime.jsxs(DropdownMenu, { + ...props, + children: [t3, t4] + }); + $[16] = props; + $[17] = t3; + $[18] = t4; + $[19] = t5; + } else { + t5 = $[19]; + } + return t5; +}; const ToolbarMenu = createComponentGroup(ToolbarMenuRoot, { Item: DropdownMenu.Item }); @@ -73311,4833 +83409,13 @@ exports.useVariablesEditorState = useVariablesEditorState; /***/ }), -/***/ "../../graphiql-react/dist/info-addon.cjs.js": -/*!***************************************************!*\ - !*** ../../graphiql-react/dist/info-addon.cjs.js ***! - \***************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs.js */ "../../graphiql-react/dist/codemirror.cjs.js"); -codemirror.CodeMirror.defineOption("info", false, (cm, options, old) => { - if (old && old !== codemirror.CodeMirror.Init) { - const oldOnMouseOver = cm.state.info.onMouseOver; - codemirror.CodeMirror.off(cm.getWrapperElement(), "mouseover", oldOnMouseOver); - clearTimeout(cm.state.info.hoverTimeout); - delete cm.state.info; - } - if (options) { - const state = cm.state.info = createState(options); - state.onMouseOver = onMouseOver.bind(null, cm); - codemirror.CodeMirror.on(cm.getWrapperElement(), "mouseover", state.onMouseOver); - } -}); -function createState(options) { - return { - options: options instanceof Function ? { - render: options - } : options === true ? {} : options - }; -} -function getHoverTime(cm) { - const { - options - } = cm.state.info; - return (options === null || options === void 0 ? void 0 : options.hoverTime) || 500; -} -function onMouseOver(cm, e) { - const state = cm.state.info; - const target = e.target || e.srcElement; - if (!(target instanceof HTMLElement)) { - return; - } - if (target.nodeName !== "SPAN" || state.hoverTimeout !== void 0) { - return; - } - const box = target.getBoundingClientRect(); - const onMouseMove = function () { - clearTimeout(state.hoverTimeout); - state.hoverTimeout = setTimeout(onHover, hoverTime); - }; - const onMouseOut = function () { - codemirror.CodeMirror.off(document, "mousemove", onMouseMove); - codemirror.CodeMirror.off(cm.getWrapperElement(), "mouseout", onMouseOut); - clearTimeout(state.hoverTimeout); - state.hoverTimeout = void 0; - }; - const onHover = function () { - codemirror.CodeMirror.off(document, "mousemove", onMouseMove); - codemirror.CodeMirror.off(cm.getWrapperElement(), "mouseout", onMouseOut); - state.hoverTimeout = void 0; - onMouseHover(cm, box); - }; - const hoverTime = getHoverTime(cm); - state.hoverTimeout = setTimeout(onHover, hoverTime); - codemirror.CodeMirror.on(document, "mousemove", onMouseMove); - codemirror.CodeMirror.on(cm.getWrapperElement(), "mouseout", onMouseOut); -} -function onMouseHover(cm, box) { - const pos = cm.coordsChar({ - left: (box.left + box.right) / 2, - top: (box.top + box.bottom) / 2 - }, "window"); - const state = cm.state.info; - const { - options - } = state; - const render = options.render || cm.getHelper(pos, "info"); - if (render) { - const token = cm.getTokenAt(pos, true); - if (token) { - const info = render(token, options, cm, pos); - if (info) { - showPopup(cm, box, info); - } - } - } -} -function showPopup(cm, box, info) { - const popup = document.createElement("div"); - popup.className = "CodeMirror-info"; - popup.append(info); - document.body.append(popup); - const popupBox = popup.getBoundingClientRect(); - const popupStyle = window.getComputedStyle(popup); - const popupWidth = popupBox.right - popupBox.left + parseFloat(popupStyle.marginLeft) + parseFloat(popupStyle.marginRight); - const popupHeight = popupBox.bottom - popupBox.top + parseFloat(popupStyle.marginTop) + parseFloat(popupStyle.marginBottom); - let topPos = box.bottom; - if (popupHeight > window.innerHeight - box.bottom - 15 && box.top > window.innerHeight - box.bottom) { - topPos = box.top - popupHeight; - } - if (topPos < 0) { - topPos = box.bottom; - } - let leftPos = Math.max(0, window.innerWidth - popupWidth - 15); - if (leftPos > box.left) { - leftPos = box.left; - } - popup.style.opacity = "1"; - popup.style.top = topPos + "px"; - popup.style.left = leftPos + "px"; - let popupTimeout; - const onMouseOverPopup = function () { - clearTimeout(popupTimeout); - }; - const onMouseOut = function () { - clearTimeout(popupTimeout); - popupTimeout = setTimeout(hidePopup, 200); - }; - const hidePopup = function () { - codemirror.CodeMirror.off(popup, "mouseover", onMouseOverPopup); - codemirror.CodeMirror.off(popup, "mouseout", onMouseOut); - codemirror.CodeMirror.off(cm.getWrapperElement(), "mouseout", onMouseOut); - if (popup.style.opacity) { - popup.style.opacity = "0"; - setTimeout(() => { - if (popup.parentNode) { - popup.remove(); - } - }, 600); - } else if (popup.parentNode) { - popup.remove(); - } - }; - codemirror.CodeMirror.on(popup, "mouseover", onMouseOverPopup); - codemirror.CodeMirror.on(popup, "mouseout", onMouseOut); - codemirror.CodeMirror.on(cm.getWrapperElement(), "mouseout", onMouseOut); -} - -/***/ }), - -/***/ "../../graphiql-react/dist/info.cjs.js": -/*!*********************************************!*\ - !*** ../../graphiql-react/dist/info.cjs.js ***! - \*********************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - - - -const graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs"); -const codemirror = __webpack_require__(/*! ./codemirror.cjs.js */ "../../graphiql-react/dist/codemirror.cjs.js"); -const SchemaReference = __webpack_require__(/*! ./SchemaReference.cjs.js */ "../../graphiql-react/dist/SchemaReference.cjs.js"); -__webpack_require__(/*! ./info-addon.cjs.js */ "../../graphiql-react/dist/info-addon.cjs.js"); -codemirror.CodeMirror.registerHelper("info", "graphql", (token, options) => { - var _a; - if (!options.schema || !token.state) { - return; - } - const { - kind, - step - } = token.state; - const typeInfo = SchemaReference.getTypeInfo(options.schema, token.state); - if (kind === "Field" && step === 0 && typeInfo.fieldDef || kind === "AliasedField" && step === 2 && typeInfo.fieldDef || kind === "ObjectField" && step === 0 && typeInfo.fieldDef) { - const header = document.createElement("div"); - header.className = "CodeMirror-info-header"; - renderField(header, typeInfo, options); - const into = document.createElement("div"); - into.append(header); - renderDescription(into, options, typeInfo.fieldDef); - return into; - } - if (kind === "Directive" && step === 1 && typeInfo.directiveDef) { - const header = document.createElement("div"); - header.className = "CodeMirror-info-header"; - renderDirective(header, typeInfo, options); - const into = document.createElement("div"); - into.append(header); - renderDescription(into, options, typeInfo.directiveDef); - return into; - } - if (kind === "Argument" && step === 0 && typeInfo.argDef) { - const header = document.createElement("div"); - header.className = "CodeMirror-info-header"; - renderArg(header, typeInfo, options); - const into = document.createElement("div"); - into.append(header); - renderDescription(into, options, typeInfo.argDef); - return into; - } - if (kind === "EnumValue" && ((_a = typeInfo.enumValue) === null || _a === void 0 ? void 0 : _a.description)) { - const header = document.createElement("div"); - header.className = "CodeMirror-info-header"; - renderEnumValue(header, typeInfo, options); - const into = document.createElement("div"); - into.append(header); - renderDescription(into, options, typeInfo.enumValue); - return into; - } - if (kind === "NamedType" && typeInfo.type && typeInfo.type.description) { - const header = document.createElement("div"); - header.className = "CodeMirror-info-header"; - renderType(header, typeInfo, options, typeInfo.type); - const into = document.createElement("div"); - into.append(header); - renderDescription(into, options, typeInfo.type); - return into; - } -}); -function renderField(into, typeInfo, options) { - renderQualifiedField(into, typeInfo, options); - renderTypeAnnotation(into, typeInfo, options, typeInfo.type); -} -function renderQualifiedField(into, typeInfo, options) { - var _a; - const fieldName = ((_a = typeInfo.fieldDef) === null || _a === void 0 ? void 0 : _a.name) || ""; - text(into, fieldName, "field-name", options, SchemaReference.getFieldReference(typeInfo)); -} -function renderDirective(into, typeInfo, options) { - var _a; - const name = "@" + (((_a = typeInfo.directiveDef) === null || _a === void 0 ? void 0 : _a.name) || ""); - text(into, name, "directive-name", options, SchemaReference.getDirectiveReference(typeInfo)); -} -function renderArg(into, typeInfo, options) { - var _a; - const name = ((_a = typeInfo.argDef) === null || _a === void 0 ? void 0 : _a.name) || ""; - text(into, name, "arg-name", options, SchemaReference.getArgumentReference(typeInfo)); - renderTypeAnnotation(into, typeInfo, options, typeInfo.inputType); -} -function renderEnumValue(into, typeInfo, options) { - var _a; - const name = ((_a = typeInfo.enumValue) === null || _a === void 0 ? void 0 : _a.name) || ""; - renderType(into, typeInfo, options, typeInfo.inputType); - text(into, "."); - text(into, name, "enum-value", options, SchemaReference.getEnumValueReference(typeInfo)); -} -function renderTypeAnnotation(into, typeInfo, options, t) { - const typeSpan = document.createElement("span"); - typeSpan.className = "type-name-pill"; - if (t instanceof graphql.GraphQLNonNull) { - renderType(typeSpan, typeInfo, options, t.ofType); - text(typeSpan, "!"); - } else if (t instanceof graphql.GraphQLList) { - text(typeSpan, "["); - renderType(typeSpan, typeInfo, options, t.ofType); - text(typeSpan, "]"); - } else { - text(typeSpan, (t === null || t === void 0 ? void 0 : t.name) || "", "type-name", options, SchemaReference.getTypeReference(typeInfo, t)); - } - into.append(typeSpan); -} -function renderType(into, typeInfo, options, t) { - 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 === null || t === void 0 ? void 0 : t.name) || "", "type-name", options, SchemaReference.getTypeReference(typeInfo, t)); - } -} -function renderDescription(into, options, def) { - const { - description - } = def; - if (description) { - const descriptionDiv = document.createElement("div"); - descriptionDiv.className = "info-description"; - if (options.renderDescription) { - descriptionDiv.innerHTML = options.renderDescription(description); - } else { - descriptionDiv.append(document.createTextNode(description)); - } - into.append(descriptionDiv); - } - renderDeprecation(into, options, def); -} -function renderDeprecation(into, options, def) { - const reason = def.deprecationReason; - if (reason) { - const deprecationDiv = document.createElement("div"); - deprecationDiv.className = "info-deprecation"; - into.append(deprecationDiv); - const label = document.createElement("span"); - label.className = "info-deprecation-label"; - label.append(document.createTextNode("Deprecated")); - deprecationDiv.append(label); - const reasonDiv = document.createElement("div"); - reasonDiv.className = "info-deprecation-reason"; - if (options.renderDescription) { - reasonDiv.innerHTML = options.renderDescription(reason); - } else { - reasonDiv.append(document.createTextNode(reason)); - } - deprecationDiv.append(reasonDiv); - } -} -function text(into, content, className = "", options = { - onClick: null -}, ref = null) { - if (className) { - const { - onClick - } = options; - let node; - if (onClick) { - node = document.createElement("a"); - node.href = "javascript:void 0"; - node.addEventListener("click", e => { - e.preventDefault(); - onClick(ref, e); - }); - } else { - node = document.createElement("span"); - } - node.className = className; - node.append(document.createTextNode(content)); - into.append(node); - } else { - into.append(document.createTextNode(content)); - } -} - -/***/ }), - -/***/ "../../graphiql-react/dist/javascript.cjs.js": -/*!***************************************************!*\ - !*** ../../graphiql-react/dist/javascript.cjs.js ***! - \***************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { - value: "Module" - })); -} -var javascript$2 = { - exports: {} -}; -(function (module2, exports2) { - (function (mod) { - mod(codemirror.requireCodemirror()); - })(function (CodeMirror) { - CodeMirror.defineMode("javascript", function (config, parserConfig) { - var indentUnit = config.indentUnit; - var statementIndent = parserConfig.statementIndent; - var jsonldMode = parserConfig.jsonld; - var jsonMode = parserConfig.json || jsonldMode; - var trackScope = parserConfig.trackScope !== false; - var isTS = parserConfig.typescript; - var wordRE = parserConfig.wordCharacters || /[\w$\xa1-\uffff]/; - var keywords = function () { - function kw(type2) { - return { - type: type2, - style: "keyword" - }; - } - var A = kw("keyword a"), - B = kw("keyword b"), - C = kw("keyword c"), - D = kw("keyword d"); - var operator = kw("operator"), - atom = { - type: "atom", - style: "atom" - }; - return { - "if": kw("if"), - "while": A, - "with": A, - "else": B, - "do": B, - "try": B, - "finally": B, - "return": D, - "break": D, - "continue": D, - "new": kw("new"), - "delete": C, - "void": C, - "throw": C, - "debugger": kw("debugger"), - "var": kw("var"), - "const": kw("var"), - "let": kw("var"), - "function": kw("function"), - "catch": kw("catch"), - "for": kw("for"), - "switch": kw("switch"), - "case": kw("case"), - "default": kw("default"), - "in": operator, - "typeof": operator, - "instanceof": operator, - "true": atom, - "false": atom, - "null": atom, - "undefined": atom, - "NaN": atom, - "Infinity": atom, - "this": kw("this"), - "class": kw("class"), - "super": kw("atom"), - "yield": C, - "export": kw("export"), - "import": kw("import"), - "extends": C, - "await": C - }; - }(); - var isOperatorChar = /[+\-*&%=<>!?|~^@]/; - var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/; - function readRegexp(stream) { - var escaped = false, - next, - inSet = false; - while ((next = stream.next()) != null) { - if (!escaped) { - if (next == "/" && !inSet) return; - if (next == "[") inSet = true;else if (inSet && next == "]") inSet = false; - } - escaped = !escaped && next == "\\"; - } - } - var type, content; - function ret(tp, style, cont2) { - type = tp; - content = cont2; - return style; - } - function tokenBase(stream, state) { - var ch = stream.next(); - if (ch == '"' || ch == "'") { - state.tokenize = tokenString(ch); - return state.tokenize(stream, state); - } else if (ch == "." && stream.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/)) { - return ret("number", "number"); - } else if (ch == "." && stream.match("..")) { - return ret("spread", "meta"); - } else if (/[\[\]{}\(\),;\:\.]/.test(ch)) { - return ret(ch); - } else if (ch == "=" && stream.eat(">")) { - return ret("=>", "operator"); - } else if (ch == "0" && stream.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) { - return ret("number", "number"); - } else if (/\d/.test(ch)) { - stream.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/); - return ret("number", "number"); - } else if (ch == "/") { - if (stream.eat("*")) { - state.tokenize = tokenComment; - return tokenComment(stream, state); - } else if (stream.eat("/")) { - stream.skipToEnd(); - return ret("comment", "comment"); - } else if (expressionAllowed(stream, state, 1)) { - readRegexp(stream); - stream.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/); - return ret("regexp", "string-2"); - } else { - stream.eat("="); - return ret("operator", "operator", stream.current()); - } - } else if (ch == "`") { - state.tokenize = tokenQuasi; - return tokenQuasi(stream, state); - } else if (ch == "#" && stream.peek() == "!") { - stream.skipToEnd(); - return ret("meta", "meta"); - } else if (ch == "#" && stream.eatWhile(wordRE)) { - return ret("variable", "property"); - } else if (ch == "<" && stream.match("!--") || ch == "-" && stream.match("->") && !/\S/.test(stream.string.slice(0, stream.start))) { - stream.skipToEnd(); - return ret("comment", "comment"); - } else if (isOperatorChar.test(ch)) { - if (ch != ">" || !state.lexical || state.lexical.type != ">") { - if (stream.eat("=")) { - if (ch == "!" || ch == "=") stream.eat("="); - } else if (/[<>*+\-|&?]/.test(ch)) { - stream.eat(ch); - if (ch == ">") stream.eat(ch); - } - } - if (ch == "?" && stream.eat(".")) return ret("."); - return ret("operator", "operator", stream.current()); - } else if (wordRE.test(ch)) { - stream.eatWhile(wordRE); - var word = stream.current(); - if (state.lastType != ".") { - if (keywords.propertyIsEnumerable(word)) { - var kw = keywords[word]; - return ret(kw.type, kw.style, word); - } - if (word == "async" && stream.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/, false)) return ret("async", "keyword", word); - } - return ret("variable", "variable", word); - } - } - function tokenString(quote) { - return function (stream, state) { - var escaped = false, - next; - if (jsonldMode && stream.peek() == "@" && stream.match(isJsonldKeyword)) { - state.tokenize = tokenBase; - return ret("jsonld-keyword", "meta"); - } - while ((next = stream.next()) != null) { - if (next == quote && !escaped) break; - escaped = !escaped && next == "\\"; - } - if (!escaped) state.tokenize = tokenBase; - return ret("string", "string"); - }; - } - function tokenComment(stream, state) { - var maybeEnd = false, - ch; - while (ch = stream.next()) { - if (ch == "/" && maybeEnd) { - state.tokenize = tokenBase; - break; - } - maybeEnd = ch == "*"; - } - return ret("comment", "comment"); - } - function tokenQuasi(stream, state) { - var escaped = false, - next; - while ((next = stream.next()) != null) { - if (!escaped && (next == "`" || next == "$" && stream.eat("{"))) { - state.tokenize = tokenBase; - break; - } - escaped = !escaped && next == "\\"; - } - return ret("quasi", "string-2", stream.current()); - } - var brackets = "([{}])"; - function findFatArrow(stream, state) { - if (state.fatArrowAt) state.fatArrowAt = null; - var arrow = stream.string.indexOf("=>", stream.start); - if (arrow < 0) return; - if (isTS) { - var m = /:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(stream.string.slice(stream.start, arrow)); - if (m) arrow = m.index; - } - var depth = 0, - sawSomething = false; - for (var pos = arrow - 1; pos >= 0; --pos) { - var ch = stream.string.charAt(pos); - var bracket = brackets.indexOf(ch); - if (bracket >= 0 && bracket < 3) { - if (!depth) { - ++pos; - break; - } - if (--depth == 0) { - if (ch == "(") sawSomething = true; - break; - } - } else if (bracket >= 3 && bracket < 6) { - ++depth; - } else if (wordRE.test(ch)) { - sawSomething = true; - } else if (/["'\/`]/.test(ch)) { - for (;; --pos) { - if (pos == 0) return; - var next = stream.string.charAt(pos - 1); - if (next == ch && stream.string.charAt(pos - 2) != "\\") { - pos--; - break; - } - } - } else if (sawSomething && !depth) { - ++pos; - break; - } - } - if (sawSomething && !depth) state.fatArrowAt = pos; - } - var atomicTypes = { - "atom": true, - "number": true, - "variable": true, - "string": true, - "regexp": true, - "this": true, - "import": true, - "jsonld-keyword": true - }; - function JSLexical(indented, column, type2, align, prev, info) { - this.indented = indented; - this.column = column; - this.type = type2; - this.prev = prev; - this.info = info; - if (align != null) this.align = align; - } - function inScope(state, varname) { - if (!trackScope) return false; - for (var v = state.localVars; v; v = v.next) if (v.name == varname) return true; - for (var cx2 = state.context; cx2; cx2 = cx2.prev) { - for (var v = cx2.vars; v; v = v.next) if (v.name == varname) return true; - } - } - function parseJS(state, style, type2, content2, stream) { - var cc = state.cc; - cx.state = state; - cx.stream = stream; - cx.marked = null, cx.cc = cc; - cx.style = style; - if (!state.lexical.hasOwnProperty("align")) state.lexical.align = true; - while (true) { - var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement; - if (combinator(type2, content2)) { - while (cc.length && cc[cc.length - 1].lex) cc.pop()(); - if (cx.marked) return cx.marked; - if (type2 == "variable" && inScope(state, content2)) return "variable-2"; - return style; - } - } - } - var cx = { - state: null, - column: null, - marked: null, - cc: null - }; - function pass() { - for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]); - } - function cont() { - pass.apply(null, arguments); - return true; - } - function inList(name, list) { - for (var v = list; v; v = v.next) if (v.name == name) return true; - return false; - } - function register(varname) { - var state = cx.state; - cx.marked = "def"; - if (!trackScope) return; - if (state.context) { - if (state.lexical.info == "var" && state.context && state.context.block) { - var newContext = registerVarScoped(varname, state.context); - if (newContext != null) { - state.context = newContext; - return; - } - } else if (!inList(varname, state.localVars)) { - state.localVars = new Var(varname, state.localVars); - return; - } - } - if (parserConfig.globalVars && !inList(varname, state.globalVars)) state.globalVars = new Var(varname, state.globalVars); - } - function registerVarScoped(varname, context) { - if (!context) { - return null; - } else if (context.block) { - var inner = registerVarScoped(varname, context.prev); - if (!inner) return null; - if (inner == context.prev) return context; - return new Context(inner, context.vars, true); - } else if (inList(varname, context.vars)) { - return context; - } else { - return new Context(context.prev, new Var(varname, context.vars), false); - } - } - function isModifier(name) { - return name == "public" || name == "private" || name == "protected" || name == "abstract" || name == "readonly"; - } - function Context(prev, vars, block2) { - this.prev = prev; - this.vars = vars; - this.block = block2; - } - function Var(name, next) { - this.name = name; - this.next = next; - } - var defaultVars = new Var("this", new Var("arguments", null)); - function pushcontext() { - cx.state.context = new Context(cx.state.context, cx.state.localVars, false); - cx.state.localVars = defaultVars; - } - function pushblockcontext() { - cx.state.context = new Context(cx.state.context, cx.state.localVars, true); - cx.state.localVars = null; - } - pushcontext.lex = pushblockcontext.lex = true; - function popcontext() { - cx.state.localVars = cx.state.context.vars; - cx.state.context = cx.state.context.prev; - } - popcontext.lex = true; - function pushlex(type2, info) { - var result = function () { - var state = cx.state, - indent = state.indented; - if (state.lexical.type == "stat") indent = state.lexical.indented;else for (var outer = state.lexical; outer && outer.type == ")" && outer.align; outer = outer.prev) indent = outer.indented; - state.lexical = new JSLexical(indent, cx.stream.column(), type2, null, state.lexical, info); - }; - result.lex = true; - return result; - } - function poplex() { - var state = cx.state; - if (state.lexical.prev) { - if (state.lexical.type == ")") state.indented = state.lexical.indented; - state.lexical = state.lexical.prev; - } - } - poplex.lex = true; - function expect(wanted) { - function exp(type2) { - if (type2 == wanted) return cont();else if (wanted == ";" || type2 == "}" || type2 == ")" || type2 == "]") return pass();else return cont(exp); - } - return exp; - } - function statement(type2, value) { - if (type2 == "var") return cont(pushlex("vardef", value), vardef, expect(";"), poplex); - if (type2 == "keyword a") return cont(pushlex("form"), parenExpr, statement, poplex); - if (type2 == "keyword b") return cont(pushlex("form"), statement, poplex); - if (type2 == "keyword d") return cx.stream.match(/^\s*$/, false) ? cont() : cont(pushlex("stat"), maybeexpression, expect(";"), poplex); - if (type2 == "debugger") return cont(expect(";")); - if (type2 == "{") return cont(pushlex("}"), pushblockcontext, block, poplex, popcontext); - if (type2 == ";") return cont(); - if (type2 == "if") { - if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex) cx.state.cc.pop()(); - return cont(pushlex("form"), parenExpr, statement, poplex, maybeelse); - } - if (type2 == "function") return cont(functiondef); - if (type2 == "for") return cont(pushlex("form"), pushblockcontext, forspec, statement, popcontext, poplex); - if (type2 == "class" || isTS && value == "interface") { - cx.marked = "keyword"; - return cont(pushlex("form", type2 == "class" ? type2 : value), className, poplex); - } - if (type2 == "variable") { - if (isTS && value == "declare") { - cx.marked = "keyword"; - return cont(statement); - } else if (isTS && (value == "module" || value == "enum" || value == "type") && cx.stream.match(/^\s*\w/, false)) { - cx.marked = "keyword"; - if (value == "enum") return cont(enumdef);else if (value == "type") return cont(typename, expect("operator"), typeexpr, expect(";"));else return cont(pushlex("form"), pattern, expect("{"), pushlex("}"), block, poplex, poplex); - } else if (isTS && value == "namespace") { - cx.marked = "keyword"; - return cont(pushlex("form"), expression, statement, poplex); - } else if (isTS && value == "abstract") { - cx.marked = "keyword"; - return cont(statement); - } else { - return cont(pushlex("stat"), maybelabel); - } - } - if (type2 == "switch") return cont(pushlex("form"), parenExpr, expect("{"), pushlex("}", "switch"), pushblockcontext, block, poplex, poplex, popcontext); - if (type2 == "case") return cont(expression, expect(":")); - if (type2 == "default") return cont(expect(":")); - if (type2 == "catch") return cont(pushlex("form"), pushcontext, maybeCatchBinding, statement, poplex, popcontext); - if (type2 == "export") return cont(pushlex("stat"), afterExport, poplex); - if (type2 == "import") return cont(pushlex("stat"), afterImport, poplex); - if (type2 == "async") return cont(statement); - if (value == "@") return cont(expression, statement); - return pass(pushlex("stat"), expression, expect(";"), poplex); - } - function maybeCatchBinding(type2) { - if (type2 == "(") return cont(funarg, expect(")")); - } - function expression(type2, value) { - return expressionInner(type2, value, false); - } - function expressionNoComma(type2, value) { - return expressionInner(type2, value, true); - } - function parenExpr(type2) { - if (type2 != "(") return pass(); - return cont(pushlex(")"), maybeexpression, expect(")"), poplex); - } - function expressionInner(type2, value, noComma) { - if (cx.state.fatArrowAt == cx.stream.start) { - var body = noComma ? arrowBodyNoComma : arrowBody; - if (type2 == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, expect("=>"), body, popcontext);else if (type2 == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext); - } - var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma; - if (atomicTypes.hasOwnProperty(type2)) return cont(maybeop); - if (type2 == "function") return cont(functiondef, maybeop); - if (type2 == "class" || isTS && value == "interface") { - cx.marked = "keyword"; - return cont(pushlex("form"), classExpression, poplex); - } - if (type2 == "keyword c" || type2 == "async") return cont(noComma ? expressionNoComma : expression); - if (type2 == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeop); - if (type2 == "operator" || type2 == "spread") return cont(noComma ? expressionNoComma : expression); - if (type2 == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop); - if (type2 == "{") return contCommasep(objprop, "}", null, maybeop); - if (type2 == "quasi") return pass(quasi, maybeop); - if (type2 == "new") return cont(maybeTarget(noComma)); - return cont(); - } - function maybeexpression(type2) { - if (type2.match(/[;\}\)\],]/)) return pass(); - return pass(expression); - } - function maybeoperatorComma(type2, value) { - if (type2 == ",") return cont(maybeexpression); - return maybeoperatorNoComma(type2, value, false); - } - function maybeoperatorNoComma(type2, value, noComma) { - var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma; - var expr = noComma == false ? expression : expressionNoComma; - if (type2 == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext); - if (type2 == "operator") { - if (/\+\+|--/.test(value) || isTS && value == "!") return cont(me); - if (isTS && value == "<" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/, false)) return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, me); - if (value == "?") return cont(expression, expect(":"), expr); - return cont(expr); - } - if (type2 == "quasi") { - return pass(quasi, me); - } - if (type2 == ";") return; - if (type2 == "(") return contCommasep(expressionNoComma, ")", "call", me); - if (type2 == ".") return cont(property, me); - if (type2 == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me); - if (isTS && value == "as") { - cx.marked = "keyword"; - return cont(typeexpr, me); - } - if (type2 == "regexp") { - cx.state.lastType = cx.marked = "operator"; - cx.stream.backUp(cx.stream.pos - cx.stream.start - 1); - return cont(expr); - } - } - function quasi(type2, value) { - if (type2 != "quasi") return pass(); - if (value.slice(value.length - 2) != "${") return cont(quasi); - return cont(maybeexpression, continueQuasi); - } - function continueQuasi(type2) { - if (type2 == "}") { - cx.marked = "string-2"; - cx.state.tokenize = tokenQuasi; - return cont(quasi); - } - } - function arrowBody(type2) { - findFatArrow(cx.stream, cx.state); - return pass(type2 == "{" ? statement : expression); - } - function arrowBodyNoComma(type2) { - findFatArrow(cx.stream, cx.state); - return pass(type2 == "{" ? statement : expressionNoComma); - } - function maybeTarget(noComma) { - return function (type2) { - if (type2 == ".") return cont(noComma ? targetNoComma : target);else if (type2 == "variable" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma);else return pass(noComma ? expressionNoComma : expression); - }; - } - function target(_, value) { - if (value == "target") { - cx.marked = "keyword"; - return cont(maybeoperatorComma); - } - } - function targetNoComma(_, value) { - if (value == "target") { - cx.marked = "keyword"; - return cont(maybeoperatorNoComma); - } - } - function maybelabel(type2) { - if (type2 == ":") return cont(poplex, statement); - return pass(maybeoperatorComma, expect(";"), poplex); - } - function property(type2) { - if (type2 == "variable") { - cx.marked = "property"; - return cont(); - } - } - function objprop(type2, value) { - if (type2 == "async") { - cx.marked = "property"; - return cont(objprop); - } else if (type2 == "variable" || cx.style == "keyword") { - cx.marked = "property"; - if (value == "get" || value == "set") return cont(getterSetter); - var m; - if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\s*:\s*/, false))) cx.state.fatArrowAt = cx.stream.pos + m[0].length; - return cont(afterprop); - } else if (type2 == "number" || type2 == "string") { - cx.marked = jsonldMode ? "property" : cx.style + " property"; - return cont(afterprop); - } else if (type2 == "jsonld-keyword") { - return cont(afterprop); - } else if (isTS && isModifier(value)) { - cx.marked = "keyword"; - return cont(objprop); - } else if (type2 == "[") { - return cont(expression, maybetype, expect("]"), afterprop); - } else if (type2 == "spread") { - return cont(expressionNoComma, afterprop); - } else if (value == "*") { - cx.marked = "keyword"; - return cont(objprop); - } else if (type2 == ":") { - return pass(afterprop); - } - } - function getterSetter(type2) { - if (type2 != "variable") return pass(afterprop); - cx.marked = "property"; - return cont(functiondef); - } - function afterprop(type2) { - if (type2 == ":") return cont(expressionNoComma); - if (type2 == "(") return pass(functiondef); - } - function commasep(what, end, sep) { - function proceed(type2, value) { - if (sep ? sep.indexOf(type2) > -1 : type2 == ",") { - var lex = cx.state.lexical; - if (lex.info == "call") lex.pos = (lex.pos || 0) + 1; - return cont(function (type3, value2) { - if (type3 == end || value2 == end) return pass(); - return pass(what); - }, proceed); - } - if (type2 == end || value == end) return cont(); - if (sep && sep.indexOf(";") > -1) return pass(what); - return cont(expect(end)); - } - return function (type2, value) { - if (type2 == end || value == end) return cont(); - return pass(what, proceed); - }; - } - function contCommasep(what, end, info) { - for (var i = 3; i < arguments.length; i++) cx.cc.push(arguments[i]); - return cont(pushlex(end, info), commasep(what, end), poplex); - } - function block(type2) { - if (type2 == "}") return cont(); - return pass(statement, block); - } - function maybetype(type2, value) { - if (isTS) { - if (type2 == ":") return cont(typeexpr); - if (value == "?") return cont(maybetype); - } - } - function maybetypeOrIn(type2, value) { - if (isTS && (type2 == ":" || value == "in")) return cont(typeexpr); - } - function mayberettype(type2) { - if (isTS && type2 == ":") { - if (cx.stream.match(/^\s*\w+\s+is\b/, false)) return cont(expression, isKW, typeexpr);else return cont(typeexpr); - } - } - function isKW(_, value) { - if (value == "is") { - cx.marked = "keyword"; - return cont(); - } - } - function typeexpr(type2, value) { - if (value == "keyof" || value == "typeof" || value == "infer" || value == "readonly") { - cx.marked = "keyword"; - return cont(value == "typeof" ? expressionNoComma : typeexpr); - } - if (type2 == "variable" || value == "void") { - cx.marked = "type"; - return cont(afterType); - } - if (value == "|" || value == "&") return cont(typeexpr); - if (type2 == "string" || type2 == "number" || type2 == "atom") return cont(afterType); - if (type2 == "[") return cont(pushlex("]"), commasep(typeexpr, "]", ","), poplex, afterType); - if (type2 == "{") return cont(pushlex("}"), typeprops, poplex, afterType); - if (type2 == "(") return cont(commasep(typearg, ")"), maybeReturnType, afterType); - if (type2 == "<") return cont(commasep(typeexpr, ">"), typeexpr); - if (type2 == "quasi") { - return pass(quasiType, afterType); - } - } - function maybeReturnType(type2) { - if (type2 == "=>") return cont(typeexpr); - } - function typeprops(type2) { - if (type2.match(/[\}\)\]]/)) return cont(); - if (type2 == "," || type2 == ";") return cont(typeprops); - return pass(typeprop, typeprops); - } - function typeprop(type2, value) { - if (type2 == "variable" || cx.style == "keyword") { - cx.marked = "property"; - return cont(typeprop); - } else if (value == "?" || type2 == "number" || type2 == "string") { - return cont(typeprop); - } else if (type2 == ":") { - return cont(typeexpr); - } else if (type2 == "[") { - return cont(expect("variable"), maybetypeOrIn, expect("]"), typeprop); - } else if (type2 == "(") { - return pass(functiondecl, typeprop); - } else if (!type2.match(/[;\}\)\],]/)) { - return cont(); - } - } - function quasiType(type2, value) { - if (type2 != "quasi") return pass(); - if (value.slice(value.length - 2) != "${") return cont(quasiType); - return cont(typeexpr, continueQuasiType); - } - function continueQuasiType(type2) { - if (type2 == "}") { - cx.marked = "string-2"; - cx.state.tokenize = tokenQuasi; - return cont(quasiType); - } - } - function typearg(type2, value) { - if (type2 == "variable" && cx.stream.match(/^\s*[?:]/, false) || value == "?") return cont(typearg); - if (type2 == ":") return cont(typeexpr); - if (type2 == "spread") return cont(typearg); - return pass(typeexpr); - } - function afterType(type2, value) { - if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType); - if (value == "|" || type2 == "." || value == "&") return cont(typeexpr); - if (type2 == "[") return cont(typeexpr, expect("]"), afterType); - if (value == "extends" || value == "implements") { - cx.marked = "keyword"; - return cont(typeexpr); - } - if (value == "?") return cont(typeexpr, expect(":"), typeexpr); - } - function maybeTypeArgs(_, value) { - if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType); - } - function typeparam() { - return pass(typeexpr, maybeTypeDefault); - } - function maybeTypeDefault(_, value) { - if (value == "=") return cont(typeexpr); - } - function vardef(_, value) { - if (value == "enum") { - cx.marked = "keyword"; - return cont(enumdef); - } - return pass(pattern, maybetype, maybeAssign, vardefCont); - } - function pattern(type2, value) { - if (isTS && isModifier(value)) { - cx.marked = "keyword"; - return cont(pattern); - } - if (type2 == "variable") { - register(value); - return cont(); - } - if (type2 == "spread") return cont(pattern); - if (type2 == "[") return contCommasep(eltpattern, "]"); - if (type2 == "{") return contCommasep(proppattern, "}"); - } - function proppattern(type2, value) { - if (type2 == "variable" && !cx.stream.match(/^\s*:/, false)) { - register(value); - return cont(maybeAssign); - } - if (type2 == "variable") cx.marked = "property"; - if (type2 == "spread") return cont(pattern); - if (type2 == "}") return pass(); - if (type2 == "[") return cont(expression, expect("]"), expect(":"), proppattern); - return cont(expect(":"), pattern, maybeAssign); - } - function eltpattern() { - return pass(pattern, maybeAssign); - } - function maybeAssign(_type, value) { - if (value == "=") return cont(expressionNoComma); - } - function vardefCont(type2) { - if (type2 == ",") return cont(vardef); - } - function maybeelse(type2, value) { - if (type2 == "keyword b" && value == "else") return cont(pushlex("form", "else"), statement, poplex); - } - function forspec(type2, value) { - if (value == "await") return cont(forspec); - if (type2 == "(") return cont(pushlex(")"), forspec1, poplex); - } - function forspec1(type2) { - if (type2 == "var") return cont(vardef, forspec2); - if (type2 == "variable") return cont(forspec2); - return pass(forspec2); - } - function forspec2(type2, value) { - if (type2 == ")") return cont(); - if (type2 == ";") return cont(forspec2); - if (value == "in" || value == "of") { - cx.marked = "keyword"; - return cont(expression, forspec2); - } - return pass(expression, forspec2); - } - function functiondef(type2, value) { - if (value == "*") { - cx.marked = "keyword"; - return cont(functiondef); - } - if (type2 == "variable") { - register(value); - return cont(functiondef); - } - if (type2 == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, mayberettype, statement, popcontext); - if (isTS && value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, functiondef); - } - function functiondecl(type2, value) { - if (value == "*") { - cx.marked = "keyword"; - return cont(functiondecl); - } - if (type2 == "variable") { - register(value); - return cont(functiondecl); - } - if (type2 == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, mayberettype, popcontext); - if (isTS && value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, functiondecl); - } - function typename(type2, value) { - if (type2 == "keyword" || type2 == "variable") { - cx.marked = "type"; - return cont(typename); - } else if (value == "<") { - return cont(pushlex(">"), commasep(typeparam, ">"), poplex); - } - } - function funarg(type2, value) { - if (value == "@") cont(expression, funarg); - if (type2 == "spread") return cont(funarg); - if (isTS && isModifier(value)) { - cx.marked = "keyword"; - return cont(funarg); - } - if (isTS && type2 == "this") return cont(maybetype, maybeAssign); - return pass(pattern, maybetype, maybeAssign); - } - function classExpression(type2, value) { - if (type2 == "variable") return className(type2, value); - return classNameAfter(type2, value); - } - function className(type2, value) { - if (type2 == "variable") { - register(value); - return cont(classNameAfter); - } - } - function classNameAfter(type2, value) { - if (value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, classNameAfter); - if (value == "extends" || value == "implements" || isTS && type2 == ",") { - if (value == "implements") cx.marked = "keyword"; - return cont(isTS ? typeexpr : expression, classNameAfter); - } - if (type2 == "{") return cont(pushlex("}"), classBody, poplex); - } - function classBody(type2, value) { - if (type2 == "async" || type2 == "variable" && (value == "static" || value == "get" || value == "set" || isTS && isModifier(value)) && cx.stream.match(/^\s+[\w$\xa1-\uffff]/, false)) { - cx.marked = "keyword"; - return cont(classBody); - } - if (type2 == "variable" || cx.style == "keyword") { - cx.marked = "property"; - return cont(classfield, classBody); - } - if (type2 == "number" || type2 == "string") return cont(classfield, classBody); - if (type2 == "[") return cont(expression, maybetype, expect("]"), classfield, classBody); - if (value == "*") { - cx.marked = "keyword"; - return cont(classBody); - } - if (isTS && type2 == "(") return pass(functiondecl, classBody); - if (type2 == ";" || type2 == ",") return cont(classBody); - if (type2 == "}") return cont(); - if (value == "@") return cont(expression, classBody); - } - function classfield(type2, value) { - if (value == "!") return cont(classfield); - if (value == "?") return cont(classfield); - if (type2 == ":") return cont(typeexpr, maybeAssign); - if (value == "=") return cont(expressionNoComma); - var context = cx.state.lexical.prev, - isInterface = context && context.info == "interface"; - return pass(isInterface ? functiondecl : functiondef); - } - function afterExport(type2, value) { - if (value == "*") { - cx.marked = "keyword"; - return cont(maybeFrom, expect(";")); - } - if (value == "default") { - cx.marked = "keyword"; - return cont(expression, expect(";")); - } - if (type2 == "{") return cont(commasep(exportField, "}"), maybeFrom, expect(";")); - return pass(statement); - } - function exportField(type2, value) { - if (value == "as") { - cx.marked = "keyword"; - return cont(expect("variable")); - } - if (type2 == "variable") return pass(expressionNoComma, exportField); - } - function afterImport(type2) { - if (type2 == "string") return cont(); - if (type2 == "(") return pass(expression); - if (type2 == ".") return pass(maybeoperatorComma); - return pass(importSpec, maybeMoreImports, maybeFrom); - } - function importSpec(type2, value) { - if (type2 == "{") return contCommasep(importSpec, "}"); - if (type2 == "variable") register(value); - if (value == "*") cx.marked = "keyword"; - return cont(maybeAs); - } - function maybeMoreImports(type2) { - if (type2 == ",") return cont(importSpec, maybeMoreImports); - } - function maybeAs(_type, value) { - if (value == "as") { - cx.marked = "keyword"; - return cont(importSpec); - } - } - function maybeFrom(_type, value) { - if (value == "from") { - cx.marked = "keyword"; - return cont(expression); - } - } - function arrayLiteral(type2) { - if (type2 == "]") return cont(); - return pass(commasep(expressionNoComma, "]")); - } - function enumdef() { - return pass(pushlex("form"), pattern, expect("{"), pushlex("}"), commasep(enummember, "}"), poplex, poplex); - } - function enummember() { - return pass(pattern, maybeAssign); - } - function isContinuedStatement(state, textAfter) { - return state.lastType == "operator" || state.lastType == "," || isOperatorChar.test(textAfter.charAt(0)) || /[,.]/.test(textAfter.charAt(0)); - } - function expressionAllowed(stream, state, backUp) { - return state.tokenize == tokenBase && /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(state.lastType) || state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))); - } - return { - startState: function (basecolumn) { - var state = { - tokenize: tokenBase, - lastType: "sof", - cc: [], - lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false), - localVars: parserConfig.localVars, - context: parserConfig.localVars && new Context(null, null, false), - indented: basecolumn || 0 - }; - if (parserConfig.globalVars && typeof parserConfig.globalVars == "object") state.globalVars = parserConfig.globalVars; - return state; - }, - token: function (stream, state) { - if (stream.sol()) { - if (!state.lexical.hasOwnProperty("align")) state.lexical.align = false; - state.indented = stream.indentation(); - findFatArrow(stream, state); - } - if (state.tokenize != tokenComment && stream.eatSpace()) return null; - var style = state.tokenize(stream, state); - if (type == "comment") return style; - state.lastType = type == "operator" && (content == "++" || content == "--") ? "incdec" : type; - return parseJS(state, style, type, content, stream); - }, - indent: function (state, textAfter) { - if (state.tokenize == tokenComment || state.tokenize == tokenQuasi) return CodeMirror.Pass; - if (state.tokenize != tokenBase) return 0; - var firstChar = textAfter && textAfter.charAt(0), - lexical = state.lexical, - top; - if (!/^\s*else\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) { - var c = state.cc[i]; - if (c == poplex) lexical = lexical.prev;else if (c != maybeelse && c != popcontext) break; - } - while ((lexical.type == "stat" || lexical.type == "form") && (firstChar == "}" || (top = state.cc[state.cc.length - 1]) && (top == maybeoperatorComma || top == maybeoperatorNoComma) && !/^[,\.=+\-*:?[\(]/.test(textAfter))) lexical = lexical.prev; - if (statementIndent && lexical.type == ")" && lexical.prev.type == "stat") lexical = lexical.prev; - var type2 = lexical.type, - closing = firstChar == type2; - if (type2 == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info.length + 1 : 0);else if (type2 == "form" && firstChar == "{") return lexical.indented;else if (type2 == "form") return lexical.indented + indentUnit;else if (type2 == "stat") return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);else if (lexical.info == "switch" && !closing && parserConfig.doubleIndentSwitch != false) return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit);else if (lexical.align) return lexical.column + (closing ? 0 : 1);else return lexical.indented + (closing ? 0 : indentUnit); - }, - electricInput: /^\s*(?:case .*?:|default:|\{|\})$/, - blockCommentStart: jsonMode ? null : "/*", - blockCommentEnd: jsonMode ? null : "*/", - blockCommentContinue: jsonMode ? null : " * ", - lineComment: jsonMode ? null : "//", - fold: "brace", - closeBrackets: "()[]{}''\"\"``", - helperType: jsonMode ? "json" : "javascript", - jsonldMode, - jsonMode, - expressionAllowed, - skipExpression: function (state) { - parseJS(state, "atom", "atom", "true", new CodeMirror.StringStream("", 2, null)); - } - }; - }); - CodeMirror.registerHelper("wordChars", "javascript", /[\w$]/); - CodeMirror.defineMIME("text/javascript", "javascript"); - CodeMirror.defineMIME("text/ecmascript", "javascript"); - CodeMirror.defineMIME("application/javascript", "javascript"); - CodeMirror.defineMIME("application/x-javascript", "javascript"); - CodeMirror.defineMIME("application/ecmascript", "javascript"); - CodeMirror.defineMIME("application/json", { - name: "javascript", - json: true - }); - CodeMirror.defineMIME("application/x-json", { - name: "javascript", - json: true - }); - CodeMirror.defineMIME("application/manifest+json", { - name: "javascript", - json: true - }); - CodeMirror.defineMIME("application/ld+json", { - name: "javascript", - jsonld: true - }); - CodeMirror.defineMIME("text/typescript", { - name: "javascript", - typescript: true - }); - CodeMirror.defineMIME("application/typescript", { - name: "javascript", - typescript: true - }); - }); -})(); -var javascriptExports = javascript$2.exports; -const javascript = /* @__PURE__ */codemirror.getDefaultExportFromCjs(javascriptExports); -const javascript$1 = /* @__PURE__ */_mergeNamespaces({ - __proto__: null, - default: javascript -}, [javascriptExports]); -exports.javascript = javascript$1; - -/***/ }), - -/***/ "../../graphiql-react/dist/jump-to-line.cjs.js": -/*!*****************************************************!*\ - !*** ../../graphiql-react/dist/jump-to-line.cjs.js ***! - \*****************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -const dialog = __webpack_require__(/*! ./dialog.cjs.js */ "../../graphiql-react/dist/dialog.cjs.js"); -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { - value: "Module" - })); -} -var jumpToLine$2 = { - exports: {} -}; -(function (module2, exports2) { - (function (mod) { - mod(codemirror.requireCodemirror(), dialog.dialogExports); - })(function (CodeMirror) { - CodeMirror.defineOption("search", { - bottom: false - }); - function dialog2(cm, text, shortText, deflt, f) { - if (cm.openDialog) cm.openDialog(text, f, { - value: deflt, - selectValueOnOpen: true, - bottom: cm.options.search.bottom - });else f(prompt(shortText, deflt)); - } - function getJumpDialog(cm) { - return cm.phrase("Jump to line:") + ' ' + cm.phrase("(Use line:column or scroll% syntax)") + ""; - } - function interpretLine(cm, string) { - var num = Number(string); - if (/^[-+]/.test(string)) return cm.getCursor().line + num;else return num - 1; - } - CodeMirror.commands.jumpToLine = function (cm) { - var cur = cm.getCursor(); - dialog2(cm, getJumpDialog(cm), cm.phrase("Jump to line:"), cur.line + 1 + ":" + cur.ch, function (posStr) { - if (!posStr) return; - var match; - if (match = /^\s*([\+\-]?\d+)\s*\:\s*(\d+)\s*$/.exec(posStr)) { - cm.setCursor(interpretLine(cm, match[1]), Number(match[2])); - } else if (match = /^\s*([\+\-]?\d+(\.\d+)?)\%\s*/.exec(posStr)) { - var line = Math.round(cm.lineCount() * Number(match[1]) / 100); - if (/^[-+]/.test(match[1])) line = cur.line + line + 1; - cm.setCursor(line - 1, cur.ch); - } else if (match = /^\s*\:?\s*([\+\-]?\d+)\s*/.exec(posStr)) { - cm.setCursor(interpretLine(cm, match[1]), cur.ch); - } - }); - }; - CodeMirror.keyMap["default"]["Alt-G"] = "jumpToLine"; - }); -})(); -var jumpToLineExports = jumpToLine$2.exports; -const jumpToLine = /* @__PURE__ */codemirror.getDefaultExportFromCjs(jumpToLineExports); -const jumpToLine$1 = /* @__PURE__ */_mergeNamespaces({ - __proto__: null, - default: jumpToLine -}, [jumpToLineExports]); -exports.jumpToLine = jumpToLine$1; - -/***/ }), - -/***/ "../../graphiql-react/dist/jump.cjs.js": -/*!*********************************************!*\ - !*** ../../graphiql-react/dist/jump.cjs.js ***! - \*********************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs.js */ "../../graphiql-react/dist/codemirror.cjs.js"); -const SchemaReference = __webpack_require__(/*! ./SchemaReference.cjs.js */ "../../graphiql-react/dist/SchemaReference.cjs.js"); -codemirror.CodeMirror.defineOption("jump", false, (cm, options, old) => { - if (old && old !== codemirror.CodeMirror.Init) { - const oldOnMouseOver = cm.state.jump.onMouseOver; - codemirror.CodeMirror.off(cm.getWrapperElement(), "mouseover", oldOnMouseOver); - const oldOnMouseOut = cm.state.jump.onMouseOut; - codemirror.CodeMirror.off(cm.getWrapperElement(), "mouseout", oldOnMouseOut); - codemirror.CodeMirror.off(document, "keydown", cm.state.jump.onKeyDown); - delete cm.state.jump; - } - if (options) { - const state = cm.state.jump = { - options, - onMouseOver: onMouseOver.bind(null, cm), - onMouseOut: onMouseOut.bind(null, cm), - onKeyDown: onKeyDown.bind(null, cm) - }; - codemirror.CodeMirror.on(cm.getWrapperElement(), "mouseover", state.onMouseOver); - codemirror.CodeMirror.on(cm.getWrapperElement(), "mouseout", state.onMouseOut); - codemirror.CodeMirror.on(document, "keydown", state.onKeyDown); - } -}); -function onMouseOver(cm, event) { - const target = event.target || event.srcElement; - if (!(target instanceof HTMLElement)) { - return; - } - if ((target === null || target === void 0 ? void 0 : target.nodeName) !== "SPAN") { - return; - } - const box = target.getBoundingClientRect(); - const cursor = { - left: (box.left + box.right) / 2, - top: (box.top + box.bottom) / 2 - }; - cm.state.jump.cursor = cursor; - if (cm.state.jump.isHoldingModifier) { - enableJumpMode(cm); - } -} -function onMouseOut(cm) { - if (!cm.state.jump.isHoldingModifier && cm.state.jump.cursor) { - cm.state.jump.cursor = null; - return; - } - if (cm.state.jump.isHoldingModifier && cm.state.jump.marker) { - disableJumpMode(cm); - } -} -function onKeyDown(cm, event) { - if (cm.state.jump.isHoldingModifier || !isJumpModifier(event.key)) { - return; - } - cm.state.jump.isHoldingModifier = true; - if (cm.state.jump.cursor) { - enableJumpMode(cm); - } - const onKeyUp = upEvent => { - if (upEvent.code !== event.code) { - return; - } - cm.state.jump.isHoldingModifier = false; - if (cm.state.jump.marker) { - disableJumpMode(cm); - } - codemirror.CodeMirror.off(document, "keyup", onKeyUp); - codemirror.CodeMirror.off(document, "click", onClick); - cm.off("mousedown", onMouseDown); - }; - const onClick = clickEvent => { - const { - destination, - options - } = cm.state.jump; - if (destination) { - options.onClick(destination, clickEvent); - } - }; - const onMouseDown = (_, downEvent) => { - if (cm.state.jump.destination) { - downEvent.codemirrorIgnore = true; - } - }; - codemirror.CodeMirror.on(document, "keyup", onKeyUp); - codemirror.CodeMirror.on(document, "click", onClick); - cm.on("mousedown", onMouseDown); -} -const isMac = typeof navigator !== "undefined" && navigator.userAgent.includes("Mac"); -function isJumpModifier(key) { - return key === (isMac ? "Meta" : "Control"); -} -function enableJumpMode(cm) { - if (cm.state.jump.marker) { - return; - } - const { - cursor, - options - } = cm.state.jump; - const pos = cm.coordsChar(cursor); - const token = cm.getTokenAt(pos, true); - const getDestination = options.getDestination || cm.getHelper(pos, "jump"); - if (getDestination) { - const destination = getDestination(token, options, cm); - if (destination) { - const marker = cm.markText({ - line: pos.line, - ch: token.start - }, { - line: pos.line, - ch: token.end - }, { - className: "CodeMirror-jump-token" - }); - cm.state.jump.marker = marker; - cm.state.jump.destination = destination; - } - } -} -function disableJumpMode(cm) { - const { - marker - } = cm.state.jump; - cm.state.jump.marker = null; - cm.state.jump.destination = null; - marker.clear(); -} -codemirror.CodeMirror.registerHelper("jump", "graphql", (token, options) => { - if (!options.schema || !options.onClick || !token.state) { - return; - } - const { - state - } = token; - const { - kind, - step - } = state; - const typeInfo = SchemaReference.getTypeInfo(options.schema, state); - if (kind === "Field" && step === 0 && typeInfo.fieldDef || kind === "AliasedField" && step === 2 && typeInfo.fieldDef) { - return SchemaReference.getFieldReference(typeInfo); - } - if (kind === "Directive" && step === 1 && typeInfo.directiveDef) { - return SchemaReference.getDirectiveReference(typeInfo); - } - if (kind === "Argument" && step === 0 && typeInfo.argDef) { - return SchemaReference.getArgumentReference(typeInfo); - } - if (kind === "EnumValue" && typeInfo.enumValue) { - return SchemaReference.getEnumValueReference(typeInfo); - } - if (kind === "NamedType" && typeInfo.type) { - return SchemaReference.getTypeReference(typeInfo); - } -}); - -/***/ }), - -/***/ "../../graphiql-react/dist/lint.cjs.js": -/*!*********************************************!*\ - !*** ../../graphiql-react/dist/lint.cjs.js ***! - \*********************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { - value: "Module" - })); -} -var lint$2 = { - exports: {} -}; -(function (module2, exports2) { - (function (mod) { - mod(codemirror.requireCodemirror()); - })(function (CodeMirror) { - var GUTTER_ID = "CodeMirror-lint-markers"; - var LINT_LINE_ID = "CodeMirror-lint-line-"; - function showTooltip(cm, e, content) { - var tt = document.createElement("div"); - tt.className = "CodeMirror-lint-tooltip cm-s-" + cm.options.theme; - tt.appendChild(content.cloneNode(true)); - if (cm.state.lint.options.selfContain) cm.getWrapperElement().appendChild(tt);else document.body.appendChild(tt); - function position(e2) { - if (!tt.parentNode) return CodeMirror.off(document, "mousemove", position); - tt.style.top = Math.max(0, e2.clientY - tt.offsetHeight - 5) + "px"; - tt.style.left = e2.clientX + 5 + "px"; - } - CodeMirror.on(document, "mousemove", position); - position(e); - if (tt.style.opacity != null) tt.style.opacity = 1; - return tt; - } - function rm(elt) { - if (elt.parentNode) elt.parentNode.removeChild(elt); - } - function hideTooltip(tt) { - if (!tt.parentNode) return; - if (tt.style.opacity == null) rm(tt); - tt.style.opacity = 0; - setTimeout(function () { - rm(tt); - }, 600); - } - function showTooltipFor(cm, e, content, node) { - var tooltip = showTooltip(cm, e, content); - function hide() { - CodeMirror.off(node, "mouseout", hide); - if (tooltip) { - hideTooltip(tooltip); - tooltip = null; - } - } - var poll = setInterval(function () { - if (tooltip) for (var n = node;; n = n.parentNode) { - if (n && n.nodeType == 11) n = n.host; - if (n == document.body) return; - if (!n) { - hide(); - break; - } - } - if (!tooltip) return clearInterval(poll); - }, 400); - CodeMirror.on(node, "mouseout", hide); - } - function LintState(cm, conf, hasGutter) { - this.marked = []; - if (conf instanceof Function) conf = { - getAnnotations: conf - }; - if (!conf || conf === true) conf = {}; - this.options = {}; - this.linterOptions = conf.options || {}; - for (var prop in defaults) this.options[prop] = defaults[prop]; - for (var prop in conf) { - if (defaults.hasOwnProperty(prop)) { - if (conf[prop] != null) this.options[prop] = conf[prop]; - } else if (!conf.options) { - this.linterOptions[prop] = conf[prop]; - } - } - this.timeout = null; - this.hasGutter = hasGutter; - this.onMouseOver = function (e) { - onMouseOver(cm, e); - }; - this.waitingFor = 0; - } - var defaults = { - highlightLines: false, - tooltips: true, - delay: 500, - lintOnChange: true, - getAnnotations: null, - async: false, - selfContain: null, - formatAnnotation: null, - onUpdateLinting: null - }; - function clearMarks(cm) { - var state = cm.state.lint; - if (state.hasGutter) cm.clearGutter(GUTTER_ID); - if (state.options.highlightLines) clearErrorLines(cm); - for (var i = 0; i < state.marked.length; ++i) state.marked[i].clear(); - state.marked.length = 0; - } - function clearErrorLines(cm) { - cm.eachLine(function (line) { - var has = line.wrapClass && /\bCodeMirror-lint-line-\w+\b/.exec(line.wrapClass); - if (has) cm.removeLineClass(line, "wrap", has[0]); - }); - } - function makeMarker(cm, labels, severity, multiple, tooltips) { - var marker = document.createElement("div"), - inner = marker; - marker.className = "CodeMirror-lint-marker CodeMirror-lint-marker-" + severity; - if (multiple) { - inner = marker.appendChild(document.createElement("div")); - inner.className = "CodeMirror-lint-marker CodeMirror-lint-marker-multiple"; - } - if (tooltips != false) CodeMirror.on(inner, "mouseover", function (e) { - showTooltipFor(cm, e, labels, inner); - }); - return marker; - } - function getMaxSeverity(a, b) { - if (a == "error") return a;else return b; - } - function groupByLine(annotations) { - var lines = []; - for (var i = 0; i < annotations.length; ++i) { - var ann = annotations[i], - line = ann.from.line; - (lines[line] || (lines[line] = [])).push(ann); - } - return lines; - } - function annotationTooltip(ann) { - var severity = ann.severity; - if (!severity) severity = "error"; - var tip = document.createElement("div"); - tip.className = "CodeMirror-lint-message CodeMirror-lint-message-" + severity; - if (typeof ann.messageHTML != "undefined") { - tip.innerHTML = ann.messageHTML; - } else { - tip.appendChild(document.createTextNode(ann.message)); - } - return tip; - } - function lintAsync(cm, getAnnotations) { - var state = cm.state.lint; - var id = ++state.waitingFor; - function abort() { - id = -1; - cm.off("change", abort); - } - cm.on("change", abort); - getAnnotations(cm.getValue(), function (annotations, arg2) { - cm.off("change", abort); - if (state.waitingFor != id) return; - if (arg2 && annotations instanceof CodeMirror) annotations = arg2; - cm.operation(function () { - updateLinting(cm, annotations); - }); - }, state.linterOptions, cm); - } - function startLinting(cm) { - var state = cm.state.lint; - if (!state) return; - var options = state.options; - var getAnnotations = options.getAnnotations || cm.getHelper(CodeMirror.Pos(0, 0), "lint"); - if (!getAnnotations) return; - if (options.async || getAnnotations.async) { - lintAsync(cm, getAnnotations); - } else { - var annotations = getAnnotations(cm.getValue(), state.linterOptions, cm); - if (!annotations) return; - if (annotations.then) annotations.then(function (issues) { - cm.operation(function () { - updateLinting(cm, issues); - }); - });else cm.operation(function () { - updateLinting(cm, annotations); - }); - } - } - function updateLinting(cm, annotationsNotSorted) { - var state = cm.state.lint; - if (!state) return; - var options = state.options; - clearMarks(cm); - var annotations = groupByLine(annotationsNotSorted); - for (var line = 0; line < annotations.length; ++line) { - var anns = annotations[line]; - if (!anns) continue; - var message = []; - anns = anns.filter(function (item) { - return message.indexOf(item.message) > -1 ? false : message.push(item.message); - }); - var maxSeverity = null; - var tipLabel = state.hasGutter && document.createDocumentFragment(); - for (var i = 0; i < anns.length; ++i) { - var ann = anns[i]; - var severity = ann.severity; - if (!severity) severity = "error"; - maxSeverity = getMaxSeverity(maxSeverity, severity); - if (options.formatAnnotation) ann = options.formatAnnotation(ann); - if (state.hasGutter) tipLabel.appendChild(annotationTooltip(ann)); - if (ann.to) state.marked.push(cm.markText(ann.from, ann.to, { - className: "CodeMirror-lint-mark CodeMirror-lint-mark-" + severity, - __annotation: ann - })); - } - if (state.hasGutter) cm.setGutterMarker(line, GUTTER_ID, makeMarker(cm, tipLabel, maxSeverity, annotations[line].length > 1, options.tooltips)); - if (options.highlightLines) cm.addLineClass(line, "wrap", LINT_LINE_ID + maxSeverity); - } - if (options.onUpdateLinting) options.onUpdateLinting(annotationsNotSorted, annotations, cm); - } - function onChange(cm) { - var state = cm.state.lint; - if (!state) return; - clearTimeout(state.timeout); - state.timeout = setTimeout(function () { - startLinting(cm); - }, state.options.delay); - } - function popupTooltips(cm, annotations, e) { - var target = e.target || e.srcElement; - var tooltip = document.createDocumentFragment(); - for (var i = 0; i < annotations.length; i++) { - var ann = annotations[i]; - tooltip.appendChild(annotationTooltip(ann)); - } - showTooltipFor(cm, e, tooltip, target); - } - function onMouseOver(cm, e) { - var target = e.target || e.srcElement; - if (!/\bCodeMirror-lint-mark-/.test(target.className)) return; - var box = target.getBoundingClientRect(), - x = (box.left + box.right) / 2, - y = (box.top + box.bottom) / 2; - var spans = cm.findMarksAt(cm.coordsChar({ - left: x, - top: y - }, "client")); - var annotations = []; - for (var i = 0; i < spans.length; ++i) { - var ann = spans[i].__annotation; - if (ann) annotations.push(ann); - } - if (annotations.length) popupTooltips(cm, annotations, e); - } - CodeMirror.defineOption("lint", false, function (cm, val, old) { - if (old && old != CodeMirror.Init) { - clearMarks(cm); - if (cm.state.lint.options.lintOnChange !== false) cm.off("change", onChange); - CodeMirror.off(cm.getWrapperElement(), "mouseover", cm.state.lint.onMouseOver); - clearTimeout(cm.state.lint.timeout); - delete cm.state.lint; - } - if (val) { - var gutters = cm.getOption("gutters"), - hasLintGutter = false; - for (var i = 0; i < gutters.length; ++i) if (gutters[i] == GUTTER_ID) hasLintGutter = true; - var state = cm.state.lint = new LintState(cm, val, hasLintGutter); - if (state.options.lintOnChange) cm.on("change", onChange); - if (state.options.tooltips != false && state.options.tooltips != "gutter") CodeMirror.on(cm.getWrapperElement(), "mouseover", state.onMouseOver); - startLinting(cm); - } - }); - CodeMirror.defineExtension("performLint", function () { - startLinting(this); - }); - }); -})(); -var lintExports = lint$2.exports; -const lint = /* @__PURE__ */codemirror.getDefaultExportFromCjs(lintExports); -const lint$1 = /* @__PURE__ */_mergeNamespaces({ - __proto__: null, - default: lint -}, [lintExports]); -exports.lint = lint$1; - -/***/ }), - -/***/ "../../graphiql-react/dist/lint.cjs2.js": -/*!**********************************************!*\ - !*** ../../graphiql-react/dist/lint.cjs2.js ***! - \**********************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs.js */ "../../graphiql-react/dist/codemirror.cjs.js"); -const graphqlLanguageService = __webpack_require__(/*! graphql-language-service */ "../../graphql-language-service/esm/index.js"); -const SEVERITY = ["error", "warning", "information", "hint"]; -const TYPE = { - "GraphQL: Validation": "validation", - "GraphQL: Deprecation": "deprecation", - "GraphQL: Syntax": "syntax" -}; -codemirror.CodeMirror.registerHelper("lint", "graphql", (text, options) => { - const { - schema, - validationRules, - externalFragments - } = options; - const rawResults = graphqlLanguageService.getDiagnostics(text, schema, validationRules, void 0, externalFragments); - const results = rawResults.map(error => ({ - message: error.message, - severity: error.severity ? SEVERITY[error.severity - 1] : SEVERITY[0], - type: error.source ? TYPE[error.source] : void 0, - from: codemirror.CodeMirror.Pos(error.range.start.line, error.range.start.character), - to: codemirror.CodeMirror.Pos(error.range.end.line, error.range.end.character) - })); - return results; -}); - -/***/ }), - -/***/ "../../graphiql-react/dist/lint.cjs3.js": -/*!**********************************************!*\ - !*** ../../graphiql-react/dist/lint.cjs3.js ***! - \**********************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs.js */ "../../graphiql-react/dist/codemirror.cjs.js"); -const graphql = __webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs"); -function jsonParse(str) { - string = str; - strLen = str.length; - start = end = lastEnd = -1; - ch(); - lex(); - const ast = parseObj(); - expect("EOF"); - return ast; -} -let string; -let strLen; -let start; -let end; -let lastEnd; -let code; -let kind; -function parseObj() { - const nodeStart = start; - const members = []; - expect("{"); - if (!skip("}")) { - do { - members.push(parseMember()); - } while (skip(",")); - expect("}"); - } - return { - kind: "Object", - start: nodeStart, - end: lastEnd, - members - }; -} -function parseMember() { - const nodeStart = start; - const key = kind === "String" ? curToken() : null; - expect("String"); - expect(":"); - const value = parseVal(); - return { - kind: "Member", - start: nodeStart, - end: lastEnd, - key, - value - }; -} -function parseArr() { - const nodeStart = start; - const values = []; - expect("["); - if (!skip("]")) { - do { - values.push(parseVal()); - } while (skip(",")); - expect("]"); - } - return { - kind: "Array", - start: nodeStart, - end: lastEnd, - values - }; -} -function parseVal() { - switch (kind) { - case "[": - return parseArr(); - case "{": - return parseObj(); - case "String": - case "Number": - case "Boolean": - case "Null": - const token = curToken(); - lex(); - return token; - } - expect("Value"); -} -function curToken() { - return { - kind, - start, - end, - value: JSON.parse(string.slice(start, end)) - }; -} -function expect(str) { - if (kind === str) { - lex(); - return; - } - let found; - if (kind === "EOF") { - found = "[end of file]"; - } else if (end - start > 1) { - found = "`" + string.slice(start, end) + "`"; - } else { - const match = string.slice(start).match(/^.+?\b/); - found = "`" + (match ? match[0] : string[start]) + "`"; - } - throw syntaxError(`Expected ${str} but found ${found}.`); -} -class JSONSyntaxError extends Error { - constructor(message, position) { - super(message); - this.position = position; - } -} -function syntaxError(message) { - return new JSONSyntaxError(message, { - start, - end - }); -} -function skip(k) { - if (kind === k) { - lex(); - return true; - } -} -function ch() { - if (end < strLen) { - end++; - code = end === strLen ? 0 : string.charCodeAt(end); - } - return code; -} -function lex() { - lastEnd = end; - while (code === 9 || code === 10 || code === 13 || code === 32) { - ch(); - } - if (code === 0) { - kind = "EOF"; - return; - } - start = end; - switch (code) { - case 34: - kind = "String"; - return readString(); - case 45: - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - kind = "Number"; - return readNumber(); - case 102: - if (string.slice(start, start + 5) !== "false") { - break; - } - end += 4; - ch(); - kind = "Boolean"; - return; - case 110: - if (string.slice(start, start + 4) !== "null") { - break; - } - end += 3; - ch(); - kind = "Null"; - return; - case 116: - if (string.slice(start, start + 4) !== "true") { - break; - } - end += 3; - ch(); - kind = "Boolean"; - return; - } - kind = string[start]; - ch(); -} -function readString() { - ch(); - while (code !== 34 && code > 31) { - if (code === 92) { - code = ch(); - switch (code) { - case 34: - case 47: - case 92: - case 98: - case 102: - case 110: - case 114: - case 116: - ch(); - break; - case 117: - ch(); - readHex(); - readHex(); - readHex(); - readHex(); - break; - default: - throw syntaxError("Bad character escape sequence."); - } - } else if (end === strLen) { - throw syntaxError("Unterminated string."); - } else { - ch(); - } - } - if (code === 34) { - ch(); - return; - } - throw syntaxError("Unterminated string."); -} -function readHex() { - if (code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102) { - return ch(); - } - throw syntaxError("Expected hexadecimal digit."); -} -function readNumber() { - if (code === 45) { - ch(); - } - if (code === 48) { - ch(); - } else { - readDigits(); - } - if (code === 46) { - ch(); - readDigits(); - } - if (code === 69 || code === 101) { - code = ch(); - if (code === 43 || code === 45) { - ch(); - } - readDigits(); - } -} -function readDigits() { - if (code < 48 || code > 57) { - throw syntaxError("Expected decimal digit."); - } - do { - ch(); - } while (code >= 48 && code <= 57); -} -codemirror.CodeMirror.registerHelper("lint", "graphql-variables", (text, options, editor) => { - if (!text) { - return []; - } - let ast; - try { - ast = jsonParse(text); - } catch (error) { - if (error instanceof JSONSyntaxError) { - return [lintError(editor, error.position, error.message)]; - } - throw error; - } - const { - variableToType - } = options; - if (!variableToType) { - return []; - } - return validateVariables(editor, variableToType, ast); -}); -function validateVariables(editor, variableToType, variablesAST) { - var _a; - const errors = []; - for (const member of variablesAST.members) { - if (member) { - const variableName = (_a = member.key) === null || _a === void 0 ? void 0 : _a.value; - const type = variableToType[variableName]; - if (type) { - for (const [node, message] of validateValue(type, member.value)) { - errors.push(lintError(editor, node, message)); - } - } else { - errors.push(lintError(editor, member.key, `Variable "$${variableName}" does not appear in any GraphQL query.`)); - } - } - } - return errors; -} -function validateValue(type, valueAST) { - if (!type || !valueAST) { - return []; - } - if (type instanceof graphql.GraphQLNonNull) { - if (valueAST.kind === "Null") { - return [[valueAST, `Type "${type}" is non-nullable and cannot be null.`]]; - } - return validateValue(type.ofType, valueAST); - } - if (valueAST.kind === "Null") { - return []; - } - if (type instanceof graphql.GraphQLList) { - const itemType = type.ofType; - if (valueAST.kind === "Array") { - const values = valueAST.values || []; - return mapCat(values, item => validateValue(itemType, item)); - } - return validateValue(itemType, valueAST); - } - if (type instanceof graphql.GraphQLInputObjectType) { - if (valueAST.kind !== "Object") { - return [[valueAST, `Type "${type}" must be an Object.`]]; - } - const providedFields = /* @__PURE__ */Object.create(null); - const fieldErrors = mapCat(valueAST.members, member => { - var _a; - const fieldName = (_a = member === null || member === void 0 ? void 0 : member.key) === null || _a === void 0 ? void 0 : _a.value; - providedFields[fieldName] = true; - const inputField = type.getFields()[fieldName]; - if (!inputField) { - return [[member.key, `Type "${type}" does not have a field "${fieldName}".`]]; - } - const fieldType = inputField ? inputField.type : void 0; - return validateValue(fieldType, member.value); - }); - for (const fieldName of Object.keys(type.getFields())) { - const field = type.getFields()[fieldName]; - if (!providedFields[fieldName] && field.type instanceof graphql.GraphQLNonNull && !field.defaultValue) { - fieldErrors.push([valueAST, `Object of type "${type}" is missing required field "${fieldName}".`]); - } - } - return fieldErrors; - } - if (type.name === "Boolean" && valueAST.kind !== "Boolean" || type.name === "String" && valueAST.kind !== "String" || type.name === "ID" && valueAST.kind !== "Number" && valueAST.kind !== "String" || type.name === "Float" && valueAST.kind !== "Number" || type.name === "Int" && (valueAST.kind !== "Number" || (valueAST.value | 0) !== valueAST.value)) { - return [[valueAST, `Expected value of type "${type}".`]]; - } - if ((type instanceof graphql.GraphQLEnumType || type instanceof graphql.GraphQLScalarType) && (valueAST.kind !== "String" && valueAST.kind !== "Number" && valueAST.kind !== "Boolean" && valueAST.kind !== "Null" || isNullish(type.parseValue(valueAST.value)))) { - return [[valueAST, `Expected value of type "${type}".`]]; - } - return []; -} -function lintError(editor, node, message) { - return { - message, - severity: "error", - type: "validation", - from: editor.posFromIndex(node.start), - to: editor.posFromIndex(node.end) - }; -} -function isNullish(value) { - return value === null || value === void 0 || value !== value; -} -function mapCat(array, mapper) { - return Array.prototype.concat.apply([], array.map(mapper)); -} - -/***/ }), - -/***/ "../../graphiql-react/dist/matchbrackets.cjs.js": -/*!******************************************************!*\ - !*** ../../graphiql-react/dist/matchbrackets.cjs.js ***! - \******************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -const matchbrackets$2 = __webpack_require__(/*! ./matchbrackets.cjs2.js */ "../../graphiql-react/dist/matchbrackets.cjs2.js"); -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { - value: "Module" - })); -} -var matchbracketsExports = matchbrackets$2.requireMatchbrackets(); -const matchbrackets = /* @__PURE__ */codemirror.getDefaultExportFromCjs(matchbracketsExports); -const matchbrackets$1 = /* @__PURE__ */_mergeNamespaces({ - __proto__: null, - default: matchbrackets -}, [matchbracketsExports]); -exports.matchbrackets = matchbrackets$1; - -/***/ }), - -/***/ "../../graphiql-react/dist/matchbrackets.cjs2.js": -/*!*******************************************************!*\ - !*** ../../graphiql-react/dist/matchbrackets.cjs2.js ***! - \*******************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -var matchbrackets = { - exports: {} -}; -var hasRequiredMatchbrackets; -function requireMatchbrackets() { - if (hasRequiredMatchbrackets) return matchbrackets.exports; - hasRequiredMatchbrackets = 1; - (function (module2, exports2) { - (function (mod) { - mod(codemirror.requireCodemirror()); - })(function (CodeMirror) { - var ie_lt8 = /MSIE \d/.test(navigator.userAgent) && (document.documentMode == null || document.documentMode < 8); - var Pos = CodeMirror.Pos; - var matching = { - "(": ")>", - ")": "(<", - "[": "]>", - "]": "[<", - "{": "}>", - "}": "{<", - "<": ">>", - ">": "<<" - }; - function bracketRegex(config) { - return config && config.bracketRegex || /[(){}[\]]/; - } - function findMatchingBracket(cm, where, config) { - var line = cm.getLineHandle(where.line), - pos = where.ch - 1; - var afterCursor = config && config.afterCursor; - if (afterCursor == null) afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className); - var re = bracketRegex(config); - var match = !afterCursor && pos >= 0 && re.test(line.text.charAt(pos)) && matching[line.text.charAt(pos)] || re.test(line.text.charAt(pos + 1)) && matching[line.text.charAt(++pos)]; - if (!match) return null; - var dir = match.charAt(1) == ">" ? 1 : -1; - if (config && config.strict && dir > 0 != (pos == where.ch)) return null; - var style = cm.getTokenTypeAt(Pos(where.line, pos + 1)); - var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style, config); - if (found == null) return null; - return { - from: Pos(where.line, pos), - to: found && found.pos, - match: found && found.ch == match.charAt(0), - forward: dir > 0 - }; - } - function scanForBracket(cm, where, dir, style, config) { - var maxScanLen = config && config.maxScanLineLength || 1e4; - var maxScanLines = config && config.maxScanLines || 1e3; - var stack = []; - var re = bracketRegex(config); - var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1) : Math.max(cm.firstLine() - 1, where.line - maxScanLines); - for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) { - var line = cm.getLine(lineNo); - if (!line) continue; - var pos = dir > 0 ? 0 : line.length - 1, - end = dir > 0 ? line.length : -1; - if (line.length > maxScanLen) continue; - if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0); - for (; pos != end; pos += dir) { - var ch = line.charAt(pos); - if (re.test(ch) && (style === void 0 || (cm.getTokenTypeAt(Pos(lineNo, pos + 1)) || "") == (style || ""))) { - var match = matching[ch]; - if (match && match.charAt(1) == ">" == dir > 0) stack.push(ch);else if (!stack.length) return { - pos: Pos(lineNo, pos), - ch - };else stack.pop(); - } - } - } - return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null; - } - function matchBrackets(cm, autoclear, config) { - var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1e3, - highlightNonMatching = config && config.highlightNonMatching; - var marks = [], - ranges = cm.listSelections(); - for (var i = 0; i < ranges.length; i++) { - var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config); - if (match && (match.match || highlightNonMatching !== false) && cm.getLine(match.from.line).length <= maxHighlightLen) { - var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket"; - marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), { - className: style - })); - if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen) marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), { - className: style - })); - } - } - if (marks.length) { - if (ie_lt8 && cm.state.focused) cm.focus(); - var clear = function () { - cm.operation(function () { - for (var i2 = 0; i2 < marks.length; i2++) marks[i2].clear(); - }); - }; - if (autoclear) setTimeout(clear, 800);else return clear; - } - } - function doMatchBrackets(cm) { - cm.operation(function () { - if (cm.state.matchBrackets.currentlyHighlighted) { - cm.state.matchBrackets.currentlyHighlighted(); - cm.state.matchBrackets.currentlyHighlighted = null; - } - cm.state.matchBrackets.currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets); - }); - } - function clearHighlighted(cm) { - if (cm.state.matchBrackets && cm.state.matchBrackets.currentlyHighlighted) { - cm.state.matchBrackets.currentlyHighlighted(); - cm.state.matchBrackets.currentlyHighlighted = null; - } - } - CodeMirror.defineOption("matchBrackets", false, function (cm, val, old) { - if (old && old != CodeMirror.Init) { - cm.off("cursorActivity", doMatchBrackets); - cm.off("focus", doMatchBrackets); - cm.off("blur", clearHighlighted); - clearHighlighted(cm); - } - if (val) { - cm.state.matchBrackets = typeof val == "object" ? val : {}; - cm.on("cursorActivity", doMatchBrackets); - cm.on("focus", doMatchBrackets); - cm.on("blur", clearHighlighted); - } - }); - CodeMirror.defineExtension("matchBrackets", function () { - matchBrackets(this, true); - }); - CodeMirror.defineExtension("findMatchingBracket", function (pos, config, oldConfig) { - if (oldConfig || typeof config == "boolean") { - if (!oldConfig) { - config = config ? { - strict: true - } : null; - } else { - oldConfig.strict = config; - config = oldConfig; - } - } - return findMatchingBracket(this, pos, config); - }); - CodeMirror.defineExtension("scanForBracket", function (pos, dir, style, config) { - return scanForBracket(this, pos, dir, style, config); - }); - }); - })(); - return matchbrackets.exports; -} -exports.requireMatchbrackets = requireMatchbrackets; - -/***/ }), - -/***/ "../../graphiql-react/dist/mode-indent.cjs.js": -/*!****************************************************!*\ - !*** ../../graphiql-react/dist/mode-indent.cjs.js ***! - \****************************************************/ -/***/ (function(__unused_webpack_module, exports) { - - - -function indent(state, textAfter) { - var _a, _b; - const { - levels, - indentLevel - } = state; - const level = !levels || levels.length === 0 ? indentLevel : levels.at(-1) - (((_a = this.electricInput) === null || _a === void 0 ? void 0 : _a.test(textAfter)) ? 1 : 0); - return (level || 0) * (((_b = this.config) === null || _b === void 0 ? void 0 : _b.indentUnit) || 0); -} -exports.indent = indent; - -/***/ }), - -/***/ "../../graphiql-react/dist/mode.cjs.js": -/*!*********************************************!*\ - !*** ../../graphiql-react/dist/mode.cjs.js ***! - \*********************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs.js */ "../../graphiql-react/dist/codemirror.cjs.js"); -const graphqlLanguageService = __webpack_require__(/*! graphql-language-service */ "../../graphql-language-service/esm/index.js"); -const modeIndent = __webpack_require__(/*! ./mode-indent.cjs.js */ "../../graphiql-react/dist/mode-indent.cjs.js"); -const graphqlModeFactory = config => { - const parser = graphqlLanguageService.onlineParser({ - eatWhitespace: stream => stream.eatWhile(graphqlLanguageService.isIgnored), - lexRules: graphqlLanguageService.LexRules, - parseRules: graphqlLanguageService.ParseRules, - editorConfig: { - tabSize: config.tabSize - } - }); - return { - config, - startState: parser.startState, - token: parser.token, - indent: modeIndent.indent, - electricInput: /^\s*[})\]]/, - fold: "brace", - lineComment: "#", - closeBrackets: { - pairs: '()[]{}""', - explode: "()[]{}" - } - }; -}; -codemirror.CodeMirror.defineMode("graphql", graphqlModeFactory); - -/***/ }), - -/***/ "../../graphiql-react/dist/mode.cjs2.js": -/*!**********************************************!*\ - !*** ../../graphiql-react/dist/mode.cjs2.js ***! - \**********************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs.js */ "../../graphiql-react/dist/codemirror.cjs.js"); -const graphqlLanguageService = __webpack_require__(/*! graphql-language-service */ "../../graphql-language-service/esm/index.js"); -const modeIndent = __webpack_require__(/*! ./mode-indent.cjs.js */ "../../graphiql-react/dist/mode-indent.cjs.js"); -codemirror.CodeMirror.defineMode("graphql-variables", config => { - const parser = graphqlLanguageService.onlineParser({ - eatWhitespace: stream => stream.eatSpace(), - lexRules: LexRules, - parseRules: ParseRules, - editorConfig: { - tabSize: config.tabSize - } - }); - return { - config, - startState: parser.startState, - token: parser.token, - indent: modeIndent.indent, - electricInput: /^\s*[}\]]/, - fold: "brace", - closeBrackets: { - pairs: '[]{}""', - explode: "[]{}" - } - }; -}); -const LexRules = { - Punctuation: /^\[|]|\{|\}|:|,/, - Number: /^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/, - String: /^"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?/, - Keyword: /^true|false|null/ -}; -const ParseRules = { - Document: [graphqlLanguageService.p("{"), graphqlLanguageService.list("Variable", graphqlLanguageService.opt(graphqlLanguageService.p(","))), graphqlLanguageService.p("}")], - Variable: [namedKey("variable"), graphqlLanguageService.p(":"), "Value"], - Value(token) { - switch (token.kind) { - case "Number": - return "NumberValue"; - case "String": - return "StringValue"; - case "Punctuation": - switch (token.value) { - case "[": - return "ListValue"; - case "{": - return "ObjectValue"; - } - return null; - case "Keyword": - switch (token.value) { - case "true": - case "false": - return "BooleanValue"; - case "null": - return "NullValue"; - } - return null; - } - }, - NumberValue: [graphqlLanguageService.t("Number", "number")], - StringValue: [graphqlLanguageService.t("String", "string")], - BooleanValue: [graphqlLanguageService.t("Keyword", "builtin")], - NullValue: [graphqlLanguageService.t("Keyword", "keyword")], - ListValue: [graphqlLanguageService.p("["), graphqlLanguageService.list("Value", graphqlLanguageService.opt(graphqlLanguageService.p(","))), graphqlLanguageService.p("]")], - ObjectValue: [graphqlLanguageService.p("{"), graphqlLanguageService.list("ObjectField", graphqlLanguageService.opt(graphqlLanguageService.p(","))), graphqlLanguageService.p("}")], - ObjectField: [namedKey("attribute"), graphqlLanguageService.p(":"), "Value"] -}; -function namedKey(style) { - return { - style, - match: token => token.kind === "String", - update(state, token) { - state.name = token.value.slice(1, -1); - } - }; -} - -/***/ }), - -/***/ "../../graphiql-react/dist/mode.cjs3.js": -/*!**********************************************!*\ - !*** ../../graphiql-react/dist/mode.cjs3.js ***! - \**********************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs.js */ "../../graphiql-react/dist/codemirror.cjs.js"); -const graphqlLanguageService = __webpack_require__(/*! graphql-language-service */ "../../graphql-language-service/esm/index.js"); -const modeIndent = __webpack_require__(/*! ./mode-indent.cjs.js */ "../../graphiql-react/dist/mode-indent.cjs.js"); -codemirror.CodeMirror.defineMode("graphql-results", config => { - const parser = graphqlLanguageService.onlineParser({ - eatWhitespace: stream => stream.eatSpace(), - lexRules: LexRules, - parseRules: ParseRules, - editorConfig: { - tabSize: config.tabSize - } - }); - return { - config, - startState: parser.startState, - token: parser.token, - indent: modeIndent.indent, - electricInput: /^\s*[}\]]/, - fold: "brace", - closeBrackets: { - pairs: '[]{}""', - explode: "[]{}" - } - }; -}); -const LexRules = { - Punctuation: /^\[|]|\{|\}|:|,/, - Number: /^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/, - String: /^"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?/, - Keyword: /^true|false|null/ -}; -const ParseRules = { - Document: [graphqlLanguageService.p("{"), graphqlLanguageService.list("Entry", graphqlLanguageService.p(",")), graphqlLanguageService.p("}")], - Entry: [graphqlLanguageService.t("String", "def"), graphqlLanguageService.p(":"), "Value"], - Value(token) { - switch (token.kind) { - case "Number": - return "NumberValue"; - case "String": - return "StringValue"; - case "Punctuation": - switch (token.value) { - case "[": - return "ListValue"; - case "{": - return "ObjectValue"; - } - return null; - case "Keyword": - switch (token.value) { - case "true": - case "false": - return "BooleanValue"; - case "null": - return "NullValue"; - } - return null; - } - }, - NumberValue: [graphqlLanguageService.t("Number", "number")], - StringValue: [graphqlLanguageService.t("String", "string")], - BooleanValue: [graphqlLanguageService.t("Keyword", "builtin")], - NullValue: [graphqlLanguageService.t("Keyword", "keyword")], - ListValue: [graphqlLanguageService.p("["), graphqlLanguageService.list("Value", graphqlLanguageService.p(",")), graphqlLanguageService.p("]")], - ObjectValue: [graphqlLanguageService.p("{"), graphqlLanguageService.list("ObjectField", graphqlLanguageService.p(",")), graphqlLanguageService.p("}")], - ObjectField: [graphqlLanguageService.t("String", "property"), graphqlLanguageService.p(":"), "Value"] -}; - -/***/ }), - -/***/ "../../graphiql-react/dist/search.cjs.js": -/*!***********************************************!*\ - !*** ../../graphiql-react/dist/search.cjs.js ***! - \***********************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -const searchcursor = __webpack_require__(/*! ./searchcursor.cjs2.js */ "../../graphiql-react/dist/searchcursor.cjs2.js"); -const dialog = __webpack_require__(/*! ./dialog.cjs.js */ "../../graphiql-react/dist/dialog.cjs.js"); -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { - value: "Module" - })); -} -var search$2 = { - exports: {} -}; -(function (module2, exports2) { - (function (mod) { - mod(codemirror.requireCodemirror(), searchcursor.requireSearchcursor(), dialog.dialogExports); - })(function (CodeMirror) { - CodeMirror.defineOption("search", { - bottom: false - }); - function searchOverlay(query, caseInsensitive) { - if (typeof query == "string") query = new RegExp(query.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"), caseInsensitive ? "gi" : "g");else if (!query.global) query = new RegExp(query.source, query.ignoreCase ? "gi" : "g"); - return { - token: function (stream) { - query.lastIndex = stream.pos; - var match = query.exec(stream.string); - if (match && match.index == stream.pos) { - stream.pos += match[0].length || 1; - return "searching"; - } else if (match) { - stream.pos = match.index; - } else { - stream.skipToEnd(); - } - } - }; - } - function SearchState() { - this.posFrom = this.posTo = this.lastQuery = this.query = null; - this.overlay = null; - } - function getSearchState(cm) { - return cm.state.search || (cm.state.search = new SearchState()); - } - function queryCaseInsensitive(query) { - return typeof query == "string" && query == query.toLowerCase(); - } - function getSearchCursor(cm, query, pos) { - return cm.getSearchCursor(query, pos, { - caseFold: queryCaseInsensitive(query), - multiline: true - }); - } - function persistentDialog(cm, text, deflt, onEnter, onKeyDown) { - cm.openDialog(text, onEnter, { - value: deflt, - selectValueOnOpen: true, - closeOnEnter: false, - onClose: function () { - clearSearch(cm); - }, - onKeyDown, - bottom: cm.options.search.bottom - }); - } - function dialog2(cm, text, shortText, deflt, f) { - if (cm.openDialog) cm.openDialog(text, f, { - value: deflt, - selectValueOnOpen: true, - bottom: cm.options.search.bottom - });else f(prompt(shortText, deflt)); - } - function confirmDialog(cm, text, shortText, fs) { - if (cm.openConfirm) cm.openConfirm(text, fs);else if (confirm(shortText)) fs[0](); - } - function parseString(string) { - return string.replace(/\\([nrt\\])/g, function (match, ch) { - if (ch == "n") return "\n"; - if (ch == "r") return "\r"; - if (ch == "t") return " "; - if (ch == "\\") return "\\"; - return match; - }); - } - function parseQuery(query) { - var isRE = query.match(/^\/(.*)\/([a-z]*)$/); - if (isRE) { - try { - query = new RegExp(isRE[1], isRE[2].indexOf("i") == -1 ? "" : "i"); - } catch (e) {} - } else { - query = parseString(query); - } - if (typeof query == "string" ? query == "" : query.test("")) query = /x^/; - return query; - } - function startSearch(cm, state, query) { - state.queryText = query; - state.query = parseQuery(query); - cm.removeOverlay(state.overlay, queryCaseInsensitive(state.query)); - state.overlay = searchOverlay(state.query, queryCaseInsensitive(state.query)); - cm.addOverlay(state.overlay); - if (cm.showMatchesOnScrollbar) { - if (state.annotate) { - state.annotate.clear(); - state.annotate = null; - } - state.annotate = cm.showMatchesOnScrollbar(state.query, queryCaseInsensitive(state.query)); - } - } - function doSearch(cm, rev, persistent, immediate) { - var state = getSearchState(cm); - if (state.query) return findNext(cm, rev); - var q = cm.getSelection() || state.lastQuery; - if (q instanceof RegExp && q.source == "x^") q = null; - if (persistent && cm.openDialog) { - var hiding = null; - var searchNext = function (query, event) { - CodeMirror.e_stop(event); - if (!query) return; - if (query != state.queryText) { - startSearch(cm, state, query); - state.posFrom = state.posTo = cm.getCursor(); - } - if (hiding) hiding.style.opacity = 1; - findNext(cm, event.shiftKey, function (_, to) { - var dialog3; - if (to.line < 3 && document.querySelector && (dialog3 = cm.display.wrapper.querySelector(".CodeMirror-dialog")) && dialog3.getBoundingClientRect().bottom - 4 > cm.cursorCoords(to, "window").top) (hiding = dialog3).style.opacity = 0.4; - }); - }; - persistentDialog(cm, getQueryDialog(cm), q, searchNext, function (event, query) { - var keyName = CodeMirror.keyName(event); - var extra = cm.getOption("extraKeys"), - cmd = extra && extra[keyName] || CodeMirror.keyMap[cm.getOption("keyMap")][keyName]; - if (cmd == "findNext" || cmd == "findPrev" || cmd == "findPersistentNext" || cmd == "findPersistentPrev") { - CodeMirror.e_stop(event); - startSearch(cm, getSearchState(cm), query); - cm.execCommand(cmd); - } else if (cmd == "find" || cmd == "findPersistent") { - CodeMirror.e_stop(event); - searchNext(query, event); - } - }); - if (immediate && q) { - startSearch(cm, state, q); - findNext(cm, rev); - } - } else { - dialog2(cm, getQueryDialog(cm), "Search for:", q, function (query) { - if (query && !state.query) cm.operation(function () { - startSearch(cm, state, query); - state.posFrom = state.posTo = cm.getCursor(); - findNext(cm, rev); - }); - }); - } - } - function findNext(cm, rev, callback) { - cm.operation(function () { - var state = getSearchState(cm); - var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo); - if (!cursor.find(rev)) { - cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0)); - if (!cursor.find(rev)) return; - } - cm.setSelection(cursor.from(), cursor.to()); - cm.scrollIntoView({ - from: cursor.from(), - to: cursor.to() - }, 20); - state.posFrom = cursor.from(); - state.posTo = cursor.to(); - if (callback) callback(cursor.from(), cursor.to()); - }); - } - function clearSearch(cm) { - cm.operation(function () { - var state = getSearchState(cm); - state.lastQuery = state.query; - if (!state.query) return; - state.query = state.queryText = null; - cm.removeOverlay(state.overlay); - if (state.annotate) { - state.annotate.clear(); - state.annotate = null; - } - }); - } - function el(tag, attrs) { - var element = tag ? document.createElement(tag) : document.createDocumentFragment(); - for (var key in attrs) { - element[key] = attrs[key]; - } - for (var i = 2; i < arguments.length; i++) { - var child = arguments[i]; - element.appendChild(typeof child == "string" ? document.createTextNode(child) : child); - } - return element; - } - function getQueryDialog(cm) { - return el("", null, el("span", { - className: "CodeMirror-search-label" - }, cm.phrase("Search:")), " ", el("input", { - type: "text", - "style": "width: 10em", - className: "CodeMirror-search-field" - }), " ", el("span", { - style: "color: #888", - className: "CodeMirror-search-hint" - }, cm.phrase("(Use /re/ syntax for regexp search)"))); - } - function getReplaceQueryDialog(cm) { - return el("", null, " ", el("input", { - type: "text", - "style": "width: 10em", - className: "CodeMirror-search-field" - }), " ", el("span", { - style: "color: #888", - className: "CodeMirror-search-hint" - }, cm.phrase("(Use /re/ syntax for regexp search)"))); - } - function getReplacementQueryDialog(cm) { - return el("", null, el("span", { - className: "CodeMirror-search-label" - }, cm.phrase("With:")), " ", el("input", { - type: "text", - "style": "width: 10em", - className: "CodeMirror-search-field" - })); - } - function getDoReplaceConfirm(cm) { - return el("", null, el("span", { - className: "CodeMirror-search-label" - }, cm.phrase("Replace?")), " ", el("button", {}, cm.phrase("Yes")), " ", el("button", {}, cm.phrase("No")), " ", el("button", {}, cm.phrase("All")), " ", el("button", {}, cm.phrase("Stop"))); - } - function replaceAll(cm, query, text) { - cm.operation(function () { - for (var cursor = getSearchCursor(cm, query); cursor.findNext();) { - if (typeof query != "string") { - var match = cm.getRange(cursor.from(), cursor.to()).match(query); - cursor.replace(text.replace(/\$(\d)/g, function (_, i) { - return match[i]; - })); - } else cursor.replace(text); - } - }); - } - function replace(cm, all) { - if (cm.getOption("readOnly")) return; - var query = cm.getSelection() || getSearchState(cm).lastQuery; - var dialogText = all ? cm.phrase("Replace all:") : cm.phrase("Replace:"); - var fragment = el("", null, el("span", { - className: "CodeMirror-search-label" - }, dialogText), getReplaceQueryDialog(cm)); - dialog2(cm, fragment, dialogText, query, function (query2) { - if (!query2) return; - query2 = parseQuery(query2); - dialog2(cm, getReplacementQueryDialog(cm), cm.phrase("Replace with:"), "", function (text) { - text = parseString(text); - if (all) { - replaceAll(cm, query2, text); - } else { - clearSearch(cm); - var cursor = getSearchCursor(cm, query2, cm.getCursor("from")); - var advance = function () { - var start = cursor.from(), - match; - if (!(match = cursor.findNext())) { - cursor = getSearchCursor(cm, query2); - if (!(match = cursor.findNext()) || start && cursor.from().line == start.line && cursor.from().ch == start.ch) return; - } - cm.setSelection(cursor.from(), cursor.to()); - cm.scrollIntoView({ - from: cursor.from(), - to: cursor.to() - }); - confirmDialog(cm, getDoReplaceConfirm(cm), cm.phrase("Replace?"), [function () { - doReplace(match); - }, advance, function () { - replaceAll(cm, query2, text); - }]); - }; - var doReplace = function (match) { - cursor.replace(typeof query2 == "string" ? text : text.replace(/\$(\d)/g, function (_, i) { - return match[i]; - })); - advance(); - }; - advance(); - } - }); - }); - } - CodeMirror.commands.find = function (cm) { - clearSearch(cm); - doSearch(cm); - }; - CodeMirror.commands.findPersistent = function (cm) { - clearSearch(cm); - doSearch(cm, false, true); - }; - CodeMirror.commands.findPersistentNext = function (cm) { - doSearch(cm, false, true, true); - }; - CodeMirror.commands.findPersistentPrev = function (cm) { - doSearch(cm, true, true, true); - }; - CodeMirror.commands.findNext = doSearch; - CodeMirror.commands.findPrev = function (cm) { - doSearch(cm, true); - }; - CodeMirror.commands.clearSearch = clearSearch; - CodeMirror.commands.replace = replace; - CodeMirror.commands.replaceAll = function (cm) { - replace(cm, true); - }; - }); -})(); -var searchExports = search$2.exports; -const search = /* @__PURE__ */codemirror.getDefaultExportFromCjs(searchExports); -const search$1 = /* @__PURE__ */_mergeNamespaces({ - __proto__: null, - default: search -}, [searchExports]); -exports.search = search$1; - -/***/ }), - -/***/ "../../graphiql-react/dist/searchcursor.cjs.js": -/*!*****************************************************!*\ - !*** ../../graphiql-react/dist/searchcursor.cjs.js ***! - \*****************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -const searchcursor$2 = __webpack_require__(/*! ./searchcursor.cjs2.js */ "../../graphiql-react/dist/searchcursor.cjs2.js"); -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { - value: "Module" - })); -} -var searchcursorExports = searchcursor$2.requireSearchcursor(); -const searchcursor = /* @__PURE__ */codemirror.getDefaultExportFromCjs(searchcursorExports); -const searchcursor$1 = /* @__PURE__ */_mergeNamespaces({ - __proto__: null, - default: searchcursor -}, [searchcursorExports]); -exports.searchcursor = searchcursor$1; - -/***/ }), - -/***/ "../../graphiql-react/dist/searchcursor.cjs2.js": -/*!******************************************************!*\ - !*** ../../graphiql-react/dist/searchcursor.cjs2.js ***! - \******************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -var searchcursor = { - exports: {} -}; -var hasRequiredSearchcursor; -function requireSearchcursor() { - if (hasRequiredSearchcursor) return searchcursor.exports; - hasRequiredSearchcursor = 1; - (function (module2, exports2) { - (function (mod) { - mod(codemirror.requireCodemirror()); - })(function (CodeMirror) { - var Pos = CodeMirror.Pos; - function regexpFlags(regexp) { - var flags = regexp.flags; - return flags != null ? flags : (regexp.ignoreCase ? "i" : "") + (regexp.global ? "g" : "") + (regexp.multiline ? "m" : ""); - } - function ensureFlags(regexp, flags) { - var current = regexpFlags(regexp), - target = current; - for (var i = 0; i < flags.length; i++) if (target.indexOf(flags.charAt(i)) == -1) target += flags.charAt(i); - return current == target ? regexp : new RegExp(regexp.source, target); - } - function maybeMultiline(regexp) { - return /\\s|\\n|\n|\\W|\\D|\[\^/.test(regexp.source); - } - function searchRegexpForward(doc, regexp, start) { - regexp = ensureFlags(regexp, "g"); - for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) { - regexp.lastIndex = ch; - var string = doc.getLine(line), - match = regexp.exec(string); - if (match) return { - from: Pos(line, match.index), - to: Pos(line, match.index + match[0].length), - match - }; - } - } - function searchRegexpForwardMultiline(doc, regexp, start) { - if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start); - regexp = ensureFlags(regexp, "gm"); - var string, - chunk = 1; - for (var line = start.line, last = doc.lastLine(); line <= last;) { - for (var i = 0; i < chunk; i++) { - if (line > last) break; - var curLine = doc.getLine(line++); - string = string == null ? curLine : string + "\n" + curLine; - } - chunk = chunk * 2; - regexp.lastIndex = start.ch; - var match = regexp.exec(string); - if (match) { - var before = string.slice(0, match.index).split("\n"), - inside = match[0].split("\n"); - var startLine = start.line + before.length - 1, - startCh = before[before.length - 1].length; - return { - from: Pos(startLine, startCh), - to: Pos(startLine + inside.length - 1, inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length), - match - }; - } - } - } - function lastMatchIn(string, regexp, endMargin) { - var match, - from = 0; - while (from <= string.length) { - regexp.lastIndex = from; - var newMatch = regexp.exec(string); - if (!newMatch) break; - var end = newMatch.index + newMatch[0].length; - if (end > string.length - endMargin) break; - if (!match || end > match.index + match[0].length) match = newMatch; - from = newMatch.index + 1; - } - return match; - } - function searchRegexpBackward(doc, regexp, start) { - regexp = ensureFlags(regexp, "g"); - for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) { - var string = doc.getLine(line); - var match = lastMatchIn(string, regexp, ch < 0 ? 0 : string.length - ch); - if (match) return { - from: Pos(line, match.index), - to: Pos(line, match.index + match[0].length), - match - }; - } - } - function searchRegexpBackwardMultiline(doc, regexp, start) { - if (!maybeMultiline(regexp)) return searchRegexpBackward(doc, regexp, start); - regexp = ensureFlags(regexp, "gm"); - var string, - chunkSize = 1, - endMargin = doc.getLine(start.line).length - start.ch; - for (var line = start.line, first = doc.firstLine(); line >= first;) { - for (var i = 0; i < chunkSize && line >= first; i++) { - var curLine = doc.getLine(line--); - string = string == null ? curLine : curLine + "\n" + string; - } - chunkSize *= 2; - var match = lastMatchIn(string, regexp, endMargin); - if (match) { - var before = string.slice(0, match.index).split("\n"), - inside = match[0].split("\n"); - var startLine = line + before.length, - startCh = before[before.length - 1].length; - return { - from: Pos(startLine, startCh), - to: Pos(startLine + inside.length - 1, inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length), - match - }; - } - } - } - var doFold, noFold; - if (String.prototype.normalize) { - doFold = function (str) { - return str.normalize("NFD").toLowerCase(); - }; - noFold = function (str) { - return str.normalize("NFD"); - }; - } else { - doFold = function (str) { - return str.toLowerCase(); - }; - noFold = function (str) { - return str; - }; - } - function adjustPos(orig, folded, pos, foldFunc) { - if (orig.length == folded.length) return pos; - for (var min = 0, max = pos + Math.max(0, orig.length - folded.length);;) { - if (min == max) return min; - var mid = min + max >> 1; - var len = foldFunc(orig.slice(0, mid)).length; - if (len == pos) return mid;else if (len > pos) max = mid;else min = mid + 1; - } - } - function searchStringForward(doc, query, start, caseFold) { - if (!query.length) return null; - var fold = caseFold ? doFold : noFold; - var lines = fold(query).split(/\r|\n\r?/); - search: for (var line = start.line, ch = start.ch, last = doc.lastLine() + 1 - lines.length; line <= last; line++, ch = 0) { - var orig = doc.getLine(line).slice(ch), - string = fold(orig); - if (lines.length == 1) { - var found = string.indexOf(lines[0]); - if (found == -1) continue search; - var start = adjustPos(orig, string, found, fold) + ch; - return { - from: Pos(line, adjustPos(orig, string, found, fold) + ch), - to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold) + ch) - }; - } else { - var cutFrom = string.length - lines[0].length; - if (string.slice(cutFrom) != lines[0]) continue search; - for (var i = 1; i < lines.length - 1; i++) if (fold(doc.getLine(line + i)) != lines[i]) continue search; - var end = doc.getLine(line + lines.length - 1), - endString = fold(end), - lastLine = lines[lines.length - 1]; - if (endString.slice(0, lastLine.length) != lastLine) continue search; - return { - from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch), - to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold)) - }; - } - } - } - function searchStringBackward(doc, query, start, caseFold) { - if (!query.length) return null; - var fold = caseFold ? doFold : noFold; - var lines = fold(query).split(/\r|\n\r?/); - search: for (var line = start.line, ch = start.ch, first = doc.firstLine() - 1 + lines.length; line >= first; line--, ch = -1) { - var orig = doc.getLine(line); - if (ch > -1) orig = orig.slice(0, ch); - var string = fold(orig); - if (lines.length == 1) { - var found = string.lastIndexOf(lines[0]); - if (found == -1) continue search; - return { - from: Pos(line, adjustPos(orig, string, found, fold)), - to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold)) - }; - } else { - var lastLine = lines[lines.length - 1]; - if (string.slice(0, lastLine.length) != lastLine) continue search; - for (var i = 1, start = line - lines.length + 1; i < lines.length - 1; i++) if (fold(doc.getLine(start + i)) != lines[i]) continue search; - var top = doc.getLine(line + 1 - lines.length), - topString = fold(top); - if (topString.slice(topString.length - lines[0].length) != lines[0]) continue search; - return { - from: Pos(line + 1 - lines.length, adjustPos(top, topString, top.length - lines[0].length, fold)), - to: Pos(line, adjustPos(orig, string, lastLine.length, fold)) - }; - } - } - } - function SearchCursor(doc, query, pos, options) { - this.atOccurrence = false; - this.afterEmptyMatch = false; - this.doc = doc; - pos = pos ? doc.clipPos(pos) : Pos(0, 0); - this.pos = { - from: pos, - to: pos - }; - var caseFold; - if (typeof options == "object") { - caseFold = options.caseFold; - } else { - caseFold = options; - options = null; - } - if (typeof query == "string") { - if (caseFold == null) caseFold = false; - this.matches = function (reverse, pos2) { - return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos2, caseFold); - }; - } else { - query = ensureFlags(query, "gm"); - if (!options || options.multiline !== false) this.matches = function (reverse, pos2) { - return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos2); - };else this.matches = function (reverse, pos2) { - return (reverse ? searchRegexpBackward : searchRegexpForward)(doc, query, pos2); - }; - } - } - SearchCursor.prototype = { - findNext: function () { - return this.find(false); - }, - findPrevious: function () { - return this.find(true); - }, - find: function (reverse) { - var head = this.doc.clipPos(reverse ? this.pos.from : this.pos.to); - if (this.afterEmptyMatch && this.atOccurrence) { - head = Pos(head.line, head.ch); - if (reverse) { - head.ch--; - if (head.ch < 0) { - head.line--; - head.ch = (this.doc.getLine(head.line) || "").length; - } - } else { - head.ch++; - if (head.ch > (this.doc.getLine(head.line) || "").length) { - head.ch = 0; - head.line++; - } - } - if (CodeMirror.cmpPos(head, this.doc.clipPos(head)) != 0) { - return this.atOccurrence = false; - } - } - var result = this.matches(reverse, head); - this.afterEmptyMatch = result && CodeMirror.cmpPos(result.from, result.to) == 0; - if (result) { - this.pos = result; - this.atOccurrence = true; - return this.pos.match || true; - } else { - var end = Pos(reverse ? this.doc.firstLine() : this.doc.lastLine() + 1, 0); - this.pos = { - from: end, - to: end - }; - return this.atOccurrence = false; - } - }, - from: function () { - if (this.atOccurrence) return this.pos.from; - }, - to: function () { - if (this.atOccurrence) return this.pos.to; - }, - replace: function (newText, origin) { - if (!this.atOccurrence) return; - var lines = CodeMirror.splitLines(newText); - this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin); - this.pos.to = Pos(this.pos.from.line + lines.length - 1, lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0)); - } - }; - CodeMirror.defineExtension("getSearchCursor", function (query, pos, caseFold) { - return new SearchCursor(this.doc, query, pos, caseFold); - }); - CodeMirror.defineDocExtension("getSearchCursor", function (query, pos, caseFold) { - return new SearchCursor(this, query, pos, caseFold); - }); - CodeMirror.defineExtension("selectMatches", function (query, caseFold) { - var ranges = []; - var cur = this.getSearchCursor(query, this.getCursor("from"), caseFold); - while (cur.findNext()) { - if (CodeMirror.cmpPos(cur.to(), this.getCursor("to")) > 0) break; - ranges.push({ - anchor: cur.from(), - head: cur.to() - }); - } - if (ranges.length) this.setSelections(ranges, 0); - }); - }); - })(); - return searchcursor.exports; -} -exports.requireSearchcursor = requireSearchcursor; - -/***/ }), - -/***/ "../../graphiql-react/dist/show-hint.cjs.js": -/*!**************************************************!*\ - !*** ../../graphiql-react/dist/show-hint.cjs.js ***! - \**************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { - value: "Module" - })); -} -var showHint$2 = { - exports: {} -}; -(function (module2, exports2) { - (function (mod) { - mod(codemirror.requireCodemirror()); - })(function (CodeMirror) { - var HINT_ELEMENT_CLASS = "CodeMirror-hint"; - var ACTIVE_HINT_ELEMENT_CLASS = "CodeMirror-hint-active"; - CodeMirror.showHint = function (cm, getHints, options) { - if (!getHints) return cm.showHint(options); - if (options && options.async) getHints.async = true; - var newOpts = { - hint: getHints - }; - if (options) for (var prop in options) newOpts[prop] = options[prop]; - return cm.showHint(newOpts); - }; - CodeMirror.defineExtension("showHint", function (options) { - options = parseOptions(this, this.getCursor("start"), options); - var selections = this.listSelections(); - if (selections.length > 1) return; - if (this.somethingSelected()) { - if (!options.hint.supportsSelection) return; - for (var i = 0; i < selections.length; i++) if (selections[i].head.line != selections[i].anchor.line) return; - } - if (this.state.completionActive) this.state.completionActive.close(); - var completion = this.state.completionActive = new Completion(this, options); - if (!completion.options.hint) return; - CodeMirror.signal(this, "startCompletion", this); - completion.update(true); - }); - CodeMirror.defineExtension("closeHint", function () { - if (this.state.completionActive) this.state.completionActive.close(); - }); - function Completion(cm, options) { - this.cm = cm; - this.options = options; - this.widget = null; - this.debounce = 0; - this.tick = 0; - this.startPos = this.cm.getCursor("start"); - this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length; - if (this.options.updateOnCursorActivity) { - var self = this; - cm.on("cursorActivity", this.activityFunc = function () { - self.cursorActivity(); - }); - } - } - var requestAnimationFrame = window.requestAnimationFrame || function (fn) { - return setTimeout(fn, 1e3 / 60); - }; - var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout; - Completion.prototype = { - close: function () { - if (!this.active()) return; - this.cm.state.completionActive = null; - this.tick = null; - if (this.options.updateOnCursorActivity) { - this.cm.off("cursorActivity", this.activityFunc); - } - if (this.widget && this.data) CodeMirror.signal(this.data, "close"); - if (this.widget) this.widget.close(); - CodeMirror.signal(this.cm, "endCompletion", this.cm); - }, - active: function () { - return this.cm.state.completionActive == this; - }, - pick: function (data, i) { - var completion = data.list[i], - self = this; - this.cm.operation(function () { - if (completion.hint) completion.hint(self.cm, data, completion);else self.cm.replaceRange(getText(completion), completion.from || data.from, completion.to || data.to, "complete"); - CodeMirror.signal(data, "pick", completion); - self.cm.scrollIntoView(); - }); - if (this.options.closeOnPick) { - this.close(); - } - }, - cursorActivity: function () { - if (this.debounce) { - cancelAnimationFrame(this.debounce); - this.debounce = 0; - } - var identStart = this.startPos; - if (this.data) { - identStart = this.data.from; - } - var pos = this.cm.getCursor(), - line = this.cm.getLine(pos.line); - if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch || pos.ch < identStart.ch || this.cm.somethingSelected() || !pos.ch || this.options.closeCharacters.test(line.charAt(pos.ch - 1))) { - this.close(); - } else { - var self = this; - this.debounce = requestAnimationFrame(function () { - self.update(); - }); - if (this.widget) this.widget.disable(); - } - }, - update: function (first) { - if (this.tick == null) return; - var self = this, - myTick = ++this.tick; - fetchHints(this.options.hint, this.cm, this.options, function (data) { - if (self.tick == myTick) self.finishUpdate(data, first); - }); - }, - finishUpdate: function (data, first) { - if (this.data) CodeMirror.signal(this.data, "update"); - var picked = this.widget && this.widget.picked || first && this.options.completeSingle; - if (this.widget) this.widget.close(); - this.data = data; - if (data && data.list.length) { - if (picked && data.list.length == 1) { - this.pick(data, 0); - } else { - this.widget = new Widget(this, data); - CodeMirror.signal(data, "shown"); - } - } - } - }; - function parseOptions(cm, pos, options) { - var editor = cm.options.hintOptions; - var out = {}; - for (var prop in defaultOptions) out[prop] = defaultOptions[prop]; - if (editor) { - for (var prop in editor) if (editor[prop] !== void 0) out[prop] = editor[prop]; - } - if (options) { - for (var prop in options) if (options[prop] !== void 0) out[prop] = options[prop]; - } - if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos); - return out; - } - function getText(completion) { - if (typeof completion == "string") return completion;else return completion.text; - } - function buildKeyMap(completion, handle) { - var baseMap = { - Up: function () { - handle.moveFocus(-1); - }, - Down: function () { - handle.moveFocus(1); - }, - PageUp: function () { - handle.moveFocus(-handle.menuSize() + 1, true); - }, - PageDown: function () { - handle.moveFocus(handle.menuSize() - 1, true); - }, - Home: function () { - handle.setFocus(0); - }, - End: function () { - handle.setFocus(handle.length - 1); - }, - Enter: handle.pick, - Tab: handle.pick, - Esc: handle.close - }; - var mac = /Mac/.test(navigator.platform); - if (mac) { - baseMap["Ctrl-P"] = function () { - handle.moveFocus(-1); - }; - baseMap["Ctrl-N"] = function () { - handle.moveFocus(1); - }; - } - var custom = completion.options.customKeys; - var ourMap = custom ? {} : baseMap; - function addBinding(key2, val) { - var bound; - if (typeof val != "string") bound = function (cm) { - return val(cm, handle); - };else if (baseMap.hasOwnProperty(val)) bound = baseMap[val];else bound = val; - ourMap[key2] = bound; - } - if (custom) { - for (var key in custom) if (custom.hasOwnProperty(key)) addBinding(key, custom[key]); - } - var extra = completion.options.extraKeys; - if (extra) { - for (var key in extra) if (extra.hasOwnProperty(key)) addBinding(key, extra[key]); - } - return ourMap; - } - function getHintElement(hintsElement, el) { - while (el && el != hintsElement) { - if (el.nodeName.toUpperCase() === "LI" && el.parentNode == hintsElement) return el; - el = el.parentNode; - } - } - function Widget(completion, data) { - this.id = "cm-complete-" + Math.floor(Math.random(1e6)); - this.completion = completion; - this.data = data; - this.picked = false; - var widget = this, - cm = completion.cm; - var ownerDocument = cm.getInputField().ownerDocument; - var parentWindow = ownerDocument.defaultView || ownerDocument.parentWindow; - var hints = this.hints = ownerDocument.createElement("ul"); - hints.setAttribute("role", "listbox"); - hints.setAttribute("aria-expanded", "true"); - hints.id = this.id; - var theme = completion.cm.options.theme; - hints.className = "CodeMirror-hints " + theme; - this.selectedHint = data.selectedHint || 0; - var completions = data.list; - for (var i = 0; i < completions.length; ++i) { - var elt = hints.appendChild(ownerDocument.createElement("li")), - cur = completions[i]; - var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? "" : " " + ACTIVE_HINT_ELEMENT_CLASS); - if (cur.className != null) className = cur.className + " " + className; - elt.className = className; - if (i == this.selectedHint) elt.setAttribute("aria-selected", "true"); - elt.id = this.id + "-" + i; - elt.setAttribute("role", "option"); - if (cur.render) cur.render(elt, data, cur);else elt.appendChild(ownerDocument.createTextNode(cur.displayText || getText(cur))); - elt.hintId = i; - } - var container = completion.options.container || ownerDocument.body; - var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null); - var left = pos.left, - top = pos.bottom, - below = true; - var offsetLeft = 0, - offsetTop = 0; - if (container !== ownerDocument.body) { - var isContainerPositioned = ["absolute", "relative", "fixed"].indexOf(parentWindow.getComputedStyle(container).position) !== -1; - var offsetParent = isContainerPositioned ? container : container.offsetParent; - var offsetParentPosition = offsetParent.getBoundingClientRect(); - var bodyPosition = ownerDocument.body.getBoundingClientRect(); - offsetLeft = offsetParentPosition.left - bodyPosition.left - offsetParent.scrollLeft; - offsetTop = offsetParentPosition.top - bodyPosition.top - offsetParent.scrollTop; - } - hints.style.left = left - offsetLeft + "px"; - hints.style.top = top - offsetTop + "px"; - var winW = parentWindow.innerWidth || Math.max(ownerDocument.body.offsetWidth, ownerDocument.documentElement.offsetWidth); - var winH = parentWindow.innerHeight || Math.max(ownerDocument.body.offsetHeight, ownerDocument.documentElement.offsetHeight); - container.appendChild(hints); - cm.getInputField().setAttribute("aria-autocomplete", "list"); - cm.getInputField().setAttribute("aria-owns", this.id); - cm.getInputField().setAttribute("aria-activedescendant", this.id + "-" + this.selectedHint); - var box = completion.options.moveOnOverlap ? hints.getBoundingClientRect() : new DOMRect(); - var scrolls = completion.options.paddingForScrollbar ? hints.scrollHeight > hints.clientHeight + 1 : false; - var startScroll; - setTimeout(function () { - startScroll = cm.getScrollInfo(); - }); - var overlapY = box.bottom - winH; - if (overlapY > 0) { - var height = box.bottom - box.top, - curTop = pos.top - (pos.bottom - box.top); - if (curTop - height > 0) { - hints.style.top = (top = pos.top - height - offsetTop) + "px"; - below = false; - } else if (height > winH) { - hints.style.height = winH - 5 + "px"; - hints.style.top = (top = pos.bottom - box.top - offsetTop) + "px"; - var cursor = cm.getCursor(); - if (data.from.ch != cursor.ch) { - pos = cm.cursorCoords(cursor); - hints.style.left = (left = pos.left - offsetLeft) + "px"; - box = hints.getBoundingClientRect(); - } - } - } - var overlapX = box.right - winW; - if (scrolls) overlapX += cm.display.nativeBarWidth; - if (overlapX > 0) { - if (box.right - box.left > winW) { - hints.style.width = winW - 5 + "px"; - overlapX -= box.right - box.left - winW; - } - hints.style.left = (left = pos.left - overlapX - offsetLeft) + "px"; - } - if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling) node.style.paddingRight = cm.display.nativeBarWidth + "px"; - cm.addKeyMap(this.keyMap = buildKeyMap(completion, { - moveFocus: function (n, avoidWrap) { - widget.changeActive(widget.selectedHint + n, avoidWrap); - }, - setFocus: function (n) { - widget.changeActive(n); - }, - menuSize: function () { - return widget.screenAmount(); - }, - length: completions.length, - close: function () { - completion.close(); - }, - pick: function () { - widget.pick(); - }, - data - })); - if (completion.options.closeOnUnfocus) { - var closingOnBlur; - cm.on("blur", this.onBlur = function () { - closingOnBlur = setTimeout(function () { - completion.close(); - }, 100); - }); - cm.on("focus", this.onFocus = function () { - clearTimeout(closingOnBlur); - }); - } - cm.on("scroll", this.onScroll = function () { - var curScroll = cm.getScrollInfo(), - editor = cm.getWrapperElement().getBoundingClientRect(); - if (!startScroll) startScroll = cm.getScrollInfo(); - var newTop = top + startScroll.top - curScroll.top; - var point = newTop - (parentWindow.pageYOffset || (ownerDocument.documentElement || ownerDocument.body).scrollTop); - if (!below) point += hints.offsetHeight; - if (point <= editor.top || point >= editor.bottom) return completion.close(); - hints.style.top = newTop + "px"; - hints.style.left = left + startScroll.left - curScroll.left + "px"; - }); - CodeMirror.on(hints, "dblclick", function (e) { - var t = getHintElement(hints, e.target || e.srcElement); - if (t && t.hintId != null) { - widget.changeActive(t.hintId); - widget.pick(); - } - }); - CodeMirror.on(hints, "click", function (e) { - var t = getHintElement(hints, e.target || e.srcElement); - if (t && t.hintId != null) { - widget.changeActive(t.hintId); - if (completion.options.completeOnSingleClick) widget.pick(); - } - }); - CodeMirror.on(hints, "mousedown", function () { - setTimeout(function () { - cm.focus(); - }, 20); - }); - var selectedHintRange = this.getSelectedHintRange(); - if (selectedHintRange.from !== 0 || selectedHintRange.to !== 0) { - this.scrollToActive(); - } - CodeMirror.signal(data, "select", completions[this.selectedHint], hints.childNodes[this.selectedHint]); - return true; - } - Widget.prototype = { - close: function () { - if (this.completion.widget != this) return; - this.completion.widget = null; - if (this.hints.parentNode) this.hints.parentNode.removeChild(this.hints); - this.completion.cm.removeKeyMap(this.keyMap); - var input = this.completion.cm.getInputField(); - input.removeAttribute("aria-activedescendant"); - input.removeAttribute("aria-owns"); - var cm = this.completion.cm; - if (this.completion.options.closeOnUnfocus) { - cm.off("blur", this.onBlur); - cm.off("focus", this.onFocus); - } - cm.off("scroll", this.onScroll); - }, - disable: function () { - this.completion.cm.removeKeyMap(this.keyMap); - var widget = this; - this.keyMap = { - Enter: function () { - widget.picked = true; - } - }; - this.completion.cm.addKeyMap(this.keyMap); - }, - pick: function () { - this.completion.pick(this.data, this.selectedHint); - }, - changeActive: function (i, avoidWrap) { - if (i >= this.data.list.length) i = avoidWrap ? this.data.list.length - 1 : 0;else if (i < 0) i = avoidWrap ? 0 : this.data.list.length - 1; - if (this.selectedHint == i) return; - var node = this.hints.childNodes[this.selectedHint]; - if (node) { - node.className = node.className.replace(" " + ACTIVE_HINT_ELEMENT_CLASS, ""); - node.removeAttribute("aria-selected"); - } - node = this.hints.childNodes[this.selectedHint = i]; - node.className += " " + ACTIVE_HINT_ELEMENT_CLASS; - node.setAttribute("aria-selected", "true"); - this.completion.cm.getInputField().setAttribute("aria-activedescendant", node.id); - this.scrollToActive(); - CodeMirror.signal(this.data, "select", this.data.list[this.selectedHint], node); - }, - scrollToActive: function () { - var selectedHintRange = this.getSelectedHintRange(); - var node1 = this.hints.childNodes[selectedHintRange.from]; - var node2 = this.hints.childNodes[selectedHintRange.to]; - var firstNode = this.hints.firstChild; - if (node1.offsetTop < this.hints.scrollTop) this.hints.scrollTop = node1.offsetTop - firstNode.offsetTop;else if (node2.offsetTop + node2.offsetHeight > this.hints.scrollTop + this.hints.clientHeight) this.hints.scrollTop = node2.offsetTop + node2.offsetHeight - this.hints.clientHeight + firstNode.offsetTop; - }, - screenAmount: function () { - return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1; - }, - getSelectedHintRange: function () { - var margin = this.completion.options.scrollMargin || 0; - return { - from: Math.max(0, this.selectedHint - margin), - to: Math.min(this.data.list.length - 1, this.selectedHint + margin) - }; - } - }; - function applicableHelpers(cm, helpers) { - if (!cm.somethingSelected()) return helpers; - var result = []; - for (var i = 0; i < helpers.length; i++) if (helpers[i].supportsSelection) result.push(helpers[i]); - return result; - } - function fetchHints(hint, cm, options, callback) { - if (hint.async) { - hint(cm, callback, options); - } else { - var result = hint(cm, options); - if (result && result.then) result.then(callback);else callback(result); - } - } - function resolveAutoHints(cm, pos) { - var helpers = cm.getHelpers(pos, "hint"), - words; - if (helpers.length) { - var resolved = function (cm2, callback, options) { - var app = applicableHelpers(cm2, helpers); - function run(i) { - if (i == app.length) return callback(null); - fetchHints(app[i], cm2, options, function (result) { - if (result && result.list.length > 0) callback(result);else run(i + 1); - }); - } - run(0); - }; - resolved.async = true; - resolved.supportsSelection = true; - return resolved; - } else if (words = cm.getHelper(cm.getCursor(), "hintWords")) { - return function (cm2) { - return CodeMirror.hint.fromList(cm2, { - words - }); - }; - } else if (CodeMirror.hint.anyword) { - return function (cm2, options) { - return CodeMirror.hint.anyword(cm2, options); - }; - } else { - return function () {}; - } - } - CodeMirror.registerHelper("hint", "auto", { - resolve: resolveAutoHints - }); - CodeMirror.registerHelper("hint", "fromList", function (cm, options) { - var cur = cm.getCursor(), - token = cm.getTokenAt(cur); - var term, - from = CodeMirror.Pos(cur.line, token.start), - to = cur; - if (token.start < cur.ch && /\w/.test(token.string.charAt(cur.ch - token.start - 1))) { - term = token.string.substr(0, cur.ch - token.start); - } else { - term = ""; - from = cur; - } - var found = []; - for (var i = 0; i < options.words.length; i++) { - var word = options.words[i]; - if (word.slice(0, term.length) == term) found.push(word); - } - if (found.length) return { - list: found, - from, - to - }; - }); - CodeMirror.commands.autocomplete = CodeMirror.showHint; - var defaultOptions = { - hint: CodeMirror.hint.auto, - completeSingle: true, - alignWithWord: true, - closeCharacters: /[\s()\[\]{};:>,]/, - closeOnPick: true, - closeOnUnfocus: true, - updateOnCursorActivity: true, - completeOnSingleClick: true, - container: null, - customKeys: null, - extraKeys: null, - paddingForScrollbar: true, - moveOnOverlap: true - }; - CodeMirror.defineOption("hintOptions", null); - }); -})(); -var showHintExports = showHint$2.exports; -const showHint = /* @__PURE__ */codemirror.getDefaultExportFromCjs(showHintExports); -const showHint$1 = /* @__PURE__ */_mergeNamespaces({ - __proto__: null, - default: showHint -}, [showHintExports]); -exports.showHint = showHint$1; - -/***/ }), - -/***/ "../../graphiql-react/dist/sublime.cjs.js": -/*!************************************************!*\ - !*** ../../graphiql-react/dist/sublime.cjs.js ***! - \************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - - -const codemirror = __webpack_require__(/*! ./codemirror.cjs2.js */ "../../graphiql-react/dist/codemirror.cjs2.js"); -const searchcursor = __webpack_require__(/*! ./searchcursor.cjs2.js */ "../../graphiql-react/dist/searchcursor.cjs2.js"); -const matchbrackets = __webpack_require__(/*! ./matchbrackets.cjs2.js */ "../../graphiql-react/dist/matchbrackets.cjs2.js"); -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { - value: "Module" - })); -} -var sublime$2 = { - exports: {} -}; -(function (module2, exports2) { - (function (mod) { - mod(codemirror.requireCodemirror(), searchcursor.requireSearchcursor(), matchbrackets.requireMatchbrackets()); - })(function (CodeMirror) { - var cmds = CodeMirror.commands; - var Pos = CodeMirror.Pos; - function findPosSubword(doc, start, dir) { - if (dir < 0 && start.ch == 0) return doc.clipPos(Pos(start.line - 1)); - var line = doc.getLine(start.line); - if (dir > 0 && start.ch >= line.length) return doc.clipPos(Pos(start.line + 1, 0)); - var state = "start", - type, - startPos = start.ch; - for (var pos = startPos, e = dir < 0 ? 0 : line.length, i = 0; pos != e; pos += dir, i++) { - var next = line.charAt(dir < 0 ? pos - 1 : pos); - var cat = next != "_" && CodeMirror.isWordChar(next) ? "w" : "o"; - if (cat == "w" && next.toUpperCase() == next) cat = "W"; - if (state == "start") { - if (cat != "o") { - state = "in"; - type = cat; - } else startPos = pos + dir; - } else if (state == "in") { - if (type != cat) { - if (type == "w" && cat == "W" && dir < 0) pos--; - if (type == "W" && cat == "w" && dir > 0) { - if (pos == startPos + 1) { - type = "w"; - continue; - } else pos--; - } - break; - } - } - } - return Pos(start.line, pos); - } - function moveSubword(cm, dir) { - cm.extendSelectionsBy(function (range) { - if (cm.display.shift || cm.doc.extend || range.empty()) return findPosSubword(cm.doc, range.head, dir);else return dir < 0 ? range.from() : range.to(); - }); - } - cmds.goSubwordLeft = function (cm) { - moveSubword(cm, -1); - }; - cmds.goSubwordRight = function (cm) { - moveSubword(cm, 1); - }; - cmds.scrollLineUp = function (cm) { - var info = cm.getScrollInfo(); - if (!cm.somethingSelected()) { - var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, "local"); - if (cm.getCursor().line >= visibleBottomLine) cm.execCommand("goLineUp"); - } - cm.scrollTo(null, info.top - cm.defaultTextHeight()); - }; - cmds.scrollLineDown = function (cm) { - var info = cm.getScrollInfo(); - if (!cm.somethingSelected()) { - var visibleTopLine = cm.lineAtHeight(info.top, "local") + 1; - if (cm.getCursor().line <= visibleTopLine) cm.execCommand("goLineDown"); - } - cm.scrollTo(null, info.top + cm.defaultTextHeight()); - }; - cmds.splitSelectionByLine = function (cm) { - var ranges = cm.listSelections(), - lineRanges = []; - for (var i = 0; i < ranges.length; i++) { - var from = ranges[i].from(), - to = ranges[i].to(); - for (var line = from.line; line <= to.line; ++line) if (!(to.line > from.line && line == to.line && to.ch == 0)) lineRanges.push({ - anchor: line == from.line ? from : Pos(line, 0), - head: line == to.line ? to : Pos(line) - }); - } - cm.setSelections(lineRanges, 0); - }; - cmds.singleSelectionTop = function (cm) { - var range = cm.listSelections()[0]; - cm.setSelection(range.anchor, range.head, { - scroll: false - }); - }; - cmds.selectLine = function (cm) { - var ranges = cm.listSelections(), - extended = []; - for (var i = 0; i < ranges.length; i++) { - var range = ranges[i]; - extended.push({ - anchor: Pos(range.from().line, 0), - head: Pos(range.to().line + 1, 0) - }); - } - cm.setSelections(extended); - }; - function insertLine(cm, above) { - if (cm.isReadOnly()) return CodeMirror.Pass; - cm.operation(function () { - var len = cm.listSelections().length, - newSelection = [], - last = -1; - for (var i = 0; i < len; i++) { - var head = cm.listSelections()[i].head; - if (head.line <= last) continue; - var at = Pos(head.line + (above ? 0 : 1), 0); - cm.replaceRange("\n", at, null, "+insertLine"); - cm.indentLine(at.line, null, true); - newSelection.push({ - head: at, - anchor: at - }); - last = head.line + 1; - } - cm.setSelections(newSelection); - }); - cm.execCommand("indentAuto"); - } - cmds.insertLineAfter = function (cm) { - return insertLine(cm, false); - }; - cmds.insertLineBefore = function (cm) { - return insertLine(cm, true); - }; - function wordAt(cm, pos) { - var start = pos.ch, - end = start, - line = cm.getLine(pos.line); - while (start && CodeMirror.isWordChar(line.charAt(start - 1))) --start; - while (end < line.length && CodeMirror.isWordChar(line.charAt(end))) ++end; - return { - from: Pos(pos.line, start), - to: Pos(pos.line, end), - word: line.slice(start, end) - }; - } - cmds.selectNextOccurrence = function (cm) { - var from = cm.getCursor("from"), - to = cm.getCursor("to"); - var fullWord = cm.state.sublimeFindFullWord == cm.doc.sel; - if (CodeMirror.cmpPos(from, to) == 0) { - var word = wordAt(cm, from); - if (!word.word) return; - cm.setSelection(word.from, word.to); - fullWord = true; - } else { - var text = cm.getRange(from, to); - var query = fullWord ? new RegExp("\\b" + text + "\\b") : text; - var cur = cm.getSearchCursor(query, to); - var found = cur.findNext(); - if (!found) { - cur = cm.getSearchCursor(query, Pos(cm.firstLine(), 0)); - found = cur.findNext(); - } - if (!found || isSelectedRange(cm.listSelections(), cur.from(), cur.to())) return; - cm.addSelection(cur.from(), cur.to()); - } - if (fullWord) cm.state.sublimeFindFullWord = cm.doc.sel; - }; - cmds.skipAndSelectNextOccurrence = function (cm) { - var prevAnchor = cm.getCursor("anchor"), - prevHead = cm.getCursor("head"); - cmds.selectNextOccurrence(cm); - if (CodeMirror.cmpPos(prevAnchor, prevHead) != 0) { - cm.doc.setSelections(cm.doc.listSelections().filter(function (sel) { - return sel.anchor != prevAnchor || sel.head != prevHead; - })); - } - }; - function addCursorToSelection(cm, dir) { - var ranges = cm.listSelections(), - newRanges = []; - for (var i = 0; i < ranges.length; i++) { - var range = ranges[i]; - var newAnchor = cm.findPosV(range.anchor, dir, "line", range.anchor.goalColumn); - var newHead = cm.findPosV(range.head, dir, "line", range.head.goalColumn); - newAnchor.goalColumn = range.anchor.goalColumn != null ? range.anchor.goalColumn : cm.cursorCoords(range.anchor, "div").left; - newHead.goalColumn = range.head.goalColumn != null ? range.head.goalColumn : cm.cursorCoords(range.head, "div").left; - var newRange = { - anchor: newAnchor, - head: newHead - }; - newRanges.push(range); - newRanges.push(newRange); - } - cm.setSelections(newRanges); - } - cmds.addCursorToPrevLine = function (cm) { - addCursorToSelection(cm, -1); - }; - cmds.addCursorToNextLine = function (cm) { - addCursorToSelection(cm, 1); - }; - function isSelectedRange(ranges, from, to) { - for (var i = 0; i < ranges.length; i++) if (CodeMirror.cmpPos(ranges[i].from(), from) == 0 && CodeMirror.cmpPos(ranges[i].to(), to) == 0) return true; - return false; - } - var mirror = "(){}[]"; - function selectBetweenBrackets(cm) { - var ranges = cm.listSelections(), - newRanges = []; - for (var i = 0; i < ranges.length; i++) { - var range = ranges[i], - pos = range.head, - opening = cm.scanForBracket(pos, -1); - if (!opening) return false; - for (;;) { - var closing = cm.scanForBracket(pos, 1); - if (!closing) return false; - if (closing.ch == mirror.charAt(mirror.indexOf(opening.ch) + 1)) { - var startPos = Pos(opening.pos.line, opening.pos.ch + 1); - if (CodeMirror.cmpPos(startPos, range.from()) == 0 && CodeMirror.cmpPos(closing.pos, range.to()) == 0) { - opening = cm.scanForBracket(opening.pos, -1); - if (!opening) return false; - } else { - newRanges.push({ - anchor: startPos, - head: closing.pos - }); - break; - } - } - pos = Pos(closing.pos.line, closing.pos.ch + 1); - } - } - cm.setSelections(newRanges); - return true; - } - cmds.selectScope = function (cm) { - selectBetweenBrackets(cm) || cm.execCommand("selectAll"); - }; - cmds.selectBetweenBrackets = function (cm) { - if (!selectBetweenBrackets(cm)) return CodeMirror.Pass; - }; - function puncType(type) { - return !type ? null : /\bpunctuation\b/.test(type) ? type : void 0; - } - cmds.goToBracket = function (cm) { - cm.extendSelectionsBy(function (range) { - var next = cm.scanForBracket(range.head, 1, puncType(cm.getTokenTypeAt(range.head))); - if (next && CodeMirror.cmpPos(next.pos, range.head) != 0) return next.pos; - var prev = cm.scanForBracket(range.head, -1, puncType(cm.getTokenTypeAt(Pos(range.head.line, range.head.ch + 1)))); - return prev && Pos(prev.pos.line, prev.pos.ch + 1) || range.head; - }); - }; - cmds.swapLineUp = function (cm) { - if (cm.isReadOnly()) return CodeMirror.Pass; - var ranges = cm.listSelections(), - linesToMove = [], - at = cm.firstLine() - 1, - newSels = []; - for (var i = 0; i < ranges.length; i++) { - var range = ranges[i], - from = range.from().line - 1, - to = range.to().line; - newSels.push({ - anchor: Pos(range.anchor.line - 1, range.anchor.ch), - head: Pos(range.head.line - 1, range.head.ch) - }); - if (range.to().ch == 0 && !range.empty()) --to; - if (from > at) linesToMove.push(from, to);else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to; - at = to; - } - cm.operation(function () { - for (var i2 = 0; i2 < linesToMove.length; i2 += 2) { - var from2 = linesToMove[i2], - to2 = linesToMove[i2 + 1]; - var line = cm.getLine(from2); - cm.replaceRange("", Pos(from2, 0), Pos(from2 + 1, 0), "+swapLine"); - if (to2 > cm.lastLine()) cm.replaceRange("\n" + line, Pos(cm.lastLine()), null, "+swapLine");else cm.replaceRange(line + "\n", Pos(to2, 0), null, "+swapLine"); - } - cm.setSelections(newSels); - cm.scrollIntoView(); - }); - }; - cmds.swapLineDown = function (cm) { - if (cm.isReadOnly()) return CodeMirror.Pass; - var ranges = cm.listSelections(), - linesToMove = [], - at = cm.lastLine() + 1; - for (var i = ranges.length - 1; i >= 0; i--) { - var range = ranges[i], - from = range.to().line + 1, - to = range.from().line; - if (range.to().ch == 0 && !range.empty()) from--; - if (from < at) linesToMove.push(from, to);else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to; - at = to; - } - cm.operation(function () { - for (var i2 = linesToMove.length - 2; i2 >= 0; i2 -= 2) { - var from2 = linesToMove[i2], - to2 = linesToMove[i2 + 1]; - var line = cm.getLine(from2); - if (from2 == cm.lastLine()) cm.replaceRange("", Pos(from2 - 1), Pos(from2), "+swapLine");else cm.replaceRange("", Pos(from2, 0), Pos(from2 + 1, 0), "+swapLine"); - cm.replaceRange(line + "\n", Pos(to2, 0), null, "+swapLine"); - } - cm.scrollIntoView(); - }); - }; - cmds.toggleCommentIndented = function (cm) { - cm.toggleComment({ - indent: true - }); - }; - cmds.joinLines = function (cm) { - var ranges = cm.listSelections(), - joined = []; - for (var i = 0; i < ranges.length; i++) { - var range = ranges[i], - from = range.from(); - var start = from.line, - end = range.to().line; - while (i < ranges.length - 1 && ranges[i + 1].from().line == end) end = ranges[++i].to().line; - joined.push({ - start, - end, - anchor: !range.empty() && from - }); - } - cm.operation(function () { - var offset = 0, - ranges2 = []; - for (var i2 = 0; i2 < joined.length; i2++) { - var obj = joined[i2]; - var anchor = obj.anchor && Pos(obj.anchor.line - offset, obj.anchor.ch), - head; - for (var line = obj.start; line <= obj.end; line++) { - var actual = line - offset; - if (line == obj.end) head = Pos(actual, cm.getLine(actual).length + 1); - if (actual < cm.lastLine()) { - cm.replaceRange(" ", Pos(actual), Pos(actual + 1, /^\s*/.exec(cm.getLine(actual + 1))[0].length)); - ++offset; - } - } - ranges2.push({ - anchor: anchor || head, - head - }); - } - cm.setSelections(ranges2, 0); - }); - }; - cmds.duplicateLine = function (cm) { - cm.operation(function () { - var rangeCount = cm.listSelections().length; - for (var i = 0; i < rangeCount; i++) { - var range = cm.listSelections()[i]; - if (range.empty()) cm.replaceRange(cm.getLine(range.head.line) + "\n", Pos(range.head.line, 0));else cm.replaceRange(cm.getRange(range.from(), range.to()), range.from()); - } - cm.scrollIntoView(); - }); - }; - function sortLines(cm, caseSensitive, direction) { - if (cm.isReadOnly()) return CodeMirror.Pass; - var ranges = cm.listSelections(), - toSort = [], - selected; - for (var i = 0; i < ranges.length; i++) { - var range = ranges[i]; - if (range.empty()) continue; - var from = range.from().line, - to = range.to().line; - while (i < ranges.length - 1 && ranges[i + 1].from().line == to) to = ranges[++i].to().line; - if (!ranges[i].to().ch) to--; - toSort.push(from, to); - } - if (toSort.length) selected = true;else toSort.push(cm.firstLine(), cm.lastLine()); - cm.operation(function () { - var ranges2 = []; - for (var i2 = 0; i2 < toSort.length; i2 += 2) { - var from2 = toSort[i2], - to2 = toSort[i2 + 1]; - var start = Pos(from2, 0), - end = Pos(to2); - var lines = cm.getRange(start, end, false); - if (caseSensitive) lines.sort(function (a, b) { - return a < b ? -direction : a == b ? 0 : direction; - });else lines.sort(function (a, b) { - var au = a.toUpperCase(), - bu = b.toUpperCase(); - if (au != bu) { - a = au; - b = bu; - } - return a < b ? -direction : a == b ? 0 : direction; - }); - cm.replaceRange(lines, start, end); - if (selected) ranges2.push({ - anchor: start, - head: Pos(to2 + 1, 0) - }); - } - if (selected) cm.setSelections(ranges2, 0); - }); - } - cmds.sortLines = function (cm) { - sortLines(cm, true, 1); - }; - cmds.reverseSortLines = function (cm) { - sortLines(cm, true, -1); - }; - cmds.sortLinesInsensitive = function (cm) { - sortLines(cm, false, 1); - }; - cmds.reverseSortLinesInsensitive = function (cm) { - sortLines(cm, false, -1); - }; - cmds.nextBookmark = function (cm) { - var marks = cm.state.sublimeBookmarks; - if (marks) while (marks.length) { - var current = marks.shift(); - var found = current.find(); - if (found) { - marks.push(current); - return cm.setSelection(found.from, found.to); - } - } - }; - cmds.prevBookmark = function (cm) { - var marks = cm.state.sublimeBookmarks; - if (marks) while (marks.length) { - marks.unshift(marks.pop()); - var found = marks[marks.length - 1].find(); - if (!found) marks.pop();else return cm.setSelection(found.from, found.to); - } - }; - cmds.toggleBookmark = function (cm) { - var ranges = cm.listSelections(); - var marks = cm.state.sublimeBookmarks || (cm.state.sublimeBookmarks = []); - for (var i = 0; i < ranges.length; i++) { - var from = ranges[i].from(), - to = ranges[i].to(); - var found = ranges[i].empty() ? cm.findMarksAt(from) : cm.findMarks(from, to); - for (var j = 0; j < found.length; j++) { - if (found[j].sublimeBookmark) { - found[j].clear(); - for (var k = 0; k < marks.length; k++) if (marks[k] == found[j]) marks.splice(k--, 1); - break; - } - } - if (j == found.length) marks.push(cm.markText(from, to, { - sublimeBookmark: true, - clearWhenEmpty: false - })); - } - }; - cmds.clearBookmarks = function (cm) { - var marks = cm.state.sublimeBookmarks; - if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear(); - marks.length = 0; - }; - cmds.selectBookmarks = function (cm) { - var marks = cm.state.sublimeBookmarks, - ranges = []; - if (marks) for (var i = 0; i < marks.length; i++) { - var found = marks[i].find(); - if (!found) marks.splice(i--, 0);else ranges.push({ - anchor: found.from, - head: found.to - }); - } - if (ranges.length) cm.setSelections(ranges, 0); - }; - function modifyWordOrSelection(cm, mod) { - cm.operation(function () { - var ranges = cm.listSelections(), - indices = [], - replacements = []; - for (var i = 0; i < ranges.length; i++) { - var range = ranges[i]; - if (range.empty()) { - indices.push(i); - replacements.push(""); - } else replacements.push(mod(cm.getRange(range.from(), range.to()))); - } - cm.replaceSelections(replacements, "around", "case"); - for (var i = indices.length - 1, at; i >= 0; i--) { - var range = ranges[indices[i]]; - if (at && CodeMirror.cmpPos(range.head, at) > 0) continue; - var word = wordAt(cm, range.head); - at = word.from; - cm.replaceRange(mod(word.word), word.from, word.to); - } - }); - } - cmds.smartBackspace = function (cm) { - if (cm.somethingSelected()) return CodeMirror.Pass; - cm.operation(function () { - var cursors = cm.listSelections(); - var indentUnit = cm.getOption("indentUnit"); - for (var i = cursors.length - 1; i >= 0; i--) { - var cursor = cursors[i].head; - var toStartOfLine = cm.getRange({ - line: cursor.line, - ch: 0 - }, cursor); - var column = CodeMirror.countColumn(toStartOfLine, null, cm.getOption("tabSize")); - var deletePos = cm.findPosH(cursor, -1, "char", false); - if (toStartOfLine && !/\S/.test(toStartOfLine) && column % indentUnit == 0) { - var prevIndent = new Pos(cursor.line, CodeMirror.findColumn(toStartOfLine, column - indentUnit, indentUnit)); - if (prevIndent.ch != cursor.ch) deletePos = prevIndent; - } - cm.replaceRange("", deletePos, cursor, "+delete"); - } - }); - }; - cmds.delLineRight = function (cm) { - cm.operation(function () { - var ranges = cm.listSelections(); - for (var i = ranges.length - 1; i >= 0; i--) cm.replaceRange("", ranges[i].anchor, Pos(ranges[i].to().line), "+delete"); - cm.scrollIntoView(); - }); - }; - cmds.upcaseAtCursor = function (cm) { - modifyWordOrSelection(cm, function (str) { - return str.toUpperCase(); - }); - }; - cmds.downcaseAtCursor = function (cm) { - modifyWordOrSelection(cm, function (str) { - return str.toLowerCase(); - }); - }; - cmds.setSublimeMark = function (cm) { - if (cm.state.sublimeMark) cm.state.sublimeMark.clear(); - cm.state.sublimeMark = cm.setBookmark(cm.getCursor()); - }; - cmds.selectToSublimeMark = function (cm) { - var found = cm.state.sublimeMark && cm.state.sublimeMark.find(); - if (found) cm.setSelection(cm.getCursor(), found); - }; - cmds.deleteToSublimeMark = function (cm) { - var found = cm.state.sublimeMark && cm.state.sublimeMark.find(); - if (found) { - var from = cm.getCursor(), - to = found; - if (CodeMirror.cmpPos(from, to) > 0) { - var tmp = to; - to = from; - from = tmp; - } - cm.state.sublimeKilled = cm.getRange(from, to); - cm.replaceRange("", from, to); - } - }; - cmds.swapWithSublimeMark = function (cm) { - var found = cm.state.sublimeMark && cm.state.sublimeMark.find(); - if (found) { - cm.state.sublimeMark.clear(); - cm.state.sublimeMark = cm.setBookmark(cm.getCursor()); - cm.setCursor(found); - } - }; - cmds.sublimeYank = function (cm) { - if (cm.state.sublimeKilled != null) cm.replaceSelection(cm.state.sublimeKilled, null, "paste"); - }; - cmds.showInCenter = function (cm) { - var pos = cm.cursorCoords(null, "local"); - cm.scrollTo(null, (pos.top + pos.bottom) / 2 - cm.getScrollInfo().clientHeight / 2); - }; - function getTarget(cm) { - var from = cm.getCursor("from"), - to = cm.getCursor("to"); - if (CodeMirror.cmpPos(from, to) == 0) { - var word = wordAt(cm, from); - if (!word.word) return; - from = word.from; - to = word.to; - } - return { - from, - to, - query: cm.getRange(from, to), - word - }; - } - function findAndGoTo(cm, forward) { - var target = getTarget(cm); - if (!target) return; - var query = target.query; - var cur = cm.getSearchCursor(query, forward ? target.to : target.from); - if (forward ? cur.findNext() : cur.findPrevious()) { - cm.setSelection(cur.from(), cur.to()); - } else { - cur = cm.getSearchCursor(query, forward ? Pos(cm.firstLine(), 0) : cm.clipPos(Pos(cm.lastLine()))); - if (forward ? cur.findNext() : cur.findPrevious()) cm.setSelection(cur.from(), cur.to());else if (target.word) cm.setSelection(target.from, target.to); - } - } - cmds.findUnder = function (cm) { - findAndGoTo(cm, true); - }; - cmds.findUnderPrevious = function (cm) { - findAndGoTo(cm, false); - }; - cmds.findAllUnder = function (cm) { - var target = getTarget(cm); - if (!target) return; - var cur = cm.getSearchCursor(target.query); - var matches = []; - var primaryIndex = -1; - while (cur.findNext()) { - matches.push({ - anchor: cur.from(), - head: cur.to() - }); - if (cur.from().line <= target.from.line && cur.from().ch <= target.from.ch) primaryIndex++; - } - cm.setSelections(matches, primaryIndex); - }; - var keyMap = CodeMirror.keyMap; - keyMap.macSublime = { - "Cmd-Left": "goLineStartSmart", - "Shift-Tab": "indentLess", - "Shift-Ctrl-K": "deleteLine", - "Alt-Q": "wrapLines", - "Ctrl-Left": "goSubwordLeft", - "Ctrl-Right": "goSubwordRight", - "Ctrl-Alt-Up": "scrollLineUp", - "Ctrl-Alt-Down": "scrollLineDown", - "Cmd-L": "selectLine", - "Shift-Cmd-L": "splitSelectionByLine", - "Esc": "singleSelectionTop", - "Cmd-Enter": "insertLineAfter", - "Shift-Cmd-Enter": "insertLineBefore", - "Cmd-D": "selectNextOccurrence", - "Shift-Cmd-Space": "selectScope", - "Shift-Cmd-M": "selectBetweenBrackets", - "Cmd-M": "goToBracket", - "Cmd-Ctrl-Up": "swapLineUp", - "Cmd-Ctrl-Down": "swapLineDown", - "Cmd-/": "toggleCommentIndented", - "Cmd-J": "joinLines", - "Shift-Cmd-D": "duplicateLine", - "F5": "sortLines", - "Shift-F5": "reverseSortLines", - "Cmd-F5": "sortLinesInsensitive", - "Shift-Cmd-F5": "reverseSortLinesInsensitive", - "F2": "nextBookmark", - "Shift-F2": "prevBookmark", - "Cmd-F2": "toggleBookmark", - "Shift-Cmd-F2": "clearBookmarks", - "Alt-F2": "selectBookmarks", - "Backspace": "smartBackspace", - "Cmd-K Cmd-D": "skipAndSelectNextOccurrence", - "Cmd-K Cmd-K": "delLineRight", - "Cmd-K Cmd-U": "upcaseAtCursor", - "Cmd-K Cmd-L": "downcaseAtCursor", - "Cmd-K Cmd-Space": "setSublimeMark", - "Cmd-K Cmd-A": "selectToSublimeMark", - "Cmd-K Cmd-W": "deleteToSublimeMark", - "Cmd-K Cmd-X": "swapWithSublimeMark", - "Cmd-K Cmd-Y": "sublimeYank", - "Cmd-K Cmd-C": "showInCenter", - "Cmd-K Cmd-G": "clearBookmarks", - "Cmd-K Cmd-Backspace": "delLineLeft", - "Cmd-K Cmd-1": "foldAll", - "Cmd-K Cmd-0": "unfoldAll", - "Cmd-K Cmd-J": "unfoldAll", - "Ctrl-Shift-Up": "addCursorToPrevLine", - "Ctrl-Shift-Down": "addCursorToNextLine", - "Cmd-F3": "findUnder", - "Shift-Cmd-F3": "findUnderPrevious", - "Alt-F3": "findAllUnder", - "Shift-Cmd-[": "fold", - "Shift-Cmd-]": "unfold", - "Cmd-I": "findIncremental", - "Shift-Cmd-I": "findIncrementalReverse", - "Cmd-H": "replace", - "F3": "findNext", - "Shift-F3": "findPrev", - "fallthrough": "macDefault" - }; - CodeMirror.normalizeKeyMap(keyMap.macSublime); - keyMap.pcSublime = { - "Shift-Tab": "indentLess", - "Shift-Ctrl-K": "deleteLine", - "Alt-Q": "wrapLines", - "Ctrl-T": "transposeChars", - "Alt-Left": "goSubwordLeft", - "Alt-Right": "goSubwordRight", - "Ctrl-Up": "scrollLineUp", - "Ctrl-Down": "scrollLineDown", - "Ctrl-L": "selectLine", - "Shift-Ctrl-L": "splitSelectionByLine", - "Esc": "singleSelectionTop", - "Ctrl-Enter": "insertLineAfter", - "Shift-Ctrl-Enter": "insertLineBefore", - "Ctrl-D": "selectNextOccurrence", - "Shift-Ctrl-Space": "selectScope", - "Shift-Ctrl-M": "selectBetweenBrackets", - "Ctrl-M": "goToBracket", - "Shift-Ctrl-Up": "swapLineUp", - "Shift-Ctrl-Down": "swapLineDown", - "Ctrl-/": "toggleCommentIndented", - "Ctrl-J": "joinLines", - "Shift-Ctrl-D": "duplicateLine", - "F9": "sortLines", - "Shift-F9": "reverseSortLines", - "Ctrl-F9": "sortLinesInsensitive", - "Shift-Ctrl-F9": "reverseSortLinesInsensitive", - "F2": "nextBookmark", - "Shift-F2": "prevBookmark", - "Ctrl-F2": "toggleBookmark", - "Shift-Ctrl-F2": "clearBookmarks", - "Alt-F2": "selectBookmarks", - "Backspace": "smartBackspace", - "Ctrl-K Ctrl-D": "skipAndSelectNextOccurrence", - "Ctrl-K Ctrl-K": "delLineRight", - "Ctrl-K Ctrl-U": "upcaseAtCursor", - "Ctrl-K Ctrl-L": "downcaseAtCursor", - "Ctrl-K Ctrl-Space": "setSublimeMark", - "Ctrl-K Ctrl-A": "selectToSublimeMark", - "Ctrl-K Ctrl-W": "deleteToSublimeMark", - "Ctrl-K Ctrl-X": "swapWithSublimeMark", - "Ctrl-K Ctrl-Y": "sublimeYank", - "Ctrl-K Ctrl-C": "showInCenter", - "Ctrl-K Ctrl-G": "clearBookmarks", - "Ctrl-K Ctrl-Backspace": "delLineLeft", - "Ctrl-K Ctrl-1": "foldAll", - "Ctrl-K Ctrl-0": "unfoldAll", - "Ctrl-K Ctrl-J": "unfoldAll", - "Ctrl-Alt-Up": "addCursorToPrevLine", - "Ctrl-Alt-Down": "addCursorToNextLine", - "Ctrl-F3": "findUnder", - "Shift-Ctrl-F3": "findUnderPrevious", - "Alt-F3": "findAllUnder", - "Shift-Ctrl-[": "fold", - "Shift-Ctrl-]": "unfold", - "Ctrl-I": "findIncremental", - "Shift-Ctrl-I": "findIncrementalReverse", - "Ctrl-H": "replace", - "F3": "findNext", - "Shift-F3": "findPrev", - "fallthrough": "pcDefault" - }; - CodeMirror.normalizeKeyMap(keyMap.pcSublime); - var mac = keyMap.default == keyMap.macDefault; - keyMap.sublime = mac ? keyMap.macSublime : keyMap.pcSublime; - }); -})(); -var sublimeExports = sublime$2.exports; -const sublime = /* @__PURE__ */codemirror.getDefaultExportFromCjs(sublimeExports); -const sublime$1 = /* @__PURE__ */_mergeNamespaces({ - __proto__: null, - default: sublime -}, [sublimeExports]); -exports.sublime = sublime$1; - -/***/ }), - /***/ "../../graphiql-toolkit/dist/esm/async-helpers/index.js": /*!**************************************************************!*\ !*** ../../graphiql-toolkit/dist/esm/async-helpers/index.js ***! \**************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -78192,6 +83470,7 @@ async function fetcherReturnToPromise(fetcherResult) { \*********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -78259,6 +83538,7 @@ exports.__forAwait = __forAwait; \***********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -78292,6 +83572,7 @@ function createGraphiQLFetcher(options) { \***************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -78329,6 +83610,7 @@ var _createFetcher = __webpack_require__(/*! ./createFetcher */ "../../graphiql- \*************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -78445,6 +83727,7 @@ async function getWsFetcher(options, fetcherOpts) { \***************************************************************/ /***/ (function() { +"use strict"; /***/ }), @@ -78455,6 +83738,7 @@ async function getWsFetcher(options, fetcherOpts) { \*******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -78495,6 +83779,7 @@ function formatResult(result) { \************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -78608,6 +83893,7 @@ function isFieldType(fieldType) { \****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -78655,6 +83941,7 @@ Object.keys(_operationName).forEach(function (key) { \********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -78762,6 +84049,7 @@ function mergeAst(documentAST, schema) { \*************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -78794,6 +84082,7 @@ function getSelectedOperationName(prevOperations, prevSelectedOperationName, ope \************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -78863,6 +84152,7 @@ Object.keys(_storage).forEach(function (key) { \*******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -78937,6 +84227,7 @@ const STORAGE_NAMESPACE = "graphiql"; \*********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -78972,6 +84263,7 @@ function createLocalStorage({ \**********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -79074,6 +84366,7 @@ exports.HistoryStore = HistoryStore; \********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -79132,6 +84425,7 @@ Object.keys(_custom).forEach(function (key) { \********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -79194,12 +84488,13 @@ exports.QueryStore = QueryStore; /***/ }), -/***/ "./components/GraphiQL.tsx": -/*!*********************************!*\ - !*** ./components/GraphiQL.tsx ***! - \*********************************/ +/***/ "./GraphiQL.tsx": +/*!**********************!*\ + !*** ./GraphiQL.tsx ***! + \**********************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -79817,6 +85112,7 @@ function isChildComponentType(child, component) { \***************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -80117,6 +85413,7 @@ var _utils = __webpack_require__(/*! ./utils */ "../../graphql-language-service/ \*************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -80223,6 +85520,7 @@ exports.getFieldInsertText = getFieldInsertText; \**********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -80863,6 +86161,7 @@ function unwrapType(state) { \*********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -81085,6 +86384,7 @@ function getDefinitionForArgumentDefinition(path, text, definition) { \**********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -81207,6 +86507,7 @@ function getLocation(node) { \***************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -81400,6 +86701,7 @@ function text(into, content) { \******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -81535,6 +86837,7 @@ function concatMap(arr, fn) { \*************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -81615,6 +86918,7 @@ var _getHoverInformation = __webpack_require__(/*! ./getHoverInformation */ "../ \********************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -81734,6 +87038,7 @@ exports["default"] = CharacterStream; \****************************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -81788,6 +87093,7 @@ function p(value, style) { \**********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -81992,6 +87298,7 @@ function type(style) { \********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -82116,6 +87423,7 @@ function getContextAtPosition(queryText, cursor, schema, contextToken, options) \****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -82333,6 +87641,7 @@ function getTypeInfo(schema, tokenState) { \**********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -82494,6 +87803,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de \*****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -82715,6 +88025,7 @@ function lex(lexRules, stream) { \**********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -82763,6 +88074,7 @@ const RuleKinds = exports.RuleKinds = Object.assign(Object.assign({}, _graphql.K \***************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -82825,6 +88137,7 @@ var CompletionItemKind; \*********************************************************/ /***/ (function(__unused_webpack_module, exports) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -82890,6 +88203,7 @@ function locToRange(text, loc) { \********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -82930,6 +88244,7 @@ function collectVariables(schema, documentAST) { \************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -83000,6 +88315,7 @@ exports.getFragmentDependenciesForAST = getFragmentDependenciesForAST; \************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -83040,6 +88356,7 @@ function pointToOffset(text, point) { \*********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -83086,6 +88403,7 @@ const getQueryFacts = exports.getQueryFacts = getOperationFacts; \**************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -83325,6 +88643,7 @@ function getVariablesJSONSchema(variableToType, options) { \*********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -83432,6 +88751,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; \***************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -83479,6 +88799,7 @@ function validateWithCustomRules(schema, ast, customRules, isRelayCompatMode, is \*******************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { +"use strict"; __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin @@ -83491,6 +88812,7 @@ __webpack_require__.r(__webpack_exports__); \*******************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { +"use strict"; __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin @@ -83503,6 +88825,7 @@ __webpack_require__.r(__webpack_exports__); \***********************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { +"use strict"; __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin @@ -83515,6 +88838,7 @@ __webpack_require__.r(__webpack_exports__); \********************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { +"use strict"; __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin @@ -83527,6 +88851,7 @@ __webpack_require__.r(__webpack_exports__); \************************/ /***/ (function(module) { +"use strict"; module.exports = window["React"]; /***/ }), @@ -83537,6 +88862,7 @@ module.exports = window["React"]; \***************************/ /***/ (function(module) { +"use strict"; module.exports = window["ReactDOM"]; /***/ }), @@ -83547,6 +88873,7 @@ module.exports = window["ReactDOM"]; \***********************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; @@ -90708,6 +96035,7 @@ var Transition = Object.assign(TransitionRoot, { Child, Root: TransitionRoot }); \**************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; if (false) {} else { @@ -90723,6 +96051,7 @@ if (false) {} else { \***************************************************************/ /***/ (function(module) { +"use strict"; function _extends() { @@ -90800,8 +96129,9 @@ module.exports = _extends, module.exports.__esModule = true, module.exports["def /******/ /************************************************************************/ var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +// This entry need to be wrapped in an IIFE because it need to be in strict mode. !function() { +"use strict"; var exports = __webpack_exports__; /*!****************!*\ !*** ./cdn.ts ***! @@ -90815,7 +96145,7 @@ exports["default"] = void 0; var GraphiQLReact = _interopRequireWildcard(__webpack_require__(/*! @graphiql/react */ "../../graphiql-react/dist/index.js")); var _toolkit = __webpack_require__(/*! @graphiql/toolkit */ "../../graphiql-toolkit/dist/esm/index.js"); var GraphQL = _interopRequireWildcard(__webpack_require__(/*! graphql */ "../../../node_modules/graphql/index.mjs")); -var _GraphiQL = __webpack_require__(/*! ./components/GraphiQL */ "./components/GraphiQL.tsx"); +var _GraphiQL = __webpack_require__(/*! ./GraphiQL */ "./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"); diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js index 1492913d9..4661582a3 100644 --- a/netbox/project-static/dist/netbox.js +++ b/netbox/project-static/dist/netbox.js @@ -4,9 +4,9 @@ `+hi.join("")+` - `}}function Yi(){ti.calendarContainer.classList.add("hasWeeks");var fi=tn("div","flatpickr-weekwrapper");fi.appendChild(tn("span","flatpickr-weekday",ti.l10n.weekAbbreviation));var hi=tn("div","flatpickr-weeks");return fi.appendChild(hi),{weekWrapper:fi,weekNumbers:hi}}function Ri(fi,hi){hi===void 0&&(hi=!0);var mi=hi?fi:fi-ti.currentMonth;mi<0&&ti._hidePrevMonthArrow===!0||mi>0&&ti._hideNextMonthArrow===!0||(ti.currentMonth+=mi,(ti.currentMonth<0||ti.currentMonth>11)&&(ti.currentYear+=ti.currentMonth>11?1:-1,ti.currentMonth=(ti.currentMonth+12)%12,un("onYearChange"),Ji()),Qi(),un("onMonthChange"),Ca())}function Ii(fi,hi){if(fi===void 0&&(fi=!0),hi===void 0&&(hi=!0),ti.input.value="",ti.altInput!==void 0&&(ti.altInput.value=""),ti.mobileInput!==void 0&&(ti.mobileInput.value=""),ti.selectedDates=[],ti.latestSelectedDateObj=void 0,hi===!0&&(ti.currentYear=ti._initialDate.getFullYear(),ti.currentMonth=ti._initialDate.getMonth()),ti.config.enableTime===!0){var mi=Dl(ti.config),_i=mi.hours,Ti=mi.minutes,Ni=mi.seconds;yi(_i,Ti,Ni)}ti.redraw(),fi&&un("onChange")}function Ui(){ti.isOpen=!1,ti.isMobile||(ti.calendarContainer!==void 0&&ti.calendarContainer.classList.remove("open"),ti._input!==void 0&&ti._input.classList.remove("active")),un("onClose")}function ji(){ti.config!==void 0&&un("onDestroy");for(var fi=ti._handlers.length;fi--;)ti._handlers[fi].remove();if(ti._handlers=[],ti.mobileInput)ti.mobileInput.parentNode&&ti.mobileInput.parentNode.removeChild(ti.mobileInput),ti.mobileInput=void 0;else if(ti.calendarContainer&&ti.calendarContainer.parentNode)if(ti.config.static&&ti.calendarContainer.parentNode){var hi=ti.calendarContainer.parentNode;if(hi.lastChild&&hi.removeChild(hi.lastChild),hi.parentNode){for(;hi.firstChild;)hi.parentNode.insertBefore(hi.firstChild,hi);hi.parentNode.removeChild(hi)}}else ti.calendarContainer.parentNode.removeChild(ti.calendarContainer);ti.altInput&&(ti.input.type="text",ti.altInput.parentNode&&ti.altInput.parentNode.removeChild(ti.altInput),delete ti.altInput),ti.input&&(ti.input.type=ti.input._type,ti.input.classList.remove("flatpickr-input"),ti.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(mi){try{delete ti[mi]}catch(_i){}})}function Pi(fi){return ti.calendarContainer.contains(fi)}function ln(fi){if(ti.isOpen&&!ti.config.inline){var hi=Wn(fi),mi=Pi(hi),_i=hi===ti.input||hi===ti.altInput||ti.element.contains(hi)||fi.path&&fi.path.indexOf&&(~fi.path.indexOf(ti.input)||~fi.path.indexOf(ti.altInput)),Ti=!_i&&!mi&&!Pi(fi.relatedTarget),Ni=!ti.config.ignoredFocusElements.some(function(Ki){return Ki.contains(hi)});Ti&&Ni&&(ti.config.allowInput&&ti.setDate(ti._input.value,!1,ti.config.altInput?ti.config.altFormat:ti.config.dateFormat),ti.timeContainer!==void 0&&ti.minuteElement!==void 0&&ti.hourElement!==void 0&&ti.input.value!==""&&ti.input.value!==void 0&&li(),ti.close(),ti.config&&ti.config.mode==="range"&&ti.selectedDates.length===1&&ti.clear(!1))}}function kn(fi){if(!(!fi||ti.config.minDate&&fiti.config.maxDate.getFullYear())){var hi=fi,mi=ti.currentYear!==hi;ti.currentYear=hi||ti.currentYear,ti.config.maxDate&&ti.currentYear===ti.config.maxDate.getFullYear()?ti.currentMonth=Math.min(ti.config.maxDate.getMonth(),ti.currentMonth):ti.config.minDate&&ti.currentYear===ti.config.minDate.getFullYear()&&(ti.currentMonth=Math.max(ti.config.minDate.getMonth(),ti.currentMonth)),mi&&(ti.redraw(),un("onYearChange"),Ji())}}function yn(fi,hi){var mi;hi===void 0&&(hi=!0);var _i=ti.parseDate(fi,void 0,hi);if(ti.config.minDate&&_i&&Un(_i,ti.config.minDate,hi!==void 0?hi:!ti.minDateHasTime)<0||ti.config.maxDate&&_i&&Un(_i,ti.config.maxDate,hi!==void 0?hi:!ti.maxDateHasTime)>0)return!1;if(!ti.config.enable&&ti.config.disable.length===0)return!0;if(_i===void 0)return!1;for(var Ti=!!ti.config.enable,Ni=(mi=ti.config.enable)!==null&&mi!==void 0?mi:ti.config.disable,Ki=0,$i=void 0;Ki=$i.from.getTime()&&_i.getTime()<=$i.to.getTime())return Ti}return!Ti}function Cn(fi){return ti.daysContainer!==void 0?fi.className.indexOf("hidden")===-1&&fi.className.indexOf("flatpickr-disabled")===-1&&ti.daysContainer.contains(fi):!1}function $s(fi){var hi=fi.target===ti._input,mi=ti._input.value.trimEnd()!==Hl();hi&&mi&&!(fi.relatedTarget&&Pi(fi.relatedTarget))&&ti.setDate(ti._input.value,!0,fi.target===ti.altInput?ti.config.altFormat:ti.config.dateFormat)}function ro(fi){var hi=Wn(fi),mi=ti.config.wrap?ii.contains(hi):hi===ti._input,_i=ti.config.allowInput,Ti=ti.isOpen&&(!_i||!mi),Ni=ti.config.inline&&mi&&!_i;if(fi.keyCode===13&&mi){if(_i)return ti.setDate(ti._input.value,!0,hi===ti.altInput?ti.config.altFormat:ti.config.dateFormat),ti.close(),hi.blur();ti.open()}else if(Pi(hi)||Ti||Ni){var Ki=!!ti.timeContainer&&ti.timeContainer.contains(hi);switch(fi.keyCode){case 13:Ki?(fi.preventDefault(),li(),us()):ds(fi);break;case 27:fi.preventDefault(),us();break;case 8:case 46:mi&&!ti.config.allowInput&&(fi.preventDefault(),ti.clear());break;case 37:case 39:if(!Ki&&!mi){fi.preventDefault();var $i=oi();if(ti.daysContainer!==void 0&&(_i===!1||$i&&Cn($i))){var Xi=fi.keyCode===39?1:-1;fi.ctrlKey?(fi.stopPropagation(),Ri(Xi),qi(Mi(1),0)):qi(void 0,Xi)}}else ti.hourElement&&ti.hourElement.focus();break;case 38:case 40:fi.preventDefault();var Fi=fi.keyCode===40?1:-1;ti.daysContainer&&hi.$i!==void 0||hi===ti.input||hi===ti.altInput?fi.ctrlKey?(fi.stopPropagation(),kn(ti.currentYear-Fi),qi(Mi(1),0)):Ki||qi(void 0,Fi*7):hi===ti.currentYearElement?kn(ti.currentYear-Fi):ti.config.enableTime&&(!Ki&&ti.hourElement&&ti.hourElement.focus(),li(fi),ti._debouncedChange());break;case 9:if(Ki){var Gi=[ti.hourElement,ti.minuteElement,ti.secondElement,ti.amPM].concat(ti.pluginElements).filter(function(Kn){return Kn}),nn=Gi.indexOf(hi);if(nn!==-1){var oo=Gi[nn+(fi.shiftKey?-1:1)];fi.preventDefault(),(oo||ti._input).focus()}}else!ti.config.noCalendar&&ti.daysContainer&&ti.daysContainer.contains(hi)&&fi.shiftKey&&(fi.preventDefault(),ti._input.focus());break;default:break}}if(ti.amPM!==void 0&&hi===ti.amPM)switch(fi.key){case ti.l10n.amPM[0].charAt(0):case ti.l10n.amPM[0].charAt(0).toLowerCase():ti.amPM.textContent=ti.l10n.amPM[0],di(),lo();break;case ti.l10n.amPM[1].charAt(0):case ti.l10n.amPM[1].charAt(0).toLowerCase():ti.amPM.textContent=ti.l10n.amPM[1],di(),lo();break}(mi||Pi(hi))&&un("onKeyDown",fi)}function wo(fi,hi){if(hi===void 0&&(hi="flatpickr-day"),!(ti.selectedDates.length!==1||fi&&(!fi.classList.contains(hi)||fi.classList.contains("flatpickr-disabled")))){for(var mi=fi?fi.dateObj.getTime():ti.days.firstElementChild.dateObj.getTime(),_i=ti.parseDate(ti.selectedDates[0],void 0,!0).getTime(),Ti=Math.min(mi,ti.selectedDates[0].getTime()),Ni=Math.max(mi,ti.selectedDates[0].getTime()),Ki=!1,$i=0,Xi=0,Fi=Ti;FiTi&&Fi$i)?$i=Fi:Fi>_i&&(!Xi||Fi ."+hi));Gi.forEach(function(nn){var oo=nn.dateObj,Kn=oo.getTime(),Vs=$i>0&&Kn<$i||Xi>0&&Kn>Xi;if(Vs){nn.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(function(fs){nn.classList.remove(fs)});return}else if(Ki&&!Vs)return;["startRange","inRange","endRange","notAllowed"].forEach(function(fs){nn.classList.remove(fs)}),fi!==void 0&&(fi.classList.add(mi<=ti.selectedDates[0].getTime()?"startRange":"endRange"),_imi&&Kn===_i&&nn.classList.add("endRange"),Kn>=$i&&(Xi===0||Kn<=Xi)&&mh(Kn,_i,mi)&&nn.classList.add("inRange"))})}}function bn(){ti.isOpen&&!ti.config.static&&!ti.config.inline&&Gn()}function xo(fi,hi){if(hi===void 0&&(hi=ti._positionElement),ti.isMobile===!0){if(fi){fi.preventDefault();var mi=Wn(fi);mi&&mi.blur()}ti.mobileInput!==void 0&&(ti.mobileInput.focus(),ti.mobileInput.click()),un("onOpen");return}else if(ti._input.disabled||ti.config.inline)return;var _i=ti.isOpen;ti.isOpen=!0,_i||(ti.calendarContainer.classList.add("open"),ti._input.classList.add("active"),un("onOpen"),Gn(hi)),ti.config.enableTime===!0&&ti.config.noCalendar===!0&&ti.config.allowInput===!1&&(fi===void 0||!ti.timeContainer.contains(fi.relatedTarget))&&setTimeout(function(){return ti.hourElement.select()},50)}function ao(fi){return function(hi){var mi=ti.config["_"+fi+"Date"]=ti.parseDate(hi,ti.config.dateFormat),_i=ti.config["_"+(fi==="min"?"max":"min")+"Date"];mi!==void 0&&(ti[fi==="min"?"minDateHasTime":"maxDateHasTime"]=mi.getHours()>0||mi.getMinutes()>0||mi.getSeconds()>0),ti.selectedDates&&(ti.selectedDates=ti.selectedDates.filter(function(Ti){return yn(Ti)}),!ti.selectedDates.length&&fi==="min"&&pi(mi),lo()),ti.daysContainer&&(Bs(),mi!==void 0?ti.currentYearElement[fi]=mi.getFullYear().toString():ti.currentYearElement.removeAttribute(fi),ti.currentYearElement.disabled=!!_i&&mi!==void 0&&_i.getFullYear()===mi.getFullYear())}}function ls(){var fi=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],hi=Hn(Hn({},JSON.parse(JSON.stringify(ii.dataset||{}))),ei),mi={};ti.config.parseDate=hi.parseDate,ti.config.formatDate=hi.formatDate,Object.defineProperty(ti.config,"enable",{get:function(){return ti.config._enable},set:function(Gi){ti.config._enable=nu(Gi)}}),Object.defineProperty(ti.config,"disable",{get:function(){return ti.config._disable},set:function(Gi){ti.config._disable=nu(Gi)}});var _i=hi.mode==="time";if(!hi.dateFormat&&(hi.enableTime||_i)){var Ti=xn.defaultConfig.dateFormat||Bo.dateFormat;mi.dateFormat=hi.noCalendar||_i?"H:i"+(hi.enableSeconds?":S":""):Ti+" H:i"+(hi.enableSeconds?":S":"")}if(hi.altInput&&(hi.enableTime||_i)&&!hi.altFormat){var Ni=xn.defaultConfig.altFormat||Bo.altFormat;mi.altFormat=hi.noCalendar||_i?"h:i"+(hi.enableSeconds?":S K":" K"):Ni+(" h:i"+(hi.enableSeconds?":S":"")+" K")}Object.defineProperty(ti.config,"minDate",{get:function(){return ti.config._minDate},set:ao("min")}),Object.defineProperty(ti.config,"maxDate",{get:function(){return ti.config._maxDate},set:ao("max")});var Ki=function(Gi){return function(nn){ti.config[Gi==="min"?"_minTime":"_maxTime"]=ti.parseDate(nn,"H:i:S")}};Object.defineProperty(ti.config,"minTime",{get:function(){return ti.config._minTime},set:Ki("min")}),Object.defineProperty(ti.config,"maxTime",{get:function(){return ti.config._maxTime},set:Ki("max")}),hi.mode==="time"&&(ti.config.noCalendar=!0,ti.config.enableTime=!0),Object.assign(ti.config,mi,hi);for(var $i=0;$i-1?ti.config[Fi]=Sl(Xi[Fi]).map(si).concat(ti.config[Fi]):typeof hi[Fi]=="undefined"&&(ti.config[Fi]=Xi[Fi])}hi.altInputClass||(ti.config.altInputClass=On().className+" "+ti.config.altInputClass),un("onParseConfig")}function On(){return ti.config.wrap?ii.querySelector("[data-input]"):ii}function zn(){typeof ti.config.locale!="object"&&typeof xn.l10ns[ti.config.locale]=="undefined"&&ti.config.errorHandler(new Error("flatpickr: invalid locale "+ti.config.locale)),ti.l10n=Hn(Hn({},xn.l10ns.default),typeof ti.config.locale=="object"?ti.config.locale:ti.config.locale!=="default"?xn.l10ns[ti.config.locale]:void 0),Eo.D="("+ti.l10n.weekdays.shorthand.join("|")+")",Eo.l="("+ti.l10n.weekdays.longhand.join("|")+")",Eo.M="("+ti.l10n.months.shorthand.join("|")+")",Eo.F="("+ti.l10n.months.longhand.join("|")+")",Eo.K="("+ti.l10n.amPM[0]+"|"+ti.l10n.amPM[1]+"|"+ti.l10n.amPM[0].toLowerCase()+"|"+ti.l10n.amPM[1].toLowerCase()+")";var fi=Hn(Hn({},ei),JSON.parse(JSON.stringify(ii.dataset||{})));fi.time_24hr===void 0&&xn.defaultConfig.time_24hr===void 0&&(ti.config.time_24hr=ti.l10n.time_24hr),ti.formatDate=Qc(ti),ti.parseDate=Cl({config:ti.config,l10n:ti.l10n})}function Gn(fi){if(typeof ti.config.position=="function")return void ti.config.position(ti,fi);if(ti.calendarContainer!==void 0){un("onPreCalendarPosition");var hi=fi||ti._positionElement,mi=Array.prototype.reduce.call(ti.calendarContainer.children,function(Kh,Qh){return Kh+Qh.offsetHeight},0),_i=ti.calendarContainer.offsetWidth,Ti=ti.config.position.split(" "),Ni=Ti[0],Ki=Ti.length>1?Ti[1]:null,$i=hi.getBoundingClientRect(),Xi=window.innerHeight-$i.bottom,Fi=Ni==="above"||Ni!=="below"&&Ximi,Gi=window.pageYOffset+$i.top+(Fi?-mi-2:hi.offsetHeight+2);if(In(ti.calendarContainer,"arrowTop",!Fi),In(ti.calendarContainer,"arrowBottom",Fi),!ti.config.inline){var nn=window.pageXOffset+$i.left,oo=!1,Kn=!1;Ki==="center"?(nn-=(_i-$i.width)/2,oo=!0):Ki==="right"&&(nn-=_i-$i.width,Kn=!0),In(ti.calendarContainer,"arrowLeft",!oo&&!Kn),In(ti.calendarContainer,"arrowCenter",oo),In(ti.calendarContainer,"arrowRight",Kn);var Vs=window.document.body.offsetWidth-(window.pageXOffset+$i.right),fs=nn+_i>window.document.body.offsetWidth,Vh=Vs+_i>window.document.body.offsetWidth;if(In(ti.calendarContainer,"rightMost",fs),!ti.config.static)if(ti.calendarContainer.style.top=Gi+"px",!fs)ti.calendarContainer.style.left=nn+"px",ti.calendarContainer.style.right="auto";else if(!Vh)ti.calendarContainer.style.left="auto",ti.calendarContainer.style.right=Vs+"px";else{var Pl=Jn();if(Pl===void 0)return;var jh=window.document.body.offsetWidth,qh=Math.max(0,jh/2-_i/2),Wh=".flatpickr-calendar.centerMost:before",Uh=".flatpickr-calendar.centerMost:after",Yh=Pl.cssRules.length,Gh="{left:"+$i.left+"px;right:auto;}";In(ti.calendarContainer,"rightMost",!1),In(ti.calendarContainer,"centerMost",!0),Pl.insertRule(Wh+","+Uh+Gh,Yh),ti.calendarContainer.style.left=qh+"px",ti.calendarContainer.style.right="auto"}}}}function Jn(){for(var fi=null,hi=0;hiti.currentMonth+ti.config.showMonths-1)&&ti.config.mode!=="range";if(ti.selectedDateElem=_i,ti.config.mode==="single")ti.selectedDates=[Ti];else if(ti.config.mode==="multiple"){var Ki=Il(Ti);Ki?ti.selectedDates.splice(parseInt(Ki),1):ti.selectedDates.push(Ti)}else ti.config.mode==="range"&&(ti.selectedDates.length===2&&ti.clear(!1,!1),ti.latestSelectedDateObj=Ti,ti.selectedDates.push(Ti),Un(Ti,ti.selectedDates[0],!0)!==0&&ti.selectedDates.sort(function(Gi,nn){return Gi.getTime()-nn.getTime()}));if(di(),Ni){var $i=ti.currentYear!==Ti.getFullYear();ti.currentYear=Ti.getFullYear(),ti.currentMonth=Ti.getMonth(),$i&&(un("onYearChange"),Ji()),un("onMonthChange")}if(Ca(),Qi(),lo(),!Ni&&ti.config.mode!=="range"&&ti.config.showMonths===1?ki(_i):ti.selectedDateElem!==void 0&&ti.hourElement===void 0&&ti.selectedDateElem&&ti.selectedDateElem.focus(),ti.hourElement!==void 0&&ti.hourElement!==void 0&&ti.hourElement.focus(),ti.config.closeOnSelect){var Xi=ti.config.mode==="single"&&!ti.config.enableTime,Fi=ti.config.mode==="range"&&ti.selectedDates.length===2&&!ti.config.enableTime;(Xi||Fi)&&us()}Ei()}}var Vo={locale:[zn,vn],showMonths:[rn,ai,Mn],minDate:[xi],maxDate:[xi],positionElement:[ru],clickOpens:[function(){ti.config.clickOpens===!0?(vi(ti._input,"focus",ti.open),vi(ti._input,"click",ti.open)):(ti._input.removeEventListener("focus",ti.open),ti._input.removeEventListener("click",ti.open))}]};function Ta(fi,hi){if(fi!==null&&typeof fi=="object"){Object.assign(ti.config,fi);for(var mi in fi)Vo[mi]!==void 0&&Vo[mi].forEach(function(_i){return _i()})}else ti.config[fi]=hi,Vo[fi]!==void 0?Vo[fi].forEach(function(_i){return _i()}):wl.indexOf(fi)>-1&&(ti.config[fi]=Sl(hi));ti.redraw(),lo(!0)}function zs(fi,hi){var mi=[];if(fi instanceof Array)mi=fi.map(function(_i){return ti.parseDate(_i,hi)});else if(fi instanceof Date||typeof fi=="number")mi=[ti.parseDate(fi,hi)];else if(typeof fi=="string")switch(ti.config.mode){case"single":case"time":mi=[ti.parseDate(fi,hi)];break;case"multiple":mi=fi.split(ti.config.conjunction).map(function(_i){return ti.parseDate(_i,hi)});break;case"range":mi=fi.split(ti.l10n.rangeSeparator).map(function(_i){return ti.parseDate(_i,hi)});break;default:break}else ti.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(fi)));ti.selectedDates=ti.config.allowInvalidPreload?mi:mi.filter(function(_i){return _i instanceof Date&&yn(_i,!1)}),ti.config.mode==="range"&&ti.selectedDates.sort(function(_i,Ti){return _i.getTime()-Ti.getTime()})}function Sa(fi,hi,mi){if(hi===void 0&&(hi=!1),mi===void 0&&(mi=ti.config.dateFormat),fi!==0&&!fi||fi instanceof Array&&fi.length===0)return ti.clear(hi);zs(fi,mi),ti.latestSelectedDateObj=ti.selectedDates[ti.selectedDates.length-1],ti.redraw(),xi(void 0,hi),pi(),ti.selectedDates.length===0&&ti.clear(!1),lo(hi),hi&&un("onChange")}function nu(fi){return fi.slice().map(function(hi){return typeof hi=="string"||typeof hi=="number"||hi instanceof Date?ti.parseDate(hi,void 0,!0):hi&&typeof hi=="object"&&hi.from&&hi.to?{from:ti.parseDate(hi.from,void 0),to:ti.parseDate(hi.to,void 0)}:hi}).filter(function(hi){return hi})}function Ih(){ti.selectedDates=[],ti.now=ti.parseDate(ti.config.now)||new Date;var fi=ti.config.defaultDate||((ti.input.nodeName==="INPUT"||ti.input.nodeName==="TEXTAREA")&&ti.input.placeholder&&ti.input.value===ti.input.placeholder?null:ti.input.value);fi&&zs(fi,ti.config.dateFormat),ti._initialDate=ti.selectedDates.length>0?ti.selectedDates[0]:ti.config.minDate&&ti.config.minDate.getTime()>ti.now.getTime()?ti.config.minDate:ti.config.maxDate&&ti.config.maxDate.getTime()0&&(ti.latestSelectedDateObj=ti.selectedDates[0]),ti.config.minTime!==void 0&&(ti.config.minTime=ti.parseDate(ti.config.minTime,"H:i")),ti.config.maxTime!==void 0&&(ti.config.maxTime=ti.parseDate(ti.config.maxTime,"H:i")),ti.minDateHasTime=!!ti.config.minDate&&(ti.config.minDate.getHours()>0||ti.config.minDate.getMinutes()>0||ti.config.minDate.getSeconds()>0),ti.maxDateHasTime=!!ti.config.maxDate&&(ti.config.maxDate.getHours()>0||ti.config.maxDate.getMinutes()>0||ti.config.maxDate.getSeconds()>0)}function Hh(){if(ti.input=On(),!ti.input){ti.config.errorHandler(new Error("Invalid input element specified"));return}ti.input._type=ti.input.type,ti.input.type="text",ti.input.classList.add("flatpickr-input"),ti._input=ti.input,ti.config.altInput&&(ti.altInput=tn(ti.input.nodeName,ti.config.altInputClass),ti._input=ti.altInput,ti.altInput.placeholder=ti.input.placeholder,ti.altInput.disabled=ti.input.disabled,ti.altInput.required=ti.input.required,ti.altInput.tabIndex=ti.input.tabIndex,ti.altInput.type="text",ti.input.setAttribute("type","hidden"),!ti.config.static&&ti.input.parentNode&&ti.input.parentNode.insertBefore(ti.altInput,ti.input.nextSibling)),ti.config.allowInput||ti._input.setAttribute("readonly","readonly"),ru()}function ru(){ti._positionElement=ti.config.positionElement||ti._input}function Ph(){var fi=ti.config.enableTime?ti.config.noCalendar?"time":"datetime-local":"date";ti.mobileInput=tn("input",ti.input.className+" flatpickr-mobile"),ti.mobileInput.tabIndex=1,ti.mobileInput.type=fi,ti.mobileInput.disabled=ti.input.disabled,ti.mobileInput.required=ti.input.required,ti.mobileInput.placeholder=ti.input.placeholder,ti.mobileFormatStr=fi==="datetime-local"?"Y-m-d\\TH:i:S":fi==="date"?"Y-m-d":"H:i:S",ti.selectedDates.length>0&&(ti.mobileInput.defaultValue=ti.mobileInput.value=ti.formatDate(ti.selectedDates[0],ti.mobileFormatStr)),ti.config.minDate&&(ti.mobileInput.min=ti.formatDate(ti.config.minDate,"Y-m-d")),ti.config.maxDate&&(ti.mobileInput.max=ti.formatDate(ti.config.maxDate,"Y-m-d")),ti.input.getAttribute("step")&&(ti.mobileInput.step=String(ti.input.getAttribute("step"))),ti.input.type="hidden",ti.altInput!==void 0&&(ti.altInput.type="hidden");try{ti.input.parentNode&&ti.input.parentNode.insertBefore(ti.mobileInput,ti.input.nextSibling)}catch(hi){}vi(ti.mobileInput,"change",function(hi){ti.setDate(Wn(hi).value,!1,ti.mobileFormatStr),un("onChange"),un("onClose")})}function Fh(fi){if(ti.isOpen===!0)return ti.close();ti.open(fi)}function un(fi,hi){if(ti.config!==void 0){var mi=ti.config[fi];if(mi!==void 0&&mi.length>0)for(var _i=0;mi[_i]&&_i=0&&Un(fi,ti.selectedDates[1])<=0}function Ca(){ti.config.noCalendar||ti.isMobile||!ti.monthNav||(ti.yearElements.forEach(function(fi,hi){var mi=new Date(ti.currentYear,ti.currentMonth,1);mi.setMonth(ti.currentMonth+hi),ti.config.showMonths>1||ti.config.monthSelectorType==="static"?ti.monthElements[hi].textContent=_a(mi.getMonth(),ti.config.shorthandCurrentMonth,ti.l10n)+" ":ti.monthsDropdownContainer.value=mi.getMonth().toString(),fi.value=mi.getFullYear().toString()}),ti._hidePrevMonthArrow=ti.config.minDate!==void 0&&(ti.currentYear===ti.config.minDate.getFullYear()?ti.currentMonth<=ti.config.minDate.getMonth():ti.currentYearti.config.maxDate.getMonth():ti.currentYear>ti.config.maxDate.getFullYear()))}function Hl(fi){var hi=fi||(ti.config.altInput?ti.config.altFormat:ti.config.dateFormat);return ti.selectedDates.map(function(mi){return ti.formatDate(mi,hi)}).filter(function(mi,_i,Ti){return ti.config.mode!=="range"||ti.config.enableTime||Ti.indexOf(mi)===_i}).join(ti.config.mode!=="range"?ti.config.conjunction:ti.l10n.rangeSeparator)}function lo(fi){fi===void 0&&(fi=!0),ti.mobileInput!==void 0&&ti.mobileFormatStr&&(ti.mobileInput.value=ti.latestSelectedDateObj!==void 0?ti.formatDate(ti.latestSelectedDateObj,ti.mobileFormatStr):""),ti.input.value=Hl(ti.config.dateFormat),ti.altInput!==void 0&&(ti.altInput.value=Hl(ti.config.altFormat)),fi!==!1&&un("onValueUpdate")}function Bh(fi){var hi=Wn(fi),mi=ti.prevMonthNav.contains(hi),_i=ti.nextMonthNav.contains(hi);mi||_i?Ri(mi?-1:1):ti.yearElements.indexOf(hi)>=0?hi.select():hi.classList.contains("arrowUp")?ti.changeYear(ti.currentYear+1):hi.classList.contains("arrowDown")&&ti.changeYear(ti.currentYear-1)}function zh(fi){fi.preventDefault();var hi=fi.type==="keydown",mi=Wn(fi),_i=mi;ti.amPM!==void 0&&mi===ti.amPM&&(ti.amPM.textContent=ti.l10n.amPM[qn(ti.amPM.textContent===ti.l10n.amPM[0])]);var Ti=parseFloat(_i.getAttribute("min")),Ni=parseFloat(_i.getAttribute("max")),Ki=parseFloat(_i.getAttribute("step")),$i=parseInt(_i.value,10),Xi=fi.delta||(hi?fi.which===38?1:-1:0),Fi=$i+Ki*Xi;if(typeof _i.value!="undefined"&&_i.value.length===2){var Gi=_i===ti.hourElement,nn=_i===ti.minuteElement;FiNi&&(Fi=_i===ti.hourElement?Fi-Ni-qn(!ti.amPM):Ti,nn&&Oi(void 0,1,ti.hourElement)),ti.amPM&&Gi&&(Ki===1?Fi+$i===23:Math.abs(Fi-$i)>Ki)&&(ti.amPM.textContent=ti.l10n.amPM[qn(ti.amPM.textContent===ti.l10n.amPM[0])]),_i.value=Rn(Fi)}}return ri(),ti}function Ns(ii,ei){for(var ti=Array.prototype.slice.call(ii).filter(function(si){return si instanceof HTMLElement}),ni=[],ri=0;ri option"))if(ei.selected){for(let ti of Hi("#id_columns"))ti.appendChild(ei.cloneNode(!0));ei.remove()}ii.preventDefault()}function z_(ii){for(let ei of Hi("#id_columns > option"))if(ei.selected){for(let ti of Hi("#id_available_columns"))ti.appendChild(ei.cloneNode(!0));ei.remove()}ii.preventDefault()}function _h(ii,ei){return co(this,null,function*(){return yield Ls(ii,ei)})}function V_(ii){var li,ui,ci;ii.preventDefault();let ei=ii.currentTarget,ti=ei.getAttribute("data-url");if(ti==null){Po("danger","Error Updating Table Configuration","No API path defined for configuration form.").show();return}let ni=((li=document.activeElement)==null?void 0:li.getAttribute("value"))==="Reset",ri=(ci=(ui=ei.getAttribute("data-config-root"))==null?void 0:ui.split("."))!=null?ci:[];if(ni){let di=ri.reduceRight((pi,yi)=>({[yi]:pi}),{});_h(ti,di).then(pi=>{rs(pi)?Po("danger","Error Resetting Table Configuration",pi.error).show():location.reload()});return}let oi=yf(ei,"select[name=columns]"),si=Object.assign({},...oi.map(di=>({[di.name]:di.options}))),ai=ri.reduceRight((di,pi)=>({[pi]:di}),si);_h(ti,ai).then(di=>{rs(di)?Po("danger","Error Updating Table Configuration",di.error).show():location.reload()})}function Eh(){for(let ii of Hi("#save_tableconfig"))ii.addEventListener("click",$_);for(let ii of Hi("#add_columns"))ii.addEventListener("click",B_);for(let ii of Hi("#remove_columns"))ii.addEventListener("click",z_);for(let ii of Hi("form.userconfigform"))ii.addEventListener("submit",V_)}function wh(ii){return typeof ii=="string"&&["show","hide"].includes(ii)}var ss=class extends Error{constructor(ti,ni){super(ti);en(this,"table");this.table=ni}},Rs=class{constructor(ei,ti){en(this,"button");en(this,"rows");this.button=ei,this.rows=ti}hideRows(){for(let ei of this.rows)ei.classList.add("d-none")}set buttonState(ei){wh(ei)&&this.button.setAttribute("data-state",ei)}get buttonState(){let ei=this.button.getAttribute("data-state");return wh(ei)?ei:null}toggleButton(){this.buttonState==="show"?this.button.innerText=Ms(this.button.innerText,"Show","Hide"):this.buttonState==="hide"&&(this.button.innerText=Ms(this.button.innerHTML,"Hide","Show"))}toggleState(){this.buttonState==="show"?this.buttonState="hide":this.buttonState==="hide"&&(this.buttonState="show")}toggle(){this.toggleState(),this.toggleButton()}handleClick(ei){ei.currentTarget.isEqualNode(this.button)&&this.toggle(),this.buttonState==="hide"&&this.hideRows()}},Xc=class{constructor(ei){en(this,"table");en(this,"enabledButton");en(this,"disabledButton");en(this,"virtualButton");en(this,"disconnectedButton");en(this,"rows");this.table=ei,this.rows=this.table.querySelectorAll("tr");try{let ti=os(this.table,"button.toggle-enabled"),ni=os(this.table,"button.toggle-disabled"),ri=os(this.table,"button.toggle-virtual"),oi=os(this.table,"button.toggle-disconnected");if(ti===null)throw new ss("Table is missing a 'toggle-enabled' button.",ei);if(ni===null)throw new ss("Table is missing a 'toggle-disabled' button.",ei);if(ri===null)throw new ss("Table is missing a 'toggle-virtual' button.",ei);if(oi===null)throw new ss("Table is missing a 'toggle-disconnected' button.",ei);ti.addEventListener("click",si=>this.handleClick(si,this)),ni.addEventListener("click",si=>this.handleClick(si,this)),ri.addEventListener("click",si=>this.handleClick(si,this)),oi.addEventListener("click",si=>this.handleClick(si,this)),this.enabledButton=new Rs(ti,ei.querySelectorAll('tr[data-enabled="enabled"]')),this.disabledButton=new Rs(ni,ei.querySelectorAll('tr[data-enabled="disabled"]')),this.virtualButton=new Rs(ri,ei.querySelectorAll('tr[data-type="virtual"]')),this.disconnectedButton=new Rs(oi,ei.querySelectorAll('tr[data-connected="disconnected"]'))}catch(ti){if(ti instanceof ss){console.debug("Table does not contain enable/disable toggle buttons");return}else throw ti}}handleClick(ei,ti){for(let ni of this.rows)ni.classList.remove("d-none");ti.enabledButton.handleClick(ei),ti.disabledButton.handleClick(ei),ti.virtualButton.handleClick(ei),ti.disconnectedButton.handleClick(ei)}};function xh(){for(let ii of Hi("table"))new Xc(ii)}var Jc=class{constructor(ei){en(this,"base");en(this,"state");en(this,"activeLink",null);en(this,"sections",[]);this.base=ei,this.state=new ga({pinned:!0},{persist:!0,key:"netbox-sidenav"}),this.init(),this.initSectionLinks(),this.initLinks()}bodyHas(ei){return document.body.hasAttribute(`data-sidenav-${ei}`)}bodyRemove(...ei){for(let ti of ei)document.body.removeAttribute(`data-sidenav-${ti}`)}bodyAdd(...ei){for(let ti of ei)document.body.setAttribute(`data-sidenav-${ti}`,"")}init(){for(let ei of this.base.querySelectorAll(".sidenav-toggle"))ei.addEventListener("click",ti=>this.onToggle(ti));for(let ei of Hi(".sidenav-toggle-mobile"))ei.addEventListener("click",ti=>this.onMobileToggle(ti));window.innerWidth>1200&&(this.state.get("pinned")&&this.pin(),this.state.get("pinned")||this.unpin(),window.addEventListener("resize",()=>this.onResize())),window.innerWidth<1200&&(this.bodyRemove("hide"),this.bodyAdd("hidden"),window.addEventListener("resize",()=>this.onResize())),this.base.addEventListener("mouseenter",()=>this.onEnter()),this.base.addEventListener("mouseleave",()=>this.onLeave())}initLinks(){for(let ei of this.getActiveLinks())this.bodyHas("show")?this.activateLink(ei,"expand"):this.bodyHas("hidden")&&this.activateLink(ei,"collapse")}show(){this.bodyAdd("show"),this.bodyRemove("hidden","hide")}hide(){this.bodyAdd("hidden"),this.bodyRemove("pinned","show");for(let ei of this.base.querySelectorAll(".collapse"))ei.classList.remove("show")}pin(){this.bodyAdd("show","pinned"),this.bodyRemove("hidden"),this.state.set("pinned",!0)}unpin(){this.bodyRemove("pinned","show"),this.bodyAdd("hidden");for(let ei of this.base.querySelectorAll(".collapse"))ei.classList.remove("show");this.state.set("pinned",!1)}handleSectionClick(ei){ei.preventDefault();let ti=ei.target;this.activeLink=ti,this.closeInactiveSections()}closeInactiveSections(){for(let[ei,ti]of this.sections)ei!==this.activeLink&&(ei.classList.add("collapsed"),ei.setAttribute("aria-expanded","false"),ti.hide())}initSectionLinks(){for(let ei of Hi(".navbar-nav .nav-item .nav-link[data-bs-toggle]"))if(ei.parentElement!==null){let ti=ei.parentElement.querySelector(".collapse");if(ti!==null){let ni=new Oo(ti,{toggle:!1});this.sections.push([ei,ni]),ei.addEventListener("click",ri=>this.handleSectionClick(ri))}}}activateLink(ei,ti){var ri;let ni=ei.closest(".dropdown-menu");if(fl(ni)){let oi=ni.parentElement,si=(ri=ni.parentElement)==null?void 0:ri.querySelector(".nav-link");if(fl(si)&&fl(oi))switch(ti){case"expand":si.setAttribute("aria-expanded","true"),oi.classList.add("active"),ni.classList.add("show"),ei.classList.add("active");break;case"collapse":si.setAttribute("aria-expanded","false"),oi.classList.remove("active"),ni.classList.remove("show"),ei.classList.remove("active");break}}}*getActiveLinks(){for(let ei of this.base.querySelectorAll("ul.navbar-nav .nav-item .dropdown-item")){let ti=ei.querySelector("a");if(ti){let ni=new RegExp(ti.href,"gi");window.location.href.match(ni)&&(yield ei)}}}onEnter(){if(!this.bodyHas("pinned")){this.bodyRemove("hide","hidden"),this.bodyAdd("show");for(let ei of this.getActiveLinks())this.activateLink(ei,"expand")}}onLeave(){if(!this.bodyHas("pinned")){this.bodyRemove("show"),this.bodyAdd("hide");for(let ei of this.getActiveLinks())this.activateLink(ei,"collapse");this.bodyRemove("hide"),this.bodyAdd("hidden")}}onResize(){this.bodyHas("show")&&!this.bodyHas("pinned")&&(this.bodyRemove("show"),this.bodyAdd("hidden"))}onToggle(ei){ei.preventDefault(),this.state.get("pinned")?this.unpin():this.pin()}onMobileToggle(ei){ei.preventDefault(),this.bodyHas("hidden")?this.show():this.hide()}};function Th(){for(let ii of Hi(".navbar"))new Jc(ii)}function Sh(ii,ei,ti,ni,ri){let oi=(...si)=>(console.warn("gridstack.js: Function `"+ti+"` is deprecated in "+ri+" and has been replaced with `"+ni+"`. It will be **removed** in a future release"),ei.apply(ii,si));return oi.prototype=ei.prototype,oi}var bi=class ii{static getElements(ei,ti=document){if(typeof ei=="string"){let ni="getElementById"in ti?ti:void 0;if(ni&&!isNaN(+ei[0])){let oi=ni.getElementById(ei);return oi?[oi]:[]}let ri=ti.querySelectorAll(ei);return!ri.length&&ei[0]!=="."&&ei[0]!=="#"&&(ri=ti.querySelectorAll("."+ei),ri.length||(ri=ti.querySelectorAll("#"+ei))),Array.from(ri)}return[ei]}static getElement(ei,ti=document){if(typeof ei=="string"){let ni="getElementById"in ti?ti:void 0;if(!ei.length)return null;if(ni&&ei[0]==="#")return ni.getElementById(ei.substring(1));if(ei[0]==="#"||ei[0]==="."||ei[0]==="[")return ti.querySelector(ei);if(ni&&!isNaN(+ei[0]))return ni.getElementById(ei);let ri=ti.querySelector(ei);return ni&&!ri&&(ri=ni.getElementById(ei)),ri||(ri=ti.querySelector("."+ei)),ri}return ei}static createWidgetDivs(ei,ti){var si,ai;let ni=ii.createDiv(["grid-stack-item",ei]),ri=ii.createDiv(["grid-stack-item-content"],ni);return ti.lazyLoad||((ai=(si=ti.grid)==null?void 0:si.opts)==null?void 0:ai.lazyLoad)&&ti.lazyLoad!==!1?ti.visibleObservable||(ti.visibleObservable=new IntersectionObserver(([li])=>{var ui;li.isIntersecting&&((ui=ti.visibleObservable)==null||ui.disconnect(),delete ti.visibleObservable,Jr.renderCB(ri,ti))}),window.setTimeout(()=>{var li;return(li=ti.visibleObservable)==null?void 0:li.observe(ni)})):Jr.renderCB(ri,ti),ni}static createDiv(ei,ti){let ni=document.createElement("div");return ei.forEach(ri=>{ri&&ni.classList.add(ri)}),ti==null||ti.appendChild(ni),ni}static shouldSizeToContent(ei,ti=!1){return(ei==null?void 0:ei.grid)&&(ti?ei.sizeToContent===!0||ei.grid.opts.sizeToContent===!0&&ei.sizeToContent===void 0:!!ei.sizeToContent||ei.grid.opts.sizeToContent&&ei.sizeToContent!==!1)}static isIntercepted(ei,ti){return!(ei.y>=ti.y+ti.h||ei.y+ei.h<=ti.y||ei.x+ei.w<=ti.x||ei.x>=ti.x+ti.w)}static isTouching(ei,ti){return ii.isIntercepted(ei,{x:ti.x-.5,y:ti.y-.5,w:ti.w+1,h:ti.h+1})}static areaIntercept(ei,ti){let ni=ei.x>ti.x?ei.x:ti.x,ri=ei.x+ei.wti.y?ei.y:ti.y,si=ei.y+ei.h{var ai,li,ui,ci;let si=ti*(((ai=ri.y)!=null?ai:1e4)-((li=oi.y)!=null?li:1e4));return si===0?ti*(((ui=ri.x)!=null?ui:1e4)-((ci=oi.x)!=null?ci:1e4)):si})}static find(ei,ti){return ti?ei.find(ni=>ni.id===ti):void 0}static createStylesheet(ei,ti,ni){let ri=document.createElement("style"),oi=ni==null?void 0:ni.nonce;return oi&&(ri.nonce=oi),ri.setAttribute("type","text/css"),ri.setAttribute("gs-style-id",ei),ri.styleSheet?ri.styleSheet.cssText="":ri.appendChild(document.createTextNode("")),ti?ti.insertBefore(ri,ti.firstChild):(ti=document.getElementsByTagName("head")[0],ti.appendChild(ri)),ri.sheet}static removeStylesheet(ei,ti){let ri=(ti||document).querySelector("STYLE[gs-style-id="+ei+"]");ri&&ri.parentNode&&ri.remove()}static addCSSRule(ei,ti,ni){typeof ei.addRule=="function"?ei.addRule(ti,ni):typeof ei.insertRule=="function"&&ei.insertRule(`${ti}{${ni}}`)}static toBool(ei){return typeof ei=="boolean"?ei:typeof ei=="string"?(ei=ei.toLowerCase(),!(ei===""||ei==="no"||ei==="false"||ei==="0")):!!ei}static toNumber(ei){return ei===null||ei.length===0?void 0:Number(ei)}static parseHeight(ei){let ti,ni="px";if(typeof ei=="string")if(ei==="auto"||ei==="")ti=0;else{let ri=ei.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%|cm|mm)?$/);if(!ri)throw new Error(`Invalid height val = ${ei}`);ni=ri[2]||"px",ti=parseFloat(ri[1])}else ti=ei;return{h:ti,unit:ni}}static defaults(ei,...ti){return ti.forEach(ni=>{for(let ri in ni){if(!ni.hasOwnProperty(ri))return;ei[ri]===null||ei[ri]===void 0?ei[ri]=ni[ri]:typeof ni[ri]=="object"&&typeof ei[ri]=="object"&&this.defaults(ei[ri],ni[ri])}}),ei}static same(ei,ti){if(typeof ei!="object")return ei==ti;if(typeof ei!=typeof ti||Object.keys(ei).length!==Object.keys(ti).length)return!1;for(let ni in ei)if(ei[ni]!==ti[ni])return!1;return!0}static copyPos(ei,ti,ni=!1){return ti.x!==void 0&&(ei.x=ti.x),ti.y!==void 0&&(ei.y=ti.y),ti.w!==void 0&&(ei.w=ti.w),ti.h!==void 0&&(ei.h=ti.h),ni&&(ti.minW&&(ei.minW=ti.minW),ti.minH&&(ei.minH=ti.minH),ti.maxW&&(ei.maxW=ti.maxW),ti.maxH&&(ei.maxH=ti.maxH)),ei}static samePos(ei,ti){return ei&&ti&&ei.x===ti.x&&ei.y===ti.y&&(ei.w||1)===(ti.w||1)&&(ei.h||1)===(ti.h||1)}static sanitizeMinMax(ei){ei.minW||delete ei.minW,ei.minH||delete ei.minH,ei.maxW||delete ei.maxW,ei.maxH||delete ei.maxH}static removeInternalAndSame(ei,ti){if(!(typeof ei!="object"||typeof ti!="object"))for(let ni in ei){let ri=ei[ni],oi=ti[ni];ni[0]==="_"||ri===oi?delete ei[ni]:ri&&typeof ri=="object"&&oi!==void 0&&(ii.removeInternalAndSame(ri,oi),Object.keys(ri).length||delete ei[ni])}}static removeInternalForSave(ei,ti=!0){for(let ni in ei)(ni[0]==="_"||ei[ni]===null||ei[ni]===void 0)&&delete ei[ni];delete ei.grid,ti&&delete ei.el,ei.autoPosition||delete ei.autoPosition,ei.noResize||delete ei.noResize,ei.noMove||delete ei.noMove,ei.locked||delete ei.locked,(ei.w===1||ei.w===ei.minW)&&delete ei.w,(ei.h===1||ei.h===ei.minH)&&delete ei.h}static throttle(ei,ti){let ni=!1;return(...ri)=>{ni||(ni=!0,setTimeout(()=>{ei(...ri),ni=!1},ti))}}static removePositioningStyles(ei){let ti=ei.style;ti.position&&ti.removeProperty("position"),ti.left&&ti.removeProperty("left"),ti.top&&ti.removeProperty("top"),ti.width&&ti.removeProperty("width"),ti.height&&ti.removeProperty("height")}static getScrollElement(ei){if(!ei)return document.scrollingElement||document.documentElement;let ti=getComputedStyle(ei);return/(auto|scroll)/.test(ti.overflow+ti.overflowY)?ei:this.getScrollElement(ei.parentElement)}static updateScrollPosition(ei,ti,ni){let ri=ei.getBoundingClientRect(),oi=window.innerHeight||document.documentElement.clientHeight;if(ri.top<0||ri.bottom>oi){let si=ri.bottom-oi,ai=ri.top,li=this.getScrollElement(ei);if(li!==null){let ui=li.scrollTop;ri.top<0&&ni<0?ei.offsetHeight>oi?li.scrollTop+=ni:li.scrollTop+=Math.abs(ai)>Math.abs(ni)?ni:ai:ni>0&&(ei.offsetHeight>oi?li.scrollTop+=ni:li.scrollTop+=si>ni?ni:si),ti.top+=li.scrollTop-ui}}}static updateScrollResize(ei,ti,ni){let ri=this.getScrollElement(ti),oi=ri.clientHeight,si=ri===this.getScrollElement()?0:ri.getBoundingClientRect().top,ai=ei.clientY-si,li=aioi-ni;li?ri.scrollBy({behavior:"smooth",top:ai-ni}):ui&&ri.scrollBy({behavior:"smooth",top:ni-(oi-ai)})}static clone(ei){return ei==null||typeof ei!="object"?ei:ei instanceof Array?[...ei]:Di({},ei)}static cloneDeep(ei){let ti=["parentGrid","el","grid","subGrid","engine"],ni=ii.clone(ei);for(let ri in ni)ni.hasOwnProperty(ri)&&typeof ni[ri]=="object"&&ri.substring(0,2)!=="__"&&!ti.find(oi=>oi===ri)&&(ni[ri]=ii.cloneDeep(ei[ri]));return ni}static cloneNode(ei){let ti=ei.cloneNode(!0);return ti.removeAttribute("id"),ti}static appendTo(ei,ti){let ni;typeof ti=="string"?ni=ii.getElement(ti):ni=ti,ni&&ni.appendChild(ei)}static addElStyles(ei,ti){if(ti instanceof Object)for(let ni in ti)ti.hasOwnProperty(ni)&&(Array.isArray(ti[ni])?ti[ni].forEach(ri=>{ei.style[ni]=ri}):ei.style[ni]=ti[ni])}static initEvent(ei,ti){let ni={type:ti.type},ri={button:0,which:0,buttons:1,bubbles:!0,cancelable:!0,target:ti.target?ti.target:ei.target};return["altKey","ctrlKey","metaKey","shiftKey"].forEach(oi=>ni[oi]=ei[oi]),["pageX","pageY","clientX","clientY","screenX","screenY"].forEach(oi=>ni[oi]=ei[oi]),Di(Di({},ni),ri)}static simulateMouseEvent(ei,ti,ni){let ri=document.createEvent("MouseEvents");ri.initMouseEvent(ti,!0,!0,window,1,ei.screenX,ei.screenY,ei.clientX,ei.clientY,ei.ctrlKey,ei.altKey,ei.shiftKey,ei.metaKey,0,ei.target),(ni||ei.target).dispatchEvent(ri)}static getValuesFromTransformedElement(ei){let ti=document.createElement("div");ii.addElStyles(ti,{opacity:"0",position:"fixed",top:"0px",left:"0px",width:"1px",height:"1px",zIndex:"-999999"}),ei.appendChild(ti);let ni=ti.getBoundingClientRect();return ei.removeChild(ti),ti.remove(),{xScale:1/ni.width,yScale:1/ni.height,xOffset:ni.left,yOffset:ni.top}}static swap(ei,ti,ni){if(!ei)return;let ri=ei[ti];ei[ti]=ei[ni],ei[ni]=ri}static canBeRotated(ei){var ti;return!(!ei||ei.w===ei.h||ei.locked||ei.noResize||(ti=ei.grid)!=null&&ti.opts.disableResize||ei.minW&&ei.minW===ei.maxW||ei.minH&&ei.minH===ei.maxH)}};var as=class ii{constructor(ei={}){this.addedNodes=[],this.removedNodes=[],this.defaultColumn=12,this.column=ei.column||this.defaultColumn,this.column>this.defaultColumn&&(this.defaultColumn=this.column),this.maxRow=ei.maxRow,this._float=ei.float,this.nodes=ei.nodes||[],this.onChange=ei.onChange}batchUpdate(ei=!0,ti=!0){return!!this.batchMode===ei?this:(this.batchMode=ei,ei?(this._prevFloat=this._float,this._float=!0,this.cleanNodes(),this.saveInitial()):(this._float=this._prevFloat,delete this._prevFloat,ti&&this._packNodes(),this._notify()),this)}_useEntireRowArea(ei,ti){return(!this.float||this.batchMode&&!this._prevFloat)&&!this._hasLocked&&(!ei._moving||ei._skipDown||ti.y<=ei.y)}_fixCollisions(ei,ti=ei,ni,ri={}){if(this.sortNodes(-1),ni=ni||this.collide(ei,ti),!ni)return!1;if(ei._moving&&!ri.nested&&!this.float&&this.swap(ei,ni))return!0;let oi=ti;!this._loading&&this._useEntireRowArea(ei,ti)&&(oi={x:0,w:this.column,y:ti.y,h:ti.h},ni=this.collide(ei,oi,ri.skip));let si=!1,ai={nested:!0,pack:!1},li=0;for(;ni=ni||this.collide(ei,oi,ri.skip);){if(li++>this.nodes.length*2)throw new Error("Infinite collide check");let ui;if(ni.locked||this._loading||ei._moving&&!ei._skipDown&&ti.y>ei.y&&!this.float&&(!this.collide(ni,sn(Di({},ni),{y:ei.y}),ei)||!this.collide(ni,sn(Di({},ni),{y:ti.y-ni.h}),ei))){ei._skipDown=ei._skipDown||ti.y>ei.y;let ci=Di(sn(Di({},ti),{y:ni.y+ni.h}),ai);ui=this._loading&&bi.samePos(ei,ci)?!0:this.moveNode(ei,ci),(ni.locked||this._loading)&&ui?bi.copyPos(ti,ei):!ni.locked&&ui&&ri.pack&&(this._packNodes(),ti.y=ni.y+ni.h,bi.copyPos(ei,ti)),si=si||ui}else ui=this.moveNode(ni,Di(sn(Di({},ni),{y:ti.y+ti.h,skip:ei}),ai));if(!ui)return si;ni=void 0}return si}collide(ei,ti=ei,ni){let ri=ei._id,oi=ni==null?void 0:ni._id;return this.nodes.find(si=>si._id!==ri&&si._id!==oi&&bi.isIntercepted(si,ti))}collideAll(ei,ti=ei,ni){let ri=ei._id,oi=ni==null?void 0:ni._id;return this.nodes.filter(si=>si._id!==ri&&si._id!==oi&&bi.isIntercepted(si,ti))}directionCollideCoverage(ei,ti,ni){if(!ti.rect||!ei._rect)return;let ri=ei._rect,oi=Di({},ti.rect);oi.y>ri.y?(oi.h+=oi.y-ri.y,oi.y=ri.y):oi.h+=ri.y-oi.y,oi.x>ri.x?(oi.w+=oi.x-ri.x,oi.x=ri.x):oi.w+=ri.x-oi.x;let si,ai=.5;for(let li of ni){if(li.locked||!li._rect)break;let ui=li._rect,ci=Number.MAX_VALUE,di=Number.MAX_VALUE;ri.yui.y+ui.h&&(ci=(ui.y+ui.h-oi.y)/ui.h),ri.xui.x+ui.w&&(di=(ui.x+ui.w-oi.x)/ui.w);let pi=Math.min(di,ci);pi>ai&&(ai=pi,si=li)}return ti.collide=si,si}cacheRects(ei,ti,ni,ri,oi,si){return this.nodes.forEach(ai=>ai._rect={y:ai.y*ti+ni,x:ai.x*ei+si,w:ai.w*ei-si-ri,h:ai.h*ti-ni-oi}),this}swap(ei,ti){if(!ti||ti.locked||!ei||ei.locked)return!1;function ni(){let oi=ti.x,si=ti.y;return ti.x=ei.x,ti.y=ei.y,ei.h!=ti.h?(ei.x=oi,ei.y=ti.y+ti.h):ei.w!=ti.w?(ei.x=ti.x+ti.w,ei.y=si):(ei.x=oi,ei.y=si),ei._dirty=ti._dirty=!0,!0}let ri;if(ei.w===ti.w&&ei.h===ti.h&&(ei.x===ti.x||ei.y===ti.y)&&(ri=bi.isTouching(ei,ti)))return ni();if(ri!==!1){if(ei.w===ti.w&&ei.x===ti.x&&(ri||(ri=bi.isTouching(ei,ti)))){if(ti.y{let ui;si.locked||(si.autoPosition=!0,ei==="list"&&ai&&(ui=li[ai-1])),this.addNode(si,!1,ui)}),ri||delete this._inColumnResize,ni||this.batchUpdate(!1),this}set float(ei){this._float!==ei&&(this._float=ei||!1,ei||this._packNodes()._notify())}get float(){return this._float||!1}sortNodes(ei=1){return this.nodes=bi.sort(this.nodes,ei),this}_packNodes(){return this.batchMode?this:(this.sortNodes(),this.float?this.nodes.forEach(ei=>{if(ei._updating||ei._orig===void 0||ei.y===ei._orig.y)return;let ti=ei.y;for(;ti>ei._orig.y;)--ti,this.collide(ei,{x:ei.x,y:ti,w:ei.w,h:ei.h})||(ei._dirty=!0,ei.y=ti)}):this.nodes.forEach((ei,ti)=>{if(!ei.locked)for(;ei.y>0;){let ni=ti===0?0:ei.y-1;if(!(ti===0||!this.collide(ei,{x:ei.x,y:ni,w:ei.w,h:ei.h})))break;ei._dirty=ei.y!==ni,ei.y=ni}}),this)}prepareNode(ei,ti){var oi;ei._id=(oi=ei._id)!=null?oi:ii._idSeq++;let ni=ei.id;if(ni){let si=1;for(;this.nodes.find(ai=>ai.id===ei.id&&ai!==ei);)ei.id=ni+"_"+si++}(ei.x===void 0||ei.y===void 0||ei.x===null||ei.y===null)&&(ei.autoPosition=!0);let ri={x:0,y:0,w:1,h:1};return bi.defaults(ei,ri),ei.autoPosition||delete ei.autoPosition,ei.noResize||delete ei.noResize,ei.noMove||delete ei.noMove,bi.sanitizeMinMax(ei),typeof ei.x=="string"&&(ei.x=Number(ei.x)),typeof ei.y=="string"&&(ei.y=Number(ei.y)),typeof ei.w=="string"&&(ei.w=Number(ei.w)),typeof ei.h=="string"&&(ei.h=Number(ei.h)),isNaN(ei.x)&&(ei.x=ri.x,ei.autoPosition=!0),isNaN(ei.y)&&(ei.y=ri.y,ei.autoPosition=!0),isNaN(ei.w)&&(ei.w=ri.w),isNaN(ei.h)&&(ei.h=ri.h),this.nodeBoundFix(ei,ti),ei}nodeBoundFix(ei,ti){let ni=ei._orig||bi.copyPos({},ei);if(ei.maxW&&ei.w&&(ei.w=Math.min(ei.w,ei.maxW)),ei.maxH&&ei.h&&(ei.h=Math.min(ei.h,ei.maxH)),ei.minW&&ei.w&&ei.minW<=this.column&&(ei.w=Math.max(ei.w,ei.minW)),ei.minH&&ei.h&&(ei.h=Math.max(ei.h,ei.minH)),(ei.x||0)+(ei.w||1)>this.column&&this.columnthis.column?ei.w=this.column:ei.w<1&&(ei.w=1),this.maxRow&&ei.h>this.maxRow?ei.h=this.maxRow:ei.h<1&&(ei.h=1),ei.x<0&&(ei.x=0),ei.y<0&&(ei.y=0),ei.x+ei.w>this.column&&(ti?ei.w=this.column-ei.x:ei.x=this.column-ei.w),this.maxRow&&ei.y+ei.h>this.maxRow&&(ti?ei.h=this.maxRow-ei.y:ei.y=this.maxRow-ei.h),bi.samePos(ei,ni)||(ei._dirty=!0),this}getDirtyNodes(ei){return ei?this.nodes.filter(ti=>ti._dirty&&!bi.samePos(ti,ti._orig)):this.nodes.filter(ti=>ti._dirty)}_notify(ei){if(this.batchMode||!this.onChange)return this;let ti=(ei||[]).concat(this.getDirtyNodes());return this.onChange(ti),this}cleanNodes(){return this.batchMode?this:(this.nodes.forEach(ei=>{delete ei._dirty,delete ei._lastTried}),this)}saveInitial(){return this.nodes.forEach(ei=>{ei._orig=bi.copyPos({},ei),delete ei._dirty}),this._hasLocked=this.nodes.some(ei=>ei.locked),this}restoreInitial(){return this.nodes.forEach(ei=>{bi.samePos(ei,ei._orig)||(bi.copyPos(ei,ei._orig),ei._dirty=!0)}),this._notify(),this}findEmptyPosition(ei,ti=this.nodes,ni=this.column,ri){let oi=ri?ri.y*ni+(ri.x+ri.w):0,si=!1;for(let ai=oi;!si;++ai){let li=ai%ni,ui=Math.floor(ai/ni);if(li+ei.w>ni)continue;let ci={x:li,y:ui,w:ei.w,h:ei.h};ti.find(di=>bi.isIntercepted(ci,di))||((ei.x!==li||ei.y!==ui)&&(ei._dirty=!0),ei.x=li,ei.y=ui,delete ei.autoPosition,si=!0)}return si}addNode(ei,ti=!1,ni){let ri=this.nodes.find(si=>si._id===ei._id);if(ri)return ri;this._inColumnResize?this.nodeBoundFix(ei):this.prepareNode(ei),delete ei._temporaryRemoved,delete ei._removeDOM;let oi;return ei.autoPosition&&this.findEmptyPosition(ei,this.nodes,this.column,ni)&&(delete ei.autoPosition,oi=!0),this.nodes.push(ei),ti&&this.addedNodes.push(ei),oi||this._fixCollisions(ei),this.batchMode||this._packNodes()._notify(),ei}removeNode(ei,ti=!0,ni=!1){return this.nodes.find(ri=>ri._id===ei._id)?(ni&&this.removedNodes.push(ei),ti&&(ei._removeDOM=!0),this.nodes=this.nodes.filter(ri=>ri._id!==ei._id),ei._isAboutToRemove||this._packNodes(),this._notify([ei]),this):this}removeAll(ei=!0,ti=!0){if(delete this._layouts,!this.nodes.length)return this;ei&&this.nodes.forEach(ri=>ri._removeDOM=!0);let ni=this.nodes;return this.removedNodes=ti?ni:[],this.nodes=[],this._notify(ni)}moveNodeCheck(ei,ti){if(!this.changedPosConstrain(ei,ti))return!1;if(ti.pack=!0,!this.maxRow)return this.moveNode(ei,ti);let ni,ri=new ii({column:this.column,float:this.float,nodes:this.nodes.map(si=>si._id===ei._id?(ni=Di({},si),ni):Di({},si))});if(!ni)return!1;let oi=ri.moveNode(ni,ti)&&ri.getRow()<=Math.max(this.getRow(),this.maxRow);if(!oi&&!ti.resizing&&ti.collide){let si=ti.collide.el.gridstackNode;if(this.swap(ei,si))return this._notify(),!0}return oi?(ri.nodes.filter(si=>si._dirty).forEach(si=>{let ai=this.nodes.find(li=>li._id===si._id);ai&&(bi.copyPos(ai,si),ai._dirty=!0)}),this._notify(),!0):!1}willItFit(ei){if(delete ei._willFitPos,!this.maxRow)return!0;let ti=new ii({column:this.column,float:this.float,nodes:this.nodes.map(ri=>Di({},ri))}),ni=Di({},ei);return this.cleanupNode(ni),delete ni.el,delete ni._id,delete ni.content,delete ni.grid,ti.addNode(ni),ti.getRow()<=this.maxRow?(ei._willFitPos=bi.copyPos({},ni),!0):!1}changedPosConstrain(ei,ti){return ti.w=ti.w||ei.w,ti.h=ti.h||ei.h,ei.x!==ti.x||ei.y!==ti.y?!0:(ei.maxW&&(ti.w=Math.min(ti.w,ei.maxW)),ei.maxH&&(ti.h=Math.min(ti.h,ei.maxH)),ei.minW&&(ti.w=Math.max(ti.w,ei.minW)),ei.minH&&(ti.h=Math.max(ti.h,ei.minH)),ei.w!==ti.w||ei.h!==ti.h)}moveNode(ei,ti){var ui,ci;if(!ei||!ti)return!1;let ni;ti.pack===void 0&&!this.batchMode&&(ni=ti.pack=!0),typeof ti.x!="number"&&(ti.x=ei.x),typeof ti.y!="number"&&(ti.y=ei.y),typeof ti.w!="number"&&(ti.w=ei.w),typeof ti.h!="number"&&(ti.h=ei.h);let ri=ei.w!==ti.w||ei.h!==ti.h,oi=bi.copyPos({},ei,!0);if(bi.copyPos(oi,ti),this.nodeBoundFix(oi,ri),bi.copyPos(ti,oi),!ti.forceCollide&&bi.samePos(ei,ti))return!1;let si=bi.copyPos({},ei),ai=this.collideAll(ei,oi,ti.skip),li=!0;if(ai.length){let di=ei._moving&&!ti.nested,pi=di?this.directionCollideCoverage(ei,ti,ai):ai[0];if(di&&pi&&((ci=(ui=ei.grid)==null?void 0:ui.opts)!=null&&ci.subGridDynamic)&&!ei.grid._isTemp){let yi=bi.areaIntercept(ti.rect,pi._rect),gi=bi.area(ti.rect),vi=bi.area(pi._rect);yi/(gi.8&&(pi.grid.makeSubGrid(pi.el,void 0,ei),pi=void 0)}pi?li=!this._fixCollisions(ei,oi,pi,ti):(li=!1,ni&&delete ti.pack)}return li&&!bi.samePos(ei,oi)&&(ei._dirty=!0,bi.copyPos(ei,oi)),ti.pack&&this._packNodes()._notify(),!bi.samePos(ei,si)}getRow(){return this.nodes.reduce((ei,ti)=>Math.max(ei,ti.y+ti.h),0)}beginUpdate(ei){return ei._updating||(ei._updating=!0,delete ei._skipDown,this.batchMode||this.saveInitial()),this}endUpdate(){let ei=this.nodes.find(ti=>ti._updating);return ei&&(delete ei._updating,delete ei._skipDown),this}save(ei=!0,ti){var si;let ni=(si=this._layouts)==null?void 0:si.length,ri=ni&&this.column!==ni-1?this._layouts[ni-1]:null,oi=[];return this.sortNodes(),this.nodes.forEach(ai=>{let li=ri==null?void 0:ri.find(ci=>ci._id===ai._id),ui=Di(Di({},ai),li||{});bi.removeInternalForSave(ui,!ei),ti&&ti(ai,ui),oi.push(ui)}),oi}layoutsNodesChange(ei){return!this._layouts||this._inColumnResize?this:(this._layouts.forEach((ti,ni)=>{if(!ti||ni===this.column)return this;if(ni{if(!oi._orig)return;let si=ti.find(ai=>ai._id===oi._id);si&&(si.y>=0&&oi.y!==oi._orig.y&&(si.y+=oi.y-oi._orig.y),oi.x!==oi._orig.x&&(si.x=Math.round(oi.x*ri)),oi.w!==oi._orig.w&&(si.w=Math.round(oi.w*ri)))})}}),this)}columnChanged(ei,ti,ni="moveScale"){var ai;if(!this.nodes.length||!ti||ei===ti)return this;if(ni==="none")return this;let ri=ni==="compact"||ni==="list";ri&&this.sortNodes(1),tiei&&this._layouts){let li=this._layouts[ti]||[],ui=this._layouts.length-1;!li.length&&ei!==ui&&((ai=this._layouts[ui])!=null&&ai.length)&&(ei=ui,this._layouts[ui].forEach(ci=>{var pi,yi,gi;let di=si.find(vi=>vi._id===ci._id);di&&(!ri&&!ci.autoPosition&&(di.x=(pi=ci.x)!=null?pi:di.x,di.y=(yi=ci.y)!=null?yi:di.y),di.w=(gi=ci.w)!=null?gi:di.w,(ci.x==null||ci.y===void 0)&&(di.autoPosition=!0))})),li.forEach(ci=>{var pi,yi,gi;let di=si.findIndex(vi=>vi._id===ci._id);if(di!==-1){let vi=si[di];if(ri){vi.w=ci.w;return}(ci.autoPosition||isNaN(ci.x)||isNaN(ci.y))&&this.findEmptyPosition(ci,oi),ci.autoPosition||(vi.x=(pi=ci.x)!=null?pi:vi.x,vi.y=(yi=ci.y)!=null?yi:vi.y,vi.w=(gi=ci.w)!=null?gi:vi.w,oi.push(vi)),si.splice(di,1)}})}if(ri)this.compact(ni,!1);else{if(si.length)if(typeof ni=="function")ni(ti,ei,oi,si);else{let li=ri?1:ti/ei,ui=ni==="move"||ni==="moveScale",ci=ni==="scale"||ni==="moveScale";si.forEach(di=>{di.x=ti===1?0:ui?Math.round(di.x*li):Math.min(di.x,ti-1),di.w=ti===1||ei===1?1:ci?Math.round(di.w*li)||1:Math.min(di.w,ti),oi.push(di)}),si=[]}oi=bi.sort(oi,-1),this._inColumnResize=!0,this.nodes=[],oi.forEach(li=>{this.addNode(li,!1),delete li._orig})}return this.nodes.forEach(li=>delete li._orig),this.batchUpdate(!1,!ri),delete this._inColumnResize,this}cacheLayout(ei,ti,ni=!1){let ri=[];return ei.forEach((oi,si)=>{var ai;if(oi._id===void 0){let li=oi.id?this.nodes.find(ui=>ui.id===oi.id):void 0;oi._id=(ai=li==null?void 0:li._id)!=null?ai:ii._idSeq++}ri[si]={x:oi.x,y:oi.y,w:oi.w,_id:oi._id}}),this._layouts=ni?[]:this._layouts||[],this._layouts[ti]=ri,this}cacheOneLayout(ei,ti){var oi;ei._id=(oi=ei._id)!=null?oi:ii._idSeq++;let ni={x:ei.x,y:ei.y,w:ei.w,_id:ei._id};(ei.autoPosition||ei.x===void 0)&&(delete ni.x,delete ni.y,ei.autoPosition&&(ni.autoPosition=!0)),this._layouts=this._layouts||[],this._layouts[ti]=this._layouts[ti]||[];let ri=this.findCacheLayout(ei,ti);return ri===-1?this._layouts[ti].push(ni):this._layouts[ti][ri]=ni,this}findCacheLayout(ei,ti){var ni,ri,oi;return(oi=(ri=(ni=this._layouts)==null?void 0:ni[ti])==null?void 0:ri.findIndex(si=>si._id===ei._id))!=null?oi:-1}removeNodeFromLayoutCache(ei){if(this._layouts)for(let ti=0;ti0||navigator.msMaxTouchPoints>0),Zr=class{};function Ll(ii,ei){if(ii.touches.length>1)return;ii.cancelable&&ii.preventDefault();let ti=ii.changedTouches[0],ni=document.createEvent("MouseEvents");ni.initMouseEvent(ei,!0,!0,window,1,ti.screenX,ti.screenY,ti.clientX,ti.clientY,!1,!1,!1,!1,0,null),ii.target.dispatchEvent(ni)}function Ch(ii,ei){ii.cancelable&&ii.preventDefault();let ti=document.createEvent("MouseEvents");ti.initMouseEvent(ei,!0,!0,window,1,ii.screenX,ii.screenY,ii.clientX,ii.clientY,!1,!1,!1,!1,0,null),ii.target.dispatchEvent(ti)}function Is(ii){Zr.touchHandled||(Zr.touchHandled=!0,Ll(ii,"mousedown"))}function Hs(ii){Zr.touchHandled&&Ll(ii,"mousemove")}function Ps(ii){if(!Zr.touchHandled)return;Zr.pointerLeaveTimeout&&(window.clearTimeout(Zr.pointerLeaveTimeout),delete Zr.pointerLeaveTimeout);let ei=!!Bi.dragElement;Ll(ii,"mouseup"),ei||Ll(ii,"click"),Zr.touchHandled=!1}function Fs(ii){ii.pointerType!=="mouse"&&ii.target.releasePointerCapture(ii.pointerId)}function Zc(ii){Bi.dragElement&&ii.pointerType!=="mouse"&&Ch(ii,"mouseenter")}function eu(ii){Bi.dragElement&&ii.pointerType!=="mouse"&&(Zr.pointerLeaveTimeout=window.setTimeout(()=>{delete Zr.pointerLeaveTimeout,Ch(ii,"mouseleave")},10))}var Ea=class ii{constructor(ei,ti,ni){this.host=ei,this.dir=ti,this.option=ni,this.moving=!1,this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this._init()}_init(){let ei=this.el=document.createElement("div");return ei.classList.add("ui-resizable-handle"),ei.classList.add(`${ii.prefix}${this.dir}`),ei.style.zIndex="100",ei.style.userSelect="none",this.host.appendChild(this.el),this.el.addEventListener("mousedown",this._mouseDown),$n&&(this.el.addEventListener("touchstart",Is),this.el.addEventListener("pointerdown",Fs)),this}destroy(){return this.moving&&this._mouseUp(this.mouseDownEvent),this.el.removeEventListener("mousedown",this._mouseDown),$n&&(this.el.removeEventListener("touchstart",Is),this.el.removeEventListener("pointerdown",Fs)),this.host.removeChild(this.el),delete this.el,delete this.host,this}_mouseDown(ei){this.mouseDownEvent=ei,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),$n&&(this.el.addEventListener("touchmove",Hs),this.el.addEventListener("touchend",Ps)),ei.stopPropagation(),ei.preventDefault()}_mouseMove(ei){let ti=this.mouseDownEvent;this.moving?this._triggerEvent("move",ei):Math.abs(ei.x-ti.x)+Math.abs(ei.y-ti.y)>2&&(this.moving=!0,this._triggerEvent("start",this.mouseDownEvent),this._triggerEvent("move",ei),document.addEventListener("keydown",this._keyEvent)),ei.stopPropagation()}_mouseUp(ei){this.moving&&(this._triggerEvent("stop",ei),document.removeEventListener("keydown",this._keyEvent)),document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),$n&&(this.el.removeEventListener("touchmove",Hs),this.el.removeEventListener("touchend",Ps)),delete this.moving,delete this.mouseDownEvent,ei.stopPropagation(),ei.preventDefault()}_keyEvent(ei){var ti,ni;ei.key==="Escape"&&((ni=(ti=this.host.gridstackNode)==null?void 0:ti.grid)==null||ni.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent))}_triggerEvent(ei,ti){return this.option[ei]&&this.option[ei](ti),this}};Ea.prefix="ui-resizable-";var zo=class{constructor(){this._eventRegister={}}get disabled(){return this._disabled}on(ei,ti){this._eventRegister[ei]=ti}off(ei){delete this._eventRegister[ei]}enable(){this._disabled=!1}disable(){this._disabled=!0}destroy(){delete this._eventRegister}triggerEvent(ei,ti){if(!this.disabled&&this._eventRegister&&this._eventRegister[ei])return this._eventRegister[ei](ti)}};var wa=class ii extends zo{constructor(ei,ti={}){super(),this.el=ei,this.option=ti,this.rectScale={x:1,y:1},this._ui=()=>{let ri=this.el.parentElement.getBoundingClientRect(),oi={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},si=this.temporalRect||oi;return{position:{left:(si.left-ri.left)*this.rectScale.x,top:(si.top-ri.top)*this.rectScale.y},size:{width:si.width*this.rectScale.x,height:si.height*this.rectScale.y}}},this._mouseOver=this._mouseOver.bind(this),this._mouseOut=this._mouseOut.bind(this),this.enable(),this._setupAutoHide(this.option.autoHide),this._setupHandlers()}on(ei,ti){super.on(ei,ti)}off(ei){super.off(ei)}enable(){super.enable(),this.el.classList.remove("ui-resizable-disabled"),this._setupAutoHide(this.option.autoHide)}disable(){super.disable(),this.el.classList.add("ui-resizable-disabled"),this._setupAutoHide(!1)}destroy(){this._removeHandlers(),this._setupAutoHide(!1),delete this.el,super.destroy()}updateOption(ei){let ti=ei.handles&&ei.handles!==this.option.handles,ni=ei.autoHide&&ei.autoHide!==this.option.autoHide;return Object.keys(ei).forEach(ri=>this.option[ri]=ei[ri]),ti&&(this._removeHandlers(),this._setupHandlers()),ni&&this._setupAutoHide(this.option.autoHide),this}_setupAutoHide(ei){return ei?(this.el.classList.add("ui-resizable-autohide"),this.el.addEventListener("mouseover",this._mouseOver),this.el.addEventListener("mouseout",this._mouseOut)):(this.el.classList.remove("ui-resizable-autohide"),this.el.removeEventListener("mouseover",this._mouseOver),this.el.removeEventListener("mouseout",this._mouseOut),Bi.overResizeElement===this&&delete Bi.overResizeElement),this}_mouseOver(ei){Bi.overResizeElement||Bi.dragElement||(Bi.overResizeElement=this,this.el.classList.remove("ui-resizable-autohide"))}_mouseOut(ei){Bi.overResizeElement===this&&(delete Bi.overResizeElement,this.el.classList.add("ui-resizable-autohide"))}_setupHandlers(){return this.handlers=this.option.handles.split(",").map(ei=>ei.trim()).map(ei=>new Ea(this.el,ei,{start:ti=>{this._resizeStart(ti)},stop:ti=>{this._resizeStop(ti)},move:ti=>{this._resizing(ti,ei)}})),this}_resizeStart(ei){this.sizeToContent=bi.shouldSizeToContent(this.el.gridstackNode,!0),this.originalRect=this.el.getBoundingClientRect(),this.scrollEl=bi.getScrollElement(this.el),this.scrollY=this.scrollEl.scrollTop,this.scrolled=0,this.startEvent=ei,this._setupHelper(),this._applyChange();let ti=bi.initEvent(ei,{type:"resizestart",target:this.el});return this.option.start&&this.option.start(ti,this._ui()),this.el.classList.add("ui-resizable-resizing"),this.triggerEvent("resizestart",ti),this}_resizing(ei,ti){this.scrolled=this.scrollEl.scrollTop-this.scrollY,this.temporalRect=this._getChange(ei,ti),this._applyChange();let ni=bi.initEvent(ei,{type:"resize",target:this.el});return this.option.resize&&this.option.resize(ni,this._ui()),this.triggerEvent("resize",ni),this}_resizeStop(ei){let ti=bi.initEvent(ei,{type:"resizestop",target:this.el});return this.option.stop&&this.option.stop(ti),this.el.classList.remove("ui-resizable-resizing"),this.triggerEvent("resizestop",ti),this._cleanHelper(),delete this.startEvent,delete this.originalRect,delete this.temporalRect,delete this.scrollY,delete this.scrolled,this}_setupHelper(){this.elOriginStyleVal=ii._originStyleProp.map(ni=>this.el.style[ni]),this.parentOriginStylePosition=this.el.parentElement.style.position;let ei=this.el.parentElement,ti=bi.getValuesFromTransformedElement(ei);return this.rectScale={x:ti.xScale,y:ti.yScale},getComputedStyle(this.el.parentElement).position.match(/static/)&&(this.el.parentElement.style.position="relative"),this.el.style.position="absolute",this.el.style.opacity="0.8",this}_cleanHelper(){return ii._originStyleProp.forEach((ei,ti)=>{this.el.style[ei]=this.elOriginStyleVal[ti]||null}),this.el.parentElement.style.position=this.parentOriginStylePosition||null,this}_getChange(ei,ti){let ni=this.startEvent,ri={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},oi=ei.clientX-ni.clientX,si=this.sizeToContent?0:ei.clientY-ni.clientY,ai,li;ti.indexOf("e")>-1?ri.width+=oi:ti.indexOf("w")>-1&&(ri.width-=oi,ri.left+=oi,ai=!0),ti.indexOf("s")>-1?ri.height+=si:ti.indexOf("n")>-1&&(ri.height-=si,ri.top+=si,li=!0);let ui=this._constrainSize(ri.width,ri.height,ai,li);return Math.round(ri.width)!==Math.round(ui.width)&&(ti.indexOf("w")>-1&&(ri.left+=ri.width-ui.width),ri.width=ui.width),Math.round(ri.height)!==Math.round(ui.height)&&(ti.indexOf("n")>-1&&(ri.top+=ri.height-ui.height),ri.height=ui.height),ri}_constrainSize(ei,ti,ni,ri){let oi=this.option,si=(ni?oi.maxWidthMoveLeft:oi.maxWidth)||Number.MAX_SAFE_INTEGER,ai=oi.minWidth/this.rectScale.x||ei,li=(ri?oi.maxHeightMoveUp:oi.maxHeight)||Number.MAX_SAFE_INTEGER,ui=oi.minHeight/this.rectScale.y||ti,ci=Math.min(si,Math.max(ai,ei)),di=Math.min(li,Math.max(ui,ti));return{width:ci,height:di}}_applyChange(){let ei={left:0,top:0,width:0,height:0};if(this.el.style.position==="absolute"){let ti=this.el.parentElement,{left:ni,top:ri}=ti.getBoundingClientRect();ei={left:ni,top:ri,width:0,height:0}}return this.temporalRect?(Object.keys(this.temporalRect).forEach(ti=>{let ni=this.temporalRect[ti],ri=ti==="width"||ti==="left"?this.rectScale.x:ti==="height"||ti==="top"?this.rectScale.y:1;this.el.style[ti]=(ni-ei[ti])*ri+"px"}),this):this}_removeHandlers(){return this.handlers.forEach(ei=>ei.destroy()),delete this.handlers,this}};wa._originStyleProp=["width","height","position","left","top","opacity","zIndex"];var j_='input,textarea,button,select,option,[contenteditable="true"],.ui-resizable-handle',xa=class ii extends zo{constructor(ei,ti={}){var oi;super(),this.el=ei,this.option=ti,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0};let ni=(oi=ti==null?void 0:ti.handle)==null?void 0:oi.substring(1),ri=ei.gridstackNode;this.dragEls=!ni||ei.classList.contains(ni)?[ei]:ri!=null&&ri.subGrid?[ei.querySelector(ti.handle)||ei]:Array.from(ei.querySelectorAll(ti.handle)),this.dragEls.length===0&&(this.dragEls=[ei]),this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this.enable()}on(ei,ti){super.on(ei,ti)}off(ei){super.off(ei)}enable(){this.disabled!==!1&&(super.enable(),this.dragEls.forEach(ei=>{ei.addEventListener("mousedown",this._mouseDown),$n&&(ei.addEventListener("touchstart",Is),ei.addEventListener("pointerdown",Fs))}),this.el.classList.remove("ui-draggable-disabled"))}disable(ei=!1){this.disabled!==!0&&(super.disable(),this.dragEls.forEach(ti=>{ti.removeEventListener("mousedown",this._mouseDown),$n&&(ti.removeEventListener("touchstart",Is),ti.removeEventListener("pointerdown",Fs))}),ei||this.el.classList.add("ui-draggable-disabled"))}destroy(){this.dragTimeout&&window.clearTimeout(this.dragTimeout),delete this.dragTimeout,this.mouseDownEvent&&this._mouseUp(this.mouseDownEvent),this.disable(!0),delete this.el,delete this.helper,delete this.option,super.destroy()}updateOption(ei){return Object.keys(ei).forEach(ti=>this.option[ti]=ei[ti]),this}_mouseDown(ei){if(!Bi.mouseHandled)return ei.button!==0||!this.dragEls.find(ti=>ti===ei.target)&&ei.target.closest(j_)||this.option.cancel&&ei.target.closest(this.option.cancel)||(this.mouseDownEvent=ei,delete this.dragging,delete Bi.dragElement,delete Bi.dropElement,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),$n&&(ei.currentTarget.addEventListener("touchmove",Hs),ei.currentTarget.addEventListener("touchend",Ps)),ei.preventDefault(),document.activeElement&&document.activeElement.blur(),Bi.mouseHandled=!0),!0}_callDrag(ei){if(!this.dragging)return;let ti=bi.initEvent(ei,{target:this.el,type:"drag"});this.option.drag&&this.option.drag(ti,this.ui()),this.triggerEvent("drag",ti)}_mouseMove(ei){var ni;let ti=this.mouseDownEvent;if(this.lastDrag=ei,this.dragging)if(this._dragFollow(ei),Bi.pauseDrag){let ri=Number.isInteger(Bi.pauseDrag)?Bi.pauseDrag:100;this.dragTimeout&&window.clearTimeout(this.dragTimeout),this.dragTimeout=window.setTimeout(()=>this._callDrag(ei),ri)}else this._callDrag(ei);else if(Math.abs(ei.x-ti.x)+Math.abs(ei.y-ti.y)>3){this.dragging=!0,Bi.dragElement=this;let ri=(ni=this.el.gridstackNode)==null?void 0:ni.grid;ri?Bi.dropElement=ri.el.ddElement.ddDroppable:delete Bi.dropElement,this.helper=this._createHelper(),this._setupHelperContainmentStyle(),this.dragTransform=bi.getValuesFromTransformedElement(this.helperContainment),this.dragOffset=this._getDragOffset(ei,this.el,this.helperContainment),this._setupHelperStyle(ei);let oi=bi.initEvent(ei,{target:this.el,type:"dragstart"});this.option.start&&this.option.start(oi,this.ui()),this.triggerEvent("dragstart",oi),document.addEventListener("keydown",this._keyEvent)}return!0}_mouseUp(ei){var ti,ni;if(document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),$n&&ei.currentTarget&&(ei.currentTarget.removeEventListener("touchmove",Hs,!0),ei.currentTarget.removeEventListener("touchend",Ps,!0)),this.dragging){delete this.dragging,(ti=this.el.gridstackNode)==null||delete ti._origRotate,document.removeEventListener("keydown",this._keyEvent),((ni=Bi.dropElement)==null?void 0:ni.el)===this.el.parentElement&&delete Bi.dropElement,this.helperContainment.style.position=this.parentOriginStylePosition||null,this.helper!==this.el&&this.helper.remove(),this._removeHelperStyle();let ri=bi.initEvent(ei,{target:this.el,type:"dragstop"});this.option.stop&&this.option.stop(ri),this.triggerEvent("dragstop",ri),Bi.dropElement&&Bi.dropElement.drop(ei)}delete this.helper,delete this.mouseDownEvent,delete Bi.dragElement,delete Bi.dropElement,delete Bi.mouseHandled,ei.preventDefault()}_keyEvent(ei){let ti=this.el.gridstackNode;if(!(ti!=null&&ti.grid))return;let ni=ti.grid;if(ei.key==="Escape")ti._origRotate&&(ti._orig=ti._origRotate,delete ti._origRotate),ni.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent);else if(ei.key==="r"||ei.key==="R"){if(!bi.canBeRotated(ti))return;ti._origRotate=ti._origRotate||Di({},ti._orig),delete ti._moving,ni.setAnimation(!1).rotate(ti.el,{top:-this.dragOffset.offsetTop,left:-this.dragOffset.offsetLeft}).setAnimation(),ti._moving=!0,this.dragOffset=this._getDragOffset(this.lastDrag,ti.el,this.helperContainment),this.helper.style.width=this.dragOffset.width+"px",this.helper.style.height=this.dragOffset.height+"px",bi.swap(ti._orig,"w","h"),delete ti._rect,this._mouseMove(this.lastDrag)}}_createHelper(){let ei=this.el;return typeof this.option.helper=="function"?ei=this.option.helper(this.el):this.option.helper==="clone"&&(ei=bi.cloneNode(this.el)),document.body.contains(ei)||bi.appendTo(ei,this.option.appendTo==="parent"?this.el.parentElement:this.option.appendTo),this.dragElementOriginStyle=ii.originStyleProp.map(ti=>this.el.style[ti]),ei}_setupHelperStyle(ei){this.helper.classList.add("ui-draggable-dragging");let ti=this.helper.style;return ti.pointerEvents="none",ti.width=this.dragOffset.width+"px",ti.height=this.dragOffset.height+"px",ti.willChange="left, top",ti.position="fixed",this._dragFollow(ei),ti.transition="none",setTimeout(()=>{this.helper&&(ti.transition=null)},0),this}_removeHelperStyle(){var ti;this.helper.classList.remove("ui-draggable-dragging");let ei=(ti=this.helper)==null?void 0:ti.gridstackNode;if(!(ei!=null&&ei._isAboutToRemove)&&this.dragElementOriginStyle){let ni=this.helper,ri=this.dragElementOriginStyle.transition||null;ni.style.transition=this.dragElementOriginStyle.transition="none",ii.originStyleProp.forEach(oi=>ni.style[oi]=this.dragElementOriginStyle[oi]||null),setTimeout(()=>ni.style.transition=ri,50)}return delete this.dragElementOriginStyle,this}_dragFollow(ei){let ti={left:0,top:0},ni=this.helper.style,ri=this.dragOffset;ni.left=(ei.clientX+ri.offsetLeft-ti.left)*this.dragTransform.xScale+"px",ni.top=(ei.clientY+ri.offsetTop-ti.top)*this.dragTransform.yScale+"px"}_setupHelperContainmentStyle(){return this.helperContainment=this.helper.parentElement,this.helper.style.position!=="fixed"&&(this.parentOriginStylePosition=this.helperContainment.style.position,getComputedStyle(this.helperContainment).position.match(/static/)&&(this.helperContainment.style.position="relative")),this}_getDragOffset(ei,ti,ni){let ri=0,oi=0;ni&&(ri=this.dragTransform.xOffset,oi=this.dragTransform.yOffset);let si=ti.getBoundingClientRect();return{left:si.left,top:si.top,offsetLeft:-ei.clientX+si.left-ri,offsetTop:-ei.clientY+si.top-oi,width:si.width*this.dragTransform.xScale,height:si.height*this.dragTransform.yScale}}ui(){let ti=this.el.parentElement.getBoundingClientRect(),ni=this.helper.getBoundingClientRect();return{position:{top:(ni.top-ti.top)*this.dragTransform.yScale,left:(ni.left-ti.left)*this.dragTransform.xScale}}}};xa.originStyleProp=["width","height","transform","transform-origin","transition","pointerEvents","position","left","top","minWidth","willChange"];var Ml=class extends zo{constructor(ei,ti={}){super(),this.el=ei,this.option=ti,this._mouseEnter=this._mouseEnter.bind(this),this._mouseLeave=this._mouseLeave.bind(this),this.enable(),this._setupAccept()}on(ei,ti){super.on(ei,ti)}off(ei){super.off(ei)}enable(){this.disabled!==!1&&(super.enable(),this.el.classList.add("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),this.el.addEventListener("mouseenter",this._mouseEnter),this.el.addEventListener("mouseleave",this._mouseLeave),$n&&(this.el.addEventListener("pointerenter",Zc),this.el.addEventListener("pointerleave",eu)))}disable(ei=!1){this.disabled!==!0&&(super.disable(),this.el.classList.remove("ui-droppable"),ei||this.el.classList.add("ui-droppable-disabled"),this.el.removeEventListener("mouseenter",this._mouseEnter),this.el.removeEventListener("mouseleave",this._mouseLeave),$n&&(this.el.removeEventListener("pointerenter",Zc),this.el.removeEventListener("pointerleave",eu)))}destroy(){this.disable(!0),this.el.classList.remove("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),super.destroy()}updateOption(ei){return Object.keys(ei).forEach(ti=>this.option[ti]=ei[ti]),this._setupAccept(),this}_mouseEnter(ei){if(!Bi.dragElement||!this._canDrop(Bi.dragElement.el))return;ei.preventDefault(),ei.stopPropagation(),Bi.dropElement&&Bi.dropElement!==this&&Bi.dropElement._mouseLeave(ei,!0),Bi.dropElement=this;let ti=bi.initEvent(ei,{target:this.el,type:"dropover"});this.option.over&&this.option.over(ti,this._ui(Bi.dragElement)),this.triggerEvent("dropover",ti),this.el.classList.add("ui-droppable-over")}_mouseLeave(ei,ti=!1){var ri;if(!Bi.dragElement||Bi.dropElement!==this)return;ei.preventDefault(),ei.stopPropagation();let ni=bi.initEvent(ei,{target:this.el,type:"dropout"});if(this.option.out&&this.option.out(ni,this._ui(Bi.dragElement)),this.triggerEvent("dropout",ni),Bi.dropElement===this&&(delete Bi.dropElement,!ti)){let oi,si=this.el.parentElement;for(;!oi&&si;)oi=(ri=si.ddElement)==null?void 0:ri.ddDroppable,si=si.parentElement;oi&&oi._mouseEnter(ei)}}drop(ei){ei.preventDefault();let ti=bi.initEvent(ei,{target:this.el,type:"drop"});this.option.drop&&this.option.drop(ti,this._ui(Bi.dragElement)),this.triggerEvent("drop",ti)}_canDrop(ei){return ei&&(!this.accept||this.accept(ei))}_setupAccept(){return this.option.accept?(typeof this.option.accept=="string"?this.accept=ei=>ei.classList.contains(this.option.accept)||ei.matches(this.option.accept):this.accept=this.option.accept,this):this}_ui(ei){return Di({draggable:ei.el},ei.ui())}};var kl=class ii{static init(ei){return ei.ddElement||(ei.ddElement=new ii(ei)),ei.ddElement}constructor(ei){this.el=ei}on(ei,ti){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(ei)>-1?this.ddDraggable.on(ei,ti):this.ddDroppable&&["drop","dropover","dropout"].indexOf(ei)>-1?this.ddDroppable.on(ei,ti):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(ei)>-1&&this.ddResizable.on(ei,ti),this}off(ei){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(ei)>-1?this.ddDraggable.off(ei):this.ddDroppable&&["drop","dropover","dropout"].indexOf(ei)>-1?this.ddDroppable.off(ei):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(ei)>-1&&this.ddResizable.off(ei),this}setupDraggable(ei){return this.ddDraggable?this.ddDraggable.updateOption(ei):this.ddDraggable=new xa(this.el,ei),this}cleanDraggable(){return this.ddDraggable&&(this.ddDraggable.destroy(),delete this.ddDraggable),this}setupResizable(ei){return this.ddResizable?this.ddResizable.updateOption(ei):this.ddResizable=new wa(this.el,ei),this}cleanResizable(){return this.ddResizable&&(this.ddResizable.destroy(),delete this.ddResizable),this}setupDroppable(ei){return this.ddDroppable?this.ddDroppable.updateOption(ei):this.ddDroppable=new Ml(this.el,ei),this}cleanDroppable(){return this.ddDroppable&&(this.ddDroppable.destroy(),delete this.ddDroppable),this}};var Nl=class{resizable(ei,ti,ni,ri){return this._getDDElements(ei).forEach(oi=>{if(ti==="disable"||ti==="enable")oi.ddResizable&&oi.ddResizable[ti]();else if(ti==="destroy")oi.ddResizable&&oi.cleanResizable();else if(ti==="option")oi.setupResizable({[ni]:ri});else{let ai=oi.el.gridstackNode.grid,li=oi.el.getAttribute("gs-resize-handles")||ai.opts.resizable.handles||"e,s,se";li==="all"&&(li="n,e,s,w,se,sw,ne,nw");let ui=!ai.opts.alwaysShowResizeHandle;oi.setupResizable(sn(Di({},ai.opts.resizable),{handles:li,autoHide:ui,start:ti.start,stop:ti.stop,resize:ti.resize}))}}),this}draggable(ei,ti,ni,ri){return this._getDDElements(ei).forEach(oi=>{if(ti==="disable"||ti==="enable")oi.ddDraggable&&oi.ddDraggable[ti]();else if(ti==="destroy")oi.ddDraggable&&oi.cleanDraggable();else if(ti==="option")oi.setupDraggable({[ni]:ri});else{let si=oi.el.gridstackNode.grid;oi.setupDraggable(sn(Di({},si.opts.draggable),{start:ti.start,stop:ti.stop,drag:ti.drag}))}}),this}dragIn(ei,ti){return this._getDDElements(ei).forEach(ni=>ni.setupDraggable(ti)),this}droppable(ei,ti,ni,ri){return typeof ti.accept=="function"&&!ti._accept&&(ti._accept=ti.accept,ti.accept=oi=>ti._accept(oi)),this._getDDElements(ei).forEach(oi=>{ti==="disable"||ti==="enable"?oi.ddDroppable&&oi.ddDroppable[ti]():ti==="destroy"?oi.ddDroppable&&oi.cleanDroppable():ti==="option"?oi.setupDroppable({[ni]:ri}):oi.setupDroppable(ti)}),this}isDroppable(ei){var ti;return!!((ti=ei==null?void 0:ei.ddElement)!=null&&ti.ddDroppable&&!ei.ddElement.ddDroppable.disabled)}isDraggable(ei){var ti;return!!((ti=ei==null?void 0:ei.ddElement)!=null&&ti.ddDraggable&&!ei.ddElement.ddDraggable.disabled)}isResizable(ei){var ti;return!!((ti=ei==null?void 0:ei.ddElement)!=null&&ti.ddResizable&&!ei.ddElement.ddResizable.disabled)}on(ei,ti,ni){return this._getDDElements(ei).forEach(ri=>ri.on(ti,oi=>{ni(oi,Bi.dragElement?Bi.dragElement.el:oi.target,Bi.dragElement?Bi.dragElement.helper:null)})),this}off(ei,ti){return this._getDDElements(ei).forEach(ni=>ni.off(ti)),this}_getDDElements(ei,ti=!0){let ni=bi.getElements(ei);if(!ni.length)return[];let ri=ni.map(oi=>oi.ddElement||(ti?kl.init(oi):null));return ti||ri.filter(oi=>oi),ri}};var Bn=new Nl,Jr=class ii{static init(ei={},ti=".grid-stack"){if(typeof document=="undefined")return null;let ni=ii.getGridElement(ti);return ni?(ni.gridstack||(ni.gridstack=new ii(ni,bi.cloneDeep(ei))),ni.gridstack):(console.error(typeof ti=="string"?'GridStack.initAll() no grid was found with selector "'+ti+`" - element missing or wrong selector ? + `}}function Yi(){ti.calendarContainer.classList.add("hasWeeks");var fi=tn("div","flatpickr-weekwrapper");fi.appendChild(tn("span","flatpickr-weekday",ti.l10n.weekAbbreviation));var hi=tn("div","flatpickr-weeks");return fi.appendChild(hi),{weekWrapper:fi,weekNumbers:hi}}function Ri(fi,hi){hi===void 0&&(hi=!0);var mi=hi?fi:fi-ti.currentMonth;mi<0&&ti._hidePrevMonthArrow===!0||mi>0&&ti._hideNextMonthArrow===!0||(ti.currentMonth+=mi,(ti.currentMonth<0||ti.currentMonth>11)&&(ti.currentYear+=ti.currentMonth>11?1:-1,ti.currentMonth=(ti.currentMonth+12)%12,un("onYearChange"),Ji()),Qi(),un("onMonthChange"),Ca())}function Ii(fi,hi){if(fi===void 0&&(fi=!0),hi===void 0&&(hi=!0),ti.input.value="",ti.altInput!==void 0&&(ti.altInput.value=""),ti.mobileInput!==void 0&&(ti.mobileInput.value=""),ti.selectedDates=[],ti.latestSelectedDateObj=void 0,hi===!0&&(ti.currentYear=ti._initialDate.getFullYear(),ti.currentMonth=ti._initialDate.getMonth()),ti.config.enableTime===!0){var mi=Dl(ti.config),_i=mi.hours,Ti=mi.minutes,Ni=mi.seconds;yi(_i,Ti,Ni)}ti.redraw(),fi&&un("onChange")}function Ui(){ti.isOpen=!1,ti.isMobile||(ti.calendarContainer!==void 0&&ti.calendarContainer.classList.remove("open"),ti._input!==void 0&&ti._input.classList.remove("active")),un("onClose")}function ji(){ti.config!==void 0&&un("onDestroy");for(var fi=ti._handlers.length;fi--;)ti._handlers[fi].remove();if(ti._handlers=[],ti.mobileInput)ti.mobileInput.parentNode&&ti.mobileInput.parentNode.removeChild(ti.mobileInput),ti.mobileInput=void 0;else if(ti.calendarContainer&&ti.calendarContainer.parentNode)if(ti.config.static&&ti.calendarContainer.parentNode){var hi=ti.calendarContainer.parentNode;if(hi.lastChild&&hi.removeChild(hi.lastChild),hi.parentNode){for(;hi.firstChild;)hi.parentNode.insertBefore(hi.firstChild,hi);hi.parentNode.removeChild(hi)}}else ti.calendarContainer.parentNode.removeChild(ti.calendarContainer);ti.altInput&&(ti.input.type="text",ti.altInput.parentNode&&ti.altInput.parentNode.removeChild(ti.altInput),delete ti.altInput),ti.input&&(ti.input.type=ti.input._type,ti.input.classList.remove("flatpickr-input"),ti.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(mi){try{delete ti[mi]}catch(_i){}})}function Pi(fi){return ti.calendarContainer.contains(fi)}function ln(fi){if(ti.isOpen&&!ti.config.inline){var hi=Wn(fi),mi=Pi(hi),_i=hi===ti.input||hi===ti.altInput||ti.element.contains(hi)||fi.path&&fi.path.indexOf&&(~fi.path.indexOf(ti.input)||~fi.path.indexOf(ti.altInput)),Ti=!_i&&!mi&&!Pi(fi.relatedTarget),Ni=!ti.config.ignoredFocusElements.some(function(Ki){return Ki.contains(hi)});Ti&&Ni&&(ti.config.allowInput&&ti.setDate(ti._input.value,!1,ti.config.altInput?ti.config.altFormat:ti.config.dateFormat),ti.timeContainer!==void 0&&ti.minuteElement!==void 0&&ti.hourElement!==void 0&&ti.input.value!==""&&ti.input.value!==void 0&&li(),ti.close(),ti.config&&ti.config.mode==="range"&&ti.selectedDates.length===1&&ti.clear(!1))}}function kn(fi){if(!(!fi||ti.config.minDate&&fiti.config.maxDate.getFullYear())){var hi=fi,mi=ti.currentYear!==hi;ti.currentYear=hi||ti.currentYear,ti.config.maxDate&&ti.currentYear===ti.config.maxDate.getFullYear()?ti.currentMonth=Math.min(ti.config.maxDate.getMonth(),ti.currentMonth):ti.config.minDate&&ti.currentYear===ti.config.minDate.getFullYear()&&(ti.currentMonth=Math.max(ti.config.minDate.getMonth(),ti.currentMonth)),mi&&(ti.redraw(),un("onYearChange"),Ji())}}function yn(fi,hi){var mi;hi===void 0&&(hi=!0);var _i=ti.parseDate(fi,void 0,hi);if(ti.config.minDate&&_i&&Un(_i,ti.config.minDate,hi!==void 0?hi:!ti.minDateHasTime)<0||ti.config.maxDate&&_i&&Un(_i,ti.config.maxDate,hi!==void 0?hi:!ti.maxDateHasTime)>0)return!1;if(!ti.config.enable&&ti.config.disable.length===0)return!0;if(_i===void 0)return!1;for(var Ti=!!ti.config.enable,Ni=(mi=ti.config.enable)!==null&&mi!==void 0?mi:ti.config.disable,Ki=0,$i=void 0;Ki=$i.from.getTime()&&_i.getTime()<=$i.to.getTime())return Ti}return!Ti}function Cn(fi){return ti.daysContainer!==void 0?fi.className.indexOf("hidden")===-1&&fi.className.indexOf("flatpickr-disabled")===-1&&ti.daysContainer.contains(fi):!1}function $s(fi){var hi=fi.target===ti._input,mi=ti._input.value.trimEnd()!==Hl();hi&&mi&&!(fi.relatedTarget&&Pi(fi.relatedTarget))&&ti.setDate(ti._input.value,!0,fi.target===ti.altInput?ti.config.altFormat:ti.config.dateFormat)}function ro(fi){var hi=Wn(fi),mi=ti.config.wrap?ii.contains(hi):hi===ti._input,_i=ti.config.allowInput,Ti=ti.isOpen&&(!_i||!mi),Ni=ti.config.inline&&mi&&!_i;if(fi.keyCode===13&&mi){if(_i)return ti.setDate(ti._input.value,!0,hi===ti.altInput?ti.config.altFormat:ti.config.dateFormat),ti.close(),hi.blur();ti.open()}else if(Pi(hi)||Ti||Ni){var Ki=!!ti.timeContainer&&ti.timeContainer.contains(hi);switch(fi.keyCode){case 13:Ki?(fi.preventDefault(),li(),us()):ds(fi);break;case 27:fi.preventDefault(),us();break;case 8:case 46:mi&&!ti.config.allowInput&&(fi.preventDefault(),ti.clear());break;case 37:case 39:if(!Ki&&!mi){fi.preventDefault();var $i=oi();if(ti.daysContainer!==void 0&&(_i===!1||$i&&Cn($i))){var Xi=fi.keyCode===39?1:-1;fi.ctrlKey?(fi.stopPropagation(),Ri(Xi),qi(Mi(1),0)):qi(void 0,Xi)}}else ti.hourElement&&ti.hourElement.focus();break;case 38:case 40:fi.preventDefault();var Fi=fi.keyCode===40?1:-1;ti.daysContainer&&hi.$i!==void 0||hi===ti.input||hi===ti.altInput?fi.ctrlKey?(fi.stopPropagation(),kn(ti.currentYear-Fi),qi(Mi(1),0)):Ki||qi(void 0,Fi*7):hi===ti.currentYearElement?kn(ti.currentYear-Fi):ti.config.enableTime&&(!Ki&&ti.hourElement&&ti.hourElement.focus(),li(fi),ti._debouncedChange());break;case 9:if(Ki){var Gi=[ti.hourElement,ti.minuteElement,ti.secondElement,ti.amPM].concat(ti.pluginElements).filter(function(Kn){return Kn}),nn=Gi.indexOf(hi);if(nn!==-1){var oo=Gi[nn+(fi.shiftKey?-1:1)];fi.preventDefault(),(oo||ti._input).focus()}}else!ti.config.noCalendar&&ti.daysContainer&&ti.daysContainer.contains(hi)&&fi.shiftKey&&(fi.preventDefault(),ti._input.focus());break;default:break}}if(ti.amPM!==void 0&&hi===ti.amPM)switch(fi.key){case ti.l10n.amPM[0].charAt(0):case ti.l10n.amPM[0].charAt(0).toLowerCase():ti.amPM.textContent=ti.l10n.amPM[0],di(),lo();break;case ti.l10n.amPM[1].charAt(0):case ti.l10n.amPM[1].charAt(0).toLowerCase():ti.amPM.textContent=ti.l10n.amPM[1],di(),lo();break}(mi||Pi(hi))&&un("onKeyDown",fi)}function wo(fi,hi){if(hi===void 0&&(hi="flatpickr-day"),!(ti.selectedDates.length!==1||fi&&(!fi.classList.contains(hi)||fi.classList.contains("flatpickr-disabled")))){for(var mi=fi?fi.dateObj.getTime():ti.days.firstElementChild.dateObj.getTime(),_i=ti.parseDate(ti.selectedDates[0],void 0,!0).getTime(),Ti=Math.min(mi,ti.selectedDates[0].getTime()),Ni=Math.max(mi,ti.selectedDates[0].getTime()),Ki=!1,$i=0,Xi=0,Fi=Ti;FiTi&&Fi$i)?$i=Fi:Fi>_i&&(!Xi||Fi ."+hi));Gi.forEach(function(nn){var oo=nn.dateObj,Kn=oo.getTime(),Vs=$i>0&&Kn<$i||Xi>0&&Kn>Xi;if(Vs){nn.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(function(fs){nn.classList.remove(fs)});return}else if(Ki&&!Vs)return;["startRange","inRange","endRange","notAllowed"].forEach(function(fs){nn.classList.remove(fs)}),fi!==void 0&&(fi.classList.add(mi<=ti.selectedDates[0].getTime()?"startRange":"endRange"),_imi&&Kn===_i&&nn.classList.add("endRange"),Kn>=$i&&(Xi===0||Kn<=Xi)&&mh(Kn,_i,mi)&&nn.classList.add("inRange"))})}}function bn(){ti.isOpen&&!ti.config.static&&!ti.config.inline&&Gn()}function xo(fi,hi){if(hi===void 0&&(hi=ti._positionElement),ti.isMobile===!0){if(fi){fi.preventDefault();var mi=Wn(fi);mi&&mi.blur()}ti.mobileInput!==void 0&&(ti.mobileInput.focus(),ti.mobileInput.click()),un("onOpen");return}else if(ti._input.disabled||ti.config.inline)return;var _i=ti.isOpen;ti.isOpen=!0,_i||(ti.calendarContainer.classList.add("open"),ti._input.classList.add("active"),un("onOpen"),Gn(hi)),ti.config.enableTime===!0&&ti.config.noCalendar===!0&&ti.config.allowInput===!1&&(fi===void 0||!ti.timeContainer.contains(fi.relatedTarget))&&setTimeout(function(){return ti.hourElement.select()},50)}function ao(fi){return function(hi){var mi=ti.config["_"+fi+"Date"]=ti.parseDate(hi,ti.config.dateFormat),_i=ti.config["_"+(fi==="min"?"max":"min")+"Date"];mi!==void 0&&(ti[fi==="min"?"minDateHasTime":"maxDateHasTime"]=mi.getHours()>0||mi.getMinutes()>0||mi.getSeconds()>0),ti.selectedDates&&(ti.selectedDates=ti.selectedDates.filter(function(Ti){return yn(Ti)}),!ti.selectedDates.length&&fi==="min"&&pi(mi),lo()),ti.daysContainer&&(Bs(),mi!==void 0?ti.currentYearElement[fi]=mi.getFullYear().toString():ti.currentYearElement.removeAttribute(fi),ti.currentYearElement.disabled=!!_i&&mi!==void 0&&_i.getFullYear()===mi.getFullYear())}}function ls(){var fi=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],hi=Hn(Hn({},JSON.parse(JSON.stringify(ii.dataset||{}))),ei),mi={};ti.config.parseDate=hi.parseDate,ti.config.formatDate=hi.formatDate,Object.defineProperty(ti.config,"enable",{get:function(){return ti.config._enable},set:function(Gi){ti.config._enable=nu(Gi)}}),Object.defineProperty(ti.config,"disable",{get:function(){return ti.config._disable},set:function(Gi){ti.config._disable=nu(Gi)}});var _i=hi.mode==="time";if(!hi.dateFormat&&(hi.enableTime||_i)){var Ti=xn.defaultConfig.dateFormat||Bo.dateFormat;mi.dateFormat=hi.noCalendar||_i?"H:i"+(hi.enableSeconds?":S":""):Ti+" H:i"+(hi.enableSeconds?":S":"")}if(hi.altInput&&(hi.enableTime||_i)&&!hi.altFormat){var Ni=xn.defaultConfig.altFormat||Bo.altFormat;mi.altFormat=hi.noCalendar||_i?"h:i"+(hi.enableSeconds?":S K":" K"):Ni+(" h:i"+(hi.enableSeconds?":S":"")+" K")}Object.defineProperty(ti.config,"minDate",{get:function(){return ti.config._minDate},set:ao("min")}),Object.defineProperty(ti.config,"maxDate",{get:function(){return ti.config._maxDate},set:ao("max")});var Ki=function(Gi){return function(nn){ti.config[Gi==="min"?"_minTime":"_maxTime"]=ti.parseDate(nn,"H:i:S")}};Object.defineProperty(ti.config,"minTime",{get:function(){return ti.config._minTime},set:Ki("min")}),Object.defineProperty(ti.config,"maxTime",{get:function(){return ti.config._maxTime},set:Ki("max")}),hi.mode==="time"&&(ti.config.noCalendar=!0,ti.config.enableTime=!0),Object.assign(ti.config,mi,hi);for(var $i=0;$i-1?ti.config[Fi]=Sl(Xi[Fi]).map(si).concat(ti.config[Fi]):typeof hi[Fi]=="undefined"&&(ti.config[Fi]=Xi[Fi])}hi.altInputClass||(ti.config.altInputClass=On().className+" "+ti.config.altInputClass),un("onParseConfig")}function On(){return ti.config.wrap?ii.querySelector("[data-input]"):ii}function zn(){typeof ti.config.locale!="object"&&typeof xn.l10ns[ti.config.locale]=="undefined"&&ti.config.errorHandler(new Error("flatpickr: invalid locale "+ti.config.locale)),ti.l10n=Hn(Hn({},xn.l10ns.default),typeof ti.config.locale=="object"?ti.config.locale:ti.config.locale!=="default"?xn.l10ns[ti.config.locale]:void 0),Eo.D="("+ti.l10n.weekdays.shorthand.join("|")+")",Eo.l="("+ti.l10n.weekdays.longhand.join("|")+")",Eo.M="("+ti.l10n.months.shorthand.join("|")+")",Eo.F="("+ti.l10n.months.longhand.join("|")+")",Eo.K="("+ti.l10n.amPM[0]+"|"+ti.l10n.amPM[1]+"|"+ti.l10n.amPM[0].toLowerCase()+"|"+ti.l10n.amPM[1].toLowerCase()+")";var fi=Hn(Hn({},ei),JSON.parse(JSON.stringify(ii.dataset||{})));fi.time_24hr===void 0&&xn.defaultConfig.time_24hr===void 0&&(ti.config.time_24hr=ti.l10n.time_24hr),ti.formatDate=Qc(ti),ti.parseDate=Cl({config:ti.config,l10n:ti.l10n})}function Gn(fi){if(typeof ti.config.position=="function")return void ti.config.position(ti,fi);if(ti.calendarContainer!==void 0){un("onPreCalendarPosition");var hi=fi||ti._positionElement,mi=Array.prototype.reduce.call(ti.calendarContainer.children,function(Kh,Qh){return Kh+Qh.offsetHeight},0),_i=ti.calendarContainer.offsetWidth,Ti=ti.config.position.split(" "),Ni=Ti[0],Ki=Ti.length>1?Ti[1]:null,$i=hi.getBoundingClientRect(),Xi=window.innerHeight-$i.bottom,Fi=Ni==="above"||Ni!=="below"&&Ximi,Gi=window.pageYOffset+$i.top+(Fi?-mi-2:hi.offsetHeight+2);if(In(ti.calendarContainer,"arrowTop",!Fi),In(ti.calendarContainer,"arrowBottom",Fi),!ti.config.inline){var nn=window.pageXOffset+$i.left,oo=!1,Kn=!1;Ki==="center"?(nn-=(_i-$i.width)/2,oo=!0):Ki==="right"&&(nn-=_i-$i.width,Kn=!0),In(ti.calendarContainer,"arrowLeft",!oo&&!Kn),In(ti.calendarContainer,"arrowCenter",oo),In(ti.calendarContainer,"arrowRight",Kn);var Vs=window.document.body.offsetWidth-(window.pageXOffset+$i.right),fs=nn+_i>window.document.body.offsetWidth,Vh=Vs+_i>window.document.body.offsetWidth;if(In(ti.calendarContainer,"rightMost",fs),!ti.config.static)if(ti.calendarContainer.style.top=Gi+"px",!fs)ti.calendarContainer.style.left=nn+"px",ti.calendarContainer.style.right="auto";else if(!Vh)ti.calendarContainer.style.left="auto",ti.calendarContainer.style.right=Vs+"px";else{var Pl=Jn();if(Pl===void 0)return;var jh=window.document.body.offsetWidth,qh=Math.max(0,jh/2-_i/2),Wh=".flatpickr-calendar.centerMost:before",Uh=".flatpickr-calendar.centerMost:after",Yh=Pl.cssRules.length,Gh="{left:"+$i.left+"px;right:auto;}";In(ti.calendarContainer,"rightMost",!1),In(ti.calendarContainer,"centerMost",!0),Pl.insertRule(Wh+","+Uh+Gh,Yh),ti.calendarContainer.style.left=qh+"px",ti.calendarContainer.style.right="auto"}}}}function Jn(){for(var fi=null,hi=0;hiti.currentMonth+ti.config.showMonths-1)&&ti.config.mode!=="range";if(ti.selectedDateElem=_i,ti.config.mode==="single")ti.selectedDates=[Ti];else if(ti.config.mode==="multiple"){var Ki=Il(Ti);Ki?ti.selectedDates.splice(parseInt(Ki),1):ti.selectedDates.push(Ti)}else ti.config.mode==="range"&&(ti.selectedDates.length===2&&ti.clear(!1,!1),ti.latestSelectedDateObj=Ti,ti.selectedDates.push(Ti),Un(Ti,ti.selectedDates[0],!0)!==0&&ti.selectedDates.sort(function(Gi,nn){return Gi.getTime()-nn.getTime()}));if(di(),Ni){var $i=ti.currentYear!==Ti.getFullYear();ti.currentYear=Ti.getFullYear(),ti.currentMonth=Ti.getMonth(),$i&&(un("onYearChange"),Ji()),un("onMonthChange")}if(Ca(),Qi(),lo(),!Ni&&ti.config.mode!=="range"&&ti.config.showMonths===1?ki(_i):ti.selectedDateElem!==void 0&&ti.hourElement===void 0&&ti.selectedDateElem&&ti.selectedDateElem.focus(),ti.hourElement!==void 0&&ti.hourElement!==void 0&&ti.hourElement.focus(),ti.config.closeOnSelect){var Xi=ti.config.mode==="single"&&!ti.config.enableTime,Fi=ti.config.mode==="range"&&ti.selectedDates.length===2&&!ti.config.enableTime;(Xi||Fi)&&us()}Ei()}}var Vo={locale:[zn,vn],showMonths:[rn,ai,Mn],minDate:[xi],maxDate:[xi],positionElement:[ru],clickOpens:[function(){ti.config.clickOpens===!0?(vi(ti._input,"focus",ti.open),vi(ti._input,"click",ti.open)):(ti._input.removeEventListener("focus",ti.open),ti._input.removeEventListener("click",ti.open))}]};function Ta(fi,hi){if(fi!==null&&typeof fi=="object"){Object.assign(ti.config,fi);for(var mi in fi)Vo[mi]!==void 0&&Vo[mi].forEach(function(_i){return _i()})}else ti.config[fi]=hi,Vo[fi]!==void 0?Vo[fi].forEach(function(_i){return _i()}):wl.indexOf(fi)>-1&&(ti.config[fi]=Sl(hi));ti.redraw(),lo(!0)}function zs(fi,hi){var mi=[];if(fi instanceof Array)mi=fi.map(function(_i){return ti.parseDate(_i,hi)});else if(fi instanceof Date||typeof fi=="number")mi=[ti.parseDate(fi,hi)];else if(typeof fi=="string")switch(ti.config.mode){case"single":case"time":mi=[ti.parseDate(fi,hi)];break;case"multiple":mi=fi.split(ti.config.conjunction).map(function(_i){return ti.parseDate(_i,hi)});break;case"range":mi=fi.split(ti.l10n.rangeSeparator).map(function(_i){return ti.parseDate(_i,hi)});break;default:break}else ti.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(fi)));ti.selectedDates=ti.config.allowInvalidPreload?mi:mi.filter(function(_i){return _i instanceof Date&&yn(_i,!1)}),ti.config.mode==="range"&&ti.selectedDates.sort(function(_i,Ti){return _i.getTime()-Ti.getTime()})}function Sa(fi,hi,mi){if(hi===void 0&&(hi=!1),mi===void 0&&(mi=ti.config.dateFormat),fi!==0&&!fi||fi instanceof Array&&fi.length===0)return ti.clear(hi);zs(fi,mi),ti.latestSelectedDateObj=ti.selectedDates[ti.selectedDates.length-1],ti.redraw(),xi(void 0,hi),pi(),ti.selectedDates.length===0&&ti.clear(!1),lo(hi),hi&&un("onChange")}function nu(fi){return fi.slice().map(function(hi){return typeof hi=="string"||typeof hi=="number"||hi instanceof Date?ti.parseDate(hi,void 0,!0):hi&&typeof hi=="object"&&hi.from&&hi.to?{from:ti.parseDate(hi.from,void 0),to:ti.parseDate(hi.to,void 0)}:hi}).filter(function(hi){return hi})}function Ih(){ti.selectedDates=[],ti.now=ti.parseDate(ti.config.now)||new Date;var fi=ti.config.defaultDate||((ti.input.nodeName==="INPUT"||ti.input.nodeName==="TEXTAREA")&&ti.input.placeholder&&ti.input.value===ti.input.placeholder?null:ti.input.value);fi&&zs(fi,ti.config.dateFormat),ti._initialDate=ti.selectedDates.length>0?ti.selectedDates[0]:ti.config.minDate&&ti.config.minDate.getTime()>ti.now.getTime()?ti.config.minDate:ti.config.maxDate&&ti.config.maxDate.getTime()0&&(ti.latestSelectedDateObj=ti.selectedDates[0]),ti.config.minTime!==void 0&&(ti.config.minTime=ti.parseDate(ti.config.minTime,"H:i")),ti.config.maxTime!==void 0&&(ti.config.maxTime=ti.parseDate(ti.config.maxTime,"H:i")),ti.minDateHasTime=!!ti.config.minDate&&(ti.config.minDate.getHours()>0||ti.config.minDate.getMinutes()>0||ti.config.minDate.getSeconds()>0),ti.maxDateHasTime=!!ti.config.maxDate&&(ti.config.maxDate.getHours()>0||ti.config.maxDate.getMinutes()>0||ti.config.maxDate.getSeconds()>0)}function Hh(){if(ti.input=On(),!ti.input){ti.config.errorHandler(new Error("Invalid input element specified"));return}ti.input._type=ti.input.type,ti.input.type="text",ti.input.classList.add("flatpickr-input"),ti._input=ti.input,ti.config.altInput&&(ti.altInput=tn(ti.input.nodeName,ti.config.altInputClass),ti._input=ti.altInput,ti.altInput.placeholder=ti.input.placeholder,ti.altInput.disabled=ti.input.disabled,ti.altInput.required=ti.input.required,ti.altInput.tabIndex=ti.input.tabIndex,ti.altInput.type="text",ti.input.setAttribute("type","hidden"),!ti.config.static&&ti.input.parentNode&&ti.input.parentNode.insertBefore(ti.altInput,ti.input.nextSibling)),ti.config.allowInput||ti._input.setAttribute("readonly","readonly"),ru()}function ru(){ti._positionElement=ti.config.positionElement||ti._input}function Ph(){var fi=ti.config.enableTime?ti.config.noCalendar?"time":"datetime-local":"date";ti.mobileInput=tn("input",ti.input.className+" flatpickr-mobile"),ti.mobileInput.tabIndex=1,ti.mobileInput.type=fi,ti.mobileInput.disabled=ti.input.disabled,ti.mobileInput.required=ti.input.required,ti.mobileInput.placeholder=ti.input.placeholder,ti.mobileFormatStr=fi==="datetime-local"?"Y-m-d\\TH:i:S":fi==="date"?"Y-m-d":"H:i:S",ti.selectedDates.length>0&&(ti.mobileInput.defaultValue=ti.mobileInput.value=ti.formatDate(ti.selectedDates[0],ti.mobileFormatStr)),ti.config.minDate&&(ti.mobileInput.min=ti.formatDate(ti.config.minDate,"Y-m-d")),ti.config.maxDate&&(ti.mobileInput.max=ti.formatDate(ti.config.maxDate,"Y-m-d")),ti.input.getAttribute("step")&&(ti.mobileInput.step=String(ti.input.getAttribute("step"))),ti.input.type="hidden",ti.altInput!==void 0&&(ti.altInput.type="hidden");try{ti.input.parentNode&&ti.input.parentNode.insertBefore(ti.mobileInput,ti.input.nextSibling)}catch(hi){}vi(ti.mobileInput,"change",function(hi){ti.setDate(Wn(hi).value,!1,ti.mobileFormatStr),un("onChange"),un("onClose")})}function Fh(fi){if(ti.isOpen===!0)return ti.close();ti.open(fi)}function un(fi,hi){if(ti.config!==void 0){var mi=ti.config[fi];if(mi!==void 0&&mi.length>0)for(var _i=0;mi[_i]&&_i=0&&Un(fi,ti.selectedDates[1])<=0}function Ca(){ti.config.noCalendar||ti.isMobile||!ti.monthNav||(ti.yearElements.forEach(function(fi,hi){var mi=new Date(ti.currentYear,ti.currentMonth,1);mi.setMonth(ti.currentMonth+hi),ti.config.showMonths>1||ti.config.monthSelectorType==="static"?ti.monthElements[hi].textContent=_a(mi.getMonth(),ti.config.shorthandCurrentMonth,ti.l10n)+" ":ti.monthsDropdownContainer.value=mi.getMonth().toString(),fi.value=mi.getFullYear().toString()}),ti._hidePrevMonthArrow=ti.config.minDate!==void 0&&(ti.currentYear===ti.config.minDate.getFullYear()?ti.currentMonth<=ti.config.minDate.getMonth():ti.currentYearti.config.maxDate.getMonth():ti.currentYear>ti.config.maxDate.getFullYear()))}function Hl(fi){var hi=fi||(ti.config.altInput?ti.config.altFormat:ti.config.dateFormat);return ti.selectedDates.map(function(mi){return ti.formatDate(mi,hi)}).filter(function(mi,_i,Ti){return ti.config.mode!=="range"||ti.config.enableTime||Ti.indexOf(mi)===_i}).join(ti.config.mode!=="range"?ti.config.conjunction:ti.l10n.rangeSeparator)}function lo(fi){fi===void 0&&(fi=!0),ti.mobileInput!==void 0&&ti.mobileFormatStr&&(ti.mobileInput.value=ti.latestSelectedDateObj!==void 0?ti.formatDate(ti.latestSelectedDateObj,ti.mobileFormatStr):""),ti.input.value=Hl(ti.config.dateFormat),ti.altInput!==void 0&&(ti.altInput.value=Hl(ti.config.altFormat)),fi!==!1&&un("onValueUpdate")}function Bh(fi){var hi=Wn(fi),mi=ti.prevMonthNav.contains(hi),_i=ti.nextMonthNav.contains(hi);mi||_i?Ri(mi?-1:1):ti.yearElements.indexOf(hi)>=0?hi.select():hi.classList.contains("arrowUp")?ti.changeYear(ti.currentYear+1):hi.classList.contains("arrowDown")&&ti.changeYear(ti.currentYear-1)}function zh(fi){fi.preventDefault();var hi=fi.type==="keydown",mi=Wn(fi),_i=mi;ti.amPM!==void 0&&mi===ti.amPM&&(ti.amPM.textContent=ti.l10n.amPM[qn(ti.amPM.textContent===ti.l10n.amPM[0])]);var Ti=parseFloat(_i.getAttribute("min")),Ni=parseFloat(_i.getAttribute("max")),Ki=parseFloat(_i.getAttribute("step")),$i=parseInt(_i.value,10),Xi=fi.delta||(hi?fi.which===38?1:-1:0),Fi=$i+Ki*Xi;if(typeof _i.value!="undefined"&&_i.value.length===2){var Gi=_i===ti.hourElement,nn=_i===ti.minuteElement;FiNi&&(Fi=_i===ti.hourElement?Fi-Ni-qn(!ti.amPM):Ti,nn&&Oi(void 0,1,ti.hourElement)),ti.amPM&&Gi&&(Ki===1?Fi+$i===23:Math.abs(Fi-$i)>Ki)&&(ti.amPM.textContent=ti.l10n.amPM[qn(ti.amPM.textContent===ti.l10n.amPM[0])]),_i.value=Rn(Fi)}}return ri(),ti}function Ns(ii,ei){for(var ti=Array.prototype.slice.call(ii).filter(function(si){return si instanceof HTMLElement}),ni=[],ri=0;ri option"))if(ei.selected){for(let ti of Hi("#id_columns"))ti.appendChild(ei.cloneNode(!0));ei.remove()}ii.preventDefault()}function z_(ii){for(let ei of Hi("#id_columns > option"))if(ei.selected){for(let ti of Hi("#id_available_columns"))ti.appendChild(ei.cloneNode(!0));ei.remove()}ii.preventDefault()}function _h(ii,ei){return co(this,null,function*(){return yield Ls(ii,ei)})}function V_(ii){var li,ui,ci;ii.preventDefault();let ei=ii.currentTarget,ti=ei.getAttribute("data-url");if(ti==null){Po("danger","Error Updating Table Configuration","No API path defined for configuration form.").show();return}let ni=((li=document.activeElement)==null?void 0:li.getAttribute("value"))==="Reset",ri=(ci=(ui=ei.getAttribute("data-config-root"))==null?void 0:ui.split("."))!=null?ci:[];if(ni){let di=ri.reduceRight((pi,yi)=>({[yi]:pi}),{});_h(ti,di).then(pi=>{rs(pi)?Po("danger","Error Resetting Table Configuration",pi.error).show():location.reload()});return}let oi=yf(ei,"select[name=columns]"),si=Object.assign({},...oi.map(di=>({[di.name]:di.options}))),ai=ri.reduceRight((di,pi)=>({[pi]:di}),si);_h(ti,ai).then(di=>{rs(di)?Po("danger","Error Updating Table Configuration",di.error).show():location.reload()})}function Eh(){for(let ii of Hi("#save_tableconfig"))ii.addEventListener("click",$_);for(let ii of Hi("#add_columns"))ii.addEventListener("click",B_);for(let ii of Hi("#remove_columns"))ii.addEventListener("click",z_);for(let ii of Hi("form.userconfigform"))ii.addEventListener("submit",V_)}function wh(ii){return typeof ii=="string"&&["show","hide"].includes(ii)}var ss=class extends Error{constructor(ti,ni){super(ti);en(this,"table");this.table=ni}},Rs=class{constructor(ei,ti){en(this,"button");en(this,"rows");this.button=ei,this.rows=ti}hideRows(){for(let ei of this.rows)ei.classList.add("d-none")}set buttonState(ei){wh(ei)&&this.button.setAttribute("data-state",ei)}get buttonState(){let ei=this.button.getAttribute("data-state");return wh(ei)?ei:null}toggleButton(){this.buttonState==="show"?this.button.innerText=Ms(this.button.innerText,"Show","Hide"):this.buttonState==="hide"&&(this.button.innerText=Ms(this.button.innerHTML,"Hide","Show"))}toggleState(){this.buttonState==="show"?this.buttonState="hide":this.buttonState==="hide"&&(this.buttonState="show")}toggle(){this.toggleState(),this.toggleButton()}handleClick(ei){ei.currentTarget.isEqualNode(this.button)&&this.toggle(),this.buttonState==="hide"&&this.hideRows()}},Xc=class{constructor(ei){en(this,"table");en(this,"enabledButton");en(this,"disabledButton");en(this,"virtualButton");en(this,"disconnectedButton");en(this,"rows");this.table=ei,this.rows=this.table.querySelectorAll("tr");try{let ti=os(this.table,"button.toggle-enabled"),ni=os(this.table,"button.toggle-disabled"),ri=os(this.table,"button.toggle-virtual"),oi=os(this.table,"button.toggle-disconnected");if(ti===null)throw new ss("Table is missing a 'toggle-enabled' button.",ei);if(ni===null)throw new ss("Table is missing a 'toggle-disabled' button.",ei);if(ri===null)throw new ss("Table is missing a 'toggle-virtual' button.",ei);if(oi===null)throw new ss("Table is missing a 'toggle-disconnected' button.",ei);ti.addEventListener("click",si=>this.handleClick(si,this)),ni.addEventListener("click",si=>this.handleClick(si,this)),ri.addEventListener("click",si=>this.handleClick(si,this)),oi.addEventListener("click",si=>this.handleClick(si,this)),this.enabledButton=new Rs(ti,ei.querySelectorAll('tr[data-enabled="enabled"]')),this.disabledButton=new Rs(ni,ei.querySelectorAll('tr[data-enabled="disabled"]')),this.virtualButton=new Rs(ri,ei.querySelectorAll('tr[data-type="virtual"]')),this.disconnectedButton=new Rs(oi,ei.querySelectorAll('tr[data-connected="disconnected"]'))}catch(ti){if(ti instanceof ss){console.debug("Table does not contain enable/disable toggle buttons");return}else throw ti}}handleClick(ei,ti){for(let ni of this.rows)ni.classList.remove("d-none");ti.enabledButton.handleClick(ei),ti.disabledButton.handleClick(ei),ti.virtualButton.handleClick(ei),ti.disconnectedButton.handleClick(ei)}};function xh(){for(let ii of Hi("table"))new Xc(ii)}var Jc=class{constructor(ei){en(this,"base");en(this,"state");en(this,"activeLink",null);en(this,"sections",[]);this.base=ei,this.state=new ga({pinned:!0},{persist:!0,key:"netbox-sidenav"}),this.init(),this.initSectionLinks(),this.initLinks()}bodyHas(ei){return document.body.hasAttribute(`data-sidenav-${ei}`)}bodyRemove(...ei){for(let ti of ei)document.body.removeAttribute(`data-sidenav-${ti}`)}bodyAdd(...ei){for(let ti of ei)document.body.setAttribute(`data-sidenav-${ti}`,"")}init(){for(let ei of this.base.querySelectorAll(".sidenav-toggle"))ei.addEventListener("click",ti=>this.onToggle(ti));for(let ei of Hi(".sidenav-toggle-mobile"))ei.addEventListener("click",ti=>this.onMobileToggle(ti));window.innerWidth>1200&&(this.state.get("pinned")&&this.pin(),this.state.get("pinned")||this.unpin(),window.addEventListener("resize",()=>this.onResize())),window.innerWidth<1200&&(this.bodyRemove("hide"),this.bodyAdd("hidden"),window.addEventListener("resize",()=>this.onResize())),this.base.addEventListener("mouseenter",()=>this.onEnter()),this.base.addEventListener("mouseleave",()=>this.onLeave())}initLinks(){for(let ei of this.getActiveLinks())this.bodyHas("show")?this.activateLink(ei,"expand"):this.bodyHas("hidden")&&this.activateLink(ei,"collapse")}show(){this.bodyAdd("show"),this.bodyRemove("hidden","hide")}hide(){this.bodyAdd("hidden"),this.bodyRemove("pinned","show");for(let ei of this.base.querySelectorAll(".collapse"))ei.classList.remove("show")}pin(){this.bodyAdd("show","pinned"),this.bodyRemove("hidden"),this.state.set("pinned",!0)}unpin(){this.bodyRemove("pinned","show"),this.bodyAdd("hidden");for(let ei of this.base.querySelectorAll(".collapse"))ei.classList.remove("show");this.state.set("pinned",!1)}handleSectionClick(ei){ei.preventDefault();let ti=ei.target;this.activeLink=ti,this.closeInactiveSections()}closeInactiveSections(){for(let[ei,ti]of this.sections)ei!==this.activeLink&&(ei.classList.add("collapsed"),ei.setAttribute("aria-expanded","false"),ti.hide())}initSectionLinks(){for(let ei of Hi(".navbar-nav .nav-item .nav-link[data-bs-toggle]"))if(ei.parentElement!==null){let ti=ei.parentElement.querySelector(".collapse");if(ti!==null){let ni=new Oo(ti,{toggle:!1});this.sections.push([ei,ni]),ei.addEventListener("click",ri=>this.handleSectionClick(ri))}}}activateLink(ei,ti){var ri;let ni=ei.closest(".dropdown-menu");if(fl(ni)){let oi=ni.parentElement,si=(ri=ni.parentElement)==null?void 0:ri.querySelector(".nav-link");if(fl(si)&&fl(oi))switch(ti){case"expand":si.setAttribute("aria-expanded","true"),oi.classList.add("active"),ni.classList.add("show"),ei.classList.add("active");break;case"collapse":si.setAttribute("aria-expanded","false"),oi.classList.remove("active"),ni.classList.remove("show"),ei.classList.remove("active");break}}}*getActiveLinks(){for(let ei of this.base.querySelectorAll("ul.navbar-nav .nav-item .dropdown-item")){let ti=ei.querySelector("a");if(ti){let ni=new RegExp(ti.href,"gi");window.location.href.match(ni)&&(yield ei)}}}onEnter(){if(!this.bodyHas("pinned")){this.bodyRemove("hide","hidden"),this.bodyAdd("show");for(let ei of this.getActiveLinks())this.activateLink(ei,"expand")}}onLeave(){if(!this.bodyHas("pinned")){this.bodyRemove("show"),this.bodyAdd("hide");for(let ei of this.getActiveLinks())this.activateLink(ei,"collapse");this.bodyRemove("hide"),this.bodyAdd("hidden")}}onResize(){this.bodyHas("show")&&!this.bodyHas("pinned")&&(this.bodyRemove("show"),this.bodyAdd("hidden"))}onToggle(ei){ei.preventDefault(),this.state.get("pinned")?this.unpin():this.pin()}onMobileToggle(ei){ei.preventDefault(),this.bodyHas("hidden")?this.show():this.hide()}};function Th(){for(let ii of Hi(".navbar"))new Jc(ii)}function Sh(ii,ei,ti,ni,ri){let oi=(...si)=>(console.warn("gridstack.js: Function `"+ti+"` is deprecated in "+ri+" and has been replaced with `"+ni+"`. It will be **removed** in a future release"),ei.apply(ii,si));return oi.prototype=ei.prototype,oi}var bi=class ii{static getElements(ei,ti=document){if(typeof ei=="string"){let ni="getElementById"in ti?ti:void 0;if(ni&&!isNaN(+ei[0])){let oi=ni.getElementById(ei);return oi?[oi]:[]}let ri=ti.querySelectorAll(ei);return!ri.length&&ei[0]!=="."&&ei[0]!=="#"&&(ri=ti.querySelectorAll("."+ei),ri.length||(ri=ti.querySelectorAll("#"+ei))),Array.from(ri)}return[ei]}static getElement(ei,ti=document){if(typeof ei=="string"){let ni="getElementById"in ti?ti:void 0;if(!ei.length)return null;if(ni&&ei[0]==="#")return ni.getElementById(ei.substring(1));if(ei[0]==="#"||ei[0]==="."||ei[0]==="[")return ti.querySelector(ei);if(ni&&!isNaN(+ei[0]))return ni.getElementById(ei);let ri=ti.querySelector(ei);return ni&&!ri&&(ri=ni.getElementById(ei)),ri||(ri=ti.querySelector("."+ei)),ri}return ei}static createWidgetDivs(ei,ti){var si,ai;let ni=ii.createDiv(["grid-stack-item",ei]),ri=ii.createDiv(["grid-stack-item-content"],ni);return ti.lazyLoad||((ai=(si=ti.grid)==null?void 0:si.opts)==null?void 0:ai.lazyLoad)&&ti.lazyLoad!==!1?ti.visibleObservable||(ti.visibleObservable=new IntersectionObserver(([li])=>{var ui;li.isIntersecting&&((ui=ti.visibleObservable)==null||ui.disconnect(),delete ti.visibleObservable,Jr.renderCB(ri,ti))}),window.setTimeout(()=>{var li;return(li=ti.visibleObservable)==null?void 0:li.observe(ni)})):Jr.renderCB(ri,ti),ni}static createDiv(ei,ti){let ni=document.createElement("div");return ei.forEach(ri=>{ri&&ni.classList.add(ri)}),ti==null||ti.appendChild(ni),ni}static shouldSizeToContent(ei,ti=!1){return(ei==null?void 0:ei.grid)&&(ti?ei.sizeToContent===!0||ei.grid.opts.sizeToContent===!0&&ei.sizeToContent===void 0:!!ei.sizeToContent||ei.grid.opts.sizeToContent&&ei.sizeToContent!==!1)}static isIntercepted(ei,ti){return!(ei.y>=ti.y+ti.h||ei.y+ei.h<=ti.y||ei.x+ei.w<=ti.x||ei.x>=ti.x+ti.w)}static isTouching(ei,ti){return ii.isIntercepted(ei,{x:ti.x-.5,y:ti.y-.5,w:ti.w+1,h:ti.h+1})}static areaIntercept(ei,ti){let ni=ei.x>ti.x?ei.x:ti.x,ri=ei.x+ei.wti.y?ei.y:ti.y,si=ei.y+ei.h{var ai,li,ui,ci;let si=ti*(((ai=ri.y)!=null?ai:1e4)-((li=oi.y)!=null?li:1e4));return si===0?ti*(((ui=ri.x)!=null?ui:1e4)-((ci=oi.x)!=null?ci:1e4)):si})}static find(ei,ti){return ti?ei.find(ni=>ni.id===ti):void 0}static createStylesheet(ei,ti,ni){let ri=document.createElement("style"),oi=ni==null?void 0:ni.nonce;return oi&&(ri.nonce=oi),ri.setAttribute("type","text/css"),ri.setAttribute("gs-style-id",ei),ri.styleSheet?ri.styleSheet.cssText="":ri.appendChild(document.createTextNode("")),ti?ti.insertBefore(ri,ti.firstChild):(ti=document.getElementsByTagName("head")[0],ti.appendChild(ri)),ri}static removeStylesheet(ei,ti){let ri=(ti||document).querySelector("STYLE[gs-style-id="+ei+"]");ri&&ri.parentNode&&ri.remove()}static addCSSRule(ei,ti,ni){ei.textContent+=`${ti} { ${ni} } `}static toBool(ei){return typeof ei=="boolean"?ei:typeof ei=="string"?(ei=ei.toLowerCase(),!(ei===""||ei==="no"||ei==="false"||ei==="0")):!!ei}static toNumber(ei){return ei===null||ei.length===0?void 0:Number(ei)}static parseHeight(ei){let ti,ni="px";if(typeof ei=="string")if(ei==="auto"||ei==="")ti=0;else{let ri=ei.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%|cm|mm)?$/);if(!ri)throw new Error(`Invalid height val = ${ei}`);ni=ri[2]||"px",ti=parseFloat(ri[1])}else ti=ei;return{h:ti,unit:ni}}static defaults(ei,...ti){return ti.forEach(ni=>{for(let ri in ni){if(!ni.hasOwnProperty(ri))return;ei[ri]===null||ei[ri]===void 0?ei[ri]=ni[ri]:typeof ni[ri]=="object"&&typeof ei[ri]=="object"&&this.defaults(ei[ri],ni[ri])}}),ei}static same(ei,ti){if(typeof ei!="object")return ei==ti;if(typeof ei!=typeof ti||Object.keys(ei).length!==Object.keys(ti).length)return!1;for(let ni in ei)if(ei[ni]!==ti[ni])return!1;return!0}static copyPos(ei,ti,ni=!1){return ti.x!==void 0&&(ei.x=ti.x),ti.y!==void 0&&(ei.y=ti.y),ti.w!==void 0&&(ei.w=ti.w),ti.h!==void 0&&(ei.h=ti.h),ni&&(ti.minW&&(ei.minW=ti.minW),ti.minH&&(ei.minH=ti.minH),ti.maxW&&(ei.maxW=ti.maxW),ti.maxH&&(ei.maxH=ti.maxH)),ei}static samePos(ei,ti){return ei&&ti&&ei.x===ti.x&&ei.y===ti.y&&(ei.w||1)===(ti.w||1)&&(ei.h||1)===(ti.h||1)}static sanitizeMinMax(ei){ei.minW||delete ei.minW,ei.minH||delete ei.minH,ei.maxW||delete ei.maxW,ei.maxH||delete ei.maxH}static removeInternalAndSame(ei,ti){if(!(typeof ei!="object"||typeof ti!="object"))for(let ni in ei){let ri=ei[ni],oi=ti[ni];ni[0]==="_"||ri===oi?delete ei[ni]:ri&&typeof ri=="object"&&oi!==void 0&&(ii.removeInternalAndSame(ri,oi),Object.keys(ri).length||delete ei[ni])}}static removeInternalForSave(ei,ti=!0){for(let ni in ei)(ni[0]==="_"||ei[ni]===null||ei[ni]===void 0)&&delete ei[ni];delete ei.grid,ti&&delete ei.el,ei.autoPosition||delete ei.autoPosition,ei.noResize||delete ei.noResize,ei.noMove||delete ei.noMove,ei.locked||delete ei.locked,(ei.w===1||ei.w===ei.minW)&&delete ei.w,(ei.h===1||ei.h===ei.minH)&&delete ei.h}static throttle(ei,ti){let ni=!1;return(...ri)=>{ni||(ni=!0,setTimeout(()=>{ei(...ri),ni=!1},ti))}}static removePositioningStyles(ei){let ti=ei.style;ti.position&&ti.removeProperty("position"),ti.left&&ti.removeProperty("left"),ti.top&&ti.removeProperty("top"),ti.width&&ti.removeProperty("width"),ti.height&&ti.removeProperty("height")}static getScrollElement(ei){if(!ei)return document.scrollingElement||document.documentElement;let ti=getComputedStyle(ei);return/(auto|scroll)/.test(ti.overflow+ti.overflowY)?ei:this.getScrollElement(ei.parentElement)}static updateScrollPosition(ei,ti,ni){let ri=ei.getBoundingClientRect(),oi=window.innerHeight||document.documentElement.clientHeight;if(ri.top<0||ri.bottom>oi){let si=ri.bottom-oi,ai=ri.top,li=this.getScrollElement(ei);if(li!==null){let ui=li.scrollTop;ri.top<0&&ni<0?ei.offsetHeight>oi?li.scrollTop+=ni:li.scrollTop+=Math.abs(ai)>Math.abs(ni)?ni:ai:ni>0&&(ei.offsetHeight>oi?li.scrollTop+=ni:li.scrollTop+=si>ni?ni:si),ti.top+=li.scrollTop-ui}}}static updateScrollResize(ei,ti,ni){let ri=this.getScrollElement(ti),oi=ri.clientHeight,si=ri===this.getScrollElement()?0:ri.getBoundingClientRect().top,ai=ei.clientY-si,li=aioi-ni;li?ri.scrollBy({behavior:"smooth",top:ai-ni}):ui&&ri.scrollBy({behavior:"smooth",top:ni-(oi-ai)})}static clone(ei){return ei==null||typeof ei!="object"?ei:ei instanceof Array?[...ei]:Di({},ei)}static cloneDeep(ei){let ti=["parentGrid","el","grid","subGrid","engine"],ni=ii.clone(ei);for(let ri in ni)ni.hasOwnProperty(ri)&&typeof ni[ri]=="object"&&ri.substring(0,2)!=="__"&&!ti.find(oi=>oi===ri)&&(ni[ri]=ii.cloneDeep(ei[ri]));return ni}static cloneNode(ei){let ti=ei.cloneNode(!0);return ti.removeAttribute("id"),ti}static appendTo(ei,ti){let ni;typeof ti=="string"?ni=ii.getElement(ti):ni=ti,ni&&ni.appendChild(ei)}static addElStyles(ei,ti){if(ti instanceof Object)for(let ni in ti)ti.hasOwnProperty(ni)&&(Array.isArray(ti[ni])?ti[ni].forEach(ri=>{ei.style[ni]=ri}):ei.style[ni]=ti[ni])}static initEvent(ei,ti){let ni={type:ti.type},ri={button:0,which:0,buttons:1,bubbles:!0,cancelable:!0,target:ti.target?ti.target:ei.target};return["altKey","ctrlKey","metaKey","shiftKey"].forEach(oi=>ni[oi]=ei[oi]),["pageX","pageY","clientX","clientY","screenX","screenY"].forEach(oi=>ni[oi]=ei[oi]),Di(Di({},ni),ri)}static simulateMouseEvent(ei,ti,ni){let ri=document.createEvent("MouseEvents");ri.initMouseEvent(ti,!0,!0,window,1,ei.screenX,ei.screenY,ei.clientX,ei.clientY,ei.ctrlKey,ei.altKey,ei.shiftKey,ei.metaKey,0,ei.target),(ni||ei.target).dispatchEvent(ri)}static getValuesFromTransformedElement(ei){let ti=document.createElement("div");ii.addElStyles(ti,{opacity:"0",position:"fixed",top:"0px",left:"0px",width:"1px",height:"1px",zIndex:"-999999"}),ei.appendChild(ti);let ni=ti.getBoundingClientRect();return ei.removeChild(ti),ti.remove(),{xScale:1/ni.width,yScale:1/ni.height,xOffset:ni.left,yOffset:ni.top}}static swap(ei,ti,ni){if(!ei)return;let ri=ei[ti];ei[ti]=ei[ni],ei[ni]=ri}static canBeRotated(ei){var ti;return!(!ei||ei.w===ei.h||ei.locked||ei.noResize||(ti=ei.grid)!=null&&ti.opts.disableResize||ei.minW&&ei.minW===ei.maxW||ei.minH&&ei.minH===ei.maxH)}};var as=class ii{constructor(ei={}){this.addedNodes=[],this.removedNodes=[],this.defaultColumn=12,this.column=ei.column||this.defaultColumn,this.column>this.defaultColumn&&(this.defaultColumn=this.column),this.maxRow=ei.maxRow,this._float=ei.float,this.nodes=ei.nodes||[],this.onChange=ei.onChange}batchUpdate(ei=!0,ti=!0){return!!this.batchMode===ei?this:(this.batchMode=ei,ei?(this._prevFloat=this._float,this._float=!0,this.cleanNodes(),this.saveInitial()):(this._float=this._prevFloat,delete this._prevFloat,ti&&this._packNodes(),this._notify()),this)}_useEntireRowArea(ei,ti){return(!this.float||this.batchMode&&!this._prevFloat)&&!this._hasLocked&&(!ei._moving||ei._skipDown||ti.y<=ei.y)}_fixCollisions(ei,ti=ei,ni,ri={}){if(this.sortNodes(-1),ni=ni||this.collide(ei,ti),!ni)return!1;if(ei._moving&&!ri.nested&&!this.float&&this.swap(ei,ni))return!0;let oi=ti;!this._loading&&this._useEntireRowArea(ei,ti)&&(oi={x:0,w:this.column,y:ti.y,h:ti.h},ni=this.collide(ei,oi,ri.skip));let si=!1,ai={nested:!0,pack:!1},li=0;for(;ni=ni||this.collide(ei,oi,ri.skip);){if(li++>this.nodes.length*2)throw new Error("Infinite collide check");let ui;if(ni.locked||this._loading||ei._moving&&!ei._skipDown&&ti.y>ei.y&&!this.float&&(!this.collide(ni,sn(Di({},ni),{y:ei.y}),ei)||!this.collide(ni,sn(Di({},ni),{y:ti.y-ni.h}),ei))){ei._skipDown=ei._skipDown||ti.y>ei.y;let ci=Di(sn(Di({},ti),{y:ni.y+ni.h}),ai);ui=this._loading&&bi.samePos(ei,ci)?!0:this.moveNode(ei,ci),(ni.locked||this._loading)&&ui?bi.copyPos(ti,ei):!ni.locked&&ui&&ri.pack&&(this._packNodes(),ti.y=ni.y+ni.h,bi.copyPos(ei,ti)),si=si||ui}else ui=this.moveNode(ni,Di(sn(Di({},ni),{y:ti.y+ti.h,skip:ei}),ai));if(!ui)return si;ni=void 0}return si}collide(ei,ti=ei,ni){let ri=ei._id,oi=ni==null?void 0:ni._id;return this.nodes.find(si=>si._id!==ri&&si._id!==oi&&bi.isIntercepted(si,ti))}collideAll(ei,ti=ei,ni){let ri=ei._id,oi=ni==null?void 0:ni._id;return this.nodes.filter(si=>si._id!==ri&&si._id!==oi&&bi.isIntercepted(si,ti))}directionCollideCoverage(ei,ti,ni){if(!ti.rect||!ei._rect)return;let ri=ei._rect,oi=Di({},ti.rect);oi.y>ri.y?(oi.h+=oi.y-ri.y,oi.y=ri.y):oi.h+=ri.y-oi.y,oi.x>ri.x?(oi.w+=oi.x-ri.x,oi.x=ri.x):oi.w+=ri.x-oi.x;let si,ai=.5;for(let li of ni){if(li.locked||!li._rect)break;let ui=li._rect,ci=Number.MAX_VALUE,di=Number.MAX_VALUE;ri.yui.y+ui.h&&(ci=(ui.y+ui.h-oi.y)/ui.h),ri.xui.x+ui.w&&(di=(ui.x+ui.w-oi.x)/ui.w);let pi=Math.min(di,ci);pi>ai&&(ai=pi,si=li)}return ti.collide=si,si}cacheRects(ei,ti,ni,ri,oi,si){return this.nodes.forEach(ai=>ai._rect={y:ai.y*ti+ni,x:ai.x*ei+si,w:ai.w*ei-si-ri,h:ai.h*ti-ni-oi}),this}swap(ei,ti){if(!ti||ti.locked||!ei||ei.locked)return!1;function ni(){let oi=ti.x,si=ti.y;return ti.x=ei.x,ti.y=ei.y,ei.h!=ti.h?(ei.x=oi,ei.y=ti.y+ti.h):ei.w!=ti.w?(ei.x=ti.x+ti.w,ei.y=si):(ei.x=oi,ei.y=si),ei._dirty=ti._dirty=!0,!0}let ri;if(ei.w===ti.w&&ei.h===ti.h&&(ei.x===ti.x||ei.y===ti.y)&&(ri=bi.isTouching(ei,ti)))return ni();if(ri!==!1){if(ei.w===ti.w&&ei.x===ti.x&&(ri||(ri=bi.isTouching(ei,ti)))){if(ti.y{let ui;si.locked||(si.autoPosition=!0,ei==="list"&&ai&&(ui=li[ai-1])),this.addNode(si,!1,ui)}),ri||delete this._inColumnResize,ni||this.batchUpdate(!1),this}set float(ei){this._float!==ei&&(this._float=ei||!1,ei||this._packNodes()._notify())}get float(){return this._float||!1}sortNodes(ei=1){return this.nodes=bi.sort(this.nodes,ei),this}_packNodes(){return this.batchMode?this:(this.sortNodes(),this.float?this.nodes.forEach(ei=>{if(ei._updating||ei._orig===void 0||ei.y===ei._orig.y)return;let ti=ei.y;for(;ti>ei._orig.y;)--ti,this.collide(ei,{x:ei.x,y:ti,w:ei.w,h:ei.h})||(ei._dirty=!0,ei.y=ti)}):this.nodes.forEach((ei,ti)=>{if(!ei.locked)for(;ei.y>0;){let ni=ti===0?0:ei.y-1;if(!(ti===0||!this.collide(ei,{x:ei.x,y:ni,w:ei.w,h:ei.h})))break;ei._dirty=ei.y!==ni,ei.y=ni}}),this)}prepareNode(ei,ti){var oi;ei._id=(oi=ei._id)!=null?oi:ii._idSeq++;let ni=ei.id;if(ni){let si=1;for(;this.nodes.find(ai=>ai.id===ei.id&&ai!==ei);)ei.id=ni+"_"+si++}(ei.x===void 0||ei.y===void 0||ei.x===null||ei.y===null)&&(ei.autoPosition=!0);let ri={x:0,y:0,w:1,h:1};return bi.defaults(ei,ri),ei.autoPosition||delete ei.autoPosition,ei.noResize||delete ei.noResize,ei.noMove||delete ei.noMove,bi.sanitizeMinMax(ei),typeof ei.x=="string"&&(ei.x=Number(ei.x)),typeof ei.y=="string"&&(ei.y=Number(ei.y)),typeof ei.w=="string"&&(ei.w=Number(ei.w)),typeof ei.h=="string"&&(ei.h=Number(ei.h)),isNaN(ei.x)&&(ei.x=ri.x,ei.autoPosition=!0),isNaN(ei.y)&&(ei.y=ri.y,ei.autoPosition=!0),isNaN(ei.w)&&(ei.w=ri.w),isNaN(ei.h)&&(ei.h=ri.h),this.nodeBoundFix(ei,ti),ei}nodeBoundFix(ei,ti){let ni=ei._orig||bi.copyPos({},ei);if(ei.maxW&&ei.w&&(ei.w=Math.min(ei.w,ei.maxW)),ei.maxH&&ei.h&&(ei.h=Math.min(ei.h,ei.maxH)),ei.minW&&ei.w&&ei.minW<=this.column&&(ei.w=Math.max(ei.w,ei.minW)),ei.minH&&ei.h&&(ei.h=Math.max(ei.h,ei.minH)),(ei.x||0)+(ei.w||1)>this.column&&this.columnthis.column?ei.w=this.column:ei.w<1&&(ei.w=1),this.maxRow&&ei.h>this.maxRow?ei.h=this.maxRow:ei.h<1&&(ei.h=1),ei.x<0&&(ei.x=0),ei.y<0&&(ei.y=0),ei.x+ei.w>this.column&&(ti?ei.w=this.column-ei.x:ei.x=this.column-ei.w),this.maxRow&&ei.y+ei.h>this.maxRow&&(ti?ei.h=this.maxRow-ei.y:ei.y=this.maxRow-ei.h),bi.samePos(ei,ni)||(ei._dirty=!0),this}getDirtyNodes(ei){return ei?this.nodes.filter(ti=>ti._dirty&&!bi.samePos(ti,ti._orig)):this.nodes.filter(ti=>ti._dirty)}_notify(ei){if(this.batchMode||!this.onChange)return this;let ti=(ei||[]).concat(this.getDirtyNodes());return this.onChange(ti),this}cleanNodes(){return this.batchMode?this:(this.nodes.forEach(ei=>{delete ei._dirty,delete ei._lastTried}),this)}saveInitial(){return this.nodes.forEach(ei=>{ei._orig=bi.copyPos({},ei),delete ei._dirty}),this._hasLocked=this.nodes.some(ei=>ei.locked),this}restoreInitial(){return this.nodes.forEach(ei=>{!ei._orig||bi.samePos(ei,ei._orig)||(bi.copyPos(ei,ei._orig),ei._dirty=!0)}),this._notify(),this}findEmptyPosition(ei,ti=this.nodes,ni=this.column,ri){let oi=ri?ri.y*ni+(ri.x+ri.w):0,si=!1;for(let ai=oi;!si;++ai){let li=ai%ni,ui=Math.floor(ai/ni);if(li+ei.w>ni)continue;let ci={x:li,y:ui,w:ei.w,h:ei.h};ti.find(di=>bi.isIntercepted(ci,di))||((ei.x!==li||ei.y!==ui)&&(ei._dirty=!0),ei.x=li,ei.y=ui,delete ei.autoPosition,si=!0)}return si}addNode(ei,ti=!1,ni){let ri=this.nodes.find(si=>si._id===ei._id);if(ri)return ri;this._inColumnResize?this.nodeBoundFix(ei):this.prepareNode(ei),delete ei._temporaryRemoved,delete ei._removeDOM;let oi;return ei.autoPosition&&this.findEmptyPosition(ei,this.nodes,this.column,ni)&&(delete ei.autoPosition,oi=!0),this.nodes.push(ei),ti&&this.addedNodes.push(ei),oi||this._fixCollisions(ei),this.batchMode||this._packNodes()._notify(),ei}removeNode(ei,ti=!0,ni=!1){return this.nodes.find(ri=>ri._id===ei._id)?(ni&&this.removedNodes.push(ei),ti&&(ei._removeDOM=!0),this.nodes=this.nodes.filter(ri=>ri._id!==ei._id),ei._isAboutToRemove||this._packNodes(),this._notify([ei]),this):this}removeAll(ei=!0,ti=!0){if(delete this._layouts,!this.nodes.length)return this;ei&&this.nodes.forEach(ri=>ri._removeDOM=!0);let ni=this.nodes;return this.removedNodes=ti?ni:[],this.nodes=[],this._notify(ni)}moveNodeCheck(ei,ti){if(!this.changedPosConstrain(ei,ti))return!1;if(ti.pack=!0,!this.maxRow)return this.moveNode(ei,ti);let ni,ri=new ii({column:this.column,float:this.float,nodes:this.nodes.map(si=>si._id===ei._id?(ni=Di({},si),ni):Di({},si))});if(!ni)return!1;let oi=ri.moveNode(ni,ti)&&ri.getRow()<=Math.max(this.getRow(),this.maxRow);if(!oi&&!ti.resizing&&ti.collide){let si=ti.collide.el.gridstackNode;if(this.swap(ei,si))return this._notify(),!0}return oi?(ri.nodes.filter(si=>si._dirty).forEach(si=>{let ai=this.nodes.find(li=>li._id===si._id);ai&&(bi.copyPos(ai,si),ai._dirty=!0)}),this._notify(),!0):!1}willItFit(ei){if(delete ei._willFitPos,!this.maxRow)return!0;let ti=new ii({column:this.column,float:this.float,nodes:this.nodes.map(ri=>Di({},ri))}),ni=Di({},ei);return this.cleanupNode(ni),delete ni.el,delete ni._id,delete ni.content,delete ni.grid,ti.addNode(ni),ti.getRow()<=this.maxRow?(ei._willFitPos=bi.copyPos({},ni),!0):!1}changedPosConstrain(ei,ti){return ti.w=ti.w||ei.w,ti.h=ti.h||ei.h,ei.x!==ti.x||ei.y!==ti.y?!0:(ei.maxW&&(ti.w=Math.min(ti.w,ei.maxW)),ei.maxH&&(ti.h=Math.min(ti.h,ei.maxH)),ei.minW&&(ti.w=Math.max(ti.w,ei.minW)),ei.minH&&(ti.h=Math.max(ti.h,ei.minH)),ei.w!==ti.w||ei.h!==ti.h)}moveNode(ei,ti){var ui,ci;if(!ei||!ti)return!1;let ni;ti.pack===void 0&&!this.batchMode&&(ni=ti.pack=!0),typeof ti.x!="number"&&(ti.x=ei.x),typeof ti.y!="number"&&(ti.y=ei.y),typeof ti.w!="number"&&(ti.w=ei.w),typeof ti.h!="number"&&(ti.h=ei.h);let ri=ei.w!==ti.w||ei.h!==ti.h,oi=bi.copyPos({},ei,!0);if(bi.copyPos(oi,ti),this.nodeBoundFix(oi,ri),bi.copyPos(ti,oi),!ti.forceCollide&&bi.samePos(ei,ti))return!1;let si=bi.copyPos({},ei),ai=this.collideAll(ei,oi,ti.skip),li=!0;if(ai.length){let di=ei._moving&&!ti.nested,pi=di?this.directionCollideCoverage(ei,ti,ai):ai[0];if(di&&pi&&((ci=(ui=ei.grid)==null?void 0:ui.opts)!=null&&ci.subGridDynamic)&&!ei.grid._isTemp){let yi=bi.areaIntercept(ti.rect,pi._rect),gi=bi.area(ti.rect),vi=bi.area(pi._rect);yi/(gi.8&&(pi.grid.makeSubGrid(pi.el,void 0,ei),pi=void 0)}pi?li=!this._fixCollisions(ei,oi,pi,ti):(li=!1,ni&&delete ti.pack)}return li&&!bi.samePos(ei,oi)&&(ei._dirty=!0,bi.copyPos(ei,oi)),ti.pack&&this._packNodes()._notify(),!bi.samePos(ei,si)}getRow(){return this.nodes.reduce((ei,ti)=>Math.max(ei,ti.y+ti.h),0)}beginUpdate(ei){return ei._updating||(ei._updating=!0,delete ei._skipDown,this.batchMode||this.saveInitial()),this}endUpdate(){let ei=this.nodes.find(ti=>ti._updating);return ei&&(delete ei._updating,delete ei._skipDown),this}save(ei=!0,ti){var si;let ni=(si=this._layouts)==null?void 0:si.length,ri=ni&&this.column!==ni-1?this._layouts[ni-1]:null,oi=[];return this.sortNodes(),this.nodes.forEach(ai=>{let li=ri==null?void 0:ri.find(ci=>ci._id===ai._id),ui=Di(Di({},ai),li||{});bi.removeInternalForSave(ui,!ei),ti&&ti(ai,ui),oi.push(ui)}),oi}layoutsNodesChange(ei){return!this._layouts||this._inColumnResize?this:(this._layouts.forEach((ti,ni)=>{if(!ti||ni===this.column)return this;if(ni{if(!oi._orig)return;let si=ti.find(ai=>ai._id===oi._id);si&&(si.y>=0&&oi.y!==oi._orig.y&&(si.y+=oi.y-oi._orig.y),oi.x!==oi._orig.x&&(si.x=Math.round(oi.x*ri)),oi.w!==oi._orig.w&&(si.w=Math.round(oi.w*ri)))})}}),this)}columnChanged(ei,ti,ni="moveScale"){var ai;if(!this.nodes.length||!ti||ei===ti)return this;if(ni==="none")return this;let ri=ni==="compact"||ni==="list";ri&&this.sortNodes(1),tiei&&this._layouts){let li=this._layouts[ti]||[],ui=this._layouts.length-1;!li.length&&ei!==ui&&((ai=this._layouts[ui])!=null&&ai.length)&&(ei=ui,this._layouts[ui].forEach(ci=>{var pi,yi,gi;let di=si.find(vi=>vi._id===ci._id);di&&(!ri&&!ci.autoPosition&&(di.x=(pi=ci.x)!=null?pi:di.x,di.y=(yi=ci.y)!=null?yi:di.y),di.w=(gi=ci.w)!=null?gi:di.w,(ci.x==null||ci.y===void 0)&&(di.autoPosition=!0))})),li.forEach(ci=>{var pi,yi,gi;let di=si.findIndex(vi=>vi._id===ci._id);if(di!==-1){let vi=si[di];if(ri){vi.w=ci.w;return}(ci.autoPosition||isNaN(ci.x)||isNaN(ci.y))&&this.findEmptyPosition(ci,oi),ci.autoPosition||(vi.x=(pi=ci.x)!=null?pi:vi.x,vi.y=(yi=ci.y)!=null?yi:vi.y,vi.w=(gi=ci.w)!=null?gi:vi.w,oi.push(vi)),si.splice(di,1)}})}if(ri)this.compact(ni,!1);else{if(si.length)if(typeof ni=="function")ni(ti,ei,oi,si);else{let li=ri?1:ti/ei,ui=ni==="move"||ni==="moveScale",ci=ni==="scale"||ni==="moveScale";si.forEach(di=>{di.x=ti===1?0:ui?Math.round(di.x*li):Math.min(di.x,ti-1),di.w=ti===1||ei===1?1:ci?Math.round(di.w*li)||1:Math.min(di.w,ti),oi.push(di)}),si=[]}oi=bi.sort(oi,-1),this._inColumnResize=!0,this.nodes=[],oi.forEach(li=>{this.addNode(li,!1),delete li._orig})}return this.nodes.forEach(li=>delete li._orig),this.batchUpdate(!1,!ri),delete this._inColumnResize,this}cacheLayout(ei,ti,ni=!1){let ri=[];return ei.forEach((oi,si)=>{var ai;if(oi._id===void 0){let li=oi.id?this.nodes.find(ui=>ui.id===oi.id):void 0;oi._id=(ai=li==null?void 0:li._id)!=null?ai:ii._idSeq++}ri[si]={x:oi.x,y:oi.y,w:oi.w,_id:oi._id}}),this._layouts=ni?[]:this._layouts||[],this._layouts[ti]=ri,this}cacheOneLayout(ei,ti){var oi;ei._id=(oi=ei._id)!=null?oi:ii._idSeq++;let ni={x:ei.x,y:ei.y,w:ei.w,_id:ei._id};(ei.autoPosition||ei.x===void 0)&&(delete ni.x,delete ni.y,ei.autoPosition&&(ni.autoPosition=!0)),this._layouts=this._layouts||[],this._layouts[ti]=this._layouts[ti]||[];let ri=this.findCacheLayout(ei,ti);return ri===-1?this._layouts[ti].push(ni):this._layouts[ti][ri]=ni,this}findCacheLayout(ei,ti){var ni,ri,oi;return(oi=(ri=(ni=this._layouts)==null?void 0:ni[ti])==null?void 0:ri.findIndex(si=>si._id===ei._id))!=null?oi:-1}removeNodeFromLayoutCache(ei){if(this._layouts)for(let ti=0;ti0||navigator.msMaxTouchPoints>0),Zr=class{};function Ll(ii,ei){if(ii.touches.length>1)return;ii.cancelable&&ii.preventDefault();let ti=ii.changedTouches[0],ni=document.createEvent("MouseEvents");ni.initMouseEvent(ei,!0,!0,window,1,ti.screenX,ti.screenY,ti.clientX,ti.clientY,!1,!1,!1,!1,0,null),ii.target.dispatchEvent(ni)}function Ch(ii,ei){ii.cancelable&&ii.preventDefault();let ti=document.createEvent("MouseEvents");ti.initMouseEvent(ei,!0,!0,window,1,ii.screenX,ii.screenY,ii.clientX,ii.clientY,!1,!1,!1,!1,0,null),ii.target.dispatchEvent(ti)}function Is(ii){Zr.touchHandled||(Zr.touchHandled=!0,Ll(ii,"mousedown"))}function Hs(ii){Zr.touchHandled&&Ll(ii,"mousemove")}function Ps(ii){if(!Zr.touchHandled)return;Zr.pointerLeaveTimeout&&(window.clearTimeout(Zr.pointerLeaveTimeout),delete Zr.pointerLeaveTimeout);let ei=!!Bi.dragElement;Ll(ii,"mouseup"),ei||Ll(ii,"click"),Zr.touchHandled=!1}function Fs(ii){ii.pointerType!=="mouse"&&ii.target.releasePointerCapture(ii.pointerId)}function Zc(ii){Bi.dragElement&&ii.pointerType!=="mouse"&&Ch(ii,"mouseenter")}function eu(ii){Bi.dragElement&&ii.pointerType!=="mouse"&&(Zr.pointerLeaveTimeout=window.setTimeout(()=>{delete Zr.pointerLeaveTimeout,Ch(ii,"mouseleave")},10))}var Ea=class ii{constructor(ei,ti,ni){this.host=ei,this.dir=ti,this.option=ni,this.moving=!1,this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this._init()}_init(){let ei=this.el=document.createElement("div");return ei.classList.add("ui-resizable-handle"),ei.classList.add(`${ii.prefix}${this.dir}`),ei.style.zIndex="100",ei.style.userSelect="none",this.host.appendChild(this.el),this.el.addEventListener("mousedown",this._mouseDown),$n&&(this.el.addEventListener("touchstart",Is),this.el.addEventListener("pointerdown",Fs)),this}destroy(){return this.moving&&this._mouseUp(this.mouseDownEvent),this.el.removeEventListener("mousedown",this._mouseDown),$n&&(this.el.removeEventListener("touchstart",Is),this.el.removeEventListener("pointerdown",Fs)),this.host.removeChild(this.el),delete this.el,delete this.host,this}_mouseDown(ei){this.mouseDownEvent=ei,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),$n&&(this.el.addEventListener("touchmove",Hs),this.el.addEventListener("touchend",Ps)),ei.stopPropagation(),ei.preventDefault()}_mouseMove(ei){let ti=this.mouseDownEvent;this.moving?this._triggerEvent("move",ei):Math.abs(ei.x-ti.x)+Math.abs(ei.y-ti.y)>2&&(this.moving=!0,this._triggerEvent("start",this.mouseDownEvent),this._triggerEvent("move",ei),document.addEventListener("keydown",this._keyEvent)),ei.stopPropagation()}_mouseUp(ei){this.moving&&(this._triggerEvent("stop",ei),document.removeEventListener("keydown",this._keyEvent)),document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),$n&&(this.el.removeEventListener("touchmove",Hs),this.el.removeEventListener("touchend",Ps)),delete this.moving,delete this.mouseDownEvent,ei.stopPropagation(),ei.preventDefault()}_keyEvent(ei){var ti,ni;ei.key==="Escape"&&((ni=(ti=this.host.gridstackNode)==null?void 0:ti.grid)==null||ni.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent))}_triggerEvent(ei,ti){return this.option[ei]&&this.option[ei](ti),this}};Ea.prefix="ui-resizable-";var zo=class{constructor(){this._eventRegister={}}get disabled(){return this._disabled}on(ei,ti){this._eventRegister[ei]=ti}off(ei){delete this._eventRegister[ei]}enable(){this._disabled=!1}disable(){this._disabled=!0}destroy(){delete this._eventRegister}triggerEvent(ei,ti){if(!this.disabled&&this._eventRegister&&this._eventRegister[ei])return this._eventRegister[ei](ti)}};var wa=class ii extends zo{constructor(ei,ti={}){super(),this.el=ei,this.option=ti,this.rectScale={x:1,y:1},this._ui=()=>{let ri=this.el.parentElement.getBoundingClientRect(),oi={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},si=this.temporalRect||oi;return{position:{left:(si.left-ri.left)*this.rectScale.x,top:(si.top-ri.top)*this.rectScale.y},size:{width:si.width*this.rectScale.x,height:si.height*this.rectScale.y}}},this._mouseOver=this._mouseOver.bind(this),this._mouseOut=this._mouseOut.bind(this),this.enable(),this._setupAutoHide(this.option.autoHide),this._setupHandlers()}on(ei,ti){super.on(ei,ti)}off(ei){super.off(ei)}enable(){super.enable(),this.el.classList.remove("ui-resizable-disabled"),this._setupAutoHide(this.option.autoHide)}disable(){super.disable(),this.el.classList.add("ui-resizable-disabled"),this._setupAutoHide(!1)}destroy(){this._removeHandlers(),this._setupAutoHide(!1),delete this.el,super.destroy()}updateOption(ei){let ti=ei.handles&&ei.handles!==this.option.handles,ni=ei.autoHide&&ei.autoHide!==this.option.autoHide;return Object.keys(ei).forEach(ri=>this.option[ri]=ei[ri]),ti&&(this._removeHandlers(),this._setupHandlers()),ni&&this._setupAutoHide(this.option.autoHide),this}_setupAutoHide(ei){return ei?(this.el.classList.add("ui-resizable-autohide"),this.el.addEventListener("mouseover",this._mouseOver),this.el.addEventListener("mouseout",this._mouseOut)):(this.el.classList.remove("ui-resizable-autohide"),this.el.removeEventListener("mouseover",this._mouseOver),this.el.removeEventListener("mouseout",this._mouseOut),Bi.overResizeElement===this&&delete Bi.overResizeElement),this}_mouseOver(ei){Bi.overResizeElement||Bi.dragElement||(Bi.overResizeElement=this,this.el.classList.remove("ui-resizable-autohide"))}_mouseOut(ei){Bi.overResizeElement===this&&(delete Bi.overResizeElement,this.el.classList.add("ui-resizable-autohide"))}_setupHandlers(){return this.handlers=this.option.handles.split(",").map(ei=>ei.trim()).map(ei=>new Ea(this.el,ei,{start:ti=>{this._resizeStart(ti)},stop:ti=>{this._resizeStop(ti)},move:ti=>{this._resizing(ti,ei)}})),this}_resizeStart(ei){this.sizeToContent=bi.shouldSizeToContent(this.el.gridstackNode,!0),this.originalRect=this.el.getBoundingClientRect(),this.scrollEl=bi.getScrollElement(this.el),this.scrollY=this.scrollEl.scrollTop,this.scrolled=0,this.startEvent=ei,this._setupHelper(),this._applyChange();let ti=bi.initEvent(ei,{type:"resizestart",target:this.el});return this.option.start&&this.option.start(ti,this._ui()),this.el.classList.add("ui-resizable-resizing"),this.triggerEvent("resizestart",ti),this}_resizing(ei,ti){this.scrolled=this.scrollEl.scrollTop-this.scrollY,this.temporalRect=this._getChange(ei,ti),this._applyChange();let ni=bi.initEvent(ei,{type:"resize",target:this.el});return this.option.resize&&this.option.resize(ni,this._ui()),this.triggerEvent("resize",ni),this}_resizeStop(ei){let ti=bi.initEvent(ei,{type:"resizestop",target:this.el});return this.option.stop&&this.option.stop(ti),this.el.classList.remove("ui-resizable-resizing"),this.triggerEvent("resizestop",ti),this._cleanHelper(),delete this.startEvent,delete this.originalRect,delete this.temporalRect,delete this.scrollY,delete this.scrolled,this}_setupHelper(){this.elOriginStyleVal=ii._originStyleProp.map(ni=>this.el.style[ni]),this.parentOriginStylePosition=this.el.parentElement.style.position;let ei=this.el.parentElement,ti=bi.getValuesFromTransformedElement(ei);return this.rectScale={x:ti.xScale,y:ti.yScale},getComputedStyle(this.el.parentElement).position.match(/static/)&&(this.el.parentElement.style.position="relative"),this.el.style.position="absolute",this.el.style.opacity="0.8",this}_cleanHelper(){return ii._originStyleProp.forEach((ei,ti)=>{this.el.style[ei]=this.elOriginStyleVal[ti]||null}),this.el.parentElement.style.position=this.parentOriginStylePosition||null,this}_getChange(ei,ti){let ni=this.startEvent,ri={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},oi=ei.clientX-ni.clientX,si=this.sizeToContent?0:ei.clientY-ni.clientY,ai,li;ti.indexOf("e")>-1?ri.width+=oi:ti.indexOf("w")>-1&&(ri.width-=oi,ri.left+=oi,ai=!0),ti.indexOf("s")>-1?ri.height+=si:ti.indexOf("n")>-1&&(ri.height-=si,ri.top+=si,li=!0);let ui=this._constrainSize(ri.width,ri.height,ai,li);return Math.round(ri.width)!==Math.round(ui.width)&&(ti.indexOf("w")>-1&&(ri.left+=ri.width-ui.width),ri.width=ui.width),Math.round(ri.height)!==Math.round(ui.height)&&(ti.indexOf("n")>-1&&(ri.top+=ri.height-ui.height),ri.height=ui.height),ri}_constrainSize(ei,ti,ni,ri){let oi=this.option,si=(ni?oi.maxWidthMoveLeft:oi.maxWidth)||Number.MAX_SAFE_INTEGER,ai=oi.minWidth/this.rectScale.x||ei,li=(ri?oi.maxHeightMoveUp:oi.maxHeight)||Number.MAX_SAFE_INTEGER,ui=oi.minHeight/this.rectScale.y||ti,ci=Math.min(si,Math.max(ai,ei)),di=Math.min(li,Math.max(ui,ti));return{width:ci,height:di}}_applyChange(){let ei={left:0,top:0,width:0,height:0};if(this.el.style.position==="absolute"){let ti=this.el.parentElement,{left:ni,top:ri}=ti.getBoundingClientRect();ei={left:ni,top:ri,width:0,height:0}}return this.temporalRect?(Object.keys(this.temporalRect).forEach(ti=>{let ni=this.temporalRect[ti],ri=ti==="width"||ti==="left"?this.rectScale.x:ti==="height"||ti==="top"?this.rectScale.y:1;this.el.style[ti]=(ni-ei[ti])*ri+"px"}),this):this}_removeHandlers(){return this.handlers.forEach(ei=>ei.destroy()),delete this.handlers,this}};wa._originStyleProp=["width","height","position","left","top","opacity","zIndex"];var j_='input,textarea,button,select,option,[contenteditable="true"],.ui-resizable-handle',xa=class ii extends zo{constructor(ei,ti={}){var oi;super(),this.el=ei,this.option=ti,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0};let ni=(oi=ti==null?void 0:ti.handle)==null?void 0:oi.substring(1),ri=ei.gridstackNode;this.dragEls=!ni||ei.classList.contains(ni)?[ei]:ri!=null&&ri.subGrid?[ei.querySelector(ti.handle)||ei]:Array.from(ei.querySelectorAll(ti.handle)),this.dragEls.length===0&&(this.dragEls=[ei]),this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this.enable()}on(ei,ti){super.on(ei,ti)}off(ei){super.off(ei)}enable(){this.disabled!==!1&&(super.enable(),this.dragEls.forEach(ei=>{ei.addEventListener("mousedown",this._mouseDown),$n&&(ei.addEventListener("touchstart",Is),ei.addEventListener("pointerdown",Fs))}),this.el.classList.remove("ui-draggable-disabled"))}disable(ei=!1){this.disabled!==!0&&(super.disable(),this.dragEls.forEach(ti=>{ti.removeEventListener("mousedown",this._mouseDown),$n&&(ti.removeEventListener("touchstart",Is),ti.removeEventListener("pointerdown",Fs))}),ei||this.el.classList.add("ui-draggable-disabled"))}destroy(){this.dragTimeout&&window.clearTimeout(this.dragTimeout),delete this.dragTimeout,this.mouseDownEvent&&this._mouseUp(this.mouseDownEvent),this.disable(!0),delete this.el,delete this.helper,delete this.option,super.destroy()}updateOption(ei){return Object.keys(ei).forEach(ti=>this.option[ti]=ei[ti]),this}_mouseDown(ei){if(!Bi.mouseHandled)return ei.button!==0||!this.dragEls.find(ti=>ti===ei.target)&&ei.target.closest(j_)||this.option.cancel&&ei.target.closest(this.option.cancel)||(this.mouseDownEvent=ei,delete this.dragging,delete Bi.dragElement,delete Bi.dropElement,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),$n&&(ei.currentTarget.addEventListener("touchmove",Hs),ei.currentTarget.addEventListener("touchend",Ps)),ei.preventDefault(),document.activeElement&&document.activeElement.blur(),Bi.mouseHandled=!0),!0}_callDrag(ei){if(!this.dragging)return;let ti=bi.initEvent(ei,{target:this.el,type:"drag"});this.option.drag&&this.option.drag(ti,this.ui()),this.triggerEvent("drag",ti)}_mouseMove(ei){var ni;let ti=this.mouseDownEvent;if(this.lastDrag=ei,this.dragging)if(this._dragFollow(ei),Bi.pauseDrag){let ri=Number.isInteger(Bi.pauseDrag)?Bi.pauseDrag:100;this.dragTimeout&&window.clearTimeout(this.dragTimeout),this.dragTimeout=window.setTimeout(()=>this._callDrag(ei),ri)}else this._callDrag(ei);else if(Math.abs(ei.x-ti.x)+Math.abs(ei.y-ti.y)>3){this.dragging=!0,Bi.dragElement=this;let ri=(ni=this.el.gridstackNode)==null?void 0:ni.grid;ri?Bi.dropElement=ri.el.ddElement.ddDroppable:delete Bi.dropElement,this.helper=this._createHelper(),this._setupHelperContainmentStyle(),this.dragTransform=bi.getValuesFromTransformedElement(this.helperContainment),this.dragOffset=this._getDragOffset(ei,this.el,this.helperContainment),this._setupHelperStyle(ei);let oi=bi.initEvent(ei,{target:this.el,type:"dragstart"});this.option.start&&this.option.start(oi,this.ui()),this.triggerEvent("dragstart",oi),document.addEventListener("keydown",this._keyEvent)}return!0}_mouseUp(ei){var ti,ni;if(document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),$n&&ei.currentTarget&&(ei.currentTarget.removeEventListener("touchmove",Hs,!0),ei.currentTarget.removeEventListener("touchend",Ps,!0)),this.dragging){delete this.dragging,(ti=this.el.gridstackNode)==null||delete ti._origRotate,document.removeEventListener("keydown",this._keyEvent),((ni=Bi.dropElement)==null?void 0:ni.el)===this.el.parentElement&&delete Bi.dropElement,this.helperContainment.style.position=this.parentOriginStylePosition||null,this.helper!==this.el&&this.helper.remove(),this._removeHelperStyle();let ri=bi.initEvent(ei,{target:this.el,type:"dragstop"});this.option.stop&&this.option.stop(ri),this.triggerEvent("dragstop",ri),Bi.dropElement&&Bi.dropElement.drop(ei)}delete this.helper,delete this.mouseDownEvent,delete Bi.dragElement,delete Bi.dropElement,delete Bi.mouseHandled,ei.preventDefault()}_keyEvent(ei){var ri,oi;let ti=this.el.gridstackNode,ni=(ti==null?void 0:ti.grid)||((oi=(ri=Bi.dropElement)==null?void 0:ri.el)==null?void 0:oi.gridstack);if(ei.key==="Escape")ti&&ti._origRotate&&(ti._orig=ti._origRotate,delete ti._origRotate),ni==null||ni.cancelDrag(),this._mouseUp(this.mouseDownEvent);else if(ti&&ni&&(ei.key==="r"||ei.key==="R")){if(!bi.canBeRotated(ti))return;ti._origRotate=ti._origRotate||Di({},ti._orig),delete ti._moving,ni.setAnimation(!1).rotate(ti.el,{top:-this.dragOffset.offsetTop,left:-this.dragOffset.offsetLeft}).setAnimation(),ti._moving=!0,this.dragOffset=this._getDragOffset(this.lastDrag,ti.el,this.helperContainment),this.helper.style.width=this.dragOffset.width+"px",this.helper.style.height=this.dragOffset.height+"px",bi.swap(ti._orig,"w","h"),delete ti._rect,this._mouseMove(this.lastDrag)}}_createHelper(){let ei=this.el;return typeof this.option.helper=="function"?ei=this.option.helper(this.el):this.option.helper==="clone"&&(ei=bi.cloneNode(this.el)),document.body.contains(ei)||bi.appendTo(ei,this.option.appendTo==="parent"?this.el.parentElement:this.option.appendTo),this.dragElementOriginStyle=ii.originStyleProp.map(ti=>this.el.style[ti]),ei}_setupHelperStyle(ei){this.helper.classList.add("ui-draggable-dragging");let ti=this.helper.style;return ti.pointerEvents="none",ti.width=this.dragOffset.width+"px",ti.height=this.dragOffset.height+"px",ti.willChange="left, top",ti.position="fixed",this._dragFollow(ei),ti.transition="none",setTimeout(()=>{this.helper&&(ti.transition=null)},0),this}_removeHelperStyle(){var ti;this.helper.classList.remove("ui-draggable-dragging");let ei=(ti=this.helper)==null?void 0:ti.gridstackNode;if(!(ei!=null&&ei._isAboutToRemove)&&this.dragElementOriginStyle){let ni=this.helper,ri=this.dragElementOriginStyle.transition||null;ni.style.transition=this.dragElementOriginStyle.transition="none",ii.originStyleProp.forEach(oi=>ni.style[oi]=this.dragElementOriginStyle[oi]||null),setTimeout(()=>ni.style.transition=ri,50)}return delete this.dragElementOriginStyle,this}_dragFollow(ei){let ti={left:0,top:0},ni=this.helper.style,ri=this.dragOffset;ni.left=(ei.clientX+ri.offsetLeft-ti.left)*this.dragTransform.xScale+"px",ni.top=(ei.clientY+ri.offsetTop-ti.top)*this.dragTransform.yScale+"px"}_setupHelperContainmentStyle(){return this.helperContainment=this.helper.parentElement,this.helper.style.position!=="fixed"&&(this.parentOriginStylePosition=this.helperContainment.style.position,getComputedStyle(this.helperContainment).position.match(/static/)&&(this.helperContainment.style.position="relative")),this}_getDragOffset(ei,ti,ni){let ri=0,oi=0;ni&&(ri=this.dragTransform.xOffset,oi=this.dragTransform.yOffset);let si=ti.getBoundingClientRect();return{left:si.left,top:si.top,offsetLeft:-ei.clientX+si.left-ri,offsetTop:-ei.clientY+si.top-oi,width:si.width*this.dragTransform.xScale,height:si.height*this.dragTransform.yScale}}ui(){let ti=this.el.parentElement.getBoundingClientRect(),ni=this.helper.getBoundingClientRect();return{position:{top:(ni.top-ti.top)*this.dragTransform.yScale,left:(ni.left-ti.left)*this.dragTransform.xScale}}}};xa.originStyleProp=["width","height","transform","transform-origin","transition","pointerEvents","position","left","top","minWidth","willChange"];var Ml=class extends zo{constructor(ei,ti={}){super(),this.el=ei,this.option=ti,this._mouseEnter=this._mouseEnter.bind(this),this._mouseLeave=this._mouseLeave.bind(this),this.enable(),this._setupAccept()}on(ei,ti){super.on(ei,ti)}off(ei){super.off(ei)}enable(){this.disabled!==!1&&(super.enable(),this.el.classList.add("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),this.el.addEventListener("mouseenter",this._mouseEnter),this.el.addEventListener("mouseleave",this._mouseLeave),$n&&(this.el.addEventListener("pointerenter",Zc),this.el.addEventListener("pointerleave",eu)))}disable(ei=!1){this.disabled!==!0&&(super.disable(),this.el.classList.remove("ui-droppable"),ei||this.el.classList.add("ui-droppable-disabled"),this.el.removeEventListener("mouseenter",this._mouseEnter),this.el.removeEventListener("mouseleave",this._mouseLeave),$n&&(this.el.removeEventListener("pointerenter",Zc),this.el.removeEventListener("pointerleave",eu)))}destroy(){this.disable(!0),this.el.classList.remove("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),super.destroy()}updateOption(ei){return Object.keys(ei).forEach(ti=>this.option[ti]=ei[ti]),this._setupAccept(),this}_mouseEnter(ei){if(!Bi.dragElement||!this._canDrop(Bi.dragElement.el))return;ei.preventDefault(),ei.stopPropagation(),Bi.dropElement&&Bi.dropElement!==this&&Bi.dropElement._mouseLeave(ei,!0),Bi.dropElement=this;let ti=bi.initEvent(ei,{target:this.el,type:"dropover"});this.option.over&&this.option.over(ti,this._ui(Bi.dragElement)),this.triggerEvent("dropover",ti),this.el.classList.add("ui-droppable-over")}_mouseLeave(ei,ti=!1){var ri;if(!Bi.dragElement||Bi.dropElement!==this)return;ei.preventDefault(),ei.stopPropagation();let ni=bi.initEvent(ei,{target:this.el,type:"dropout"});if(this.option.out&&this.option.out(ni,this._ui(Bi.dragElement)),this.triggerEvent("dropout",ni),Bi.dropElement===this&&(delete Bi.dropElement,!ti)){let oi,si=this.el.parentElement;for(;!oi&&si;)oi=(ri=si.ddElement)==null?void 0:ri.ddDroppable,si=si.parentElement;oi&&oi._mouseEnter(ei)}}drop(ei){ei.preventDefault();let ti=bi.initEvent(ei,{target:this.el,type:"drop"});this.option.drop&&this.option.drop(ti,this._ui(Bi.dragElement)),this.triggerEvent("drop",ti)}_canDrop(ei){return ei&&(!this.accept||this.accept(ei))}_setupAccept(){return this.option.accept?(typeof this.option.accept=="string"?this.accept=ei=>ei.classList.contains(this.option.accept)||ei.matches(this.option.accept):this.accept=this.option.accept,this):this}_ui(ei){return Di({draggable:ei.el},ei.ui())}};var kl=class ii{static init(ei){return ei.ddElement||(ei.ddElement=new ii(ei)),ei.ddElement}constructor(ei){this.el=ei}on(ei,ti){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(ei)>-1?this.ddDraggable.on(ei,ti):this.ddDroppable&&["drop","dropover","dropout"].indexOf(ei)>-1?this.ddDroppable.on(ei,ti):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(ei)>-1&&this.ddResizable.on(ei,ti),this}off(ei){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(ei)>-1?this.ddDraggable.off(ei):this.ddDroppable&&["drop","dropover","dropout"].indexOf(ei)>-1?this.ddDroppable.off(ei):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(ei)>-1&&this.ddResizable.off(ei),this}setupDraggable(ei){return this.ddDraggable?this.ddDraggable.updateOption(ei):this.ddDraggable=new xa(this.el,ei),this}cleanDraggable(){return this.ddDraggable&&(this.ddDraggable.destroy(),delete this.ddDraggable),this}setupResizable(ei){return this.ddResizable?this.ddResizable.updateOption(ei):this.ddResizable=new wa(this.el,ei),this}cleanResizable(){return this.ddResizable&&(this.ddResizable.destroy(),delete this.ddResizable),this}setupDroppable(ei){return this.ddDroppable?this.ddDroppable.updateOption(ei):this.ddDroppable=new Ml(this.el,ei),this}cleanDroppable(){return this.ddDroppable&&(this.ddDroppable.destroy(),delete this.ddDroppable),this}};var Nl=class{resizable(ei,ti,ni,ri){return this._getDDElements(ei).forEach(oi=>{if(ti==="disable"||ti==="enable")oi.ddResizable&&oi.ddResizable[ti]();else if(ti==="destroy")oi.ddResizable&&oi.cleanResizable();else if(ti==="option")oi.setupResizable({[ni]:ri});else{let ai=oi.el.gridstackNode.grid,li=oi.el.getAttribute("gs-resize-handles")||ai.opts.resizable.handles||"e,s,se";li==="all"&&(li="n,e,s,w,se,sw,ne,nw");let ui=!ai.opts.alwaysShowResizeHandle;oi.setupResizable(sn(Di({},ai.opts.resizable),{handles:li,autoHide:ui,start:ti.start,stop:ti.stop,resize:ti.resize}))}}),this}draggable(ei,ti,ni,ri){return this._getDDElements(ei).forEach(oi=>{if(ti==="disable"||ti==="enable")oi.ddDraggable&&oi.ddDraggable[ti]();else if(ti==="destroy")oi.ddDraggable&&oi.cleanDraggable();else if(ti==="option")oi.setupDraggable({[ni]:ri});else{let si=oi.el.gridstackNode.grid;oi.setupDraggable(sn(Di({},si.opts.draggable),{start:ti.start,stop:ti.stop,drag:ti.drag}))}}),this}dragIn(ei,ti){return this._getDDElements(ei).forEach(ni=>ni.setupDraggable(ti)),this}droppable(ei,ti,ni,ri){return typeof ti.accept=="function"&&!ti._accept&&(ti._accept=ti.accept,ti.accept=oi=>ti._accept(oi)),this._getDDElements(ei).forEach(oi=>{ti==="disable"||ti==="enable"?oi.ddDroppable&&oi.ddDroppable[ti]():ti==="destroy"?oi.ddDroppable&&oi.cleanDroppable():ti==="option"?oi.setupDroppable({[ni]:ri}):oi.setupDroppable(ti)}),this}isDroppable(ei){var ti;return!!((ti=ei==null?void 0:ei.ddElement)!=null&&ti.ddDroppable&&!ei.ddElement.ddDroppable.disabled)}isDraggable(ei){var ti;return!!((ti=ei==null?void 0:ei.ddElement)!=null&&ti.ddDraggable&&!ei.ddElement.ddDraggable.disabled)}isResizable(ei){var ti;return!!((ti=ei==null?void 0:ei.ddElement)!=null&&ti.ddResizable&&!ei.ddElement.ddResizable.disabled)}on(ei,ti,ni){return this._getDDElements(ei).forEach(ri=>ri.on(ti,oi=>{ni(oi,Bi.dragElement?Bi.dragElement.el:oi.target,Bi.dragElement?Bi.dragElement.helper:null)})),this}off(ei,ti){return this._getDDElements(ei).forEach(ni=>ni.off(ti)),this}_getDDElements(ei,ti=!0){let ni=bi.getElements(ei);if(!ni.length)return[];let ri=ni.map(oi=>oi.ddElement||(ti?kl.init(oi):null));return ti||ri.filter(oi=>oi),ri}};var Bn=new Nl,Jr=class ii{static init(ei={},ti=".grid-stack"){if(typeof document=="undefined")return null;let ni=ii.getGridElement(ti);return ni?(ni.gridstack||(ni.gridstack=new ii(ni,bi.cloneDeep(ei))),ni.gridstack):(console.error(typeof ti=="string"?'GridStack.initAll() no grid was found with selector "'+ti+`" - element missing or wrong selector ? Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`:"GridStack.init() no grid element was passed."),null)}static initAll(ei={},ti=".grid-stack"){let ni=[];return typeof document=="undefined"||(ii.getGridElements(ti).forEach(ri=>{ri.gridstack||(ri.gridstack=new ii(ri,bi.cloneDeep(ei))),ni.push(ri.gridstack)}),ni.length===0&&console.error('GridStack.initAll() no grid was found with selector "'+ti+`" - element missing or wrong selector ? -Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`)),ni}static addGrid(ei,ti={}){if(!ei)return null;let ni=ei;if(ni.gridstack){let si=ni.gridstack;return ti&&(si.opts=Di(Di({},si.opts),ti)),ti.children!==void 0&&si.load(ti.children),si}return(!ei.classList.contains("grid-stack")||ii.addRemoveCB)&&(ii.addRemoveCB?ni=ii.addRemoveCB(ei,ti,!0,!0):ni=bi.createDiv(["grid-stack",ti.class],ei)),ii.init(ti,ni)}static registerEngine(ei){ii.engineClass=ei}get placeholder(){if(!this._placeholder){let ei=document.createElement("div");ei.className="placeholder-content",this.opts.placeholderText&&(ei.textContent=this.opts.placeholderText),this._placeholder=document.createElement("div"),this._placeholder.classList.add(this.opts.placeholderClass,Yn.itemClass,this.opts.itemClass),this.placeholder.appendChild(ei)}return this._placeholder}constructor(ei,ti={}){var di,pi,yi;this.el=ei,this.opts=ti,this.animationDelay=310,this._gsEventHandler={},this._extraDragRow=0,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},ei.gridstack=this,this.opts=ti=ti||{},ei.classList.contains("grid-stack")||this.el.classList.add("grid-stack"),ti.row&&(ti.minRow=ti.maxRow=ti.row,delete ti.row);let ni=bi.toNumber(ei.getAttribute("gs-row"));ti.column==="auto"&&delete ti.column,ti.alwaysShowResizeHandle!==void 0&&(ti._alwaysShowResizeHandle=ti.alwaysShowResizeHandle);let ri=(di=ti.columnOpts)==null?void 0:di.breakpoints,oi=ti;if(oi.oneColumnModeDomSort&&(delete oi.oneColumnModeDomSort,console.log("warning: Gridstack oneColumnModeDomSort no longer supported. Use GridStackOptions.columnOpts instead.")),oi.oneColumnSize||oi.disableOneColumnMode===!1){let gi=oi.oneColumnSize||768;delete oi.oneColumnSize,delete oi.disableOneColumnMode,ti.columnOpts=ti.columnOpts||{},ri=ti.columnOpts.breakpoints=ti.columnOpts.breakpoints||[];let vi=ri.find(Ei=>Ei.c===1);vi?vi.w=gi:(vi={c:1,w:gi},ri.push(vi,{c:12,w:gi+1}))}let si=ti.columnOpts;si&&(!si.columnWidth&&!((pi=si.breakpoints)!=null&&pi.length)?(delete ti.columnOpts,ri=void 0):si.columnMax=si.columnMax||12),(ri==null?void 0:ri.length)>1&&ri.sort((gi,vi)=>(vi.w||0)-(gi.w||0));let ai=sn(Di({},bi.cloneDeep(Yn)),{column:bi.toNumber(ei.getAttribute("gs-column"))||Yn.column,minRow:ni||bi.toNumber(ei.getAttribute("gs-min-row"))||Yn.minRow,maxRow:ni||bi.toNumber(ei.getAttribute("gs-max-row"))||Yn.maxRow,staticGrid:bi.toBool(ei.getAttribute("gs-static"))||Yn.staticGrid,sizeToContent:bi.toBool(ei.getAttribute("gs-size-to-content"))||void 0,draggable:{handle:(ti.handleClass?"."+ti.handleClass:ti.handle?ti.handle:"")||Yn.draggable.handle},removableOptions:{accept:ti.itemClass||Yn.removableOptions.accept,decline:Yn.removableOptions.decline}});ei.getAttribute("gs-animate")&&(ai.animate=bi.toBool(ei.getAttribute("gs-animate"))),ti=bi.defaults(ti,ai),this._initMargin(),this.checkDynamicColumn(),this.el.classList.add("gs-"+ti.column),ti.rtl==="auto"&&(ti.rtl=ei.style.direction==="rtl"),ti.rtl&&this.el.classList.add("grid-stack-rtl");let li=this.el.closest("."+Yn.itemClass),ui=li==null?void 0:li.gridstackNode;ui&&(ui.subGrid=this,this.parentGridNode=ui,this.el.classList.add("grid-stack-nested"),ui.el.classList.add("grid-stack-sub-grid")),this._isAutoCellHeight=ti.cellHeight==="auto",this._isAutoCellHeight||ti.cellHeight==="initial"?this.cellHeight(void 0,!1):(typeof ti.cellHeight=="number"&&ti.cellHeightUnit&&ti.cellHeightUnit!==Yn.cellHeightUnit&&(ti.cellHeight=ti.cellHeight+ti.cellHeightUnit,delete ti.cellHeightUnit),this.cellHeight(ti.cellHeight,!1)),ti.alwaysShowResizeHandle==="mobile"&&(ti.alwaysShowResizeHandle=$n),this._styleSheetClass="gs-id-"+as._idSeq++,this.el.classList.add(this._styleSheetClass),this._setStaticClass();let ci=ti.engineClass||ii.engineClass||as;if(this.engine=new ci({column:this.getColumn(),float:ti.float,maxRow:ti.maxRow,onChange:gi=>{let vi=0;this.engine.nodes.forEach(Ei=>{vi=Math.max(vi,Ei.y+Ei.h)}),gi.forEach(Ei=>{let Ci=Ei.el;Ci&&(Ei._removeDOM?(Ci&&Ci.remove(),delete Ei._removeDOM):this._writePosAttr(Ci,Ei))}),this._updateStyles(!1,vi)}}),this._updateStyles(!1,0),ti.auto&&(this.batchUpdate(),this.engine._loading=!0,this.getGridItems().forEach(gi=>this._prepareElement(gi)),delete this.engine._loading,this.batchUpdate(!1)),ti.children){let gi=ti.children;delete ti.children,gi.length&&this.load(gi)}this.setAnimation(),ti.subGridDynamic&&!Bi.pauseDrag&&(Bi.pauseDrag=!0),((yi=ti.draggable)==null?void 0:yi.pause)!==void 0&&(Bi.pauseDrag=ti.draggable.pause),this._setupRemoveDrop(),this._setupAcceptWidget(),this._updateResizeEvent()}addWidget(ei){if(typeof ei=="string"){console.error("V11: GridStack.addWidget() does not support string anymore. see #2736");return}if(ei.ELEMENT_NODE)return console.error("V11: GridStack.addWidget() does not support HTMLElement anymore. use makeWidget()"),this.makeWidget(ei);let ti,ni=ei;if(ni.grid=this,ni!=null&&ni.el?ti=ni.el:ii.addRemoveCB?ti=ii.addRemoveCB(this.el,ei,!0,!1):ti=bi.createWidgetDivs(this.opts.itemClass,ni),!ti)return;if(ni=ti.gridstackNode,ni&&ti.parentElement===this.el&&this.engine.nodes.find(oi=>oi._id===ni._id))return ti;let ri=this._readAttr(ti);return bi.defaults(ei,ri),this.engine.prepareNode(ei),this.el.appendChild(ti),this.makeWidget(ti,ei),ti}makeSubGrid(ei,ti,ni,ri=!0){var yi,gi,vi;let oi=ei.gridstackNode;if(oi||(oi=this.makeWidget(ei).gridstackNode),(yi=oi.subGrid)!=null&&yi.el)return oi.subGrid;let si,ai=this;for(;ai&&!si;)si=(gi=ai.opts)==null?void 0:gi.subGridOpts,ai=(vi=ai.parentGridNode)==null?void 0:vi.grid;ti=bi.cloneDeep(Di(Di(sn(Di({},this.opts),{id:void 0,children:void 0,column:"auto",columnOpts:void 0,layout:"list",subGridOpts:void 0}),si||{}),ti||oi.subGridOpts||{})),oi.subGridOpts=ti;let li;ti.column==="auto"&&(li=!0,ti.column=Math.max(oi.w||1,(ni==null?void 0:ni.w)||1),delete ti.columnOpts);let ui=oi.el.querySelector(".grid-stack-item-content"),ci,di;if(ri&&(this._removeDD(oi.el),di=sn(Di({},oi),{x:0,y:0}),bi.removeInternalForSave(di),delete di.subGridOpts,oi.content&&(di.content=oi.content,delete oi.content),ii.addRemoveCB?ci=ii.addRemoveCB(this.el,di,!0,!1):(ci=bi.createDiv(["grid-stack-item"]),ci.appendChild(ui),ui=bi.createDiv(["grid-stack-item-content"],oi.el)),this._prepareDragDropByNode(oi)),ni){let Ei=li?ti.column:oi.w,Ci=oi.h+ni.h,xi=oi.el.style;xi.transition="none",this.update(oi.el,{w:Ei,h:Ci}),setTimeout(()=>xi.transition=null)}let pi=oi.subGrid=ii.addGrid(ui,ti);return ni!=null&&ni._moving&&(pi._isTemp=!0),li&&(pi._autoColumn=!0),ri&&pi.makeWidget(ci,di),ni&&(ni._moving?window.setTimeout(()=>bi.simulateMouseEvent(ni._event,"mouseenter",pi.el),0):pi.makeWidget(oi.el,oi)),this.resizeToContentCheck(!1,oi),pi}removeAsSubGrid(ei){var ni;let ti=(ni=this.parentGridNode)==null?void 0:ni.grid;ti&&(ti.batchUpdate(),ti.removeWidget(this.parentGridNode.el,!0,!0),this.engine.nodes.forEach(ri=>{ri.x+=this.parentGridNode.x,ri.y+=this.parentGridNode.y,ti.makeWidget(ri.el,ri)}),ti.batchUpdate(!1),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,ei&&window.setTimeout(()=>bi.simulateMouseEvent(ei._event,"mouseenter",ti.el),0))}save(ei=!0,ti=!1,ni=ii.saveCB){let ri=this.engine.save(ei,ni);if(ri.forEach(oi=>{var si;if(ei&&oi.el&&!oi.subGrid&&!ni){let ai=oi.el.querySelector(".grid-stack-item-content");oi.content=ai==null?void 0:ai.innerHTML,oi.content||delete oi.content}else if(!ei&&!ni&&delete oi.content,(si=oi.subGrid)!=null&&si.el){let ai=oi.subGrid.save(ei,ti,ni);oi.subGridOpts=ti?ai:{children:ai},delete oi.subGrid}delete oi.el}),ti){let oi=bi.cloneDeep(this.opts);oi.marginBottom===oi.marginTop&&oi.marginRight===oi.marginLeft&&oi.marginTop===oi.marginRight&&(oi.margin=oi.marginTop,delete oi.marginTop,delete oi.marginRight,delete oi.marginBottom,delete oi.marginLeft),oi.rtl===(this.el.style.direction==="rtl")&&(oi.rtl="auto"),this._isAutoCellHeight&&(oi.cellHeight="auto"),this._autoColumn&&(oi.column="auto");let si=oi._alwaysShowResizeHandle;return delete oi._alwaysShowResizeHandle,si!==void 0?oi.alwaysShowResizeHandle=si:delete oi.alwaysShowResizeHandle,bi.removeInternalAndSame(oi,Yn),oi.children=ri,oi}return ri}load(ei,ti=ii.addRemoveCB||!0){var ui;ei=bi.cloneDeep(ei);let ni=this.getColumn();ei.forEach(ci=>{ci.w=ci.w||1,ci.h=ci.h||1}),ei=bi.sort(ei);let ri=0;ei.forEach(ci=>{ri=Math.max(ri,(ci.x||0)+ci.w)}),ri>this.engine.defaultColumn&&(this.engine.defaultColumn=ri),ri>ni&&(this._ignoreLayoutsNodeChange=!0,this.engine.cacheLayout(ei,ri,!0));let oi=ii.addRemoveCB;typeof ti=="function"&&(ii.addRemoveCB=ti);let si=[];this.batchUpdate();let ai=!this.engine.nodes.length;ai&&this.setAnimation(!1),!ai&&ti&&[...this.engine.nodes].forEach(di=>{if(!di.id)return;bi.find(ei,di.id)||(ii.addRemoveCB&&ii.addRemoveCB(this.el,di,!1,!1),si.push(di),this.removeWidget(di.el,!0,!1))}),this.engine._loading=!0;let li=[];return this.engine.nodes=this.engine.nodes.filter(ci=>bi.find(ei,ci.id)?(li.push(ci),!1):!0),ei.forEach(ci=>{var pi;let di=bi.find(li,ci.id);if(di){if(bi.shouldSizeToContent(di)&&(ci.h=di.h),this.engine.nodeBoundFix(ci),(ci.autoPosition||ci.x===void 0||ci.y===void 0)&&(ci.w=ci.w||di.w,ci.h=ci.h||di.h,this.engine.findEmptyPosition(ci)),this.engine.nodes.push(di),bi.samePos(di,ci)&&this.engine.nodes.length>1&&(this.moveNode(di,sn(Di({},ci),{forceCollide:!0})),bi.copyPos(ci,di)),this.update(di.el,ci),(pi=ci.subGridOpts)!=null&&pi.children){let yi=di.el.querySelector(".grid-stack");yi&&yi.gridstack&&yi.gridstack.load(ci.subGridOpts.children)}}else ti&&this.addWidget(ci)}),delete this.engine._loading,this.engine.removedNodes=si,this.batchUpdate(!1),delete this._ignoreLayoutsNodeChange,oi?ii.addRemoveCB=oi:delete ii.addRemoveCB,ai&&((ui=this.opts)!=null&&ui.animate)&&this.setAnimation(this.opts.animate,!0),this}batchUpdate(ei=!0){return this.engine.batchUpdate(ei),ei||(this._updateContainerHeight(),this._triggerRemoveEvent(),this._triggerAddEvent(),this._triggerChangeEvent()),this}getCellHeight(ei=!1){if(this.opts.cellHeight&&this.opts.cellHeight!=="auto"&&(!ei||!this.opts.cellHeightUnit||this.opts.cellHeightUnit==="px"))return this.opts.cellHeight;if(this.opts.cellHeightUnit==="rem")return this.opts.cellHeight*parseFloat(getComputedStyle(document.documentElement).fontSize);if(this.opts.cellHeightUnit==="em")return this.opts.cellHeight*parseFloat(getComputedStyle(this.el).fontSize);if(this.opts.cellHeightUnit==="cm")return this.opts.cellHeight*(96/2.54);if(this.opts.cellHeightUnit==="mm")return this.opts.cellHeight*(96/2.54)/10;let ti=this.el.querySelector("."+this.opts.itemClass);if(ti){let ri=bi.toNumber(ti.getAttribute("gs-h"))||1;return Math.round(ti.offsetHeight/ri)}let ni=parseInt(this.el.getAttribute("gs-current-row"));return ni?Math.round(this.el.getBoundingClientRect().height/ni):this.opts.cellHeight}cellHeight(ei,ti=!0){if(ti&&ei!==void 0&&this._isAutoCellHeight!==(ei==="auto")&&(this._isAutoCellHeight=ei==="auto",this._updateResizeEvent()),(ei==="initial"||ei==="auto")&&(ei=void 0),ei===void 0){let ri=-this.opts.marginRight-this.opts.marginLeft+this.opts.marginTop+this.opts.marginBottom;ei=this.cellWidth()+ri}let ni=bi.parseHeight(ei);return this.opts.cellHeightUnit===ni.unit&&this.opts.cellHeight===ni.h?this:(this.opts.cellHeightUnit=ni.unit,this.opts.cellHeight=ni.h,this.resizeToContentCheck(),ti&&this._updateStyles(!0),this)}cellWidth(){return this._widthOrContainer()/this.getColumn()}_widthOrContainer(ei=!1){var ti;return ei&&((ti=this.opts.columnOpts)!=null&&ti.breakpointForWindow)?window.innerWidth:this.el.clientWidth||this.el.parentElement.clientWidth||window.innerWidth}checkDynamicColumn(){var oi,si;let ei=this.opts.columnOpts;if(!ei||!ei.columnWidth&&!((oi=ei.breakpoints)!=null&&oi.length))return!1;let ti=this.getColumn(),ni=ti,ri=this._widthOrContainer(!0);if(ei.columnWidth)ni=Math.min(Math.round(ri/ei.columnWidth)||1,ei.columnMax);else{ni=ei.columnMax;let ai=0;for(;aili.c===ni);return this.column(ni,(ai==null?void 0:ai.layout)||ei.layout),!0}return!1}compact(ei="compact",ti=!0){return this.engine.compact(ei,ti),this._triggerChangeEvent(),this}column(ei,ti="moveScale"){if(!ei||ei<1||this.opts.column===ei)return this;let ni=this.getColumn();return this.opts.column=ei,this.engine?(this.engine.column=ei,this.el.classList.remove("gs-"+ni),this.el.classList.add("gs-"+ei),this.engine.columnChanged(ni,ei,ti),this._isAutoCellHeight&&this.cellHeight(),this.resizeToContentCheck(!0),this._ignoreLayoutsNodeChange=!0,this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,this):this}getColumn(){return this.opts.column}getGridItems(){return Array.from(this.el.children).filter(ei=>ei.matches("."+this.opts.itemClass)&&!ei.matches("."+this.opts.placeholderClass))}destroy(ei=!0){if(this.el)return this.offAll(),this._updateResizeEvent(!0),this.setStatic(!0,!1),this.setAnimation(!1),ei?this.el.parentNode.removeChild(this.el):(this.removeAll(ei),this.el.classList.remove(this._styleSheetClass),this.el.removeAttribute("gs-current-row")),this._removeStylesheet(),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,delete this.opts,delete this._placeholder,delete this.engine,delete this.el.gridstack,delete this.el,this}float(ei){return this.opts.float!==ei&&(this.opts.float=this.engine.float=ei,this._triggerChangeEvent()),this}getFloat(){return this.engine.float}getCellFromPixel(ei,ti=!1){let ni=this.el.getBoundingClientRect(),ri;ti?ri={top:ni.top+document.documentElement.scrollTop,left:ni.left}:ri={top:this.el.offsetTop,left:this.el.offsetLeft};let oi=ei.left-ri.left,si=ei.top-ri.top,ai=ni.width/this.getColumn(),li=ni.height/parseInt(this.el.getAttribute("gs-current-row"));return{x:Math.floor(oi/ai),y:Math.floor(si/li)}}getRow(){return Math.max(this.engine.getRow(),this.opts.minRow)}isAreaEmpty(ei,ti,ni,ri){return this.engine.isAreaEmpty(ei,ti,ni,ri)}makeWidget(ei,ti){let ni=ii.getElement(ei);if(!ni)return;ni.parentElement||this.el.appendChild(ni),this._prepareElement(ni,!0,ti);let ri=ni.gridstackNode;return this._updateContainerHeight(),ri.subGridOpts&&this.makeSubGrid(ni,ri.subGridOpts,void 0,!1),this.opts.column===1&&(this._ignoreLayoutsNodeChange=!0),this._triggerAddEvent(),this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,ni}on(ei,ti){return ei.indexOf(" ")!==-1?(ei.split(" ").forEach(ri=>this.on(ri,ti)),this):(ei==="change"||ei==="added"||ei==="removed"||ei==="enable"||ei==="disable"?(ei==="enable"||ei==="disable"?this._gsEventHandler[ei]=ri=>ti(ri):this._gsEventHandler[ei]=ri=>{ri.detail&&ti(ri,ri.detail)},this.el.addEventListener(ei,this._gsEventHandler[ei])):ei==="drag"||ei==="dragstart"||ei==="dragstop"||ei==="resizestart"||ei==="resize"||ei==="resizestop"||ei==="dropped"||ei==="resizecontent"?this._gsEventHandler[ei]=ti:console.error("GridStack.on("+ei+") event not supported"),this)}off(ei){return ei.indexOf(" ")!==-1?(ei.split(" ").forEach(ni=>this.off(ni)),this):((ei==="change"||ei==="added"||ei==="removed"||ei==="enable"||ei==="disable")&&this._gsEventHandler[ei]&&this.el.removeEventListener(ei,this._gsEventHandler[ei]),delete this._gsEventHandler[ei],this)}offAll(){return Object.keys(this._gsEventHandler).forEach(ei=>this.off(ei)),this}removeWidget(ei,ti=!0,ni=!0){return ei?(ii.getElements(ei).forEach(ri=>{if(ri.parentElement&&ri.parentElement!==this.el)return;let oi=ri.gridstackNode;oi||(oi=this.engine.nodes.find(si=>ri===si.el)),oi&&(ti&&ii.addRemoveCB&&ii.addRemoveCB(this.el,oi,!1,!1),delete ri.gridstackNode,this._removeDD(ri),this.engine.removeNode(oi,ti,ni),ti&&ri.parentElement&&ri.remove())}),ni&&(this._triggerRemoveEvent(),this._triggerChangeEvent()),this):(console.error("Error: GridStack.removeWidget(undefined) called"),this)}removeAll(ei=!0,ti=!0){return this.engine.nodes.forEach(ni=>{ei&&ii.addRemoveCB&&ii.addRemoveCB(this.el,ni,!1,!1),delete ni.el.gridstackNode,this.opts.staticGrid||this._removeDD(ni.el)}),this.engine.removeAll(ei,ti),ti&&this._triggerRemoveEvent(),this}setAnimation(ei=this.opts.animate,ti){return ti?setTimeout(()=>{this.opts&&this.setAnimation(ei)}):ei?this.el.classList.add("grid-stack-animate"):this.el.classList.remove("grid-stack-animate"),this}hasAnimationCSS(){return this.el.classList.contains("grid-stack-animate")}setStatic(ei,ti=!0,ni=!0){return!!this.opts.staticGrid===ei?this:(ei?this.opts.staticGrid=!0:delete this.opts.staticGrid,this._setupRemoveDrop(),this._setupAcceptWidget(),this.engine.nodes.forEach(ri=>{this._prepareDragDropByNode(ri),ri.subGrid&&ni&&ri.subGrid.setStatic(ei,ti,ni)}),ti&&this._setStaticClass(),this)}update(ei,ti){if(arguments.length>2){console.warn("gridstack.ts: `update(el, x, y, w, h)` is deprecated. Use `update(el, {x, w, content, ...})`. It will be removed soon");let ni=arguments,ri=1;return ti={x:ni[ri++],y:ni[ri++],w:ni[ri++],h:ni[ri++]},this.update(ei,ti)}return ii.getElements(ei).forEach(ni=>{var ci;let ri=ni==null?void 0:ni.gridstackNode;if(!ri)return;let oi=bi.cloneDeep(ti);this.engine.nodeBoundFix(oi),delete oi.autoPosition;let si=["x","y","w","h"],ai;if(si.some(di=>oi[di]!==void 0&&oi[di]!==ri[di])&&(ai={},si.forEach(di=>{ai[di]=oi[di]!==void 0?oi[di]:ri[di],delete oi[di]})),!ai&&(oi.minW||oi.minH||oi.maxW||oi.maxH)&&(ai={}),oi.content!==void 0){let di=ni.querySelector(".grid-stack-item-content");di&&di.textContent!==oi.content&&(ri.content=oi.content,ii.renderCB(di,oi),(ci=ri.subGrid)!=null&&ci.el&&(di.appendChild(ri.subGrid.el),ri.subGrid.opts.styleInHead||ri.subGrid._updateStyles(!0))),delete oi.content}let li=!1,ui=!1;for(let di in oi)di[0]!=="_"&&ri[di]!==oi[di]&&(ri[di]=oi[di],li=!0,ui=ui||!this.opts.staticGrid&&(di==="noResize"||di==="noMove"||di==="locked"));if(bi.sanitizeMinMax(ri),ai){let di=ai.w!==void 0&&ai.w!==ri.w;this.moveNode(ri,ai),di&&ri.subGrid?ri.subGrid.onResize(this.hasAnimationCSS()?ri.w:void 0):this.resizeToContentCheck(di,ri),delete ri._orig}(ai||li)&&this._writeAttr(ni,ri),ui&&this._prepareDragDropByNode(ri)}),this}moveNode(ei,ti){let ni=ei._updating;ni||this.engine.cleanNodes().beginUpdate(ei),this.engine.moveNode(ei,ti),this._updateContainerHeight(),ni||(this._triggerChangeEvent(),this.engine.endUpdate())}resizeToContent(ei){var pi,yi;if(!ei||(ei.classList.remove("size-to-content-max"),!ei.clientHeight))return;let ti=ei.gridstackNode;if(!ti)return;let ni=ti.grid;if(!ni||ei.parentElement!==ni.el)return;let ri=ni.getCellHeight(!0);if(!ri)return;let oi=ti.h?ti.h*ri:ei.clientHeight,si;if(ti.resizeToContentParent&&(si=ei.querySelector(ti.resizeToContentParent)),si||(si=ei.querySelector(ii.resizeToContentParent)),!si)return;let ai=ei.clientHeight-si.clientHeight,li=ti.h?ti.h*ri-ai:si.clientHeight,ui;if(ti.subGrid){ui=ti.subGrid.getRow()*ti.subGrid.getCellHeight(!0);let gi=ti.subGrid.el.getBoundingClientRect(),vi=ti.subGrid.el.parentElement.getBoundingClientRect();ui+=gi.top-vi.top}else{if((yi=(pi=ti.subGridOpts)==null?void 0:pi.children)!=null&&yi.length)return;{let gi=si.firstElementChild;if(!gi){console.error(`Error: GridStack.resizeToContent() widget id:${ti.id} '${ii.resizeToContentParent}'.firstElementChild is null, make sure to have a div like container. Skipping sizing.`);return}ui=gi.getBoundingClientRect().height||li}}if(li===ui)return;oi+=ui-li;let ci=Math.ceil(oi/ri),di=Number.isInteger(ti.sizeToContent)?ti.sizeToContent:0;di&&ci>di&&(ci=di,ei.classList.add("size-to-content-max")),ti.minH&&citi.maxH&&(ci=ti.maxH),ci!==ti.h&&(ni._ignoreLayoutsNodeChange=!0,ni.moveNode(ti,{h:ci}),delete ni._ignoreLayoutsNodeChange)}resizeToContentCBCheck(ei){ii.resizeToContentCB?ii.resizeToContentCB(ei):this.resizeToContent(ei)}rotate(ei,ti){return ii.getElements(ei).forEach(ni=>{let ri=ni.gridstackNode;if(!bi.canBeRotated(ri))return;let oi={w:ri.h,h:ri.w,minH:ri.minW,minW:ri.minH,maxH:ri.maxW,maxW:ri.maxH};if(ti){let ai=ti.left>0?Math.floor(ti.left/this.cellWidth()):0,li=ti.top>0?Math.floor(ti.top/this.opts.cellHeight):0;oi.x=ri.x+ai-(ri.h-(li+1)),oi.y=ri.y+li-ai}Object.keys(oi).forEach(ai=>{oi[ai]===void 0&&delete oi[ai]});let si=ri._orig;this.update(ni,oi),ri._orig=si}),this}margin(ei){if(!(typeof ei=="string"&&ei.split(" ").length>1)){let ni=bi.parseHeight(ei);if(this.opts.marginUnit===ni.unit&&this.opts.margin===ni.h)return}return this.opts.margin=ei,this.opts.marginTop=this.opts.marginBottom=this.opts.marginLeft=this.opts.marginRight=void 0,this._initMargin(),this._updateStyles(!0),this}getMargin(){return this.opts.margin}willItFit(ei){if(arguments.length>1){console.warn("gridstack.ts: `willItFit(x,y,w,h,autoPosition)` is deprecated. Use `willItFit({x, y,...})`. It will be removed soon");let ti=arguments,ni=0,ri={x:ti[ni++],y:ti[ni++],w:ti[ni++],h:ti[ni++],autoPosition:ti[ni++]};return this.willItFit(ri)}return this.engine.willItFit(ei)}_triggerChangeEvent(){if(this.engine.batchMode)return this;let ei=this.engine.getDirtyNodes(!0);return ei&&ei.length&&(this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(ei),this._triggerEvent("change",ei)),this.engine.saveInitial(),this}_triggerAddEvent(){var ei;if(this.engine.batchMode)return this;if((ei=this.engine.addedNodes)!=null&&ei.length){this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(this.engine.addedNodes),this.engine.addedNodes.forEach(ni=>{delete ni._dirty});let ti=[...this.engine.addedNodes];this.engine.addedNodes=[],this._triggerEvent("added",ti)}return this}_triggerRemoveEvent(){var ei;if(this.engine.batchMode)return this;if((ei=this.engine.removedNodes)!=null&&ei.length){let ti=[...this.engine.removedNodes];this.engine.removedNodes=[],this._triggerEvent("removed",ti)}return this}_triggerEvent(ei,ti){let ni=ti?new CustomEvent(ei,{bubbles:!1,detail:ti}):new Event(ei);return this.el.dispatchEvent(ni),this}_removeStylesheet(){if(this._styles){let ei=this.opts.styleInHead?void 0:this.el.parentNode;bi.removeStylesheet(this._styleSheetClass,ei),delete this._styles}return this}_updateStyles(ei=!1,ti){if(ei&&this._removeStylesheet(),ti===void 0&&(ti=this.getRow()),this._updateContainerHeight(),this.opts.cellHeight===0)return this;let ni=this.opts.cellHeight,ri=this.opts.cellHeightUnit,oi=`.${this._styleSheetClass} > .${this.opts.itemClass}`;if(!this._styles){let si=this.opts.styleInHead?void 0:this.el.parentNode;if(this._styles=bi.createStylesheet(this._styleSheetClass,si,{nonce:this.opts.nonce}),!this._styles)return this;this._styles._max=0,bi.addCSSRule(this._styles,oi,`height: ${ni}${ri}`);let ai=this.opts.marginTop+this.opts.marginUnit,li=this.opts.marginBottom+this.opts.marginUnit,ui=this.opts.marginRight+this.opts.marginUnit,ci=this.opts.marginLeft+this.opts.marginUnit,di=`${oi} > .grid-stack-item-content`,pi=`.${this._styleSheetClass} > .grid-stack-placeholder > .placeholder-content`;bi.addCSSRule(this._styles,di,`top: ${ai}; right: ${ui}; bottom: ${li}; left: ${ci};`),bi.addCSSRule(this._styles,pi,`top: ${ai}; right: ${ui}; bottom: ${li}; left: ${ci};`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-n`,`top: ${ai};`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-s`,`bottom: ${li}`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-ne`,`right: ${ui}; top: ${ai}`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-e`,`right: ${ui}`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-se`,`right: ${ui}; bottom: ${li}`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-nw`,`left: ${ci}; top: ${ai}`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-w`,`left: ${ci}`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-sw`,`left: ${ci}; bottom: ${li}`)}if(ti=ti||this._styles._max,ti>this._styles._max){let si=ai=>ni*ai+ri;for(let ai=this._styles._max+1;ai<=ti;ai++)bi.addCSSRule(this._styles,`${oi}[gs-y="${ai}"]`,`top: ${si(ai)}`),bi.addCSSRule(this._styles,`${oi}[gs-h="${ai+1}"]`,`height: ${si(ai+1)}`);this._styles._max=ti}return this}_updateContainerHeight(){if(!this.engine||this.engine.batchMode)return this;let ei=this.parentGridNode,ti=this.getRow()+this._extraDragRow,ni=this.opts.cellHeight,ri=this.opts.cellHeightUnit;if(!ni)return this;if(!ei){let oi=bi.parseHeight(getComputedStyle(this.el).minHeight);if(oi.h>0&&oi.unit===ri){let si=Math.floor(oi.h/ni);ti1?ei.setAttribute("gs-w",String(ti.w)):ei.removeAttribute("gs-w"),ti.h>1?ei.setAttribute("gs-h",String(ti.h)):ei.removeAttribute("gs-h"),this}_writeAttr(ei,ti){if(!ti)return this;this._writePosAttr(ei,ti);let ni={noResize:"gs-no-resize",noMove:"gs-no-move",locked:"gs-locked",id:"gs-id",sizeToContent:"gs-size-to-content"};for(let ri in ni)ti[ri]?ei.setAttribute(ni[ri],String(ti[ri])):ei.removeAttribute(ni[ri]);return this}_readAttr(ei,ti=!0){let ni={};ni.x=bi.toNumber(ei.getAttribute("gs-x")),ni.y=bi.toNumber(ei.getAttribute("gs-y")),ni.w=bi.toNumber(ei.getAttribute("gs-w")),ni.h=bi.toNumber(ei.getAttribute("gs-h")),ni.autoPosition=bi.toBool(ei.getAttribute("gs-auto-position")),ni.noResize=bi.toBool(ei.getAttribute("gs-no-resize")),ni.noMove=bi.toBool(ei.getAttribute("gs-no-move")),ni.locked=bi.toBool(ei.getAttribute("gs-locked")),ni.sizeToContent=bi.toBool(ei.getAttribute("gs-size-to-content")),ni.id=ei.getAttribute("gs-id"),ni.maxW=bi.toNumber(ei.getAttribute("gs-max-w")),ni.minW=bi.toNumber(ei.getAttribute("gs-min-w")),ni.maxH=bi.toNumber(ei.getAttribute("gs-max-h")),ni.minH=bi.toNumber(ei.getAttribute("gs-min-h")),ti&&(ni.w===1&&ei.removeAttribute("gs-w"),ni.h===1&&ei.removeAttribute("gs-h"),ni.maxW&&ei.removeAttribute("gs-max-w"),ni.minW&&ei.removeAttribute("gs-min-w"),ni.maxH&&ei.removeAttribute("gs-max-h"),ni.minH&&ei.removeAttribute("gs-min-h"));for(let ri in ni){if(!ni.hasOwnProperty(ri))return;!ni[ri]&&ni[ri]!==0&&delete ni[ri]}return ni}_setStaticClass(){let ei=["grid-stack-static"];return this.opts.staticGrid?(this.el.classList.add(...ei),this.el.setAttribute("gs-static","true")):(this.el.classList.remove(...ei),this.el.removeAttribute("gs-static")),this}onResize(ei=(ti=>(ti=this.el)==null?void 0:ti.clientWidth)()){if(!ei||this.prevWidth===ei)return;this.prevWidth=ei,this.batchUpdate();let ni=!1;return this._autoColumn&&this.parentGridNode?this.opts.column!==this.parentGridNode.w&&(this.column(this.parentGridNode.w,this.opts.layout||"list"),ni=!0):ni=this.checkDynamicColumn(),this._isAutoCellHeight&&this.cellHeight(),this.engine.nodes.forEach(ri=>{ri.subGrid&&ri.subGrid.onResize()}),this._skipInitialResize||this.resizeToContentCheck(ni),delete this._skipInitialResize,this.batchUpdate(!1),this}resizeToContentCheck(ei=!1,ti=void 0){if(this.engine){if(ei&&this.hasAnimationCSS())return setTimeout(()=>this.resizeToContentCheck(!1,ti),this.animationDelay);if(ti)bi.shouldSizeToContent(ti)&&this.resizeToContentCBCheck(ti.el);else if(this.engine.nodes.some(ni=>bi.shouldSizeToContent(ni))){let ni=[...this.engine.nodes];this.batchUpdate(),ni.forEach(ri=>{bi.shouldSizeToContent(ri)&&this.resizeToContentCBCheck(ri.el)}),this.batchUpdate(!1)}this._gsEventHandler.resizecontent&&this._gsEventHandler.resizecontent(null,ti?[ti]:this.engine.nodes)}}_updateResizeEvent(ei=!1){let ti=!this.parentGridNode&&(this._isAutoCellHeight||this.opts.sizeToContent||this.opts.columnOpts||this.engine.nodes.find(ni=>ni.sizeToContent));return!ei&&ti&&!this.resizeObserver?(this._sizeThrottle=bi.throttle(()=>this.onResize(),this.opts.cellHeightThrottle),this.resizeObserver=new ResizeObserver(()=>this._sizeThrottle()),this.resizeObserver.observe(this.el),this._skipInitialResize=!0):(ei||!ti)&&this.resizeObserver&&(this.resizeObserver.disconnect(),delete this.resizeObserver,delete this._sizeThrottle),this}static getElement(ei=".grid-stack-item"){return bi.getElement(ei)}static getElements(ei=".grid-stack-item"){return bi.getElements(ei)}static getGridElement(ei){return ii.getElement(ei)}static getGridElements(ei){return bi.getElements(ei)}_initMargin(){let ei,ti=0,ni=[];return typeof this.opts.margin=="string"&&(ni=this.opts.margin.split(" ")),ni.length===2?(this.opts.marginTop=this.opts.marginBottom=ni[0],this.opts.marginLeft=this.opts.marginRight=ni[1]):ni.length===4?(this.opts.marginTop=ni[0],this.opts.marginRight=ni[1],this.opts.marginBottom=ni[2],this.opts.marginLeft=ni[3]):(ei=bi.parseHeight(this.opts.margin),this.opts.marginUnit=ei.unit,ti=this.opts.margin=ei.h),this.opts.marginTop===void 0?this.opts.marginTop=ti:(ei=bi.parseHeight(this.opts.marginTop),this.opts.marginTop=ei.h,delete this.opts.margin),this.opts.marginBottom===void 0?this.opts.marginBottom=ti:(ei=bi.parseHeight(this.opts.marginBottom),this.opts.marginBottom=ei.h,delete this.opts.margin),this.opts.marginRight===void 0?this.opts.marginRight=ti:(ei=bi.parseHeight(this.opts.marginRight),this.opts.marginRight=ei.h,delete this.opts.margin),this.opts.marginLeft===void 0?this.opts.marginLeft=ti:(ei=bi.parseHeight(this.opts.marginLeft),this.opts.marginLeft=ei.h,delete this.opts.margin),this.opts.marginUnit=ei.unit,this.opts.marginTop===this.opts.marginBottom&&this.opts.marginLeft===this.opts.marginRight&&this.opts.marginTop===this.opts.marginRight&&(this.opts.margin=this.opts.marginTop),this}static getDD(){return Bn}static setupDragIn(ei,ti,ni,ri=document){(ti==null?void 0:ti.pause)!==void 0&&(Bi.pauseDrag=ti.pause),ti=Di({appendTo:"body",helper:"clone"},ti||{}),(typeof ei=="string"?bi.getElements(ei,ri):ei).forEach((si,ai)=>{Bn.isDraggable(si)||Bn.dragIn(si,ti),ni!=null&&ni[ai]&&(si.gridstackNode=ni[ai])})}movable(ei,ti){return this.opts.staticGrid?this:(ii.getElements(ei).forEach(ni=>{let ri=ni.gridstackNode;ri&&(ti?delete ri.noMove:ri.noMove=!0,this._prepareDragDropByNode(ri))}),this)}resizable(ei,ti){return this.opts.staticGrid?this:(ii.getElements(ei).forEach(ni=>{let ri=ni.gridstackNode;ri&&(ti?delete ri.noResize:ri.noResize=!0,this._prepareDragDropByNode(ri))}),this)}disable(ei=!0){if(!this.opts.staticGrid)return this.enableMove(!1,ei),this.enableResize(!1,ei),this._triggerEvent("disable"),this}enable(ei=!0){if(!this.opts.staticGrid)return this.enableMove(!0,ei),this.enableResize(!0,ei),this._triggerEvent("enable"),this}enableMove(ei,ti=!0){return this.opts.staticGrid?this:(ei?delete this.opts.disableDrag:this.opts.disableDrag=!0,this.engine.nodes.forEach(ni=>{this._prepareDragDropByNode(ni),ni.subGrid&&ti&&ni.subGrid.enableMove(ei,ti)}),this)}enableResize(ei,ti=!0){return this.opts.staticGrid?this:(ei?delete this.opts.disableResize:this.opts.disableResize=!0,this.engine.nodes.forEach(ni=>{this._prepareDragDropByNode(ni),ni.subGrid&&ti&&ni.subGrid.enableResize(ei,ti)}),this)}_removeDD(ei){return Bn.draggable(ei,"destroy").resizable(ei,"destroy"),ei.gridstackNode&&delete ei.gridstackNode._initDD,delete ei.ddElement,this}_setupAcceptWidget(){if(this.opts.staticGrid||!this.opts.acceptWidgets&&!this.opts.removable)return Bn.droppable(this.el,"destroy"),this;let ei,ti,ni=(ri,oi,si)=>{var pi;si=si||oi;let ai=si.gridstackNode;if(!ai)return;if(!((pi=ai.grid)!=null&&pi.el)){si.style.transform=`scale(${1/this.dragTransform.xScale},${1/this.dragTransform.yScale})`;let yi=si.getBoundingClientRect();si.style.left=yi.x+(this.dragTransform.xScale-1)*(ri.clientX-yi.x)/this.dragTransform.xScale+"px",si.style.top=yi.y+(this.dragTransform.yScale-1)*(ri.clientY-yi.y)/this.dragTransform.yScale+"px",si.style.transformOrigin="0px 0px"}let{top:li,left:ui}=si.getBoundingClientRect(),ci=this.el.getBoundingClientRect();ui-=ci.left,li-=ci.top;let di={position:{top:li*this.dragTransform.xScale,left:ui*this.dragTransform.yScale}};if(ai._temporaryRemoved){if(ai.x=Math.max(0,Math.round(ui/ti)),ai.y=Math.max(0,Math.round(li/ei)),delete ai.autoPosition,this.engine.nodeBoundFix(ai),!this.engine.willItFit(ai)){if(ai.autoPosition=!0,!this.engine.willItFit(ai)){Bn.off(oi,"drag");return}ai._willFitPos&&(bi.copyPos(ai,ai._willFitPos),delete ai._willFitPos)}this._onStartMoving(si,ri,di,ai,ti,ei)}else this._dragOrResize(si,ri,di,ai,ti,ei)};return Bn.droppable(this.el,{accept:ri=>{let oi=ri.gridstackNode||this._readAttr(ri,!1);if((oi==null?void 0:oi.grid)===this)return!0;if(!this.opts.acceptWidgets)return!1;let si=!0;if(typeof this.opts.acceptWidgets=="function")si=this.opts.acceptWidgets(ri);else{let ai=this.opts.acceptWidgets===!0?".grid-stack-item":this.opts.acceptWidgets;si=ri.matches(ai)}if(si&&oi&&this.opts.maxRow){let ai={w:oi.w,h:oi.h,minW:oi.minW,minH:oi.minH};si=this.engine.willItFit(ai)}return si}}).on(this.el,"dropover",(ri,oi,si)=>{let ai=(si==null?void 0:si.gridstackNode)||oi.gridstackNode;if((ai==null?void 0:ai.grid)===this&&!ai._temporaryRemoved)return!1;if(ai!=null&&ai.grid&&ai.grid!==this&&!ai._temporaryRemoved&&ai.grid._leave(oi,si),si=si||oi,ti=this.cellWidth(),ei=this.getCellHeight(!0),!ai){if(si.hasAttribute("gridstacknode")){try{ai=JSON.parse(si.getAttribute("gridstacknode"))}catch(ci){console.error("Gridstack dropover: Bad JSON format: ",si.getAttribute("gridstacknode"))}si.removeAttribute("gridstacknode")}ai||(ai=this._readAttr(si))}ai.grid||(ai.el||(ai=Di({},ai)),ai._isExternal=!0,si.gridstackNode=ai);let li=ai.w||Math.round(si.offsetWidth/ti)||1,ui=ai.h||Math.round(si.offsetHeight/ei)||1;return ai.grid&&ai.grid!==this?(oi._gridstackNodeOrig||(oi._gridstackNodeOrig=ai),oi.gridstackNode=ai=sn(Di({},ai),{w:li,h:ui,grid:this}),delete ai.x,delete ai.y,this.engine.cleanupNode(ai).nodeBoundFix(ai),ai._initDD=ai._isExternal=ai._temporaryRemoved=!0):(ai.w=li,ai.h=ui,ai._temporaryRemoved=!0),ii._itemRemoving(ai.el,!1),Bn.on(oi,"drag",ni),ni(ri,oi,si),!1}).on(this.el,"dropout",(ri,oi,si)=>{let ai=(si==null?void 0:si.gridstackNode)||oi.gridstackNode;return ai&&(!ai.grid||ai.grid===this)&&(this._leave(oi,si),this._isTemp&&this.removeAsSubGrid(ai)),!1}).on(this.el,"drop",(ri,oi,si)=>{var yi,gi,vi;let ai=(si==null?void 0:si.gridstackNode)||oi.gridstackNode;if((ai==null?void 0:ai.grid)===this&&!ai._isExternal)return!1;let li=!!this.placeholder.parentElement,ui=oi!==si;this.placeholder.remove();let ci=li&&this.opts.animate;ci&&this.setAnimation(!1);let di=oi._gridstackNodeOrig;if(delete oi._gridstackNodeOrig,li&&(di!=null&&di.grid)&&di.grid!==this){let Ei=di.grid;Ei.engine.removeNodeFromLayoutCache(di),Ei.engine.removedNodes.push(di),Ei._triggerRemoveEvent()._triggerChangeEvent(),Ei.parentGridNode&&!Ei.engine.nodes.length&&Ei.opts.subGridDynamic&&Ei.removeAsSubGrid()}if(!ai||(li&&(this.engine.cleanupNode(ai),ai.grid=this),(yi=ai.grid)==null||delete yi._isTemp,Bn.off(oi,"drag"),si!==oi?(si.remove(),oi=si):oi.remove(),this._removeDD(oi),!li))return!1;let pi=(vi=(gi=ai.subGrid)==null?void 0:gi.el)==null?void 0:vi.gridstack;return bi.copyPos(ai,this._readAttr(this.placeholder)),bi.removePositioningStyles(oi),ui&&(ai.content||ai.subGridOpts||ii.addRemoveCB)?(delete ai.el,oi=this.addWidget(ai)):(this._prepareElement(oi,!0,ai),this.el.appendChild(oi),this.resizeToContentCheck(!1,ai),pi&&(pi.parentGridNode=ai,pi.opts.styleInHead||pi._updateStyles(!0)),this._updateContainerHeight()),this.engine.addedNodes.push(ai),this._triggerAddEvent(),this._triggerChangeEvent(),this.engine.endUpdate(),this._gsEventHandler.dropped&&this._gsEventHandler.dropped(sn(Di({},ri),{type:"dropped"}),di&&di.grid?di:void 0,ai),ci&&this.setAnimation(this.opts.animate,!0),!1}),this}static _itemRemoving(ei,ti){if(!ei)return;let ni=ei?ei.gridstackNode:void 0;!(ni!=null&&ni.grid)||ei.classList.contains(ni.grid.opts.removableOptions.decline)||(ti?ni._isAboutToRemove=!0:delete ni._isAboutToRemove,ti?ei.classList.add("grid-stack-item-removing"):ei.classList.remove("grid-stack-item-removing"))}_setupRemoveDrop(){if(typeof this.opts.removable!="string")return this;let ei=document.querySelector(this.opts.removable);return ei?(!this.opts.staticGrid&&!Bn.isDroppable(ei)&&Bn.droppable(ei,this.opts.removableOptions).on(ei,"dropover",(ti,ni)=>ii._itemRemoving(ni,!0)).on(ei,"dropout",(ti,ni)=>ii._itemRemoving(ni,!1)),this):this}_prepareDragDropByNode(ei){let ti=ei.el,ni=ei.noMove||this.opts.disableDrag,ri=ei.noResize||this.opts.disableResize;if(this.opts.staticGrid||ni&&ri)return ei._initDD&&(this._removeDD(ti),delete ei._initDD),ti.classList.add("ui-draggable-disabled","ui-resizable-disabled"),this;if(!ei._initDD){let oi,si,ai=(ci,di)=>{this._gsEventHandler[ci.type]&&this._gsEventHandler[ci.type](ci,ci.target),oi=this.cellWidth(),si=this.getCellHeight(!0),this._onStartMoving(ti,ci,di,ei,oi,si)},li=(ci,di)=>{this._dragOrResize(ti,ci,di,ei,oi,si)},ui=ci=>{this.placeholder.remove(),delete ei._moving,delete ei._event,delete ei._lastTried;let di=ei.w!==ei._orig.w,pi=ci.target;if(!(!pi.gridstackNode||pi.gridstackNode.grid!==this)){if(ei.el=pi,ei._isAboutToRemove){let yi=ti.gridstackNode.grid;yi._gsEventHandler[ci.type]&&yi._gsEventHandler[ci.type](ci,pi),yi.engine.nodes.push(ei),yi.removeWidget(ti,!0,!0)}else bi.removePositioningStyles(pi),ei._temporaryRemoved?(bi.copyPos(ei,ei._orig),this._writePosAttr(pi,ei),this.engine.addNode(ei)):this._writePosAttr(pi,ei),this._gsEventHandler[ci.type]&&this._gsEventHandler[ci.type](ci,pi);this._extraDragRow=0,this._updateContainerHeight(),this._triggerChangeEvent(),this.engine.endUpdate(),ci.type==="resizestop"&&(Number.isInteger(ei.sizeToContent)&&(ei.sizeToContent=ei.h),this.resizeToContentCheck(di,ei))}};Bn.draggable(ti,{start:ai,stop:ui,drag:li}).resizable(ti,{start:ai,stop:ui,resize:li}),ei._initDD=!0}return Bn.draggable(ti,ni?"disable":"enable").resizable(ti,ri?"disable":"enable"),this}_onStartMoving(ei,ti,ni,ri,oi,si){var ai;if(this.engine.cleanNodes().beginUpdate(ri),this._writePosAttr(this.placeholder,ri),this.el.appendChild(this.placeholder),this.placeholder.gridstackNode=ri,(ai=ri.grid)!=null&&ai.el)this.dragTransform=bi.getValuesFromTransformedElement(ei);else if(this.placeholder&&this.placeholder.closest(".grid-stack")){let li=this.placeholder.closest(".grid-stack");this.dragTransform=bi.getValuesFromTransformedElement(li)}else this.dragTransform={xScale:1,xOffset:0,yScale:1,yOffset:0};if(ri.el=this.placeholder,ri._lastUiPosition=ni.position,ri._prevYPix=ni.position.top,ri._moving=ti.type==="dragstart",delete ri._lastTried,ti.type==="dropover"&&ri._temporaryRemoved&&(this.engine.addNode(ri),ri._moving=!0),this.engine.cacheRects(oi,si,this.opts.marginTop,this.opts.marginRight,this.opts.marginBottom,this.opts.marginLeft),ti.type==="resizestart"){let li=this.getColumn()-ri.x,ui=(this.opts.maxRow||Number.MAX_SAFE_INTEGER)-ri.y;Bn.resizable(ei,"option","minWidth",oi*Math.min(ri.minW||1,li)).resizable(ei,"option","minHeight",si*Math.min(ri.minH||1,ui)).resizable(ei,"option","maxWidth",oi*Math.min(ri.maxW||Number.MAX_SAFE_INTEGER,li)).resizable(ei,"option","maxWidthMoveLeft",oi*Math.min(ri.maxW||Number.MAX_SAFE_INTEGER,ri.x+ri.w)).resizable(ei,"option","maxHeight",si*Math.min(ri.maxH||Number.MAX_SAFE_INTEGER,ui)).resizable(ei,"option","maxHeightMoveUp",si*Math.min(ri.maxH||Number.MAX_SAFE_INTEGER,ri.y+ri.h))}}_dragOrResize(ei,ti,ni,ri,oi,si){let ai=Di({},ri._orig),li,ui=this.opts.marginLeft,ci=this.opts.marginRight,di=this.opts.marginTop,pi=this.opts.marginBottom,yi=Math.round(si*.1),gi=Math.round(oi*.1);if(ui=Math.min(ui,gi),ci=Math.min(ci,gi),di=Math.min(di,yi),pi=Math.min(pi,yi),ti.type==="drag"){if(ri._temporaryRemoved)return;let Ei=ni.position.top-ri._prevYPix;ri._prevYPix=ni.position.top,this.opts.draggable.scroll!==!1&&bi.updateScrollPosition(ei,ni.position,Ei);let Ci=ni.position.left+(ni.position.left>ri._lastUiPosition.left?-ci:ui),xi=ni.position.top+(ni.position.top>ri._lastUiPosition.top?-pi:di);ai.x=Math.round(Ci/oi),ai.y=Math.round(xi/si);let Li=this._extraDragRow;if(this.engine.collide(ri,ai)){let Oi=this.getRow(),zi=Math.max(0,ai.y+ri.h-Oi);this.opts.maxRow&&Oi+zi>this.opts.maxRow&&(zi=Math.max(0,this.opts.maxRow-Oi)),this._extraDragRow=zi}else this._extraDragRow=0;if(this._extraDragRow!==Li&&this._updateContainerHeight(),ri.x===ai.x&&ri.y===ai.y)return}else if(ti.type==="resize"){if(ai.x<0||(bi.updateScrollResize(ti,ei,si),ai.w=Math.round((ni.size.width-ui)/oi),ai.h=Math.round((ni.size.height-di)/si),ri.w===ai.w&&ri.h===ai.h)||ri._lastTried&&ri._lastTried.w===ai.w&&ri._lastTried.h===ai.h)return;let Ei=ni.position.left+ui,Ci=ni.position.top+di;ai.x=Math.round(Ei/oi),ai.y=Math.round(Ci/si),li=!0}ri._event=ti,ri._lastTried=ai;let vi={x:ni.position.left+ui,y:ni.position.top+di,w:(ni.size?ni.size.width:ri.w*oi)-ui-ci,h:(ni.size?ni.size.height:ri.h*si)-di-pi};if(this.engine.moveNodeCheck(ri,sn(Di({},ai),{cellWidth:oi,cellHeight:si,rect:vi,resizing:li}))){ri._lastUiPosition=ni.position,this.engine.cacheRects(oi,si,di,ci,pi,ui),delete ri._skipDown,li&&ri.subGrid&&ri.subGrid.onResize(),this._extraDragRow=0,this._updateContainerHeight();let Ei=ti.target;this._writePosAttr(Ei,ri),this._gsEventHandler[ti.type]&&this._gsEventHandler[ti.type](ti,Ei)}}_leave(ei,ti){ti=ti||ei;let ni=ti.gridstackNode;ni&&(ti.style.transform=ti.style.transformOrigin=null,Bn.off(ei,"drag"),!ni._temporaryRemoved&&(ni._temporaryRemoved=!0,this.engine.removeNode(ni),ni.el=ni._isExternal&&ti?ti:ei,ni._isExternal&&this.engine.cleanupNode(ni),this.opts.removable===!0&&ii._itemRemoving(ei,!0),ei._gridstackNodeOrig?(ei.gridstackNode=ei._gridstackNodeOrig,delete ei._gridstackNodeOrig):ni._isExternal&&this.engine.restoreInitial()))}commit(){return Sh(this,this.batchUpdate(!1),"commit","batchUpdate","5.2"),this}};Jr.renderCB=(ii,ei)=>{ii&&(ei!=null&&ei.content)&&(ii.textContent=ei.content)};Jr.resizeToContentParent=".grid-stack-item-content";Jr.Utils=bi;Jr.Engine=as;Jr.GDRev="11.1.2";function q_(){let ii=document.getElementById("dashboard");ii&&ii.gridstack.disable()}function W_(){let ii=document.getElementById("dashboard");ii&&ii.gridstack.enable()}function U_(ii,ei){return co(this,null,function*(){return yield Ls(ii,{layout:ei})})}function Ah(){if(document.getElementById("dashboard")==null)return;let ei=Jr.init({cellHeight:100,disableDrag:!0,disableResize:!0,draggable:{handle:".grid-stack-item-content .card-header",appendTo:"body",scroll:!0}}),ti=document.getElementById("lock_dashboard");ti&&ti.addEventListener("click",()=>{q_()});let ni=document.getElementById("unlock_dashboard");ni&&ni.addEventListener("click",()=>{W_()});let ri=document.getElementById("save_dashboard");ri!==null&&ri.addEventListener("click",()=>{let oi=ri.getAttribute("data-url");if(oi==null)return;let si=ei.save(!1);U_(oi,si).then(ai=>{rs(ai)?Po("danger","Error Saving Dashboard Config",ai.error).show():location.reload()})})}function Dh(ii,ei){switch(ii){case"images-and-labels":{tu("image.device-image",ei),tu("text.device-image-label",ei);break}case"images-only":{tu("image.device-image",ei),iu("text.device-image-label",ei);break}case"labels-only":{iu("image.device-image",ei),iu("text.device-image-label",ei);break}}}function tu(ii,ei){var ni,ri;let ti=(ri=(ni=ei.contentDocument)==null?void 0:ni.querySelectorAll(ii))!=null?ri:[];for(let oi of ti)oi.classList.remove("hidden")}function iu(ii,ei){var ni,ri;let ti=(ri=(ni=ei.contentDocument)==null?void 0:ni.querySelectorAll(ii))!=null?ri:[];for(let oi of ti)oi.classList.add("hidden")}function Y_(ii,ei){ei.set("view",ii);for(let ti of Hi(".rack_elevation"))Dh(ii,ti)}function Oh(){let ii=qc.get("view");for(let ei of Hi("select.rack-view"))ei.selectedIndex=[...ei.options].findIndex(ti=>ti.value==ii),ei.addEventListener("change",ti=>{Y_(ti.currentTarget.value,qc)},!1);for(let ei of Hi(".rack_elevation"))ei.addEventListener("load",()=>{Dh(ii,ei)})}function G_(ii){let ei=document.getElementById("selector_results");if(ei==null)return;let ti=ei.getAttribute("data-selector-target");if(ti==null)return;let ni=document.getElementById(ti);if(ni==null)return;let ri=ii.getAttribute("data-label"),oi=ii.getAttribute("data-value");ni.tomselect.addOption({id:oi,display:ri}),ni.tomselect.addItem(oi)}function Lh(){for(let ii of Hi("#selector_results a"))ii.addEventListener("click",()=>G_(ii))}function K_(){let ii=document.getElementById("quick-add-object");if(ii==null)return;let ei=ii.getAttribute("data-object-id");if(ei==null)return;let ti=ii.getAttribute("data-object-repr");if(ti==null)return;let ni=ii.getAttribute("data-target-id");if(ni==null)return;let ri=document.getElementById(ni);if(ri==null)return;ri.tomselect.addOption({id:ei,display:ti}),ri.tomselect.addItem(ei);let oi=document.getElementById("htmx-modal");if(oi){let si=io.getInstance(oi);si&&si.hide()}}function Mh(){let ii=document.getElementById("htmx-modal-content");ii&&ii.addEventListener("htmx:afterSwap",()=>K_())}function Q_(){bl(),El(),yl(),Lh(),Mh(),hl(),_l()}function kh(){document.addEventListener("htmx:afterSettle",Q_)}function X_(ii){let ei=ii.currentTarget,ti=ei.baseURI.split("?")[0],ni="?",ri=Array.from(ei.options).filter(oi=>oi.selected).map(oi=>`filter_id=${oi.value}`).join("&");ti+=`${ni}${ri}`,document.location.href=ti}function Nh(){let ii=document.getElementById("results");if(pn(ii)){let ei=document.getElementById("id_filter_id");pn(ei)&&ei.addEventListener("change",X_)}}function Rh(){for(let ii of[hl,dh,_l,Ef,Tf,yl,bh,bl,El,Eh,xh,Th,Ah,Oh,kh,Nh])ii()}function J_(){let ii=document.forms;for(let ti of ii)ti.method.toUpperCase()=="GET"&&ti.addEventListener("formdata",function(ni){let ri=ni.formData;for(let[oi,si]of Array.from(ri.entries()))si===""&&ri.delete(oi)});let ei=document.querySelector(".content-container");ei!==null&&ei.focus()}window.addEventListener("load",J_);document.readyState!=="loading"?Rh():document.addEventListener("DOMContentLoaded",Rh);})(); +Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`)),ni}static addGrid(ei,ti={}){if(!ei)return null;let ni=ei;if(ni.gridstack){let si=ni.gridstack;return ti&&(si.opts=Di(Di({},si.opts),ti)),ti.children!==void 0&&si.load(ti.children),si}return(!ei.classList.contains("grid-stack")||ii.addRemoveCB)&&(ii.addRemoveCB?ni=ii.addRemoveCB(ei,ti,!0,!0):ni=bi.createDiv(["grid-stack",ti.class],ei)),ii.init(ti,ni)}static registerEngine(ei){ii.engineClass=ei}get placeholder(){if(!this._placeholder){this._placeholder=bi.createDiv([this.opts.placeholderClass,Yn.itemClass,this.opts.itemClass]);let ei=bi.createDiv(["placeholder-content"],this._placeholder);this.opts.placeholderText&&(ei.textContent=this.opts.placeholderText)}return this._placeholder}constructor(ei,ti={}){var di,pi,yi;this.el=ei,this.opts=ti,this.animationDelay=310,this._gsEventHandler={},this._extraDragRow=0,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},ei.gridstack=this,this.opts=ti=ti||{},ei.classList.contains("grid-stack")||this.el.classList.add("grid-stack"),ti.row&&(ti.minRow=ti.maxRow=ti.row,delete ti.row);let ni=bi.toNumber(ei.getAttribute("gs-row"));ti.column==="auto"&&delete ti.column,ti.alwaysShowResizeHandle!==void 0&&(ti._alwaysShowResizeHandle=ti.alwaysShowResizeHandle);let ri=(di=ti.columnOpts)==null?void 0:di.breakpoints,oi=ti;if(oi.oneColumnModeDomSort&&(delete oi.oneColumnModeDomSort,console.log("warning: Gridstack oneColumnModeDomSort no longer supported. Use GridStackOptions.columnOpts instead.")),oi.oneColumnSize||oi.disableOneColumnMode===!1){let gi=oi.oneColumnSize||768;delete oi.oneColumnSize,delete oi.disableOneColumnMode,ti.columnOpts=ti.columnOpts||{},ri=ti.columnOpts.breakpoints=ti.columnOpts.breakpoints||[];let vi=ri.find(Ei=>Ei.c===1);vi?vi.w=gi:(vi={c:1,w:gi},ri.push(vi,{c:12,w:gi+1}))}let si=ti.columnOpts;si&&(!si.columnWidth&&!((pi=si.breakpoints)!=null&&pi.length)?(delete ti.columnOpts,ri=void 0):si.columnMax=si.columnMax||12),(ri==null?void 0:ri.length)>1&&ri.sort((gi,vi)=>(vi.w||0)-(gi.w||0));let ai=sn(Di({},bi.cloneDeep(Yn)),{column:bi.toNumber(ei.getAttribute("gs-column"))||Yn.column,minRow:ni||bi.toNumber(ei.getAttribute("gs-min-row"))||Yn.minRow,maxRow:ni||bi.toNumber(ei.getAttribute("gs-max-row"))||Yn.maxRow,staticGrid:bi.toBool(ei.getAttribute("gs-static"))||Yn.staticGrid,sizeToContent:bi.toBool(ei.getAttribute("gs-size-to-content"))||void 0,draggable:{handle:(ti.handleClass?"."+ti.handleClass:ti.handle?ti.handle:"")||Yn.draggable.handle},removableOptions:{accept:ti.itemClass||Yn.removableOptions.accept,decline:Yn.removableOptions.decline}});ei.getAttribute("gs-animate")&&(ai.animate=bi.toBool(ei.getAttribute("gs-animate"))),ti=bi.defaults(ti,ai),this._initMargin(),this.checkDynamicColumn(),this.el.classList.add("gs-"+ti.column),ti.rtl==="auto"&&(ti.rtl=ei.style.direction==="rtl"),ti.rtl&&this.el.classList.add("grid-stack-rtl");let li=this.el.closest("."+Yn.itemClass),ui=li==null?void 0:li.gridstackNode;ui&&(ui.subGrid=this,this.parentGridNode=ui,this.el.classList.add("grid-stack-nested"),ui.el.classList.add("grid-stack-sub-grid")),this._isAutoCellHeight=ti.cellHeight==="auto",this._isAutoCellHeight||ti.cellHeight==="initial"?this.cellHeight(void 0,!1):(typeof ti.cellHeight=="number"&&ti.cellHeightUnit&&ti.cellHeightUnit!==Yn.cellHeightUnit&&(ti.cellHeight=ti.cellHeight+ti.cellHeightUnit,delete ti.cellHeightUnit),this.cellHeight(ti.cellHeight,!1)),ti.alwaysShowResizeHandle==="mobile"&&(ti.alwaysShowResizeHandle=$n),this._styleSheetClass="gs-id-"+as._idSeq++,this.el.classList.add(this._styleSheetClass),this._setStaticClass();let ci=ti.engineClass||ii.engineClass||as;if(this.engine=new ci({column:this.getColumn(),float:ti.float,maxRow:ti.maxRow,onChange:gi=>{let vi=0;this.engine.nodes.forEach(Ei=>{vi=Math.max(vi,Ei.y+Ei.h)}),gi.forEach(Ei=>{let Ci=Ei.el;Ci&&(Ei._removeDOM?(Ci&&Ci.remove(),delete Ei._removeDOM):this._writePosAttr(Ci,Ei))}),this._updateStyles(!1,vi)}}),this._updateStyles(!1,0),ti.auto&&(this.batchUpdate(),this.engine._loading=!0,this.getGridItems().forEach(gi=>this._prepareElement(gi)),delete this.engine._loading,this.batchUpdate(!1)),ti.children){let gi=ti.children;delete ti.children,gi.length&&this.load(gi)}this.setAnimation(),ti.subGridDynamic&&!Bi.pauseDrag&&(Bi.pauseDrag=!0),((yi=ti.draggable)==null?void 0:yi.pause)!==void 0&&(Bi.pauseDrag=ti.draggable.pause),this._setupRemoveDrop(),this._setupAcceptWidget(),this._updateResizeEvent()}addWidget(ei){if(typeof ei=="string"){console.error("V11: GridStack.addWidget() does not support string anymore. see #2736");return}if(ei.ELEMENT_NODE)return console.error("V11: GridStack.addWidget() does not support HTMLElement anymore. use makeWidget()"),this.makeWidget(ei);let ti,ni=ei;if(ni.grid=this,ni!=null&&ni.el?ti=ni.el:ii.addRemoveCB?ti=ii.addRemoveCB(this.el,ei,!0,!1):ti=bi.createWidgetDivs(this.opts.itemClass,ni),!ti)return;if(ni=ti.gridstackNode,ni&&ti.parentElement===this.el&&this.engine.nodes.find(oi=>oi._id===ni._id))return ti;let ri=this._readAttr(ti);return bi.defaults(ei,ri),this.engine.prepareNode(ei),this.el.appendChild(ti),this.makeWidget(ti,ei),ti}makeSubGrid(ei,ti,ni,ri=!0){var yi,gi,vi;let oi=ei.gridstackNode;if(oi||(oi=this.makeWidget(ei).gridstackNode),(yi=oi.subGrid)!=null&&yi.el)return oi.subGrid;let si,ai=this;for(;ai&&!si;)si=(gi=ai.opts)==null?void 0:gi.subGridOpts,ai=(vi=ai.parentGridNode)==null?void 0:vi.grid;ti=bi.cloneDeep(Di(Di(sn(Di({},this.opts),{id:void 0,children:void 0,column:"auto",columnOpts:void 0,layout:"list",subGridOpts:void 0}),si||{}),ti||oi.subGridOpts||{})),oi.subGridOpts=ti;let li;ti.column==="auto"&&(li=!0,ti.column=Math.max(oi.w||1,(ni==null?void 0:ni.w)||1),delete ti.columnOpts);let ui=oi.el.querySelector(".grid-stack-item-content"),ci,di;if(ri&&(this._removeDD(oi.el),di=sn(Di({},oi),{x:0,y:0}),bi.removeInternalForSave(di),delete di.subGridOpts,oi.content&&(di.content=oi.content,delete oi.content),ii.addRemoveCB?ci=ii.addRemoveCB(this.el,di,!0,!1):(ci=bi.createDiv(["grid-stack-item"]),ci.appendChild(ui),ui=bi.createDiv(["grid-stack-item-content"],oi.el)),this._prepareDragDropByNode(oi)),ni){let Ei=li?ti.column:oi.w,Ci=oi.h+ni.h,xi=oi.el.style;xi.transition="none",this.update(oi.el,{w:Ei,h:Ci}),setTimeout(()=>xi.transition=null)}let pi=oi.subGrid=ii.addGrid(ui,ti);return ni!=null&&ni._moving&&(pi._isTemp=!0),li&&(pi._autoColumn=!0),ri&&pi.makeWidget(ci,di),ni&&(ni._moving?window.setTimeout(()=>bi.simulateMouseEvent(ni._event,"mouseenter",pi.el),0):pi.makeWidget(oi.el,oi)),this.resizeToContentCheck(!1,oi),pi}removeAsSubGrid(ei){var ni;let ti=(ni=this.parentGridNode)==null?void 0:ni.grid;ti&&(ti.batchUpdate(),ti.removeWidget(this.parentGridNode.el,!0,!0),this.engine.nodes.forEach(ri=>{ri.x+=this.parentGridNode.x,ri.y+=this.parentGridNode.y,ti.makeWidget(ri.el,ri)}),ti.batchUpdate(!1),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,ei&&window.setTimeout(()=>bi.simulateMouseEvent(ei._event,"mouseenter",ti.el),0))}save(ei=!0,ti=!1,ni=ii.saveCB){let ri=this.engine.save(ei,ni);if(ri.forEach(oi=>{var si;if(ei&&oi.el&&!oi.subGrid&&!ni){let ai=oi.el.querySelector(".grid-stack-item-content");oi.content=ai==null?void 0:ai.innerHTML,oi.content||delete oi.content}else if(!ei&&!ni&&delete oi.content,(si=oi.subGrid)!=null&&si.el){let ai=oi.subGrid.save(ei,ti,ni);oi.subGridOpts=ti?ai:{children:ai},delete oi.subGrid}delete oi.el}),ti){let oi=bi.cloneDeep(this.opts);oi.marginBottom===oi.marginTop&&oi.marginRight===oi.marginLeft&&oi.marginTop===oi.marginRight&&(oi.margin=oi.marginTop,delete oi.marginTop,delete oi.marginRight,delete oi.marginBottom,delete oi.marginLeft),oi.rtl===(this.el.style.direction==="rtl")&&(oi.rtl="auto"),this._isAutoCellHeight&&(oi.cellHeight="auto"),this._autoColumn&&(oi.column="auto");let si=oi._alwaysShowResizeHandle;return delete oi._alwaysShowResizeHandle,si!==void 0?oi.alwaysShowResizeHandle=si:delete oi.alwaysShowResizeHandle,bi.removeInternalAndSame(oi,Yn),oi.children=ri,oi}return ri}load(ei,ti=ii.addRemoveCB||!0){var ui;ei=bi.cloneDeep(ei);let ni=this.getColumn();ei.forEach(ci=>{ci.w=ci.w||1,ci.h=ci.h||1}),ei=bi.sort(ei);let ri=0;ei.forEach(ci=>{ri=Math.max(ri,(ci.x||0)+ci.w)}),ri>this.engine.defaultColumn&&(this.engine.defaultColumn=ri),ri>ni&&(this._ignoreLayoutsNodeChange=!0,this.engine.cacheLayout(ei,ri,!0));let oi=ii.addRemoveCB;typeof ti=="function"&&(ii.addRemoveCB=ti);let si=[];this.batchUpdate();let ai=!this.engine.nodes.length;ai&&this.setAnimation(!1),!ai&&ti&&[...this.engine.nodes].forEach(di=>{if(!di.id)return;bi.find(ei,di.id)||(ii.addRemoveCB&&ii.addRemoveCB(this.el,di,!1,!1),si.push(di),this.removeWidget(di.el,!0,!1))}),this.engine._loading=!0;let li=[];return this.engine.nodes=this.engine.nodes.filter(ci=>bi.find(ei,ci.id)?(li.push(ci),!1):!0),ei.forEach(ci=>{var pi;let di=bi.find(li,ci.id);if(di){if(bi.shouldSizeToContent(di)&&(ci.h=di.h),this.engine.nodeBoundFix(ci),(ci.autoPosition||ci.x===void 0||ci.y===void 0)&&(ci.w=ci.w||di.w,ci.h=ci.h||di.h,this.engine.findEmptyPosition(ci)),this.engine.nodes.push(di),bi.samePos(di,ci)&&this.engine.nodes.length>1&&(this.moveNode(di,sn(Di({},ci),{forceCollide:!0})),bi.copyPos(ci,di)),this.update(di.el,ci),(pi=ci.subGridOpts)!=null&&pi.children){let yi=di.el.querySelector(".grid-stack");yi&&yi.gridstack&&yi.gridstack.load(ci.subGridOpts.children)}}else ti&&this.addWidget(ci)}),delete this.engine._loading,this.engine.removedNodes=si,this.batchUpdate(!1),delete this._ignoreLayoutsNodeChange,oi?ii.addRemoveCB=oi:delete ii.addRemoveCB,ai&&((ui=this.opts)!=null&&ui.animate)&&this.setAnimation(this.opts.animate,!0),this}batchUpdate(ei=!0){return this.engine.batchUpdate(ei),ei||(this._updateContainerHeight(),this._triggerRemoveEvent(),this._triggerAddEvent(),this._triggerChangeEvent()),this}getCellHeight(ei=!1){if(this.opts.cellHeight&&this.opts.cellHeight!=="auto"&&(!ei||!this.opts.cellHeightUnit||this.opts.cellHeightUnit==="px"))return this.opts.cellHeight;if(this.opts.cellHeightUnit==="rem")return this.opts.cellHeight*parseFloat(getComputedStyle(document.documentElement).fontSize);if(this.opts.cellHeightUnit==="em")return this.opts.cellHeight*parseFloat(getComputedStyle(this.el).fontSize);if(this.opts.cellHeightUnit==="cm")return this.opts.cellHeight*(96/2.54);if(this.opts.cellHeightUnit==="mm")return this.opts.cellHeight*(96/2.54)/10;let ti=this.el.querySelector("."+this.opts.itemClass);if(ti){let ri=bi.toNumber(ti.getAttribute("gs-h"))||1;return Math.round(ti.offsetHeight/ri)}let ni=parseInt(this.el.getAttribute("gs-current-row"));return ni?Math.round(this.el.getBoundingClientRect().height/ni):this.opts.cellHeight}cellHeight(ei,ti=!0){if(ti&&ei!==void 0&&this._isAutoCellHeight!==(ei==="auto")&&(this._isAutoCellHeight=ei==="auto",this._updateResizeEvent()),(ei==="initial"||ei==="auto")&&(ei=void 0),ei===void 0){let ri=-this.opts.marginRight-this.opts.marginLeft+this.opts.marginTop+this.opts.marginBottom;ei=this.cellWidth()+ri}let ni=bi.parseHeight(ei);return this.opts.cellHeightUnit===ni.unit&&this.opts.cellHeight===ni.h?this:(this.opts.cellHeightUnit=ni.unit,this.opts.cellHeight=ni.h,this.resizeToContentCheck(),ti&&this._updateStyles(!0),this)}cellWidth(){return this._widthOrContainer()/this.getColumn()}_widthOrContainer(ei=!1){var ti;return ei&&((ti=this.opts.columnOpts)!=null&&ti.breakpointForWindow)?window.innerWidth:this.el.clientWidth||this.el.parentElement.clientWidth||window.innerWidth}checkDynamicColumn(){var oi,si;let ei=this.opts.columnOpts;if(!ei||!ei.columnWidth&&!((oi=ei.breakpoints)!=null&&oi.length))return!1;let ti=this.getColumn(),ni=ti,ri=this._widthOrContainer(!0);if(ei.columnWidth)ni=Math.min(Math.round(ri/ei.columnWidth)||1,ei.columnMax);else{ni=ei.columnMax;let ai=0;for(;aili.c===ni);return this.column(ni,(ai==null?void 0:ai.layout)||ei.layout),!0}return!1}compact(ei="compact",ti=!0){return this.engine.compact(ei,ti),this._triggerChangeEvent(),this}column(ei,ti="moveScale"){if(!ei||ei<1||this.opts.column===ei)return this;let ni=this.getColumn();return this.opts.column=ei,this.engine?(this.engine.column=ei,this.el.classList.remove("gs-"+ni),this.el.classList.add("gs-"+ei),this.engine.columnChanged(ni,ei,ti),this._isAutoCellHeight&&this.cellHeight(),this.resizeToContentCheck(!0),this._ignoreLayoutsNodeChange=!0,this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,this):this}getColumn(){return this.opts.column}getGridItems(){return Array.from(this.el.children).filter(ei=>ei.matches("."+this.opts.itemClass)&&!ei.matches("."+this.opts.placeholderClass))}destroy(ei=!0){var ti,ni;if(this.el)return this.offAll(),this._updateResizeEvent(!0),this.setStatic(!0,!1),this.setAnimation(!1),ei?this.el.parentNode.removeChild(this.el):(this.removeAll(ei),this.el.classList.remove(this._styleSheetClass),this.el.removeAttribute("gs-current-row")),this._removeStylesheet(),(ti=this.parentGridNode)==null||delete ti.subGrid,delete this.parentGridNode,delete this.opts,(ni=this._placeholder)==null||delete ni.gridstackNode,delete this._placeholder,delete this.engine,delete this.el.gridstack,delete this.el,this}float(ei){return this.opts.float!==ei&&(this.opts.float=this.engine.float=ei,this._triggerChangeEvent()),this}getFloat(){return this.engine.float}getCellFromPixel(ei,ti=!1){let ni=this.el.getBoundingClientRect(),ri;ti?ri={top:ni.top+document.documentElement.scrollTop,left:ni.left}:ri={top:this.el.offsetTop,left:this.el.offsetLeft};let oi=ei.left-ri.left,si=ei.top-ri.top,ai=ni.width/this.getColumn(),li=ni.height/parseInt(this.el.getAttribute("gs-current-row"));return{x:Math.floor(oi/ai),y:Math.floor(si/li)}}getRow(){return Math.max(this.engine.getRow(),this.opts.minRow)}isAreaEmpty(ei,ti,ni,ri){return this.engine.isAreaEmpty(ei,ti,ni,ri)}makeWidget(ei,ti){let ni=ii.getElement(ei);if(!ni)return;ni.parentElement||this.el.appendChild(ni),this._prepareElement(ni,!0,ti);let ri=ni.gridstackNode;return this._updateContainerHeight(),ri.subGridOpts&&this.makeSubGrid(ni,ri.subGridOpts,void 0,!1),this.opts.column===1&&(this._ignoreLayoutsNodeChange=!0),this._triggerAddEvent(),this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,ni}on(ei,ti){return ei.indexOf(" ")!==-1?(ei.split(" ").forEach(ri=>this.on(ri,ti)),this):(ei==="change"||ei==="added"||ei==="removed"||ei==="enable"||ei==="disable"?(ei==="enable"||ei==="disable"?this._gsEventHandler[ei]=ri=>ti(ri):this._gsEventHandler[ei]=ri=>{ri.detail&&ti(ri,ri.detail)},this.el.addEventListener(ei,this._gsEventHandler[ei])):ei==="drag"||ei==="dragstart"||ei==="dragstop"||ei==="resizestart"||ei==="resize"||ei==="resizestop"||ei==="dropped"||ei==="resizecontent"?this._gsEventHandler[ei]=ti:console.error("GridStack.on("+ei+") event not supported"),this)}off(ei){return ei.indexOf(" ")!==-1?(ei.split(" ").forEach(ni=>this.off(ni)),this):((ei==="change"||ei==="added"||ei==="removed"||ei==="enable"||ei==="disable")&&this._gsEventHandler[ei]&&this.el.removeEventListener(ei,this._gsEventHandler[ei]),delete this._gsEventHandler[ei],this)}offAll(){return Object.keys(this._gsEventHandler).forEach(ei=>this.off(ei)),this}removeWidget(ei,ti=!0,ni=!0){return ei?(ii.getElements(ei).forEach(ri=>{if(ri.parentElement&&ri.parentElement!==this.el)return;let oi=ri.gridstackNode;oi||(oi=this.engine.nodes.find(si=>ri===si.el)),oi&&(ti&&ii.addRemoveCB&&ii.addRemoveCB(this.el,oi,!1,!1),delete ri.gridstackNode,this._removeDD(ri),this.engine.removeNode(oi,ti,ni),ti&&ri.parentElement&&ri.remove())}),ni&&(this._triggerRemoveEvent(),this._triggerChangeEvent()),this):(console.error("Error: GridStack.removeWidget(undefined) called"),this)}removeAll(ei=!0,ti=!0){return this.engine.nodes.forEach(ni=>{ei&&ii.addRemoveCB&&ii.addRemoveCB(this.el,ni,!1,!1),delete ni.el.gridstackNode,this.opts.staticGrid||this._removeDD(ni.el)}),this.engine.removeAll(ei,ti),ti&&this._triggerRemoveEvent(),this}setAnimation(ei=this.opts.animate,ti){return ti?setTimeout(()=>{this.opts&&this.setAnimation(ei)}):ei?this.el.classList.add("grid-stack-animate"):this.el.classList.remove("grid-stack-animate"),this}hasAnimationCSS(){return this.el.classList.contains("grid-stack-animate")}setStatic(ei,ti=!0,ni=!0){return!!this.opts.staticGrid===ei?this:(ei?this.opts.staticGrid=!0:delete this.opts.staticGrid,this._setupRemoveDrop(),this._setupAcceptWidget(),this.engine.nodes.forEach(ri=>{this._prepareDragDropByNode(ri),ri.subGrid&&ni&&ri.subGrid.setStatic(ei,ti,ni)}),ti&&this._setStaticClass(),this)}update(ei,ti){if(arguments.length>2){console.warn("gridstack.ts: `update(el, x, y, w, h)` is deprecated. Use `update(el, {x, w, content, ...})`. It will be removed soon");let ni=arguments,ri=1;return ti={x:ni[ri++],y:ni[ri++],w:ni[ri++],h:ni[ri++]},this.update(ei,ti)}return ii.getElements(ei).forEach(ni=>{var ci;let ri=ni==null?void 0:ni.gridstackNode;if(!ri)return;let oi=bi.cloneDeep(ti);this.engine.nodeBoundFix(oi),delete oi.autoPosition;let si=["x","y","w","h"],ai;if(si.some(di=>oi[di]!==void 0&&oi[di]!==ri[di])&&(ai={},si.forEach(di=>{ai[di]=oi[di]!==void 0?oi[di]:ri[di],delete oi[di]})),!ai&&(oi.minW||oi.minH||oi.maxW||oi.maxH)&&(ai={}),oi.content!==void 0){let di=ni.querySelector(".grid-stack-item-content");di&&di.textContent!==oi.content&&(ri.content=oi.content,ii.renderCB(di,oi),(ci=ri.subGrid)!=null&&ci.el&&(di.appendChild(ri.subGrid.el),ri.subGrid.opts.styleInHead||ri.subGrid._updateStyles(!0))),delete oi.content}let li=!1,ui=!1;for(let di in oi)di[0]!=="_"&&ri[di]!==oi[di]&&(ri[di]=oi[di],li=!0,ui=ui||!this.opts.staticGrid&&(di==="noResize"||di==="noMove"||di==="locked"));if(bi.sanitizeMinMax(ri),ai){let di=ai.w!==void 0&&ai.w!==ri.w;this.moveNode(ri,ai),di&&ri.subGrid?ri.subGrid.onResize(this.hasAnimationCSS()?ri.w:void 0):this.resizeToContentCheck(di,ri),delete ri._orig}(ai||li)&&this._writeAttr(ni,ri),ui&&this._prepareDragDropByNode(ri)}),this}moveNode(ei,ti){let ni=ei._updating;ni||this.engine.cleanNodes().beginUpdate(ei),this.engine.moveNode(ei,ti),this._updateContainerHeight(),ni||(this._triggerChangeEvent(),this.engine.endUpdate())}resizeToContent(ei){var pi,yi;if(!ei||(ei.classList.remove("size-to-content-max"),!ei.clientHeight))return;let ti=ei.gridstackNode;if(!ti)return;let ni=ti.grid;if(!ni||ei.parentElement!==ni.el)return;let ri=ni.getCellHeight(!0);if(!ri)return;let oi=ti.h?ti.h*ri:ei.clientHeight,si;if(ti.resizeToContentParent&&(si=ei.querySelector(ti.resizeToContentParent)),si||(si=ei.querySelector(ii.resizeToContentParent)),!si)return;let ai=ei.clientHeight-si.clientHeight,li=ti.h?ti.h*ri-ai:si.clientHeight,ui;if(ti.subGrid){ui=ti.subGrid.getRow()*ti.subGrid.getCellHeight(!0);let gi=ti.subGrid.el.getBoundingClientRect(),vi=ti.subGrid.el.parentElement.getBoundingClientRect();ui+=gi.top-vi.top}else{if((yi=(pi=ti.subGridOpts)==null?void 0:pi.children)!=null&&yi.length)return;{let gi=si.firstElementChild;if(!gi){console.error(`Error: GridStack.resizeToContent() widget id:${ti.id} '${ii.resizeToContentParent}'.firstElementChild is null, make sure to have a div like container. Skipping sizing.`);return}ui=gi.getBoundingClientRect().height||li}}if(li===ui)return;oi+=ui-li;let ci=Math.ceil(oi/ri),di=Number.isInteger(ti.sizeToContent)?ti.sizeToContent:0;di&&ci>di&&(ci=di,ei.classList.add("size-to-content-max")),ti.minH&&citi.maxH&&(ci=ti.maxH),ci!==ti.h&&(ni._ignoreLayoutsNodeChange=!0,ni.moveNode(ti,{h:ci}),delete ni._ignoreLayoutsNodeChange)}resizeToContentCBCheck(ei){ii.resizeToContentCB?ii.resizeToContentCB(ei):this.resizeToContent(ei)}rotate(ei,ti){return ii.getElements(ei).forEach(ni=>{let ri=ni.gridstackNode;if(!bi.canBeRotated(ri))return;let oi={w:ri.h,h:ri.w,minH:ri.minW,minW:ri.minH,maxH:ri.maxW,maxW:ri.maxH};if(ti){let ai=ti.left>0?Math.floor(ti.left/this.cellWidth()):0,li=ti.top>0?Math.floor(ti.top/this.opts.cellHeight):0;oi.x=ri.x+ai-(ri.h-(li+1)),oi.y=ri.y+li-ai}Object.keys(oi).forEach(ai=>{oi[ai]===void 0&&delete oi[ai]});let si=ri._orig;this.update(ni,oi),ri._orig=si}),this}margin(ei){if(!(typeof ei=="string"&&ei.split(" ").length>1)){let ni=bi.parseHeight(ei);if(this.opts.marginUnit===ni.unit&&this.opts.margin===ni.h)return}return this.opts.margin=ei,this.opts.marginTop=this.opts.marginBottom=this.opts.marginLeft=this.opts.marginRight=void 0,this._initMargin(),this._updateStyles(!0),this}getMargin(){return this.opts.margin}willItFit(ei){if(arguments.length>1){console.warn("gridstack.ts: `willItFit(x,y,w,h,autoPosition)` is deprecated. Use `willItFit({x, y,...})`. It will be removed soon");let ti=arguments,ni=0,ri={x:ti[ni++],y:ti[ni++],w:ti[ni++],h:ti[ni++],autoPosition:ti[ni++]};return this.willItFit(ri)}return this.engine.willItFit(ei)}_triggerChangeEvent(){if(this.engine.batchMode)return this;let ei=this.engine.getDirtyNodes(!0);return ei&&ei.length&&(this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(ei),this._triggerEvent("change",ei)),this.engine.saveInitial(),this}_triggerAddEvent(){var ei;if(this.engine.batchMode)return this;if((ei=this.engine.addedNodes)!=null&&ei.length){this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(this.engine.addedNodes),this.engine.addedNodes.forEach(ni=>{delete ni._dirty});let ti=[...this.engine.addedNodes];this.engine.addedNodes=[],this._triggerEvent("added",ti)}return this}_triggerRemoveEvent(){var ei;if(this.engine.batchMode)return this;if((ei=this.engine.removedNodes)!=null&&ei.length){let ti=[...this.engine.removedNodes];this.engine.removedNodes=[],this._triggerEvent("removed",ti)}return this}_triggerEvent(ei,ti){let ni=ti?new CustomEvent(ei,{bubbles:!1,detail:ti}):new Event(ei);return this.el.dispatchEvent(ni),this}_removeStylesheet(){if(this._styles){let ei=this.opts.styleInHead?void 0:this.el.parentNode;bi.removeStylesheet(this._styleSheetClass,ei),delete this._styles}return this}_updateStyles(ei=!1,ti){if(ei&&this._removeStylesheet(),ti===void 0&&(ti=this.getRow()),this._updateContainerHeight(),this.opts.cellHeight===0)return this;let ni=this.opts.cellHeight,ri=this.opts.cellHeightUnit,oi=`.${this._styleSheetClass} > .${this.opts.itemClass}`;if(!this._styles){let si=this.opts.styleInHead?void 0:this.el.parentNode;if(this._styles=bi.createStylesheet(this._styleSheetClass,si,{nonce:this.opts.nonce}),!this._styles)return this;this._styles._max=0,bi.addCSSRule(this._styles,oi,`height: ${ni}${ri}`);let ai=this.opts.marginTop+this.opts.marginUnit,li=this.opts.marginBottom+this.opts.marginUnit,ui=this.opts.marginRight+this.opts.marginUnit,ci=this.opts.marginLeft+this.opts.marginUnit,di=`${oi} > .grid-stack-item-content`,pi=`.${this._styleSheetClass} > .grid-stack-placeholder > .placeholder-content`;bi.addCSSRule(this._styles,di,`top: ${ai}; right: ${ui}; bottom: ${li}; left: ${ci};`),bi.addCSSRule(this._styles,pi,`top: ${ai}; right: ${ui}; bottom: ${li}; left: ${ci};`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-n`,`top: ${ai};`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-s`,`bottom: ${li}`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-ne`,`right: ${ui}; top: ${ai}`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-e`,`right: ${ui}`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-se`,`right: ${ui}; bottom: ${li}`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-nw`,`left: ${ci}; top: ${ai}`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-w`,`left: ${ci}`),bi.addCSSRule(this._styles,`${oi} > .ui-resizable-sw`,`left: ${ci}; bottom: ${li}`)}if(ti=ti||this._styles._max,ti>this._styles._max){let si=ai=>ni*ai+ri;for(let ai=this._styles._max+1;ai<=ti;ai++)bi.addCSSRule(this._styles,`${oi}[gs-y="${ai}"]`,`top: ${si(ai)}`),bi.addCSSRule(this._styles,`${oi}[gs-h="${ai+1}"]`,`height: ${si(ai+1)}`);this._styles._max=ti}return this}_updateContainerHeight(){if(!this.engine||this.engine.batchMode)return this;let ei=this.parentGridNode,ti=this.getRow()+this._extraDragRow,ni=this.opts.cellHeight,ri=this.opts.cellHeightUnit;if(!ni)return this;if(!ei){let oi=bi.parseHeight(getComputedStyle(this.el).minHeight);if(oi.h>0&&oi.unit===ri){let si=Math.floor(oi.h/ni);ti1?ei.setAttribute("gs-w",String(ti.w)):ei.removeAttribute("gs-w"),ti.h>1?ei.setAttribute("gs-h",String(ti.h)):ei.removeAttribute("gs-h"),this}_writeAttr(ei,ti){if(!ti)return this;this._writePosAttr(ei,ti);let ni={noResize:"gs-no-resize",noMove:"gs-no-move",locked:"gs-locked",id:"gs-id",sizeToContent:"gs-size-to-content"};for(let ri in ni)ti[ri]?ei.setAttribute(ni[ri],String(ti[ri])):ei.removeAttribute(ni[ri]);return this}_readAttr(ei,ti=!0){let ni={};ni.x=bi.toNumber(ei.getAttribute("gs-x")),ni.y=bi.toNumber(ei.getAttribute("gs-y")),ni.w=bi.toNumber(ei.getAttribute("gs-w")),ni.h=bi.toNumber(ei.getAttribute("gs-h")),ni.autoPosition=bi.toBool(ei.getAttribute("gs-auto-position")),ni.noResize=bi.toBool(ei.getAttribute("gs-no-resize")),ni.noMove=bi.toBool(ei.getAttribute("gs-no-move")),ni.locked=bi.toBool(ei.getAttribute("gs-locked")),ni.sizeToContent=bi.toBool(ei.getAttribute("gs-size-to-content")),ni.id=ei.getAttribute("gs-id"),ni.maxW=bi.toNumber(ei.getAttribute("gs-max-w")),ni.minW=bi.toNumber(ei.getAttribute("gs-min-w")),ni.maxH=bi.toNumber(ei.getAttribute("gs-max-h")),ni.minH=bi.toNumber(ei.getAttribute("gs-min-h")),ti&&(ni.w===1&&ei.removeAttribute("gs-w"),ni.h===1&&ei.removeAttribute("gs-h"),ni.maxW&&ei.removeAttribute("gs-max-w"),ni.minW&&ei.removeAttribute("gs-min-w"),ni.maxH&&ei.removeAttribute("gs-max-h"),ni.minH&&ei.removeAttribute("gs-min-h"));for(let ri in ni){if(!ni.hasOwnProperty(ri))return;!ni[ri]&&ni[ri]!==0&&delete ni[ri]}return ni}_setStaticClass(){let ei=["grid-stack-static"];return this.opts.staticGrid?(this.el.classList.add(...ei),this.el.setAttribute("gs-static","true")):(this.el.classList.remove(...ei),this.el.removeAttribute("gs-static")),this}onResize(ei=(ti=>(ti=this.el)==null?void 0:ti.clientWidth)()){if(!ei||this.prevWidth===ei)return;this.prevWidth=ei,this.batchUpdate();let ni=!1;return this._autoColumn&&this.parentGridNode?this.opts.column!==this.parentGridNode.w&&(this.column(this.parentGridNode.w,this.opts.layout||"list"),ni=!0):ni=this.checkDynamicColumn(),this._isAutoCellHeight&&this.cellHeight(),this.engine.nodes.forEach(ri=>{ri.subGrid&&ri.subGrid.onResize()}),this._skipInitialResize||this.resizeToContentCheck(ni),delete this._skipInitialResize,this.batchUpdate(!1),this}resizeToContentCheck(ei=!1,ti=void 0){if(this.engine){if(ei&&this.hasAnimationCSS())return setTimeout(()=>this.resizeToContentCheck(!1,ti),this.animationDelay);if(ti)bi.shouldSizeToContent(ti)&&this.resizeToContentCBCheck(ti.el);else if(this.engine.nodes.some(ni=>bi.shouldSizeToContent(ni))){let ni=[...this.engine.nodes];this.batchUpdate(),ni.forEach(ri=>{bi.shouldSizeToContent(ri)&&this.resizeToContentCBCheck(ri.el)}),this.batchUpdate(!1)}this._gsEventHandler.resizecontent&&this._gsEventHandler.resizecontent(null,ti?[ti]:this.engine.nodes)}}_updateResizeEvent(ei=!1){let ti=!this.parentGridNode&&(this._isAutoCellHeight||this.opts.sizeToContent||this.opts.columnOpts||this.engine.nodes.find(ni=>ni.sizeToContent));return!ei&&ti&&!this.resizeObserver?(this._sizeThrottle=bi.throttle(()=>this.onResize(),this.opts.cellHeightThrottle),this.resizeObserver=new ResizeObserver(()=>this._sizeThrottle()),this.resizeObserver.observe(this.el),this._skipInitialResize=!0):(ei||!ti)&&this.resizeObserver&&(this.resizeObserver.disconnect(),delete this.resizeObserver,delete this._sizeThrottle),this}static getElement(ei=".grid-stack-item"){return bi.getElement(ei)}static getElements(ei=".grid-stack-item"){return bi.getElements(ei)}static getGridElement(ei){return ii.getElement(ei)}static getGridElements(ei){return bi.getElements(ei)}_initMargin(){let ei,ti=0,ni=[];return typeof this.opts.margin=="string"&&(ni=this.opts.margin.split(" ")),ni.length===2?(this.opts.marginTop=this.opts.marginBottom=ni[0],this.opts.marginLeft=this.opts.marginRight=ni[1]):ni.length===4?(this.opts.marginTop=ni[0],this.opts.marginRight=ni[1],this.opts.marginBottom=ni[2],this.opts.marginLeft=ni[3]):(ei=bi.parseHeight(this.opts.margin),this.opts.marginUnit=ei.unit,ti=this.opts.margin=ei.h),this.opts.marginTop===void 0?this.opts.marginTop=ti:(ei=bi.parseHeight(this.opts.marginTop),this.opts.marginTop=ei.h,delete this.opts.margin),this.opts.marginBottom===void 0?this.opts.marginBottom=ti:(ei=bi.parseHeight(this.opts.marginBottom),this.opts.marginBottom=ei.h,delete this.opts.margin),this.opts.marginRight===void 0?this.opts.marginRight=ti:(ei=bi.parseHeight(this.opts.marginRight),this.opts.marginRight=ei.h,delete this.opts.margin),this.opts.marginLeft===void 0?this.opts.marginLeft=ti:(ei=bi.parseHeight(this.opts.marginLeft),this.opts.marginLeft=ei.h,delete this.opts.margin),this.opts.marginUnit=ei.unit,this.opts.marginTop===this.opts.marginBottom&&this.opts.marginLeft===this.opts.marginRight&&this.opts.marginTop===this.opts.marginRight&&(this.opts.margin=this.opts.marginTop),this}static getDD(){return Bn}static setupDragIn(ei,ti,ni,ri=document){(ti==null?void 0:ti.pause)!==void 0&&(Bi.pauseDrag=ti.pause),ti=Di({appendTo:"body",helper:"clone"},ti||{}),(typeof ei=="string"?bi.getElements(ei,ri):ei).forEach((si,ai)=>{Bn.isDraggable(si)||Bn.dragIn(si,ti),ni!=null&&ni[ai]&&(si.gridstackNode=ni[ai])})}movable(ei,ti){return this.opts.staticGrid?this:(ii.getElements(ei).forEach(ni=>{let ri=ni.gridstackNode;ri&&(ti?delete ri.noMove:ri.noMove=!0,this._prepareDragDropByNode(ri))}),this)}resizable(ei,ti){return this.opts.staticGrid?this:(ii.getElements(ei).forEach(ni=>{let ri=ni.gridstackNode;ri&&(ti?delete ri.noResize:ri.noResize=!0,this._prepareDragDropByNode(ri))}),this)}disable(ei=!0){if(!this.opts.staticGrid)return this.enableMove(!1,ei),this.enableResize(!1,ei),this._triggerEvent("disable"),this}enable(ei=!0){if(!this.opts.staticGrid)return this.enableMove(!0,ei),this.enableResize(!0,ei),this._triggerEvent("enable"),this}enableMove(ei,ti=!0){return this.opts.staticGrid?this:(ei?delete this.opts.disableDrag:this.opts.disableDrag=!0,this.engine.nodes.forEach(ni=>{this._prepareDragDropByNode(ni),ni.subGrid&&ti&&ni.subGrid.enableMove(ei,ti)}),this)}enableResize(ei,ti=!0){return this.opts.staticGrid?this:(ei?delete this.opts.disableResize:this.opts.disableResize=!0,this.engine.nodes.forEach(ni=>{this._prepareDragDropByNode(ni),ni.subGrid&&ti&&ni.subGrid.enableResize(ei,ti)}),this)}cancelDrag(){var ti;let ei=(ti=this._placeholder)==null?void 0:ti.gridstackNode;ei&&(ei._isExternal?(ei._isAboutToRemove=!0,this.engine.removeNode(ei)):ei._isAboutToRemove&&ii._itemRemoving(ei.el,!1),this.engine.restoreInitial())}_removeDD(ei){return Bn.draggable(ei,"destroy").resizable(ei,"destroy"),ei.gridstackNode&&delete ei.gridstackNode._initDD,delete ei.ddElement,this}_setupAcceptWidget(){if(this.opts.staticGrid||!this.opts.acceptWidgets&&!this.opts.removable)return Bn.droppable(this.el,"destroy"),this;let ei,ti,ni=(ri,oi,si)=>{var pi;si=si||oi;let ai=si.gridstackNode;if(!ai)return;if(!((pi=ai.grid)!=null&&pi.el)){si.style.transform=`scale(${1/this.dragTransform.xScale},${1/this.dragTransform.yScale})`;let yi=si.getBoundingClientRect();si.style.left=yi.x+(this.dragTransform.xScale-1)*(ri.clientX-yi.x)/this.dragTransform.xScale+"px",si.style.top=yi.y+(this.dragTransform.yScale-1)*(ri.clientY-yi.y)/this.dragTransform.yScale+"px",si.style.transformOrigin="0px 0px"}let{top:li,left:ui}=si.getBoundingClientRect(),ci=this.el.getBoundingClientRect();ui-=ci.left,li-=ci.top;let di={position:{top:li*this.dragTransform.xScale,left:ui*this.dragTransform.yScale}};if(ai._temporaryRemoved){if(ai.x=Math.max(0,Math.round(ui/ti)),ai.y=Math.max(0,Math.round(li/ei)),delete ai.autoPosition,this.engine.nodeBoundFix(ai),!this.engine.willItFit(ai)){if(ai.autoPosition=!0,!this.engine.willItFit(ai)){Bn.off(oi,"drag");return}ai._willFitPos&&(bi.copyPos(ai,ai._willFitPos),delete ai._willFitPos)}this._onStartMoving(si,ri,di,ai,ti,ei)}else this._dragOrResize(si,ri,di,ai,ti,ei)};return Bn.droppable(this.el,{accept:ri=>{let oi=ri.gridstackNode||this._readAttr(ri,!1);if((oi==null?void 0:oi.grid)===this)return!0;if(!this.opts.acceptWidgets)return!1;let si=!0;if(typeof this.opts.acceptWidgets=="function")si=this.opts.acceptWidgets(ri);else{let ai=this.opts.acceptWidgets===!0?".grid-stack-item":this.opts.acceptWidgets;si=ri.matches(ai)}if(si&&oi&&this.opts.maxRow){let ai={w:oi.w,h:oi.h,minW:oi.minW,minH:oi.minH};si=this.engine.willItFit(ai)}return si}}).on(this.el,"dropover",(ri,oi,si)=>{let ai=(si==null?void 0:si.gridstackNode)||oi.gridstackNode;if((ai==null?void 0:ai.grid)===this&&!ai._temporaryRemoved)return!1;if(ai!=null&&ai.grid&&ai.grid!==this&&!ai._temporaryRemoved&&ai.grid._leave(oi,si),si=si||oi,ti=this.cellWidth(),ei=this.getCellHeight(!0),!ai){let ci=si.getAttribute("data-gs-widget")||si.getAttribute("gridstacknode");if(ci){try{ai=JSON.parse(ci)}catch(di){console.error("Gridstack dropover: Bad JSON format: ",ci)}si.removeAttribute("data-gs-widget"),si.removeAttribute("gridstacknode")}ai||(ai=this._readAttr(si))}ai.grid||(ai.el||(ai=Di({},ai)),ai._isExternal=!0,si.gridstackNode=ai);let li=ai.w||Math.round(si.offsetWidth/ti)||1,ui=ai.h||Math.round(si.offsetHeight/ei)||1;return ai.grid&&ai.grid!==this?(oi._gridstackNodeOrig||(oi._gridstackNodeOrig=ai),oi.gridstackNode=ai=sn(Di({},ai),{w:li,h:ui,grid:this}),delete ai.x,delete ai.y,this.engine.cleanupNode(ai).nodeBoundFix(ai),ai._initDD=ai._isExternal=ai._temporaryRemoved=!0):(ai.w=li,ai.h=ui,ai._temporaryRemoved=!0),ii._itemRemoving(ai.el,!1),Bn.on(oi,"drag",ni),ni(ri,oi,si),!1}).on(this.el,"dropout",(ri,oi,si)=>{let ai=(si==null?void 0:si.gridstackNode)||oi.gridstackNode;return ai&&(!ai.grid||ai.grid===this)&&(this._leave(oi,si),this._isTemp&&this.removeAsSubGrid(ai)),!1}).on(this.el,"drop",(ri,oi,si)=>{var yi,gi,vi;let ai=(si==null?void 0:si.gridstackNode)||oi.gridstackNode;if((ai==null?void 0:ai.grid)===this&&!ai._isExternal)return!1;let li=!!this.placeholder.parentElement,ui=oi!==si;this.placeholder.remove(),delete this.placeholder.gridstackNode;let ci=li&&this.opts.animate;ci&&this.setAnimation(!1);let di=oi._gridstackNodeOrig;if(delete oi._gridstackNodeOrig,li&&(di!=null&&di.grid)&&di.grid!==this){let Ei=di.grid;Ei.engine.removeNodeFromLayoutCache(di),Ei.engine.removedNodes.push(di),Ei._triggerRemoveEvent()._triggerChangeEvent(),Ei.parentGridNode&&!Ei.engine.nodes.length&&Ei.opts.subGridDynamic&&Ei.removeAsSubGrid()}if(!ai||(li&&(this.engine.cleanupNode(ai),ai.grid=this),(yi=ai.grid)==null||delete yi._isTemp,Bn.off(oi,"drag"),si!==oi?(si.remove(),oi=si):oi.remove(),this._removeDD(oi),!li))return!1;let pi=(vi=(gi=ai.subGrid)==null?void 0:gi.el)==null?void 0:vi.gridstack;return bi.copyPos(ai,this._readAttr(this.placeholder)),bi.removePositioningStyles(oi),ui&&(ai.content||ai.subGridOpts||ii.addRemoveCB)?(delete ai.el,oi=this.addWidget(ai)):(this._prepareElement(oi,!0,ai),this.el.appendChild(oi),this.resizeToContentCheck(!1,ai),pi&&(pi.parentGridNode=ai,pi.opts.styleInHead||pi._updateStyles(!0)),this._updateContainerHeight()),this.engine.addedNodes.push(ai),this._triggerAddEvent(),this._triggerChangeEvent(),this.engine.endUpdate(),this._gsEventHandler.dropped&&this._gsEventHandler.dropped(sn(Di({},ri),{type:"dropped"}),di&&di.grid?di:void 0,ai),ci&&this.setAnimation(this.opts.animate,!0),!1}),this}static _itemRemoving(ei,ti){if(!ei)return;let ni=ei?ei.gridstackNode:void 0;!(ni!=null&&ni.grid)||ei.classList.contains(ni.grid.opts.removableOptions.decline)||(ti?ni._isAboutToRemove=!0:delete ni._isAboutToRemove,ti?ei.classList.add("grid-stack-item-removing"):ei.classList.remove("grid-stack-item-removing"))}_setupRemoveDrop(){if(typeof this.opts.removable!="string")return this;let ei=document.querySelector(this.opts.removable);return ei?(!this.opts.staticGrid&&!Bn.isDroppable(ei)&&Bn.droppable(ei,this.opts.removableOptions).on(ei,"dropover",(ti,ni)=>ii._itemRemoving(ni,!0)).on(ei,"dropout",(ti,ni)=>ii._itemRemoving(ni,!1)),this):this}_prepareDragDropByNode(ei){let ti=ei.el,ni=ei.noMove||this.opts.disableDrag,ri=ei.noResize||this.opts.disableResize;if(this.opts.staticGrid||ni&&ri)return ei._initDD&&(this._removeDD(ti),delete ei._initDD),ti.classList.add("ui-draggable-disabled","ui-resizable-disabled"),this;if(!ei._initDD){let oi,si,ai=(ci,di)=>{this._gsEventHandler[ci.type]&&this._gsEventHandler[ci.type](ci,ci.target),oi=this.cellWidth(),si=this.getCellHeight(!0),this._onStartMoving(ti,ci,di,ei,oi,si)},li=(ci,di)=>{this._dragOrResize(ti,ci,di,ei,oi,si)},ui=ci=>{this.placeholder.remove(),delete this.placeholder.gridstackNode,delete ei._moving,delete ei._event,delete ei._lastTried;let di=ei.w!==ei._orig.w,pi=ci.target;if(!(!pi.gridstackNode||pi.gridstackNode.grid!==this)){if(ei.el=pi,ei._isAboutToRemove){let yi=ti.gridstackNode.grid;yi._gsEventHandler[ci.type]&&yi._gsEventHandler[ci.type](ci,pi),yi.engine.nodes.push(ei),yi.removeWidget(ti,!0,!0)}else bi.removePositioningStyles(pi),ei._temporaryRemoved?(bi.copyPos(ei,ei._orig),this._writePosAttr(pi,ei),this.engine.addNode(ei)):this._writePosAttr(pi,ei),this._gsEventHandler[ci.type]&&this._gsEventHandler[ci.type](ci,pi);this._extraDragRow=0,this._updateContainerHeight(),this._triggerChangeEvent(),this.engine.endUpdate(),ci.type==="resizestop"&&(Number.isInteger(ei.sizeToContent)&&(ei.sizeToContent=ei.h),this.resizeToContentCheck(di,ei))}};Bn.draggable(ti,{start:ai,stop:ui,drag:li}).resizable(ti,{start:ai,stop:ui,resize:li}),ei._initDD=!0}return Bn.draggable(ti,ni?"disable":"enable").resizable(ti,ri?"disable":"enable"),this}_onStartMoving(ei,ti,ni,ri,oi,si){var ai;if(this.engine.cleanNodes().beginUpdate(ri),this._writePosAttr(this.placeholder,ri),this.el.appendChild(this.placeholder),this.placeholder.gridstackNode=ri,(ai=ri.grid)!=null&&ai.el)this.dragTransform=bi.getValuesFromTransformedElement(ei);else if(this.placeholder&&this.placeholder.closest(".grid-stack")){let li=this.placeholder.closest(".grid-stack");this.dragTransform=bi.getValuesFromTransformedElement(li)}else this.dragTransform={xScale:1,xOffset:0,yScale:1,yOffset:0};if(ri.el=this.placeholder,ri._lastUiPosition=ni.position,ri._prevYPix=ni.position.top,ri._moving=ti.type==="dragstart",delete ri._lastTried,ti.type==="dropover"&&ri._temporaryRemoved&&(this.engine.addNode(ri),ri._moving=!0),this.engine.cacheRects(oi,si,this.opts.marginTop,this.opts.marginRight,this.opts.marginBottom,this.opts.marginLeft),ti.type==="resizestart"){let li=this.getColumn()-ri.x,ui=(this.opts.maxRow||Number.MAX_SAFE_INTEGER)-ri.y;Bn.resizable(ei,"option","minWidth",oi*Math.min(ri.minW||1,li)).resizable(ei,"option","minHeight",si*Math.min(ri.minH||1,ui)).resizable(ei,"option","maxWidth",oi*Math.min(ri.maxW||Number.MAX_SAFE_INTEGER,li)).resizable(ei,"option","maxWidthMoveLeft",oi*Math.min(ri.maxW||Number.MAX_SAFE_INTEGER,ri.x+ri.w)).resizable(ei,"option","maxHeight",si*Math.min(ri.maxH||Number.MAX_SAFE_INTEGER,ui)).resizable(ei,"option","maxHeightMoveUp",si*Math.min(ri.maxH||Number.MAX_SAFE_INTEGER,ri.y+ri.h))}}_dragOrResize(ei,ti,ni,ri,oi,si){let ai=Di({},ri._orig),li,ui=this.opts.marginLeft,ci=this.opts.marginRight,di=this.opts.marginTop,pi=this.opts.marginBottom,yi=Math.round(si*.1),gi=Math.round(oi*.1);if(ui=Math.min(ui,gi),ci=Math.min(ci,gi),di=Math.min(di,yi),pi=Math.min(pi,yi),ti.type==="drag"){if(ri._temporaryRemoved)return;let Ei=ni.position.top-ri._prevYPix;ri._prevYPix=ni.position.top,this.opts.draggable.scroll!==!1&&bi.updateScrollPosition(ei,ni.position,Ei);let Ci=ni.position.left+(ni.position.left>ri._lastUiPosition.left?-ci:ui),xi=ni.position.top+(ni.position.top>ri._lastUiPosition.top?-pi:di);ai.x=Math.round(Ci/oi),ai.y=Math.round(xi/si);let Li=this._extraDragRow;if(this.engine.collide(ri,ai)){let Oi=this.getRow(),zi=Math.max(0,ai.y+ri.h-Oi);this.opts.maxRow&&Oi+zi>this.opts.maxRow&&(zi=Math.max(0,this.opts.maxRow-Oi)),this._extraDragRow=zi}else this._extraDragRow=0;if(this._extraDragRow!==Li&&this._updateContainerHeight(),ri.x===ai.x&&ri.y===ai.y)return}else if(ti.type==="resize"){if(ai.x<0||(bi.updateScrollResize(ti,ei,si),ai.w=Math.round((ni.size.width-ui)/oi),ai.h=Math.round((ni.size.height-di)/si),ri.w===ai.w&&ri.h===ai.h)||ri._lastTried&&ri._lastTried.w===ai.w&&ri._lastTried.h===ai.h)return;let Ei=ni.position.left+ui,Ci=ni.position.top+di;ai.x=Math.round(Ei/oi),ai.y=Math.round(Ci/si),li=!0}ri._event=ti,ri._lastTried=ai;let vi={x:ni.position.left+ui,y:ni.position.top+di,w:(ni.size?ni.size.width:ri.w*oi)-ui-ci,h:(ni.size?ni.size.height:ri.h*si)-di-pi};if(this.engine.moveNodeCheck(ri,sn(Di({},ai),{cellWidth:oi,cellHeight:si,rect:vi,resizing:li}))){ri._lastUiPosition=ni.position,this.engine.cacheRects(oi,si,di,ci,pi,ui),delete ri._skipDown,li&&ri.subGrid&&ri.subGrid.onResize(),this._extraDragRow=0,this._updateContainerHeight();let Ei=ti.target;this._writePosAttr(Ei,ri),this._gsEventHandler[ti.type]&&this._gsEventHandler[ti.type](ti,Ei)}}_leave(ei,ti){ti=ti||ei;let ni=ti.gridstackNode;ni&&(ti.style.transform=ti.style.transformOrigin=null,Bn.off(ei,"drag"),!ni._temporaryRemoved&&(ni._temporaryRemoved=!0,this.engine.removeNode(ni),ni.el=ni._isExternal&&ti?ti:ei,ni._isExternal&&this.engine.cleanupNode(ni),this.opts.removable===!0&&ii._itemRemoving(ei,!0),ei._gridstackNodeOrig?(ei.gridstackNode=ei._gridstackNodeOrig,delete ei._gridstackNodeOrig):ni._isExternal&&this.engine.restoreInitial()))}commit(){return Sh(this,this.batchUpdate(!1),"commit","batchUpdate","5.2"),this}};Jr.renderCB=(ii,ei)=>{ii&&(ei!=null&&ei.content)&&(ii.textContent=ei.content)};Jr.resizeToContentParent=".grid-stack-item-content";Jr.Utils=bi;Jr.Engine=as;Jr.GDRev="11.2.0";function q_(){let ii=document.getElementById("dashboard");ii&&ii.gridstack.disable()}function W_(){let ii=document.getElementById("dashboard");ii&&ii.gridstack.enable()}function U_(ii,ei){return co(this,null,function*(){return yield Ls(ii,{layout:ei})})}function Ah(){if(document.getElementById("dashboard")==null)return;let ei=Jr.init({cellHeight:100,disableDrag:!0,disableResize:!0,draggable:{handle:".grid-stack-item-content .card-header",appendTo:"body",scroll:!0}}),ti=document.getElementById("lock_dashboard");ti&&ti.addEventListener("click",()=>{q_()});let ni=document.getElementById("unlock_dashboard");ni&&ni.addEventListener("click",()=>{W_()});let ri=document.getElementById("save_dashboard");ri!==null&&ri.addEventListener("click",()=>{let oi=ri.getAttribute("data-url");if(oi==null)return;let si=ei.save(!1);U_(oi,si).then(ai=>{rs(ai)?Po("danger","Error Saving Dashboard Config",ai.error).show():location.reload()})})}function Dh(ii,ei){switch(ii){case"images-and-labels":{tu("image.device-image",ei),tu("text.device-image-label",ei);break}case"images-only":{tu("image.device-image",ei),iu("text.device-image-label",ei);break}case"labels-only":{iu("image.device-image",ei),iu("text.device-image-label",ei);break}}}function tu(ii,ei){var ni,ri;let ti=(ri=(ni=ei.contentDocument)==null?void 0:ni.querySelectorAll(ii))!=null?ri:[];for(let oi of ti)oi.classList.remove("hidden")}function iu(ii,ei){var ni,ri;let ti=(ri=(ni=ei.contentDocument)==null?void 0:ni.querySelectorAll(ii))!=null?ri:[];for(let oi of ti)oi.classList.add("hidden")}function Y_(ii,ei){ei.set("view",ii);for(let ti of Hi(".rack_elevation"))Dh(ii,ti)}function Oh(){let ii=qc.get("view");for(let ei of Hi("select.rack-view"))ei.selectedIndex=[...ei.options].findIndex(ti=>ti.value==ii),ei.addEventListener("change",ti=>{Y_(ti.currentTarget.value,qc)},!1);for(let ei of Hi(".rack_elevation"))ei.addEventListener("load",()=>{Dh(ii,ei)})}function G_(ii){let ei=document.getElementById("selector_results");if(ei==null)return;let ti=ei.getAttribute("data-selector-target");if(ti==null)return;let ni=document.getElementById(ti);if(ni==null)return;let ri=ii.getAttribute("data-label"),oi=ii.getAttribute("data-value");ni.tomselect.addOption({id:oi,display:ri}),ni.tomselect.addItem(oi)}function Lh(){for(let ii of Hi("#selector_results a"))ii.addEventListener("click",()=>G_(ii))}function K_(){let ii=document.getElementById("quick-add-object");if(ii==null)return;let ei=ii.getAttribute("data-object-id");if(ei==null)return;let ti=ii.getAttribute("data-object-repr");if(ti==null)return;let ni=ii.getAttribute("data-target-id");if(ni==null)return;let ri=document.getElementById(ni);if(ri==null)return;ri.tomselect.addOption({id:ei,display:ti}),ri.tomselect.addItem(ei);let oi=document.getElementById("htmx-modal");if(oi){let si=io.getInstance(oi);si&&si.hide()}}function Mh(){let ii=document.getElementById("htmx-modal-content");ii&&ii.addEventListener("htmx:afterSwap",()=>K_())}function Q_(){bl(),El(),yl(),Lh(),Mh(),hl(),_l()}function kh(){document.addEventListener("htmx:afterSettle",Q_)}function X_(ii){let ei=ii.currentTarget,ti=ei.baseURI.split("?")[0],ni="?",ri=Array.from(ei.options).filter(oi=>oi.selected).map(oi=>`filter_id=${oi.value}`).join("&");ti+=`${ni}${ri}`,document.location.href=ti}function Nh(){let ii=document.getElementById("results");if(pn(ii)){let ei=document.getElementById("id_filter_id");pn(ei)&&ei.addEventListener("change",X_)}}function Rh(){for(let ii of[hl,dh,_l,Ef,Tf,yl,bh,bl,El,Eh,xh,Th,Ah,Oh,kh,Nh])ii()}function J_(){let ii=document.forms;for(let ti of ii)ti.method.toUpperCase()=="GET"&&ti.addEventListener("formdata",function(ni){let ri=ni.formData;for(let[oi,si]of Array.from(ri.entries()))si===""&&ri.delete(oi)});let ei=document.querySelector(".content-container");ei!==null&&ei.focus()}window.addEventListener("load",J_);document.readyState!=="loading"?Rh():document.addEventListener("DOMContentLoaded",Rh);})(); /*! Bundled license information: clipboard/dist/clipboard.js: @@ -26,7 +26,7 @@ bootstrap/dist/js/bootstrap.esm.js: gridstack/dist/gridstack.js: (*! - * GridStack 11.1.2 + * GridStack 11.2.0 * https://gridstackjs.com/ * * Copyright (c) 2021-2024 Alain Dumesny diff --git a/netbox/project-static/dist/netbox.js.map b/netbox/project-static/dist/netbox.js.map index bfe749fd7..d94269b5d 100644 --- a/netbox/project-static/dist/netbox.js.map +++ b/netbox/project-static/dist/netbox.js.map @@ -1,6 +1,6 @@ { "version": 3, "sources": ["../node_modules/htmx.org/dist/htmx.min.js", "../node_modules/clipboard/dist/clipboard.js", "../node_modules/@popperjs/core/lib/index.js", "../node_modules/@popperjs/core/lib/enums.js", "../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js", "../node_modules/@popperjs/core/lib/dom-utils/getWindow.js", "../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js", "../node_modules/@popperjs/core/lib/modifiers/applyStyles.js", "../node_modules/@popperjs/core/lib/utils/getBasePlacement.js", "../node_modules/@popperjs/core/lib/utils/math.js", "../node_modules/@popperjs/core/lib/utils/userAgent.js", "../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js", "../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js", "../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js", "../node_modules/@popperjs/core/lib/dom-utils/contains.js", "../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js", "../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js", "../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js", "../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js", "../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js", "../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js", "../node_modules/@popperjs/core/lib/utils/within.js", "../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js", "../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js", "../node_modules/@popperjs/core/lib/utils/expandToHashMap.js", "../node_modules/@popperjs/core/lib/modifiers/arrow.js", "../node_modules/@popperjs/core/lib/utils/getVariation.js", "../node_modules/@popperjs/core/lib/modifiers/computeStyles.js", "../node_modules/@popperjs/core/lib/modifiers/eventListeners.js", "../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js", "../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js", "../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js", "../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js", "../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js", "../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js", "../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js", "../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js", "../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js", "../node_modules/@popperjs/core/lib/utils/rectToClientRect.js", "../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js", "../node_modules/@popperjs/core/lib/utils/computeOffsets.js", "../node_modules/@popperjs/core/lib/utils/detectOverflow.js", "../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js", "../node_modules/@popperjs/core/lib/modifiers/flip.js", "../node_modules/@popperjs/core/lib/modifiers/hide.js", "../node_modules/@popperjs/core/lib/modifiers/offset.js", "../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js", "../node_modules/@popperjs/core/lib/utils/getAltAxis.js", "../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js", "../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js", "../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js", "../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js", "../node_modules/@popperjs/core/lib/utils/orderModifiers.js", "../node_modules/@popperjs/core/lib/utils/debounce.js", "../node_modules/@popperjs/core/lib/utils/mergeByName.js", "../node_modules/@popperjs/core/lib/createPopper.js", "../node_modules/@popperjs/core/lib/popper-lite.js", "../node_modules/@popperjs/core/lib/popper.js", "../node_modules/bootstrap/js/src/dom/data.js", "../node_modules/bootstrap/js/src/util/index.js", "../node_modules/bootstrap/js/src/dom/event-handler.js", "../node_modules/bootstrap/js/src/dom/manipulator.js", "../node_modules/bootstrap/js/src/util/config.js", "../node_modules/bootstrap/js/src/base-component.js", "../node_modules/bootstrap/js/src/dom/selector-engine.js", "../node_modules/bootstrap/js/src/util/component-functions.js", "../node_modules/bootstrap/js/src/alert.js", "../node_modules/bootstrap/js/src/button.js", "../node_modules/bootstrap/js/src/util/swipe.js", "../node_modules/bootstrap/js/src/carousel.js", "../node_modules/bootstrap/js/src/collapse.js", "../node_modules/bootstrap/js/src/dropdown.js", "../node_modules/bootstrap/js/src/util/backdrop.js", "../node_modules/bootstrap/js/src/util/focustrap.js", "../node_modules/bootstrap/js/src/util/scrollbar.js", "../node_modules/bootstrap/js/src/modal.js", "../node_modules/bootstrap/js/src/offcanvas.js", "../node_modules/bootstrap/js/src/util/sanitizer.js", "../node_modules/bootstrap/js/src/util/template-factory.js", "../node_modules/bootstrap/js/src/tooltip.js", "../node_modules/bootstrap/js/src/popover.js", "../node_modules/bootstrap/js/src/scrollspy.js", "../node_modules/bootstrap/js/src/tab.js", "../node_modules/bootstrap/js/src/toast.js", "../src/index.ts", "../node_modules/tom-select/src/contrib/microevent.ts", "../node_modules/tom-select/src/contrib/microplugin.ts", "../node_modules/@orchidjs/unicode-variants/lib/regex.ts", "../node_modules/@orchidjs/unicode-variants/lib/strings.ts", "../node_modules/@orchidjs/unicode-variants/lib/index.ts", "../node_modules/@orchidjs/sifter/lib/utils.ts", "../node_modules/@orchidjs/sifter/lib/sifter.ts", "../node_modules/tom-select/src/utils.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/tom-select/src/contrib/highlight.ts", "../node_modules/tom-select/src/constants.ts", "../node_modules/tom-select/src/defaults.ts", "../node_modules/tom-select/src/getSettings.ts", "../node_modules/tom-select/src/tom-select.ts", "../node_modules/tom-select/src/utils.ts", "../node_modules/tom-select/src/plugins/change_listener/plugin.ts", "../node_modules/tom-select/src/utils.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/tom-select/src/plugins/checkbox_options/plugin.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/tom-select/src/plugins/clear_button/plugin.ts", "../node_modules/tom-select/src/utils.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/tom-select/src/plugins/drag_drop/plugin.ts", "../node_modules/tom-select/src/utils.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/tom-select/src/plugins/dropdown_header/plugin.ts", "../node_modules/tom-select/src/utils.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/tom-select/src/plugins/caret_position/plugin.ts", "../node_modules/tom-select/src/constants.ts", "../node_modules/tom-select/src/utils.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/tom-select/src/plugins/dropdown_input/plugin.ts", "../node_modules/tom-select/src/utils.ts", "../node_modules/tom-select/src/plugins/input_autogrow/plugin.ts", "../node_modules/tom-select/src/plugins/no_backspace_delete/plugin.ts", "../node_modules/tom-select/src/plugins/no_active_items/plugin.ts", "../node_modules/tom-select/src/constants.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/tom-select/src/plugins/optgroup_columns/plugin.ts", "../node_modules/tom-select/src/utils.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/tom-select/src/plugins/remove_button/plugin.ts", "../node_modules/tom-select/src/plugins/restore_on_backspace/plugin.ts", "../node_modules/tom-select/src/utils.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/tom-select/src/plugins/virtual_scroll/plugin.ts", "../node_modules/tom-select/src/tom-select.complete.ts", "../src/util.ts", "../src/forms/elements.ts", "../src/forms/speedSelector.ts", "../src/forms/index.ts", "../src/bs.ts", "../src/search.ts", "../src/select/config.ts", "../src/select/static.ts", "../node_modules/tom-select/src/utils.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/query-string/base.js", "../node_modules/decode-uri-component/index.js", "../node_modules/filter-obj/index.js", "../node_modules/split-on-first/index.js", "../node_modules/query-string/index.js", "../src/select/types.ts", "../src/select/classes/dynamicParamsMap.ts", "../src/select/classes/dynamicTomSelect.ts", "../src/select/dynamic.ts", "../src/select/index.ts", "../src/buttons/connectionToggle.ts", "../src/state/index.ts", "../src/stores/objectDepth.ts", "../src/stores/rackImages.ts", "../src/stores/previousPkCheck.ts", "../src/stores/secret.ts", "../src/buttons/depthToggle.ts", "../src/buttons/moveOptions.ts", "../src/buttons/reslug.ts", "../src/buttons/selectAll.ts", "../src/buttons/floatBulk.ts", "../src/buttons/selectMultiple.ts", "../src/buttons/markdownPreview.ts", "../src/buttons/secretToggle.ts", "../src/buttons/index.ts", "../src/colorMode.ts", "../src/messages.ts", "../src/clipboard.ts", "../node_modules/flatpickr/dist/esm/types/options.js", "../node_modules/flatpickr/dist/esm/l10n/default.js", "../node_modules/flatpickr/dist/esm/utils/index.js", "../node_modules/flatpickr/dist/esm/utils/dom.js", "../node_modules/flatpickr/dist/esm/utils/formatting.js", "../node_modules/flatpickr/dist/esm/utils/dates.js", "../node_modules/flatpickr/dist/esm/utils/polyfills.js", "../node_modules/flatpickr/dist/esm/index.js", "../src/dateSelector.ts", "../src/tableConfig.ts", "../src/tables/interfaceTable.ts", "../src/sidenav.ts", "../node_modules/gridstack/src/utils.ts", "../node_modules/gridstack/src/gridstack-engine.ts", "../node_modules/gridstack/src/types.ts", "../node_modules/gridstack/src/dd-manager.ts", "../node_modules/gridstack/src/dd-touch.ts", "../node_modules/gridstack/src/dd-resizable-handle.ts", "../node_modules/gridstack/src/dd-base-impl.ts", "../node_modules/gridstack/src/dd-resizable.ts", "../node_modules/gridstack/src/dd-draggable.ts", "../node_modules/gridstack/src/dd-droppable.ts", "../node_modules/gridstack/src/dd-element.ts", "../node_modules/gridstack/src/dd-gridstack.ts", "../node_modules/gridstack/src/gridstack.ts", "../src/dashboard.ts", "../src/racks.ts", "../src/objectSelector.ts", "../src/quickAdd.ts", "../src/htmx.ts", "../src/forms/savedFiltersSelect.ts", "../src/netbox.ts"], - "mappings": "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", - "names": ["require_htmx_min", "__commonJSMin", "e", "t", "r", "n", "i", "a", "o", "s", "l", "u", "f", "c", "h", "v", "M", "X", "d", "D", "U", "g", "p", "m", "x", "B", "F", "V", "y", "b", "w", "j", "S", "E", "_", "C", "R", "z", "$", "T", "O", "W", "q", "H", "G", "J", "L", "A", "Z", "N", "K", "I", "k", "P", "Y", "require_clipboard", "__commonJSMin", "exports", "module", "root", "factory", "__webpack_modules__", "__unused_webpack_module", "__webpack_exports__", "__webpack_require__", "clipboard", "tiny_emitter", "tiny_emitter_default", "listen", "listen_default", "src_select", "select_default", "command", "type", "err", "ClipboardActionCut", "target", "selectedText", "actions_cut", "createFakeElement", "value", "isRTL", "fakeElement", "yPosition", "fakeCopyAction", "options", "ClipboardActionCopy", "actions_copy", "_typeof", "obj", "ClipboardActionDefault", "_options$action", "action", "container", "text", "actions_default", "clipboard_typeof", "_classCallCheck", "instance", "Constructor", "_defineProperties", "props", "i", "descriptor", "_createClass", "protoProps", "staticProps", "_inherits", "subClass", "superClass", "_setPrototypeOf", "o", "p", "_createSuper", "Derived", "hasNativeReflectConstruct", "_isNativeReflectConstruct", "Super", "_getPrototypeOf", "result", "NewTarget", "_possibleConstructorReturn", "self", "call", "_assertThisInitialized", "e", "getAttributeValue", "suffix", "element", "attribute", "Clipboard", "_Emitter", "_super", "trigger", "_this", "_this2", "selector", "actions", "support", "DOCUMENT_NODE_TYPE", "proto", "closest", "__unused_webpack_exports", "_delegate", "callback", "useCapture", "listenerFn", "listener", "delegate", "elements", "is", "listenNode", "listenNodeList", "listenSelector", "node", "nodeList", "select", "isReadOnly", "selection", "range", "E", "name", "ctx", "data", "evtArr", "len", "evts", "liveEvents", "__webpack_module_cache__", "moduleId", "getter", "definition", "key", "prop", "lib_exports", "__export", "afterMain", "afterRead", "afterWrite", "applyStyles_default", "arrow_default", "auto", "basePlacements", "beforeMain", "beforeRead", "beforeWrite", "bottom", "clippingParents", "computeStyles_default", "createPopper", "detectOverflow", "end", "eventListeners_default", "flip_default", "hide_default", "left", "main", "modifierPhases", "offset_default", "placements", "popper", "popperGenerator", "popperOffsets_default", "preventOverflow_default", "read", "reference", "right", "start", "top", "variationPlacements", "viewport", "write", "top", "bottom", "right", "left", "auto", "basePlacements", "start", "end", "clippingParents", "viewport", "popper", "reference", "variationPlacements", "acc", "placement", "placements", "beforeRead", "read", "afterRead", "beforeMain", "main", "afterMain", "beforeWrite", "write", "afterWrite", "modifierPhases", "getNodeName", "element", "getWindow", "node", "ownerDocument", "isElement", "node", "OwnElement", "getWindow", "isHTMLElement", "isShadowRoot", "applyStyles", "_ref", "state", "name", "style", "attributes", "element", "isHTMLElement", "getNodeName", "value", "effect", "_ref2", "initialStyles", "styleProperties", "property", "attribute", "applyStyles_default", "getBasePlacement", "placement", "max", "min", "round", "getUAString", "uaData", "item", "isLayoutViewport", "getUAString", "getBoundingClientRect", "element", "includeScale", "isFixedStrategy", "clientRect", "scaleX", "scaleY", "isHTMLElement", "round", "_ref", "isElement", "getWindow", "visualViewport", "addVisualOffsets", "isLayoutViewport", "x", "y", "width", "height", "getLayoutRect", "element", "clientRect", "getBoundingClientRect", "width", "height", "contains", "parent", "child", "rootNode", "isShadowRoot", "next", "getComputedStyle", "element", "getWindow", "isTableElement", "element", "getNodeName", "getDocumentElement", "element", "isElement", "getParentNode", "element", "getNodeName", "isShadowRoot", "getDocumentElement", "getTrueOffsetParent", "element", "isHTMLElement", "getComputedStyle", "getContainingBlock", "isFirefox", "getUAString", "isIE", "elementCss", "currentNode", "getParentNode", "isShadowRoot", "getNodeName", "css", "getOffsetParent", "window", "getWindow", "offsetParent", "isTableElement", "getMainAxisFromPlacement", "placement", "within", "min", "value", "max", "withinMaxClamp", "v", "getFreshSideObject", "mergePaddingObject", "paddingObject", "getFreshSideObject", "expandToHashMap", "value", "keys", "hashMap", "key", "toPaddingObject", "padding", "state", "mergePaddingObject", "expandToHashMap", "basePlacements", "arrow", "_ref", "_state$modifiersData$", "name", "options", "arrowElement", "popperOffsets", "basePlacement", "getBasePlacement", "axis", "getMainAxisFromPlacement", "isVertical", "left", "right", "len", "paddingObject", "arrowRect", "getLayoutRect", "minProp", "top", "maxProp", "bottom", "endDiff", "startDiff", "arrowOffsetParent", "getOffsetParent", "clientSize", "centerToReference", "min", "max", "center", "offset", "within", "axisProp", "effect", "_ref2", "_options$element", "contains", "arrow_default", "getVariation", "placement", "unsetSides", "roundOffsetsByDPR", "_ref", "win", "x", "y", "dpr", "round", "mapToStyles", "_ref2", "_Object$assign2", "popper", "popperRect", "placement", "variation", "offsets", "position", "gpuAcceleration", "adaptive", "roundOffsets", "isFixed", "_offsets$x", "_offsets$y", "_ref3", "hasX", "hasY", "sideX", "left", "sideY", "top", "offsetParent", "getOffsetParent", "heightProp", "widthProp", "getWindow", "getDocumentElement", "getComputedStyle", "right", "end", "bottom", "offsetY", "offsetX", "commonStyles", "_ref4", "_Object$assign", "computeStyles", "_ref5", "state", "options", "_options$gpuAccelerat", "_options$adaptive", "_options$roundOffsets", "getBasePlacement", "getVariation", "computeStyles_default", "passive", "effect", "_ref", "state", "instance", "options", "_options$scroll", "scroll", "_options$resize", "resize", "window", "getWindow", "scrollParents", "scrollParent", "eventListeners_default", "hash", "getOppositePlacement", "placement", "matched", "hash", "getOppositeVariationPlacement", "placement", "matched", "getWindowScroll", "node", "win", "getWindow", "scrollLeft", "scrollTop", "getWindowScrollBarX", "element", "getBoundingClientRect", "getDocumentElement", "getWindowScroll", "getViewportRect", "element", "strategy", "win", "getWindow", "html", "getDocumentElement", "visualViewport", "width", "height", "x", "y", "layoutViewport", "isLayoutViewport", "getWindowScrollBarX", "getDocumentRect", "element", "_element$ownerDocumen", "html", "getDocumentElement", "winScroll", "getWindowScroll", "body", "width", "max", "height", "x", "getWindowScrollBarX", "y", "getComputedStyle", "isScrollParent", "element", "_getComputedStyle", "getComputedStyle", "overflow", "overflowX", "overflowY", "getScrollParent", "node", "getNodeName", "isHTMLElement", "isScrollParent", "getParentNode", "listScrollParents", "element", "list", "_element$ownerDocumen", "scrollParent", "getScrollParent", "isBody", "win", "getWindow", "target", "isScrollParent", "updatedList", "getParentNode", "rectToClientRect", "rect", "getInnerBoundingClientRect", "element", "strategy", "rect", "getBoundingClientRect", "getClientRectFromMixedType", "clippingParent", "viewport", "rectToClientRect", "getViewportRect", "isElement", "getDocumentRect", "getDocumentElement", "getClippingParents", "clippingParents", "listScrollParents", "getParentNode", "canEscapeClipping", "getComputedStyle", "clipperElement", "isHTMLElement", "getOffsetParent", "contains", "getNodeName", "getClippingRect", "boundary", "rootBoundary", "mainClippingParents", "firstClippingParent", "clippingRect", "accRect", "max", "min", "computeOffsets", "_ref", "reference", "element", "placement", "basePlacement", "getBasePlacement", "variation", "getVariation", "commonX", "commonY", "offsets", "top", "bottom", "right", "left", "mainAxis", "getMainAxisFromPlacement", "len", "start", "end", "detectOverflow", "state", "options", "_options", "_options$placement", "placement", "_options$strategy", "strategy", "_options$boundary", "boundary", "clippingParents", "_options$rootBoundary", "rootBoundary", "viewport", "_options$elementConte", "elementContext", "popper", "_options$altBoundary", "altBoundary", "_options$padding", "padding", "paddingObject", "mergePaddingObject", "expandToHashMap", "basePlacements", "altContext", "reference", "popperRect", "element", "clippingClientRect", "getClippingRect", "isElement", "getDocumentElement", "referenceClientRect", "getBoundingClientRect", "popperOffsets", "computeOffsets", "popperClientRect", "rectToClientRect", "elementClientRect", "overflowOffsets", "offsetData", "offset", "key", "multiply", "right", "bottom", "axis", "top", "computeAutoPlacement", "state", "options", "_options", "placement", "boundary", "rootBoundary", "padding", "flipVariations", "_options$allowedAutoP", "allowedAutoPlacements", "placements", "variation", "getVariation", "variationPlacements", "basePlacements", "allowedPlacements", "overflows", "acc", "detectOverflow", "getBasePlacement", "a", "b", "getExpandedFallbackPlacements", "placement", "getBasePlacement", "auto", "oppositePlacement", "getOppositePlacement", "getOppositeVariationPlacement", "flip", "_ref", "state", "options", "name", "_options$mainAxis", "checkMainAxis", "_options$altAxis", "checkAltAxis", "specifiedFallbackPlacements", "padding", "boundary", "rootBoundary", "altBoundary", "_options$flipVariatio", "flipVariations", "allowedAutoPlacements", "preferredPlacement", "basePlacement", "isBasePlacement", "fallbackPlacements", "placements", "acc", "computeAutoPlacement", "referenceRect", "popperRect", "checksMap", "makeFallbackChecks", "firstFittingPlacement", "i", "_basePlacement", "isStartVariation", "getVariation", "start", "isVertical", "top", "bottom", "len", "overflow", "detectOverflow", "mainVariationSide", "right", "left", "altVariationSide", "checks", "check", "numberOfChecks", "_loop", "_i", "fittingPlacement", "_ret", "flip_default", "getSideOffsets", "overflow", "rect", "preventedOffsets", "isAnySideFullyClipped", "top", "right", "bottom", "left", "side", "hide", "_ref", "state", "name", "referenceRect", "popperRect", "referenceOverflow", "detectOverflow", "popperAltOverflow", "referenceClippingOffsets", "popperEscapeOffsets", "isReferenceHidden", "hasPopperEscaped", "hide_default", "distanceAndSkiddingToXY", "placement", "rects", "offset", "basePlacement", "getBasePlacement", "invertDistance", "left", "top", "_ref", "skidding", "distance", "right", "_ref2", "state", "options", "name", "_options$offset", "data", "placements", "acc", "_data$state$placement", "x", "y", "offset_default", "popperOffsets", "_ref", "state", "name", "computeOffsets", "popperOffsets_default", "getAltAxis", "axis", "preventOverflow", "_ref", "state", "options", "name", "_options$mainAxis", "checkMainAxis", "_options$altAxis", "checkAltAxis", "boundary", "rootBoundary", "altBoundary", "padding", "_options$tether", "tether", "_options$tetherOffset", "tetherOffset", "overflow", "detectOverflow", "basePlacement", "getBasePlacement", "variation", "getVariation", "isBasePlacement", "mainAxis", "getMainAxisFromPlacement", "altAxis", "getAltAxis", "popperOffsets", "referenceRect", "popperRect", "tetherOffsetValue", "normalizedTetherOffsetValue", "offsetModifierState", "data", "_offsetModifierState$", "mainSide", "top", "left", "altSide", "bottom", "right", "len", "offset", "min", "max", "additive", "minLen", "start", "maxLen", "arrowElement", "arrowRect", "getLayoutRect", "arrowPaddingObject", "getFreshSideObject", "arrowPaddingMin", "arrowPaddingMax", "arrowLen", "within", "minOffset", "maxOffset", "arrowOffsetParent", "getOffsetParent", "clientOffset", "offsetModifierValue", "tetherMin", "tetherMax", "preventedOffset", "_offsetModifierState$2", "_mainSide", "_altSide", "_offset", "_len", "_min", "_max", "isOriginSide", "_offsetModifierValue", "_tetherMin", "_tetherMax", "_preventedOffset", "withinMaxClamp", "preventOverflow_default", "getHTMLElementScroll", "element", "getNodeScroll", "node", "getWindow", "isHTMLElement", "getWindowScroll", "getHTMLElementScroll", "isElementScaled", "element", "rect", "scaleX", "round", "scaleY", "getCompositeRect", "elementOrVirtualElement", "offsetParent", "isFixed", "isOffsetParentAnElement", "isHTMLElement", "offsetParentIsScaled", "documentElement", "getDocumentElement", "getBoundingClientRect", "scroll", "offsets", "getNodeName", "isScrollParent", "getNodeScroll", "getWindowScrollBarX", "order", "modifiers", "map", "visited", "result", "modifier", "sort", "requires", "dep", "depModifier", "orderModifiers", "orderedModifiers", "modifierPhases", "acc", "phase", "debounce", "fn", "pending", "resolve", "mergeByName", "modifiers", "merged", "current", "existing", "key", "DEFAULT_OPTIONS", "areValidElements", "_len", "args", "_key", "element", "popperGenerator", "generatorOptions", "_generatorOptions", "_generatorOptions$def", "defaultModifiers", "_generatorOptions$def2", "defaultOptions", "reference", "popper", "options", "state", "effectCleanupFns", "isDestroyed", "instance", "setOptionsAction", "cleanupModifierEffects", "isElement", "listScrollParents", "orderedModifiers", "orderModifiers", "mergeByName", "m", "runModifierEffects", "_state$elements", "getCompositeRect", "getOffsetParent", "getLayoutRect", "modifier", "index", "_state$orderedModifie", "fn", "_state$orderedModifie2", "_options", "name", "debounce", "resolve", "_ref", "_ref$options", "effect", "cleanupFn", "noopFn", "createPopper", "defaultModifiers", "eventListeners_default", "popperOffsets_default", "computeStyles_default", "applyStyles_default", "createPopper", "popperGenerator", "defaultModifiers", "eventListeners_default", "popperOffsets_default", "computeStyles_default", "applyStyles_default", "offset_default", "flip_default", "preventOverflow_default", "arrow_default", "hide_default", "createPopper", "popperGenerator", "elementMap", "Map", "Data", "set", "element", "key", "instance", "has", "instanceMap", "get", "size", "console", "error", "Array", "from", "keys", "remove", "delete", "MAX_UID", "MILLISECONDS_MULTIPLIER", "TRANSITION_END", "parseSelector", "selector", "window", "CSS", "escape", "replace", "match", "id", "toType", "object", "Object", "prototype", "toString", "call", "toLowerCase", "getUID", "prefix", "Math", "floor", "random", "document", "getElementById", "getTransitionDurationFromElement", "transitionDuration", "transitionDelay", "getComputedStyle", "floatTransitionDuration", "Number", "parseFloat", "floatTransitionDelay", "split", "triggerTransitionEnd", "dispatchEvent", "Event", "isElement", "jquery", "nodeType", "getElement", "length", "querySelector", "isVisible", "getClientRects", "elementIsVisible", "getPropertyValue", "closedDetails", "closest", "summary", "parentNode", "isDisabled", "Node", "ELEMENT_NODE", "classList", "contains", "disabled", "hasAttribute", "getAttribute", "findShadowRoot", "documentElement", "attachShadow", "getRootNode", "root", "ShadowRoot", "noop", "reflow", "offsetHeight", "getjQuery", "jQuery", "body", "DOMContentLoadedCallbacks", "onDOMContentLoaded", "callback", "readyState", "addEventListener", "push", "isRTL", "dir", "defineJQueryPlugin", "plugin", "$", "name", "NAME", "JQUERY_NO_CONFLICT", "fn", "jQueryInterface", "Constructor", "noConflict", "execute", "possibleCallback", "args", "defaultValue", "executeAfterTransition", "transitionElement", "waitForTransition", "emulatedDuration", "called", "handler", "target", "removeEventListener", "setTimeout", "getNextActiveElement", "list", "activeElement", "shouldGetNext", "isCycleAllowed", "listLength", "index", "indexOf", "max", "min", "namespaceRegex", "stripNameRegex", "stripUidRegex", "eventRegistry", "uidEvent", "customEvents", "mouseenter", "mouseleave", "nativeEvents", "Set", "makeEventUid", "uid", "getElementEvents", "bootstrapHandler", "event", "hydrateObj", "delegateTarget", "oneOff", "EventHandler", "off", "type", "apply", "bootstrapDelegationHandler", "domElements", "querySelectorAll", "domElement", "findHandler", "events", "callable", "delegationSelector", "values", "find", "normalizeParameters", "originalTypeEvent", "delegationFunction", "isDelegated", "typeEvent", "getTypeEvent", "addHandler", "relatedTarget", "handlers", "previousFunction", "removeHandler", "Boolean", "removeNamespacedHandlers", "namespace", "storeElementEvent", "handlerKey", "entries", "includes", "on", "one", "inNamespace", "isNamespace", "startsWith", "elementEvent", "slice", "keyHandlers", "trigger", "jQueryEvent", "bubbles", "nativeDispatch", "defaultPrevented", "isPropagationStopped", "isImmediatePropagationStopped", "isDefaultPrevented", "evt", "cancelable", "preventDefault", "obj", "meta", "value", "_unused", "defineProperty", "configurable", "normalizeData", "JSON", "parse", "decodeURIComponent", "normalizeDataKey", "chr", "Manipulator", "setDataAttribute", "setAttribute", "removeDataAttribute", "removeAttribute", "getDataAttributes", "attributes", "bsKeys", "dataset", "filter", "pureKey", "charAt", "getDataAttribute", "Config", "Default", "DefaultType", "Error", "_getConfig", "config", "_mergeConfigObj", "_configAfterMerge", "_typeCheckConfig", "jsonConfig", "__spreadValues", "constructor", "configTypes", "property", "expectedTypes", "valueType", "RegExp", "test", "TypeError", "toUpperCase", "VERSION", "BaseComponent", "_element", "_config", "DATA_KEY", "dispose", "EVENT_KEY", "propertyName", "getOwnPropertyNames", "_queueCallback", "isAnimated", "getInstance", "getOrCreateInstance", "eventName", "getSelector", "hrefAttribute", "trim", "map", "sel", "join", "SelectorEngine", "concat", "Element", "findOne", "children", "child", "matches", "parents", "ancestor", "prev", "previous", "previousElementSibling", "next", "nextElementSibling", "focusableChildren", "focusables", "el", "getSelectorFromElement", "getElementFromSelector", "getMultipleElementsFromSelector", "enableDismissTrigger", "component", "method", "clickEvent", "tagName", "EVENT_CLOSE", "EVENT_CLOSED", "CLASS_NAME_FADE", "CLASS_NAME_SHOW", "Alert", "close", "_destroyElement", "each", "data", "undefined", "DATA_API_KEY", "CLASS_NAME_ACTIVE", "SELECTOR_DATA_TOGGLE", "EVENT_CLICK_DATA_API", "Button", "toggle", "button", "EVENT_TOUCHSTART", "EVENT_TOUCHMOVE", "EVENT_TOUCHEND", "EVENT_POINTERDOWN", "EVENT_POINTERUP", "POINTER_TYPE_TOUCH", "POINTER_TYPE_PEN", "CLASS_NAME_POINTER_EVENT", "SWIPE_THRESHOLD", "endCallback", "leftCallback", "rightCallback", "Swipe", "isSupported", "_deltaX", "_supportPointerEvents", "PointerEvent", "_initEvents", "_start", "touches", "clientX", "_eventIsPointerPenTouch", "_end", "_handleSwipe", "_move", "absDeltaX", "abs", "direction", "add", "pointerType", "navigator", "maxTouchPoints", "ARROW_LEFT_KEY", "ARROW_RIGHT_KEY", "TOUCHEVENT_COMPAT_WAIT", "ORDER_NEXT", "ORDER_PREV", "DIRECTION_LEFT", "DIRECTION_RIGHT", "EVENT_SLIDE", "EVENT_SLID", "EVENT_KEYDOWN", "EVENT_MOUSEENTER", "EVENT_MOUSELEAVE", "EVENT_DRAG_START", "EVENT_LOAD_DATA_API", "CLASS_NAME_CAROUSEL", "CLASS_NAME_SLIDE", "CLASS_NAME_END", "CLASS_NAME_START", "CLASS_NAME_NEXT", "CLASS_NAME_PREV", "SELECTOR_ACTIVE", "SELECTOR_ITEM", "SELECTOR_ACTIVE_ITEM", "SELECTOR_ITEM_IMG", "SELECTOR_INDICATORS", "SELECTOR_DATA_SLIDE", "SELECTOR_DATA_RIDE", "KEY_TO_DIRECTION", "interval", "keyboard", "pause", "ride", "touch", "wrap", "Carousel", "_interval", "_activeElement", "_isSliding", "touchTimeout", "_swipeHelper", "_indicatorsElement", "_addEventListeners", "cycle", "_slide", "nextWhenVisible", "hidden", "_clearInterval", "_updateInterval", "setInterval", "_maybeEnableCycle", "to", "items", "_getItems", "activeIndex", "_getItemIndex", "_getActive", "order", "defaultInterval", "_keydown", "_addTouchEventListeners", "img", "swipeConfig", "_directionToOrder", "endCallBack", "clearTimeout", "_setActiveIndicatorElement", "activeIndicator", "newActiveIndicator", "elementInterval", "parseInt", "isNext", "nextElement", "nextElementIndex", "triggerEvent", "_orderToDirection", "isCycling", "directionalClassName", "orderClassName", "completeCallBack", "_isAnimated", "clearInterval", "carousel", "slideIndex", "carousels", "EVENT_SHOW", "EVENT_SHOWN", "EVENT_HIDE", "EVENT_HIDDEN", "CLASS_NAME_COLLAPSE", "CLASS_NAME_COLLAPSING", "CLASS_NAME_COLLAPSED", "CLASS_NAME_DEEPER_CHILDREN", "CLASS_NAME_HORIZONTAL", "WIDTH", "HEIGHT", "SELECTOR_ACTIVES", "parent", "Collapse", "_isTransitioning", "_triggerArray", "toggleList", "elem", "filterElement", "foundElement", "_initializeChildren", "_addAriaAndCollapsedClass", "_isShown", "hide", "show", "activeChildren", "_getFirstLevelChildren", "activeInstance", "dimension", "_getDimension", "style", "complete", "scrollSize", "getBoundingClientRect", "selected", "triggerArray", "isOpen", "ESCAPE_KEY", "TAB_KEY", "ARROW_UP_KEY", "ARROW_DOWN_KEY", "RIGHT_MOUSE_BUTTON", "EVENT_KEYDOWN_DATA_API", "EVENT_KEYUP_DATA_API", "CLASS_NAME_DROPUP", "CLASS_NAME_DROPEND", "CLASS_NAME_DROPSTART", "CLASS_NAME_DROPUP_CENTER", "CLASS_NAME_DROPDOWN_CENTER", "SELECTOR_DATA_TOGGLE_SHOWN", "SELECTOR_MENU", "SELECTOR_NAVBAR", "SELECTOR_NAVBAR_NAV", "SELECTOR_VISIBLE_ITEMS", "PLACEMENT_TOP", "PLACEMENT_TOPEND", "PLACEMENT_BOTTOM", "PLACEMENT_BOTTOMEND", "PLACEMENT_RIGHT", "PLACEMENT_LEFT", "PLACEMENT_TOPCENTER", "PLACEMENT_BOTTOMCENTER", "autoClose", "boundary", "display", "offset", "popperConfig", "reference", "Dropdown", "_popper", "_parent", "_menu", "_inNavbar", "_detectNavbar", "showEvent", "_createPopper", "focus", "_completeHide", "destroy", "update", "hideEvent", "Popper", "referenceElement", "_getPopperConfig", "createPopper", "_getPlacement", "parentDropdown", "isEnd", "_getOffset", "popperData", "defaultBsPopperConfig", "placement", "modifiers", "options", "enabled", "_selectMenuItem", "clearMenus", "openToggles", "context", "composedPath", "isMenuTarget", "dataApiKeydownHandler", "isInput", "isEscapeEvent", "isUpOrDownEvent", "getToggleButton", "stopPropagation", "EVENT_MOUSEDOWN", "className", "clickCallback", "rootElement", "Backdrop", "_isAppended", "_append", "_getElement", "_emulateAnimation", "backdrop", "createElement", "append", "EVENT_FOCUSIN", "EVENT_KEYDOWN_TAB", "TAB_NAV_FORWARD", "TAB_NAV_BACKWARD", "autofocus", "trapElement", "FocusTrap", "_isActive", "_lastTabNavDirection", "activate", "_handleFocusin", "_handleKeydown", "deactivate", "elements", "shiftKey", "SELECTOR_FIXED_CONTENT", "SELECTOR_STICKY_CONTENT", "PROPERTY_PADDING", "PROPERTY_MARGIN", "ScrollBarHelper", "getWidth", "documentWidth", "clientWidth", "innerWidth", "width", "_disableOverFlow", "_setElementAttributes", "calculatedValue", "reset", "_resetElementAttributes", "isOverflowing", "_saveInitialAttribute", "overflow", "styleProperty", "scrollbarWidth", "manipulationCallBack", "setProperty", "_applyManipulationCallback", "actualValue", "removeProperty", "callBack", "EVENT_HIDE_PREVENTED", "EVENT_RESIZE", "EVENT_CLICK_DISMISS", "EVENT_MOUSEDOWN_DISMISS", "EVENT_KEYDOWN_DISMISS", "CLASS_NAME_OPEN", "CLASS_NAME_STATIC", "OPEN_SELECTOR", "SELECTOR_DIALOG", "SELECTOR_MODAL_BODY", "Modal", "_dialog", "_backdrop", "_initializeBackDrop", "_focustrap", "_initializeFocusTrap", "_scrollBar", "_adjustDialog", "_showElement", "_hideModal", "handleUpdate", "scrollTop", "modalBody", "transitionComplete", "_triggerBackdropTransition", "event2", "_resetAdjustments", "isModalOverflowing", "scrollHeight", "clientHeight", "initialOverflowY", "overflowY", "isBodyOverflowing", "paddingLeft", "paddingRight", "alreadyOpen", "CLASS_NAME_SHOWING", "CLASS_NAME_HIDING", "CLASS_NAME_BACKDROP", "scroll", "Offcanvas", "blur", "completeCallback", "position", "ARIA_ATTRIBUTE_PATTERN", "DefaultAllowlist", "a", "area", "b", "br", "col", "code", "dd", "div", "dl", "dt", "em", "hr", "h1", "h2", "h3", "h4", "h5", "h6", "i", "li", "ol", "p", "pre", "s", "small", "span", "sub", "sup", "strong", "u", "ul", "uriAttributes", "SAFE_URL_PATTERN", "allowedAttribute", "attribute", "allowedAttributeList", "attributeName", "nodeName", "nodeValue", "attributeRegex", "some", "regex", "sanitizeHtml", "unsafeHtml", "allowList", "sanitizeFunction", "createdDocument", "DOMParser", "parseFromString", "elementName", "attributeList", "allowedAttributes", "innerHTML", "content", "extraClass", "html", "sanitize", "sanitizeFn", "template", "DefaultContentType", "entry", "TemplateFactory", "getContent", "_resolvePossibleFunction", "hasContent", "changeContent", "_checkContent", "toHtml", "templateWrapper", "_maybeSanitize", "text", "_setContent", "arg", "templateElement", "_putElementInTemplate", "textContent", "DISALLOWED_ATTRIBUTES", "CLASS_NAME_MODAL", "SELECTOR_TOOLTIP_INNER", "SELECTOR_MODAL", "EVENT_MODAL_HIDE", "TRIGGER_HOVER", "TRIGGER_FOCUS", "TRIGGER_CLICK", "TRIGGER_MANUAL", "EVENT_INSERTED", "EVENT_CLICK", "EVENT_FOCUSOUT", "AttachmentMap", "AUTO", "TOP", "RIGHT", "BOTTOM", "LEFT", "animation", "container", "customClass", "delay", "fallbackPlacements", "title", "Tooltip", "_isEnabled", "_timeout", "_isHovered", "_activeTrigger", "_templateFactory", "_newContent", "tip", "_setListeners", "_fixTitle", "enable", "disable", "toggleEnabled", "click", "_leave", "_enter", "_hideModalHandler", "_disposePopper", "_isWithContent", "isInTheDom", "ownerDocument", "_getTipElement", "_isWithActiveTrigger", "_getTitle", "_createTipElement", "_getContentForTemplate", "_getTemplateFactory", "tipId", "setContent", "__spreadProps", "_initializeOnDelegatedTarget", "_getDelegateConfig", "attachment", "phase", "state", "triggers", "eventIn", "eventOut", "_setTimeout", "timeout", "dataAttributes", "dataAttribute", "SELECTOR_TITLE", "SELECTOR_CONTENT", "Popover", "_getContent", "EVENT_ACTIVATE", "CLASS_NAME_DROPDOWN_ITEM", "SELECTOR_DATA_SPY", "SELECTOR_TARGET_LINKS", "SELECTOR_NAV_LIST_GROUP", "SELECTOR_NAV_LINKS", "SELECTOR_NAV_ITEMS", "SELECTOR_LIST_ITEMS", "SELECTOR_LINK_ITEMS", "SELECTOR_DROPDOWN", "SELECTOR_DROPDOWN_TOGGLE", "rootMargin", "smoothScroll", "threshold", "ScrollSpy", "_targetLinks", "_observableSections", "_rootElement", "_activeTarget", "_observer", "_previousScrollData", "visibleEntryTop", "parentScrollTop", "refresh", "_initializeTargetsAndObservables", "_maybeEnableSmoothScroll", "disconnect", "_getNewObserver", "section", "observe", "observableSection", "hash", "height", "offsetTop", "scrollTo", "top", "behavior", "IntersectionObserver", "_observerCallback", "targetElement", "_process", "userScrollsDown", "isIntersecting", "_clearActiveClass", "entryIsLowerThanPrevious", "targetLinks", "anchor", "decodeURI", "_activateParents", "listGroup", "item", "activeNodes", "node", "spy", "HOME_KEY", "END_KEY", "CLASS_DROPDOWN", "SELECTOR_DROPDOWN_MENU", "NOT_SELECTOR_DROPDOWN_TOGGLE", "SELECTOR_TAB_PANEL", "SELECTOR_OUTER", "SELECTOR_INNER", "SELECTOR_INNER_ELEM", "SELECTOR_DATA_TOGGLE_ACTIVE", "Tab", "_setInitialAttributes", "_getChildren", "innerElem", "_elemIsActive", "active", "_getActiveElem", "_deactivate", "_activate", "relatedElem", "_toggleDropDown", "nextActiveElement", "preventScroll", "_setAttributeIfNotExists", "_setInitialAttributesOnChild", "_getInnerElement", "isActive", "outerElem", "_getOuterElement", "_setInitialAttributesOnTargetPanel", "open", "EVENT_MOUSEOVER", "EVENT_MOUSEOUT", "CLASS_NAME_HIDE", "autohide", "Toast", "_hasMouseInteraction", "_hasKeyboardInteraction", "_clearTimeout", "_maybeScheduleHide", "isShown", "_onInteraction", "isInteracting", "import_htmx", "forEvents", "events", "callback", "event", "MicroEvent", "fct", "event_array", "n", "args", "self", "MicroPlugin", "Interface", "name", "fn", "plugins", "key", "self", "queue", "plugin", "arrayToPattern", "chars", "maxValueLength", "sequencePattern", "array", "hasDuplicates", "pattern", "prev_char_count", "prev_pattern", "char", "i", "setToPattern", "escape_regex", "str", "longest", "value", "unicodeLength", "allSubstrings", "input", "result", "start", "subresult", "tmp", "code_points", "accent_pat", "unicode_map", "multi_char_reg", "max_char_length", "latin_convert", "latin_condensed", "latin", "unicode", "i", "char", "convert_pat", "initialize", "_code_points", "generateMap", "normalize", "str", "form", "asciifold", "result", "_asciifold", "generator", "code_point_min", "code_point_max", "composed", "folded", "generateSets", "unicode_sets", "addMatching", "to_add", "folded_set", "patt", "setToPattern", "escape_regex", "value", "multi_char", "set", "a", "b", "multi_char_patt", "arrayToPattern", "mapSequence", "strings", "min_replacement", "chars_replaced", "sequencePattern", "substringsToPattern", "allSubstrings", "sub_pat", "sequencesToPattern", "sequences", "all", "sequence", "seq", "len", "j", "inSequences", "needle_seq", "needle_parts", "filter", "part", "needle_part", "Sequence", "_Sequence", "__publicField", "position", "last_piece", "clone", "parts", "last_part", "last_substr", "clone_last_len", "getPattern", "pattern", "match", "match_str", "overlapping", "added_types", "new_seq", "old_seq", "getAttr", "obj", "name", "getAttrNesting", "part", "names", "scoreValue", "value", "token", "weight", "score", "pos", "propToArray", "key", "iterate", "object", "callback", "cmp", "a", "b", "asciifold", "Sifter", "items", "settings", "__publicField", "query", "respect_word_boundaries", "weights", "tokens", "words", "field_regex", "escape_regex", "word", "field_match", "field", "regex", "getPattern", "options", "search", "token_count", "fields", "field_count", "getAttrFn", "scoreObject", "token", "data", "scoreValue", "sum", "value", "iterate", "weight", "score", "implicit_score", "sort_flds", "self", "sort", "get_field", "name", "result", "s", "fld", "a", "b", "sort_fld", "cmp", "optsUser", "propToArray", "getAttrNesting", "getAttr", "fn_score", "item", "id", "_", "fn_sort", "hash_key", "value", "get_hash", "escape_html", "str", "timeout", "fn", "loadDebounce", "delay", "callback", "self", "debounce_events", "types", "type", "trigger", "event_args", "getSelection", "input", "preventDefault", "evt", "stop", "addEvent", "target", "options", "isKeyDown", "key_name", "count", "getId", "el", "id", "existing_id", "addSlashes", "append", "parent", "node", "iterate", "object", "key", "getDom", "query", "isHtmlString", "tpl", "arg", "escapeQuery", "triggerEvent", "dom_el", "event_name", "event", "applyCSS", "css", "addClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "el", "cls", "removeClasses", "args", "iterate", "_classes", "parentMatch", "target", "selector", "wrapper", "getTail", "list", "direction", "isEmptyObject", "obj", "nodeIndex", "amongst", "i", "setAttr", "attrs", "val", "attr", "replaceNode", "existing", "replacement", "highlight", "element", "regex", "highlightText", "node", "match", "spannode", "middlebit", "middleclone", "replaceNode", "highlightChildren", "highlightRecursive", "removeHighlight", "el", "elements", "parent", "IS_MAC", "KEY_SHORTCUT", "defaults_default", "query", "getSettings", "input", "settings_user", "settings", "defaults_default", "attr_data", "field_label", "field_value", "field_disabled", "field_optgroup", "field_optgroup_label", "field_optgroup_value", "tag_name", "placeholder", "option", "settings_element", "init_select", "tagName", "options", "optionsMap", "group_count", "$order", "readData", "el", "data", "json", "addOption", "group", "value", "hash_key", "arr", "option_data", "addGroup", "optgroup", "id", "optgroup_data", "iterate", "child", "init_textbox", "data_raw", "opt", "values", "instance_i", "TomSelect", "MicroPlugin", "MicroEvent", "input_arg", "user_settings", "dir", "input", "getDom", "computedStyle", "settings", "getSettings", "getId", "Sifter", "filter", "value", "wrapper", "control", "dropdown", "dropdown_content", "classes", "inputMode", "control_input", "addClasses", "append", "isHtmlString", "attrs", "iterate", "attr", "setAttr", "self", "focus_node", "passive_event", "listboxId", "control_id", "query", "escapeQuery", "label", "label_click", "addEvent", "label_id", "classes_plugins", "escape_regex", "loadDebounce", "e", "target_match", "parentMatch", "evt", "option", "preventDefault", "doc_mousedown", "target", "win_scroll", "options", "optgroups", "optgroup", "field_label", "field_optgroup", "templates", "data", "escape", "key", "fn", "callbacks", "get_settings", "triggerEvent", "pastedText", "splitInput", "piece", "hash_key", "character", "isKeyDown", "KEY_SHORTCUT", "next", "prev", "timeout", "wasFocused", "deactivate", "item", "callback", "removeClasses", "classList", "changed", "silent", "events", "debounce_events", "eventName", "i", "begin", "end", "swap", "last", "last_active", "idx", "scroll", "behavior", "content", "height_menu", "scrollTop", "height_item", "y", "activeItems", "sort", "result", "calculateScore", "hashed", "triggerDropdown", "j", "k", "n", "html", "has_create_option", "active_group", "create", "groups", "groups_order", "same_query", "results", "active_option", "show_dropdown", "getGroupFragment", "order", "group_order_i", "order_group", "group_fragment", "opt_value", "opt_hash", "get_hash", "option_el", "self_optgroup", "a", "b", "group_order", "group_heading", "group_options", "header", "group_html", "removeHighlight", "tok", "highlight", "add_template", "template", "active_index", "user_created", "dat", "id", "hashed_id", "item_new", "index_item", "value_old", "value_new", "data_old", "option_new", "replaceNode", "boundFilter", "selected", "direction", "type", "all", "addSlashes", "values", "items", "x", "last_item", "wasFull", "nodeIndex", "caret", "output", "created", "isFull", "isLocked", "wrap_classList", "isEmptyObject", "opts", "empty_option", "AddSelected", "escape_html", "has_selected", "reuse_opt", "applyCSS", "setTextboxValue", "trigger", "context", "rect", "top", "left", "el", "selection", "tail", "getSelection", "rm_items", "getTail", "rm_item", "adjacent", "new_pos", "lock", "disabled", "isReadOnly", "revertSettings", "templateName", "when", "method", "new_fn", "orig_method", "result_new", "addEvent", "target", "type", "callback", "options", "addEventListener", "plugin", "input", "sync", "hash_key", "value", "get_hash", "preventDefault", "evt", "stop", "stopPropagation", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "plugin", "userOptions", "self", "orig_onOptionSelect", "onOptionSelect", "settings", "hideSelected", "cbOptions", "Object", "assign", "className", "checkedClassNames", "undefined", "uncheckedClassNames", "UpdateChecked", "checkbox", "toCheck", "checked", "classList", "remove", "add", "UpdateCheckbox", "option", "setTimeout", "HTMLInputElement", "contains", "hook", "orig_render_option", "render", "data", "escape_html", "rendered", "call", "addEventListener", "type", "hashed", "valueField", "items", "prepend", "on", "getOption", "removeItem", "dataset", "refreshOptions", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "plugin", "userOptions", "self", "options", "Object", "assign", "className", "title", "html", "data", "on", "button", "addEventListener", "evt", "isLocked", "clear", "settings", "mode", "allowEmptyOption", "addItem", "preventDefault", "stopPropagation", "control", "appendChild", "preventDefault", "evt", "stop", "stopPropagation", "addEvent", "target", "type", "callback", "options", "addEventListener", "iterate", "object", "Array", "isArray", "forEach", "key", "hasOwnProperty", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "setAttr", "el", "attrs", "val", "attr", "removeAttribute", "setAttribute", "insertAfter", "referenceNode", "newNode", "_referenceNode$parent", "parentNode", "insertBefore", "nextSibling", "_referenceNode$parent2", "isBefore", "_newNode", "previousElementSibling", "plugin", "self", "settings", "mode", "orig_lock", "lock", "orig_unlock", "unlock", "sortable", "drag_item", "hook", "orig_render_item", "render", "item", "data", "escape", "call", "mousedown", "dragStart", "setTimeout", "classList", "add", "dragOver", "moveitem", "dragLeave", "remove", "targetitem", "dragitem", "undefined", "dragend", "_drag_item", "querySelectorAll", "values", "control", "dataset", "value", "push", "setValue", "preventDefault", "evt", "stop", "stopPropagation", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "plugin", "userOptions", "self", "options", "Object", "assign", "title", "headerClass", "titleRowClass", "labelClass", "closeClass", "html", "data", "on", "header", "close_link", "addEventListener", "close", "dropdown", "insertBefore", "iterate", "object", "callback", "Array", "isArray", "forEach", "key", "hasOwnProperty", "removeClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "map", "el", "cls", "classList", "remove", "args", "_classes", "trim", "split", "concat", "filter", "Boolean", "arg", "nodeIndex", "amongst", "nodeName", "i", "previousElementSibling", "matches", "plugin", "self", "hook", "new_pos", "settings", "mode", "control", "contains", "control_input", "items", "length", "Math", "max", "min", "caretPos", "isPending", "controlChildren", "child", "j", "insertAdjacentElement", "appendChild", "direction", "isFocused", "last_active", "getLastActive", "idx", "setCaret", "setActiveItem", "preventDefault", "evt", "stop", "stopPropagation", "addEvent", "target", "type", "callback", "options", "addEventListener", "iterate", "object", "Array", "isArray", "forEach", "key", "hasOwnProperty", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "addClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "map", "el", "cls", "classList", "add", "args", "_classes", "split", "concat", "filter", "Boolean", "plugin", "self", "settings", "shouldOpen", "hook", "focus_node", "control", "control_input", "div", "append", "dropdown", "insertBefore", "placeholder", "on", "keyCode", "constants", "isOpen", "close", "clearActiveItems", "tabIndex", "onKeyDown", "call", "isDisabled", "focus", "orig_onBlur", "onBlur", "relatedTarget", "preventScroll", "addEvent", "target", "type", "callback", "options", "addEventListener", "plugin", "self", "on", "test_input", "document", "createElement", "control", "control_input", "style", "cssText", "wrapper", "appendChild", "transfer_styles", "style_name", "resize", "textContent", "value", "width", "clientWidth", "plugin", "self", "orig_deleteSelection", "deleteSelection", "hook", "evt", "activeItems", "length", "call", "plugin", "hook", "parentMatch", "target", "selector", "wrapper", "matches", "parentNode", "nodeIndex", "el", "amongst", "nodeName", "i", "previousElementSibling", "plugin", "self", "orig_keydown", "onKeyDown", "hook", "evt", "index", "option", "options", "optgroup", "isOpen", "keyCode", "constants", "call", "ignoreHover", "activeOption", "previousSibling", "nextSibling", "querySelectorAll", "Math", "min", "length", "setActiveOption", "escape_html", "str", "replace", "preventDefault", "evt", "stop", "stopPropagation", "addEvent", "target", "type", "callback", "options", "addEventListener", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "plugin", "userOptions", "Object", "assign", "label", "title", "className", "append", "self", "html", "hook", "orig_render_item", "settings", "render", "item", "data", "escape", "call", "close_button", "appendChild", "isLocked", "shouldDelete", "removeItem", "refreshOptions", "inputState", "plugin", "userOptions", "self", "options", "Object", "assign", "text", "option", "settings", "labelField", "on", "value", "isFocused", "control_input", "trim", "setTextboxValue", "call", "iterate", "object", "callback", "Array", "isArray", "forEach", "key", "hasOwnProperty", "addClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "map", "el", "cls", "classList", "add", "args", "_classes", "trim", "split", "concat", "filter", "Boolean", "arg", "plugin", "self", "orig_canLoad", "canLoad", "orig_clearActiveOption", "clearActiveOption", "orig_loadCallback", "loadCallback", "pagination", "dropdown_content", "loading_more", "load_more_opt", "default_values", "settings", "shouldLoadMore", "clientHeight", "scrollHeight", "scrollTop", "activeOption", "selectable", "index", "from", "indexOf", "length", "firstUrl", "sortField", "field", "canLoadMore", "query", "maxOptions", "children", "clearFilter", "option", "value", "items", "setNextUrl", "next_url", "getUrl", "clearPagination", "call", "hook", "options", "optgroups", "clearOptions", "first_option", "undefined", "dataset", "valueField", "lastValue", "render", "setAttribute", "querySelector", "optionClass", "append", "on", "Object", "keys", "assign", "no_more_results", "addEventListener", "load", "TomSelect", "plugin", "tom_select_complete_default", "hasError", "data", "isTruthy", "value", "badStrings", "isElement", "obj", "apiRequest", "url", "method", "data", "__async", "token", "headers", "body", "res", "contentType", "json", "apiPatch", "getElements", "key", "query", "element", "getElement", "id", "scrollTo", "element", "offset", "yOffset", "title", "top", "getSelectedOptions", "base", "selector", "selected", "select", "option", "findFirstAdjacent", "base", "query", "boundary", "atBoundary", "element", "match", "parent", "child", "createElement", "tag", "properties", "classes", "children", "k", "key", "value", "replaceAll", "input", "pattern", "replacement", "flags", "handleFormSubmit", "event", "form", "invalids", "element", "firstInvalid", "scrollTo", "initFormElements", "getElements", "submitters", "submitter", "resetButton", "initSpeedSelector", "element", "getElements", "handleClick", "event", "value", "input", "initForms", "func", "initFormElements", "initSpeedSelector", "Collapse", "Modal", "Popover", "Toast", "Tooltip", "initTooltips", "tooltip", "getElements", "initModals", "modal", "createToast", "level", "title", "message", "extra", "iconName", "container", "main", "header", "icon", "titleElement", "button", "body", "extraElement", "initTabs", "hash", "target", "element", "Tab", "initSidebarAccordions", "items", "handleToggle", "thisItem", "item", "initImagePreview", "maxWidth", "image", "createElement", "content", "initBootstrap", "func", "quickSearchEventHandler", "event", "quicksearch", "clearbtn", "isTruthy", "clearLinkParams", "link", "linkUpdated", "handleQuickSearchParams", "quickSearchParameters", "search_parameter", "initQuickSearch", "__async", "search", "f", "getPlugins", "element", "plugins", "data", "initStaticSelects", "select", "getElements", "tom_select_complete_default", "__spreadProps", "__spreadValues", "getPlugins", "initColorSelects", "renderColor", "item", "escape", "iterate", "object", "callback", "key", "addClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "el", "cls", "classesArray", "args", "classes", "iterate", "_classes", "castAsArray", "arg", "base_exports", "__export", "exclude", "extract", "parse", "parseUrl", "pick", "stringify", "stringifyUrl", "token", "singleMatcher", "multiMatcher", "decodeComponents", "components", "split", "e", "left", "right", "decode", "input", "tokens", "i", "customDecodeURIComponent", "replaceMap", "match", "result", "entries", "key", "decodeUriComponent", "encodedURI", "includeKeys", "object", "predicate", "result", "key", "descriptor", "value", "splitOnFirst", "string", "separator", "separatorIndex", "isNullOrUndefined", "value", "strictUriEncode", "string", "x", "encodeFragmentIdentifier", "encoderForArrayFormat", "options", "key", "result", "index", "encode", "keyValueSeparator", "parserForArrayFormat", "accumulator", "isArray", "isEncodedArray", "decode", "newValue", "item", "arrayValue", "validateArrayFormatSeparator", "decodeUriComponent", "keysSorter", "input", "a", "b", "removeHash", "hashStart", "getHash", "url", "hash", "parseValue", "type", "extract", "queryStart", "parse", "query", "__spreadValues", "formatter", "returnValue", "parameter", "parameter_", "splitOnFirst", "key2", "value2", "stringify", "object", "shouldFilter", "objectCopy", "keys", "parseUrl", "_a", "_b", "url_", "stringifyUrl", "queryFromUrl", "queryString", "urlObjectForFragmentEncode", "pick", "filter", "fragmentIdentifier", "includeKeys", "exclude", "exclusionFilter", "query_string_default", "base_exports", "isDataDynamicParams", "value", "item", "DynamicParamsMap", "fieldName", "value", "queryValue", "current", "isTruthy", "queryParam", "json", "deserialized", "isDataDynamicParams", "DynamicTomSelect", "tom_select_complete_default", "input_arg", "user_settings", "__publicField", "DynamicParamsMap", "nullOption", "valueField", "labelField", "key", "value", "filter", "self", "url", "addClasses", "response", "apiData", "results", "options", "result", "option", "search", "query", "replaceAll", "query_string_default", "data", "parent", "serialized", "deserialized", "queryParam", "queryValue", "err", "fieldName", "element", "elementValue", "o", "current", "staticValue", "id", "getElement", "dependencies", "dep", "filterElement", "event", "target", "VALUE_FIELD", "LABEL_FIELD", "MAX_OPTIONS", "renderOption", "data", "escape", "html", "renderItem", "initDynamicSelects", "select", "getElements", "DynamicTomSelect", "__spreadProps", "__spreadValues", "getPlugins", "initSelects", "initStaticSelects", "initDynamicSelects", "initColorSelects", "setConnectionStatus", "element", "status", "_a", "row", "url", "isTruthy", "apiPatch", "res", "hasError", "createToast", "initConnectionToggle", "getElements", "ProxyStateHandler", "target", "key", "value", "StateManager", "raw", "options", "__publicField", "saved", "__spreadValues", "obj", "createState", "initial", "objectDepthState", "createState", "rackImagesState", "createState", "previousPkCheckState", "createState", "secretState", "createState", "toggleDepthButton", "hidden", "button", "showDepthIndicators", "element", "getElements", "hideDepthIndicators", "handleDepthToggle", "state", "initiallyHidden", "initDepthToggle", "objectDepthState", "event", "moveOptionUp", "element", "options", "i", "option", "moveOptionDown", "next", "initMoveButtons", "button", "getElements", "target", "select", "slugify", "slug", "chars", "initReslug", "slugButton", "getElements", "form", "slugField", "sourceId", "sourceField", "slugLengthAttr", "slugLength", "handlePkCheck", "event", "element", "getElements", "handleSelectAllToggle", "tableSelectAll", "table", "findFirstAdjacent", "confirmCard", "confirmCheckbox", "initSelectAll", "toggleFloat", "checkedCheckboxes", "buttonGroup", "isFloating", "initFloatBulk", "element", "getElements", "removeTextSelection", "_a", "updatePreviousPkCheckState", "eventTargetElement", "state", "toggleCheckboxRange", "previousStateElement", "elementList", "changePkCheckboxState", "element", "typedElement", "handlePkCheck", "event", "checkboxList", "getElements", "initSelectMultiple", "checkboxElements", "previousPkCheckState", "initMarkdownPreview", "markdownWidget", "previewButton", "textarea", "preview", "isTruthy", "height", "e", "initMarkdownPreviews", "toggleSecretButton", "hidden", "button", "showSecret", "secret", "getElement", "isTruthy", "value", "hideSecret", "handleSecretToggle", "state", "toggleCallback", "event", "secretState", "initSecretToggle", "getElements", "initButtons", "func", "initDepthToggle", "initConnectionToggle", "initReslug", "initSelectAll", "initSelectMultiple", "initFloatBulk", "initMoveButtons", "initMarkdownPreviews", "initSecretToggle", "COLOR_MODE_KEY", "isColorMode", "value", "storeColorMode", "mode", "updateElements", "targetMode", "_a", "_b", "body", "elevation", "getElements", "svg", "setColorMode", "handleColorModeToggle", "currentValue", "defaultColorMode", "isTruthy", "preference", "initColorModeToggle", "element", "initColorMode", "func", "initMessages", "elements", "element", "toast", "Toast", "import_clipboard", "initClipboard", "element", "getElements", "Clipboard", "HOOKS", "defaults", "err", "givenDate", "date", "week1", "english", "nth", "s", "default_default", "pad", "number", "length", "int", "bool", "debounce", "fn", "wait", "t", "_this", "args", "arrayify", "obj", "toggleClass", "elem", "className", "bool", "createElement", "tag", "content", "e", "clearNode", "node", "findParent", "condition", "createNumberInput", "inputClassName", "opts", "wrapper", "numInput", "arrowUp", "arrowDown", "key", "getEventTarget", "event", "path", "error", "doNothing", "monthToStr", "monthNumber", "shorthand", "locale", "revFormat", "dateObj", "monthName", "hour", "day", "amPM", "int", "shortMonth", "seconds", "_", "unixSeconds", "weekNum", "weekNumber", "date", "year", "ISODate", "minutes", "month", "unixMillSeconds", "tokenRegex", "formats", "options", "pad", "createDateFormatter", "_a", "_b", "config", "defaults", "_c", "l10n", "english", "_d", "isMobile", "dateObj", "frmt", "overrideLocale", "locale", "c", "i", "arr", "formats", "createDateParser", "date", "givenFormat", "timeless", "customLocale", "parsedDate", "dateOrig", "format", "datestr", "matched", "ops", "matchIndex", "regexStr", "token", "isBackSlash", "escaped", "tokenRegex", "match", "revFormat", "fn", "val", "compareDates", "date1", "date2", "isBetween", "ts", "ts1", "ts2", "calculateSecondsSinceMidnight", "hours", "minutes", "seconds", "parseSeconds", "secondsSinceMidnight", "duration", "getDefaultHours", "config", "minHour", "minMinutes", "minSeconds", "maxHr", "maxMinutes", "target", "args", "_i", "_loop_1", "source", "key", "_a", "args_1", "__assign", "t", "s", "i", "n", "p", "__spreadArrays", "il", "r", "k", "a", "j", "jl", "DEBOUNCED_CHANGE_MS", "FlatpickrInstance", "element", "instanceConfig", "self", "defaults", "flatpickr", "default_default", "createDateParser", "bind", "setHoursFromDate", "positionCalendar", "changeMonth", "changeYear", "clear", "close", "onMouseOver", "createElement", "createDay", "destroy", "isEnabled", "jumpToDate", "updateValue", "open", "redraw", "set", "setDate", "toggle", "setupHelperFunctions", "month", "yr", "init", "parseConfig", "setupLocale", "setupInputs", "setupDates", "build", "bindEvents", "setCalendarWidth", "isSafari", "triggerEvent", "getClosestActiveElement", "_a", "bindToInstance", "fn", "config", "daysWidth", "updateTime", "e", "defaultDate", "compareDates", "getDefaultHours", "timeWrapper", "prevValue", "setHoursFromInputs", "ampm2military", "hour", "amPM", "int", "military2ampm", "hours", "minutes", "seconds", "limitMinHours", "limitMaxHours", "minBound", "calculateSecondsSinceMidnight", "maxBound", "currentTime", "result", "parseSeconds", "maxTime", "minTime", "setHours", "dateObj", "date", "pad", "onYearInput", "event", "eventTarget", "getEventTarget", "year", "handler", "options", "ev", "el", "triggerChange", "evt", "setupMobile", "debouncedResize", "debounce", "onResize", "onKeyDown", "documentClick", "onMonthNavClick", "selectDate", "selText", "timeIncrement", "onBlur", "jumpDate", "jumpTo", "oldYear", "oldMonth", "buildMonthSwitch", "incrementNumInput", "delta", "inputElem", "target", "input", "createEvent", "fragment", "buildMonthNav", "buildWeeks", "weekWrapper", "weekNumbers", "buildWeekdays", "buildDays", "buildTime", "toggleClass", "customAppend", "wrapper", "className", "_dayNumber", "dateIsEnabled", "dayElement", "isDateSelected", "isDateInRange", "focusOnDayElem", "targetNode", "getFirstAvailableDay", "startMonth", "endMonth", "m", "startIndex", "endIndex", "c", "getNextAvailableDay", "current", "givenMonth", "loopDelta", "numMonthDays", "focusOnDay", "offset", "activeElement", "dayFocused", "isInView", "startElem", "buildMonthDays", "firstOfMonth", "prevMonthDays", "daysInMonth", "days", "isMultiMonth", "prevMonthDayClass", "nextMonthDayClass", "dayNumber", "dayIndex", "dayNum", "dayContainer", "clearNode", "frag", "d", "shouldBuildMonth", "monthToStr", "buildMonth", "container", "monthNavFragment", "monthElement", "selectedMonth", "yearInput", "createNumberInput", "yearElement", "currentMonth", "buildMonths", "bool", "updateNavigationCurrentMonth", "separator", "hourInput", "minuteInput", "secondInput", "updateWeekdays", "firstDayOfWeek", "weekdays", "value", "isOffset", "triggerChangeEvent", "toInitial", "_", "isCalendarElem", "elem", "eventTarget_1", "isCalendarElement", "isInput", "lostFocus", "isIgnored", "newYear", "newYearNum", "isNewYear", "timeless", "dateToCheck", "array", "parsed", "valueChanged", "getDateStr", "allowInput", "allowKeydown", "allowInlineKeydown", "isTimeObj", "focusAndClose", "delta_1", "elems", "x", "cellClass", "hoverDate", "initialDate", "rangeStartDate", "rangeEndDate", "containsDisabled", "minRange", "maxRange", "duration", "hoverableCells", "dayElem", "timestamp", "outOfRange", "isBetween", "positionElement", "wasOpen", "minMaxDateSetter", "type", "inverseDateObj", "boolOpts", "userConfig", "formats", "dates", "parseDateRules", "timeMode", "defaultDateFormat", "defaultAltFormat", "minMaxTimeSetter", "val", "HOOKS", "hook", "arrayify", "pluginConf", "key", "getInputElem", "tokenRegex", "createDateFormatter", "customPositionElement", "calendarHeight", "acc", "child", "calendarWidth", "configPos", "configPosVertical", "configPosHorizontal", "inputBounds", "distanceFromBottom", "showOnTop", "top", "left", "isCenter", "isRight", "right", "rightMost", "centerMost", "doc", "getDocumentStyleSheet", "bodyWidth", "centerLeft", "centerBefore", "centerAfter", "centerIndex", "centerStyle", "editableSheet", "sheet", "err", "createStyleSheet", "style", "isSelectable", "day", "findParent", "selectedDate", "shouldChangeMonth", "selectedIndex", "b", "single", "range", "CALLBACKS", "updatePositionElement", "option", "setSelectedDate", "inputDate", "format", "arr", "rule", "preloadedDate", "inputType", "data", "hooks", "name", "specificFormat", "dObj", "isPrevMonth", "isNextMonth", "isKeyDown", "min", "max", "step", "curValue", "newValue", "isHourElem", "isMinuteElem", "_flatpickr", "nodeList", "nodes", "instances", "node", "selector", "l10n", "esm_default", "initDateSelector", "esm_default", "saveTableConfig", "element", "getElements", "addColumns", "event", "selectedOption", "selected", "removeColumns", "available", "submitFormConfig", "url", "formConfig", "__async", "apiPatch", "handleSubmit", "_a", "_b", "_c", "createToast", "reset", "path", "data", "value", "key", "res", "hasError", "options", "getSelectedOptions", "formData", "opt", "initTableConfig", "isShowHide", "value", "TableStateError", "message", "table", "__publicField", "ButtonState", "button", "rows", "row", "state", "replaceAll", "event", "TableState", "toggleEnabledButton", "findFirstAdjacent", "toggleDisabledButton", "toggleVirtualButton", "toggleDisconnectedButton", "err", "instance", "initInterfaceTable", "element", "getElements", "SideNav", "base", "__publicField", "StateManager", "attr", "attrs", "toggler", "event", "getElements", "link", "collapse", "element", "section", "collapseInstance", "Collapse", "action", "_a", "dropdownMenu", "isElement", "groupItem", "groupLink", "menuitem", "href", "initSideNav", "sidenav", "obsolete", "self", "f", "oldName", "newName", "rev", "wrapper", "args", "Utils", "_Utils", "els", "root", "doc", "el", "list", "itemClass", "n", "_a", "_b", "cont", "entry", "GridStack", "classes", "parent", "c", "strict", "a", "b", "x0", "x1", "y0", "y1", "nodes", "dir", "_c", "_d", "diffY", "id", "options", "style", "nonce", "sheet", "selector", "rules", "v", "value", "val", "h", "unit", "match", "target", "sources", "source", "key", "doMinMax", "node", "aVal", "bVal", "removeEl", "func", "delay", "isWaiting", "args", "position", "distance", "rect", "innerHeightOrClientHeight", "offsetDiffDown", "offsetDiffUp", "scrollEl", "prevScroll", "event", "height", "offsetTop", "pointerPosY", "top", "bottom", "obj", "__spreadValues", "skipFields", "ret", "k", "parentNode", "styles", "s", "e", "info", "evt", "p", "simulatedType", "simulatedEvent", "transformReference", "transformValues", "o", "tmp", "GridStackEngine", "_GridStackEngine", "opts", "flag", "doPack", "node", "nn", "collide", "opt", "area", "didMove", "newOpt", "counter", "moved", "__spreadProps", "__spreadValues", "newNN", "Utils", "skip", "skip2", "skipId", "skip2Id", "n", "o", "collides", "r0", "r", "overMax", "r2", "yOver", "xOver", "over", "w", "h", "top", "right", "bottom", "left", "a", "b", "_doSwap", "x", "y", "touching", "t", "layout", "doSort", "wasBatch", "wasColumnResize", "copyNodes", "index", "list", "after", "val", "dir", "newY", "i", "resizing", "_a", "id", "count", "defaults", "before", "copy", "verify", "removedNodes", "dirtyNodes", "nodeList", "column", "start", "found", "box", "triggerAddEvent", "dup", "skipCollision", "removeDOM", "triggerEvent", "clonedNode", "clone", "canMove", "c", "p", "_b", "wasUndefinedPack", "prevPos", "needToMove", "activeDrag", "a1", "a2", "row", "saveElement", "saveCB", "len", "wl", "l", "nodes", "ratio", "prevColumn", "doCompact", "newNodes", "cacheNodes", "lastIndex", "cacheNode", "_c", "j", "move", "scale", "clear", "existing", "n2", "prop", "gridDefaults", "DDManager", "isTouch", "DDTouch", "simulateMouseEvent", "e", "simulatedType", "touch", "simulatedEvent", "simulatePointerMouseEvent", "touchstart", "touchmove", "touchend", "wasDragging", "DDManager", "pointerdown", "pointerenter", "pointerleave", "DDResizableHandle", "_DDResizableHandle", "host", "dir", "option", "el", "isTouch", "touchstart", "pointerdown", "e", "touchmove", "touchend", "s", "_a", "_b", "name", "event", "DDBaseImplement", "event", "callback", "eventName", "DDResizable", "_DDResizable", "DDBaseImplement", "el", "option", "containmentRect", "newRect", "rect", "event", "callback", "opts", "updateHandles", "updateAutoHide", "key", "auto", "DDManager", "e", "dir", "DDResizableHandle", "Utils", "ev", "prop", "parent", "dragTransform", "i", "oEvent", "offsetX", "offsetY", "moveLeft", "moveUp", "constrain", "oWidth", "oHeight", "o", "maxWidth", "minWidth", "maxHeight", "minHeight", "width", "height", "containmentEl", "left", "top", "value", "scaleReciprocal", "handle", "skipMouseDown", "DDDraggable", "_DDDraggable", "DDBaseImplement", "el", "option", "_a", "handleName", "n", "event", "callback", "dragEl", "isTouch", "touchstart", "pointerdown", "forDestroy", "opts", "key", "e", "DDManager", "touchmove", "touchend", "ev", "Utils", "s", "pause", "grid", "_b", "__spreadValues", "helper", "prop", "style", "node", "transition", "containmentRect", "offset", "parent", "xformOffsetX", "xformOffsetY", "targetOffset", "DDDroppable", "DDBaseImplement", "el", "option", "event", "callback", "isTouch", "pointerenter", "pointerleave", "forDestroy", "opts", "key", "e", "DDManager", "ev", "Utils", "calledByEnter", "_a", "parentDrop", "parent", "drag", "__spreadValues", "DDElement", "_DDElement", "el", "eventName", "callback", "opts", "DDDraggable", "DDResizable", "DDDroppable", "DDGridStack", "el", "opts", "key", "value", "dEl", "grid", "handles", "autoHide", "__spreadProps", "__spreadValues", "_a", "name", "callback", "event", "DDManager", "els", "create", "hosts", "Utils", "list", "e", "DDElement", "d", "dd", "DDGridStack", "GridStack", "_GridStack", "options", "elOrString", "el", "Utils", "selector", "grids", "parent", "opt", "grid", "__spreadValues", "engineClass", "placeholderChild", "gridDefaults", "opts", "_a", "_b", "_c", "rowAttr", "bk", "oldOpts", "oneSize", "oneColumn", "b", "resp", "a", "defaults", "__spreadProps", "parentGridItem", "parentNode", "isTouch", "GridStackEngine", "cbNodes", "maxH", "n", "children", "DDManager", "w", "node", "domAttr", "ops", "nodeToAdd", "saveContent", "subGridTemplate", "autoColumn", "content", "newItem", "newItemOpt", "h", "style", "subGrid", "nodeThatRemoved", "pGrid", "saveGridOpt", "saveCB", "list", "itemContent", "listOrOpt", "o", "origShow", "items", "addRemove", "column", "maxColumn", "prevCB", "removed", "blank", "updateNodes", "item", "sub", "flag", "forcePixel", "rows", "val", "update", "marginDiff", "data", "forBreakpoint", "newColumn", "i", "layout", "doSort", "oldColumn", "removeDOM", "position", "useDocRelative", "box", "containerPos", "relativeLeft", "relativeTop", "columnWidth", "rowHeight", "x", "y", "els", "name", "callback", "event", "key", "triggerEvent", "doAnimate", "delay", "updateClass", "recurse", "keys", "m", "k", "changed", "ddChanged", "widthChanged", "wasUpdating", "cell", "height", "padding", "itemH", "wantedH", "subRec", "parentRec", "child", "softMax", "relative", "rot", "pivotX", "pivotY", "_orig", "value", "elements", "addedNodes", "removedNodes", "type", "styleLocation", "forceUpdate", "cellHeight", "cellHeightUnit", "prefix", "top", "bottom", "right", "left", "placeholder", "getHeight", "row", "unit", "cssMinHeight", "minRow", "triggerAddEvent", "sizeToContent", "attrs", "clearDefaultAttr", "classes", "clientWidth", "columnChanged", "nodes", "forceRemove", "trackSize", "margin", "margins", "dragIn", "dragInOptions", "widgets", "root", "doEnable", "cellWidth", "onDrag", "helper", "helperRect", "rect", "ui", "canAccept", "error", "wasAdded", "wasSidebar", "noAnim", "origNode", "oGrid", "remove", "trashEl", "noMove", "noResize", "onStartMoving", "dragOrResize", "onEndMoving", "target", "gridEl", "colLeft", "rowLeft", "p", "resizing", "mLeft", "mRight", "mTop", "mBottom", "mHeight", "mWidth", "distance", "prev", "extra", "obsolete", "lockDashboard", "dashboard", "unlockDashboard", "saveDashboardLayout", "url", "gridData", "__async", "apiPatch", "initDashboard", "grid", "GridStack", "gridLockButton", "gridUnlockButton", "gridSaveButton", "res", "hasError", "createToast", "setRackView", "view", "elevation", "showRackElements", "hideRackElements", "selector", "_a", "_b", "elements", "element", "handleRackViewSelect", "newView", "state", "getElements", "initRackElevation", "initialView", "rackImagesState", "control", "o", "event", "handleSelection", "link", "selector_results", "target_id", "target", "label", "value", "initObjectSelector", "element", "getElements", "handleQuickAddObject", "quick_add", "object_id", "object_repr", "target_id", "target", "modal_element", "modal", "Modal", "initQuickAdd", "quick_add_modal", "initDepedencies", "initButtons", "initClipboard", "initSelects", "initObjectSelector", "initQuickAdd", "initBootstrap", "initMessages", "initHtmx", "handleSavedFilterChange", "event", "savedFilter", "baseUrl", "preFilter", "selectedOptions", "option", "initSavedFilterSelect", "divResults", "isTruthy", "savedFilterSelect", "initDocument", "init", "initBootstrap", "initColorMode", "initMessages", "initForms", "initQuickSearch", "initSelects", "initDateSelector", "initButtons", "initClipboard", "initTableConfig", "initInterfaceTable", "initSideNav", "initDashboard", "initRackElevation", "initHtmx", "initSavedFilterSelect", "initWindow", "documentForms", "documentForm", "event", "formData", "name", "value", "contentContainer"] + "mappings": "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", + "names": ["require_htmx_min", "__commonJSMin", "e", "t", "r", "n", "i", "a", "o", "s", "l", "u", "f", "c", "h", "v", "M", "X", "d", "D", "U", "g", "p", "m", "x", "B", "F", "V", "y", "b", "w", "j", "S", "E", "_", "C", "R", "z", "$", "T", "O", "W", "q", "H", "G", "J", "L", "A", "Z", "N", "K", "I", "k", "P", "Y", "require_clipboard", "__commonJSMin", "exports", "module", "root", "factory", "__webpack_modules__", "__unused_webpack_module", "__webpack_exports__", "__webpack_require__", "clipboard", "tiny_emitter", "tiny_emitter_default", "listen", "listen_default", "src_select", "select_default", "command", "type", "err", "ClipboardActionCut", "target", "selectedText", "actions_cut", "createFakeElement", "value", "isRTL", "fakeElement", "yPosition", "fakeCopyAction", "options", "ClipboardActionCopy", "actions_copy", "_typeof", "obj", "ClipboardActionDefault", "_options$action", "action", "container", "text", "actions_default", "clipboard_typeof", "_classCallCheck", "instance", "Constructor", "_defineProperties", "props", "i", "descriptor", "_createClass", "protoProps", "staticProps", "_inherits", "subClass", "superClass", "_setPrototypeOf", "o", "p", "_createSuper", "Derived", "hasNativeReflectConstruct", "_isNativeReflectConstruct", "Super", "_getPrototypeOf", "result", "NewTarget", "_possibleConstructorReturn", "self", "call", "_assertThisInitialized", "e", "getAttributeValue", "suffix", "element", "attribute", "Clipboard", "_Emitter", "_super", "trigger", "_this", "_this2", "selector", "actions", "support", "DOCUMENT_NODE_TYPE", "proto", "closest", "__unused_webpack_exports", "_delegate", "callback", "useCapture", "listenerFn", "listener", "delegate", "elements", "is", "listenNode", "listenNodeList", "listenSelector", "node", "nodeList", "select", "isReadOnly", "selection", "range", "E", "name", "ctx", "data", "evtArr", "len", "evts", "liveEvents", "__webpack_module_cache__", "moduleId", "getter", "definition", "key", "prop", "lib_exports", "__export", "afterMain", "afterRead", "afterWrite", "applyStyles_default", "arrow_default", "auto", "basePlacements", "beforeMain", "beforeRead", "beforeWrite", "bottom", "clippingParents", "computeStyles_default", "createPopper", "detectOverflow", "end", "eventListeners_default", "flip_default", "hide_default", "left", "main", "modifierPhases", "offset_default", "placements", "popper", "popperGenerator", "popperOffsets_default", "preventOverflow_default", "read", "reference", "right", "start", "top", "variationPlacements", "viewport", "write", "top", "bottom", "right", "left", "auto", "basePlacements", "start", "end", "clippingParents", "viewport", "popper", "reference", "variationPlacements", "acc", "placement", "placements", "beforeRead", "read", "afterRead", "beforeMain", "main", "afterMain", "beforeWrite", "write", "afterWrite", "modifierPhases", "getNodeName", "element", "getWindow", "node", "ownerDocument", "isElement", "node", "OwnElement", "getWindow", "isHTMLElement", "isShadowRoot", "applyStyles", "_ref", "state", "name", "style", "attributes", "element", "isHTMLElement", "getNodeName", "value", "effect", "_ref2", "initialStyles", "styleProperties", "property", "attribute", "applyStyles_default", "getBasePlacement", "placement", "max", "min", "round", "getUAString", "uaData", "item", "isLayoutViewport", "getUAString", "getBoundingClientRect", "element", "includeScale", "isFixedStrategy", "clientRect", "scaleX", "scaleY", "isHTMLElement", "round", "_ref", "isElement", "getWindow", "visualViewport", "addVisualOffsets", "isLayoutViewport", "x", "y", "width", "height", "getLayoutRect", "element", "clientRect", "getBoundingClientRect", "width", "height", "contains", "parent", "child", "rootNode", "isShadowRoot", "next", "getComputedStyle", "element", "getWindow", "isTableElement", "element", "getNodeName", "getDocumentElement", "element", "isElement", "getParentNode", "element", "getNodeName", "isShadowRoot", "getDocumentElement", "getTrueOffsetParent", "element", "isHTMLElement", "getComputedStyle", "getContainingBlock", "isFirefox", "getUAString", "isIE", "elementCss", "currentNode", "getParentNode", "isShadowRoot", "getNodeName", "css", "getOffsetParent", "window", "getWindow", "offsetParent", "isTableElement", "getMainAxisFromPlacement", "placement", "within", "min", "value", "max", "withinMaxClamp", "v", "getFreshSideObject", "mergePaddingObject", "paddingObject", "getFreshSideObject", "expandToHashMap", "value", "keys", "hashMap", "key", "toPaddingObject", "padding", "state", "mergePaddingObject", "expandToHashMap", "basePlacements", "arrow", "_ref", "_state$modifiersData$", "name", "options", "arrowElement", "popperOffsets", "basePlacement", "getBasePlacement", "axis", "getMainAxisFromPlacement", "isVertical", "left", "right", "len", "paddingObject", "arrowRect", "getLayoutRect", "minProp", "top", "maxProp", "bottom", "endDiff", "startDiff", "arrowOffsetParent", "getOffsetParent", "clientSize", "centerToReference", "min", "max", "center", "offset", "within", "axisProp", "effect", "_ref2", "_options$element", "contains", "arrow_default", "getVariation", "placement", "unsetSides", "roundOffsetsByDPR", "_ref", "win", "x", "y", "dpr", "round", "mapToStyles", "_ref2", "_Object$assign2", "popper", "popperRect", "placement", "variation", "offsets", "position", "gpuAcceleration", "adaptive", "roundOffsets", "isFixed", "_offsets$x", "_offsets$y", "_ref3", "hasX", "hasY", "sideX", "left", "sideY", "top", "offsetParent", "getOffsetParent", "heightProp", "widthProp", "getWindow", "getDocumentElement", "getComputedStyle", "right", "end", "bottom", "offsetY", "offsetX", "commonStyles", "_ref4", "_Object$assign", "computeStyles", "_ref5", "state", "options", "_options$gpuAccelerat", "_options$adaptive", "_options$roundOffsets", "getBasePlacement", "getVariation", "computeStyles_default", "passive", "effect", "_ref", "state", "instance", "options", "_options$scroll", "scroll", "_options$resize", "resize", "window", "getWindow", "scrollParents", "scrollParent", "eventListeners_default", "hash", "getOppositePlacement", "placement", "matched", "hash", "getOppositeVariationPlacement", "placement", "matched", "getWindowScroll", "node", "win", "getWindow", "scrollLeft", "scrollTop", "getWindowScrollBarX", "element", "getBoundingClientRect", "getDocumentElement", "getWindowScroll", "getViewportRect", "element", "strategy", "win", "getWindow", "html", "getDocumentElement", "visualViewport", "width", "height", "x", "y", "layoutViewport", "isLayoutViewport", "getWindowScrollBarX", "getDocumentRect", "element", "_element$ownerDocumen", "html", "getDocumentElement", "winScroll", "getWindowScroll", "body", "width", "max", "height", "x", "getWindowScrollBarX", "y", "getComputedStyle", "isScrollParent", "element", "_getComputedStyle", "getComputedStyle", "overflow", "overflowX", "overflowY", "getScrollParent", "node", "getNodeName", "isHTMLElement", "isScrollParent", "getParentNode", "listScrollParents", "element", "list", "_element$ownerDocumen", "scrollParent", "getScrollParent", "isBody", "win", "getWindow", "target", "isScrollParent", "updatedList", "getParentNode", "rectToClientRect", "rect", "getInnerBoundingClientRect", "element", "strategy", "rect", "getBoundingClientRect", "getClientRectFromMixedType", "clippingParent", "viewport", "rectToClientRect", "getViewportRect", "isElement", "getDocumentRect", "getDocumentElement", "getClippingParents", "clippingParents", "listScrollParents", "getParentNode", "canEscapeClipping", "getComputedStyle", "clipperElement", "isHTMLElement", "getOffsetParent", "contains", "getNodeName", "getClippingRect", "boundary", "rootBoundary", "mainClippingParents", "firstClippingParent", "clippingRect", "accRect", "max", "min", "computeOffsets", "_ref", "reference", "element", "placement", "basePlacement", "getBasePlacement", "variation", "getVariation", "commonX", "commonY", "offsets", "top", "bottom", "right", "left", "mainAxis", "getMainAxisFromPlacement", "len", "start", "end", "detectOverflow", "state", "options", "_options", "_options$placement", "placement", "_options$strategy", "strategy", "_options$boundary", "boundary", "clippingParents", "_options$rootBoundary", "rootBoundary", "viewport", "_options$elementConte", "elementContext", "popper", "_options$altBoundary", "altBoundary", "_options$padding", "padding", "paddingObject", "mergePaddingObject", "expandToHashMap", "basePlacements", "altContext", "reference", "popperRect", "element", "clippingClientRect", "getClippingRect", "isElement", "getDocumentElement", "referenceClientRect", "getBoundingClientRect", "popperOffsets", "computeOffsets", "popperClientRect", "rectToClientRect", "elementClientRect", "overflowOffsets", "offsetData", "offset", "key", "multiply", "right", "bottom", "axis", "top", "computeAutoPlacement", "state", "options", "_options", "placement", "boundary", "rootBoundary", "padding", "flipVariations", "_options$allowedAutoP", "allowedAutoPlacements", "placements", "variation", "getVariation", "variationPlacements", "basePlacements", "allowedPlacements", "overflows", "acc", "detectOverflow", "getBasePlacement", "a", "b", "getExpandedFallbackPlacements", "placement", "getBasePlacement", "auto", "oppositePlacement", "getOppositePlacement", "getOppositeVariationPlacement", "flip", "_ref", "state", "options", "name", "_options$mainAxis", "checkMainAxis", "_options$altAxis", "checkAltAxis", "specifiedFallbackPlacements", "padding", "boundary", "rootBoundary", "altBoundary", "_options$flipVariatio", "flipVariations", "allowedAutoPlacements", "preferredPlacement", "basePlacement", "isBasePlacement", "fallbackPlacements", "placements", "acc", "computeAutoPlacement", "referenceRect", "popperRect", "checksMap", "makeFallbackChecks", "firstFittingPlacement", "i", "_basePlacement", "isStartVariation", "getVariation", "start", "isVertical", "top", "bottom", "len", "overflow", "detectOverflow", "mainVariationSide", "right", "left", "altVariationSide", "checks", "check", "numberOfChecks", "_loop", "_i", "fittingPlacement", "_ret", "flip_default", "getSideOffsets", "overflow", "rect", "preventedOffsets", "isAnySideFullyClipped", "top", "right", "bottom", "left", "side", "hide", "_ref", "state", "name", "referenceRect", "popperRect", "referenceOverflow", "detectOverflow", "popperAltOverflow", "referenceClippingOffsets", "popperEscapeOffsets", "isReferenceHidden", "hasPopperEscaped", "hide_default", "distanceAndSkiddingToXY", "placement", "rects", "offset", "basePlacement", "getBasePlacement", "invertDistance", "left", "top", "_ref", "skidding", "distance", "right", "_ref2", "state", "options", "name", "_options$offset", "data", "placements", "acc", "_data$state$placement", "x", "y", "offset_default", "popperOffsets", "_ref", "state", "name", "computeOffsets", "popperOffsets_default", "getAltAxis", "axis", "preventOverflow", "_ref", "state", "options", "name", "_options$mainAxis", "checkMainAxis", "_options$altAxis", "checkAltAxis", "boundary", "rootBoundary", "altBoundary", "padding", "_options$tether", "tether", "_options$tetherOffset", "tetherOffset", "overflow", "detectOverflow", "basePlacement", "getBasePlacement", "variation", "getVariation", "isBasePlacement", "mainAxis", "getMainAxisFromPlacement", "altAxis", "getAltAxis", "popperOffsets", "referenceRect", "popperRect", "tetherOffsetValue", "normalizedTetherOffsetValue", "offsetModifierState", "data", "_offsetModifierState$", "mainSide", "top", "left", "altSide", "bottom", "right", "len", "offset", "min", "max", "additive", "minLen", "start", "maxLen", "arrowElement", "arrowRect", "getLayoutRect", "arrowPaddingObject", "getFreshSideObject", "arrowPaddingMin", "arrowPaddingMax", "arrowLen", "within", "minOffset", "maxOffset", "arrowOffsetParent", "getOffsetParent", "clientOffset", "offsetModifierValue", "tetherMin", "tetherMax", "preventedOffset", "_offsetModifierState$2", "_mainSide", "_altSide", "_offset", "_len", "_min", "_max", "isOriginSide", "_offsetModifierValue", "_tetherMin", "_tetherMax", "_preventedOffset", "withinMaxClamp", "preventOverflow_default", "getHTMLElementScroll", "element", "getNodeScroll", "node", "getWindow", "isHTMLElement", "getWindowScroll", "getHTMLElementScroll", "isElementScaled", "element", "rect", "scaleX", "round", "scaleY", "getCompositeRect", "elementOrVirtualElement", "offsetParent", "isFixed", "isOffsetParentAnElement", "isHTMLElement", "offsetParentIsScaled", "documentElement", "getDocumentElement", "getBoundingClientRect", "scroll", "offsets", "getNodeName", "isScrollParent", "getNodeScroll", "getWindowScrollBarX", "order", "modifiers", "map", "visited", "result", "modifier", "sort", "requires", "dep", "depModifier", "orderModifiers", "orderedModifiers", "modifierPhases", "acc", "phase", "debounce", "fn", "pending", "resolve", "mergeByName", "modifiers", "merged", "current", "existing", "key", "DEFAULT_OPTIONS", "areValidElements", "_len", "args", "_key", "element", "popperGenerator", "generatorOptions", "_generatorOptions", "_generatorOptions$def", "defaultModifiers", "_generatorOptions$def2", "defaultOptions", "reference", "popper", "options", "state", "effectCleanupFns", "isDestroyed", "instance", "setOptionsAction", "cleanupModifierEffects", "isElement", "listScrollParents", "orderedModifiers", "orderModifiers", "mergeByName", "m", "runModifierEffects", "_state$elements", "getCompositeRect", "getOffsetParent", "getLayoutRect", "modifier", "index", "_state$orderedModifie", "fn", "_state$orderedModifie2", "_options", "name", "debounce", "resolve", "_ref", "_ref$options", "effect", "cleanupFn", "noopFn", "createPopper", "defaultModifiers", "eventListeners_default", "popperOffsets_default", "computeStyles_default", "applyStyles_default", "createPopper", "popperGenerator", "defaultModifiers", "eventListeners_default", "popperOffsets_default", "computeStyles_default", "applyStyles_default", "offset_default", "flip_default", "preventOverflow_default", "arrow_default", "hide_default", "createPopper", "popperGenerator", "elementMap", "Map", "Data", "set", "element", "key", "instance", "has", "instanceMap", "get", "size", "console", "error", "Array", "from", "keys", "remove", "delete", "MAX_UID", "MILLISECONDS_MULTIPLIER", "TRANSITION_END", "parseSelector", "selector", "window", "CSS", "escape", "replace", "match", "id", "toType", "object", "Object", "prototype", "toString", "call", "toLowerCase", "getUID", "prefix", "Math", "floor", "random", "document", "getElementById", "getTransitionDurationFromElement", "transitionDuration", "transitionDelay", "getComputedStyle", "floatTransitionDuration", "Number", "parseFloat", "floatTransitionDelay", "split", "triggerTransitionEnd", "dispatchEvent", "Event", "isElement", "jquery", "nodeType", "getElement", "length", "querySelector", "isVisible", "getClientRects", "elementIsVisible", "getPropertyValue", "closedDetails", "closest", "summary", "parentNode", "isDisabled", "Node", "ELEMENT_NODE", "classList", "contains", "disabled", "hasAttribute", "getAttribute", "findShadowRoot", "documentElement", "attachShadow", "getRootNode", "root", "ShadowRoot", "noop", "reflow", "offsetHeight", "getjQuery", "jQuery", "body", "DOMContentLoadedCallbacks", "onDOMContentLoaded", "callback", "readyState", "addEventListener", "push", "isRTL", "dir", "defineJQueryPlugin", "plugin", "$", "name", "NAME", "JQUERY_NO_CONFLICT", "fn", "jQueryInterface", "Constructor", "noConflict", "execute", "possibleCallback", "args", "defaultValue", "executeAfterTransition", "transitionElement", "waitForTransition", "emulatedDuration", "called", "handler", "target", "removeEventListener", "setTimeout", "getNextActiveElement", "list", "activeElement", "shouldGetNext", "isCycleAllowed", "listLength", "index", "indexOf", "max", "min", "namespaceRegex", "stripNameRegex", "stripUidRegex", "eventRegistry", "uidEvent", "customEvents", "mouseenter", "mouseleave", "nativeEvents", "Set", "makeEventUid", "uid", "getElementEvents", "bootstrapHandler", "event", "hydrateObj", "delegateTarget", "oneOff", "EventHandler", "off", "type", "apply", "bootstrapDelegationHandler", "domElements", "querySelectorAll", "domElement", "findHandler", "events", "callable", "delegationSelector", "values", "find", "normalizeParameters", "originalTypeEvent", "delegationFunction", "isDelegated", "typeEvent", "getTypeEvent", "addHandler", "relatedTarget", "handlers", "previousFunction", "removeHandler", "Boolean", "removeNamespacedHandlers", "namespace", "storeElementEvent", "handlerKey", "entries", "includes", "on", "one", "inNamespace", "isNamespace", "startsWith", "elementEvent", "slice", "keyHandlers", "trigger", "jQueryEvent", "bubbles", "nativeDispatch", "defaultPrevented", "isPropagationStopped", "isImmediatePropagationStopped", "isDefaultPrevented", "evt", "cancelable", "preventDefault", "obj", "meta", "value", "_unused", "defineProperty", "configurable", "normalizeData", "JSON", "parse", "decodeURIComponent", "normalizeDataKey", "chr", "Manipulator", "setDataAttribute", "setAttribute", "removeDataAttribute", "removeAttribute", "getDataAttributes", "attributes", "bsKeys", "dataset", "filter", "pureKey", "charAt", "getDataAttribute", "Config", "Default", "DefaultType", "Error", "_getConfig", "config", "_mergeConfigObj", "_configAfterMerge", "_typeCheckConfig", "jsonConfig", "__spreadValues", "constructor", "configTypes", "property", "expectedTypes", "valueType", "RegExp", "test", "TypeError", "toUpperCase", "VERSION", "BaseComponent", "_element", "_config", "DATA_KEY", "dispose", "EVENT_KEY", "propertyName", "getOwnPropertyNames", "_queueCallback", "isAnimated", "getInstance", "getOrCreateInstance", "eventName", "getSelector", "hrefAttribute", "trim", "map", "sel", "join", "SelectorEngine", "concat", "Element", "findOne", "children", "child", "matches", "parents", "ancestor", "prev", "previous", "previousElementSibling", "next", "nextElementSibling", "focusableChildren", "focusables", "el", "getSelectorFromElement", "getElementFromSelector", "getMultipleElementsFromSelector", "enableDismissTrigger", "component", "method", "clickEvent", "tagName", "EVENT_CLOSE", "EVENT_CLOSED", "CLASS_NAME_FADE", "CLASS_NAME_SHOW", "Alert", "close", "_destroyElement", "each", "data", "undefined", "DATA_API_KEY", "CLASS_NAME_ACTIVE", "SELECTOR_DATA_TOGGLE", "EVENT_CLICK_DATA_API", "Button", "toggle", "button", "EVENT_TOUCHSTART", "EVENT_TOUCHMOVE", "EVENT_TOUCHEND", "EVENT_POINTERDOWN", "EVENT_POINTERUP", "POINTER_TYPE_TOUCH", "POINTER_TYPE_PEN", "CLASS_NAME_POINTER_EVENT", "SWIPE_THRESHOLD", "endCallback", "leftCallback", "rightCallback", "Swipe", "isSupported", "_deltaX", "_supportPointerEvents", "PointerEvent", "_initEvents", "_start", "touches", "clientX", "_eventIsPointerPenTouch", "_end", "_handleSwipe", "_move", "absDeltaX", "abs", "direction", "add", "pointerType", "navigator", "maxTouchPoints", "ARROW_LEFT_KEY", "ARROW_RIGHT_KEY", "TOUCHEVENT_COMPAT_WAIT", "ORDER_NEXT", "ORDER_PREV", "DIRECTION_LEFT", "DIRECTION_RIGHT", "EVENT_SLIDE", "EVENT_SLID", "EVENT_KEYDOWN", "EVENT_MOUSEENTER", "EVENT_MOUSELEAVE", "EVENT_DRAG_START", "EVENT_LOAD_DATA_API", "CLASS_NAME_CAROUSEL", "CLASS_NAME_SLIDE", "CLASS_NAME_END", "CLASS_NAME_START", "CLASS_NAME_NEXT", "CLASS_NAME_PREV", "SELECTOR_ACTIVE", "SELECTOR_ITEM", "SELECTOR_ACTIVE_ITEM", "SELECTOR_ITEM_IMG", "SELECTOR_INDICATORS", "SELECTOR_DATA_SLIDE", "SELECTOR_DATA_RIDE", "KEY_TO_DIRECTION", "interval", "keyboard", "pause", "ride", "touch", "wrap", "Carousel", "_interval", "_activeElement", "_isSliding", "touchTimeout", "_swipeHelper", "_indicatorsElement", "_addEventListeners", "cycle", "_slide", "nextWhenVisible", "hidden", "_clearInterval", "_updateInterval", "setInterval", "_maybeEnableCycle", "to", "items", "_getItems", "activeIndex", "_getItemIndex", "_getActive", "order", "defaultInterval", "_keydown", "_addTouchEventListeners", "img", "swipeConfig", "_directionToOrder", "endCallBack", "clearTimeout", "_setActiveIndicatorElement", "activeIndicator", "newActiveIndicator", "elementInterval", "parseInt", "isNext", "nextElement", "nextElementIndex", "triggerEvent", "_orderToDirection", "isCycling", "directionalClassName", "orderClassName", "completeCallBack", "_isAnimated", "clearInterval", "carousel", "slideIndex", "carousels", "EVENT_SHOW", "EVENT_SHOWN", "EVENT_HIDE", "EVENT_HIDDEN", "CLASS_NAME_COLLAPSE", "CLASS_NAME_COLLAPSING", "CLASS_NAME_COLLAPSED", "CLASS_NAME_DEEPER_CHILDREN", "CLASS_NAME_HORIZONTAL", "WIDTH", "HEIGHT", "SELECTOR_ACTIVES", "parent", "Collapse", "_isTransitioning", "_triggerArray", "toggleList", "elem", "filterElement", "foundElement", "_initializeChildren", "_addAriaAndCollapsedClass", "_isShown", "hide", "show", "activeChildren", "_getFirstLevelChildren", "activeInstance", "dimension", "_getDimension", "style", "complete", "scrollSize", "getBoundingClientRect", "selected", "triggerArray", "isOpen", "ESCAPE_KEY", "TAB_KEY", "ARROW_UP_KEY", "ARROW_DOWN_KEY", "RIGHT_MOUSE_BUTTON", "EVENT_KEYDOWN_DATA_API", "EVENT_KEYUP_DATA_API", "CLASS_NAME_DROPUP", "CLASS_NAME_DROPEND", "CLASS_NAME_DROPSTART", "CLASS_NAME_DROPUP_CENTER", "CLASS_NAME_DROPDOWN_CENTER", "SELECTOR_DATA_TOGGLE_SHOWN", "SELECTOR_MENU", "SELECTOR_NAVBAR", "SELECTOR_NAVBAR_NAV", "SELECTOR_VISIBLE_ITEMS", "PLACEMENT_TOP", "PLACEMENT_TOPEND", "PLACEMENT_BOTTOM", "PLACEMENT_BOTTOMEND", "PLACEMENT_RIGHT", "PLACEMENT_LEFT", "PLACEMENT_TOPCENTER", "PLACEMENT_BOTTOMCENTER", "autoClose", "boundary", "display", "offset", "popperConfig", "reference", "Dropdown", "_popper", "_parent", "_menu", "_inNavbar", "_detectNavbar", "showEvent", "_createPopper", "focus", "_completeHide", "destroy", "update", "hideEvent", "Popper", "referenceElement", "_getPopperConfig", "createPopper", "_getPlacement", "parentDropdown", "isEnd", "_getOffset", "popperData", "defaultBsPopperConfig", "placement", "modifiers", "options", "enabled", "_selectMenuItem", "clearMenus", "openToggles", "context", "composedPath", "isMenuTarget", "dataApiKeydownHandler", "isInput", "isEscapeEvent", "isUpOrDownEvent", "getToggleButton", "stopPropagation", "EVENT_MOUSEDOWN", "className", "clickCallback", "rootElement", "Backdrop", "_isAppended", "_append", "_getElement", "_emulateAnimation", "backdrop", "createElement", "append", "EVENT_FOCUSIN", "EVENT_KEYDOWN_TAB", "TAB_NAV_FORWARD", "TAB_NAV_BACKWARD", "autofocus", "trapElement", "FocusTrap", "_isActive", "_lastTabNavDirection", "activate", "_handleFocusin", "_handleKeydown", "deactivate", "elements", "shiftKey", "SELECTOR_FIXED_CONTENT", "SELECTOR_STICKY_CONTENT", "PROPERTY_PADDING", "PROPERTY_MARGIN", "ScrollBarHelper", "getWidth", "documentWidth", "clientWidth", "innerWidth", "width", "_disableOverFlow", "_setElementAttributes", "calculatedValue", "reset", "_resetElementAttributes", "isOverflowing", "_saveInitialAttribute", "overflow", "styleProperty", "scrollbarWidth", "manipulationCallBack", "setProperty", "_applyManipulationCallback", "actualValue", "removeProperty", "callBack", "EVENT_HIDE_PREVENTED", "EVENT_RESIZE", "EVENT_CLICK_DISMISS", "EVENT_MOUSEDOWN_DISMISS", "EVENT_KEYDOWN_DISMISS", "CLASS_NAME_OPEN", "CLASS_NAME_STATIC", "OPEN_SELECTOR", "SELECTOR_DIALOG", "SELECTOR_MODAL_BODY", "Modal", "_dialog", "_backdrop", "_initializeBackDrop", "_focustrap", "_initializeFocusTrap", "_scrollBar", "_adjustDialog", "_showElement", "_hideModal", "handleUpdate", "scrollTop", "modalBody", "transitionComplete", "_triggerBackdropTransition", "event2", "_resetAdjustments", "isModalOverflowing", "scrollHeight", "clientHeight", "initialOverflowY", "overflowY", "isBodyOverflowing", "paddingLeft", "paddingRight", "alreadyOpen", "CLASS_NAME_SHOWING", "CLASS_NAME_HIDING", "CLASS_NAME_BACKDROP", "scroll", "Offcanvas", "blur", "completeCallback", "position", "ARIA_ATTRIBUTE_PATTERN", "DefaultAllowlist", "a", "area", "b", "br", "col", "code", "dd", "div", "dl", "dt", "em", "hr", "h1", "h2", "h3", "h4", "h5", "h6", "i", "li", "ol", "p", "pre", "s", "small", "span", "sub", "sup", "strong", "u", "ul", "uriAttributes", "SAFE_URL_PATTERN", "allowedAttribute", "attribute", "allowedAttributeList", "attributeName", "nodeName", "nodeValue", "attributeRegex", "some", "regex", "sanitizeHtml", "unsafeHtml", "allowList", "sanitizeFunction", "createdDocument", "DOMParser", "parseFromString", "elementName", "attributeList", "allowedAttributes", "innerHTML", "content", "extraClass", "html", "sanitize", "sanitizeFn", "template", "DefaultContentType", "entry", "TemplateFactory", "getContent", "_resolvePossibleFunction", "hasContent", "changeContent", "_checkContent", "toHtml", "templateWrapper", "_maybeSanitize", "text", "_setContent", "arg", "templateElement", "_putElementInTemplate", "textContent", "DISALLOWED_ATTRIBUTES", "CLASS_NAME_MODAL", "SELECTOR_TOOLTIP_INNER", "SELECTOR_MODAL", "EVENT_MODAL_HIDE", "TRIGGER_HOVER", "TRIGGER_FOCUS", "TRIGGER_CLICK", "TRIGGER_MANUAL", "EVENT_INSERTED", "EVENT_CLICK", "EVENT_FOCUSOUT", "AttachmentMap", "AUTO", "TOP", "RIGHT", "BOTTOM", "LEFT", "animation", "container", "customClass", "delay", "fallbackPlacements", "title", "Tooltip", "_isEnabled", "_timeout", "_isHovered", "_activeTrigger", "_templateFactory", "_newContent", "tip", "_setListeners", "_fixTitle", "enable", "disable", "toggleEnabled", "click", "_leave", "_enter", "_hideModalHandler", "_disposePopper", "_isWithContent", "isInTheDom", "ownerDocument", "_getTipElement", "_isWithActiveTrigger", "_getTitle", "_createTipElement", "_getContentForTemplate", "_getTemplateFactory", "tipId", "setContent", "__spreadProps", "_initializeOnDelegatedTarget", "_getDelegateConfig", "attachment", "phase", "state", "triggers", "eventIn", "eventOut", "_setTimeout", "timeout", "dataAttributes", "dataAttribute", "SELECTOR_TITLE", "SELECTOR_CONTENT", "Popover", "_getContent", "EVENT_ACTIVATE", "CLASS_NAME_DROPDOWN_ITEM", "SELECTOR_DATA_SPY", "SELECTOR_TARGET_LINKS", "SELECTOR_NAV_LIST_GROUP", "SELECTOR_NAV_LINKS", "SELECTOR_NAV_ITEMS", "SELECTOR_LIST_ITEMS", "SELECTOR_LINK_ITEMS", "SELECTOR_DROPDOWN", "SELECTOR_DROPDOWN_TOGGLE", "rootMargin", "smoothScroll", "threshold", "ScrollSpy", "_targetLinks", "_observableSections", "_rootElement", "_activeTarget", "_observer", "_previousScrollData", "visibleEntryTop", "parentScrollTop", "refresh", "_initializeTargetsAndObservables", "_maybeEnableSmoothScroll", "disconnect", "_getNewObserver", "section", "observe", "observableSection", "hash", "height", "offsetTop", "scrollTo", "top", "behavior", "IntersectionObserver", "_observerCallback", "targetElement", "_process", "userScrollsDown", "isIntersecting", "_clearActiveClass", "entryIsLowerThanPrevious", "targetLinks", "anchor", "decodeURI", "_activateParents", "listGroup", "item", "activeNodes", "node", "spy", "HOME_KEY", "END_KEY", "CLASS_DROPDOWN", "SELECTOR_DROPDOWN_MENU", "NOT_SELECTOR_DROPDOWN_TOGGLE", "SELECTOR_TAB_PANEL", "SELECTOR_OUTER", "SELECTOR_INNER", "SELECTOR_INNER_ELEM", "SELECTOR_DATA_TOGGLE_ACTIVE", "Tab", "_setInitialAttributes", "_getChildren", "innerElem", "_elemIsActive", "active", "_getActiveElem", "_deactivate", "_activate", "relatedElem", "_toggleDropDown", "nextActiveElement", "preventScroll", "_setAttributeIfNotExists", "_setInitialAttributesOnChild", "_getInnerElement", "isActive", "outerElem", "_getOuterElement", "_setInitialAttributesOnTargetPanel", "open", "EVENT_MOUSEOVER", "EVENT_MOUSEOUT", "CLASS_NAME_HIDE", "autohide", "Toast", "_hasMouseInteraction", "_hasKeyboardInteraction", "_clearTimeout", "_maybeScheduleHide", "isShown", "_onInteraction", "isInteracting", "import_htmx", "forEvents", "events", "callback", "event", "MicroEvent", "fct", "event_array", "n", "args", "self", "MicroPlugin", "Interface", "name", "fn", "plugins", "key", "self", "queue", "plugin", "arrayToPattern", "chars", "maxValueLength", "sequencePattern", "array", "hasDuplicates", "pattern", "prev_char_count", "prev_pattern", "char", "i", "setToPattern", "escape_regex", "str", "longest", "value", "unicodeLength", "allSubstrings", "input", "result", "start", "subresult", "tmp", "code_points", "accent_pat", "unicode_map", "multi_char_reg", "max_char_length", "latin_convert", "latin_condensed", "latin", "unicode", "i", "char", "convert_pat", "initialize", "_code_points", "generateMap", "normalize", "str", "form", "asciifold", "result", "_asciifold", "generator", "code_point_min", "code_point_max", "composed", "folded", "generateSets", "unicode_sets", "addMatching", "to_add", "folded_set", "patt", "setToPattern", "escape_regex", "value", "multi_char", "set", "a", "b", "multi_char_patt", "arrayToPattern", "mapSequence", "strings", "min_replacement", "chars_replaced", "sequencePattern", "substringsToPattern", "allSubstrings", "sub_pat", "sequencesToPattern", "sequences", "all", "sequence", "seq", "len", "j", "inSequences", "needle_seq", "needle_parts", "filter", "part", "needle_part", "Sequence", "_Sequence", "__publicField", "position", "last_piece", "clone", "parts", "last_part", "last_substr", "clone_last_len", "getPattern", "pattern", "match", "match_str", "overlapping", "added_types", "new_seq", "old_seq", "getAttr", "obj", "name", "getAttrNesting", "part", "names", "scoreValue", "value", "token", "weight", "score", "pos", "propToArray", "key", "iterate", "object", "callback", "cmp", "a", "b", "asciifold", "Sifter", "items", "settings", "__publicField", "query", "respect_word_boundaries", "weights", "tokens", "words", "field_regex", "escape_regex", "word", "field_match", "field", "regex", "getPattern", "options", "search", "token_count", "fields", "field_count", "getAttrFn", "scoreObject", "token", "data", "scoreValue", "sum", "value", "iterate", "weight", "score", "implicit_score", "sort_flds", "self", "sort", "get_field", "name", "result", "s", "fld", "a", "b", "sort_fld", "cmp", "optsUser", "propToArray", "getAttrNesting", "getAttr", "fn_score", "item", "id", "_", "fn_sort", "hash_key", "value", "get_hash", "escape_html", "str", "timeout", "fn", "loadDebounce", "delay", "callback", "self", "debounce_events", "types", "type", "trigger", "event_args", "getSelection", "input", "preventDefault", "evt", "stop", "addEvent", "target", "options", "isKeyDown", "key_name", "count", "getId", "el", "id", "existing_id", "addSlashes", "append", "parent", "node", "iterate", "object", "key", "getDom", "query", "isHtmlString", "tpl", "arg", "escapeQuery", "triggerEvent", "dom_el", "event_name", "event", "applyCSS", "css", "addClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "el", "cls", "removeClasses", "args", "iterate", "_classes", "parentMatch", "target", "selector", "wrapper", "getTail", "list", "direction", "isEmptyObject", "obj", "nodeIndex", "amongst", "i", "setAttr", "attrs", "val", "attr", "replaceNode", "existing", "replacement", "highlight", "element", "regex", "highlightText", "node", "match", "spannode", "middlebit", "middleclone", "replaceNode", "highlightChildren", "highlightRecursive", "removeHighlight", "el", "elements", "parent", "IS_MAC", "KEY_SHORTCUT", "defaults_default", "query", "getSettings", "input", "settings_user", "settings", "defaults_default", "attr_data", "field_label", "field_value", "field_disabled", "field_optgroup", "field_optgroup_label", "field_optgroup_value", "tag_name", "placeholder", "option", "settings_element", "init_select", "tagName", "options", "optionsMap", "group_count", "$order", "readData", "el", "data", "json", "addOption", "group", "value", "hash_key", "arr", "option_data", "addGroup", "optgroup", "id", "optgroup_data", "iterate", "child", "init_textbox", "data_raw", "opt", "values", "instance_i", "TomSelect", "MicroPlugin", "MicroEvent", "input_arg", "user_settings", "dir", "input", "getDom", "computedStyle", "settings", "getSettings", "getId", "Sifter", "filter", "value", "wrapper", "control", "dropdown", "dropdown_content", "classes", "inputMode", "control_input", "addClasses", "append", "isHtmlString", "attrs", "iterate", "attr", "setAttr", "self", "focus_node", "passive_event", "listboxId", "control_id", "query", "escapeQuery", "label", "label_click", "addEvent", "label_id", "classes_plugins", "escape_regex", "loadDebounce", "e", "target_match", "parentMatch", "evt", "option", "preventDefault", "doc_mousedown", "target", "win_scroll", "options", "optgroups", "optgroup", "field_label", "field_optgroup", "templates", "data", "escape", "key", "fn", "callbacks", "get_settings", "triggerEvent", "pastedText", "splitInput", "piece", "hash_key", "character", "isKeyDown", "KEY_SHORTCUT", "next", "prev", "timeout", "wasFocused", "deactivate", "item", "callback", "removeClasses", "classList", "changed", "silent", "events", "debounce_events", "eventName", "i", "begin", "end", "swap", "last", "last_active", "idx", "scroll", "behavior", "content", "height_menu", "scrollTop", "height_item", "y", "activeItems", "sort", "result", "calculateScore", "hashed", "triggerDropdown", "j", "k", "n", "html", "has_create_option", "active_group", "create", "groups", "groups_order", "same_query", "results", "active_option", "show_dropdown", "getGroupFragment", "order", "group_order_i", "order_group", "group_fragment", "opt_value", "opt_hash", "get_hash", "option_el", "self_optgroup", "a", "b", "group_order", "group_heading", "group_options", "header", "group_html", "removeHighlight", "tok", "highlight", "add_template", "template", "active_index", "user_created", "dat", "id", "hashed_id", "item_new", "index_item", "value_old", "value_new", "data_old", "option_new", "replaceNode", "boundFilter", "selected", "direction", "type", "all", "addSlashes", "values", "items", "x", "last_item", "wasFull", "nodeIndex", "caret", "output", "created", "isFull", "isLocked", "wrap_classList", "isEmptyObject", "opts", "empty_option", "AddSelected", "escape_html", "has_selected", "reuse_opt", "applyCSS", "setTextboxValue", "trigger", "context", "rect", "top", "left", "el", "selection", "tail", "getSelection", "rm_items", "getTail", "rm_item", "adjacent", "new_pos", "lock", "disabled", "isReadOnly", "revertSettings", "templateName", "when", "method", "new_fn", "orig_method", "result_new", "addEvent", "target", "type", "callback", "options", "addEventListener", "plugin", "input", "sync", "hash_key", "value", "get_hash", "preventDefault", "evt", "stop", "stopPropagation", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "plugin", "userOptions", "self", "orig_onOptionSelect", "onOptionSelect", "settings", "hideSelected", "cbOptions", "Object", "assign", "className", "checkedClassNames", "undefined", "uncheckedClassNames", "UpdateChecked", "checkbox", "toCheck", "checked", "classList", "remove", "add", "UpdateCheckbox", "option", "setTimeout", "HTMLInputElement", "contains", "hook", "orig_render_option", "render", "data", "escape_html", "rendered", "call", "addEventListener", "type", "hashed", "valueField", "items", "prepend", "on", "getOption", "removeItem", "dataset", "refreshOptions", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "plugin", "userOptions", "self", "options", "Object", "assign", "className", "title", "html", "data", "on", "button", "addEventListener", "evt", "isLocked", "clear", "settings", "mode", "allowEmptyOption", "addItem", "preventDefault", "stopPropagation", "control", "appendChild", "preventDefault", "evt", "stop", "stopPropagation", "addEvent", "target", "type", "callback", "options", "addEventListener", "iterate", "object", "Array", "isArray", "forEach", "key", "hasOwnProperty", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "setAttr", "el", "attrs", "val", "attr", "removeAttribute", "setAttribute", "insertAfter", "referenceNode", "newNode", "_referenceNode$parent", "parentNode", "insertBefore", "nextSibling", "_referenceNode$parent2", "isBefore", "_newNode", "previousElementSibling", "plugin", "self", "settings", "mode", "orig_lock", "lock", "orig_unlock", "unlock", "sortable", "drag_item", "hook", "orig_render_item", "render", "item", "data", "escape", "call", "mousedown", "dragStart", "setTimeout", "classList", "add", "dragOver", "moveitem", "dragLeave", "remove", "targetitem", "dragitem", "undefined", "dragend", "_drag_item", "querySelectorAll", "values", "control", "dataset", "value", "push", "setValue", "preventDefault", "evt", "stop", "stopPropagation", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "plugin", "userOptions", "self", "options", "Object", "assign", "title", "headerClass", "titleRowClass", "labelClass", "closeClass", "html", "data", "on", "header", "close_link", "addEventListener", "close", "dropdown", "insertBefore", "iterate", "object", "callback", "Array", "isArray", "forEach", "key", "hasOwnProperty", "removeClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "map", "el", "cls", "classList", "remove", "args", "_classes", "trim", "split", "concat", "filter", "Boolean", "arg", "nodeIndex", "amongst", "nodeName", "i", "previousElementSibling", "matches", "plugin", "self", "hook", "new_pos", "settings", "mode", "control", "contains", "control_input", "items", "length", "Math", "max", "min", "caretPos", "isPending", "controlChildren", "child", "j", "insertAdjacentElement", "appendChild", "direction", "isFocused", "last_active", "getLastActive", "idx", "setCaret", "setActiveItem", "preventDefault", "evt", "stop", "stopPropagation", "addEvent", "target", "type", "callback", "options", "addEventListener", "iterate", "object", "Array", "isArray", "forEach", "key", "hasOwnProperty", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "addClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "map", "el", "cls", "classList", "add", "args", "_classes", "split", "concat", "filter", "Boolean", "plugin", "self", "settings", "shouldOpen", "hook", "focus_node", "control", "control_input", "div", "append", "dropdown", "insertBefore", "placeholder", "on", "keyCode", "constants", "isOpen", "close", "clearActiveItems", "tabIndex", "onKeyDown", "call", "isDisabled", "focus", "orig_onBlur", "onBlur", "relatedTarget", "preventScroll", "addEvent", "target", "type", "callback", "options", "addEventListener", "plugin", "self", "on", "test_input", "document", "createElement", "control", "control_input", "style", "cssText", "wrapper", "appendChild", "transfer_styles", "style_name", "resize", "textContent", "value", "width", "clientWidth", "plugin", "self", "orig_deleteSelection", "deleteSelection", "hook", "evt", "activeItems", "length", "call", "plugin", "hook", "parentMatch", "target", "selector", "wrapper", "matches", "parentNode", "nodeIndex", "el", "amongst", "nodeName", "i", "previousElementSibling", "plugin", "self", "orig_keydown", "onKeyDown", "hook", "evt", "index", "option", "options", "optgroup", "isOpen", "keyCode", "constants", "call", "ignoreHover", "activeOption", "previousSibling", "nextSibling", "querySelectorAll", "Math", "min", "length", "setActiveOption", "escape_html", "str", "replace", "preventDefault", "evt", "stop", "stopPropagation", "addEvent", "target", "type", "callback", "options", "addEventListener", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "plugin", "userOptions", "Object", "assign", "label", "title", "className", "append", "self", "html", "hook", "orig_render_item", "settings", "render", "item", "data", "escape", "call", "close_button", "appendChild", "isLocked", "shouldDelete", "removeItem", "refreshOptions", "inputState", "plugin", "userOptions", "self", "options", "Object", "assign", "text", "option", "settings", "labelField", "on", "value", "isFocused", "control_input", "trim", "setTextboxValue", "call", "iterate", "object", "callback", "Array", "isArray", "forEach", "key", "hasOwnProperty", "addClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "map", "el", "cls", "classList", "add", "args", "_classes", "trim", "split", "concat", "filter", "Boolean", "arg", "plugin", "self", "orig_canLoad", "canLoad", "orig_clearActiveOption", "clearActiveOption", "orig_loadCallback", "loadCallback", "pagination", "dropdown_content", "loading_more", "load_more_opt", "default_values", "settings", "shouldLoadMore", "clientHeight", "scrollHeight", "scrollTop", "activeOption", "selectable", "index", "from", "indexOf", "length", "firstUrl", "sortField", "field", "canLoadMore", "query", "maxOptions", "children", "clearFilter", "option", "value", "items", "setNextUrl", "next_url", "getUrl", "clearPagination", "call", "hook", "options", "optgroups", "clearOptions", "first_option", "undefined", "dataset", "valueField", "lastValue", "render", "setAttribute", "querySelector", "optionClass", "append", "on", "Object", "keys", "assign", "no_more_results", "addEventListener", "load", "TomSelect", "plugin", "tom_select_complete_default", "hasError", "data", "isTruthy", "value", "badStrings", "isElement", "obj", "apiRequest", "url", "method", "data", "__async", "token", "headers", "body", "res", "contentType", "json", "apiPatch", "getElements", "key", "query", "element", "getElement", "id", "scrollTo", "element", "offset", "yOffset", "title", "top", "getSelectedOptions", "base", "selector", "selected", "select", "option", "findFirstAdjacent", "base", "query", "boundary", "atBoundary", "element", "match", "parent", "child", "createElement", "tag", "properties", "classes", "children", "k", "key", "value", "replaceAll", "input", "pattern", "replacement", "flags", "handleFormSubmit", "event", "form", "invalids", "element", "firstInvalid", "scrollTo", "initFormElements", "getElements", "submitters", "submitter", "resetButton", "initSpeedSelector", "element", "getElements", "handleClick", "event", "value", "input", "initForms", "func", "initFormElements", "initSpeedSelector", "Collapse", "Modal", "Popover", "Toast", "Tooltip", "initTooltips", "tooltip", "getElements", "initModals", "modal", "createToast", "level", "title", "message", "extra", "iconName", "container", "main", "header", "icon", "titleElement", "button", "body", "extraElement", "initTabs", "hash", "target", "element", "Tab", "initSidebarAccordions", "items", "handleToggle", "thisItem", "item", "initImagePreview", "maxWidth", "image", "createElement", "content", "initBootstrap", "func", "quickSearchEventHandler", "event", "quicksearch", "clearbtn", "isTruthy", "clearLinkParams", "link", "linkUpdated", "handleQuickSearchParams", "quickSearchParameters", "search_parameter", "initQuickSearch", "__async", "search", "f", "getPlugins", "element", "plugins", "data", "initStaticSelects", "select", "getElements", "tom_select_complete_default", "__spreadProps", "__spreadValues", "getPlugins", "initColorSelects", "renderColor", "item", "escape", "iterate", "object", "callback", "key", "addClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "el", "cls", "classesArray", "args", "classes", "iterate", "_classes", "castAsArray", "arg", "base_exports", "__export", "exclude", "extract", "parse", "parseUrl", "pick", "stringify", "stringifyUrl", "token", "singleMatcher", "multiMatcher", "decodeComponents", "components", "split", "e", "left", "right", "decode", "input", "tokens", "i", "customDecodeURIComponent", "replaceMap", "match", "result", "entries", "key", "decodeUriComponent", "encodedURI", "includeKeys", "object", "predicate", "result", "key", "descriptor", "value", "splitOnFirst", "string", "separator", "separatorIndex", "isNullOrUndefined", "value", "strictUriEncode", "string", "x", "encodeFragmentIdentifier", "encoderForArrayFormat", "options", "key", "result", "index", "encode", "keyValueSeparator", "parserForArrayFormat", "accumulator", "isArray", "isEncodedArray", "decode", "newValue", "item", "arrayValue", "validateArrayFormatSeparator", "decodeUriComponent", "keysSorter", "input", "a", "b", "removeHash", "hashStart", "getHash", "url", "hash", "parseValue", "type", "extract", "queryStart", "parse", "query", "__spreadValues", "formatter", "returnValue", "parameter", "parameter_", "splitOnFirst", "key2", "value2", "stringify", "object", "shouldFilter", "objectCopy", "keys", "parseUrl", "_a", "_b", "url_", "stringifyUrl", "queryFromUrl", "queryString", "urlObjectForFragmentEncode", "pick", "filter", "fragmentIdentifier", "includeKeys", "exclude", "exclusionFilter", "query_string_default", "base_exports", "isDataDynamicParams", "value", "item", "DynamicParamsMap", "fieldName", "value", "queryValue", "current", "isTruthy", "queryParam", "json", "deserialized", "isDataDynamicParams", "DynamicTomSelect", "tom_select_complete_default", "input_arg", "user_settings", "__publicField", "DynamicParamsMap", "nullOption", "valueField", "labelField", "key", "value", "filter", "self", "url", "addClasses", "response", "apiData", "results", "options", "result", "option", "search", "query", "replaceAll", "query_string_default", "data", "parent", "serialized", "deserialized", "queryParam", "queryValue", "err", "fieldName", "element", "elementValue", "o", "current", "staticValue", "id", "getElement", "dependencies", "dep", "filterElement", "event", "target", "VALUE_FIELD", "LABEL_FIELD", "MAX_OPTIONS", "renderOption", "data", "escape", "html", "renderItem", "initDynamicSelects", "select", "getElements", "DynamicTomSelect", "__spreadProps", "__spreadValues", "getPlugins", "initSelects", "initStaticSelects", "initDynamicSelects", "initColorSelects", "setConnectionStatus", "element", "status", "_a", "row", "url", "isTruthy", "apiPatch", "res", "hasError", "createToast", "initConnectionToggle", "getElements", "ProxyStateHandler", "target", "key", "value", "StateManager", "raw", "options", "__publicField", "saved", "__spreadValues", "obj", "createState", "initial", "objectDepthState", "createState", "rackImagesState", "createState", "previousPkCheckState", "createState", "secretState", "createState", "toggleDepthButton", "hidden", "button", "showDepthIndicators", "element", "getElements", "hideDepthIndicators", "handleDepthToggle", "state", "initiallyHidden", "initDepthToggle", "objectDepthState", "event", "moveOptionUp", "element", "options", "i", "option", "moveOptionDown", "next", "initMoveButtons", "button", "getElements", "target", "select", "slugify", "slug", "chars", "initReslug", "slugButton", "getElements", "form", "slugField", "sourceId", "sourceField", "slugLengthAttr", "slugLength", "handlePkCheck", "event", "element", "getElements", "handleSelectAllToggle", "tableSelectAll", "table", "findFirstAdjacent", "confirmCard", "confirmCheckbox", "initSelectAll", "toggleFloat", "checkedCheckboxes", "buttonGroup", "isFloating", "initFloatBulk", "element", "getElements", "removeTextSelection", "_a", "updatePreviousPkCheckState", "eventTargetElement", "state", "toggleCheckboxRange", "previousStateElement", "elementList", "changePkCheckboxState", "element", "typedElement", "handlePkCheck", "event", "checkboxList", "getElements", "initSelectMultiple", "checkboxElements", "previousPkCheckState", "initMarkdownPreview", "markdownWidget", "previewButton", "textarea", "preview", "isTruthy", "height", "e", "initMarkdownPreviews", "toggleSecretButton", "hidden", "button", "showSecret", "secret", "getElement", "isTruthy", "value", "hideSecret", "handleSecretToggle", "state", "toggleCallback", "event", "secretState", "initSecretToggle", "getElements", "initButtons", "func", "initDepthToggle", "initConnectionToggle", "initReslug", "initSelectAll", "initSelectMultiple", "initFloatBulk", "initMoveButtons", "initMarkdownPreviews", "initSecretToggle", "COLOR_MODE_KEY", "isColorMode", "value", "storeColorMode", "mode", "updateElements", "targetMode", "_a", "_b", "body", "elevation", "getElements", "svg", "setColorMode", "handleColorModeToggle", "currentValue", "defaultColorMode", "isTruthy", "preference", "initColorModeToggle", "element", "initColorMode", "func", "initMessages", "elements", "element", "toast", "Toast", "import_clipboard", "initClipboard", "element", "getElements", "Clipboard", "HOOKS", "defaults", "err", "givenDate", "date", "week1", "english", "nth", "s", "default_default", "pad", "number", "length", "int", "bool", "debounce", "fn", "wait", "t", "_this", "args", "arrayify", "obj", "toggleClass", "elem", "className", "bool", "createElement", "tag", "content", "e", "clearNode", "node", "findParent", "condition", "createNumberInput", "inputClassName", "opts", "wrapper", "numInput", "arrowUp", "arrowDown", "key", "getEventTarget", "event", "path", "error", "doNothing", "monthToStr", "monthNumber", "shorthand", "locale", "revFormat", "dateObj", "monthName", "hour", "day", "amPM", "int", "shortMonth", "seconds", "_", "unixSeconds", "weekNum", "weekNumber", "date", "year", "ISODate", "minutes", "month", "unixMillSeconds", "tokenRegex", "formats", "options", "pad", "createDateFormatter", "_a", "_b", "config", "defaults", "_c", "l10n", "english", "_d", "isMobile", "dateObj", "frmt", "overrideLocale", "locale", "c", "i", "arr", "formats", "createDateParser", "date", "givenFormat", "timeless", "customLocale", "parsedDate", "dateOrig", "format", "datestr", "matched", "ops", "matchIndex", "regexStr", "token", "isBackSlash", "escaped", "tokenRegex", "match", "revFormat", "fn", "val", "compareDates", "date1", "date2", "isBetween", "ts", "ts1", "ts2", "calculateSecondsSinceMidnight", "hours", "minutes", "seconds", "parseSeconds", "secondsSinceMidnight", "duration", "getDefaultHours", "config", "minHour", "minMinutes", "minSeconds", "maxHr", "maxMinutes", "target", "args", "_i", "_loop_1", "source", "key", "_a", "args_1", "__assign", "t", "s", "i", "n", "p", "__spreadArrays", "il", "r", "k", "a", "j", "jl", "DEBOUNCED_CHANGE_MS", "FlatpickrInstance", "element", "instanceConfig", "self", "defaults", "flatpickr", "default_default", "createDateParser", "bind", "setHoursFromDate", "positionCalendar", "changeMonth", "changeYear", "clear", "close", "onMouseOver", "createElement", "createDay", "destroy", "isEnabled", "jumpToDate", "updateValue", "open", "redraw", "set", "setDate", "toggle", "setupHelperFunctions", "month", "yr", "init", "parseConfig", "setupLocale", "setupInputs", "setupDates", "build", "bindEvents", "setCalendarWidth", "isSafari", "triggerEvent", "getClosestActiveElement", "_a", "bindToInstance", "fn", "config", "daysWidth", "updateTime", "e", "defaultDate", "compareDates", "getDefaultHours", "timeWrapper", "prevValue", "setHoursFromInputs", "ampm2military", "hour", "amPM", "int", "military2ampm", "hours", "minutes", "seconds", "limitMinHours", "limitMaxHours", "minBound", "calculateSecondsSinceMidnight", "maxBound", "currentTime", "result", "parseSeconds", "maxTime", "minTime", "setHours", "dateObj", "date", "pad", "onYearInput", "event", "eventTarget", "getEventTarget", "year", "handler", "options", "ev", "el", "triggerChange", "evt", "setupMobile", "debouncedResize", "debounce", "onResize", "onKeyDown", "documentClick", "onMonthNavClick", "selectDate", "selText", "timeIncrement", "onBlur", "jumpDate", "jumpTo", "oldYear", "oldMonth", "buildMonthSwitch", "incrementNumInput", "delta", "inputElem", "target", "input", "createEvent", "fragment", "buildMonthNav", "buildWeeks", "weekWrapper", "weekNumbers", "buildWeekdays", "buildDays", "buildTime", "toggleClass", "customAppend", "wrapper", "className", "_dayNumber", "dateIsEnabled", "dayElement", "isDateSelected", "isDateInRange", "focusOnDayElem", "targetNode", "getFirstAvailableDay", "startMonth", "endMonth", "m", "startIndex", "endIndex", "c", "getNextAvailableDay", "current", "givenMonth", "loopDelta", "numMonthDays", "focusOnDay", "offset", "activeElement", "dayFocused", "isInView", "startElem", "buildMonthDays", "firstOfMonth", "prevMonthDays", "daysInMonth", "days", "isMultiMonth", "prevMonthDayClass", "nextMonthDayClass", "dayNumber", "dayIndex", "dayNum", "dayContainer", "clearNode", "frag", "d", "shouldBuildMonth", "monthToStr", "buildMonth", "container", "monthNavFragment", "monthElement", "selectedMonth", "yearInput", "createNumberInput", "yearElement", "currentMonth", "buildMonths", "bool", "updateNavigationCurrentMonth", "separator", "hourInput", "minuteInput", "secondInput", "updateWeekdays", "firstDayOfWeek", "weekdays", "value", "isOffset", "triggerChangeEvent", "toInitial", "_", "isCalendarElem", "elem", "eventTarget_1", "isCalendarElement", "isInput", "lostFocus", "isIgnored", "newYear", "newYearNum", "isNewYear", "timeless", "dateToCheck", "array", "parsed", "valueChanged", "getDateStr", "allowInput", "allowKeydown", "allowInlineKeydown", "isTimeObj", "focusAndClose", "delta_1", "elems", "x", "cellClass", "hoverDate", "initialDate", "rangeStartDate", "rangeEndDate", "containsDisabled", "minRange", "maxRange", "duration", "hoverableCells", "dayElem", "timestamp", "outOfRange", "isBetween", "positionElement", "wasOpen", "minMaxDateSetter", "type", "inverseDateObj", "boolOpts", "userConfig", "formats", "dates", "parseDateRules", "timeMode", "defaultDateFormat", "defaultAltFormat", "minMaxTimeSetter", "val", "HOOKS", "hook", "arrayify", "pluginConf", "key", "getInputElem", "tokenRegex", "createDateFormatter", "customPositionElement", "calendarHeight", "acc", "child", "calendarWidth", "configPos", "configPosVertical", "configPosHorizontal", "inputBounds", "distanceFromBottom", "showOnTop", "top", "left", "isCenter", "isRight", "right", "rightMost", "centerMost", "doc", "getDocumentStyleSheet", "bodyWidth", "centerLeft", "centerBefore", "centerAfter", "centerIndex", "centerStyle", "editableSheet", "sheet", "err", "createStyleSheet", "style", "isSelectable", "day", "findParent", "selectedDate", "shouldChangeMonth", "selectedIndex", "b", "single", "range", "CALLBACKS", "updatePositionElement", "option", "setSelectedDate", "inputDate", "format", "arr", "rule", "preloadedDate", "inputType", "data", "hooks", "name", "specificFormat", "dObj", "isPrevMonth", "isNextMonth", "isKeyDown", "min", "max", "step", "curValue", "newValue", "isHourElem", "isMinuteElem", "_flatpickr", "nodeList", "nodes", "instances", "node", "selector", "l10n", "esm_default", "initDateSelector", "esm_default", "saveTableConfig", "element", "getElements", "addColumns", "event", "selectedOption", "selected", "removeColumns", "available", "submitFormConfig", "url", "formConfig", "__async", "apiPatch", "handleSubmit", "_a", "_b", "_c", "createToast", "reset", "path", "data", "value", "key", "res", "hasError", "options", "getSelectedOptions", "formData", "opt", "initTableConfig", "isShowHide", "value", "TableStateError", "message", "table", "__publicField", "ButtonState", "button", "rows", "row", "state", "replaceAll", "event", "TableState", "toggleEnabledButton", "findFirstAdjacent", "toggleDisabledButton", "toggleVirtualButton", "toggleDisconnectedButton", "err", "instance", "initInterfaceTable", "element", "getElements", "SideNav", "base", "__publicField", "StateManager", "attr", "attrs", "toggler", "event", "getElements", "link", "collapse", "element", "section", "collapseInstance", "Collapse", "action", "_a", "dropdownMenu", "isElement", "groupItem", "groupLink", "menuitem", "href", "initSideNav", "sidenav", "obsolete", "self", "f", "oldName", "newName", "rev", "wrapper", "args", "Utils", "_Utils", "els", "root", "doc", "el", "list", "itemClass", "n", "_a", "_b", "cont", "entry", "GridStack", "classes", "parent", "c", "strict", "a", "b", "x0", "x1", "y0", "y1", "nodes", "dir", "_c", "_d", "diffY", "id", "options", "style", "nonce", "sheet", "selector", "rules", "v", "value", "val", "h", "unit", "match", "target", "sources", "source", "key", "doMinMax", "node", "aVal", "bVal", "removeEl", "func", "delay", "isWaiting", "args", "position", "distance", "rect", "innerHeightOrClientHeight", "offsetDiffDown", "offsetDiffUp", "scrollEl", "prevScroll", "event", "height", "offsetTop", "pointerPosY", "top", "bottom", "obj", "__spreadValues", "skipFields", "ret", "k", "parentNode", "styles", "s", "e", "info", "evt", "p", "simulatedType", "simulatedEvent", "transformReference", "transformValues", "o", "tmp", "GridStackEngine", "_GridStackEngine", "opts", "flag", "doPack", "node", "nn", "collide", "opt", "area", "didMove", "newOpt", "counter", "moved", "__spreadProps", "__spreadValues", "newNN", "Utils", "skip", "skip2", "skipId", "skip2Id", "n", "o", "collides", "r0", "r", "overMax", "r2", "yOver", "xOver", "over", "w", "h", "top", "right", "bottom", "left", "a", "b", "_doSwap", "x", "y", "touching", "t", "layout", "doSort", "wasBatch", "wasColumnResize", "copyNodes", "index", "list", "after", "val", "dir", "newY", "i", "resizing", "_a", "id", "count", "defaults", "before", "copy", "verify", "removedNodes", "dirtyNodes", "nodeList", "column", "start", "found", "box", "triggerAddEvent", "dup", "skipCollision", "removeDOM", "triggerEvent", "clonedNode", "clone", "canMove", "c", "p", "_b", "wasUndefinedPack", "prevPos", "needToMove", "activeDrag", "a1", "a2", "row", "saveElement", "saveCB", "len", "wl", "l", "nodes", "ratio", "prevColumn", "doCompact", "newNodes", "cacheNodes", "lastIndex", "cacheNode", "_c", "j", "move", "scale", "clear", "existing", "n2", "prop", "gridDefaults", "DDManager", "isTouch", "DDTouch", "simulateMouseEvent", "e", "simulatedType", "touch", "simulatedEvent", "simulatePointerMouseEvent", "touchstart", "touchmove", "touchend", "wasDragging", "DDManager", "pointerdown", "pointerenter", "pointerleave", "DDResizableHandle", "_DDResizableHandle", "host", "dir", "option", "el", "isTouch", "touchstart", "pointerdown", "e", "touchmove", "touchend", "s", "_a", "_b", "name", "event", "DDBaseImplement", "event", "callback", "eventName", "DDResizable", "_DDResizable", "DDBaseImplement", "el", "option", "containmentRect", "newRect", "rect", "event", "callback", "opts", "updateHandles", "updateAutoHide", "key", "auto", "DDManager", "e", "dir", "DDResizableHandle", "Utils", "ev", "prop", "parent", "dragTransform", "i", "oEvent", "offsetX", "offsetY", "moveLeft", "moveUp", "constrain", "oWidth", "oHeight", "o", "maxWidth", "minWidth", "maxHeight", "minHeight", "width", "height", "containmentEl", "left", "top", "value", "scaleReciprocal", "handle", "skipMouseDown", "DDDraggable", "_DDDraggable", "DDBaseImplement", "el", "option", "_a", "handleName", "n", "event", "callback", "dragEl", "isTouch", "touchstart", "pointerdown", "forDestroy", "opts", "key", "e", "DDManager", "touchmove", "touchend", "ev", "Utils", "s", "pause", "grid", "_b", "__spreadValues", "helper", "prop", "style", "node", "transition", "containmentRect", "offset", "parent", "xformOffsetX", "xformOffsetY", "targetOffset", "DDDroppable", "DDBaseImplement", "el", "option", "event", "callback", "isTouch", "pointerenter", "pointerleave", "forDestroy", "opts", "key", "e", "DDManager", "ev", "Utils", "calledByEnter", "_a", "parentDrop", "parent", "drag", "__spreadValues", "DDElement", "_DDElement", "el", "eventName", "callback", "opts", "DDDraggable", "DDResizable", "DDDroppable", "DDGridStack", "el", "opts", "key", "value", "dEl", "grid", "handles", "autoHide", "__spreadProps", "__spreadValues", "_a", "name", "callback", "event", "DDManager", "els", "create", "hosts", "Utils", "list", "e", "DDElement", "d", "dd", "DDGridStack", "GridStack", "_GridStack", "options", "elOrString", "el", "Utils", "selector", "grids", "parent", "opt", "grid", "__spreadValues", "engineClass", "gridDefaults", "placeholderChild", "opts", "_a", "_b", "_c", "rowAttr", "bk", "oldOpts", "oneSize", "oneColumn", "b", "resp", "a", "defaults", "__spreadProps", "parentGridItem", "parentNode", "isTouch", "GridStackEngine", "cbNodes", "maxH", "n", "children", "DDManager", "w", "node", "domAttr", "ops", "nodeToAdd", "saveContent", "subGridTemplate", "autoColumn", "content", "newItem", "newItemOpt", "h", "style", "subGrid", "nodeThatRemoved", "pGrid", "saveGridOpt", "saveCB", "list", "itemContent", "listOrOpt", "o", "origShow", "items", "addRemove", "column", "maxColumn", "prevCB", "removed", "blank", "updateNodes", "item", "sub", "flag", "forcePixel", "rows", "val", "update", "marginDiff", "data", "forBreakpoint", "newColumn", "i", "layout", "doSort", "oldColumn", "removeDOM", "position", "useDocRelative", "box", "containerPos", "relativeLeft", "relativeTop", "columnWidth", "rowHeight", "x", "y", "els", "name", "callback", "event", "key", "triggerEvent", "doAnimate", "delay", "updateClass", "recurse", "keys", "m", "k", "changed", "ddChanged", "widthChanged", "wasUpdating", "cell", "height", "padding", "itemH", "wantedH", "subRec", "parentRec", "child", "softMax", "relative", "rot", "pivotX", "pivotY", "_orig", "value", "elements", "addedNodes", "removedNodes", "type", "styleLocation", "forceUpdate", "cellHeight", "cellHeightUnit", "prefix", "top", "bottom", "right", "left", "placeholder", "getHeight", "row", "unit", "cssMinHeight", "minRow", "triggerAddEvent", "sizeToContent", "attrs", "clearDefaultAttr", "classes", "clientWidth", "columnChanged", "nodes", "forceRemove", "trackSize", "margin", "margins", "dragIn", "dragInOptions", "widgets", "root", "doEnable", "cellWidth", "onDrag", "helper", "helperRect", "rect", "ui", "canAccept", "attr", "error", "wasAdded", "wasSidebar", "noAnim", "origNode", "oGrid", "remove", "trashEl", "noMove", "noResize", "onStartMoving", "dragOrResize", "onEndMoving", "target", "gridEl", "colLeft", "rowLeft", "p", "resizing", "mLeft", "mRight", "mTop", "mBottom", "mHeight", "mWidth", "distance", "prev", "extra", "obsolete", "lockDashboard", "dashboard", "unlockDashboard", "saveDashboardLayout", "url", "gridData", "__async", "apiPatch", "initDashboard", "grid", "GridStack", "gridLockButton", "gridUnlockButton", "gridSaveButton", "res", "hasError", "createToast", "setRackView", "view", "elevation", "showRackElements", "hideRackElements", "selector", "_a", "_b", "elements", "element", "handleRackViewSelect", "newView", "state", "getElements", "initRackElevation", "initialView", "rackImagesState", "control", "o", "event", "handleSelection", "link", "selector_results", "target_id", "target", "label", "value", "initObjectSelector", "element", "getElements", "handleQuickAddObject", "quick_add", "object_id", "object_repr", "target_id", "target", "modal_element", "modal", "Modal", "initQuickAdd", "quick_add_modal", "initDepedencies", "initButtons", "initClipboard", "initSelects", "initObjectSelector", "initQuickAdd", "initBootstrap", "initMessages", "initHtmx", "handleSavedFilterChange", "event", "savedFilter", "baseUrl", "preFilter", "selectedOptions", "option", "initSavedFilterSelect", "divResults", "isTruthy", "savedFilterSelect", "initDocument", "init", "initBootstrap", "initColorMode", "initMessages", "initForms", "initQuickSearch", "initSelects", "initDateSelector", "initButtons", "initClipboard", "initTableConfig", "initInterfaceTable", "initSideNav", "initDashboard", "initRackElevation", "initHtmx", "initSavedFilterSelect", "initWindow", "documentForms", "documentForm", "event", "formData", "name", "value", "contentContainer"] } diff --git a/netbox/project-static/netbox-graphiql/package.json b/netbox/project-static/netbox-graphiql/package.json index c5b2f3077..00218185a 100644 --- a/netbox/project-static/netbox-graphiql/package.json +++ b/netbox/project-static/netbox-graphiql/package.json @@ -6,9 +6,9 @@ "license": "Apache-2.0", "private": true, "dependencies": { - "@graphiql/plugin-explorer": "3.2.3", - "graphiql": "3.7.2", - "graphql": "16.9.0", + "@graphiql/plugin-explorer": "3.2.5", + "graphiql": "3.8.3", + "graphql": "16.10.0", "js-cookie": "3.0.5", "react": "18.3.1", "react-dom": "18.3.1" diff --git a/netbox/project-static/package.json b/netbox/project-static/package.json index 34974fe12..8416d4b4b 100644 --- a/netbox/project-static/package.json +++ b/netbox/project-static/package.json @@ -27,10 +27,10 @@ "bootstrap": "5.3.3", "clipboard": "2.0.11", "flatpickr": "4.6.13", - "gridstack": "11.1.2", + "gridstack": "11.2.0", "htmx.org": "1.9.12", "query-string": "9.1.1", - "sass": "1.82.0", + "sass": "1.83.1", "tom-select": "2.4.1", "typeface-inter": "3.18.1", "typeface-roboto-mono": "1.1.13" diff --git a/netbox/project-static/yarn.lock b/netbox/project-static/yarn.lock index a57d6dc9b..a3ded9bdb 100644 --- a/netbox/project-static/yarn.lock +++ b/netbox/project-static/yarn.lock @@ -200,17 +200,17 @@ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.2.tgz#d8bae93ac8b815b2bd7a98078cf91e2724ef11e5" integrity sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw== -"@graphiql/plugin-explorer@3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@graphiql/plugin-explorer/-/plugin-explorer-3.2.3.tgz#03854d7e62d6e24c6552ae6706e3945b9324fa23" - integrity sha512-yh5WXRqDPuKjVyNxUwXYjx8tImvVOx+2FGanLyjoAJP2LKQu6eDtButyJ8sExk1qW4+HCSrXxJNSPs4W7cYT3g== +"@graphiql/plugin-explorer@3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@graphiql/plugin-explorer/-/plugin-explorer-3.2.5.tgz#02e64eb5b934da3240bcb8c02cc77bee32d818ab" + integrity sha512-gM9UwD0PcOHe+XrRY2YMIV4pUrDIfV0YBQ5kQUZxk0BuVvZO9xk06XFv5plBKDAwtxbsuq+nET4i9FJCiYev2g== dependencies: graphiql-explorer "^0.9.0" -"@graphiql/react@^0.27.0": - version "0.27.0" - resolved "https://registry.yarnpkg.com/@graphiql/react/-/react-0.27.0.tgz#4475a0f4ddf25d8ebc1bfc538fb21f5f1d435916" - integrity sha512-K9ZKWd+ewodbS/1kewedmITeeKLUQswMOXwIv8XFLPt3Ondodji0vr1XXXsttlyl+V2QG/9tYVV2RJ9Ch5LdrA== +"@graphiql/react@^0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@graphiql/react/-/react-0.28.2.tgz#031a3599e0fa054990b31a2f4eceb5ac13845188" + integrity sha512-6PE2Ff9dXpyQMHy3oKzCjT738kY2+wdQ4Xce8+1K+G2yMGZ716Fo0i4vW3S6ErHVI4S/C76gFTQlv/pzxU5ylg== dependencies: "@graphiql/toolkit" "^0.11.0" "@headlessui/react" "^1.7.15" @@ -221,12 +221,13 @@ "@types/codemirror" "^5.60.8" clsx "^1.2.1" codemirror "^5.65.3" - codemirror-graphql "^2.1.1" + codemirror-graphql "^2.2.0" copy-to-clipboard "^3.2.0" framer-motion "^6.5.1" get-value "^3.0.1" graphql-language-service "^5.3.0" markdown-it "^14.1.0" + react-compiler-runtime "19.0.0-beta-37ed2a7-20241206" set-value "^4.1.0" "@graphiql/toolkit@^0.11.0": @@ -1147,10 +1148,10 @@ clsx@^1.2.1: resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== -codemirror-graphql@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/codemirror-graphql/-/codemirror-graphql-2.1.1.tgz#cbf5f0c8d2143b70cd832a08a6d827148d6e9a1d" - integrity sha512-qVNd+H4OqkeBLDztB5bYllAmToxmZASOoELgbf+csNcoovIHKqSB/eppkzWI5jdQGd8bvLK1lTePfqXsCBFryw== +codemirror-graphql@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/codemirror-graphql/-/codemirror-graphql-2.2.0.tgz#1eb7388a1d6844b0ce902a26cba4bdf59b547bc0" + integrity sha512-egIiewf5zEH5LLSkJpJDpYxO1OkNruD0gTWiBrS1JmXk7yjt5WPw7jSmDRkWJx8JheHONltaJPNPWdTUT5LRIQ== dependencies: "@types/codemirror" "^0.0.90" graphql-language-service "5.3.0" @@ -1883,12 +1884,12 @@ graphiql-explorer@^0.9.0: resolved "https://registry.yarnpkg.com/graphiql-explorer/-/graphiql-explorer-0.9.0.tgz#25f6b990bfc3e04e88c0cf419e28d12abe2c4fbe" integrity sha512-fZC/wsuatqiQDO2otchxriFO0LaWIo/ovF/CQJ1yOudmY0P7pzDiP+l9CEHUiWbizk3e99x6DQG4XG1VxA+d6A== -graphiql@3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/graphiql/-/graphiql-3.7.2.tgz#6a754256f4f2e6268a64e585b0fe35bf38f1b87d" - integrity sha512-DL+KrX+aQdyzl+KwcqjlmdYdjyKegm7FcZJKkIQ1e56xn6Eoe8lw5F4t65gFex/45fHzv8e8CpaIcljxfJhO7A== +graphiql@3.8.3: + version "3.8.3" + resolved "https://registry.yarnpkg.com/graphiql/-/graphiql-3.8.3.tgz#3ce95db42317c3fbba6cdbfab5d2430756f9b5dd" + integrity sha512-cuPDYtXVKV86Pu5PHBX642Odi/uVEE2y1Jxq5rGO/Qy1G2lRp7ZZ7a/T30RzxhuLSWo9zUbzq0P3U49//H0Ugw== dependencies: - "@graphiql/react" "^0.27.0" + "@graphiql/react" "^0.28.2" graphql-language-service@5.3.0, graphql-language-service@^5.3.0: version "5.3.0" @@ -1899,15 +1900,15 @@ graphql-language-service@5.3.0, graphql-language-service@^5.3.0: nullthrows "^1.0.0" vscode-languageserver-types "^3.17.1" -graphql@16.9.0: - version "16.9.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.9.0.tgz#1c310e63f16a49ce1fbb230bd0a000e99f6f115f" - integrity sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw== +graphql@16.10.0: + version "16.10.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.10.0.tgz#24c01ae0af6b11ea87bf55694429198aaa8e220c" + integrity sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ== -gridstack@11.1.2: - version "11.1.2" - resolved "https://registry.yarnpkg.com/gridstack/-/gridstack-11.1.2.tgz#e72091e2883f7b37cbd150c218d38eebc9fc4f18" - integrity sha512-6wJ5RffnFchF63/Yhs6tcZcWxRG1EgCnxgejbQsAjQ6Qj8QqKjew73jPq5c1yCAiyEAsXxI2tOJ8lZABOAZxoQ== +gridstack@11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/gridstack/-/gridstack-11.2.0.tgz#8977a6632c521260f064ef171b92c7a8df4f58a9" + integrity sha512-ajwUzd9spR8NXDxfJotHWq9WOYoDOV9o6UJR3ksevNz8cvXNxDtI9H/lC+RN6ijM2DexureLlsG0RpYjBZiOtg== has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" @@ -2529,6 +2530,11 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +react-compiler-runtime@19.0.0-beta-37ed2a7-20241206: + version "19.0.0-beta-37ed2a7-20241206" + resolved "https://registry.yarnpkg.com/react-compiler-runtime/-/react-compiler-runtime-19.0.0-beta-37ed2a7-20241206.tgz#f05231928f2daf9ff5ff9b63e5861161de2c3e6d" + integrity sha512-9e6rCpVylr9EnVocgYAjft7+2v01BDpajeHKRoO+oc9pKcAMTpstHtHvE/TSVbyf4FvzCGjfKcfHM9XGTXI6Tw== + react-dom@18.3.1: version "18.3.1" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" @@ -2661,10 +2667,10 @@ safe-regex-test@^1.0.3: es-errors "^1.3.0" is-regex "^1.1.4" -sass@1.82.0: - version "1.82.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.82.0.tgz#30da277af3d0fa6042e9ceabd0d984ed6d07df70" - integrity sha512-j4GMCTa8elGyN9A7x7bEglx0VgSpNUG4W4wNedQ33wSMdnkqQCT8HTwOaVSV4e6yQovcu/3Oc4coJP/l0xhL2Q== +sass@1.83.1: + version "1.83.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.83.1.tgz#dee1ab94b47a6f9993d3195d36f556bcbda64846" + integrity sha512-EVJbDaEs4Rr3F0glJzFSOvtg2/oy2V/YrGFPqPY24UqcLDWcI9ZY5sN+qyO3c/QCZwzgfirvhXvINiJCE/OLcA== dependencies: chokidar "^4.0.0" immutable "^5.0.2" diff --git a/netbox/translations/fr/LC_MESSAGES/django.mo b/netbox/translations/fr/LC_MESSAGES/django.mo index b7f504a16..1627fe766 100644 Binary files a/netbox/translations/fr/LC_MESSAGES/django.mo and b/netbox/translations/fr/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/fr/LC_MESSAGES/django.po b/netbox/translations/fr/LC_MESSAGES/django.po index 6abecb68b..3a698dc00 100644 --- a/netbox/translations/fr/LC_MESSAGES/django.po +++ b/netbox/translations/fr/LC_MESSAGES/django.po @@ -12,15 +12,16 @@ # thomas rivemale, 2024 # Jeff Gehlbach, 2024 # Jeremy Stretch, 2024 +# marcpaulchand , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-12 05:02+0000\n" +"POT-Creation-Date: 2025-01-04 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" -"Last-Translator: Jeremy Stretch, 2024\n" +"Last-Translator: marcpaulchand , 2025\n" "Language-Team: French (https://app.transifex.com/netbox-community/teams/178115/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -158,7 +159,7 @@ msgstr "Inactif" #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204 -#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959 +#: netbox/ipam/filtersets.py:341 netbox/ipam/filtersets.py:961 #: netbox/virtualization/filtersets.py:45 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358 msgid "Region (ID)" @@ -170,8 +171,8 @@ msgstr "Région (ID)" #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211 -#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346 -#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52 +#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:348 +#: netbox/ipam/filtersets.py:968 netbox/virtualization/filtersets.py:52 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353 msgid "Region (slug)" msgstr "Région (slug)" @@ -181,8 +182,8 @@ msgstr "Région (slug)" #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159 -#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:352 -#: netbox/ipam/filtersets.py:972 netbox/virtualization/filtersets.py:58 +#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:354 +#: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:58 #: netbox/virtualization/filtersets.py:186 msgid "Site group (ID)" msgstr "Groupe de sites (ID)" @@ -193,7 +194,7 @@ msgstr "Groupe de sites (ID)" #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515 -#: netbox/ipam/filtersets.py:359 netbox/ipam/filtersets.py:979 +#: netbox/ipam/filtersets.py:361 netbox/ipam/filtersets.py:981 #: netbox/virtualization/filtersets.py:65 #: netbox/virtualization/filtersets.py:193 msgid "Site group (slug)" @@ -263,8 +264,8 @@ msgstr "Site" #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458 -#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238 -#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989 +#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:240 +#: netbox/ipam/filtersets.py:371 netbox/ipam/filtersets.py:991 #: netbox/virtualization/filtersets.py:75 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363 msgid "Site (slug)" @@ -283,13 +284,13 @@ msgstr "Numéro d'AS" #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283 -#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:243 +#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:245 msgid "Provider (ID)" msgstr "Fournisseur (ID)" #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289 -#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:249 +#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:251 msgid "Provider (slug)" msgstr "Fournisseur (slug)" @@ -318,8 +319,8 @@ msgstr "Type de circuit (slug)" #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229 -#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363 -#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69 +#: netbox/ipam/filtersets.py:234 netbox/ipam/filtersets.py:365 +#: netbox/ipam/filtersets.py:985 netbox/virtualization/filtersets.py:69 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368 msgid "Site (ID)" msgstr "Site (ID)" @@ -673,7 +674,7 @@ msgstr "Identifiant de compte du prestataire" #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817 -#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69 +#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:70 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306 @@ -1108,7 +1109,7 @@ msgstr "Affectation" #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480 -#: netbox/ipam/filtersets.py:999 netbox/ipam/forms/bulk_edit.py:493 +#: netbox/ipam/filtersets.py:1001 netbox/ipam/forms/bulk_edit.py:493 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122 #: netbox/ipam/tables/vlans.py:226 @@ -1548,7 +1549,7 @@ msgstr "Bande passante garantie" #: netbox/circuits/tables/providers.py:82 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29 -#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39 +#: netbox/dcim/tables/modules.py:73 netbox/dcim/tables/power.py:39 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582 @@ -2954,7 +2955,7 @@ msgid "Parent site group (slug)" msgstr "Groupe de sites parents (slug)" #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364 -#: netbox/ipam/filtersets.py:841 netbox/ipam/filtersets.py:993 +#: netbox/ipam/filtersets.py:843 netbox/ipam/filtersets.py:995 msgid "Group (ID)" msgstr "Groupe (ID)" @@ -3004,23 +3005,23 @@ msgstr "Fabricant (slug)" #: netbox/dcim/filtersets.py:393 msgid "Rack type (slug)" -msgstr "Type de rack (limace)" +msgstr "Type de baie (slug)" #: netbox/dcim/filtersets.py:397 msgid "Rack type (ID)" -msgstr "Type de rack (ID)" +msgstr "Type de baie (ID)" #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850 -#: netbox/ipam/filtersets.py:381 netbox/ipam/filtersets.py:493 -#: netbox/ipam/filtersets.py:1003 netbox/virtualization/filtersets.py:210 +#: netbox/ipam/filtersets.py:383 netbox/ipam/filtersets.py:495 +#: netbox/ipam/filtersets.py:1005 netbox/virtualization/filtersets.py:210 msgid "Role (ID)" msgstr "Rôle (ID)" #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856 -#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:387 -#: netbox/ipam/filtersets.py:499 netbox/ipam/filtersets.py:1009 +#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:389 +#: netbox/ipam/filtersets.py:501 netbox/ipam/filtersets.py:1011 #: netbox/virtualization/filtersets.py:216 msgid "Role (slug)" msgstr "Rôle (slug)" @@ -3218,7 +3219,7 @@ msgstr "VDC (IDENTIFIANT)" msgid "Device model" msgstr "Modèle d'appareil" -#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632 +#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:634 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401 msgid "Interface (ID)" msgstr "Interface (ID)" @@ -3232,8 +3233,8 @@ msgid "Module bay (ID)" msgstr "Baie modulaire (ID)" #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425 -#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851 -#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161 +#: netbox/ipam/filtersets.py:613 netbox/ipam/filtersets.py:853 +#: netbox/ipam/filtersets.py:1117 netbox/virtualization/filtersets.py:161 #: netbox/vpn/filtersets.py:379 msgid "Device (ID)" msgstr "Appareil (ID)" @@ -3242,8 +3243,8 @@ msgstr "Appareil (ID)" msgid "Rack (name)" msgstr "Baie (nom)" -#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606 -#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121 +#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:608 +#: netbox/ipam/filtersets.py:848 netbox/ipam/filtersets.py:1123 #: netbox/vpn/filtersets.py:374 msgid "Device (name)" msgstr "Appareil (nom)" @@ -3295,9 +3296,9 @@ msgstr "VID attribué" #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428 #: netbox/dcim/forms/model_forms.py:1385 #: netbox/dcim/models/device_components.py:711 -#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316 -#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483 -#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595 +#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:318 +#: netbox/ipam/filtersets.py:329 netbox/ipam/filtersets.py:485 +#: netbox/ipam/filtersets.py:586 netbox/ipam/filtersets.py:597 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279 @@ -3324,19 +3325,19 @@ msgstr "VID attribué" msgid "VRF" msgstr "VRF" -#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:322 -#: netbox/ipam/filtersets.py:333 netbox/ipam/filtersets.py:489 -#: netbox/ipam/filtersets.py:590 netbox/ipam/filtersets.py:601 +#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:324 +#: netbox/ipam/filtersets.py:335 netbox/ipam/filtersets.py:491 +#: netbox/ipam/filtersets.py:592 netbox/ipam/filtersets.py:603 msgid "VRF (RD)" msgstr "VRF (RD)" -#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030 +#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1032 #: netbox/vpn/filtersets.py:342 msgid "L2VPN (ID)" msgstr "L2VPN (IDENTIFIANT)" #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433 -#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1036 +#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1038 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66 #: netbox/templates/vpn/l2vpntermination.html:12 @@ -3441,7 +3442,7 @@ msgstr "Panneau d'alimentation (ID)" #: netbox/templates/inc/panels/tags.html:5 #: netbox/utilities/forms/fields/fields.py:81 msgid "Tags" -msgstr "Balises" +msgstr "Étiquettes" #: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1498 #: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546 @@ -3498,7 +3499,7 @@ msgstr "Fuseau horaire" #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308 -#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60 +#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:61 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132 #: netbox/templates/dcim/devicetype.html:14 #: netbox/templates/dcim/inventoryitem.html:44 @@ -3597,7 +3598,7 @@ msgstr "Unité de poids" #: netbox/dcim/forms/model_forms.py:217 netbox/dcim/forms/model_forms.py:256 #: netbox/templates/dcim/rack.html:45 netbox/templates/dcim/racktype.html:13 msgid "Rack Type" -msgstr "Type de rack" +msgstr "Type de baie" #: netbox/dcim/forms/bulk_edit.py:299 netbox/dcim/forms/model_forms.py:220 #: netbox/dcim/forms/model_forms.py:297 @@ -3749,7 +3750,7 @@ msgid "Device Type" msgstr "Type d'appareil" #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401 -#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:65 +#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:66 #: netbox/templates/dcim/module.html:65 #: netbox/templates/dcim/modulebay.html:66 #: netbox/templates/dcim/moduletype.html:22 @@ -3857,7 +3858,7 @@ msgstr "Cluster" #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057 -#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321 +#: netbox/dcim/tables/modules.py:53 netbox/extras/forms/filtersets.py:321 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745 @@ -4098,22 +4099,22 @@ msgstr "groupe VLAN" #: netbox/virtualization/forms/bulk_edit.py:248 #: netbox/virtualization/forms/model_forms.py:326 msgid "Untagged VLAN" -msgstr "VLAN non balisé" +msgstr "VLAN non étiqueté" #: netbox/dcim/forms/bulk_edit.py:1508 netbox/dcim/forms/model_forms.py:1376 #: netbox/dcim/tables/devices.py:585 #: netbox/virtualization/forms/bulk_edit.py:256 #: netbox/virtualization/forms/model_forms.py:335 msgid "Tagged VLANs" -msgstr "VLAN balisés" +msgstr "VLAN étiqueté" #: netbox/dcim/forms/bulk_edit.py:1511 msgid "Add tagged VLANs" -msgstr "" +msgstr "Ajouter des VLANs étiquetés" #: netbox/dcim/forms/bulk_edit.py:1520 msgid "Remove tagged VLANs" -msgstr "" +msgstr "Retirer des VLANs étiquetés" #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/model_forms.py:1348 msgid "Wireless LAN group" @@ -4161,7 +4162,7 @@ msgstr "Commutation 802.1Q" #: netbox/dcim/forms/bulk_edit.py:1558 msgid "Add/Remove" -msgstr "" +msgstr "Ajouter/Supprimer" #: netbox/dcim/forms/bulk_edit.py:1617 netbox/dcim/forms/bulk_edit.py:1619 msgid "Interface mode must be specified to assign VLANs" @@ -4170,7 +4171,7 @@ msgstr "Le mode d'interface doit être spécifié pour attribuer des VLAN" #: netbox/dcim/forms/bulk_edit.py:1624 netbox/dcim/forms/common.py:50 msgid "An access interface cannot have tagged VLANs assigned." msgstr "" -"Des tags de VLAN ne peuvent pas être associés à une interface d'accès." +"Des étiquettes de VLAN ne peuvent pas être associés à une interface d'accès." #: netbox/dcim/forms/bulk_import.py:64 msgid "Name of parent region" @@ -4212,11 +4213,11 @@ msgstr "Emplacement introuvable." #: netbox/dcim/forms/bulk_import.py:185 msgid "The manufacturer of this rack type" -msgstr "Le fabricant de ce type de rack" +msgstr "Le fabricant de ce type de baie" #: netbox/dcim/forms/bulk_import.py:196 msgid "The lowest-numbered position in the rack" -msgstr "La position la plus basse du rack" +msgstr "La position la plus basse de la baie" #: netbox/dcim/forms/bulk_import.py:201 netbox/dcim/forms/bulk_import.py:276 msgid "Rail-to-rail width (in inches)" @@ -4228,7 +4229,7 @@ msgstr "Unité pour les dimensions extérieures" #: netbox/dcim/forms/bulk_import.py:213 netbox/dcim/forms/bulk_import.py:298 msgid "Unit for rack weights" -msgstr "Unité poids de la baie" +msgstr "Unité de poids de la baie" #: netbox/dcim/forms/bulk_import.py:245 msgid "Name of assigned tenant" @@ -4240,7 +4241,7 @@ msgstr "Nom du rôle attribué" #: netbox/dcim/forms/bulk_import.py:264 msgid "Rack type model" -msgstr "" +msgstr "Modèle de baie" #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435 #: netbox/dcim/forms/bulk_import.py:605 @@ -4656,8 +4657,9 @@ msgid "" "The tagged VLANs ({vlans}) must belong to the same site as the interface's " "parent device/VM, or they must be global" msgstr "" -"Les VLAN balisés ({vlans}) doivent appartenir au même site que l'appareil/la" -" machine virtuelle parent de l'interface, ou ils doivent être globaux" +"Les VLAN étiquetés ({vlans}) doivent appartenir au même site que " +"l'appareil/la machine virtuelle parente de l'interface, ou ils doivent être " +"globaux" #: netbox/dcim/forms/common.py:126 msgid "" @@ -4863,7 +4865,7 @@ msgstr "Identifiant" #: netbox/dcim/forms/model_forms.py:259 msgid "Select a pre-defined rack type, or set physical characteristics below." msgstr "" -"Sélectionnez un type de rack prédéfini ou définissez les caractéristiques " +"Sélectionnez un type de baie prédéfini ou définissez les caractéristiques " "physiques ci-dessous." #: netbox/dcim/forms/model_forms.py:265 @@ -5637,7 +5639,7 @@ msgstr "réseaux locaux sans fil" #: netbox/dcim/models/device_components.py:697 #: netbox/virtualization/models/virtualmachines.py:335 msgid "untagged VLAN" -msgstr "VLAN non balisé" +msgstr "VLAN non étiqueté" #: netbox/dcim/models/device_components.py:703 #: netbox/virtualization/models/virtualmachines.py:341 @@ -5786,7 +5788,7 @@ msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " "interface's parent device, or it must be global." msgstr "" -"Le VLAN non balisé ({untagged_vlan}) doit appartenir au même site que " +"Le VLAN non étiqueté ({untagged_vlan}) doit appartenir au même site que " "l'appareil parent de l'interface, ou il doit être global." #: netbox/dcim/models/device_components.py:990 @@ -6494,11 +6496,11 @@ msgstr "facteur de forme" #: netbox/dcim/models/racks.py:162 msgid "rack type" -msgstr "type de rack" +msgstr "type de baie" #: netbox/dcim/models/racks.py:163 msgid "rack types" -msgstr "types de rayonnages" +msgstr "types de baies" #: netbox/dcim/models/racks.py:180 netbox/dcim/models/racks.py:379 msgid "Must specify a unit when setting an outer width/depth" @@ -6852,7 +6854,7 @@ msgstr "Baies pour modules" msgid "Inventory items" msgstr "Articles d'inventaire" -#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:56 +#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:57 #: netbox/templates/dcim/modulebay.html:17 msgid "Module Bay" msgstr "Module Bay" @@ -7135,7 +7137,7 @@ msgstr "Réservations" #: netbox/dcim/views.py:757 netbox/templates/dcim/location.html:90 #: netbox/templates/dcim/site.html:140 msgid "Non-Racked Devices" -msgstr "Appareils non rackés" +msgstr "Appareils non mis en baie" #: netbox/dcim/views.py:2086 netbox/extras/forms/model_forms.py:577 #: netbox/templates/extras/configcontext.html:10 @@ -7584,12 +7586,12 @@ msgstr "Signets" msgid "Show your personal bookmarks" msgstr "Afficher vos favoris personnels" -#: netbox/extras/events.py:147 +#: netbox/extras/events.py:151 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "Type d'action inconnu pour une règle d'événement : {action_type}" -#: netbox/extras/events.py:192 +#: netbox/extras/events.py:196 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "" @@ -7632,11 +7634,11 @@ msgstr "Groupe de locataires (slug)" #: netbox/extras/filtersets.py:623 netbox/extras/forms/model_forms.py:495 #: netbox/templates/extras/tag.html:11 msgid "Tag" -msgstr "Balise" +msgstr "Étiquette" #: netbox/extras/filtersets.py:629 msgid "Tag (slug)" -msgstr "Tag (slug)" +msgstr "Étiquette (slug)" #: netbox/extras/filtersets.py:689 netbox/extras/forms/filtersets.py:429 msgid "Has local config context data" @@ -7932,7 +7934,7 @@ msgstr "Type d'action" #: netbox/extras/forms/filtersets.py:307 msgid "Tagged object type" -msgstr "Type d'objet balisé" +msgstr "Type d'objet étiqueté" #: netbox/extras/forms/filtersets.py:312 msgid "Allowed object type" @@ -9066,7 +9068,7 @@ msgstr "étiquette" #: netbox/extras/models/tags.py:50 msgid "tags" -msgstr "balises" +msgstr "étiquettes" #: netbox/extras/models/tags.py:78 msgid "tagged item" @@ -9395,129 +9397,129 @@ msgstr "Exportation de L2VPN" msgid "Exporting L2VPN (identifier)" msgstr "Exportation de L2VPN (identifiant)" -#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:281 +#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:283 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212 #: netbox/templates/ipam/prefix.html:12 msgid "Prefix" msgstr "Préfixe" #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198 -#: netbox/ipam/filtersets.py:221 +#: netbox/ipam/filtersets.py:223 msgid "RIR (ID)" msgstr "RIRE (ID)" #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204 -#: netbox/ipam/filtersets.py:227 +#: netbox/ipam/filtersets.py:229 msgid "RIR (slug)" msgstr "RIR (slug)" -#: netbox/ipam/filtersets.py:285 +#: netbox/ipam/filtersets.py:287 msgid "Within prefix" msgstr "Dans le préfixe" -#: netbox/ipam/filtersets.py:289 +#: netbox/ipam/filtersets.py:291 msgid "Within and including prefix" msgstr "Dans le préfixe et y compris" -#: netbox/ipam/filtersets.py:293 +#: netbox/ipam/filtersets.py:295 msgid "Prefixes which contain this prefix or IP" msgstr "Préfixes contenant ce préfixe ou cette adresse IP" -#: netbox/ipam/filtersets.py:304 netbox/ipam/filtersets.py:572 +#: netbox/ipam/filtersets.py:306 netbox/ipam/filtersets.py:574 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196 #: netbox/ipam/forms/filtersets.py:331 msgid "Mask length" msgstr "Longueur du masque" -#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427 +#: netbox/ipam/filtersets.py:375 netbox/vpn/filtersets.py:427 msgid "VLAN (ID)" msgstr "VLAN (IDENTIFIANT)" -#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422 +#: netbox/ipam/filtersets.py:379 netbox/vpn/filtersets.py:422 msgid "VLAN number (1-4094)" msgstr "Numéro de VLAN (1-4094)" -#: netbox/ipam/filtersets.py:471 netbox/ipam/filtersets.py:475 -#: netbox/ipam/filtersets.py:567 netbox/ipam/forms/model_forms.py:496 +#: netbox/ipam/filtersets.py:473 netbox/ipam/filtersets.py:477 +#: netbox/ipam/filtersets.py:569 netbox/ipam/forms/model_forms.py:496 #: netbox/templates/tenancy/contact.html:53 #: netbox/tenancy/forms/bulk_edit.py:113 msgid "Address" msgstr "Adresse" -#: netbox/ipam/filtersets.py:479 +#: netbox/ipam/filtersets.py:481 msgid "Ranges which contain this prefix or IP" msgstr "Plages contenant ce préfixe ou cette adresse IP" -#: netbox/ipam/filtersets.py:507 netbox/ipam/filtersets.py:563 +#: netbox/ipam/filtersets.py:509 netbox/ipam/filtersets.py:565 msgid "Parent prefix" msgstr "Préfixe parent" -#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856 -#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385 +#: netbox/ipam/filtersets.py:618 netbox/ipam/filtersets.py:858 +#: netbox/ipam/filtersets.py:1133 netbox/vpn/filtersets.py:385 msgid "Virtual machine (name)" msgstr "Machine virtuelle (nom)" -#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861 -#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282 +#: netbox/ipam/filtersets.py:623 netbox/ipam/filtersets.py:863 +#: netbox/ipam/filtersets.py:1127 netbox/virtualization/filtersets.py:282 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390 msgid "Virtual machine (ID)" msgstr "Machine virtuelle (ID)" -#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97 +#: netbox/ipam/filtersets.py:629 netbox/vpn/filtersets.py:97 #: netbox/vpn/filtersets.py:396 msgid "Interface (name)" msgstr "Interface (nom)" -#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108 +#: netbox/ipam/filtersets.py:640 netbox/vpn/filtersets.py:108 #: netbox/vpn/filtersets.py:407 msgid "VM interface (name)" msgstr "Interface de machine virtuelle (nom)" -#: netbox/ipam/filtersets.py:643 netbox/vpn/filtersets.py:113 +#: netbox/ipam/filtersets.py:645 netbox/vpn/filtersets.py:113 msgid "VM interface (ID)" msgstr "Interface de machine virtuelle (ID)" -#: netbox/ipam/filtersets.py:648 +#: netbox/ipam/filtersets.py:650 msgid "FHRP group (ID)" msgstr "Groupe FHRP (ID)" -#: netbox/ipam/filtersets.py:652 +#: netbox/ipam/filtersets.py:654 msgid "Is assigned to an interface" msgstr "Est affecté à une interface" -#: netbox/ipam/filtersets.py:656 +#: netbox/ipam/filtersets.py:658 msgid "Is assigned" msgstr "Est attribué" -#: netbox/ipam/filtersets.py:668 +#: netbox/ipam/filtersets.py:670 msgid "Service (ID)" msgstr "Service (ID)" -#: netbox/ipam/filtersets.py:673 +#: netbox/ipam/filtersets.py:675 msgid "NAT inside IP address (ID)" msgstr "Adresse IP intérieure NAT (ID)" -#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322 +#: netbox/ipam/filtersets.py:1043 netbox/ipam/forms/bulk_import.py:322 msgid "Assigned interface" msgstr "Interface attribuée" -#: netbox/ipam/filtersets.py:1046 +#: netbox/ipam/filtersets.py:1048 msgid "Assigned VM interface" msgstr "Interface de machine virtuelle attribuée" -#: netbox/ipam/filtersets.py:1136 +#: netbox/ipam/filtersets.py:1138 msgid "IP address (ID)" msgstr "Adresse IP (ID)" -#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788 +#: netbox/ipam/filtersets.py:1144 netbox/ipam/models/ip.py:788 msgid "IP address" msgstr "Adresse IP" -#: netbox/ipam/filtersets.py:1167 +#: netbox/ipam/filtersets.py:1169 msgid "Primary IPv4 (ID)" msgstr "IPv4 principal (ID)" -#: netbox/ipam/filtersets.py:1172 +#: netbox/ipam/filtersets.py:1174 msgid "Primary IPv6 (ID)" msgstr "IPv6 principal (ID)" @@ -9606,7 +9608,7 @@ msgstr "Longueur du préfixe" #: netbox/ipam/forms/bulk_edit.py:268 netbox/ipam/forms/filtersets.py:241 #: netbox/templates/ipam/prefix.html:85 msgid "Is a pool" -msgstr "C'est une piscine" +msgstr "C'est une plage d'adresses" #: netbox/ipam/forms/bulk_edit.py:273 netbox/ipam/forms/bulk_edit.py:318 #: netbox/ipam/forms/filtersets.py:248 netbox/ipam/forms/filtersets.py:293 @@ -10175,7 +10177,7 @@ msgstr "La fonction principale de ce préfixe" #: netbox/ipam/models/ip.py:265 msgid "is a pool" -msgstr "est une piscine" +msgstr "est une plage d'adresses" #: netbox/ipam/models/ip.py:267 msgid "All IP addresses within this prefix are considered usable" @@ -10523,7 +10525,7 @@ msgstr "Profondeur" #: netbox/ipam/tables/ip.py:262 msgid "Pool" -msgstr "Piscine" +msgstr "Plage d'adresses" #: netbox/ipam/tables/ip.py:266 netbox/ipam/tables/ip.py:320 msgid "Marked Utilized" @@ -10989,11 +10991,11 @@ msgstr "" #: netbox/netbox/forms/base.py:120 msgid "Add tags" -msgstr "Ajouter des tags" +msgstr "Ajouter des étiquettes" #: netbox/netbox/forms/base.py:125 msgid "Remove tags" -msgstr "Supprimer les tags" +msgstr "Supprimer les étiquettes" #: netbox/netbox/forms/mixins.py:38 #, python-brace-format @@ -11081,7 +11083,7 @@ msgstr "Associer des contacts" #: netbox/netbox/navigation/menu.py:50 msgid "Rack Roles" -msgstr "Rôles des baies" +msgstr "Rôles de la baie" #: netbox/netbox/navigation/menu.py:54 msgid "Elevations" @@ -11089,7 +11091,7 @@ msgstr "Élévations" #: netbox/netbox/navigation/menu.py:60 netbox/netbox/navigation/menu.py:62 msgid "Rack Types" -msgstr "Types de rayonnages" +msgstr "Types de baie" #: netbox/netbox/navigation/menu.py:76 msgid "Modules" @@ -12197,7 +12199,7 @@ msgstr "Dossiers" #: netbox/templates/core/inc/config_data.html:7 msgid "Rack elevations" -msgstr "Élévations des rayonnages" +msgstr "Positions en baie" #: netbox/templates/core/inc/config_data.html:10 msgid "Default unit height" @@ -12613,7 +12615,7 @@ msgstr "Non connecté" #: netbox/templates/dcim/device.html:34 msgid "Highlight device in rack" -msgstr "Surligner l'appareil dans le rack" +msgstr "Surligner l'appareil dans la baie" #: netbox/templates/dcim/device.html:55 msgid "Not racked" @@ -12939,7 +12941,7 @@ msgstr "Non connecté" #: netbox/templates/dcim/inc/interface_vlans_table.html:6 msgid "Untagged" -msgstr "Non taggé" +msgstr "Non étiqueté" #: netbox/templates/dcim/inc/interface_vlans_table.html:37 msgid "No VLANs Assigned" @@ -12969,7 +12971,7 @@ msgstr "Unités décroissantes" #: netbox/templates/dcim/inc/rack_elevation.html:3 msgid "Rack elevation" -msgstr "Élévation du rack" +msgstr "Position en baie" #: netbox/templates/dcim/interface.html:17 msgid "Add Child Interface" @@ -13165,7 +13167,7 @@ msgstr "Afficher la liste" #: netbox/templates/dcim/rack_elevation_list.html:14 msgid "Select rack view" -msgstr "Sélectionnez la vue du rack" +msgstr "Sélectionnez la vue de la baie" #: netbox/templates/dcim/rack_elevation_list.html:25 msgid "Sort By" @@ -13275,7 +13277,7 @@ msgstr "Édition d'un châssis virtuel %(name)s" #: netbox/templates/dcim/virtualchassis_edit.html:53 msgid "Rack/Unit" -msgstr "Baie/U" +msgstr "Baie/Unité" #: netbox/templates/dcim/virtualchassis_remove_member.html:5 msgid "Remove Virtual Chassis Member" @@ -13690,7 +13692,7 @@ msgstr "Tous" #: netbox/templates/extras/tag.html:32 msgid "Tagged Items" -msgstr "Articles taggés" +msgstr "Articles étiquetés" #: netbox/templates/extras/tag.html:43 msgid "Allowed Object Types" @@ -13702,11 +13704,11 @@ msgstr "N'importe lequel" #: netbox/templates/extras/tag.html:57 msgid "Tagged Item Types" -msgstr "Types d'articles taggés" +msgstr "Types d'articles étiquetés" #: netbox/templates/extras/tag.html:81 msgid "Tagged Objects" -msgstr "Objets taggés" +msgstr "Objets étiquetés" #: netbox/templates/extras/webhook.html:26 msgid "HTTP Method" @@ -15559,12 +15561,12 @@ msgstr "Mémoire (Mo)" #: netbox/virtualization/forms/bulk_edit.py:174 msgid "Disk (MB)" -msgstr "" +msgstr "Disque (Mo)" #: netbox/virtualization/forms/bulk_edit.py:334 #: netbox/virtualization/forms/filtersets.py:251 msgid "Size (MB)" -msgstr "" +msgstr "Taille (Mo)" #: netbox/virtualization/forms/bulk_import.py:44 msgid "Type of cluster" @@ -15737,7 +15739,7 @@ msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " "interface's parent virtual machine, or it must be global." msgstr "" -"Le VLAN non taggé ({untagged_vlan}) doit appartenir au même site que la " +"Le VLAN non étiqueté ({untagged_vlan}) doit appartenir au même site que la " "machine virtuelle parente de l'interface, ou il doit être global." #: netbox/virtualization/models/virtualmachines.py:434 @@ -15780,19 +15782,19 @@ msgstr "GRE" #: netbox/vpn/choices.py:39 msgid "WireGuard" -msgstr "" +msgstr "Wireguard" #: netbox/vpn/choices.py:40 msgid "OpenVPN" -msgstr "" +msgstr "OpenVPN" #: netbox/vpn/choices.py:41 msgid "L2TP" -msgstr "" +msgstr "L2TP" #: netbox/vpn/choices.py:42 msgid "PPTP" -msgstr "" +msgstr "PPTP" #: netbox/vpn/choices.py:64 msgid "Hub" diff --git a/requirements.txt b/requirements.txt index bd16b5d10..e5ffe8386 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -Django==5.1.3 +Django==5.1.4 django-cors-headers==4.6.0 django-debug-toolbar==4.4.6 django-filter==24.3