@chayns-components/code-highlighter 5.0.0-beta.1000
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/LICENSE +21 -0
- package/README.md +34 -0
- package/lib/cjs/components/code-highlighter/CodeHighlighter.js +126 -0
- package/lib/cjs/components/code-highlighter/CodeHighlighter.js.map +1 -0
- package/lib/cjs/components/code-highlighter/CodeHighlighter.styles.js +79 -0
- package/lib/cjs/components/code-highlighter/CodeHighlighter.styles.js.map +1 -0
- package/lib/cjs/components/code-highlighter/copy-to-clipboard/CopyToClipboard.js +39 -0
- package/lib/cjs/components/code-highlighter/copy-to-clipboard/CopyToClipboard.js.map +1 -0
- package/lib/cjs/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.js +21 -0
- package/lib/cjs/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.js.map +1 -0
- package/lib/cjs/index.js +21 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/types/codeHighlighter.js +12 -0
- package/lib/cjs/types/codeHighlighter.js.map +1 -0
- package/lib/cjs/types/parser/prettier-parser-babel.d.js +2 -0
- package/lib/cjs/types/parser/prettier-parser-babel.d.js.map +1 -0
- package/lib/cjs/types/parser/prettier-parser-graphql.d.js +2 -0
- package/lib/cjs/types/parser/prettier-parser-graphql.d.js.map +1 -0
- package/lib/cjs/types/parser/prettier-parser-html.d.js +2 -0
- package/lib/cjs/types/parser/prettier-parser-html.d.js.map +1 -0
- package/lib/cjs/types/parser/prettier-parser-markdown.d.js +2 -0
- package/lib/cjs/types/parser/prettier-parser-markdown.d.js.map +1 -0
- package/lib/cjs/types/parser/prettier-parser-postcss.d.js +2 -0
- package/lib/cjs/types/parser/prettier-parser-postcss.d.js.map +1 -0
- package/lib/cjs/types/parser/prettier-parser-yaml.d.js +2 -0
- package/lib/cjs/types/parser/prettier-parser-yaml.d.js.map +1 -0
- package/lib/cjs/utils/codeHighlighter.js +338 -0
- package/lib/cjs/utils/codeHighlighter.js.map +1 -0
- package/lib/esm/components/code-highlighter/CodeHighlighter.js +121 -0
- package/lib/esm/components/code-highlighter/CodeHighlighter.js.map +1 -0
- package/lib/esm/components/code-highlighter/CodeHighlighter.styles.js +86 -0
- package/lib/esm/components/code-highlighter/CodeHighlighter.styles.js.map +1 -0
- package/lib/esm/components/code-highlighter/copy-to-clipboard/CopyToClipboard.js +33 -0
- package/lib/esm/components/code-highlighter/copy-to-clipboard/CopyToClipboard.js.map +1 -0
- package/lib/esm/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.js +17 -0
- package/lib/esm/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.js.map +1 -0
- package/lib/esm/index.js +4 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/types/codeHighlighter.js +6 -0
- package/lib/esm/types/codeHighlighter.js.map +1 -0
- package/lib/esm/types/parser/prettier-parser-babel.d.js +2 -0
- package/lib/esm/types/parser/prettier-parser-babel.d.js.map +1 -0
- package/lib/esm/types/parser/prettier-parser-graphql.d.js +2 -0
- package/lib/esm/types/parser/prettier-parser-graphql.d.js.map +1 -0
- package/lib/esm/types/parser/prettier-parser-html.d.js +2 -0
- package/lib/esm/types/parser/prettier-parser-html.d.js.map +1 -0
- package/lib/esm/types/parser/prettier-parser-markdown.d.js +2 -0
- package/lib/esm/types/parser/prettier-parser-markdown.d.js.map +1 -0
- package/lib/esm/types/parser/prettier-parser-postcss.d.js +2 -0
- package/lib/esm/types/parser/prettier-parser-postcss.d.js.map +1 -0
- package/lib/esm/types/parser/prettier-parser-yaml.d.js +2 -0
- package/lib/esm/types/parser/prettier-parser-yaml.d.js.map +1 -0
- package/lib/esm/utils/codeHighlighter.js +329 -0
- package/lib/esm/utils/codeHighlighter.js.map +1 -0
- package/lib/types/components/code-highlighter/CodeHighlighter.d.ts +44 -0
- package/lib/types/components/code-highlighter/CodeHighlighter.styles.d.ts +17 -0
- package/lib/types/components/code-highlighter/copy-to-clipboard/CopyToClipboard.d.ts +9 -0
- package/lib/types/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.d.ts +8 -0
- package/lib/types/index.d.ts +3 -0
- package/lib/types/types/codeHighlighter.d.ts +10 -0
- package/lib/types/utils/codeHighlighter.d.ts +4 -0
- package/package.json +88 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 Tobit Laboratories AG
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h1>
|
|
3
|
+
<img src="https://raw.githubusercontent.com/TobitSoftware/chayns-components/master/assets/logo.png" width="600px" alt="chayns-components" />
|
|
4
|
+
</h1>
|
|
5
|
+
<p>A set of beautiful React components for developing your own applications with chayns.</p>
|
|
6
|
+
<div>
|
|
7
|
+
<img src="https://img.shields.io/npm/dm/@chayns-components/core.svg?style=for-the-badge" alt="" />
|
|
8
|
+
<img src="https://img.shields.io/npm/v/@chayns-components/core?style=for-the-badge" alt="" />
|
|
9
|
+
<img src="https://img.shields.io/github/license/TobitSoftware/chayns-components?style=for-the-badge" alt="" />
|
|
10
|
+
<img src="https://img.shields.io/github/contributors/TobitSoftware/chayns-components?style=for-the-badge" alt="" />
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
First you need to install the core part of the chayns-components.
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# NPM
|
|
22
|
+
npm install @chayns-components/code-highlighter
|
|
23
|
+
|
|
24
|
+
# Yarn
|
|
25
|
+
yarn add @chayns-components/code-highlighter
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
> **Information:** Since the components have now been implemented with the styled-components
|
|
29
|
+
> library, the styles are delivered directly with the components. There is no need to load an extra
|
|
30
|
+
> stylesheet anymore.
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
For detailed usage visit the [storybook](https://components.chayns.site/storybook).
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _chaynsApi = require("chayns-api");
|
|
8
|
+
var _standalone = require("prettier/standalone");
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _reactSyntaxHighlighter = require("react-syntax-highlighter");
|
|
11
|
+
var _prism = require("react-syntax-highlighter/dist/esm/styles/prism");
|
|
12
|
+
var _codeHighlighter = require("../../types/codeHighlighter");
|
|
13
|
+
var _codeHighlighter2 = require("../../utils/codeHighlighter");
|
|
14
|
+
var _CodeHighlighter = require("./CodeHighlighter.styles");
|
|
15
|
+
var _CopyToClipboard = _interopRequireDefault(require("./copy-to-clipboard/CopyToClipboard"));
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
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); }
|
|
18
|
+
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 && {}.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; }
|
|
19
|
+
const CodeHighlighter = ({
|
|
20
|
+
theme = _codeHighlighter.CodeHighlighterTheme.Dark,
|
|
21
|
+
code,
|
|
22
|
+
copyButtonText,
|
|
23
|
+
language,
|
|
24
|
+
highlightedLines,
|
|
25
|
+
shouldFormatCode = false,
|
|
26
|
+
onFormatError,
|
|
27
|
+
shouldShowLineNumbers = false,
|
|
28
|
+
shouldWrapLines
|
|
29
|
+
}) => {
|
|
30
|
+
const [width, setWidth] = (0, _react.useState)(0);
|
|
31
|
+
const ref = (0, _react.useRef)(null);
|
|
32
|
+
const {
|
|
33
|
+
browser
|
|
34
|
+
} = (0, _chaynsApi.useDevice)();
|
|
35
|
+
(0, _react.useEffect)(() => {
|
|
36
|
+
if (ref.current) {
|
|
37
|
+
const {
|
|
38
|
+
children
|
|
39
|
+
} = ref.current;
|
|
40
|
+
const preElement = Array.from(children).find(({
|
|
41
|
+
tagName
|
|
42
|
+
}) => tagName.toLowerCase() === 'pre');
|
|
43
|
+
if (preElement) {
|
|
44
|
+
setWidth(preElement.scrollWidth);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}, []);
|
|
48
|
+
|
|
49
|
+
// function to style highlighted code
|
|
50
|
+
const lineWrapper = (0, _react.useCallback)(lineNumber => {
|
|
51
|
+
let style = {
|
|
52
|
+
backgroundColor: 'none',
|
|
53
|
+
display: 'block',
|
|
54
|
+
borderRadius: '2px',
|
|
55
|
+
width: width - 15
|
|
56
|
+
};
|
|
57
|
+
if (highlightedLines !== null && highlightedLines !== void 0 && highlightedLines.added && highlightedLines.added.includes(lineNumber)) {
|
|
58
|
+
style = {
|
|
59
|
+
...style,
|
|
60
|
+
backgroundColor: '#2EF29930'
|
|
61
|
+
};
|
|
62
|
+
} else if (highlightedLines !== null && highlightedLines !== void 0 && highlightedLines.removed && highlightedLines.removed.includes(lineNumber)) {
|
|
63
|
+
style = {
|
|
64
|
+
...style,
|
|
65
|
+
backgroundColor: '#F22E5B30'
|
|
66
|
+
};
|
|
67
|
+
} else if (highlightedLines !== null && highlightedLines !== void 0 && highlightedLines.marked && highlightedLines.marked.includes(lineNumber)) {
|
|
68
|
+
style = {
|
|
69
|
+
...style,
|
|
70
|
+
backgroundColor: '#cccccc40'
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
style
|
|
75
|
+
};
|
|
76
|
+
}, [highlightedLines, width]);
|
|
77
|
+
const formattedCode = (0, _react.useMemo)(() => {
|
|
78
|
+
if (language) {
|
|
79
|
+
void (0, _codeHighlighter2.getParserForLanguage)(language).then(config => {
|
|
80
|
+
if (shouldFormatCode && config) {
|
|
81
|
+
try {
|
|
82
|
+
return (0, _standalone.format)(code, config);
|
|
83
|
+
} catch (error) {
|
|
84
|
+
if (typeof onFormatError !== 'undefined') onFormatError(error);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return code;
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return code;
|
|
91
|
+
}, [code, language, shouldFormatCode, onFormatError]);
|
|
92
|
+
(0, _react.useEffect)(() => {
|
|
93
|
+
const elements = document.getElementsByClassName('linenumber');
|
|
94
|
+
Array.from(elements).forEach(element => {
|
|
95
|
+
const wrapper = document.createElement('twIgnore');
|
|
96
|
+
while (element.firstChild) {
|
|
97
|
+
wrapper.appendChild(element.firstChild);
|
|
98
|
+
}
|
|
99
|
+
element.appendChild(wrapper);
|
|
100
|
+
});
|
|
101
|
+
}, []);
|
|
102
|
+
return (0, _react.useMemo)(() => /*#__PURE__*/_react.default.createElement(_CodeHighlighter.StyledCodeHighlighter, {
|
|
103
|
+
$browser: browser === null || browser === void 0 ? void 0 : browser.name,
|
|
104
|
+
$shouldWrapLines: shouldWrapLines,
|
|
105
|
+
$codeTheme: theme,
|
|
106
|
+
ref: ref
|
|
107
|
+
}, /*#__PURE__*/_react.default.createElement(_CodeHighlighter.StyledCodeHighlighterHeader, {
|
|
108
|
+
$codeTheme: theme
|
|
109
|
+
}, /*#__PURE__*/_react.default.createElement(_CodeHighlighter.StyledCodeHighlighterFileName, {
|
|
110
|
+
$codeTheme: theme
|
|
111
|
+
}, /*#__PURE__*/_react.default.createElement("twIgnore", null, (0, _codeHighlighter2.formatLanguage)(language))), /*#__PURE__*/_react.default.createElement(_CopyToClipboard.default, {
|
|
112
|
+
text: code,
|
|
113
|
+
theme: theme,
|
|
114
|
+
copyButtonText: copyButtonText
|
|
115
|
+
})), /*#__PURE__*/_react.default.createElement(_reactSyntaxHighlighter.PrismAsyncLight, {
|
|
116
|
+
language: language ?? '',
|
|
117
|
+
showLineNumbers: shouldShowLineNumbers,
|
|
118
|
+
style: theme === _codeHighlighter.CodeHighlighterTheme.Dark ? _prism.oneDark : _prism.oneLight,
|
|
119
|
+
wrapLines: true,
|
|
120
|
+
wrapLongLines: shouldWrapLines,
|
|
121
|
+
lineProps: lineWrapper
|
|
122
|
+
}, formattedCode)), [browser === null || browser === void 0 ? void 0 : browser.name, theme, language, code, copyButtonText, shouldShowLineNumbers, shouldWrapLines, lineWrapper, formattedCode]);
|
|
123
|
+
};
|
|
124
|
+
CodeHighlighter.displayName = 'CodeHighlighter';
|
|
125
|
+
var _default = exports.default = CodeHighlighter;
|
|
126
|
+
//# sourceMappingURL=CodeHighlighter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeHighlighter.js","names":["_chaynsApi","require","_standalone","_react","_interopRequireWildcard","_reactSyntaxHighlighter","_prism","_codeHighlighter","_codeHighlighter2","_CodeHighlighter","_CopyToClipboard","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CodeHighlighter","theme","CodeHighlighterTheme","Dark","code","copyButtonText","language","highlightedLines","shouldFormatCode","onFormatError","shouldShowLineNumbers","shouldWrapLines","width","setWidth","useState","ref","useRef","browser","useDevice","useEffect","current","children","preElement","Array","from","find","tagName","toLowerCase","scrollWidth","lineWrapper","useCallback","lineNumber","style","backgroundColor","display","borderRadius","added","includes","removed","marked","formattedCode","useMemo","getParserForLanguage","then","config","format","error","elements","document","getElementsByClassName","forEach","element","wrapper","createElement","firstChild","appendChild","StyledCodeHighlighter","$browser","name","$shouldWrapLines","$codeTheme","StyledCodeHighlighterHeader","StyledCodeHighlighterFileName","formatLanguage","text","PrismAsyncLight","showLineNumbers","oneDark","oneLight","wrapLines","wrapLongLines","lineProps","displayName","_default","exports"],"sources":["../../../../src/components/code-highlighter/CodeHighlighter.tsx"],"sourcesContent":["import { BrowserName } from '@chayns-components/core';\nimport { useDevice } from 'chayns-api';\nimport { format } from 'prettier/standalone';\nimport React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { PrismAsyncLight as SyntaxHighlighter } from 'react-syntax-highlighter';\nimport { oneDark, oneLight } from 'react-syntax-highlighter/dist/esm/styles/prism';\nimport {\n CodeHighlighterLanguage,\n CodeHighlighterTheme,\n HighlightedLines,\n} from '../../types/codeHighlighter';\nimport { formatLanguage, getParserForLanguage } from '../../utils/codeHighlighter';\nimport {\n StyledCodeHighlighter,\n StyledCodeHighlighterFileName,\n StyledCodeHighlighterHeader,\n} from './CodeHighlighter.styles';\nimport CopyToClipboard from './copy-to-clipboard/CopyToClipboard';\n\nexport type CodeHighlighterProps = {\n /**\n * The code that should be displayed.\n */\n code: string;\n /**\n * The text that should be displayed after the copy button.\n * If not set, just the button is displayed without text.\n */\n copyButtonText?: string;\n /**\n * The lines of code that should be highlighted.\n * Following lines can be highlighted: added, removed and just marked.\n */\n highlightedLines?: HighlightedLines;\n /**\n * The language of the displayed code.\n */\n language: CodeHighlighterLanguage;\n /**\n * Function to be executed when the formatting of the code fails.\n */\n onFormatError?: (error: unknown) => void;\n /**\n * Whether the code should be formatted with prettier.\n */\n shouldFormatCode?: boolean;\n /**\n * Whether the line numbers should be displayed.\n */\n shouldShowLineNumbers?: boolean;\n /**\n * Whether long lines should be wrapped.\n */\n shouldWrapLines?: boolean;\n /**\n * The theme of the code block. Decide between dark and light.\n */\n theme?: CodeHighlighterTheme;\n};\n\nconst CodeHighlighter: FC<CodeHighlighterProps> = ({\n theme = CodeHighlighterTheme.Dark,\n code,\n copyButtonText,\n language,\n highlightedLines,\n shouldFormatCode = false,\n onFormatError,\n shouldShowLineNumbers = false,\n shouldWrapLines,\n}) => {\n const [width, setWidth] = useState(0);\n\n const ref = useRef<HTMLDivElement>(null);\n\n const { browser } = useDevice();\n\n useEffect(() => {\n if (ref.current) {\n const { children } = ref.current;\n\n const preElement = Array.from(children).find(\n ({ tagName }) => tagName.toLowerCase() === 'pre',\n );\n\n if (preElement) {\n setWidth(preElement.scrollWidth);\n }\n }\n }, []);\n\n // function to style highlighted code\n const lineWrapper = useCallback(\n (lineNumber: number) => {\n let style = {\n backgroundColor: 'none',\n display: 'block',\n borderRadius: '2px',\n width: width - 15,\n };\n\n if (highlightedLines?.added && highlightedLines.added.includes(lineNumber)) {\n style = { ...style, backgroundColor: '#2EF29930' };\n } else if (highlightedLines?.removed && highlightedLines.removed.includes(lineNumber)) {\n style = { ...style, backgroundColor: '#F22E5B30' };\n } else if (highlightedLines?.marked && highlightedLines.marked.includes(lineNumber)) {\n style = { ...style, backgroundColor: '#cccccc40' };\n }\n\n return { style };\n },\n [highlightedLines, width],\n );\n\n const formattedCode = useMemo(() => {\n if (language) {\n void getParserForLanguage(language).then((config) => {\n if (shouldFormatCode && config) {\n try {\n return format(code, config) as unknown as string;\n } catch (error) {\n if (typeof onFormatError !== 'undefined') onFormatError(error);\n }\n }\n\n return code;\n });\n }\n\n return code;\n }, [code, language, shouldFormatCode, onFormatError]);\n\n useEffect(() => {\n const elements = document.getElementsByClassName('linenumber');\n\n Array.from(elements).forEach((element) => {\n const wrapper = document.createElement('twIgnore');\n\n while (element.firstChild) {\n wrapper.appendChild(element.firstChild);\n }\n\n element.appendChild(wrapper);\n });\n }, []);\n\n return useMemo(\n () => (\n <StyledCodeHighlighter\n $browser={browser?.name as BrowserName}\n $shouldWrapLines={shouldWrapLines}\n $codeTheme={theme}\n ref={ref}\n >\n <StyledCodeHighlighterHeader $codeTheme={theme}>\n <StyledCodeHighlighterFileName $codeTheme={theme}>\n {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n {/* @ts-ignore */}\n <twIgnore>{formatLanguage(language)}</twIgnore>\n </StyledCodeHighlighterFileName>\n <CopyToClipboard text={code} theme={theme} copyButtonText={copyButtonText} />\n </StyledCodeHighlighterHeader>\n <SyntaxHighlighter\n language={language ?? ''}\n showLineNumbers={shouldShowLineNumbers}\n style={theme === CodeHighlighterTheme.Dark ? oneDark : oneLight}\n wrapLines\n wrapLongLines={shouldWrapLines}\n lineProps={lineWrapper}\n >\n {formattedCode}\n </SyntaxHighlighter>\n </StyledCodeHighlighter>\n ),\n [\n browser?.name,\n theme,\n language,\n code,\n copyButtonText,\n shouldShowLineNumbers,\n shouldWrapLines,\n lineWrapper,\n formattedCode,\n ],\n );\n};\n\nCodeHighlighter.displayName = 'CodeHighlighter';\n\nexport default CodeHighlighter;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StyledCodeHighlighterHeader = exports.StyledCodeHighlighterFileName = exports.StyledCodeHighlighter = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
8
|
+
var _codeHighlighter = require("../../types/codeHighlighter");
|
|
9
|
+
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); }
|
|
10
|
+
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 && {}.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; }
|
|
11
|
+
const StyledCodeHighlighter = exports.StyledCodeHighlighter = _styledComponents.default.div`
|
|
12
|
+
margin: 4px 0;
|
|
13
|
+
background-color: ${({
|
|
14
|
+
$codeTheme
|
|
15
|
+
}) => $codeTheme === _codeHighlighter.CodeHighlighterTheme.Dark ? '#282c34' : '#fafafa'};
|
|
16
|
+
border-radius: 8px;
|
|
17
|
+
padding-bottom: 6px;
|
|
18
|
+
|
|
19
|
+
pre {
|
|
20
|
+
margin: 0 !important;
|
|
21
|
+
overflow: auto;
|
|
22
|
+
padding: 15px;
|
|
23
|
+
line-height: 1.5;
|
|
24
|
+
|
|
25
|
+
// Styles for custom scrollbar
|
|
26
|
+
${({
|
|
27
|
+
$browser,
|
|
28
|
+
theme
|
|
29
|
+
}) => $browser === 'firefox' ? (0, _styledComponents.css)`
|
|
30
|
+
scrollbar-color: rgba(${theme['text-rgb']}, 0.15) transparent;
|
|
31
|
+
scrollbar-width: thin;
|
|
32
|
+
` : (0, _styledComponents.css)`
|
|
33
|
+
&::-webkit-scrollbar {
|
|
34
|
+
height: 5px;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&::-webkit-scrollbar-track {
|
|
38
|
+
background-color: transparent;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&::-webkit-scrollbar-button {
|
|
42
|
+
background-color: transparent;
|
|
43
|
+
height: 5px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&::-webkit-scrollbar-thumb {
|
|
47
|
+
background-color: rgba(${theme['text-rgb']}, 0.15);
|
|
48
|
+
border-radius: 20px;
|
|
49
|
+
}
|
|
50
|
+
`}
|
|
51
|
+
|
|
52
|
+
code {
|
|
53
|
+
white-space: ${({
|
|
54
|
+
$shouldWrapLines
|
|
55
|
+
}) => $shouldWrapLines ? 'pre-wrap' : 'pre'} !important;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Fixes display of tables in code highlighter for markdown.
|
|
60
|
+
.language-markdown .token.table {
|
|
61
|
+
display: inline;
|
|
62
|
+
}
|
|
63
|
+
`;
|
|
64
|
+
const StyledCodeHighlighterHeader = exports.StyledCodeHighlighterHeader = _styledComponents.default.div`
|
|
65
|
+
display: flex;
|
|
66
|
+
align-items: center;
|
|
67
|
+
justify-content: space-between;
|
|
68
|
+
border-bottom: 1px solid
|
|
69
|
+
${({
|
|
70
|
+
$codeTheme
|
|
71
|
+
}) => $codeTheme === _codeHighlighter.CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999'};
|
|
72
|
+
padding: 4px 12px;
|
|
73
|
+
`;
|
|
74
|
+
const StyledCodeHighlighterFileName = exports.StyledCodeHighlighterFileName = _styledComponents.default.span`
|
|
75
|
+
color: ${({
|
|
76
|
+
$codeTheme
|
|
77
|
+
}) => $codeTheme === _codeHighlighter.CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999'};
|
|
78
|
+
`;
|
|
79
|
+
//# sourceMappingURL=CodeHighlighter.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeHighlighter.styles.js","names":["_styledComponents","_interopRequireWildcard","require","_codeHighlighter","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","StyledCodeHighlighter","exports","styled","div","$codeTheme","CodeHighlighterTheme","Dark","$browser","theme","css","$shouldWrapLines","StyledCodeHighlighterHeader","StyledCodeHighlighterFileName","span"],"sources":["../../../../src/components/code-highlighter/CodeHighlighter.styles.ts"],"sourcesContent":["import type { BrowserName, WithTheme } from '@chayns-components/core';\nimport styled, { css } from 'styled-components';\nimport { CodeHighlighterTheme } from '../../types/codeHighlighter';\n\ntype StyledCodeHighlighterProps = WithTheme<{\n $codeTheme: CodeHighlighterTheme;\n $browser: BrowserName;\n $shouldWrapLines?: boolean;\n}>;\n\nexport const StyledCodeHighlighter = styled.div<StyledCodeHighlighterProps>`\n margin: 4px 0;\n background-color: ${({ $codeTheme }) =>\n $codeTheme === CodeHighlighterTheme.Dark ? '#282c34' : '#fafafa'};\n border-radius: 8px;\n padding-bottom: 6px;\n\n pre {\n margin: 0 !important;\n overflow: auto;\n padding: 15px;\n line-height: 1.5;\n\n // Styles for custom scrollbar\n ${({ $browser, theme }: StyledCodeHighlighterProps) =>\n $browser === 'firefox'\n ? css`\n scrollbar-color: rgba(${theme['text-rgb']}, 0.15) transparent;\n scrollbar-width: thin;\n `\n : css`\n &::-webkit-scrollbar {\n height: 5px;\n }\n\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-button {\n background-color: transparent;\n height: 5px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: rgba(${theme['text-rgb']}, 0.15);\n border-radius: 20px;\n }\n `}\n\n code {\n white-space: ${({ $shouldWrapLines }) =>\n $shouldWrapLines ? 'pre-wrap' : 'pre'} !important;\n }\n }\n\n // Fixes display of tables in code highlighter for markdown.\n .language-markdown .token.table {\n display: inline;\n }\n`;\n\ntype StyledCodeHighlighterHeaderProps = WithTheme<{\n $codeTheme: CodeHighlighterTheme;\n}>;\n\nexport const StyledCodeHighlighterHeader = styled.div<StyledCodeHighlighterHeaderProps>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid\n ${({ $codeTheme }) => ($codeTheme === CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999')};\n padding: 4px 12px;\n`;\n\ntype StyledCodeHighlighterFileNameProps = WithTheme<{\n $codeTheme: CodeHighlighterTheme;\n}>;\n\nexport const StyledCodeHighlighterFileName = styled.span<StyledCodeHighlighterFileNameProps>`\n color: ${({ $codeTheme }) =>\n $codeTheme === CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999'};\n`;\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAAmE,SAAAE,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAQ5D,MAAMW,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAGE,yBAAM,CAACC,GAA+B;AAC3E;AACA,wBAAwB,CAAC;EAAEC;AAAW,CAAC,KAC/BA,UAAU,KAAKC,qCAAoB,CAACC,IAAI,GAAG,SAAS,GAAG,SAAS;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,CAAC;EAAEC,QAAQ;EAAEC;AAAkC,CAAC,KAC9CD,QAAQ,KAAK,SAAS,GAChB,IAAAE,qBAAG;AACrB,8CAA8CD,KAAK,CAAC,UAAU,CAAC;AAC/D;AACA,mBAAmB,GACD,IAAAC,qBAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmDD,KAAK,CAAC,UAAU,CAAC;AACpE;AACA;AACA,mBAAmB;AACnB;AACA;AACA,2BAA2B,CAAC;EAAEE;AAAiB,CAAC,KAChCA,gBAAgB,GAAG,UAAU,GAAG,KAAK;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAMM,MAAMC,2BAA2B,GAAAV,OAAA,CAAAU,2BAAA,GAAGT,yBAAM,CAACC,GAAqC;AACvF;AACA;AACA;AACA;AACA,UAAU,CAAC;EAAEC;AAAW,CAAC,KAAMA,UAAU,KAAKC,qCAAoB,CAACC,IAAI,GAAG,SAAS,GAAG,SAAU;AAChG;AACA,CAAC;AAMM,MAAMM,6BAA6B,GAAAX,OAAA,CAAAW,6BAAA,GAAGV,yBAAM,CAACW,IAAwC;AAC5F,aAAa,CAAC;EAAET;AAAW,CAAC,KACpBA,UAAU,KAAKC,qCAAoB,CAACC,IAAI,GAAG,SAAS,GAAG,SAAS;AACxE,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _core = require("@chayns-components/core");
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _codeHighlighter = require("../../../types/codeHighlighter");
|
|
10
|
+
var _CopyToClipboard = require("./CopyToClipboard.styles");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
const CopyToClipboard = ({
|
|
13
|
+
copyButtonText,
|
|
14
|
+
text,
|
|
15
|
+
theme
|
|
16
|
+
}) => {
|
|
17
|
+
const handleClick = () => {
|
|
18
|
+
void navigator.clipboard.writeText(text);
|
|
19
|
+
};
|
|
20
|
+
const popupContent = /*#__PURE__*/_react.default.createElement("span", {
|
|
21
|
+
style: {
|
|
22
|
+
display: 'block',
|
|
23
|
+
padding: '5px'
|
|
24
|
+
}
|
|
25
|
+
}, /*#__PURE__*/_react.default.createElement("p", null, "Kopiert!"));
|
|
26
|
+
return /*#__PURE__*/_react.default.createElement(_core.Popup, {
|
|
27
|
+
content: popupContent
|
|
28
|
+
}, /*#__PURE__*/_react.default.createElement(_CopyToClipboard.StyledCopyToClipboard, {
|
|
29
|
+
onClick: handleClick
|
|
30
|
+
}, /*#__PURE__*/_react.default.createElement(_core.Icon, {
|
|
31
|
+
icons: ['fa-light fa-clipboard'],
|
|
32
|
+
color: theme === _codeHighlighter.CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999'
|
|
33
|
+
}), copyButtonText && /*#__PURE__*/_react.default.createElement(_CopyToClipboard.StyledCopyToClipboardText, {
|
|
34
|
+
$codeTheme: theme
|
|
35
|
+
}, /*#__PURE__*/_react.default.createElement("twIgnore", null, copyButtonText))));
|
|
36
|
+
};
|
|
37
|
+
CopyToClipboard.displayName = 'CopyToClipboard';
|
|
38
|
+
var _default = exports.default = CopyToClipboard;
|
|
39
|
+
//# sourceMappingURL=CopyToClipboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyToClipboard.js","names":["_core","require","_react","_interopRequireDefault","_codeHighlighter","_CopyToClipboard","e","__esModule","default","CopyToClipboard","copyButtonText","text","theme","handleClick","navigator","clipboard","writeText","popupContent","createElement","style","display","padding","Popup","content","StyledCopyToClipboard","onClick","Icon","icons","color","CodeHighlighterTheme","Dark","StyledCopyToClipboardText","$codeTheme","displayName","_default","exports"],"sources":["../../../../../src/components/code-highlighter/copy-to-clipboard/CopyToClipboard.tsx"],"sourcesContent":["import { Icon, Popup } from '@chayns-components/core';\nimport React, { FC } from 'react';\nimport { CodeHighlighterTheme } from '../../../types/codeHighlighter';\nimport { StyledCopyToClipboard, StyledCopyToClipboardText } from './CopyToClipboard.styles';\n\nexport type CopyToClipboardProps = {\n copyButtonText?: string;\n text: string;\n theme: CodeHighlighterTheme;\n};\n\nconst CopyToClipboard: FC<CopyToClipboardProps> = ({ copyButtonText, text, theme }) => {\n const handleClick = () => {\n void navigator.clipboard.writeText(text);\n };\n\n const popupContent = (\n <span style={{ display: 'block', padding: '5px' }}>\n <p>Kopiert!</p>\n </span>\n );\n\n return (\n <Popup content={popupContent}>\n <StyledCopyToClipboard onClick={handleClick}>\n <Icon\n icons={['fa-light fa-clipboard']}\n color={theme === CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999'}\n />\n {copyButtonText && (\n <StyledCopyToClipboardText $codeTheme={theme}>\n {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n {/* @ts-ignore */}\n <twIgnore>{copyButtonText}</twIgnore>\n </StyledCopyToClipboardText>\n )}\n </StyledCopyToClipboard>\n </Popup>\n );\n};\n\nCopyToClipboard.displayName = 'CopyToClipboard';\n\nexport default CopyToClipboard;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AAA4F,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAQ5F,MAAMG,eAAyC,GAAGA,CAAC;EAAEC,cAAc;EAAEC,IAAI;EAAEC;AAAM,CAAC,KAAK;EACnF,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACtB,KAAKC,SAAS,CAACC,SAAS,CAACC,SAAS,CAACL,IAAI,CAAC;EAC5C,CAAC;EAED,MAAMM,YAAY,gBACdf,MAAA,CAAAM,OAAA,CAAAU,aAAA;IAAMC,KAAK,EAAE;MAAEC,OAAO,EAAE,OAAO;MAAEC,OAAO,EAAE;IAAM;EAAE,gBAC9CnB,MAAA,CAAAM,OAAA,CAAAU,aAAA,YAAG,UAAW,CACZ,CACT;EAED,oBACIhB,MAAA,CAAAM,OAAA,CAAAU,aAAA,CAAClB,KAAA,CAAAsB,KAAK;IAACC,OAAO,EAAEN;EAAa,gBACzBf,MAAA,CAAAM,OAAA,CAAAU,aAAA,CAACb,gBAAA,CAAAmB,qBAAqB;IAACC,OAAO,EAAEZ;EAAY,gBACxCX,MAAA,CAAAM,OAAA,CAAAU,aAAA,CAAClB,KAAA,CAAA0B,IAAI;IACDC,KAAK,EAAE,CAAC,uBAAuB,CAAE;IACjCC,KAAK,EAAEhB,KAAK,KAAKiB,qCAAoB,CAACC,IAAI,GAAG,SAAS,GAAG;EAAU,CACtE,CAAC,EACDpB,cAAc,iBACXR,MAAA,CAAAM,OAAA,CAAAU,aAAA,CAACb,gBAAA,CAAA0B,yBAAyB;IAACC,UAAU,EAAEpB;EAAM,gBAGzCV,MAAA,CAAAM,OAAA,CAAAU,aAAA,mBAAWR,cAAyB,CACb,CAEZ,CACpB,CAAC;AAEhB,CAAC;AAEDD,eAAe,CAACwB,WAAW,GAAG,iBAAiB;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA3B,OAAA,GAEjCC,eAAe","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StyledCopyToClipboardText = exports.StyledCopyToClipboard = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
8
|
+
var _codeHighlighter = require("../../../types/codeHighlighter");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
const StyledCopyToClipboard = exports.StyledCopyToClipboard = _styledComponents.default.div`
|
|
11
|
+
display: flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
`;
|
|
14
|
+
const StyledCopyToClipboardText = exports.StyledCopyToClipboardText = _styledComponents.default.span`
|
|
15
|
+
color: ${({
|
|
16
|
+
$codeTheme
|
|
17
|
+
}) => $codeTheme === _codeHighlighter.CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999'};
|
|
18
|
+
font-size: small;
|
|
19
|
+
margin-left: 4px;
|
|
20
|
+
`;
|
|
21
|
+
//# sourceMappingURL=CopyToClipboard.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyToClipboard.styles.js","names":["_styledComponents","_interopRequireDefault","require","_codeHighlighter","e","__esModule","default","StyledCopyToClipboard","exports","styled","div","StyledCopyToClipboardText","span","$codeTheme","CodeHighlighterTheme","Dark"],"sources":["../../../../../src/components/code-highlighter/copy-to-clipboard/CopyToClipboard.styles.ts"],"sourcesContent":["import type { WithTheme } from '@chayns-components/core';\nimport styled from 'styled-components';\nimport { CodeHighlighterTheme } from '../../../types/codeHighlighter';\n\nexport const StyledCopyToClipboard = styled.div`\n display: flex;\n align-items: center;\n`;\n\ntype StyledCopyToClipboardTextProps = WithTheme<{\n $codeTheme: CodeHighlighterTheme;\n}>;\nexport const StyledCopyToClipboardText = styled.span<StyledCopyToClipboardTextProps>`\n color: ${({ $codeTheme }) =>\n $codeTheme === CodeHighlighterTheme.Dark ? '#e5e5e5' : '#999999'};\n font-size: small;\n margin-left: 4px;\n`;\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAAsE,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/D,MAAMG,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAGE,yBAAM,CAACC,GAAG;AAC/C;AACA;AACA,CAAC;AAKM,MAAMC,yBAAyB,GAAAH,OAAA,CAAAG,yBAAA,GAAGF,yBAAM,CAACG,IAAoC;AACpF,aAAa,CAAC;EAAEC;AAAW,CAAC,KACpBA,UAAU,KAAKC,qCAAoB,CAACC,IAAI,GAAG,SAAS,GAAG,SAAS;AACxE;AACA;AACA,CAAC","ignoreList":[]}
|
package/lib/cjs/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "CodeHighlighter", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _CodeHighlighter.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "CodeHighlighterTheme", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _codeHighlighter.CodeHighlighterTheme;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _CodeHighlighter = _interopRequireDefault(require("./components/code-highlighter/CodeHighlighter"));
|
|
19
|
+
var _codeHighlighter = require("./types/codeHighlighter");
|
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_CodeHighlighter","_interopRequireDefault","require","_codeHighlighter","e","__esModule","default"],"sources":["../../src/index.ts"],"sourcesContent":["// noinspection JSUnusedGlobalSymbols\nexport { default as CodeHighlighter } from './components/code-highlighter/CodeHighlighter';\nexport { CodeHighlighterTheme } from './types/codeHighlighter';\nexport type { CodeHighlighterLanguage, HighlightedLines } from './types/codeHighlighter';\n"],"mappings":";;;;;;;;;;;;;;;;;AACA,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAA+D,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CodeHighlighterTheme = void 0;
|
|
7
|
+
let CodeHighlighterTheme = exports.CodeHighlighterTheme = /*#__PURE__*/function (CodeHighlighterTheme) {
|
|
8
|
+
CodeHighlighterTheme["Light"] = "light";
|
|
9
|
+
CodeHighlighterTheme["Dark"] = "dark";
|
|
10
|
+
return CodeHighlighterTheme;
|
|
11
|
+
}({});
|
|
12
|
+
//# sourceMappingURL=codeHighlighter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeHighlighter.js","names":["CodeHighlighterTheme","exports"],"sources":["../../../src/types/codeHighlighter.ts"],"sourcesContent":["export enum CodeHighlighterTheme {\n Light = 'light',\n Dark = 'dark',\n}\n\nexport interface HighlightedLines {\n added?: number[];\n removed?: number[];\n marked?: number[];\n}\n\nexport type CodeHighlighterLanguage =\n | 'abap'\n | 'abnf'\n | 'actionscript'\n | 'ada'\n | 'agda'\n | 'al'\n | 'antlr4'\n | 'apacheconf'\n | 'apex'\n | 'apl'\n | 'applescript'\n | 'aql'\n | 'arduino'\n | 'arff'\n | 'asciidoc'\n | 'asm6502'\n | 'asmatmel'\n | 'aspnet'\n | 'autohotkey'\n | 'autoit'\n | 'avisynth'\n | 'avroIdl'\n | 'bash'\n | 'basic'\n | 'batch'\n | 'bbcode'\n | 'bicep'\n | 'birb'\n | 'bison'\n | 'bnf'\n | 'brainfuck'\n | 'brightscript'\n | 'bro'\n | 'bsl'\n | 'c'\n | 'cfscript'\n | 'chaiscript'\n | 'cil'\n | 'clike'\n | 'clojure'\n | 'cmake'\n | 'cobol'\n | 'coffeescript'\n | 'concurnas'\n | 'coq'\n | 'cpp'\n | 'crystal'\n | 'csharp'\n | 'cshtml'\n | 'csp'\n | 'cssExtras'\n | 'css'\n | 'csv'\n | 'cypher'\n | 'd'\n | 'dart'\n | 'dataweave'\n | 'dax'\n | 'dhall'\n | 'diff'\n | 'django'\n | 'dnsZoneFile'\n | 'docker'\n | 'dot'\n | 'ebnf'\n | 'editorconfig'\n | 'eiffel'\n | 'ejs'\n | 'elixir'\n | 'elm'\n | 'erb'\n | 'erlang'\n | 'etlua'\n | 'excelFormula'\n | 'factor'\n | 'falselang'\n | 'firestoreSecurityRules'\n | 'flow'\n | 'fortran'\n | 'fsharp'\n | 'ftl'\n | 'gap'\n | 'gcode'\n | 'gdscript'\n | 'gedcom'\n | 'gherkin'\n | 'git'\n | 'glsl'\n | 'gml'\n | 'gn'\n | 'goModule'\n | 'go'\n | 'graphql'\n | 'groovy'\n | 'haml'\n | 'handlebars'\n | 'haskell'\n | 'haxe'\n | 'hcl'\n | 'hlsl'\n | 'hoon'\n | 'hpkp'\n | 'hsts'\n | 'html'\n | 'http'\n | 'ichigojam'\n | 'icon'\n | 'icuMessageFormat'\n | 'idris'\n | 'iecst'\n | 'ignore'\n | 'inform7'\n | 'ini'\n | 'io'\n | 'j'\n | 'java'\n | 'javadoc'\n | 'javadoclike'\n | 'javascript'\n | 'javastacktrace'\n | 'jexl'\n | 'jolie'\n | 'jq'\n | 'jsExtras'\n | 'jsTemplates'\n | 'jsdoc'\n | 'json'\n | 'json5'\n | 'jsonp'\n | 'jsstacktrace'\n | 'jsx'\n | 'julia'\n | 'keepalived'\n | 'keyman'\n | 'kotlin'\n | 'kumir'\n | 'kusto'\n | 'latex'\n | 'latte'\n | 'less'\n | 'lilypond'\n | 'liquid'\n | 'lisp'\n | 'livescript'\n | 'llvm'\n | 'log'\n | 'lolcode'\n | 'lua'\n | 'magma'\n | 'makefile'\n | 'markdown'\n | 'markupTemplating'\n | 'markup'\n | 'matlab'\n | 'maxscript'\n | 'mel'\n | 'mermaid'\n | 'mizar'\n | 'mongodb'\n | 'monkey'\n | 'moonscript'\n | 'n1ql'\n | 'n4js'\n | 'nand2tetrisHdl'\n | 'naniscript'\n | 'nasm'\n | 'neon'\n | 'nevod'\n | 'nginx'\n | 'nim'\n | 'nix'\n | 'nsis'\n | 'objectivec'\n | 'ocaml'\n | 'opencl'\n | 'openqasm'\n | 'oz'\n | 'parigp'\n | 'parser'\n | 'pascal'\n | 'pascaligo'\n | 'pcaxis'\n | 'peoplecode'\n | 'perl'\n | 'phpExtras'\n | 'php'\n | 'phpdoc'\n | 'plsql'\n | 'powerquery'\n | 'powershell'\n | 'processing'\n | 'prolog'\n | 'promql'\n | 'properties'\n | 'protobuf'\n | 'psl'\n | 'pug'\n | 'puppet'\n | 'pure'\n | 'purebasic'\n | 'purescript'\n | 'python'\n | 'q'\n | 'qml'\n | 'qore'\n | 'qsharp'\n | 'r'\n | 'racket'\n | 'reason'\n | 'regex'\n | 'rego'\n | 'renpy'\n | 'rest'\n | 'rip'\n | 'roboconf'\n | 'robotframework'\n | 'ruby'\n | 'rust'\n | 'sas'\n | 'sass'\n | 'scala'\n | 'scheme'\n | 'scss'\n | 'shellSession'\n | 'smali'\n | 'smalltalk'\n | 'smarty'\n | 'sml'\n | 'solidity'\n | 'solutionFile'\n | 'soy'\n | 'sparql'\n | 'splunkSpl'\n | 'sqf'\n | 'sql'\n | 'squirrel'\n | 'stan'\n | 'stylus'\n | 'swift'\n | 'systemd'\n | 't4Cs'\n | 't4Templating'\n | 't4Vb'\n | 'tap'\n | 'tcl'\n | 'textile'\n | 'toml'\n | 'tremor'\n | 'tsx'\n | 'tt2'\n | 'turtle'\n | 'twig'\n | 'typescript'\n | 'typoscript'\n | 'unrealscript'\n | 'uorazor'\n | 'uri'\n | 'v'\n | 'vala'\n | 'vbnet'\n | 'velocity'\n | 'verilog'\n | 'vhdl'\n | 'vim'\n | 'visualBasic'\n | 'warpscript'\n | 'wasm'\n | 'webIdl'\n | 'wiki'\n | 'wolfram'\n | 'wren'\n | 'xeora'\n | 'xmlDoc'\n | 'xojo'\n | 'xquery'\n | 'yaml'\n | 'yang'\n | 'zig'\n | ''\n | undefined;\n"],"mappings":";;;;;;IAAYA,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prettier-parser-babel.d.js","names":[],"sources":["../../../../src/types/parser/prettier-parser-babel.d.ts"],"sourcesContent":["declare module 'prettier/parser-babel' {\n import { Plugin } from 'prettier';\n\n const parser: Plugin;\n export default parser;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prettier-parser-graphql.d.js","names":[],"sources":["../../../../src/types/parser/prettier-parser-graphql.d.ts"],"sourcesContent":["declare module 'prettier/parser-graphql' {\n import { Plugin } from 'prettier';\n\n const parser: Plugin;\n export default parser;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prettier-parser-html.d.js","names":[],"sources":["../../../../src/types/parser/prettier-parser-html.d.ts"],"sourcesContent":["declare module 'prettier/parser-html' {\n import { Plugin } from 'prettier';\n\n const parser: Plugin;\n export default parser;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prettier-parser-markdown.d.js","names":[],"sources":["../../../../src/types/parser/prettier-parser-markdown.d.ts"],"sourcesContent":["declare module 'prettier/parser-markdown' {\n import { Plugin } from 'prettier';\n\n const parser: Plugin;\n export default parser;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prettier-parser-postcss.d.js","names":[],"sources":["../../../../src/types/parser/prettier-parser-postcss.d.ts"],"sourcesContent":["declare module 'prettier/parser-postcss' {\n import { Plugin } from 'prettier';\n\n const parser: Plugin;\n export default parser;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prettier-parser-yaml.d.js","names":[],"sources":["../../../../src/types/parser/prettier-parser-yaml.d.ts"],"sourcesContent":["declare module 'prettier/parser-yaml' {\n import { Plugin } from 'prettier';\n\n const parser: Plugin;\n export default parser;\n}\n"],"mappings":"","ignoreList":[]}
|