@veltra/desktop 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/action/action-group.vue.d.ts +2 -2
- package/dist/components/action/action.vue.d.ts +2 -2
- package/dist/components/auto-complete/auto-complete.vue.d.ts +2 -2
- package/dist/components/breadcrumb/style2.css +1 -2
- package/dist/components/button/style2.css +3 -3
- package/dist/components/card/style2.css +1 -1
- package/dist/components/cascade/cascade.vue.d.ts +4 -4
- package/dist/components/checkbox/checkbox-button.vue.d.ts +1 -1
- package/dist/components/checkbox-group/checkbox-group.vue.d.ts +2 -2
- package/dist/components/code-editor/code-editor.vue.d.ts +2 -2
- package/dist/components/code-editor/lang-loaders.js +1 -0
- package/dist/components/code-editor/lang-loaders.js.map +1 -1
- package/dist/components/condition-editor/style2.css +2 -4
- package/dist/components/date-panel/date-panel.vue.d.ts +1 -1
- package/dist/components/date-picker/date-picker.vue.d.ts +3 -3
- package/dist/components/date-range-picker/date-range-picker.vue.d.ts +3 -3
- package/dist/components/empty/empty.vue.d.ts +1 -1
- package/dist/components/form-item/form-item.js.map +1 -1
- package/dist/components/form-item/form-item.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/form-item/form-item.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/input/input.vue.d.ts +8 -8
- package/dist/components/multi-select/multi-select.vue.d.ts +4 -4
- package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +4 -4
- package/dist/components/number-input/number-input.vue.d.ts +2 -2
- package/dist/components/number-range-input/number-range-input.vue.d.ts +1 -1
- package/dist/components/password-input/password-input.vue.d.ts +1 -1
- package/dist/components/radio-group/radio-group.vue.d.ts +2 -2
- package/dist/components/rich-text-editor/rich-text-editor.vue.d.ts +1 -1
- package/dist/components/rich-text-editor/style2.css +1 -1
- package/dist/components/select/select.vue.d.ts +3 -3
- package/dist/components/textarea/textarea.vue.d.ts +4 -4
- package/dist/components/tip/tip.js +32 -5
- package/dist/components/tip/tip.js.map +1 -1
- package/dist/components/tip/tip.vue.d.ts +1 -0
- package/dist/components/tree-select/tree-select.vue.d.ts +3 -3
- package/dist/node_modules/.bun/@codemirror_autocomplete@6.20.3/node_modules/@codemirror/autocomplete/dist/index.js +1 -1
- package/dist/node_modules/.bun/@codemirror_lang-css@6.3.1/node_modules/@codemirror/lang-css/dist/index.js +914 -0
- package/dist/node_modules/.bun/@codemirror_lang-css@6.3.1/node_modules/@codemirror/lang-css/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_lang-html@6.4.11/node_modules/@codemirror/lang-html/dist/index.js +994 -0
- package/dist/node_modules/.bun/@codemirror_lang-html@6.4.11/node_modules/@codemirror/lang-html/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_lang-javascript@6.2.5/node_modules/@codemirror/lang-javascript/dist/index.js +1 -1
- package/dist/node_modules/.bun/@codemirror_lang-markdown@6.5.1/node_modules/@codemirror/lang-markdown/dist/index.js +471 -0
- package/dist/node_modules/.bun/@codemirror_lang-markdown@6.5.1/node_modules/@codemirror/lang-markdown/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_language@6.12.4/node_modules/@codemirror/language/dist/index.js +71 -1
- package/dist/node_modules/.bun/@codemirror_language@6.12.4/node_modules/@codemirror/language/dist/index.js.map +1 -1
- package/dist/node_modules/.bun/@lezer_common@1.5.2/node_modules/@lezer/common/dist/index.js +326 -2
- package/dist/node_modules/.bun/@lezer_common@1.5.2/node_modules/@lezer/common/dist/index.js.map +1 -1
- package/dist/node_modules/.bun/@lezer_css@1.3.4/node_modules/@lezer/css/dist/index.js +250 -0
- package/dist/node_modules/.bun/@lezer_css@1.3.4/node_modules/@lezer/css/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@lezer_highlight@1.2.3/node_modules/@lezer/highlight/dist/index.js +1 -1
- package/dist/node_modules/.bun/@lezer_html@1.3.13/node_modules/@lezer/html/dist/index.js +438 -0
- package/dist/node_modules/.bun/@lezer_html@1.3.13/node_modules/@lezer/html/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@lezer_markdown@1.7.2/node_modules/@lezer/markdown/dist/index.js +1952 -0
- package/dist/node_modules/.bun/@lezer_markdown@1.7.2/node_modules/@lezer/markdown/dist/index.js.map +1 -0
- package/dist/types/code-editor.d.ts +1 -1
- package/dist/types/tip.d.ts +5 -0
- package/package.json +7 -6
- package/src/components/breadcrumb/style.scss +1 -2
- package/src/components/button/style.scss +6 -4
- package/src/components/card/style.scss +1 -1
- package/src/components/code-editor/lang-loaders.ts +1 -0
- package/src/components/condition-editor/style.scss +2 -4
- package/src/components/form-item/form-item.vue +1 -1
- package/src/components/rich-text-editor/style.scss +1 -1
- package/src/components/tip/tip.vue +36 -5
- package/src/types/code-editor.ts +9 -1
- package/src/types/tip.ts +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../../../node_modules/.bun/@codemirror+lang-markdown@6.5.1/node_modules/@codemirror/lang-markdown/dist/index.js"],"sourcesContent":["import { EditorSelection, countColumn, Prec, EditorState } from '@codemirror/state';\nimport { EditorView, keymap } from '@codemirror/view';\nimport { defineLanguageFacet, foldNodeProp, indentNodeProp, languageDataProp, foldService, syntaxTree, Language, LanguageDescription, ParseContext, indentUnit, LanguageSupport } from '@codemirror/language';\nimport { CompletionContext } from '@codemirror/autocomplete';\nimport { parser, GFM, Subscript, Superscript, Emoji, MarkdownParser, parseCode } from '@lezer/markdown';\nimport { html, htmlCompletionSource } from '@codemirror/lang-html';\nimport { NodeProp } from '@lezer/common';\n\nconst data = /*@__PURE__*/defineLanguageFacet({ commentTokens: { block: { open: \"<!--\", close: \"-->\" } } });\nconst headingProp = /*@__PURE__*/new NodeProp();\nconst commonmark = /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/foldNodeProp.add(type => {\n return !type.is(\"Block\") || type.is(\"Document\") || isHeading(type) != null || isList(type) ? undefined\n : (tree, state) => ({ from: state.doc.lineAt(tree.from).to, to: tree.to });\n }),\n /*@__PURE__*/headingProp.add(isHeading),\n /*@__PURE__*/indentNodeProp.add({\n Document: () => null\n }),\n /*@__PURE__*/languageDataProp.add({\n Document: data\n })\n ]\n});\nfunction isHeading(type) {\n let match = /^(?:ATX|Setext)Heading(\\d)$/.exec(type.name);\n return match ? +match[1] : undefined;\n}\nfunction isList(type) {\n return type.name == \"OrderedList\" || type.name == \"BulletList\";\n}\nfunction findSectionEnd(headerNode, level) {\n let last = headerNode;\n for (;;) {\n let next = last.nextSibling, heading;\n if (!next || (heading = isHeading(next.type)) != null && heading <= level)\n break;\n last = next;\n }\n return last.to;\n}\nconst headerIndent = /*@__PURE__*/foldService.of((state, start, end) => {\n for (let node = syntaxTree(state).resolveInner(end, -1); node; node = node.parent) {\n if (node.from < start)\n break;\n let heading = node.type.prop(headingProp);\n if (heading == null)\n continue;\n let upto = findSectionEnd(node, heading);\n if (upto > end)\n return { from: end, to: upto };\n }\n return null;\n});\nfunction mkLang(parser) {\n return new Language(data, parser, [], \"markdown\");\n}\n/**\nLanguage support for strict CommonMark.\n*/\nconst commonmarkLanguage = /*@__PURE__*/mkLang(commonmark);\nconst extended = /*@__PURE__*/commonmark.configure([GFM, Subscript, Superscript, Emoji, {\n props: [\n /*@__PURE__*/foldNodeProp.add({\n Table: (tree, state) => ({ from: state.doc.lineAt(tree.from).to, to: tree.to })\n })\n ]\n }]);\n/**\nLanguage support for [GFM](https://github.github.com/gfm/) plus\nsubscript, superscript, and emoji syntax.\n*/\nconst markdownLanguage = /*@__PURE__*/mkLang(extended);\nfunction getCodeParser(languages, defaultLanguage) {\n return (info) => {\n if (info && languages) {\n let found = null;\n // Strip anything after whitespace\n info = /\\S*/.exec(info)[0];\n if (typeof languages == \"function\")\n found = languages(info);\n else\n found = LanguageDescription.matchLanguageName(languages, info, true);\n if (found instanceof LanguageDescription)\n return found.support ? found.support.language.parser : ParseContext.getSkippingParser(found.load());\n else if (found)\n return found.parser;\n }\n return defaultLanguage ? defaultLanguage.parser : null;\n };\n}\n\nclass Context {\n constructor(node, from, to, spaceBefore, spaceAfter, type, item) {\n this.node = node;\n this.from = from;\n this.to = to;\n this.spaceBefore = spaceBefore;\n this.spaceAfter = spaceAfter;\n this.type = type;\n this.item = item;\n }\n blank(maxWidth, trailing = true) {\n let result = this.spaceBefore + (this.node.name == \"Blockquote\" ? \">\" : \"\");\n if (maxWidth != null) {\n while (result.length < maxWidth)\n result += \" \";\n return result;\n }\n else {\n for (let i = this.to - this.from - result.length - this.spaceAfter.length; i > 0; i--)\n result += \" \";\n return result + (trailing ? this.spaceAfter : \"\");\n }\n }\n marker(doc, add) {\n let number = this.node.name == \"OrderedList\" ? String((+itemNumber(this.item, doc)[2] + add)) : \"\";\n return this.spaceBefore + number + this.type + this.spaceAfter;\n }\n}\nfunction getContext(node, doc) {\n let nodes = [], context = [];\n for (let cur = node; cur; cur = cur.parent) {\n if (cur.name == \"FencedCode\")\n return context;\n if (cur.name == \"ListItem\" || cur.name == \"Blockquote\")\n nodes.push(cur);\n }\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i], match;\n let line = doc.lineAt(node.from), startPos = node.from - line.from;\n if (node.name == \"Blockquote\" && (match = /^ *>( ?)/.exec(line.text.slice(startPos)))) {\n context.push(new Context(node, startPos, startPos + match[0].length, \"\", match[1], \">\", null));\n }\n else if (node.name == \"ListItem\" && node.parent.name == \"OrderedList\" &&\n (match = /^( *)\\d+([.)])( *)/.exec(line.text.slice(startPos)))) {\n let after = match[3], len = match[0].length;\n if (after.length >= 4) {\n after = after.slice(0, after.length - 4);\n len -= 4;\n }\n context.push(new Context(node.parent, startPos, startPos + len, match[1], after, match[2], node));\n }\n else if (node.name == \"ListItem\" && node.parent.name == \"BulletList\" &&\n (match = /^( *)([-+*])( {1,4}\\[[ xX]\\])?( +)/.exec(line.text.slice(startPos)))) {\n let after = match[4], len = match[0].length;\n if (after.length > 4) {\n after = after.slice(0, after.length - 4);\n len -= 4;\n }\n let type = match[2];\n if (match[3])\n type += match[3].replace(/[xX]/, ' ');\n context.push(new Context(node.parent, startPos, startPos + len, match[1], after, type, node));\n }\n }\n return context;\n}\nfunction itemNumber(item, doc) {\n return /^(\\s*)(\\d+)(?=[.)])/.exec(doc.sliceString(item.from, item.from + 10));\n}\nfunction renumberList(after, doc, changes, offset = 0) {\n for (let prev = -1, node = after;;) {\n if (node.name == \"ListItem\") {\n let m = itemNumber(node, doc);\n let number = +m[2];\n if (prev >= 0) {\n if (number != prev + 1)\n return;\n changes.push({ from: node.from + m[1].length, to: node.from + m[0].length, insert: String(prev + 2 + offset) });\n }\n prev = number;\n }\n let next = node.nextSibling;\n if (!next)\n break;\n node = next;\n }\n}\nfunction normalizeIndent(content, state) {\n let blank = /^[ \\t]*/.exec(content)[0].length;\n if (!blank || state.facet(indentUnit) != \"\\t\")\n return content;\n let col = countColumn(content, 4, blank);\n let space = \"\";\n for (let i = col; i > 0;) {\n if (i >= 4) {\n space += \"\\t\";\n i -= 4;\n }\n else {\n space += \" \";\n i--;\n }\n }\n return space + content.slice(blank);\n}\n/**\nReturns a command like\n[`insertNewlineContinueMarkup`](https://codemirror.net/6/docs/ref/#lang-markdown.insertNewlineContinueMarkup),\nallowing further configuration.\n*/\nconst insertNewlineContinueMarkupCommand = (config = {}) => ({ state, dispatch }) => {\n let tree = syntaxTree(state), { doc } = state;\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty || !markdownLanguage.isActiveAt(state, range.from, -1) && !markdownLanguage.isActiveAt(state, range.from, 1))\n return dont = { range };\n let pos = range.from, line = doc.lineAt(pos);\n let context = getContext(tree.resolveInner(pos, -1), doc);\n while (context.length && context[context.length - 1].from > pos - line.from)\n context.pop();\n if (!context.length)\n return dont = { range };\n let inner = context[context.length - 1];\n if (inner.to - inner.spaceAfter.length > pos - line.from)\n return dont = { range };\n let emptyLine = pos >= (inner.to - inner.spaceAfter.length) && !/\\S/.test(line.text.slice(inner.to));\n // Empty line in list\n if (inner.item && emptyLine) {\n let first = inner.node.firstChild, second = inner.node.getChild(\"ListItem\", \"ListItem\");\n // Not second item or blank line before: delete a level of markup\n if (first.to >= pos || second && second.to < pos ||\n line.from > 0 && !/[^\\s>]/.test(doc.lineAt(line.from - 1).text) ||\n config.nonTightLists === false) {\n let next = context.length > 1 ? context[context.length - 2] : null;\n let delTo, insert = \"\";\n if (next && next.item) { // Re-add marker for the list at the next level\n delTo = line.from + next.from;\n insert = next.marker(doc, 1);\n }\n else {\n delTo = line.from + (next ? next.to : 0);\n }\n let changes = [{ from: delTo, to: pos, insert }];\n if (inner.node.name == \"OrderedList\")\n renumberList(inner.item, doc, changes, -2);\n if (next && next.node.name == \"OrderedList\")\n renumberList(next.item, doc, changes);\n return { range: EditorSelection.cursor(delTo + insert.length), changes };\n }\n else { // Move second item down, making tight two-item list non-tight\n let insert = blankLine(context, state, line);\n return { range: EditorSelection.cursor(pos + insert.length + 1),\n changes: { from: line.from, insert: insert + state.lineBreak } };\n }\n }\n if (inner.node.name == \"Blockquote\" && emptyLine && line.from) {\n let prevLine = doc.lineAt(line.from - 1), quoted = />\\s*$/.exec(prevLine.text);\n // Two aligned empty quoted lines in a row\n if (quoted && quoted.index == inner.from) {\n let changes = state.changes([{ from: prevLine.from + quoted.index, to: prevLine.to },\n { from: line.from + inner.from, to: line.to }]);\n return { range: range.map(changes), changes };\n }\n }\n let changes = [];\n if (inner.node.name == \"OrderedList\")\n renumberList(inner.item, doc, changes);\n let continued = inner.item && inner.item.from < line.from;\n let insert = \"\";\n // If not dedented\n if (!continued || /^[\\s\\d.)\\-+*>]*/.exec(line.text)[0].length >= inner.to) {\n for (let i = 0, e = context.length - 1; i <= e; i++) {\n insert += i == e && !continued ? context[i].marker(doc, 1)\n : context[i].blank(i < e ? countColumn(line.text, 4, context[i + 1].from) - insert.length : null);\n }\n }\n let from = pos;\n while (from > line.from && /\\s/.test(line.text.charAt(from - line.from - 1)))\n from--;\n insert = normalizeIndent(insert, state);\n if (nonTightList(inner.node, state.doc))\n insert = blankLine(context, state, line) + state.lineBreak + insert;\n changes.push({ from, to: pos, insert: state.lineBreak + insert });\n return { range: EditorSelection.cursor(from + insert.length + 1), changes };\n });\n if (dont)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\n/**\nThis command, when invoked in Markdown context with cursor\nselection(s), will create a new line with the markup for\nblockquotes and lists that were active on the old line. If the\ncursor was directly after the end of the markup for the old line,\ntrailing whitespace and list markers are removed from that line.\n\nThe command does nothing in non-Markdown context, so it should\nnot be used as the only binding for Enter (even in a Markdown\ndocument, HTML and code regions might use a different language).\n*/\nconst insertNewlineContinueMarkup = /*@__PURE__*/insertNewlineContinueMarkupCommand();\nfunction isMark(node) {\n return node.name == \"QuoteMark\" || node.name == \"ListMark\";\n}\nfunction nonTightList(node, doc) {\n if (node.name != \"OrderedList\" && node.name != \"BulletList\")\n return false;\n let first = node.firstChild, second = node.getChild(\"ListItem\", \"ListItem\");\n if (!second)\n return false;\n let line1 = doc.lineAt(first.to), line2 = doc.lineAt(second.from);\n let empty = /^[\\s>]*$/.test(line1.text);\n return line1.number + (empty ? 0 : 1) < line2.number;\n}\nfunction blankLine(context, state, line) {\n let insert = \"\";\n for (let i = 0, e = context.length - 2; i <= e; i++) {\n insert += context[i].blank(i < e\n ? countColumn(line.text, 4, context[i + 1].from) - insert.length\n : null, i < e);\n }\n return normalizeIndent(insert, state);\n}\nfunction contextNodeForDelete(tree, pos) {\n let node = tree.resolveInner(pos, -1), scan = pos;\n if (isMark(node)) {\n scan = node.from;\n node = node.parent;\n }\n for (let prev; prev = node.childBefore(scan);) {\n if (isMark(prev)) {\n scan = prev.from;\n }\n else if (prev.name == \"OrderedList\" || prev.name == \"BulletList\") {\n node = prev.lastChild;\n scan = node.to;\n }\n else {\n break;\n }\n }\n return node;\n}\n/**\nThis command will, when invoked in a Markdown context with the\ncursor directly after list or blockquote markup, delete one level\nof markup. When the markup is for a list, it will be replaced by\nspaces on the first invocation (a further invocation will delete\nthe spaces), to make it easy to continue a list.\n\nWhen not after Markdown block markup, this command will return\nfalse, so it is intended to be bound alongside other deletion\ncommands, with a higher precedence than the more generic commands.\n*/\nconst deleteMarkupBackward = ({ state, dispatch }) => {\n let tree = syntaxTree(state);\n let dont = null, changes = state.changeByRange(range => {\n let pos = range.from, { doc } = state;\n if (range.empty && markdownLanguage.isActiveAt(state, range.from)) {\n let line = doc.lineAt(pos);\n let context = getContext(contextNodeForDelete(tree, pos), doc);\n if (context.length) {\n let inner = context[context.length - 1];\n let spaceEnd = inner.to - inner.spaceAfter.length + (inner.spaceAfter ? 1 : 0);\n // Delete extra trailing space after markup\n if (pos - line.from > spaceEnd && !/\\S/.test(line.text.slice(spaceEnd, pos - line.from)))\n return { range: EditorSelection.cursor(line.from + spaceEnd),\n changes: { from: line.from + spaceEnd, to: pos } };\n if (pos - line.from == spaceEnd &&\n // Only apply this if we're on the line that has the\n // construct's syntax, or there's only indentation in the\n // target range\n ((inner.item && line.from <= inner.item.from) || /^[\\s>]*$/.test(line.text.slice(0, inner.to)))) {\n let start = line.from + inner.from;\n // Replace a list item marker with blank space\n if (inner.item && inner.node.from < inner.item.from && /\\S/.test(line.text.slice(inner.from, inner.to))) {\n let insert = inner.blank(countColumn(line.text, 4, inner.to) - countColumn(line.text, 4, inner.from));\n if (start == line.from)\n insert = normalizeIndent(insert, state);\n return { range: EditorSelection.cursor(start + insert.length),\n changes: { from: start, to: line.from + inner.to, insert } };\n }\n // Delete one level of indentation\n if (start < pos)\n return { range: EditorSelection.cursor(start), changes: { from: start, to: pos } };\n }\n }\n }\n return dont = { range };\n });\n if (dont)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"delete\" }));\n return true;\n};\n\n/**\nA small keymap with Markdown-specific bindings. Binds Enter to\n[`insertNewlineContinueMarkup`](https://codemirror.net/6/docs/ref/#lang-markdown.insertNewlineContinueMarkup)\nand Backspace to\n[`deleteMarkupBackward`](https://codemirror.net/6/docs/ref/#lang-markdown.deleteMarkupBackward).\n*/\nconst markdownKeymap = [\n { key: \"Enter\", run: insertNewlineContinueMarkup },\n { key: \"Backspace\", run: deleteMarkupBackward }\n];\nconst htmlNoMatch = /*@__PURE__*/html({ matchClosingTags: false });\n/**\nMarkdown language support.\n*/\nfunction markdown(config = {}) {\n let { codeLanguages, defaultCodeLanguage, addKeymap = true, base: { parser } = commonmarkLanguage, completeHTMLTags = true, pasteURLAsLink: pasteURL = true, htmlTagLanguage = htmlNoMatch } = config;\n if (!(parser instanceof MarkdownParser))\n throw new RangeError(\"Base parser provided to `markdown` should be a Markdown parser\");\n let extensions = config.extensions ? [config.extensions] : [];\n let support = [htmlTagLanguage.support, headerIndent], defaultCode;\n if (pasteURL)\n support.push(pasteURLAsLink);\n if (defaultCodeLanguage instanceof LanguageSupport) {\n support.push(defaultCodeLanguage.support);\n defaultCode = defaultCodeLanguage.language;\n }\n else if (defaultCodeLanguage) {\n defaultCode = defaultCodeLanguage;\n }\n let codeParser = codeLanguages || defaultCode ? getCodeParser(codeLanguages, defaultCode) : undefined;\n extensions.push(parseCode({ codeParser, htmlParser: htmlTagLanguage.language.parser }));\n if (addKeymap)\n support.push(Prec.high(keymap.of(markdownKeymap)));\n let lang = mkLang(parser.configure(extensions));\n if (completeHTMLTags)\n support.push(lang.data.of({ autocomplete: htmlTagCompletion }));\n return new LanguageSupport(lang, support);\n}\nfunction htmlTagCompletion(context) {\n let { state, pos } = context, m = /<[:\\-\\.\\w\\u00b7-\\uffff]*$/.exec(state.sliceDoc(pos - 25, pos));\n if (!m)\n return null;\n let tree = syntaxTree(state).resolveInner(pos, -1);\n while (tree && !tree.type.isTop) {\n if (tree.name == \"CodeBlock\" || tree.name == \"FencedCode\" || tree.name == \"ProcessingInstructionBlock\" ||\n tree.name == \"CommentBlock\" || tree.name == \"Link\" || tree.name == \"Image\")\n return null;\n tree = tree.parent;\n }\n return {\n from: pos - m[0].length, to: pos,\n options: htmlTagCompletions(),\n validFor: /^<[:\\-\\.\\w\\u00b7-\\uffff]*$/\n };\n}\nlet _tagCompletions = null;\nfunction htmlTagCompletions() {\n if (_tagCompletions)\n return _tagCompletions;\n let result = htmlCompletionSource(new CompletionContext(EditorState.create({ extensions: htmlNoMatch }), 0, true));\n return _tagCompletions = result ? result.options : [];\n}\nconst nonPlainText = /code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i;\n/**\nAn extension that intercepts pastes when the pasted content looks\nlike a URL and the selection is non-empty and selects regular\ntext, making the selection a link with the pasted URL as target.\n*/\nconst pasteURLAsLink = /*@__PURE__*/EditorView.domEventHandlers({\n paste: (event, view) => {\n var _a;\n let { main } = view.state.selection;\n if (main.empty)\n return false;\n let link = (_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.getData(\"text/plain\");\n if (!link || !/^(https?:\\/\\/|mailto:|xmpp:|www\\.)/.test(link))\n return false;\n if (/^www\\./.test(link))\n link = \"https://\" + link;\n if (!markdownLanguage.isActiveAt(view.state, main.from, 1))\n return false;\n let tree = syntaxTree(view.state), crossesNode = false;\n // Verify that no nodes are started/ended between the selection\n // points, and we're not inside any non-plain-text construct.\n tree.iterate({\n from: main.from, to: main.to,\n enter: node => { if (node.from > main.from || nonPlainText.test(node.name))\n crossesNode = true; },\n leave: node => { if (node.to < main.to)\n crossesNode = true; }\n });\n if (crossesNode)\n return false;\n view.dispatch({\n changes: [{ from: main.from, insert: \"[\" }, { from: main.to, insert: `](${link})` }],\n userEvent: \"input.paste\",\n scrollIntoView: true\n });\n return true;\n }\n});\n\nexport { commonmarkLanguage, deleteMarkupBackward, insertNewlineContinueMarkup, insertNewlineContinueMarkupCommand, markdown, markdownKeymap, markdownLanguage, pasteURLAsLink };\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -565,6 +565,76 @@ var LanguageSupport = class {
|
|
|
565
565
|
}
|
|
566
566
|
};
|
|
567
567
|
/**
|
|
568
|
+
Language descriptions are used to store metadata about languages
|
|
569
|
+
and to dynamically load them. Their main role is finding the
|
|
570
|
+
appropriate language for a filename or dynamically loading nested
|
|
571
|
+
parsers.
|
|
572
|
+
*/
|
|
573
|
+
var LanguageDescription = class LanguageDescription {
|
|
574
|
+
constructor(name, alias, extensions, filename, loadFunc, support = void 0) {
|
|
575
|
+
this.name = name;
|
|
576
|
+
this.alias = alias;
|
|
577
|
+
this.extensions = extensions;
|
|
578
|
+
this.filename = filename;
|
|
579
|
+
this.loadFunc = loadFunc;
|
|
580
|
+
this.support = support;
|
|
581
|
+
this.loading = null;
|
|
582
|
+
}
|
|
583
|
+
/**
|
|
584
|
+
Start loading the the language. Will return a promise that
|
|
585
|
+
resolves to a [`LanguageSupport`](https://codemirror.net/6/docs/ref/#language.LanguageSupport)
|
|
586
|
+
object when the language successfully loads.
|
|
587
|
+
*/
|
|
588
|
+
load() {
|
|
589
|
+
return this.loading || (this.loading = this.loadFunc().then((support) => this.support = support, (err) => {
|
|
590
|
+
this.loading = null;
|
|
591
|
+
throw err;
|
|
592
|
+
}));
|
|
593
|
+
}
|
|
594
|
+
/**
|
|
595
|
+
Create a language description.
|
|
596
|
+
*/
|
|
597
|
+
static of(spec) {
|
|
598
|
+
let { load, support } = spec;
|
|
599
|
+
if (!load) {
|
|
600
|
+
if (!support) throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");
|
|
601
|
+
load = () => Promise.resolve(support);
|
|
602
|
+
}
|
|
603
|
+
return new LanguageDescription(spec.name, (spec.alias || []).concat(spec.name).map((s) => s.toLowerCase()), spec.extensions || [], spec.filename, load, support);
|
|
604
|
+
}
|
|
605
|
+
/**
|
|
606
|
+
Look for a language in the given array of descriptions that
|
|
607
|
+
matches the filename. Will first match
|
|
608
|
+
[`filename`](https://codemirror.net/6/docs/ref/#language.LanguageDescription.filename) patterns,
|
|
609
|
+
and then [extensions](https://codemirror.net/6/docs/ref/#language.LanguageDescription.extensions),
|
|
610
|
+
and return the first language that matches.
|
|
611
|
+
*/
|
|
612
|
+
static matchFilename(descs, filename) {
|
|
613
|
+
for (let d of descs) if (d.filename && d.filename.test(filename)) return d;
|
|
614
|
+
let ext = /\.([^.]+)$/.exec(filename);
|
|
615
|
+
if (ext) {
|
|
616
|
+
for (let d of descs) if (d.extensions.indexOf(ext[1]) > -1) return d;
|
|
617
|
+
}
|
|
618
|
+
return null;
|
|
619
|
+
}
|
|
620
|
+
/**
|
|
621
|
+
Look for a language whose name or alias matches the the given
|
|
622
|
+
name (case-insensitively). If `fuzzy` is true, and no direct
|
|
623
|
+
matchs is found, this'll also search for a language whose name
|
|
624
|
+
or alias occurs in the string (for names shorter than three
|
|
625
|
+
characters, only when surrounded by non-word characters).
|
|
626
|
+
*/
|
|
627
|
+
static matchLanguageName(descs, name, fuzzy = true) {
|
|
628
|
+
name = name.toLowerCase();
|
|
629
|
+
for (let d of descs) if (d.alias.some((a) => a == name)) return d;
|
|
630
|
+
if (fuzzy) for (let d of descs) for (let a of d.alias) {
|
|
631
|
+
let found = name.indexOf(a);
|
|
632
|
+
if (found > -1 && (a.length > 2 || !/\w/.test(name[found - 1]) && !/\w/.test(name[found + a.length]))) return d;
|
|
633
|
+
}
|
|
634
|
+
return null;
|
|
635
|
+
}
|
|
636
|
+
};
|
|
637
|
+
/**
|
|
568
638
|
Facet that defines a way to provide a function that computes the
|
|
569
639
|
appropriate indentation depth, as a column number (see
|
|
570
640
|
[`indentString`](https://codemirror.net/6/docs/ref/#language.indentString)), at the start of a given
|
|
@@ -2212,6 +2282,6 @@ function docID(data, lang) {
|
|
|
2212
2282
|
}
|
|
2213
2283
|
Direction.RTL, Direction.LTR;
|
|
2214
2284
|
//#endregion
|
|
2215
|
-
export { HighlightStyle, IndentContext, LRLanguage, LanguageSupport, StreamLanguage, bracketMatching, continuedIndent, defaultHighlightStyle, defineLanguageFacet, delimitedIndent, flatIndent, foldGutter, foldInside, foldKeymap, foldNodeProp, getIndentUnit, getIndentation, indentNodeProp, indentOnInput, indentString, indentUnit, matchBrackets, sublanguageProp, syntaxHighlighting, syntaxTree };
|
|
2285
|
+
export { HighlightStyle, IndentContext, LRLanguage, Language, LanguageDescription, LanguageSupport, ParseContext, StreamLanguage, bracketMatching, bracketMatchingHandle, continuedIndent, defaultHighlightStyle, defineLanguageFacet, delimitedIndent, flatIndent, foldGutter, foldInside, foldKeymap, foldNodeProp, foldService, getIndentUnit, getIndentation, indentNodeProp, indentOnInput, indentString, indentUnit, languageDataProp, matchBrackets, sublanguageProp, syntaxHighlighting, syntaxTree };
|
|
2216
2286
|
|
|
2217
2287
|
//# sourceMappingURL=index.js.map
|